@ -30,16 +30,15 @@ namespace CTFAK.MMFParser.Translation
public static Dictionary < int , FrameItem > FrameItems ;
public static Dictionary < int , FrameItem > FrameItems ;
public static event Program . DumperEvent OnMessage ;
public static event Program . DumperEvent OnMessage ;
public static void Translate ( ref MFA . MFA mfa , GameData game )
public static void Translate ( ref MFA . MFA mfa , GameData game )
{
{
Message ( "Running Pame2MFA" ) ;
Message ( "Running Pame2MFA" ) ;
Message ( "Original MFA Build: " + mfa . BuildVersion ) ;
Message ( "Original MFA Build: " + mfa . BuildVersion ) ;
Message ( "" ) ;
Message ( "" ) ;
// mfa.MfaBuild = 4;
// mfa.Product = (int) game.ProductVersion;
// mfa.BuildVersion = 283;
mfa . Name = game . Name ;
mfa . Name = game . Name ;
mfa . LangId = 8192 ;
mfa . LangId = 0 ; //8192;
mfa . Description = "" ;
mfa . Description = "" ;
mfa . Path = game . EditorFilename ;
mfa . Path = game . EditorFilename ;
@ -68,12 +67,15 @@ namespace CTFAK.MMFParser.Translation
var flags = game . Header . Flags ;
var flags = game . Header . Flags ;
var newFlags = game . Header . NewFlags ;
var newFlags = game . Header . NewFlags ;
mfa . Extensions . Clear ( ) ;
mfa . Extensions . Clear ( ) ;
//TODO:Flags, no setter
displaySettings [ "MDI" ] = newFlags [ "MDI" ] ;
displaySettings [ "MenuBar" ] = flags [ "MenuBar" ] ;
displaySettings [ "MenuOnBoot" ] = ! flags [ "MenuHidden" ] ;
graphicSettings [ "MultiSamples" ] = flags [ "MultiSamples" ] ;
mfa . DisplayFlags = displaySettings ;
mfa . WindowX = game . Header . WindowWidth ;
mfa . WindowX = game . Header . WindowWidth ;
mfa . WindowY = game . Header . WindowHeight ;
mfa . WindowY = game . Header . WindowHeight ;
mfa . BorderColor = game . Header . BorderColor ;
mfa . BorderColor = game . Header . BorderColor ;
mfa . HelpFile = "" ;
mfa . HelpFile = "" ;
mfa . VitalizePreview = new byte [ ] { 0x0 } ;
mfa . InitialScore = game . Header . InitialScore ;
mfa . InitialScore = game . Header . InitialScore ;
mfa . InitialLifes = game . Header . InitialLives ;
mfa . InitialLifes = game . Header . InitialLives ;
mfa . FrameRate = game . Header . FrameRate ;
mfa . FrameRate = game . Header . FrameRate ;
@ -91,7 +93,244 @@ namespace CTFAK.MMFParser.Translation
{
{
var key = game . Frameitems . ItemDict . Keys . ToArray ( ) [ i ] ;
var key = game . Frameitems . ItemDict . Keys . ToArray ( ) [ i ] ;
var item = game . Frameitems . ItemDict [ key ] ;
var item = game . Frameitems . ItemDict [ key ] ;
//if (item.ObjectType != 2 && item.ObjectType != 1 && item.ObjectType != 3) break;
var newItem = TranslateObject ( item ) ;
if ( newItem . Loader = = null ) throw new NotImplementedException ( "Unsupported Object: " + newItem . ObjectType ) ;
FrameItems . Add ( newItem . Handle , newItem ) ;
}
// var reference = mfa.Frames.FirstOrDefault();
mfa . Frames . Clear ( ) ;
foreach ( Frame frame in game . Frames )
{
if ( frame . Palette = = null | | frame . Events = = null | | frame . Objects = = null ) continue ;
var newFrame = new MFA . Loaders . Frame ( null ) ;
newFrame . Handle = game . Frames . IndexOf ( frame ) + 1 ;
newFrame . Name = frame . Name ;
newFrame . SizeX = frame . Width ;
newFrame . SizeY = frame . Height ;
newFrame . Background = frame . Background ;
newFrame . FadeIn = null ;
newFrame . FadeOut = null ;
// newFrame.UnkString = " ";
var mfaFlags = newFrame . Flags ;
var originalFlags = frame . Flags ;
mfaFlags [ "GrabDesktop" ] = originalFlags [ "GrabDesktop" ] ;
mfaFlags [ "KeepDisplay" ] = originalFlags [ "KeepDisplay" ] ;
mfaFlags [ "BackgroundCollisions" ] = originalFlags [ "TotalCollisionMask" ] ;
mfaFlags [ "ResizeToScreen" ] = originalFlags [ "ResizeAtStart" ] ;
mfaFlags [ "ForceLoadOnCall" ] = originalFlags [ "ForceLoadOnCall" ] ;
mfaFlags [ "NoDisplaySurface" ] = false ;
mfaFlags [ "TimerBasedMovements" ] = originalFlags [ "TimedMovements" ] ;
newFrame . Flags = mfaFlags ;
newFrame . MaxObjects = frame . Events ? . MaxObjects ? ? 10000 ;
newFrame . Password = "" ;
newFrame . LastViewedX = 320 ;
newFrame . LastViewedY = 240 ;
newFrame . Palette = frame . Palette . Items ;
newFrame . StampHandle = 13 ;
newFrame . ActiveLayer = 0 ;
//LayerInfo
var count = frame . Layers . Items . Count ;
Logger . Log ( $"{newFrame.Name} - {count}" ) ;
for ( int i = 0 ; i < count ; i + + )
{
var layer = frame . Layers . Items [ i ] ;
var newLayer = new MFA . Loaders . Layer ( null ) ;
newLayer . Name = layer . Name ;
newLayer . Flags [ "HideAtStart" ] = layer . Flags [ "ToHide" ] ;
newLayer . Flags [ "Visible" ] = true ;
newLayer . Flags [ "NoBackground" ] = layer . Flags [ "DoNotSaveBackground" ] ;
newLayer . Flags [ "WrapHorizontally" ] = layer . Flags [ "WrapHorizontally" ] ;
newLayer . Flags [ "WrapVertically" ] = layer . Flags [ "WrapVertically" ] ;
// newLayer.Flags.flag = 0;
newLayer . XCoefficient = layer . XCoeff ;
newLayer . YCoefficient = layer . YCoeff ;
newFrame . Layers . Add ( newLayer ) ;
// break;
//
}
Message ( "Translating frame: " + newFrame . Name ) ;
var newFrameItems = new List < FrameItem > ( ) ;
var newInstances = new List < FrameInstance > ( ) ;
if ( frame . Objects ! = null )
{
for ( int i = 0 ; i < frame . Objects . Items . Count ; i + + )
{
var instance = frame . Objects . Items [ i ] ;
FrameItem frameItem ;
if ( FrameItems . ContainsKey ( instance . ObjectInfo ) )
{
frameItem = FrameItems [ instance . ObjectInfo ] ;
if ( ! newFrameItems . Contains ( frameItem ) ) newFrameItems . Add ( frameItem ) ;
var newInstance = new FrameInstance ( ( ByteReader ) null ) ;
newInstance . X = instance . X ;
newInstance . Y = instance . Y ;
newInstance . Handle = instance . Handle ;
newInstance . Flags = instance . FrameItem . Flags . flag ;
newInstance . ParentType = ( uint ) instance . ParentType ;
newInstance . ItemHandle = ( uint ) ( instance . ObjectInfo ) ;
newInstance . ParentHandle = ( uint ) instance . ParentHandle ;
newInstance . Layer = 0 ; //(uint) (instance.Layer);
newInstances . Add ( newInstance ) ;
// Logger.Log($"{instance.FrameItem.Name} - {i}");
}
}
}
newFrame . Items = newFrameItems ;
newFrame . Instances = newInstances ;
newFrame . Folders = new List < ItemFolder > ( ) ;
foreach ( FrameItem newFrameItem in newFrame . Items )
{
var newFolder = new ItemFolder ( ( ByteReader ) null ) ;
newFolder . isRetard = true ;
newFolder . Items = new List < uint > ( ) { ( uint ) newFrameItem . Handle } ;
newFrame . Folders . Add ( newFolder ) ;
}
if ( frame . Events ! = null )
{
newFrame . Events = new Events ( ( ByteReader ) null ) ; //MFA.MFA.emptyEvents;
newFrame . Events . Items = new List < EventGroup > ( ) ;
newFrame . Events . Objects = new List < EventObject > ( ) ;
newFrame . Events . _cache = MFA . MFA . emptyEvents . _cache ;
newFrame . Events . _ifMFA = true ;
newFrame . Events . Version = 1028 ;
if ( frame . Name = = "jopajopaher" )
{
foreach ( var item in newFrame . Items )
{
var newObject = new EventObject ( ( ByteReader ) null ) ;
newObject . Handle = ( uint ) item . Handle ;
newObject . Name = item . Name ? ? "" ;
newObject . TypeName = "" ;
newObject . ItemType = ( ushort ) item . ObjectType ;
newObject . ObjectType = 1 ;
newObject . Flags = 0 ;
newObject . ItemHandle = ( uint ) item . Handle ;
newObject . InstanceHandle = 0xFFFFFFFF ;
newFrame . Events . Objects . Add ( newObject ) ;
}
foreach ( EventGroup item in frame . Events . Items )
{
/ * foreach ( Action itemAction in item . Actions )
{
for ( int a = 0 ; a < itemAction . Items . Count ; a + + )
{
if ( itemAction . Items [ a ] . Loader is ExpressionParameter exp )
{
// itemAction.Items.Remove(itemAction.Items[a]);
}
else if ( itemAction . Items [ a ] . Loader is Sample )
{
itemAction . Items . Remove ( itemAction . Items [ a ] ) ;
}
}
}
foreach ( Condition itemAction in item . Conditions )
{
for ( int a = 0 ; a < itemAction . Items . Count ; a + + )
{
if ( itemAction . Items [ a ] . Loader is ExpressionParameter exp )
{
// itemAction.Items.Remove(itemAction.Items[a]);
}
else if ( itemAction . Items [ a ] . Loader is Sample )
{
itemAction . Items . Remove ( itemAction . Items [ a ] ) ;
}
}
} * /
newFrame . Events . Items . Add ( item ) ;
}
}
}
newFrame . Chunks = new ChunkList ( null ) ;
mfa . Frames . Add ( newFrame ) ;
}
}
public static MFA . Loaders . Transition ConvertTransition ( EXE . Loaders . Transition gameTrans )
{
var mfaTrans = new MFA . Loaders . Transition ( ( ByteReader ) null ) ;
mfaTrans . Module = gameTrans . ModuleFile ;
mfaTrans . Name = gameTrans . Name . FirstCharToUpper ( ) ;
mfaTrans . Id = gameTrans . Module ;
mfaTrans . TransitionId = gameTrans . Name ;
mfaTrans . Flags = gameTrans . Flags ;
mfaTrans . Color = gameTrans . Color ;
mfaTrans . ParameterData = gameTrans . ParameterData ;
mfaTrans . Duration = gameTrans . Duration ;
return mfaTrans ;
}
public static ValueList ConvertValue ( AlterableValues values )
{
var alterables = new ValueList ( null ) ;
if ( values ! = null )
{
for ( int i = 0 ; i < values . Items . Count ; i + + )
{
var item = values . Items [ i ] ;
var newValue = new ValueItem ( null ) ;
newValue . Name = $"Alterable Value {i+1}" ;
newValue . Value = item ;
alterables . Items . Add ( newValue ) ;
}
}
else
{
return alterables ;
}
return alterables ;
}
public static ValueList ConvertStrings ( AlterableStrings values )
{
var alterables = new ValueList ( null ) ;
if ( values ! = null )
{
for ( int i = 0 ; i < values . Items . Count ; i + + )
{
var item = values . Items [ i ] ;
var newValue = new ValueItem ( null ) ;
newValue . Name = $"Alterable String {i+1}" ;
newValue . Value = item ;
alterables . Items . Add ( newValue ) ;
}
}
else
{
return alterables ;
}
return alterables ;
}
public static FrameItem TranslateObject ( ObjectInfo item )
{
var newItem = new FrameItem ( null ) ;
var newItem = new FrameItem ( null ) ;
newItem . Name = item . Name ;
newItem . Name = item . Name ;
newItem . ObjectType = item . ObjectType ;
newItem . ObjectType = item . ObjectType ;
@ -104,21 +343,37 @@ namespace CTFAK.MMFParser.Translation
newItem . IconHandle = 12 ;
newItem . IconHandle = 12 ;
newItem . Chunks = new ChunkList ( null ) ;
newItem . Chunks = new ChunkList ( null ) ;
if ( item . ObjectType = = 0 )
{
var backdropLoader = ( EXE . Loaders . Objects . Quickbackdrop ) item . Properties . Loader ;
var backdrop = new QuickBackdrop ( ( ByteReader ) null ) ;
backdrop . ObstacleType = ( uint ) backdropLoader . ObstacleType ;
backdrop . CollisionType = ( uint ) backdropLoader . CollisionType ;
backdrop . Width = backdropLoader . Width ;
backdrop . Height = backdropLoader . Height ;
backdrop . Shape = backdropLoader . Shape . ShapeType ;
backdrop . BorderSize = backdropLoader . Shape . BorderSize ;
backdrop . FillType = backdropLoader . Shape . FillType ;
backdrop . Color1 = backdropLoader . Shape . Color1 ;
backdrop . Color2 = backdropLoader . Shape . Color2 ;
backdrop . Flags = backdropLoader . Shape . GradFlags ;
backdrop . Image = backdropLoader . Image ;
newItem . Loader = backdrop ;
if ( item . ObjectType = = 1 )
}
else if ( item . ObjectType = = 1 )
{
{
var backdropLoader = ( EXE . Loaders . Objects . Backdrop ) item . Properties . Loader ;
var backdropLoader = ( EXE . Loaders . Objects . Backdrop ) item . Properties . Loader ;
var backdrop = new Backdrop ( ( ByteReader ) null ) ;
var backdrop = new Backdrop ( ( ByteReader ) null ) ;
backdrop . ObstacleType = ( uint ) backdropLoader . ObstacleType ;
backdrop . ObstacleType = ( uint ) backdropLoader . ObstacleType ;
backdrop . CollisionType = ( uint ) backdropLoader . CollisionType ;
backdrop . CollisionType = ( uint ) backdropLoader . CollisionType ;
backdrop . Handle = backdropLoader . Image ;
backdrop . Handle = backdropLoader . Image ;
//TODO:Implement QuickBackdrops
newItem . Loader = backdrop ;
newItem . Loader = backdrop ;
}
}
else
else
{
{
var itemLoader = ( ObjectCommon ) item ? . Properties ? . Loader ;
var itemLoader = ( ObjectCommon ) item ? . Properties ? . Loader ;
if ( itemLoader = = null ) continue ;
if ( itemLoader = = null ) throw new NotImplementedException ( "Null loader" ) ;
Logger . Log ( "Translating Object: " + itemLoader . Parent . Name ) ;
Logger . Log ( "Translating Object: " + itemLoader . Parent . Name ) ;
//CommonSection
//CommonSection
var newObject = new ObjectLoader ( null ) ;
var newObject = new ObjectLoader ( null ) ;
@ -168,6 +423,7 @@ namespace CTFAK.MMFParser.Translation
{
{
var origAnim = animHeader . AnimationDict . ToArray ( ) [ j ] ;
var origAnim = animHeader . AnimationDict . ToArray ( ) [ j ] ;
var newAnimation = new Animation ( null ) ;
var newAnimation = new Animation ( null ) ;
newAnimation . Name = $"User Defined {j}" ;
var newDirections = new List < AnimationDirection > ( ) ;
var newDirections = new List < AnimationDirection > ( ) ;
EXE . Loaders . Objects . Animation animation = null ;
EXE . Loaders . Objects . Animation animation = null ;
try
try
@ -184,6 +440,8 @@ namespace CTFAK.MMFParser.Translation
}
}
if ( animation ! = null )
if ( animation ! = null )
{
if ( animation . DirectionDict ! = null )
{
{
for ( int n = 0 ; n < animation . DirectionDict . Count ; n + + )
for ( int n = 0 ; n < animation . DirectionDict . Count ; n + + )
{
{
@ -197,6 +455,11 @@ namespace CTFAK.MMFParser.Translation
newDirection . Frames = direction . Frames ;
newDirection . Frames = direction . Frames ;
newDirections . Add ( newDirection ) ;
newDirections . Add ( newDirection ) ;
}
}
}
else
{
}
newAnimation . Directions = newDirections ;
newAnimation . Directions = newDirections ;
}
}
@ -204,6 +467,7 @@ namespace CTFAK.MMFParser.Translation
active . Items . Add ( j , newAnimation ) ;
active . Items . Add ( j , newAnimation ) ;
}
}
}
}
newItem . Loader = active ;
newItem . Loader = active ;
}
}
@ -225,6 +489,7 @@ namespace CTFAK.MMFParser.Translation
{
{
if ( testExt . Handle = = item . ObjectType - 32 ) ext = testExt ;
if ( testExt . Handle = = item . ObjectType - 32 ) ext = testExt ;
}
}
newExt . ExtensionType = - 1 ;
newExt . ExtensionType = - 1 ;
newExt . ExtensionName = "" ;
newExt . ExtensionName = "" ;
newExt . Filename = $"{ext.Name}.mfx" ;
newExt . Filename = $"{ext.Name}.mfx" ;
@ -271,6 +536,29 @@ namespace CTFAK.MMFParser.Translation
newItem . Loader = newText ;
newItem . Loader = newText ;
}
}
else if ( item . ObjectType = = 6 )
{
var counter = itemLoader . Counters ;
var lives = new Lives ( null ) ;
{
lives . ObjectFlags = newObject . ObjectFlags ;
lives . NewObjectFlags = newObject . NewObjectFlags ;
lives . BackgroundColor = newObject . BackgroundColor ;
lives . Strings = newObject . Strings ;
lives . Values = newObject . Values ;
lives . Movements = newObject . Movements ;
lives . Behaviours = newObject . Behaviours ;
}
lives . Player = counter ? . Player ? ? 0 ;
lives . Images = counter ? . Frames ? ? new List < int > ( ) { 0 } ;
lives . DisplayType = counter ? . DisplayType ? ? 0 ;
lives . Flags = counter ? . Flags ? ? 0 ;
lives . Font = counter ? . Font ? ? 0 ;
lives . Width = ( int ) ( counter ? . Width ? ? 0 ) ;
lives . Height = ( int ) ( counter ? . Height ? ? 0 ) ;
newItem . Loader = lives ;
}
else if ( item . ObjectType = = 7 )
else if ( item . ObjectType = = 7 )
{
{
var counter = itemLoader . Counters ;
var counter = itemLoader . Counters ;
@ -305,6 +593,7 @@ namespace CTFAK.MMFParser.Translation
newCount . Images = counter . Frames ;
newCount . Images = counter . Frames ;
newCount . Font = counter . Font ;
newCount . Font = counter . Font ;
}
}
newCount . Color1 = Color . White ;
newCount . Color1 = Color . White ;
newCount . Color2 = Color . White ;
newCount . Color2 = Color . White ;
newCount . Flags = 0 ;
newCount . Flags = 0 ;
@ -314,230 +603,8 @@ namespace CTFAK.MMFParser.Translation
}
}
}
}
// if(newItem.Loader==null) throw new NotImplementedException("Unsupported Object");
FrameItems . Add ( newItem . Handle , newItem ) ;
}
mfa . Frames . Clear ( ) ;
foreach ( Frame frame in game . Frames )
{
var newFrame = new MFA . Loaders . Frame ( null ) ;
//FrameInfo
newFrame . Handle = game . Frames . IndexOf ( frame ) ;
newFrame . Name = frame . Name ;
newFrame . SizeX = frame . Width ;
newFrame . SizeY = frame . Height ;
newFrame . Background = frame . Background ;
newFrame . FadeIn = frame . FadeIn ! = null ? ConvertTransition ( frame . FadeIn ) : null ;
newFrame . FadeOut = frame . FadeOut ! = null ? ConvertTransition ( frame . FadeOut ) : null ;
var mfaFlags = newFrame . Flags ;
var originalFlags = frame . Flags ;
mfaFlags [ "GrabDesktop" ] = originalFlags [ "GrabDesktop" ] ;
mfaFlags [ "KeepDisplay" ] = originalFlags [ "KeepDisplay" ] ;
mfaFlags [ "BackgroundCollisions" ] = originalFlags [ "TotalCollisionMask" ] ;
mfaFlags [ "ResizeToScreen" ] = originalFlags [ "ResizeAtStart" ] ;
mfaFlags [ "ForceLoadOnCall" ] = originalFlags [ "ForceLoadOnCall" ] ;
mfaFlags [ "NoDisplaySurface" ] = false ;
mfaFlags [ "TimerBasedMovements" ] = originalFlags [ "TimedMovements" ] ;
newFrame . Flags = mfaFlags ;
newFrame . Flags . flag = 260 ;
newFrame . MaxObjects = frame . Events ? . MaxObjects ? ? 1000 ;
newFrame . Password = "" ;
newFrame . LastViewedX = 320 ;
newFrame . LastViewedY = 240 ;
newFrame . Palette = frame . Palette . Items ;
newFrame . StampHandle = 13 ;
newFrame . ActiveLayer = 0 ;
//LayerInfo
newFrame . Layers = new List < Layer > ( ) ;
foreach ( EXE . Loaders . Layer layer in frame . Layers . Items )
{
var newLayer = new Layer ( null ) ;
newLayer . Name = layer . Name ;
newLayer . Flags [ "HideAtStart" ] = originalFlags [ "ToHide" ] ;
newLayer . Flags [ "Visible" ] = true ;
newLayer . Flags [ "NoBackground" ] = originalFlags [ "DoNotSaveBackground" ] ;
newLayer . Flags [ "WrapHorizontally" ] = originalFlags [ "WrapHorizontally" ] ;
newLayer . Flags [ "WrapVertically" ] = originalFlags [ "WrapVertically" ] ;
newLayer . XCoefficient = layer . XCoeff ;
newLayer . YCoefficient = layer . YCoeff ;
newFrame . Layers . Add ( newLayer ) ;
if ( frame . Layers . Items . IndexOf ( layer ) = = 1 ) break ;
}
Message ( "Translating frame: " + newFrame . Name ) ;
var newFrameItems = new List < FrameItem > ( ) ;
var newInstances = new List < FrameInstance > ( ) ;
if ( frame . Objects ! = null )
{
for ( int i = 0 ; i < frame . Objects . Items . Count ; i + + )
{
var instance = frame . Objects . Items [ i ] ;
FrameItem frameItem ;
if ( FrameItems . ContainsKey ( instance . ObjectInfo ) )
{
frameItem = FrameItems [ instance . ObjectInfo ] ;
if ( ! newFrameItems . Contains ( frameItem ) ) newFrameItems . Add ( frameItem ) ;
var newInstance = new FrameInstance ( ( ByteReader ) null ) ;
newInstance . X = instance . X ;
newInstance . Y = instance . Y ;
newInstance . Handle = instance . Handle ;
newInstance . Flags = instance . FrameItem . Flags . flag ;
newInstance . ParentType = ( uint ) instance . ParentType ;
newInstance . ItemHandle = ( uint ) ( instance . ObjectInfo ) ;
newInstance . ParentHandle = ( uint ) instance . ParentHandle ;
newInstance . Layer = 0 ; //(uint) instance.Layer;
newInstances . Add ( newInstance ) ;
Logger . Log ( $"{instance.FrameItem.Name} - {i}" ) ;
}
}
}
newFrame . Items = newFrameItems ;
newFrame . Instances = newInstances ;
newFrame . Folders = new List < ItemFolder > ( ) ;
foreach ( FrameItem newFrameItem in newFrame . Items )
{
var newFolder = new ItemFolder ( ( ByteReader ) null ) ;
newFolder . isRetard = true ;
newFolder . Items = new List < uint > ( ) { ( uint ) newFrameItem . Handle } ;
newFrame . Folders . Add ( newFolder ) ;
}
newFrame . Events = new Events ( ( ByteReader ) null ) ; //MFA.MFA.emptyEvents;
newFrame . Events . Items = new List < EventGroup > ( ) ;
newFrame . Events . Objects = new List < EventObject > ( ) ;
newFrame . Events . _cache = MFA . MFA . emptyEvents . _cache ;
newFrame . Events . _ifMFA = true ;
newFrame . Events . Version = 1028 ;
// if (frame.Name == "anus")
{
foreach ( var item in newFrame . Items )
{
var newObject = new EventObject ( ( ByteReader ) null ) ;
newObject . Handle = ( uint ) item . Handle ;
newObject . Name = item . Name ? ? "" ;
newObject . TypeName = "" ;
newObject . ItemType = ( ushort ) item . ObjectType ;
newObject . ObjectType = 1 ;
newObject . Flags = 0 ;
newObject . ItemHandle = ( uint ) item . Handle ;
newObject . InstanceHandle = 0xFFFFFFFF ;
newFrame . Events . Objects . Add ( newObject ) ;
}
foreach ( EventGroup item in frame . Events . Items )
{
/ * foreach ( Action itemAction in item . Actions )
{
for ( int a = 0 ; a < itemAction . Items . Count ; a + + )
{
if ( itemAction . Items [ a ] . Loader is ExpressionParameter exp )
{
// itemAction.Items.Remove(itemAction.Items[a]);
}
else if ( itemAction . Items [ a ] . Loader is Sample )
{
itemAction . Items . Remove ( itemAction . Items [ a ] ) ;
}
}
}
foreach ( Condition itemAction in item . Conditions )
{
for ( int a = 0 ; a < itemAction . Items . Count ; a + + )
{
if ( itemAction . Items [ a ] . Loader is ExpressionParameter exp )
{
// itemAction.Items.Remove(itemAction.Items[a]);
}
return newItem ;
else if ( itemAction . Items [ a ] . Loader is Sample )
{
itemAction . Items . Remove ( itemAction . Items [ a ] ) ;
}
}
} * /
newFrame . Events . Items . Add ( item ) ;
}
}
newFrame . Chunks = new ChunkList ( null ) ;
mfa . Frames . Add ( newFrame ) ;
}
}
public static MFA . Loaders . Transition ConvertTransition ( EXE . Loaders . Transition gameTrans )
{
var mfaTrans = new MFA . Loaders . Transition ( ( ByteReader ) null ) ;
mfaTrans . Module = gameTrans . ModuleFile ;
mfaTrans . Name = gameTrans . Name . FirstCharToUpper ( ) ;
mfaTrans . Id = gameTrans . Module ;
mfaTrans . TransitionId = gameTrans . Name ;
mfaTrans . Flags = gameTrans . Flags ;
mfaTrans . Color = gameTrans . Color ;
mfaTrans . ParameterData = gameTrans . ParameterData ;
mfaTrans . Duration = gameTrans . Duration ;
return mfaTrans ;
}
public static ValueList ConvertValue ( AlterableValues values )
{
var alterables = new ValueList ( null ) ;
if ( values ! = null )
{
for ( int i = 0 ; i < values . Items . Count ; i + + )
{
var item = values . Items [ i ] ;
var newValue = new ValueItem ( null ) ;
newValue . Name = $"Alterable Value {i+1}" ;
newValue . Value = item ;
alterables . Items . Add ( newValue ) ;
}
}
else
{
return alterables ;
}
return alterables ;
}
public static ValueList ConvertStrings ( AlterableStrings values )
{
var alterables = new ValueList ( null ) ;
if ( values ! = null )
{
for ( int i = 0 ; i < values . Items . Count ; i + + )
{
var item = values . Items [ i ] ;
var newValue = new ValueItem ( null ) ;
newValue . Name = $"Alterable String {i+1}" ;
newValue . Value = item ;
alterables . Items . Add ( newValue ) ;
}
}
else
{
return alterables ;
}
return alterables ;
}
}
public static void Message ( string msg )
public static void Message ( string msg )