Merge remote-tracking branch 'ui/ui'
This commit is contained in:
commit
5a3163a7e4
|
@ -5302,7 +5302,6 @@ PlayerDirectoryList(void)
|
||||||
char* findname = "players/*";
|
char* findname = "players/*";
|
||||||
char** list = 0;
|
char** list = 0;
|
||||||
int num = 0;
|
int num = 0;
|
||||||
int n = 0;
|
|
||||||
|
|
||||||
// get a list of "players" subdirectories
|
// get a list of "players" subdirectories
|
||||||
if ((list = FS_ListFiles2(findname, &num, 0, 0)) == 0)
|
if ((list = FS_ListFiles2(findname, &num, 0, 0)) == 0)
|
||||||
|
@ -5310,35 +5309,20 @@ PlayerDirectoryList(void)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
n = num;
|
if (num > MAX_PLAYERMODELS)
|
||||||
|
|
||||||
if (n > MAX_PLAYERMODELS)
|
|
||||||
{
|
{
|
||||||
n = MAX_PLAYERMODELS - 1;
|
num = MAX_PLAYERMODELS - 1;
|
||||||
}
|
|
||||||
|
|
||||||
s_directory.num = 0;
|
|
||||||
|
|
||||||
for (int i = 0; i < n; ++i)
|
|
||||||
{
|
|
||||||
// last element of FS_FileList maybe null
|
|
||||||
if (list[i] == 0)
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
s_directory.num++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// malloc directories
|
// malloc directories
|
||||||
char** data = (char**)malloc(s_directory.num * sizeof(char*));
|
char** data = (char**)malloc(num * sizeof(char*));
|
||||||
YQ2_COM_CHECK_OOM(data, "malloc()", s_directory.num * sizeof(char*))
|
YQ2_COM_CHECK_OOM(data, "malloc()", num * sizeof(char*))
|
||||||
memset(data, 0, s_directory.num * sizeof(char*));
|
memset(data, 0, num * sizeof(char*));
|
||||||
|
|
||||||
s_directory.data = data;
|
s_directory.data = data;
|
||||||
s_directory.num = 0;
|
s_directory.num = num;
|
||||||
|
|
||||||
for (int i = 0; i < n; ++i)
|
for (int i = 0; i < num; ++i)
|
||||||
{
|
{
|
||||||
// last element of FS_FileList maybe null
|
// last element of FS_FileList maybe null
|
||||||
if (list[i] == 0)
|
if (list[i] == 0)
|
||||||
|
@ -5356,14 +5340,14 @@ PlayerDirectoryList(void)
|
||||||
strncpy(s, t, MAX_QPATH - 1); // MAX_QPATH - 1, gcc warns about truncation
|
strncpy(s, t, MAX_QPATH - 1); // MAX_QPATH - 1, gcc warns about truncation
|
||||||
s[strlen(s)] = 0;
|
s[strlen(s)] = 0;
|
||||||
|
|
||||||
data[s_directory.num++] = s;
|
data[i] = s;
|
||||||
}
|
}
|
||||||
|
|
||||||
// free file list
|
// free file list
|
||||||
FS_FreeList(list, num);
|
FS_FreeList(list, num);
|
||||||
|
|
||||||
// sort them male, female, alphabetical
|
// sort them male, female, alphabetical
|
||||||
qsort(s_directory.data, s_directory.num, sizeof(char**), dircmp_func);
|
qsort(s_directory.data, s_directory.num - 1, sizeof(char**), dircmp_func);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -5443,9 +5427,9 @@ PlayerModelList(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
// malloc skinnames
|
// malloc skinnames
|
||||||
data = (char**)malloc(s_skinnames[mdl].num * sizeof(char*));
|
data = (char**)malloc((s_skinnames[mdl].num + 1) * sizeof(char*));
|
||||||
YQ2_COM_CHECK_OOM(data, "malloc()", s_skinnames[mdl].num * sizeof(char*))
|
YQ2_COM_CHECK_OOM(data, "malloc()", (s_skinnames[mdl].num + 1) * sizeof(char*))
|
||||||
memset(data, 0, s_skinnames[mdl].num * sizeof(char*));
|
memset(data, 0, (s_skinnames[mdl].num + 1) * sizeof(char*));
|
||||||
|
|
||||||
s_skinnames[mdl].data = data;
|
s_skinnames[mdl].data = data;
|
||||||
s_skinnames[mdl].num = 0;
|
s_skinnames[mdl].num = 0;
|
||||||
|
@ -5480,6 +5464,8 @@ PlayerModelList(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
s_skinnames[mdl].num++; // guard pointer
|
||||||
|
|
||||||
// at this point we have a valid player model
|
// at this point we have a valid player model
|
||||||
s = (char*)malloc(MAX_DISPLAYNAME);
|
s = (char*)malloc(MAX_DISPLAYNAME);
|
||||||
t = strrchr(s_directory.data[i], '/');
|
t = strrchr(s_directory.data[i], '/');
|
||||||
|
|
Loading…
Reference in New Issue