1- #include < math .h>
2-
1+ #include < stdlib .h>
2+ # include < stdio.h >
33#include < malloc.h>
4- #include " core/VirtualStream.h"
54#include " core/cmdlib.h"
6- #include " math/dktypes.h"
7- #include " util/image.h"
8- #include " util/util.h"
9- #include < string>
5+ #include " core/dktypes.h"
6+ #include < string.h>
7+ #include < nstd/Directory.hpp>
8+ #include < nstd/File.hpp>
9+ #include < nstd/String.hpp>
1010
11- #include < DriverLevelTool/driver_routines/d2_types.h >
11+ #include " math/psx_math_types.h "
1212
1313#define MAX_FILE_CUTSCENES 15
1414#define REPLAY_BUFFER_MINSIZE 2280
@@ -166,13 +166,10 @@ struct REPLAY_STREAM_HEADER
166166void UnpackCutsceneFile (const char * filename)
167167{
168168 // replace extension with .den
169- std::string cut_name = filename;
170-
171- size_t str_idx = cut_name.find_last_of (" ." );
172- cut_name = cut_name.substr (0 , str_idx);
169+ String cut_name = String::fromCString (filename);
170+ cut_name = File::basename (cut_name, File::extension (cut_name));
173171
174172 char * buffer;
175- char folderPath[512 ];
176173
177174 CUTSCENE_HEADER header;
178175 FILE* fp = fopen (filename, " rb" );
@@ -189,8 +186,8 @@ void UnpackCutsceneFile(const char* filename)
189186 Msg (" Max replay buffer size: %d\n " , header.maxsize );
190187
191188 // make the folder
192- sprintf ( folderPath, " %s " , cut_name. c_str ()) ;
193- mkdirRecursive (folderPath, true );
189+ String folderPath = cut_name;
190+ Directory::create (folderPath);
194191
195192 buffer = (char *)malloc (0x200000 );
196193
@@ -236,9 +233,7 @@ void UnpackCutsceneFile(const char* filename)
236233 }
237234
238235 // save separate file
239- sprintf (folderPath, " %s/%s_%d.D2RP" , cut_name.c_str (), cut_name.c_str (), i);
240-
241- FILE* wp = fopen (folderPath, " wb" );
236+ FILE* wp = fopen (String::fromPrintf (" %s/%s_%d.D2RP" , (char *)cut_name, (char *)cut_name, i), " wb" );
242237 if (wp)
243238 {
244239 MsgWarning (" \t Saving '%s', at %d, %d bytes\n " , folderPath, header.data [i].offset , header.data [i].size );
@@ -256,7 +251,6 @@ void PackCutsceneFile(const char* foldername)
256251{
257252 int offset;
258253 char * buffer;
259- char folderPath[512 ];
260254 CUTSCENE_HEADER header;
261255 header.maxsize = REPLAY_BUFFER_MINSIZE;
262256
@@ -269,8 +263,8 @@ void PackCutsceneFile(const char* foldername)
269263
270264 for (int i = 0 ; i < MAX_FILE_CUTSCENES; i++)
271265 {
272- sprintf ( folderPath, " %s/%s_%d.D2RP" , foldername, foldername, i);
273- FILE* fp = fopen (folderPath , " rb" );
266+ String folderPath = String::fromPrintf ( " %s/%s_%d.D2RP" , foldername, foldername, i);
267+ FILE* fp = fopen (String::fromPrintf ( " %s/%s_%d.D2RP " , foldername, foldername, i) , " rb" );
274268 if (fp)
275269 {
276270 if (i == 0 )
@@ -294,7 +288,7 @@ void PackCutsceneFile(const char* foldername)
294288 replays[i] = (char *)malloc (size);
295289 repsizes[i] = size;
296290
297- MsgWarning (" \t Loaded '%s', %d bytes\n " , folderPath, size);
291+ MsgWarning (" \t Loaded '%s', %d bytes\n " , ( char *) folderPath, size);
298292 fread (replays[i], 1 , size, fp);
299293 fclose (fp);
300294
@@ -327,7 +321,7 @@ void PackCutsceneFile(const char* foldername)
327321
328322 // shrink size
329323 repsizes[i] -= sizeof (PLAYBACKCAMERA) * MAX_REPLAY_CAMERAS;
330- MsgAccept (" \t Shrinking '%s', now %d bytes\n " , folderPath, repsizes[i]);
324+ MsgAccept (" \t Shrinking '%s', now %d bytes\n " , ( char *) folderPath, repsizes[i]);
331325 }
332326 }
333327 else
@@ -359,15 +353,16 @@ void PackCutsceneFile(const char* foldername)
359353 MsgWarning (" No chase replays\n " );
360354 }
361355
362- sprintf (folderPath, " %s_N.R" , foldername);
356+ String folderPath = String::fromPrintf (" %s_N.R" , foldername);
357+
363358 FILE* wp = fopen (folderPath, " wb" );
364359
365360 if (!wp)
366361 {
367362 for (int i = 0 ; i < MAX_FILE_CUTSCENES; i++)
368363 free (replays[i]);
369364
370- MsgError (" Unable to save '%s'\n " , folderPath);
365+ MsgError (" Unable to save '%s'\n " , ( char *) folderPath);
371366 return ;
372367 }
373368
0 commit comments