|  | @@ -1346,7 +1346,9 @@ void laEnsureUserPreferences(){
 | 
											
												
													
														|  |      laUDFRegistry* r=laFindUDFRegistry(path);
 |  |      laUDFRegistry* r=laFindUDFRegistry(path);
 | 
											
												
													
														|  |      if(!r){ laSaveUserPreferences(); return; }
 |  |      if(!r){ laSaveUserPreferences(); return; }
 | 
											
												
													
														|  |      laUDF* udf=laOpenUDF(r->Path->Ptr,1,0,0); if(!udf){ logPrint("Can't read preferences. Using default settings."); return; }
 |  |      laUDF* udf=laOpenUDF(r->Path->Ptr,1,0,0); if(!udf){ logPrint("Can't read preferences. Using default settings."); return; }
 | 
											
												
													
														|  | -    laClearUDFRegistries(); while(MAIN.ResourceFolders.pFirst){ laRemoveResourceFolder(MAIN.ResourceFolders.pFirst); }
 |  | 
 | 
											
												
													
														|  | 
 |  | +    laClearUDFRegistries();
 | 
											
												
													
														|  | 
 |  | +    while(MAIN.ResourceFolders.pFirst){ laRemoveResourceFolder(MAIN.ResourceFolders.pFirst); }
 | 
											
												
													
														|  | 
 |  | +    while(MAIN.InputMapping->InputMappings.pFirst){ laRemoveInputMapping(MAIN.InputMapping->InputMappings.pFirst); }
 | 
											
												
													
														|  |      laExtractUDF(udf,0,LA_UDF_MODE_OVERWRITE,0);
 |  |      laExtractUDF(udf,0,LA_UDF_MODE_OVERWRITE,0);
 | 
											
												
													
														|  |      laCloseUDF(udf);
 |  |      laCloseUDF(udf);
 | 
											
												
													
														|  |      laRefreshUDFRegistries();
 |  |      laRefreshUDFRegistries();
 | 
											
										
											
												
													
														|  | @@ -1399,6 +1401,7 @@ laInputMapping* laNewInputMapping(char* Name){
 | 
											
												
													
														|  |      laInputMapping* im=memAcquireHyper(sizeof(laInputMapping)); lstAppendItem(&MAIN.InputMapping->InputMappings,im);
 |  |      laInputMapping* im=memAcquireHyper(sizeof(laInputMapping)); lstAppendItem(&MAIN.InputMapping->InputMappings,im);
 | 
											
												
													
														|  |      memAssignRef(MAIN.InputMapping,&MAIN.InputMapping->CurrentInputMapping,im);
 |  |      memAssignRef(MAIN.InputMapping,&MAIN.InputMapping->CurrentInputMapping,im);
 | 
											
												
													
														|  |      strSafeSet(&im->Name,Name);
 |  |      strSafeSet(&im->Name,Name);
 | 
											
												
													
														|  | 
 |  | +    return im;
 | 
											
												
													
														|  |  }
 |  |  }
 | 
											
												
													
														|  |  laInputMappingEntry* laNewInputMappingEntry(laInputMapping* im, int DeviceType, int JoystickDevice, char* Key, int SpecialKeyBit, char* Signal){
 |  |  laInputMappingEntry* laNewInputMappingEntry(laInputMapping* im, int DeviceType, int JoystickDevice, char* Key, int SpecialKeyBit, char* Signal){
 | 
											
												
													
														|  |      laInputMappingEntry* e=memAcquire(sizeof(laInputMappingEntry)); lstAppendItem(&im->Entries,e);
 |  |      laInputMappingEntry* e=memAcquire(sizeof(laInputMappingEntry)); lstAppendItem(&im->Entries,e);
 |