Coping files around help.

Started by
3 comments, last by rip-off 11 years, 1 month ago

Hello.

What i currently need to do is copy files and place them in other folder at certain time in program.

(Save function)

For example, files are at "./Files/Maps/" named "Map_1.txt" and "Ene_1.txt and i want to save these two files intro other directory that being, "./Files/Saves/"

I could rewrite them(How i control them) but it would be easier to just copy them around.

So what would you suggest library wise that would allow this kind of copy paste function?

EDIT::
By the way, this copying is gonna be run once at "NewGame" press so it doesn't need to be efficient.

Advertisement

What is in these files? Copying files doesn't usually make much sense in the context of a game.

If the map/enemy is immutable, don't copy it. If it is mutable, just serialise the map/enemy state at the point when you need to save a game. Most games do not save during the "New game" screen.

boost::filesystem has alot of cross-platform functions for file management.

boost::filesystem::copy_file(source, destination, error);

What is in these files? Copying files doesn't usually make much sense in the context of a game.

If the map/enemy is immutable, don't copy it. If it is mutable, just serialise the map/enemy state at the point when you need to save a game. Most games do not save during the "New game" screen.

Files are .txt format, plain windows 7 .txt files that have game related data that game requires in order to function.

What i am storing is: Enemy positions, Is enemy dead, Something special happened, Order of tiles on map, and all map related stuff(allot)...

So i don't have to code that, i just have events and in map editor i invoke that at certain point.

Its 2d turn based rpg. And during map movement if you move to "Portal" so i call it, you enter other area at witch point i save current map and load the corresponding map.

At part where i save, its saved as a base map file but i don't want to overwrite the main files... thus i need backupfiles.

Therefore when new game is pressed i copy all files from (Storage) and paste intro (Play) folder. Similar if not same with load.

I will try to illustrate my point


int JustBecauseItsComments = 0;
//Install location directory
Files //Folder
TheWandere.exe //Executalbe

//./Files directory
Maps //Folder
Saved //Folder
MapsBase //Folder
...

//.Files/Maps directory
//Empty

//.Files/Saved directory
//If any, and all saved data

//./Files/MapsBase directory
Map_1.txt
Ene_1.txt
Map_2.txt
Ene_2.txt
Map_3.txt
Ene_3.txt
...

This is how it will look when application is started.


int ItsComments = 0;
//./Files/MapsBase directory
//Unchanged

//./Files/Maps directory
//All files from ./Files/MapsBase are present here as copy

Files are not in any point help open. I don't stream or anything i just open, read, close.

boost::filesystem has alot of cross-platform functions for file management.

boost::filesystem::copy_file(source, destination, error);

That is maybe just what i was looking for, thanks!

If you are changing state in the game, you now have two code paths to maintain:

  • Copying files around during "new game"
  • Writing the current game state from memory to disk in the middle of a game

I'm suggesting that you just implement the latter. The former doesn't buy you much, you can only really use it when the state is pristine, i.e. the time when the player gains least from saving.

This topic is closed to new replies.

Advertisement