開発環境 Microsoft QuickC Ver 2.0
実行環境 MS-DOS Ver 5.0A

dra4unit.c
#include <stdio.h>
 
#define BYTE unsigned char
 
#define OUTFNAME "unit_.dat"
#define RECLEN 70
 
int main(int argc, char *argv[])
{
	FILE *pfi, *pfo;
	BYTE buf[RECLEN];
	int r;
 
	if (argc != 2) {
		fprintf(stderr, "usage: dra4unit unit?.dat\n");
		return 1;
	}
 
	pfi = fopen(argv[1], "rb");
	if (pfi == NULL) {
		fprintf(stderr, "error: fopen %s\n", argv[1]);
		return 1;
	}
	pfo = fopen(OUTFNAME, "wb");
	if (pfo == NULL) {
		fprintf(stderr, "error: fopen %s\n", OUTFNAME);
		return 1;
	}
 
	while (r = fread(buf, RECLEN, 1, pfi)) {
		// field: status, id, stage
		BYTE *pf = buf;
		if (pf[1] <= 0x1c) {
			// param:
			BYTE *pp = buf + 0x2a;
			printf("%02x %02x %02x [%.16s] %3u %3u %3u %3u\n",
				pf[0], pf[1], pf[2],
				buf+3,
				pp[0], pp[1], pp[2], pp[3]
			);
			pp[0] = 8;      // idou
			pp[1] = 200;    // kougeki
			pp[2] = 200;    // bougyo
			pp[3] = 8;      // shatei
		}
		fwrite(buf, RECLEN, 1, pfo);
	}
 
	fclose(pfo);
	fclose(pfi);
	return 0;
}
 

バッチファイル例
d4u.bat
set dat=unit0.dat
set dra4a=a:\dra4\a

copy %dra4a%\%dat% .
dra4unit %dat% > dra4unit.log
copy unit_.dat %dra4a%\%dat%
最終更新:2016年10月27日 20:38