00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
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 };
00074 };
00075
00076
00077 #endif // TEDDY__SPACE_GAME__FRONTIER_FILE_H
00078