i've started the game from within trunk/mk/linux.
Folder mydata wasn'their. So it was create by glest.bin.
Server: v3.4.0-beta2-GNUC: 40403-Jan 23 2011 01:16:30
Client: v3.4.0-beta2-GNUC: 40201 [64bit]-Jan 23 2011 00:19:55 player [m0ellemeister]
terminate called after throwing an instance of 'std::runtime_error'
what(): Couldn't scan directory 'mydata/tilesets//*': Unknown error: 0
Abort trap: 6
the glest.bin was stripped to get rid off debug informations.
EDIT:
I've found a workaround for it. Just create another empty folder under trunk/mk/linux/mydata/tilesets e.g. DeLeteMe, then it seems to work.
UPDATE:
the workeraround does not work ;-(
If i have empty subfolders under mk/linux/mydata i cannot play at all, because of errors like
main.cpp::handleRuntimeError Line: 268] [Couldn't scan directory 'mydata/tilesets/winter_forest/*': No such file or directory] gameInitialized = 1, program = 0x805974280
main.cpp::handleRuntimeError Line: 357] [Couldn't scan directory 'mydata/tilesets/winter_forest/*': No such file or directory]
Why does MG searches for tilesets/winter_forest under UserData_Root? Is this expeceted?
If i set in glest.ini UserData_Root= to an empty value i can play. But then i can't use the feature of downloading missing files via ftp (ingame), because of an error something like this: can't save file to disk. Maybe if UserData_Root isn't set $currentdir could be set automaticilly?
If i create symlinks under mydata/ to the tilesets, maps, scenarios (etc.) directories, i'll get the error that i have duplicate data and the games exits.
in.cpp::handleRuntimeError Line: 268] [You have duplicate tilesets for tileset [autumn] in [tilesets] and [mydata/tilesets]] gameInitialized = 1, program = 0x805974280
main.cpp::handleRuntimeError Line: 357] [You have duplicate tilesets for tileset [autumn] in [tilesets] and [mydata/tilesets]]
If FreeBSD is the only platform with this issue, maybe this one could be the bad one (but this is just a guess, i'm not a coder ;-) ):
File: shared_lib/sources/platform/common/platform_common.cpp
// Look recursively for sub-folders
#if defined(__APPLE__) || defined(__FreeBSD__)
res = glob(mypath.c_str(), 0, 0, &globbuf);
#else
res = glob(mypath.c_str(), GLOB_ONLYDIR, 0, &globbuf);
#endif
if(res < 0) {
std::stringstream msg;
msg << "Couldn't scan directory '" << mypath << "': " << strerror(errno);
throw runtime_error(msg.str());
}
for(int i = 0; i < globbuf.gl_pathc; ++i) {
#if defined(__APPLE__) || defined(__FreeBSD__)
struct stat statStruct;
// only process if dir..
int actStat = lstat( globbuf.gl_pathv[i], &statStruct);
if( S_ISDIR(statStruct.st_mode) == 0)
continue;
#endif
BTW: if i'm right MacOSX would be the case too.