00001 /*--License:
00002 Kyra Sprite Engine
00003 Copyright Lee Thomason (Grinning Lizard Software) 2001-2002
00004 www.grinninglizard.com/kyra
00005 www.sourceforge.net/projects/kyra
00006
00007 Kyra is provided under 2 licenses:
00008
00009 - The GPL, with no additional restrictions.
00010 - The LGPL, provided you display the Kyra splash screen, described below.
00011
00012
00013 --- GPL License --
00014 This program is free software; you can redistribute it and/or
00015 modify it under the terms of the GNU General Public License
00016 as published by the Free Software Foundation; either version 2
00017 of the License, or (at your option) any later version.
00018
00019 This program is distributed in the hope that it will be useful,
00020 but WITHOUT ANY WARRANTY; without even the implied warranty of
00021 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
00022 GNU General Public License for more details.
00023
00024 You should have received a copy of the GNU General Public License
00025 along with this program; if not, write to the Free Software
00026 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
00027
00028 The full text of the license can be found in license.txt
00029
00030
00031 --- LGPL License --
00032 **Provided you kindly display the Kyra splash screen (details below),
00033 you may use the LGPL license:**
00034
00035 This library is free software; you can redistribute it and/or
00036 modify it under the terms of the GNU Lesser General Public
00037 License as published by the Free Software Foundation; either
00038 version 2.1 of the License, or (at your option) any later version.
00039
00040 This library is distributed in the hope that it will be useful,
00041 but WITHOUT ANY WARRANTY; without even the implied warranty of
00042 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
00043 Lesser General Public License for more details.
00044
00045 You should have received a copy of the GNU Lesser General Public
00046 License along with this library; if not, write to the Free Software
00047 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
00048
00049 The full text of the license can be found in lgpl.txt
00050
00051
00052 --- Kyra Splash Screen.
00053
00054 It would be appreciate if you display the Kyra splash screen when using
00055 either license, however it is only required for the LGPL. All the
00056 resources for the splash are compiled into the library, and it can be
00057 accessed through the following API:
00058
00059 KrEngine::StartSplash
00060 KrEngine::UpdateSplash
00061 KrEngine::EndSplash
00062
00063 Full documentation is provided with the KrEngine class. The splash screen
00064 should be displayed for 2 seconds.
00065
00066 Thank you.
00067 */
00068
00069
00070 #ifndef IO_PARSER
00071 #define IO_PARSER
00072
00073 #include <stdio.h>
00074
00075 #include "../util/gllist.h"
00076 #include "../util/gldynarray.h"
00077
00078 class TiXmlNode;
00079
00080
00081 class KrDom
00082 {
00083 public:
00084 struct Frame
00085 {
00086 Frame() : x( 0 ), y( 0 ), width( 0 ), height( 0 ), hotspotX( 0 ),
00087 hotspotY( 0 ), deltaX( 0 ), deltaY( 0 ),
00088 isotile( 0 ), hasHotspot( false ), hasDelta( false ) {}
00089
00090 int x;
00091 int y;
00092 int width;
00093 int height;
00094 int hotspotX;
00095 int hotspotY;
00096 int deltaX;
00097 int deltaY;
00098 int isotile;
00099
00100 bool hasHotspot;
00101 bool hasDelta;
00102 };
00103
00104 struct Tile
00105 {
00106 Tile() : x( 0 ), y( 0 ), size( 0 ) {}
00107
00108 int x;
00109 int y;
00110 int size;
00111 };
00112
00113 static void ReadFrameAttributes( const TiXmlNode* node,
00114 KrDom::Frame* frame );
00115
00116 static void ReadTileAttributes( const TiXmlNode* node,
00117 KrDom::Tile* tile );
00118
00119 static TiXmlNode* ReadFrame( const TiXmlNode* action, int frameNumber );
00120
00121 static int CountChildren( const TiXmlNode* node, const std::string& value );
00122 };
00123
00124
00125 #endif
1.2.11.1 written by Dimitri van Heesch,
© 1997-2001