現在DxLibで、戦術級シュミレーションゲームを制作中です。
マップ制作にQuoyle08を使用させてもらっているのですが、出てくるマップデータファイルの読み込みに戸惑っています。
.map形式のファイルを使い、二次元配列に数値を読み込んでいくのですが、ちゃんと読み込むことができません。
マップチップは4枚なのに二次元配列に読み込んで、確認のためにDrawFormatString関数で出力すると771や-1などおかしい数値が入ってしまいます。
http://inu.harisen.jp/index.html
のサイト様を参考にさせてもらっているのですが、この関数では無理でしょうか?
添付されているファイルに問題があるのでしょうか?
Quoyle08でデータを生成するときに間違っているのでしょうか?
--------------------------------構造体Mapの中身
struct Map{
int chip[CHIP]; //チップ画像のハンドル
int chip_num; //読み込んだチップの枚数
int data[LYE[/url][27][27]; //マップデータ レイヤーn枚分 64x64
int data_x_num; //マップデータのチップ枚数X
int data_y_num; //マップデータのチップ枚数Y
};
--------------------------------
int LoadMapData(const char *name)
{
int fh = 0;
int buf[2] = {NULL};
fh=FileRead_open(name);
for(int i=0;i<2;i++)FileRead_read(&buf, sizeof(BYTE), fh);
map.data_x_num=((buf[1] & 0xff) << 8) | (buf[0] & 0xff);
for(int k=0;k<2;k++)FileRead_read(&buf[k], sizeof(BYTE), fh);
map.data_y_num=((buf[1] & 0xff) << 8) | (buf[0] & 0xff);
FileRead_seek(fh,16,SEEK_SET);
for(int q=0;q<LYER;q++){
for(int y=0;y<map.data_y_num;y++){
for(int x=0;x<map.data_x_num;x++){
for(int m=0;m<2;m++){
buf[m]=FileRead_getc(fh);
}
map.data[q][y][x]=buf[0]|(buf[1]<<8);
}
}
}
FileRead_close(fh);
return 0;
}