------------------------------------------------------------------------------- Open a new asset -------------------------------------------------------------------------------
| 823 | // Open a new asset |
| 824 | //------------------------------------------------------------------------------- |
| 825 | void OpenAsset() { |
| 826 | char szFileName[MAX_PATH]; |
| 827 | |
| 828 | DWORD dwTemp = MAX_PATH; |
| 829 | if(ERROR_SUCCESS != RegQueryValueEx(g_hRegistry,"CurrentApp",nullptr,nullptr, (BYTE*)szFileName,&dwTemp)) { |
| 830 | // Key was not found. Use C: |
| 831 | strcpy(szFileName,""); |
| 832 | } else { |
| 833 | // need to remove the file name |
| 834 | char* sz = strrchr(szFileName,'\\'); |
| 835 | if (!sz) |
| 836 | sz = strrchr(szFileName,'/'); |
| 837 | if (sz) |
| 838 | *sz = 0; |
| 839 | } |
| 840 | |
| 841 | // get a list of all file extensions supported by ASSIMP |
| 842 | aiString sz; |
| 843 | aiGetExtensionList(&sz); |
| 844 | |
| 845 | char szList[AI_MAXLEN + 100]; |
| 846 | strcpy(szList,"ASSIMP assets"); |
| 847 | char* szCur = szList + 14; |
| 848 | strcpy(szCur,sz.data); |
| 849 | szCur += sz.length+1; |
| 850 | strcpy(szCur,"All files"); |
| 851 | szCur += 10; |
| 852 | strcpy(szCur,"*.*"); |
| 853 | szCur[4] = 0; |
| 854 | |
| 855 | OPENFILENAME sFilename1; |
| 856 | ZeroMemory(&sFilename1, sizeof(sFilename1)); |
| 857 | sFilename1.lStructSize = sizeof(sFilename1); |
| 858 | sFilename1.hwndOwner = g_hDlg; |
| 859 | sFilename1.hInstance = GetModuleHandle(nullptr); |
| 860 | sFilename1.lpstrFile = szFileName; |
| 861 | sFilename1.lpstrFile[0] = '\0'; |
| 862 | sFilename1.nMaxFile = sizeof(szList); |
| 863 | sFilename1.lpstrFilter = szList; |
| 864 | sFilename1.nFilterIndex = 1; |
| 865 | sFilename1.lpstrFileTitle = nullptr; |
| 866 | sFilename1.nMaxFileTitle = 0; |
| 867 | sFilename1.lpstrInitialDir = nullptr; |
| 868 | sFilename1.Flags = OFN_OVERWRITEPROMPT | OFN_HIDEREADONLY | OFN_NOCHANGEDIR; |
| 869 | if (GetOpenFileName(&sFilename1) == 0) { |
| 870 | return; |
| 871 | } |
| 872 | |
| 873 | // Now store the file in the registry |
| 874 | RegSetValueExA(g_hRegistry,"CurrentApp",0,REG_SZ,(const BYTE*)szFileName,MAX_PATH); |
| 875 | |
| 876 | if (0 != strcmp(g_szFileName,szFileName)) { |
| 877 | DeleteAssetData(); |
| 878 | DeleteAsset(); |
| 879 | |
| 880 | strcpy(g_szFileName, szFileName); |
| 881 | LoadAsset(); |
| 882 |
no test coverage detected