uint64 MFFileSystem_RegisterFilesystemModules(int filesystemModule) { uint64 fsBit = 1ULL << filesystemModule; // mount filesystems MFFileSystemHandle hNativeFileSystem = MFModule_RegisterModule("MFFileSystemNative", MFFileSystemNative_InitModule, MFFileSystemNative_DeinitModule, fsBit); MFFileSystemHandle hMemoryFileSystem = MFModule_RegisterModule("MFFileSystemMemory", MFFileSystemMemory_InitModule, MFFileSystemMemory_DeinitModule, fsBit); MFFileSystemHandle hCachedFileSystem = MFModule_RegisterModule("MFFileSystemCachedFile", MFFileSystemCachedFile_InitModule, MFFileSystemCachedFile_DeinitModule, fsBit); MFFileSystemHandle hZipFileSystem = MFModule_RegisterModule("MFFileSystemZipFile", MFFileSystemZipFile_InitModule, MFFileSystemZipFile_DeinitModule, fsBit); uint64 socketsBit = MFModule_GetBuiltinModuleMask(MFBIM_MFSockets); MFFileSystemHandle hHTTPFileSystem = MFModule_RegisterModule("MFFileSystemHTTP", MFFileSystemHTTP_InitModule, MFFileSystemHTTP_DeinitModule, fsBit | socketsBit); uint64 filesystems = 0; filesystems |= 1ULL << hNativeFileSystem; filesystems |= 1ULL << hMemoryFileSystem; filesystems |= 1ULL << hCachedFileSystem; filesystems |= 1ULL << hZipFileSystem; filesystems |= 1ULL << hHTTPFileSystem; gpEngineInstance->builtinModuleIDs[MFBIM_MFFileSystem] = (char)MFModule_RegisterModule("MFFileSystem", MFFileSystem_InitFileSystems, NULL, filesystems); filesystems |= MFModule_GetBuiltinModuleMask(MFBIM_MFFileSystem); return filesystems; }
uint64 MFModule_RegisterCoreModules() { gBuiltinModuleIDs[MFBIM_MFUtil] = (char)MFModule_RegisterModule("MFUtil", MFUtil_InitModule, NULL, 0); gCoreModules = MFModule_GetBuiltinModuleMask(MFBIM_MFUtil); gBuiltinModuleIDs[MFBIM_MFHeap] = (char)MFModule_RegisterModule("MFHeap", MFHeap_InitModule, MFHeap_DeinitModule, 0); uint64 heap = MFModule_GetBuiltinModuleMask(MFBIM_MFHeap); gCoreModules |= heap; gBuiltinModuleIDs[MFBIM_MFThread] = (char)MFModule_RegisterModule("MFThread", MFThread_InitModule, MFThread_DeinitModule, heap); gCoreModules |= MFModule_GetBuiltinModuleMask(MFBIM_MFThread); gBuiltinModuleIDs[MFBIM_MFString] = (char)MFModule_RegisterModule("MFString", MFString_InitModule, MFString_DeinitModule, heap); gCoreModules |= MFModule_GetBuiltinModuleMask(MFBIM_MFString); gBuiltinModuleIDs[MFBIM_MFSockets] = (char)MFModule_RegisterModule("MFSockets", MFSockets_InitModule, MFSockets_DeinitModule, heap); gCoreModules |= MFModule_GetBuiltinModuleMask(MFBIM_MFSockets); int fs = MFModule_RegisterModule("MFFileSystem_pre-init", MFFileSystem_InitModule, MFFileSystem_DeinitModule, heap); gCoreModules |= 1ULL << fs; // register the filesystems gCoreModules |= MFFileSystem_RegisterFilesystemModules(fs); return gCoreModules; }
uint64 MFModule_RegisterEngineModules() { uint64 modules = MFModule_RegisterCoreModules(); uint64 basicModules = MFModule_GetBuiltinModuleMask(MFBIM_MFHeap) | MFModule_GetBuiltinModuleMask(MFBIM_MFString) | MFModule_GetBuiltinModuleMask(MFBIM_MFThread); gBuiltinModuleIDs[MFBIM_DebugMenu] = (char)MFModule_RegisterModule("DebugMenu", DebugMenu_InitModule, DebugMenu_DeinitModule, basicModules); modules |= MFModule_GetBuiltinModuleMask(MFBIM_DebugMenu); gBuiltinModuleIDs[MFBIM_MFCallstack] = (char)MFModule_RegisterModule("MFCallstack", MFCallstack_InitModule, MFCallstack_DeinitModule, basicModules); modules |= MFModule_GetBuiltinModuleMask(MFBIM_MFCallstack); basicModules |= MFModule_GetBuiltinModuleMask(MFBIM_DebugMenu) | MFModule_GetBuiltinModuleMask(MFBIM_MFCallstack); uint64 fs = MFModule_GetBuiltinModuleMask(MFBIM_MFFileSystem); uint64 net = MFModule_GetBuiltinModuleMask(MFBIM_MFSockets); gSystemTimer.Init(NULL); gSystemTimeDelta = gSystemTimer.TimeDeltaF(); gBuiltinModuleIDs[MFBIM_Timer] = (char)MFModule_RegisterModule("Timer", Timer_InitModule, Timer_DeinitModule, basicModules); modules |= MFModule_GetBuiltinModuleMask(MFBIM_Timer); gBuiltinModuleIDs[MFBIM_MFSystem] = (char)MFModule_RegisterModule("MFSystem", MFSystem_InitModule, MFSystem_DeinitModule, basicModules); modules |= MFModule_GetBuiltinModuleMask(MFBIM_MFSystem); gBuiltinModuleIDs[MFBIM_MFResource] = (char)MFModule_RegisterModule("MFResource", MFResource_InitModule, MFResource_DeinitModule, basicModules); modules |= MFModule_GetBuiltinModuleMask(MFBIM_MFResource); basicModules |= MFModule_GetBuiltinModuleMask(MFBIM_MFSystem) | MFModule_GetBuiltinModuleMask(MFBIM_MFResource); gBuiltinModuleIDs[MFBIM_MFView] = (char)MFModule_RegisterModule("MFView", MFView_InitModule, MFView_DeinitModule, basicModules); modules |= MFModule_GetBuiltinModuleMask(MFBIM_MFView); gBuiltinModuleIDs[MFBIM_MFRenderer] = (char)MFModule_RegisterModule("MFRenderer", MFRenderer_InitModule, MFRenderer_DeinitModule, basicModules); uint64 renderer = MFModule_GetBuiltinModuleMask(MFBIM_MFRenderer); modules |= renderer; gBuiltinModuleIDs[MFBIM_MFDisplay] = (char)MFModule_RegisterModule("MFDisplay", MFDisplay_InitModule, MFDisplay_DeinitModule, renderer); modules |= MFModule_GetBuiltinModuleMask(MFBIM_MFDisplay); gBuiltinModuleIDs[MFBIM_MFInput] = (char)MFModule_RegisterModule("MFInput", MFInput_InitModule, MFInput_DeinitModule, basicModules); modules |= MFModule_GetBuiltinModuleMask(MFBIM_MFInput); gBuiltinModuleIDs[MFBIM_MFSound] = (char)MFModule_RegisterModule("MFSound", MFSound_InitModule, MFSound_DeinitModule, basicModules); modules |= MFModule_GetBuiltinModuleMask(MFBIM_MFSound); gBuiltinModuleIDs[MFBIM_MFRenderState] = (char)MFModule_RegisterModule("MFRenderState", MFRenderState_InitModule, MFRenderState_DeinitModule, renderer); uint64 renderState = MFModule_GetBuiltinModuleMask(MFBIM_MFRenderState); renderer |= renderState; modules |= renderState; gBuiltinModuleIDs[MFBIM_MFShader] = (char)MFModule_RegisterModule("MFShader", MFShader_InitModule, MFShader_DeinitModule, renderer); uint64 shader = MFModule_GetBuiltinModuleMask(MFBIM_MFShader); modules |= shader; gBuiltinModuleIDs[MFBIM_MFEffect] = (char)MFModule_RegisterModule("MFEffect", MFEffect_InitModule, MFEffect_DeinitModule, shader); uint64 effect = MFModule_GetBuiltinModuleMask(MFBIM_MFEffect); modules |= effect; gBuiltinModuleIDs[MFBIM_MFTexture] = (char)MFModule_RegisterModule("MFTexture", MFTexture_InitModule, MFTexture_DeinitModule, renderer); uint64 texture = MFModule_GetBuiltinModuleMask(MFBIM_MFTexture); modules |= texture; gBuiltinModuleIDs[MFBIM_MFMaterial] = (char)MFModule_RegisterModule("MFMaterial", MFMaterial_InitModule, MFMaterial_DeinitModule, texture); uint64 material = MFModule_GetBuiltinModuleMask(MFBIM_MFMaterial); modules |= material; gBuiltinModuleIDs[MFBIM_MFVertex] = (char)MFModule_RegisterModule("MFVertex", MFVertex_InitModule, MFVertex_DeinitModule, renderer); modules |= MFModule_GetBuiltinModuleMask(MFBIM_MFVertex); gBuiltinModuleIDs[MFBIM_MFModel] = (char)MFModule_RegisterModule("MFModel", MFModel_InitModule, MFModel_DeinitModule, material); uint64 model = MFModule_GetBuiltinModuleMask(MFBIM_MFModel); modules |= model; gBuiltinModuleIDs[MFBIM_MFAnimation] = (char)MFModule_RegisterModule("MFAnimation", MFAnimation_InitModule, MFAnimation_DeinitModule, model); uint64 animation = MFModule_GetBuiltinModuleMask(MFBIM_MFAnimation); modules |= animation; gBuiltinModuleIDs[MFBIM_MFAnimScript] = (char)MFModule_RegisterModule("MFAnimScript", MFAnimScript_InitModule, MFAnimScript_DeinitModule, animation); modules |= MFModule_GetBuiltinModuleMask(MFBIM_MFAnimScript); gBuiltinModuleIDs[MFBIM_MFPrimitive] = (char)MFModule_RegisterModule("MFPrimitive", MFPrimitive_InitModule, MFPrimitive_DeinitModule, material); modules |= MFModule_GetBuiltinModuleMask(MFBIM_MFPrimitive); gBuiltinModuleIDs[MFBIM_MFFont] = (char)MFModule_RegisterModule("MFFont", MFFont_InitModule, MFFont_DeinitModule, material | fs); modules |= MFModule_GetBuiltinModuleMask(MFBIM_MFFont); gBuiltinModuleIDs[MFBIM_MFCompute] = (char)MFModule_RegisterModule("MFCompute", MFCompute_InitModule, MFCompute_DeinitModule, renderer); modules |= MFModule_GetBuiltinModuleMask(MFBIM_MFCompute); gBuiltinModuleIDs[MFBIM_MFCollision] = (char)MFModule_RegisterModule("MFCollision", MFCollision_InitModule, MFCollision_DeinitModule, basicModules); modules |= MFModule_GetBuiltinModuleMask(MFBIM_MFCollision); gBuiltinModuleIDs[MFBIM_MFNetwork] = (char)MFModule_RegisterModule("MFNetwork", MFNetwork_InitModule, MFNetwork_DeinitModule, basicModules | net); modules |= MFModule_GetBuiltinModuleMask(MFBIM_MFNetwork); #if defined(_ENABLE_SCRIPTING) gBuiltinModuleIDs[MFBIM_MFScript] = (char)MFModule_RegisterModule("MFScript", MFScript_InitModule, MFScript_DeinitModule, basicModules); modules |= MFModule_GetBuiltinModuleMask(MFBIM_MFScript); #endif if(pSystemCallbacks[MFCB_RegisterModules]) pSystemCallbacks[MFCB_RegisterModules](); return modules; }