Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

FrontierFile.h

Go to the documentation of this file.
00001 
00002 /*
00003     TSGL - Teddy Space Game Library
00004     Copyright (C) 2002 Timo Suoranta
00005     tksuoran@cc.helsinki.fi
00006 
00007     This library is free software; you can redistribute it and/or
00008     modify it under the terms of the GNU Lesser General Public
00009     License as published by the Free Software Foundation; either
00010     version 2.1 of the License, or (at your option) any later version.
00011 
00012     This library is distributed in the hope that it will be useful,
00013     but WITHOUT ANY WARRANTY; without even the implied warranty of
00014     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00015     Lesser General Public License for more details.
00016 
00017     You should have received a copy of the GNU Lesser General Public
00018     License along with this library; if not, write to the Free Software
00019     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00020 
00021     $Id: FrontierFile.h,v 1.1 2002/01/08 20:47:05 tksuoran Exp $
00022 */
00023 
00024 
00025 #ifndef TEDDY__SPACE_GAME__FRONTIER_FILE_H
00026 #define TEDDY__SPACE_GAME__FRONTIER_FILE_H
00027 
00028 
00029 #include "Teddy/SysSupport/Types.h"
00030 
00031 
00032 namespace Teddy     {
00033 namespace SpaceGame {
00034 
00035 
00036 #define FF_UNKNOWN   0
00037 #define FF_LABEL_DEF 1
00038 #define FF_LABEL_REF 2
00039 #define FF_BYTE      3
00040 #define FF_STRING    4
00041 
00042 
00044 class FrontierFile {
00045 public:
00046     FrontierFile( const char *fname, Uint32 options );
00047 
00048     void    seek         ( const char *label_index );
00049     void    seek         ( const Sint32 bytes );
00050     void    reset        ();
00051     void    skip_white   ();
00052     int     get_type     ();
00053     Uint8   get_byte     ();
00054     Uint8   get_byte_low ( bool gt = true );
00055     char   *get_label_def();
00056     char   *get_label_ref();
00057     char   *get_string   ();
00058     Sint8   read_Sint8   ();
00059     Sint16  read_Sint16  ();
00060     Sint32  read_Sint32  ();
00061     Uint8   read_Uint8   ();
00062     Uint16  read_Uint16  ();
00063     Uint32  read_Uint32  ();
00064     float   read_float   ();
00065     char   *read_string  ();
00066 
00067 protected:
00068     char *buf;  
00069     char *pos;  
00070 };
00071 
00072 
00073 };  //  namespace SpaceGame
00074 };  //  namespace Teddy
00075 
00076 
00077 #endif  //  TEDDY__SPACE_GAME__FRONTIER_FILE_H
00078