int replay_load(Replay *rpy, char *name) { char *p = replay_getpath(name, !strendswith(name, REPLAY_EXTENSION)); printf("replay_load(): loading %s\n", p); FILE *fp = fopen(p, "r"); free(p); if(!fp) { printf("replay_load(): fopen() failed\n"); return False; } int result = replay_read(rpy, fp); fclose(fp); return result; }
bool replay_save(Replay *rpy, const char *name) { char *p = replay_getpath(name, !strendswith(name, REPLAY_EXTENSION)); char *sp = vfs_repr(p, true); log_info("Saving %s", sp); free(sp); SDL_RWops *file = vfs_open(p, VFS_MODE_WRITE); free(p); if(!file) { log_warn("VFS error: %s", vfs_get_error()); return false; } bool result = replay_write(rpy, file, REPLAY_STRUCT_VERSION_WRITE); SDL_RWclose(file); return result; }
int replay_save(Replay *rpy, char *name) { char *p = replay_getpath(name, !strendswith(name, REPLAY_EXTENSION)); printf("replay_save(): saving %s\n", p); FILE *fp = fopen(p, "w"); free(p); if(!fp) { printf("replay_save(): fopen() failed\n"); return False; } int result = replay_write(rpy, fp); fflush(fp); fclose(fp); return result; }
bool replay_load(Replay *rpy, const char *name, ReplayReadMode mode) { char *p = replay_getpath(name, !strendswith(name, REPLAY_EXTENSION)); char *sp = vfs_repr(p, true); log_info("Loading %s (%s)", sp, replay_mode_string(mode)); SDL_RWops *file = vfs_open(p, VFS_MODE_READ); free(p); if(!file) { log_warn("VFS error: %s", vfs_get_error()); free(sp); return false; } bool result = replay_read(rpy, file, mode, sp); if(!result) { replay_destroy(rpy); } free(sp); SDL_RWclose(file); return result; }