Bug #833 ยป 0026-savecompat-Convert-Conquer-City-action-names.patch
server/savegame/savecompat.c | ||
---|---|---|
}
|
||
}
|
||
{
|
||
int action_count;
|
||
action_count = secfile_lookup_int_default(loading->file, 0,
|
||
"savefile.action_size");
|
||
if (action_count > 0) {
|
||
const char **modname;
|
||
const char **savemod;
|
||
int j;
|
||
const char *cc1_name = "Conquer City Shrink";
|
||
const char *cc2_name = "Conquer City Shrink 2";
|
||
const char *cc3_name = "Conquer City Shrink 3";
|
||
const char *cc4_name = "Conquer City Shrink 4";
|
||
modname = secfile_lookup_str_vec(loading->file, &loading->action.size,
|
||
"savefile.action_vector");
|
||
savemod = fc_calloc(action_count, sizeof(*savemod));
|
||
for (j = 0; j < action_count; j++) {
|
||
if (!fc_strcasecmp("Conquer City", modname[j])) {
|
||
savemod[j] = cc1_name;
|
||
} else if (!fc_strcasecmp("Conquer City 2", modname[j])) {
|
||
savemod[j] = cc2_name;
|
||
} else if (!fc_strcasecmp("Conquer City 3", modname[j])) {
|
||
savemod[j] = cc3_name;
|
||
} else if (!fc_strcasecmp("Conquer City 4", modname[j])) {
|
||
savemod[j] = cc4_name;
|
||
} else {
|
||
savemod[j] = modname[j];
|
||
}
|
||
}
|
||
secfile_replace_str_vec(loading->file, savemod, action_count,
|
||
"savefile.action_vector");
|
||
free(savemod);
|
||
}
|
||
}
|
||
/* Add actions for unit activities */
|
||
if (format_class == SAVEGAME_3) {
|
||
loading->activities.size
|
||
... | ... | |
for (j = 0; j < loading->action.size; j++) {
|
||
struct action *real_action = action_by_rule_name(modname[j]);
|
||
if (real_action) {
|
||
if (real_action != nullptr) {
|
||
loading->action.order[j] = real_action->id;
|
||
} else {
|
||
log_sg("Unknown action \'%s\'", modname[j]);
|
||
... | ... | |
if (game_version < 3029300) {
|
||
/* Before version number bump to 3.2.93 */
|
||
{
|
||
int action_count;
|
||
action_count = secfile_lookup_int_default(loading->file, 0,
|
||
"savefile.action_size");
|
||
if (action_count > 0) {
|
||
const char **modname;
|
||
const char **savemod;
|
||
int j;
|
||
const char *cc1_name = "Conquer City Shrink";
|
||
const char *cc2_name = "Conquer City Shrink 2";
|
||
const char *cc3_name = "Conquer City Shrink 3";
|
||
const char *cc4_name = "Conquer City Shrink 4";
|
||
modname = secfile_lookup_str_vec(loading->file, &loading->action.size,
|
||
"savefile.action_vector");
|
||
savemod = fc_calloc(action_count, sizeof(*savemod));
|
||
for (j = 0; j < action_count; j++) {
|
||
if (!fc_strcasecmp("Conquer City", modname[j])) {
|
||
savemod[j] = cc1_name;
|
||
} else if (!fc_strcasecmp("Conquer City 2", modname[j])) {
|
||
savemod[j] = cc2_name;
|
||
} else if (!fc_strcasecmp("Conquer City 3", modname[j])) {
|
||
savemod[j] = cc3_name;
|
||
} else if (!fc_strcasecmp("Conquer City 4", modname[j])) {
|
||
savemod[j] = cc4_name;
|
||
} else {
|
||
savemod[j] = modname[j];
|
||
}
|
||
}
|
||
secfile_replace_str_vec(loading->file, savemod, action_count,
|
||
"savefile.action_vector");
|
||
free(savemod);
|
||
}
|
||
}
|
||
} /* Version < 3.2.93 */
|
||
#endif /* FREECIV_DEV_SAVE_COMPAT_3_3 */
|