new_train.era = era;
new_train.size = ft_atoi(split_line[2]);
new_train.base = process_characteristics(split_line);
- if (ft_vec_append(catalog, &new_train) != success)
- {
- free(new_train.name);
- return (4);
- }
- return (0);
+ if (ft_vec_append(catalog, &new_train) == success)
+ return (0);
+ free(new_train.name);
+ return (4);
}
static int process_upgrade(char **split_line, t_vec *catalog)
{
train = ft_vec_access(catalog, i);
if (!ft_strcmp(split_line[1], train->name))
- return (4 * (ft_vec_append(&train->upgrades, &upgrade) != success));
+ {
+ if (ft_vec_append(&train->upgrades, &upgrade) == success)
+ return (0);
+ free(upgrade.name);
+ return (4);
+ }
++i;
}
+ free(upgrade.name);
return (5);
}
if (!split_line)
return (1);
if (!ft_strcmp(split_line[1], "passengers") || !ft_strcmp(split_line[1], "cargo"))
- process_train(split_line, catalog, era);
+ {
+ if (process_train(split_line, catalog, era))
+ ft_printf("Error loading train %s!\n", split_line[0]);
+ }
else if (ft_strcmp(split_line[1], "coupling"))
- process_upgrade(split_line, catalog);
+ if (process_upgrade(split_line, catalog))
+ ft_printf("Error loading upgrade %s for train %s!\n", split_line[0], split_line[1]);
i = 0;
while (split_line[i])
free(split_line[i++]);