122 while ((dirent = readdir(dir))) { |
122 while ((dirent = readdir(dir))) { |
123 sprintf (filename, "%s/%s", _fios_path, dirent->d_name); |
123 sprintf (filename, "%s/%s", _fios_path, dirent->d_name); |
124 if (!stat(filename, &sb)) { |
124 if (!stat(filename, &sb)) { |
125 if (!S_ISDIR(sb.st_mode)) { |
125 if (!S_ISDIR(sb.st_mode)) { |
126 char *t = strrchr(dirent->d_name, '.'); |
126 char *t = strrchr(dirent->d_name, '.'); |
127 if (t && !strcmp(t, ".sav")) { // OpenTTD |
127 if (t && !strcasecmp(t, ".sav")) { // OpenTTD |
128 *t = 0; // cut extension |
128 *t = 0; // cut extension |
129 fios = FiosAlloc(); |
129 fios = FiosAlloc(); |
130 fios->type = FIOS_TYPE_FILE; |
130 fios->type = FIOS_TYPE_FILE; |
131 fios->mtime = sb.st_mtime; |
131 fios->mtime = sb.st_mtime; |
132 fios->title[0] = 0; |
132 fios->title[0] = 0; |
133 ttd_strlcpy(fios->name, dirent->d_name, sizeof(fios->name)); |
133 ttd_strlcpy(fios->name, dirent->d_name, sizeof(fios->name)); |
134 } else if (mode == SLD_LOAD_GAME || mode == SLD_LOAD_SCENARIO) { |
134 } else if (mode == SLD_LOAD_GAME || mode == SLD_LOAD_SCENARIO) { |
135 int ext = 0; // start of savegame extensions in _old_extensions[] |
135 int ext = 0; // start of savegame extensions in _old_extensions[] |
136 if (t && ((ext++, !strcmp(t, ".ss1")) || (ext++, !strcmp(t, ".sv1")) || (ext++, !strcmp(t, ".sv2"))) ) { // TTDLX(Patch) |
136 if (t && ((ext++, !strcasecmp(t, ".ss1")) || (ext++, !strcasecmp(t, ".sv1")) || (ext++, !strcasecmp(t, ".sv2"))) ) { // TTDLX(Patch) |
137 *t = 0; // cut extension |
137 *t = 0; // cut extension |
138 fios = FiosAlloc(); |
138 fios = FiosAlloc(); |
139 fios->old_extension = ext-1; |
139 fios->old_extension = ext-1; |
140 fios->type = FIOS_TYPE_OLDFILE; |
140 fios->type = FIOS_TYPE_OLDFILE; |
141 fios->mtime = sb.st_mtime; |
141 fios->mtime = sb.st_mtime; |
203 while ((dirent = readdir(dir))) { |
203 while ((dirent = readdir(dir))) { |
204 sprintf (filename, "%s/%s", _fios_path, dirent->d_name); |
204 sprintf (filename, "%s/%s", _fios_path, dirent->d_name); |
205 if (!stat(filename, &sb)) { |
205 if (!stat(filename, &sb)) { |
206 if (!S_ISDIR(sb.st_mode)) { |
206 if (!S_ISDIR(sb.st_mode)) { |
207 char *t = strrchr(dirent->d_name, '.'); |
207 char *t = strrchr(dirent->d_name, '.'); |
208 if (t && !strcmp(t, ".scn")) { // OpenTTD |
208 if (t && !strcasecmp(t, ".scn")) { // OpenTTD |
209 *t = 0; // cut extension |
209 *t = 0; // cut extension |
210 fios = FiosAlloc(); |
210 fios = FiosAlloc(); |
211 fios->type = FIOS_TYPE_SCENARIO; |
211 fios->type = FIOS_TYPE_SCENARIO; |
212 fios->mtime = sb.st_mtime; |
212 fios->mtime = sb.st_mtime; |
213 fios->title[0] = 0; |
213 fios->title[0] = 0; |
214 ttd_strlcpy(fios->name, dirent->d_name, sizeof(fios->name)-3); |
214 ttd_strlcpy(fios->name, dirent->d_name, sizeof(fios->name)-3); |
215 } else if (mode == SLD_LOAD_GAME || mode == SLD_LOAD_SCENARIO || mode == SLD_NEW_GAME) { |
215 } else if (mode == SLD_LOAD_GAME || mode == SLD_LOAD_SCENARIO || mode == SLD_NEW_GAME) { |
216 int ext = 3; // start of scenario extensions in _old_extensions[] |
216 int ext = 3; // start of scenario extensions in _old_extensions[] |
217 if (t && ((ext++, !strcmp(t, ".sv0")) || (ext++, !strcmp(t, ".ss0"))) ) { // TTDLX(Patch) |
217 if (t && ((ext++, !strcasecmp(t, ".sv0")) || (ext++, !strcasecmp(t, ".ss0"))) ) { // TTDLX(Patch) |
218 *t = 0; // cut extension |
218 *t = 0; // cut extension |
219 fios = FiosAlloc(); |
219 fios = FiosAlloc(); |
220 fios->old_extension = ext-1; |
220 fios->old_extension = ext-1; |
221 fios->type = FIOS_TYPE_OLD_SCENARIO; |
221 fios->type = FIOS_TYPE_OLD_SCENARIO; |
222 fios->mtime = sb.st_mtime; |
222 fios->mtime = sb.st_mtime; |