From 752b3f0dd614217d68f361e2d0b2cc599a37c860 Mon Sep 17 00:00:00 2001 From: celestar Date: Sat, 29 Jan 2005 19:41:44 +0000 Subject: (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. --- misc.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'misc.c') diff --git a/misc.c b/misc.c index 1ae7d0f94..1ed230671 100644 --- a/misc.c +++ b/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) { -- cgit v1.2.3-54-g00ecf