/* PLIB - A Suite of Portable Game Libraries Copyright (C) 1998,2002 Steve Baker This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA For further information visit http://plib.sourceforge.net $Id: fntLocal.h 1727 2002-11-09 21:27:21Z ude $ */ #include "fnt.h" extern int _fntIsSwapped ; extern FILE *_fntCurrImageFd ; inline void _fnt_swab_short ( unsigned short *x ) { if ( _fntIsSwapped ) *x = (( *x >> 8 ) & 0x00FF ) | (( *x << 8 ) & 0xFF00 ) ; } inline void _fnt_swab_int ( unsigned int *x ) { if ( _fntIsSwapped ) *x = (( *x >> 24 ) & 0x000000FF ) | (( *x >> 8 ) & 0x0000FF00 ) | (( *x << 8 ) & 0x00FF0000 ) | (( *x << 24 ) & 0xFF000000 ) ; } inline void _fnt_swab_int_array ( int *x, int leng ) { if ( ! _fntIsSwapped ) return ; for ( int i = 0 ; i < leng ; i++ ) { *x = (( *x >> 24 ) & 0x000000FF ) | (( *x >> 8 ) & 0x0000FF00 ) | (( *x << 8 ) & 0x00FF0000 ) | (( *x << 24 ) & 0xFF000000 ) ; x++ ; } } inline unsigned char _fnt_readByte () { unsigned char x ; fread ( & x, sizeof(unsigned char), 1, _fntCurrImageFd ) ; return x ; } inline unsigned short _fnt_readShort () { unsigned short x ; fread ( & x, sizeof(unsigned short), 1, _fntCurrImageFd ) ; _fnt_swab_short ( & x ) ; return x ; } inline unsigned int _fnt_readInt () { unsigned int x ; fread ( & x, sizeof(unsigned int), 1, _fntCurrImageFd ) ; _fnt_swab_int ( & x ) ; return x ; } #define FNT_BYTE_FORMAT 0 #define FNT_BITMAP_FORMAT 1 struct TXF_Glyph { unsigned short ch ; unsigned char w ; unsigned char h ; signed char x_off ; signed char y_off ; signed char step ; signed char unknown ; short x ; short y ; sgVec2 tx0 ; sgVec2 vx0 ; sgVec2 tx1 ; sgVec2 vx1 ; sgVec2 tx2 ; sgVec2 vx2 ; sgVec2 tx3 ; sgVec2 vx3 ; } ; void fntSetError(int, const char* format, ...);