map-tool: search for more files
This commit is contained in:
parent
ceb5fff333
commit
ad6584d82a
@ -168,17 +168,38 @@ fn load_texture<'bsp,'vpk,'a>(finder:BspFinder<'bsp,'vpk>,texture_name:&str)->Re
|
|||||||
let texture_file_name_lowercase=texture_name.to_lowercase();
|
let texture_file_name_lowercase=texture_name.to_lowercase();
|
||||||
texture_file_name.push(texture_file_name_lowercase.clone());
|
texture_file_name.push(texture_file_name_lowercase.clone());
|
||||||
//remove stem and search for both vtf and vmt files
|
//remove stem and search for both vtf and vmt files
|
||||||
let stem=PathBuf::from(texture_file_name.file_stem().unwrap());
|
let stem=texture_file_name.file_stem().unwrap().to_owned();
|
||||||
texture_file_name.pop();
|
texture_file_name.pop();
|
||||||
texture_file_name.push(stem);
|
texture_file_name.push(stem);
|
||||||
if let Some(stuff)=finder.find(texture_file_name.to_str().unwrap())?{
|
if let Some(stuff)=finder.find(texture_file_name.to_str().unwrap())?{
|
||||||
return Ok(Some(stuff))
|
return Ok(Some(stuff));
|
||||||
}
|
}
|
||||||
//somehow search for both files
|
|
||||||
|
// search for both vmt,vtf
|
||||||
let mut texture_file_name_vmt=texture_file_name.clone();
|
let mut texture_file_name_vmt=texture_file_name.clone();
|
||||||
texture_file_name.set_extension("vtf");
|
|
||||||
texture_file_name_vmt.set_extension("vmt");
|
texture_file_name_vmt.set_extension("vmt");
|
||||||
recursive_vmt_loader(finder,get_vmt(finder,texture_file_name_vmt.to_str().unwrap())?)
|
let vmt_result=recursive_vmt_loader(finder,get_vmt(finder,texture_file_name_vmt.to_str().unwrap())?);
|
||||||
|
match vmt_result{
|
||||||
|
Ok(Some(stuff))=>return Ok(Some(stuff)),
|
||||||
|
Ok(None)
|
||||||
|
|Err(LoadVMTError::NotFound)=>(),
|
||||||
|
|Err(LoadVMTError::GetVMT(GetVMTError::NotFound))=>(),
|
||||||
|
Err(e)=>return Err(e),
|
||||||
|
}
|
||||||
|
|
||||||
|
// try looking for vtf
|
||||||
|
let mut texture_file_name_vtf=texture_file_name.clone();
|
||||||
|
texture_file_name_vtf.set_extension("vtf");
|
||||||
|
let vtf_result=recursive_vmt_loader(finder,get_vmt(finder,texture_file_name_vtf.to_str().unwrap())?);
|
||||||
|
match vtf_result{
|
||||||
|
Ok(Some(stuff))=>return Ok(Some(stuff)),
|
||||||
|
Ok(None)
|
||||||
|
|Err(LoadVMTError::NotFound)=>(),
|
||||||
|
|Err(LoadVMTError::GetVMT(GetVMTError::NotFound))=>(),
|
||||||
|
Err(e)=>return Err(e),
|
||||||
|
}
|
||||||
|
|
||||||
|
Ok(None)
|
||||||
}
|
}
|
||||||
#[derive(Debug,thiserror::Error)]
|
#[derive(Debug,thiserror::Error)]
|
||||||
enum ExtractTextureError{
|
enum ExtractTextureError{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user