parser.h
上传用户:maxiaolivb
上传日期:2022-06-07
资源大小:915k
文件大小:2k
源码类别:

游戏引擎

开发平台:

Visual C++

  1. /*
  2. ** Haaf's Game Engine 1.5
  3. ** Copyright (C) 2003-2004, Relish Games
  4. ** hge.relishgames.com
  5. **
  6. ** Resource script parser header
  7. */
  8. #ifndef HGEPARSER_H
  9. #define HGEPARSER_H
  10. #include "....includehge.h"
  11. #include <string.h>
  12. #include <stdlib.h>
  13. enum
  14. {
  15.  TTNONE, TTEND, TTNUMBER, TTSTRING,
  16.  TTBOOL, TTEQUALS, TTBASED, TTSEPARATOR, TTOPENBLOCK, TTCLOSEBLOCK,
  17.  
  18.  TTRES__FIRST,
  19.  TTRES_INCLUDE, TTRES_RESOURCE, TTRES_TEXTURE, TTRES_SOUND, TTRES_MUSIC,
  20.  TTRES_STREAM, TTRES_TARGET, TTRES_SPRITE, TTRES_ANIMATION, TTRES_FONT,
  21.  TTRES_PARTICLE, TTRES_DISTORT, TTRES_STRTABLE,
  22.  TTRES__LAST,
  23.  TTPAR__FIRST,
  24.  TTPAR_FILENAME, TTPAR_RESGROUP, TTPAR_SIZE, TTPAR_ZBUFFER, TTPAR_TEXTURE,
  25.  TTPAR_RECT, TTPAR_HOTSPOT, TTPAR_BLENDMODE, TTPAR_COLOR, TTPAR_ZORDER,
  26.  TTPAR_FLIP, TTPAR_SCALE, TTPAR_ROTATION, TTPAR_FRAMES, TTPAR_FPS,
  27.  TTPAR_MODE, TTPAR_TRACKING, TTPAR_SPACING, TTPAR_SPRITE, TTPAR_MESH,
  28.  TTPAR__LAST,
  29.  TTCON__FIRST,
  30.  TTCON_COLORMUL, TTCON_COLORADD, TTCON_ALPHABLND, TTCON_ALPHAADD, TTCON_ZWRITE,
  31.  TTCON_NOZWRITE, TTCON_FORWARD, TTCON_REVERSE, TTCON_PINGPONG, TTCON_NOPINGPONG,
  32.  TTCON_LOOP, TTCON_NOLOOP, TTCON_CIRCLE, TTCON_RECT, TTCON_ALPHA,
  33.  TTCON__LAST
  34. };
  35. class RScriptParser
  36. {
  37. public:
  38. RScriptParser(char *name, char *scr);
  39. ~RScriptParser() { hge->Release(); }
  40. int get_token();
  41. void put_back()  { script-=strlen(tokenvalue); }
  42. int get_line()  { return line;}
  43. char* get_name()  { return scriptname;}
  44. char* tkn_string() { return tokenvalue; }
  45. int tkn_int()    { return atoi(tokenvalue); }
  46. float tkn_float()  { return (float)atof(tokenvalue); }
  47. bool tkn_bool()   { return tokenvalue[0]=='t' ? true : false; }
  48. DWORD tkn_hex();
  49. void ScriptPostError(char *msg1, char *msg2);
  50. int tokentype;
  51. char tokenvalue[128];
  52. char* script;
  53. char* scriptname;
  54. int line;
  55. private:
  56. bool strtkcmp(char *str, char *mem);
  57. static HGE *hge;
  58. };
  59. #endif