Rewrite cheat code
This commit is contained in:
parent
39b8971fae
commit
dbb3d8f770
28
cheats.c
28
cheats.c
|
@ -169,24 +169,25 @@ bool cheat_manager_save(const char *path)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
cheat_manager_t *cheat_manager_load(const char *path)
|
bool cheat_manager_load(const char *path)
|
||||||
{
|
{
|
||||||
unsigned cheats = 0, i;
|
unsigned cheats = 0, i;
|
||||||
cheat_manager_t *cheat = NULL;
|
cheat_manager_t *cheat;
|
||||||
config_file_t *conf = config_file_new(path);
|
config_file_t *conf = config_file_new(path);
|
||||||
|
global_t *global = global_get_ptr();
|
||||||
|
|
||||||
if (!conf)
|
if (!conf)
|
||||||
return NULL;
|
return false;
|
||||||
|
|
||||||
config_get_uint(conf, "cheats", &cheats);
|
config_get_uint(conf, "cheats", &cheats);
|
||||||
|
|
||||||
if (cheats == 0)
|
if (cheats == 0)
|
||||||
return NULL;
|
return false;
|
||||||
|
|
||||||
cheat = cheat_manager_new(cheats);
|
cheat = cheat_manager_new(cheats);
|
||||||
|
|
||||||
if (!cheat)
|
if (!cheat)
|
||||||
return NULL;
|
return false;
|
||||||
|
|
||||||
for (i = 0; i < cheats; i++)
|
for (i = 0; i < cheats; i++)
|
||||||
{
|
{
|
||||||
|
@ -217,7 +218,9 @@ cheat_manager_t *cheat_manager_load(const char *path)
|
||||||
|
|
||||||
config_file_free(conf);
|
config_file_free(conf);
|
||||||
|
|
||||||
return cheat;
|
global->cheat = cheat;
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
cheat_manager_t *cheat_manager_new(unsigned size)
|
cheat_manager_t *cheat_manager_new(unsigned size)
|
||||||
|
@ -288,8 +291,10 @@ bool cheat_manager_realloc(unsigned new_size)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void cheat_manager_free(cheat_manager_t *handle)
|
void cheat_manager_free(void)
|
||||||
{
|
{
|
||||||
|
global_t *global = global_get_ptr();
|
||||||
|
cheat_manager_t *handle = global->cheat;
|
||||||
if (!handle)
|
if (!handle)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -409,9 +414,10 @@ void cheat_manager_state_checks(
|
||||||
|
|
||||||
void cheat_manager_state_free(void)
|
void cheat_manager_state_free(void)
|
||||||
{
|
{
|
||||||
global_t *global = global_get_ptr();
|
global_t *global;
|
||||||
|
cheat_manager_free();
|
||||||
|
|
||||||
|
global = global_get_ptr();
|
||||||
|
|
||||||
if (global->cheat)
|
|
||||||
cheat_manager_free(global->cheat);
|
|
||||||
global->cheat = NULL;
|
global->cheat = NULL;
|
||||||
}
|
}
|
||||||
|
|
4
cheats.h
4
cheats.h
|
@ -29,7 +29,7 @@ unsigned cheat_manager_get_size(void);
|
||||||
|
|
||||||
cheat_manager_t *cheat_manager_new(unsigned size);
|
cheat_manager_t *cheat_manager_new(unsigned size);
|
||||||
|
|
||||||
cheat_manager_t *cheat_manager_load(const char *path);
|
bool cheat_manager_load(const char *path);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* cheat_manager_save:
|
* cheat_manager_save:
|
||||||
|
@ -45,7 +45,7 @@ bool cheat_manager_realloc(unsigned new_size);
|
||||||
|
|
||||||
void cheat_manager_set_code(unsigned index, const char *str);
|
void cheat_manager_set_code(unsigned index, const char *str);
|
||||||
|
|
||||||
void cheat_manager_free(cheat_manager_t *handle);
|
void cheat_manager_free(void);
|
||||||
|
|
||||||
void cheat_manager_index_next(cheat_manager_t *handle);
|
void cheat_manager_index_next(cheat_manager_t *handle);
|
||||||
|
|
||||||
|
|
|
@ -713,12 +713,9 @@ static int generic_action_ok(const char *path,
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ACTION_OK_LOAD_CHEAT_FILE:
|
case ACTION_OK_LOAD_CHEAT_FILE:
|
||||||
if (global->cheat)
|
cheat_manager_free();
|
||||||
cheat_manager_free(global->cheat);
|
|
||||||
|
|
||||||
global->cheat = cheat_manager_load(action_path);
|
if (!cheat_manager_load(action_path))
|
||||||
|
|
||||||
if (!global->cheat)
|
|
||||||
goto error;
|
goto error;
|
||||||
break;
|
break;
|
||||||
case ACTION_OK_APPEND_DISK_IMAGE:
|
case ACTION_OK_APPEND_DISK_IMAGE:
|
||||||
|
|
Loading…
Reference in New Issue