X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=share%2Fbinary.c;h=1ada5ed41891e433e2df6cea86d2f6a8b8e247eb;hb=1745b6a90dfd9e626e5c40d20c6aa595ec41d888;hp=19a15b651ae0aab655dab44484764a5bd9516296;hpb=7aa17ef57963c0d4dfa2bc1e73a420762beb1778;p=neverball diff --git a/share/binary.c b/share/binary.c index 19a15b6..1ada5ed 100644 --- a/share/binary.c +++ b/share/binary.c @@ -16,8 +16,7 @@ #include #include -#include -#include +#include /*---------------------------------------------------------------------------*/ @@ -55,6 +54,19 @@ void put_index(FILE *fout, const int *i) #endif } +void put_short(FILE *fout, const short *s) +{ + const unsigned char *p = (const unsigned char *) s; + +#if SDL_BYTEORDER == SDL_BIG_ENDIAN + fputc((int) p[1], fout); + fputc((int) p[0], fout); +#else + fputc((int) p[0], fout); + fputc((int) p[1], fout); +#endif +} + void put_array(FILE *fout, const float *v, size_t n) { size_t i; @@ -99,6 +111,19 @@ void get_index(FILE *fin, int *i) #endif } +void get_short(FILE *fin, short *s) +{ + unsigned char *p = (unsigned char *) s; + +#if SDL_BYTEORDER == SDL_BIG_ENDIAN + p[1] = (unsigned char) fgetc(fin); + p[0] = (unsigned char) fgetc(fin); +#else + p[0] = (unsigned char) fgetc(fin); + p[1] = (unsigned char) fgetc(fin); +#endif +} + void get_array(FILE *fin, float *v, size_t n) { size_t i;