I think this is a bug...
the physfs version calls:
void al_set_physfs_file_interface(void) { al_set_new_file_interface(&file_phys_vtable); _al_set_physfs_fs_interface(); }
Which leadds to setting the actual interface:
void _al_set_physfs_fs_interface(void) { al_set_fs_interface(&fs_phys_vtable); }
But, setting the standard one only sets new interface:
/* Function: al_set_standard_file_interface */ void al_set_standard_file_interface(void) { al_set_new_file_interface(&_al_file_interface_stdio); }
For whatever reason, when I trace everything, the fs_interface is never set when calling al_set_standard_fs_interface.
I consider this a bug in the PhysFS addon.
I'm not sure how it is all supposed to function but, the function to get the current filesystem interface resurns fs_interface and not new_fs_interface. I'm not quite sure what new_fs_interface is used for. I noticed that when setting the physfs one, it sets both new_fs_interface and fs_interface variables of the tls object while calling set standard file interface only sets new_fs_interface. That is what lead me to believe standard file interface was incorrect, but it could be PhysFS that should only be setting the new interface variable.