forked from mirror/OpenTTD
(svn r1721) -Feature: It is now possible to build multiple road stations (up to 8) on
a single station. Thanks to: Truelight for the saveload code, Darkvater and Hackykid for network testing and Tron for proof-reading 1500 lines of diff.
This commit is contained in:
29
misc.c
29
misc.c
@@ -743,6 +743,35 @@ int FindFirstBit(uint32 value)
|
||||
return i;
|
||||
}
|
||||
|
||||
//!We're writing an own sort algorithm here, as
|
||||
//!qsort isn't stable
|
||||
//!Since the number of elements will be low, a
|
||||
//!simple bubble sort will have to do :)
|
||||
|
||||
void bubblesort(void *base, size_t nmemb, size_t size, int(*compar)(const void *, const void *))
|
||||
{
|
||||
uint i,k;
|
||||
void *buffer = malloc(size);
|
||||
char *start = base;
|
||||
|
||||
nmemb--;
|
||||
|
||||
for (i = 0; i < nmemb; i++) {
|
||||
for (k = 0; k < nmemb; k++) {
|
||||
void *a, *b;
|
||||
a = start + size * k;
|
||||
b = start + size * (k + 1);
|
||||
if (compar(a, b) > 0) {
|
||||
memcpy(buffer, a, size);
|
||||
memcpy(a, b, size);
|
||||
memcpy(b, buffer, size);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
free(buffer);
|
||||
buffer = NULL;
|
||||
}
|
||||
|
||||
static void Save_NAME(void)
|
||||
{
|
||||
|
Reference in New Issue
Block a user