少し調べてソースをいじってみました。
そうすると読み込まれはしますが、FileRead_close関数で-1を返すらしく、メッセージボックスに「マップイメージが閉じられない」と出ます。
ソースコードは下の通りです。
bool LoadMapData(){
int fh = 0;
char pass[STR_MAX] = {0};
char str[STR_MAX] = {0};
char* a;
sprintf_s(pass, "%s%s%s", MAP_ROOT, maplist.list[maplist.map_id], MAP_DATAROOT);
if ((fh = FileRead_open(pass)) == 0){
MB("MapData Cannot Open");
return false;
}
FileRead_gets(str, STR_MAX, fh);
strcpy_s(map.plug.name, sizeof(map.plug.name), strtok_s(str, PERIOD, &a));
FileRead_gets(str, STR_MAX, fh);
map.data.size_x = atoi(str);
FileRead_gets(str, STR_MAX, fh);
map.data.size_y = atoi(str);
FileRead_gets(str, STR_MAX, fh);
map.data.num_x = atoi(str);
FileRead_gets(str, STR_MAX, fh);
map.data.num_y = atoi(str);
if (FileRead_close(fh) == -1){
MB("MapData Cannot Close");
return false;
}
return true;
}
#define MAP_LIST_MAX 10
#define MAP_CHIP_NUM_X 20
#define MAP_CHIP_NUM_Y 15
#define MAP_CHIP_RAYER 4
#define MAP_CHIP_MAX 1024
#define MAP_CHIP_X_MAX 192
#define MAP_CHIP_Y_MAX 192
#define VIEW_CHIP_X 20
#define VIEW_CHIP_Y 15
#define MAP_RAYER 4
#define STR_MAX 256
#define SCROLL_MAX_X 40
#define SCROLL_MAX_Y 30
struct MapData{
int*data;
int size_x;//マップのサイズX
int size_y;//マップのサイズY
int num;
int num_x;
int num_y;
int mapchip[MAP_CHIP_Y_MAX*MAP_CHIP_X_MAX];
int mapdata[MAP_CHIP_Y_MAX][MAP_CHIP_X_MAX];
int maphandle;
int mapwidth;
int mapheight;
};
質問が初歩的過ぎて答えたくない場合無視ではなく、その旨を返信して頂けると有り難い
です。