allow ignoring actor errors

This commit is contained in:
Glenn Maynard
2004-08-12 23:06:06 +00:00
parent 3819c4695c
commit 389bbc68d2
+12 -4
View File
@@ -176,14 +176,19 @@ retry:
if( asPaths.empty() ) if( asPaths.empty() )
{ {
CString sError = ssprintf( "The actor file '%s' references a file '%s' which doesn't exist.", sIniPath.c_str(), sFile.c_str() ); CString sError = ssprintf( "The actor file '%s' references a file '%s' which doesn't exist.", sIniPath.c_str(), sFile.c_str() );
switch( Dialog::RetryCancel( sError, sError ) ) switch( Dialog::AbortRetryIgnore( sError, "BROKEN_ACTOR_REFERENCE" ) )
{ {
case Dialog::cancel: case Dialog::abort:
RageException::Throw( sError ); RageException::Throw( sError );
break; break;
case Dialog::retry: case Dialog::retry:
FlushDirCache(); FlushDirCache();
goto retry; goto retry;
case Dialog::ignore:
asPaths.push_back( sNewPath );
if( GetExtension(asPaths[0]) == "" )
asPaths[0] = SetExtension( asPaths[0], "png" );
break;
default: default:
ASSERT(0); ASSERT(0);
} }
@@ -191,14 +196,17 @@ retry:
else if( asPaths.size() > 1 ) else if( asPaths.size() > 1 )
{ {
CString sError = ssprintf( "The actor file '%s' references a file '%s' which has multiple matches.", sIniPath.c_str(), sFile.c_str() ); CString sError = ssprintf( "The actor file '%s' references a file '%s' which has multiple matches.", sIniPath.c_str(), sFile.c_str() );
switch( Dialog::RetryCancel( sError, sError ) ) switch( Dialog::AbortRetryIgnore( sError, "DUPLICATE_ACTOR_REFERENCE" ) )
{ {
case Dialog::cancel: case Dialog::abort:
RageException::Throw( sError ); RageException::Throw( sError );
break; break;
case Dialog::retry: case Dialog::retry:
FlushDirCache(); FlushDirCache();
goto retry; goto retry;
case Dialog::ignore:
asPaths.erase( asPaths.begin()+1, asPaths.end() );
break;
default: default:
ASSERT(0); ASSERT(0);
} }