Can you also program C++?
If yes, then have a look into the teeworlds source code and there file "src/engine/e_datafile.c".
Especially look at the function "datafile_load()", line 92 - 99:
/* TODO: change this header */
io_read(file, &header, sizeof(header));
if(header.id[0] != 'A' || header.id[1] != 'T' || header.id[2] != 'A' || header.id[3] != 'D')
{
if(header.id[0] != 'D' || header.id[1] != 'A' || header.id[2] != 'T' || header.id[3] != 'A')
{
dbg_msg("datafile", "wrong signature. %x %x %x %x"
,header.id[0], header.id[1], header.id[2], header.id[3]);
return 0;
}
}
As it seems to me, teeworlds mainly recognizes teeworlds through this,
and additionally through the header version:
#if defined(CONF_ARCH_ENDIAN_BIG)
swap_endian(&header, sizeof(int), sizeof(header)/sizeof(int));
#endif
if(header.version != 3 && header.version != 4)
{
dbg_msg("datafile", "wrong version. version=%x", header.version);
return 0;
}
Edit: Sorry for my bad English...