bool CampaignEntryTryLoad( CampaignEntry *entry, const char *path, campaign_mode_e mode) { char *buf; int numMissions; if (!IsCampaignOK(path, &buf, &numMissions)) { return false; } // cap length of title size_t maxLen = 70; if (strlen(buf) > maxLen) { buf[maxLen] = '\0'; } char title[256]; sprintf(title, "%s (%d)", buf, numMissions); CampaignEntryInit(entry, title, mode); CSTRDUP(entry->Filename, PathGetBasename(path)); CSTRDUP(entry->Path, path); entry->IsBuiltin = false; entry->NumMissions = numMissions; CFREE(buf); return true; }
bool CampaignEntryTryLoad( CampaignEntry *entry, const char *path, GameMode mode) { char *buf; int numMissions; if (!IsCampaignOK(path, &buf, &numMissions)) { return false; } // cap length of title size_t maxLen = 70; if (strlen(buf) > maxLen) { buf[maxLen] = '\0'; } char title[256]; sprintf(title, "%s (%d)", buf, numMissions); CampaignEntryInit(entry, title, mode); CSTRDUP(entry->Filename, PathGetBasename(path)); // Get relative path for the campaign entry, so when we transmit it to // network clients they can load it regardless of install path char pathBuf[CDOGS_PATH_MAX]; RelPathFromCWD(pathBuf, path); CSTRDUP(entry->Path, pathBuf); entry->NumMissions = numMissions; CFREE(buf); return true; }