@@ -198,19 +198,25 @@ public void PlaceZone(IMovie movie, Config config)
198198 }
199199 }
200200
201- public void Save ( string fileName )
201+ public FileWriteResult Save ( string fileName )
202202 {
203203 // Save the controller definition/LogKey
204204 // Save the controller name and player count. (Only for the user.)
205205 // Save whether or not the macro should use overlay input, and/or replace
206- string [ ] header = new string [ 4 ] ;
207- header [ 0 ] = InputKey ;
208- header [ 1 ] = _emulator . ControllerDefinition . Name ;
209- header [ 2 ] = _emulator . ControllerDefinition . PlayerCount . ToString ( ) ;
210- header [ 3 ] = $ "{ Overlay } ,{ Replace } ";
211-
212- File . WriteAllLines ( fileName , header ) ;
213- File . AppendAllLines ( fileName , _log ) ;
206+
207+ return FileWriter . Write ( fileName , ( fs ) =>
208+ {
209+ using var writer = new StreamWriter ( fs ) ;
210+ writer . WriteLine ( InputKey ) ;
211+ writer . WriteLine ( _emulator . ControllerDefinition . Name ) ;
212+ writer . WriteLine ( _emulator . ControllerDefinition . PlayerCount . ToString ( ) ) ;
213+ writer . WriteLine ( $ "{ Overlay } ,{ Replace } ") ;
214+
215+ foreach ( string line in _log )
216+ {
217+ writer . WriteLine ( line ) ;
218+ }
219+ } ) ;
214220 }
215221
216222 public MovieZone ( string fileName , IDialogController dialogController , IEmulator emulator , IMovieSession movieSession , ToolManager tools )
0 commit comments