Add target_save
This commit is contained in:
parent
96573a7209
commit
05b4c125e6
|
@ -139,6 +139,47 @@ int target_header_load()
|
|||
return 0;
|
||||
}
|
||||
|
||||
// 0x49B58C
|
||||
int target_save(int pid)
|
||||
{
|
||||
char path[COMPAT_MAX_PATH];
|
||||
size_t len;
|
||||
char* extension;
|
||||
FILE* stream;
|
||||
TargetSubNode* subnode;
|
||||
|
||||
if (target_ptr(pid, &subnode) == -1) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
target_make_path(path, pid);
|
||||
|
||||
len = strlen(path);
|
||||
path[len] = '\\';
|
||||
_proto_list_str(pid, path + len + 1);
|
||||
|
||||
extension = strchr(path + len + 1, '.');
|
||||
if (extension != NULL) {
|
||||
strcpy(extension + 1, "tgt");
|
||||
} else {
|
||||
strcat(path, ".tgt");
|
||||
}
|
||||
|
||||
stream = fopen(path, "wb");
|
||||
if (stream == NULL) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
while (subnode != NULL) {
|
||||
fwrite(subnode, sizeof(TargetSubNode), 1, stream);
|
||||
subnode = subnode->next;
|
||||
}
|
||||
|
||||
fclose(stream);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
// 0x49B6BC
|
||||
int target_load(int pid, TargetSubNode** subnode_ptr)
|
||||
{
|
||||
|
|
|
@ -53,6 +53,7 @@ int target_init();
|
|||
int target_exit();
|
||||
int target_header_save();
|
||||
int target_header_load();
|
||||
int target_save(int pid);
|
||||
int target_load(int pid, TargetSubNode** subnode_ptr);
|
||||
int target_find_free_subnode(TargetSubNode** subnode_ptr);
|
||||
int target_remove_all();
|
||||
|
|
Loading…
Reference in New Issue