From: <hik...@us...> - 2009-03-31 02:52:06
|
Revision: 3324 http://supertuxkart.svn.sourceforge.net/supertuxkart/?rev=3324&view=rev Author: hikerstk Date: 2009-03-31 02:52:01 +0000 (Tue, 31 Mar 2009) Log Message: ----------- 1) Added support for nested tags to XMLNode. 2) Made all xml files well formed. 3) Minor code cleanups. Modified Paths: -------------- main/branches/irrlicht/data/textures/materials.xml main/branches/irrlicht/data/tracks/beach/beach.irrtrack main/branches/irrlicht/data/tracks/beach/beach.scene main/branches/irrlicht/data/tracks/beach/materials.xml main/branches/irrlicht/data/tracks/lighthouse/lighthouse.irrtrack main/branches/irrlicht/data/tracks/lighthouse/lighthouse.scene main/branches/irrlicht/data/tracks/lighthouse/materials.xml main/branches/irrlicht/src/Makefile.am main/branches/irrlicht/src/graphics/moving_texture.hpp main/branches/irrlicht/src/ide/vc9/supertuxkart.vcproj main/branches/irrlicht/src/input/input_device.hpp main/branches/irrlicht/src/io/file_manager.cpp main/branches/irrlicht/src/io/file_manager.hpp main/branches/irrlicht/src/io/xml_node.cpp main/branches/irrlicht/src/io/xml_node.hpp main/branches/irrlicht/src/material.cpp main/branches/irrlicht/src/material_manager.cpp main/branches/irrlicht/src/tracks/track.cpp Removed Paths: ------------- main/branches/irrlicht/src/io/xml_reader.cpp main/branches/irrlicht/src/io/xml_reader.hpp Modified: main/branches/irrlicht/data/textures/materials.xml =================================================================== --- main/branches/irrlicht/data/textures/materials.xml 2009-03-30 18:09:33 UTC (rev 3323) +++ main/branches/irrlicht/data/textures/materials.xml 2009-03-31 02:52:01 UTC (rev 3324) @@ -1,76 +1,79 @@ -<material name="clouds.png" alpha="0.0" light="N" reset="Y" collide="N"/> -<material name="roadcone.png" transparency="Y"/> -<material name="sand.png" alpha="0.0" collide="N" maxSpeed="0.4" slowdownTime="4"/> -<material name="sandgrass.png" alpha="0.0" collide="N" maxSpeed="0.4" slowdownTime="4"/> -<material name="grass.png" alpha="0.0" collide="N" maxSpeed="0.6" slowdownTime="4"/> -<material name="chrome.png" alpha="0.0" light="N" sphere="Y" collide="N"/> -<material name="chrome2.png" alpha="0.0" light="N" sphere="Y" collide="N"/> -<material name="railing.png" clampV="Y" transparency="Y" alpha="0.5" collide="N"/> -<material name="wood.png" alpha="0.0" collide="N"/> -<material name="concrete.png" alpha="0.0"/> -<material name="brick.png" alpha="0.0"/> -<material name="stonewall.png" alpha="0.0" collide="N"/> -<material name="pebbles.png" alpha="0.0" collide="N"/> -<material name="egypt.png" alpha="0.0"/> -<material name="pyramidwall.png" alpha="0.0" collide="N"/> -<material name="lava.png" alpha="0.0" light="N" reset="Y"/> -<material name="metalgrid.png" transparency="Y" alpha="0.3" collide="N"/> -<material name="fuzzy_sand.png" transparency="Y" alpha="0.0" light="N" ignore="Y" collide="N"/> -<material name="roadway.png" clampU="Y" alpha="0.0" collide="N"/> -<material name="track.png" alpha="0.0" collide="N"/> -<material name="track.png" alpha="0.0" collide="N"/> -<material name="trackborder.png" alpha="0.0" light="N" collide="N"/> -<material name="chess.png" alpha="0.0" collide="N"/> -<material name="tinytux.png" clampU="Y" clampV="Y" transparency="Y" alpha="0.8" light="N" ignore="Y" collide="N"/> -<material name="butterfly.png" clampU="Y" clampV="Y" transparency="Y" alpha="0.8" light="N" ignore="Y" collide="N"/> -<material name="track2.png" alpha="0.0" collide="N"/> -<material name="zipper_collect.png" alpha="0.0" light="N" zipper="Y" collide="N"/> -<material name="zipper.png" alpha="0.0" light="N" zipper="Y" collide="N"/> -<material name="banana.png" alpha="0.5" light="N" collide="N"/> -<material name="bananawrap.png" clampU="Y" clampV="Y" transparency="Y" alpha="0.5" light="N" zipper="Y" collide="N"/> -<material name="fuzzy.png" clampU="Y" clampV="Y" transparency="Y" alpha="0.2" light="N" ignore="Y" collide="N"/> -<material name="generickartshadow.png" clampU="Y" clampV="Y" transparency="Y" alpha="0.0" light="N" ignore="Y" collide="N"/> -<material name="smoke.png" transparency="Y" alpha="0.0" light="N" ignore="Y" collide="N"/> -<material name="explode.png" clampU="Y" clampV="Y" transparency="Y" alpha="0.2" light="N" ignore="Y" collide="N"/> -<material name="flames.png" alpha="0.9" light="N" ignore="Y" collide="N"/> -<material name="nitro-particle.png" transparency="Y" alpha="0.0" light="N" ignore="Y" collide="N"/> -<material name="magnet.png" clampU="Y" clampV="Y" transparency="Y" light="N" ignore="Y" collide="N"/> -<material name="bzzt.png" transparency="Y" light="N" ignore="Y" collide="N"/> -<material name="anchor-icon.png" clampU="Y" clampV="Y" transparency="Y" light="N" ignore="Y" collide="N"/> -<material name="parachute.png" clampU="Y" clampV="Y" transparency="Y" light="N" ignore="Y" collide="N"/> -<material name="speedback.png" clampU="Y" clampV="Y" transparency="Y" alpha="0.0" light="N" ignore="Y" collide="N"/> -<material name="speedfore.png" clampU="Y" clampV="Y" transparency="Y" alpha="0.0" light="N" ignore="Y" collide="N"/> -<material name="water_light.png" light="N" reset="Y" collide="N"/> -<material name="sea.png" alpha="0.0" light="N" reset="Y"/> -<material name="rock.png" alpha="0.0" light="N" collide="N"/> -<material name="coniferous_tree.png" clampU="Y" clampV="Y" transparency="Y" alpha="0.5" light="N" collide="N"/> -<material name="signs.png" transparency="Y" alpha="0.5" light="N" collide="N"/> -<material name="greenice.png" alpha="0.0" light="N" reset="Y" collide="N"/> -<material name="snow.png" alpha="0.0" collide="N" maxSpeed="0.4" slowdownTime="4"/> -<material name="ice.png" alpha="0.0" collide="N"/> -<material name="snowyrock.png" alpha="0.0" collide="N"/> -<material name="sand2.png" alpha="0.0" collide="N"/> -<material name="road_dirt.png" alpha="0.0" collide="N"/> -<material name="grass2.png" alpha="0.0" collide="N" maxSpeed="0.6" slowdownTime="4"/> -<material name="dirt2sand.png" alpha="0.0" collide="N"/> -<material name="grass2dirt.png" alpha="0.0" collide="N" maxSpeed="0.4" slowdownTime="4"/> -<material name="logs.png" alpha="0.0" collide="N"/> -<material name="stonetex.png" alpha="0.0" collide="N"/> -<material name="redwhite.png" alpha="0.0" collide="N"/> -<material name="dirt.png" alpha="0.0" collide="N"/> -<material name="city_asphalt_1.png" alpha="0.0" collide="N"/> -<material name="city_checker.png" alpha="0.0" collide="N"/> -<material name="tank-blue.png" alpha="0.0" sphere="Y" collide="N"/> -<material name="tank-green.png" alpha="0.0" sphere="Y" collide="N"/> -<material name="tank-cyan.png" alpha="0.0" sphere="Y" collide="N"/> -<material name="gift-loop.png" alpha="0.0" sphere="Y" collide="N"/> -<material name="bowling-icon.png" transparency="Y" alpha="0.0" light="N" collide="N"/> -<material name="bubblegum-icon.png" transparency="Y" alpha="0.0" light="N" collide="N"/> -<material name="cake-icon.png" transparency="Y" alpha="0.0" light="N" collide="N"/> -<material name="plunger-icon.png" transparency="Y" alpha="0.0" light="N" collide="N"/> -<material name="plungerface.png" transparency="Y" alpha="0.0" light="N" collide="N"/> -<material name="nitro-tank.png" clampV="Y" transparency="Y" alpha="0.5" collide="N"/> -<material name="st_title_screen.png" clampU="Y" clampV="Y" alpha="1.0" light="N"/> -<material name="menu_background.png" clampU="Y" clampV="Y" alpha="1.0" light="N"/> -<material name="st_title_screen2.png" clampU="Y" clampV="Y" alpha="1.0" light="N"/> -<material name="menu_background2.png" clampU="Y" clampV="Y" alpha="1.0" light="N"/> +<?xml version="1.0"?> +<materials> + <material name="clouds.png" alpha="0.0" light="N" reset="Y" collide="N"/> + <material name="roadcone.png" transparency="Y"/> + <material name="sand.png" alpha="0.0" collide="N" maxSpeed="0.4" slowdownTime="4"/> + <material name="sandgrass.png" alpha="0.0" collide="N" maxSpeed="0.4" slowdownTime="4"/> + <material name="grass.png" alpha="0.0" collide="N" maxSpeed="0.6" slowdownTime="4"/> + <material name="chrome.png" alpha="0.0" light="N" sphere="Y" collide="N"/> + <material name="chrome2.png" alpha="0.0" light="N" sphere="Y" collide="N"/> + <material name="railing.png" clampV="Y" transparency="Y" alpha="0.5" collide="N"/> + <material name="wood.png" alpha="0.0" collide="N"/> + <material name="concrete.png" alpha="0.0"/> + <material name="brick.png" alpha="0.0"/> + <material name="stonewall.png" alpha="0.0" collide="N"/> + <material name="pebbles.png" alpha="0.0" collide="N"/> + <material name="egypt.png" alpha="0.0"/> + <material name="pyramidwall.png" alpha="0.0" collide="N"/> + <material name="lava.png" alpha="0.0" light="N" reset="Y"/> + <material name="metalgrid.png" transparency="Y" alpha="0.3" collide="N"/> + <material name="fuzzy_sand.png" transparency="Y" alpha="0.0" light="N" ignore="Y" collide="N"/> + <material name="roadway.png" clampU="Y" alpha="0.0" collide="N"/> + <material name="track.png" alpha="0.0" collide="N"/> + <material name="track.png" alpha="0.0" collide="N"/> + <material name="trackborder.png" alpha="0.0" light="N" collide="N"/> + <material name="chess.png" alpha="0.0" collide="N"/> + <material name="tinytux.png" clampU="Y" clampV="Y" transparency="Y" alpha="0.8" light="N" ignore="Y" collide="N"/> + <material name="butterfly.png" clampU="Y" clampV="Y" transparency="Y" alpha="0.8" light="N" ignore="Y" collide="N"/> + <material name="track2.png" alpha="0.0" collide="N"/> + <material name="zipper_collect.png" alpha="0.0" light="N" zipper="Y" collide="N"/> + <material name="zipper.png" alpha="0.0" light="N" zipper="Y" collide="N"/> + <material name="banana.png" alpha="0.5" light="N" collide="N"/> + <material name="bananawrap.png" clampU="Y" clampV="Y" transparency="Y" alpha="0.5" light="N" zipper="Y" collide="N"/> + <material name="fuzzy.png" clampU="Y" clampV="Y" transparency="Y" alpha="0.2" light="N" ignore="Y" collide="N"/> + <material name="generickartshadow.png" clampU="Y" clampV="Y" transparency="Y" alpha="0.0" light="N" ignore="Y" collide="N"/> + <material name="smoke.png" transparency="Y" alpha="0.0" light="N" ignore="Y" collide="N"/> + <material name="explode.png" clampU="Y" clampV="Y" transparency="Y" alpha="0.2" light="N" ignore="Y" collide="N"/> + <material name="flames.png" alpha="0.9" light="N" ignore="Y" collide="N"/> + <material name="nitro-particle.png" transparency="Y" alpha="0.0" light="N" ignore="Y" collide="N"/> + <material name="magnet.png" clampU="Y" clampV="Y" transparency="Y" light="N" ignore="Y" collide="N"/> + <material name="bzzt.png" transparency="Y" light="N" ignore="Y" collide="N"/> + <material name="anchor-icon.png" clampU="Y" clampV="Y" transparency="Y" light="N" ignore="Y" collide="N"/> + <material name="parachute.png" clampU="Y" clampV="Y" transparency="Y" light="N" ignore="Y" collide="N"/> + <material name="speedback.png" clampU="Y" clampV="Y" transparency="Y" alpha="0.0" light="N" ignore="Y" collide="N"/> + <material name="speedfore.png" clampU="Y" clampV="Y" transparency="Y" alpha="0.0" light="N" ignore="Y" collide="N"/> + <material name="water_light.png" light="N" reset="Y" collide="N"/> + <material name="sea.png" alpha="0.0" light="N" reset="Y"/> + <material name="rock.png" alpha="0.0" light="N" collide="N"/> + <material name="coniferous_tree.png" clampU="Y" clampV="Y" transparency="Y" alpha="0.5" light="N" collide="N"/> + <material name="signs.png" transparency="Y" alpha="0.5" light="N" collide="N"/> + <material name="greenice.png" alpha="0.0" light="N" reset="Y" collide="N"/> + <material name="snow.png" alpha="0.0" collide="N" maxSpeed="0.4" slowdownTime="4"/> + <material name="ice.png" alpha="0.0" collide="N"/> + <material name="snowyrock.png" alpha="0.0" collide="N"/> + <material name="sand2.png" alpha="0.0" collide="N"/> + <material name="road_dirt.png" alpha="0.0" collide="N"/> + <material name="grass2.png" alpha="0.0" collide="N" maxSpeed="0.6" slowdownTime="4"/> + <material name="dirt2sand.png" alpha="0.0" collide="N"/> + <material name="grass2dirt.png" alpha="0.0" collide="N" maxSpeed="0.4" slowdownTime="4"/> + <material name="logs.png" alpha="0.0" collide="N"/> + <material name="stonetex.png" alpha="0.0" collide="N"/> + <material name="redwhite.png" alpha="0.0" collide="N"/> + <material name="dirt.png" alpha="0.0" collide="N"/> + <material name="city_asphalt_1.png" alpha="0.0" collide="N"/> + <material name="city_checker.png" alpha="0.0" collide="N"/> + <material name="tank-blue.png" alpha="0.0" sphere="Y" collide="N"/> + <material name="tank-green.png" alpha="0.0" sphere="Y" collide="N"/> + <material name="tank-cyan.png" alpha="0.0" sphere="Y" collide="N"/> + <material name="gift-loop.png" alpha="0.0" sphere="Y" collide="N"/> + <material name="bowling-icon.png" transparency="Y" alpha="0.0" light="N" collide="N"/> + <material name="bubblegum-icon.png" transparency="Y" alpha="0.0" light="N" collide="N"/> + <material name="cake-icon.png" transparency="Y" alpha="0.0" light="N" collide="N"/> + <material name="plunger-icon.png" transparency="Y" alpha="0.0" light="N" collide="N"/> + <material name="plungerface.png" transparency="Y" alpha="0.0" light="N" collide="N"/> + <material name="nitro-tank.png" clampV="Y" transparency="Y" alpha="0.5" collide="N"/> + <material name="st_title_screen.png" clampU="Y" clampV="Y" alpha="1.0" light="N"/> + <material name="menu_background.png" clampU="Y" clampV="Y" alpha="1.0" light="N"/> + <material name="st_title_screen2.png" clampU="Y" clampV="Y" alpha="1.0" light="N"/> + <material name="menu_background2.png" clampU="Y" clampV="Y" alpha="1.0" light="N"/> +</materials> \ No newline at end of file Modified: main/branches/irrlicht/data/tracks/beach/beach.irrtrack =================================================================== --- main/branches/irrlicht/data/tracks/beach/beach.irrtrack 2009-03-30 18:09:33 UTC (rev 3323) +++ main/branches/irrlicht/data/tracks/beach/beach.irrtrack 2009-03-31 02:52:01 UTC (rev 3324) @@ -12,7 +12,7 @@ model = "beachtrack.3ds" camera-final-position ="-5 12 3" camera-final-hpr ="-150 -10 0" -/> +> <!-- Parameters for a sky dome: texture: the name of the texture to use horizontal: Number of vertices of a horizontal layer of the sphere. @@ -25,3 +25,4 @@ <sky-dome texture="lighthouse_sky.png" horizontal="16" vertical="16" texture-percent="0.5" sphere-percent="1.3"/> +</track> Modified: main/branches/irrlicht/data/tracks/beach/beach.scene =================================================================== --- main/branches/irrlicht/data/tracks/beach/beach.scene 2009-03-30 18:09:33 UTC (rev 3323) +++ main/branches/irrlicht/data/tracks/beach/beach.scene 2009-03-31 02:52:01 UTC (rev 3324) @@ -1,43 +1,46 @@ -<track model="beach.b3d" x="0" y="0" z="0"/> -<banana x="33.95208" y="-26.43557"/> -<banana x="36.353733" y="-28.788071"/> -<banana x="38.890526" y="-31.055712"/> -<banana x="33.062881" y="-29.678539"/> -<banana x="35.693455" y="-31.998974"/> -<object model="roadcone.b3d" shape="cone" x="0" y="10"/> -<small-nitro x="141.452301" y="-147.236526"/> -<small-nitro x="138.027374" y="-146.076462"/> -<small-nitro x="135.044373" y="-145.137375"/> -<small-nitro x="73.048233" y="115.19902"/> -<small-nitro x="72.93367" y="118.062706"/> -<small-nitro x="72.895775" y="120.736458"/> -<big-nitro x="101.574867" y="35.232807"/> -<small-nitro x="87.413612" y="-208.907532"/> -<small-nitro x="72.58783" y="-205.031555"/> -<small-nitro x="53.43425" y="-199.557495"/> -<small-nitro x="59.491722" y="-183.255829"/> -<small-nitro x="77.611778" y="-188.269485"/> -<small-nitro x="93.005547" y="-193.058533"/> -<item x="61.011955" y="-74.05072"/> -<item x="61.623039" y="-72.141083"/> -<item x="62.004967" y="-70.002289"/> -<item x="62.46328" y="-67.939865"/> -<item x="99.905396" y="-200.629471"/> -<item x="99.447083" y="-202.691895"/> -<item x="99.065155" y="-204.830688"/> -<item x="98.454071" y="-206.740326"/> -<item x="100.669258" y="-206.969482"/> -<item x="101.280342" y="-205.059845"/> -<item x="101.66227" y="-202.921051"/> -<item x="102.120583" y="-200.858627"/> -<item x="132.868637" y="-0.681217"/> -<item x="52.191956" y="81.662224"/> -<item x="53.06303" y="84.297081"/> -<item x="55.271503" y="82.678505"/> -<item x="56.273766" y="85.387238"/> -<item x="58.406429" y="83.763924"/> -<item x="7.727362" y="52.271473"/> -<item x="6.185844" y="54.519192"/> -<item x="4.410963" y="52.240696"/> -<item x="2.795755" y="54.45163"/> -<item x="1.168262" y="52.20385"/> +<?xml version="1.0"?> +<scene> + <track model="beach.b3d" x="0" y="0" z="0"/> + <banana x="33.95208" y="-26.43557"/> + <banana x="36.353733" y="-28.788071"/> + <banana x="38.890526" y="-31.055712"/> + <banana x="33.062881" y="-29.678539"/> + <banana x="35.693455" y="-31.998974"/> + <object model="roadcone.b3d" shape="cone" x="0" y="10"/> + <small-nitro x="141.452301" y="-147.236526"/> + <small-nitro x="138.027374" y="-146.076462"/> + <small-nitro x="135.044373" y="-145.137375"/> + <small-nitro x="73.048233" y="115.19902"/> + <small-nitro x="72.93367" y="118.062706"/> + <small-nitro x="72.895775" y="120.736458"/> + <big-nitro x="101.574867" y="35.232807"/> + <small-nitro x="87.413612" y="-208.907532"/> + <small-nitro x="72.58783" y="-205.031555"/> + <small-nitro x="53.43425" y="-199.557495"/> + <small-nitro x="59.491722" y="-183.255829"/> + <small-nitro x="77.611778" y="-188.269485"/> + <small-nitro x="93.005547" y="-193.058533"/> + <item x="61.011955" y="-74.05072"/> + <item x="61.623039" y="-72.141083"/> + <item x="62.004967" y="-70.002289"/> + <item x="62.46328" y="-67.939865"/> + <item x="99.905396" y="-200.629471"/> + <item x="99.447083" y="-202.691895"/> + <item x="99.065155" y="-204.830688"/> + <item x="98.454071" y="-206.740326"/> + <item x="100.669258" y="-206.969482"/> + <item x="101.280342" y="-205.059845"/> + <item x="101.66227" y="-202.921051"/> + <item x="102.120583" y="-200.858627"/> + <item x="132.868637" y="-0.681217"/> + <item x="52.191956" y="81.662224"/> + <item x="53.06303" y="84.297081"/> + <item x="55.271503" y="82.678505"/> + <item x="56.273766" y="85.387238"/> + <item x="58.406429" y="83.763924"/> + <item x="7.727362" y="52.271473"/> + <item x="6.185844" y="54.519192"/> + <item x="4.410963" y="52.240696"/> + <item x="2.795755" y="54.45163"/> + <item x="1.168262" y="52.20385"/> +</scene> \ No newline at end of file Modified: main/branches/irrlicht/data/tracks/beach/materials.xml =================================================================== --- main/branches/irrlicht/data/tracks/beach/materials.xml 2009-03-30 18:09:33 UTC (rev 3323) +++ main/branches/irrlicht/data/tracks/beach/materials.xml 2009-03-31 02:52:01 UTC (rev 3324) @@ -1,8 +1,11 @@ -<material name="chess.jpg" alpha="0.0" collide="N"/> -<material name="grass.jpg" alpha="0.0" collide="N" maxSpeed="0.6" slowdownTime="4"/> -<material name="sand.jpg" alpha="0.0" collide="N" maxSpeed="0.4" slowdownTime="4"/> -<material name="sandgrass.jpg" alpha="0.0" collide="N" maxSpeed="0.4" slowdownTime="4"/> -<material name="stonetex.jpg" alpha="0.0" collide="N"/> -<material name="track.jpg" alpha="0.0" collide="N"/> -<material name="trackborder.jpg" alpha="0.0" light="N" collide="N"/> -<material name="water_light.jpg" light="N" reset="Y" collide="N"/> +<?xml version="1.0"?> +<materials> + <material name="chess.jpg" alpha="0.0" collide="N"/> + <material name="grass.jpg" alpha="0.0" collide="N" maxSpeed="0.6" slowdownTime="4"/> + <material name="sand.jpg" alpha="0.0" collide="N" maxSpeed="0.4" slowdownTime="4"/> + <material name="sandgrass.jpg" alpha="0.0" collide="N" maxSpeed="0.4" slowdownTime="4"/> + <material name="stonetex.jpg" alpha="0.0" collide="N"/> + <material name="track.jpg" alpha="0.0" collide="N"/> + <material name="trackborder.jpg" alpha="0.0" light="N" collide="N"/> + <material name="water_light.jpg" light="N" reset="Y" collide="N"/> +</materials> Modified: main/branches/irrlicht/data/tracks/lighthouse/lighthouse.irrtrack =================================================================== --- main/branches/irrlicht/data/tracks/lighthouse/lighthouse.irrtrack 2009-03-30 18:09:33 UTC (rev 3323) +++ main/branches/irrlicht/data/tracks/lighthouse/lighthouse.irrtrack 2009-03-31 02:52:01 UTC (rev 3324) @@ -10,16 +10,17 @@ mapping = "lighthouse.mapping" camera-final-position ="-10 25 3" camera-final-hpr ="-140 -7 0" -/> -<!-- Parameters for a sky dome: - texture: the name of the texture to use - horizontal: Number of vertices of a horizontal layer of the sphere. - vertical: Number of vertices of a vertical layer of the sphere. - texture-percent: How much of the height of the texture is used. - Should be between 0 and 1. - sphere-percent: How much of the sphere is drawn. Value should be - between 0 and 2, where 1 is an exact half-sphere - and 2 is a full sphere. --> -<sky-dome texture="lighthouse_sky.jpg" - horizontal="16" vertical="16" - texture-percent="0.5" sphere-percent="1.3"/> +> + <!-- Parameters for a sky dome: + texture: the name of the texture to use + horizontal: Number of vertices of a horizontal layer of the sphere. + vertical: Number of vertices of a vertical layer of the sphere. + texture-percent: How much of the height of the texture is used. + Should be between 0 and 1. + sphere-percent: How much of the sphere is drawn. Value should be + between 0 and 2, where 1 is an exact half-sphere + and 2 is a full sphere. --> + <sky-dome texture="lighthouse_sky.jpg" + horizontal="16" vertical="16" + texture-percent="0.5" sphere-percent="1.3"/> +</track> Modified: main/branches/irrlicht/data/tracks/lighthouse/lighthouse.scene =================================================================== --- main/branches/irrlicht/data/tracks/lighthouse/lighthouse.scene 2009-03-30 18:09:33 UTC (rev 3323) +++ main/branches/irrlicht/data/tracks/lighthouse/lighthouse.scene 2009-03-31 02:52:01 UTC (rev 3324) @@ -1,22 +1,28 @@ -<track model="lighthousetrack.b3d" x="0" y="0" z="0"/> -<small-nitro x="81.005333" y="-0.073995"/> -<small-nitro x="77.851761" y="0.934763"/> -<small-nitro x="74.643669" y="2.166354"/> -<small-nitro x="27.697657" y="-58.154846"/> -<small-nitro x="29.748253" y="-60.912331"/> -<small-nitro x="31.872066" y="-63.452408"/> -<small-nitro x="-17.300978" y="-2.078869"/> -<small-nitro x="-20.609509" y="-2.20612"/> -<small-nitro x="-24.045292" y="-2.142494"/> -<item x="37.160557" y="2.198871"/> -<item x="34.915821" y="2.512133"/> -<item x="32.074749" y="2.833275"/> -<item x="29.390997" y="3.220781"/> -<item x="-37.714851" y="-64.545502"/> -<item x="-37.046822" y="-61.917503"/> -<item x="-36.428207" y="-59.12606"/> -<item x="-35.880249" y="-56.926807"/> -<item x="-1.019776" y="39.404644"/> -<item x="-2.928773" y="38.182888"/> -<item x="-5.295928" y="36.57933"/> -<item x="-7.586723" y="35.128494"/> +<?xml version="1.0"?> +<scene> + <track model="lighthousetrack.b3d" x="0" y="0" z="0"> + <moving-texture name="water.png"/> + </track> + <track model="lighthousetrack.b3d" x="0" y="0" z="0"/> + <small-nitro x="81.005333" y="-0.073995"/> + <small-nitro x="77.851761" y="0.934763"/> + <small-nitro x="74.643669" y="2.166354"/> + <small-nitro x="27.697657" y="-58.154846"/> + <small-nitro x="29.748253" y="-60.912331"/> + <small-nitro x="31.872066" y="-63.452408"/> + <small-nitro x="-17.300978" y="-2.078869"/> + <small-nitro x="-20.609509" y="-2.20612"/> + <small-nitro x="-24.045292" y="-2.142494"/> + <item x="37.160557" y="2.198871"/> + <item x="34.915821" y="2.512133"/> + <item x="32.074749" y="2.833275"/> + <item x="29.390997" y="3.220781"/> + <item x="-37.714851" y="-64.545502"/> + <item x="-37.046822" y="-61.917503"/> + <item x="-36.428207" y="-59.12606"/> + <item x="-35.880249" y="-56.926807"/> + <item x="-1.019776" y="39.404644"/> + <item x="-2.928773" y="38.182888"/> + <item x="-5.295928" y="36.57933"/> + <item x="-7.586723" y="35.128494"/> +</scene> \ No newline at end of file Modified: main/branches/irrlicht/data/tracks/lighthouse/materials.xml =================================================================== --- main/branches/irrlicht/data/tracks/lighthouse/materials.xml 2009-03-30 18:09:33 UTC (rev 3323) +++ main/branches/irrlicht/data/tracks/lighthouse/materials.xml 2009-03-31 02:52:01 UTC (rev 3324) @@ -1,6 +1,7 @@ <?xml version="1.0"?> -<material name="lighthouse.png" alpha="0.0" light="N" collide="N"/> -<material name="lighthouse_sky.png" alpha="0.0" light="N" reset="Y"/> -<material name="fence.png" transparency="Y" /> -<material name="coniferous_tree.png" clampU="Y" clampV="Y" transparency="Y" alpha="0.5" light="N" collide="N"/> - +<materials> + <material name="lighthouse.png" alpha="0.0" light="N" collide="N"/> + <material name="lighthouse_sky.png" alpha="0.0" light="N" reset="Y"/> + <material name="fence.png" transparency="Y" /> + <material name="coniferous_tree.png" clampU="Y" clampV="Y" transparency="Y" light="N" collide="N"/> +</materials> Modified: main/branches/irrlicht/src/Makefile.am =================================================================== --- main/branches/irrlicht/src/Makefile.am 2009-03-30 18:09:33 UTC (rev 3323) +++ main/branches/irrlicht/src/Makefile.am 2009-03-31 02:52:01 UTC (rev 3324) @@ -93,8 +93,6 @@ io/file_manager.hpp \ io/xml_node.cpp \ io/xml_node.hpp \ - io/xml_reader.cpp \ - io/xml_reader.hpp\ items/attachment.cpp \ items/attachment.hpp \ items/attachment_manager.cpp \ Modified: main/branches/irrlicht/src/graphics/moving_texture.hpp =================================================================== --- main/branches/irrlicht/src/graphics/moving_texture.hpp 2009-03-30 18:09:33 UTC (rev 3323) +++ main/branches/irrlicht/src/graphics/moving_texture.hpp 2009-03-31 02:52:01 UTC (rev 3324) @@ -17,8 +17,8 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -#ifndef MOVING_TEXTURE_H -#define MOVING_TEXTURE_H +#ifndef MOVING_TEXTURE_HPP +#define MOVING_TEXTURE_HPP #include <string> #define _WINSOCKAPI_ Modified: main/branches/irrlicht/src/ide/vc9/supertuxkart.vcproj =================================================================== --- main/branches/irrlicht/src/ide/vc9/supertuxkart.vcproj 2009-03-30 18:09:33 UTC (rev 3323) +++ main/branches/irrlicht/src/ide/vc9/supertuxkart.vcproj 2009-03-31 02:52:01 UTC (rev 3324) @@ -668,10 +668,6 @@ RelativePath="..\..\io\xml_node.cpp" > </File> - <File - RelativePath="..\..\io\xml_reader.cpp" - > - </File> </Filter> <Filter Name="input" @@ -1278,10 +1274,6 @@ RelativePath="..\..\io\xml_node.hpp" > </File> - <File - RelativePath="..\..\io\xml_reader.hpp" - > - </File> </Filter> <Filter Name="input" Modified: main/branches/irrlicht/src/input/input_device.hpp =================================================================== --- main/branches/irrlicht/src/input/input_device.hpp 2009-03-30 18:09:33 UTC (rev 3323) +++ main/branches/irrlicht/src/input/input_device.hpp 2009-03-31 02:52:01 UTC (rev 3324) @@ -6,7 +6,6 @@ #include "input/input.hpp" #include <iostream> #include <fstream> -#include "io/xml_reader.hpp" #include "io/xml_node.hpp" enum DeviceType Modified: main/branches/irrlicht/src/io/file_manager.cpp =================================================================== --- main/branches/irrlicht/src/io/file_manager.cpp 2009-03-30 18:09:33 UTC (rev 3323) +++ main/branches/irrlicht/src/io/file_manager.cpp 2009-03-31 02:52:01 UTC (rev 3324) @@ -209,12 +209,20 @@ } // ~FileManager //----------------------------------------------------------------------------- -XMLReader *FileManager::getXMLReader(const std::string &f) +io::IXMLReader *FileManager::getXMLReader(const std::string &filename) { - io::IXMLReader *r = m_file_system->createXMLReader(f.c_str()); - if(!r) return NULL; - return new XMLReader(r); + return m_file_system->createXMLReader(filename.c_str()); } // getXMLReader +//----------------------------------------------------------------------------- +/** Reads in a XML file and converts it into a XMLNode tree. + * \param filename Name of the XML file to read. + */ +XMLNode *FileManager::getXMLTree(const std::string &filename) +{ + io::IXMLReader *xml_reader = getXMLReader(filename); + if(!xml_reader) return NULL; + return new XMLNode(xml_reader); +} // getXMLTree //----------------------------------------------------------------------------- void FileManager::pushModelSearchPath(const std::string& path) Modified: main/branches/irrlicht/src/io/file_manager.hpp =================================================================== --- main/branches/irrlicht/src/io/file_manager.hpp 2009-03-30 18:09:33 UTC (rev 3323) +++ main/branches/irrlicht/src/io/file_manager.hpp 2009-03-31 02:52:01 UTC (rev 3324) @@ -19,14 +19,16 @@ #ifndef HEADER_FILE_MANAGER_HPP #define HEADER_FILE_MANAGER_HPP + #include <string> #include <vector> #include <set> #include "irrlicht.h" using namespace irr; -#include "io/xml_reader.hpp" +#include "io/xml_node.hpp" + class FileManager { private: @@ -54,7 +56,8 @@ ~FileManager(); void setDevice(IrrlichtDevice *device); void dropFileSystem(); - XMLReader *getXMLReader(const std::string &f); + io::IXMLReader *getXMLReader(const std::string &filename); + XMLNode *getXMLTree(const std::string &filename); std::string getHomeDir () const; std::string getTrackDir () const; Modified: main/branches/irrlicht/src/io/xml_node.cpp =================================================================== --- main/branches/irrlicht/src/io/xml_node.cpp 2009-03-30 18:09:33 UTC (rev 3323) +++ main/branches/irrlicht/src/io/xml_node.cpp 2009-03-31 02:52:01 UTC (rev 3324) @@ -1,4 +1,4 @@ -// $Id: xml_reader.hpp 694 2006-08-29 07:42:36Z hiker $ +// $Id: xml_node.hpp 694 2006-08-29 07:42:36Z hiker $ // // SuperTuxKart - a fun racing game with go-kart // Copyright (C) 2009 Joerg Henrichs @@ -16,48 +16,112 @@ // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -#ifdef HAVE_IRRLICHT + +#include "io/file_manager.hpp" #include "io/xml_node.hpp" #include "utils/string_utils.hpp" #include "utils/vec3.hpp" -XMLNode::XMLNode(const std::string &name, io::IXMLReader *xml) +XMLNode::XMLNode(io::IXMLReader *xml) { - m_name = name; + while(xml->getNodeType()!=io::EXN_ELEMENT && xml->read()); + readXML(xml); +} // XMLNode + +// ---------------------------------------------------------------------------- +/** Reads a XML file and convert it intoa XMLNode tree. + * \param filename Name of the XML file to read. + */ +XMLNode::XMLNode(const std::string &filename) +{ + io::IXMLReader *xml = file_manager->getXMLReader(filename); + bool is_first_element = true; + while(xml->read()) + { + switch (xml->getNodeType()) + { + case io::EXN_ELEMENT: + { + if(!is_first_element) + { + fprintf(stderr, + "More than one root element in '%s' - ignored.\n", + filename.c_str()); + } + readXML(xml); + is_first_element = false; + break; + } + case io::EXN_ELEMENT_END: break; // Ignore all other types + case io::EXN_UNKNOWN: break; + case io::EXN_COMMENT: break; + case io::EXN_TEXT: break; + default: break; + } // switch + } // while +} // XMLNode + +// ---------------------------------------------------------------------------- +/** Stores all attributes, and reads in all children. + * \param xml The XML reader. + */ +void XMLNode::readXML(io::IXMLReader *xml) +{ + m_name = std::string(core::stringc(xml->getNodeName()).c_str()); + for(unsigned int i=0; i<xml->getAttributeCount(); i++) { std::string name = core::stringc(xml->getAttributeName(i)).c_str(); core::stringw value = xml->getAttributeValue(i); m_attributes[name] = value; } // for i -#ifdef TEST_ONLY + + // If no children, we are done + if(xml->isEmptyElement()) + return; + + /** Read all children elements. */ while(xml->read()) { switch (xml->getNodeType()) { - case io::EXN_ELEMENT: break; - case io::EXN_ELEMENT_END: - printf("found end\n"); - break;// Ignore all other types - case io::EXN_UNKNOWN: - printf("found end\n"); + case io::EXN_ELEMENT: + m_nodes.push_back(new XMLNode(xml)); break; - case io::EXN_COMMENT: - printf("found end\n"); + case io::EXN_ELEMENT_END: + // End of this element found. + return; break; - case io::EXN_TEXT: - printf("found end\n"); - break; - default: - printf("found end\n"); - break; + case io::EXN_UNKNOWN: break; + case io::EXN_COMMENT: break; + case io::EXN_TEXT: break; + default: break; } // switch - } // while -#endif -} // XMLNode +} // readXML // ---------------------------------------------------------------------------- +/** Returns the i.th node. + * \param i Number of node to return. + */ +XMLNode *XMLNode::getNode(unsigned int i) +{ + return m_nodes[i]; +} // getNode +// ---------------------------------------------------------------------------- +/** Returns the node with the given name. + * \param s Name of the node to return. + */ +XMLNode *XMLNode::getNode(const std::string &s) +{ + for(unsigned int i=0; i<m_nodes.size(); i++) + { + if(m_nodes[i]->getName()==s) return m_nodes[i]; + } + return NULL; +} // getNode + +// ---------------------------------------------------------------------------- /** If 'attribute' was defined, set 'value' to the value of the * attribute and return 1, otherwise return 0 and do not change value. * \param attribute Name of the attribute. @@ -302,4 +366,3 @@ } // getHPR Vec3 // ---------------------------------------------------------------------------- -#endif Modified: main/branches/irrlicht/src/io/xml_node.hpp =================================================================== --- main/branches/irrlicht/src/io/xml_node.hpp 2009-03-30 18:09:33 UTC (rev 3323) +++ main/branches/irrlicht/src/io/xml_node.hpp 2009-03-31 02:52:01 UTC (rev 3324) @@ -1,4 +1,4 @@ -// $Id: xml_reader.hpp 694 2006-08-29 07:42:36Z hiker $ +// $Id: xml_node.hpp 694 2006-08-29 07:42:36Z hiker $ // // SuperTuxKart - a fun racing game with go-kart // Copyright (C) 2009 Joerg Henrichs @@ -17,7 +17,6 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -#ifdef HAVE_IRRLICHT #ifndef HEADER_XML_NODE_HPP #define HEADER_XML_NODE_HPP @@ -38,10 +37,14 @@ std::map<std::string, core::stringw> m_attributes; /** List of all sub nodes. */ std::vector<XMLNode *> m_nodes; + void readXML(io::IXMLReader *xml); public: - XMLNode(const std::string &name, io::IXMLReader *xml); + XMLNode(io::IXMLReader *xml); + XMLNode(const std::string &filename); const std::string &getName() const {return m_name; } - XMLNode *getNode(const std::string &name); + XMLNode *getNode(const std::string &name); + XMLNode *getNode(unsigned int i); + unsigned int getNumNodes() {return m_nodes.size(); } int get(const std::string &attribute, std::string *value) const; int get(const std::string &attribute, int *value) const; int get(const std::string &attribute, float *value) const; @@ -54,7 +57,7 @@ int get(const std::string &attribute, std::vector<int> *value) const; int get(core::vector3df *value) const; int getXYZ(core::vector3df *value) const; - int getXYZ(Vec3 *value) const; + int getXYZ(Vec3 *vaslue) const; int getHPR(core::vector3df *value) const; int getHPR(Vec3 *value) const; /** Handy functions to test the bit pattern returned by get(vector3df*).*/ @@ -67,4 +70,3 @@ }; // XMLNode #endif -#endif Deleted: main/branches/irrlicht/src/io/xml_reader.cpp =================================================================== --- main/branches/irrlicht/src/io/xml_reader.cpp 2009-03-30 18:09:33 UTC (rev 3323) +++ main/branches/irrlicht/src/io/xml_reader.cpp 2009-03-31 02:52:01 UTC (rev 3324) @@ -1,70 +0,0 @@ -// $Id: xml_reader.hpp 694 2006-08-29 07:42:36Z hiker $ -// -// SuperTuxKart - a fun racing game with go-kart -// Copyright (C) 2009 Joerg Henrichs -// -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 3 -// of the License, or (at your option) any later version. -// -// This program 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 General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -#ifdef HAVE_IRRLICHT - -#include "io/xml_reader.hpp" -#include "io/xml_node.hpp" - -XMLReader::XMLReader(io::IXMLReader *xml) -{ - while(xml->read()) - { - switch (xml->getNodeType()) - { - case io::EXN_ELEMENT: - { - // FIXME: is there an easier way to convert - // stringw to std::string? - std::string s = core::stringc(xml->getNodeName()).c_str(); - const XMLNode *node = new XMLNode(s, xml); - m_all_nodes.push_back(node); - break; - } - case io::EXN_ELEMENT_END: // Ignore all other types - case io::EXN_UNKNOWN: - case io::EXN_COMMENT: - case io::EXN_TEXT: - default: break; - } // switch - } // while -} // XMLReader - -// ---------------------------------------------------------------------------- -unsigned int XMLReader::getNumNodes() const -{ - return m_all_nodes.size(); -} // getNumNodes - -// ---------------------------------------------------------------------------- -const XMLNode *XMLReader::getNode(unsigned int n) const -{ - return m_all_nodes[n]; -} // getNode - -// ---------------------------------------------------------------------------- -const XMLNode *XMLReader::getNode(const std::string &node_name) const -{ - for(unsigned int i=0; i<m_all_nodes.size(); i++) - { - if(m_all_nodes[i]->getName()==node_name) return m_all_nodes[i]; - } - return NULL; -} // getNode -#endif Deleted: main/branches/irrlicht/src/io/xml_reader.hpp =================================================================== --- main/branches/irrlicht/src/io/xml_reader.hpp 2009-03-30 18:09:33 UTC (rev 3323) +++ main/branches/irrlicht/src/io/xml_reader.hpp 2009-03-31 02:52:01 UTC (rev 3324) @@ -1,45 +0,0 @@ -// $Id: xml_reader.hpp 694 2006-08-29 07:42:36Z hiker $ -// -// SuperTuxKart - a fun racing game with go-kart -// Copyright (C) 2009 Joerg Henrichs -// -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 3 -// of the License, or (at your option) any later version. -// -// This program 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 General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -#ifdef HAVE_IRRLICHT -#ifndef HEADER_XML_READER_HPP -#define HEADER_XML_READER_HPP - -#include <string> -#include <vector> - -#include "irrlicht.h" -using namespace irr; - -class XMLNode; - -class XMLReader -{ -private: - io::IXMLReader *m_reader; - std::vector<const XMLNode *> m_all_nodes; -public: - XMLReader(io::IXMLReader *r); - unsigned int getNumNodes() const; - const XMLNode *getNode(const std::string &node_name) const; - const XMLNode *getNode(unsigned int n) const; -}; // XMLReader -#endif -#endif - Modified: main/branches/irrlicht/src/material.cpp =================================================================== --- main/branches/irrlicht/src/material.cpp 2009-03-30 18:09:33 UTC (rev 3323) +++ main/branches/irrlicht/src/material.cpp 2009-03-31 02:52:01 UTC (rev 3324) @@ -17,9 +17,6 @@ // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -#include "io/xml_node.hpp" -#include "io/xml_reader.hpp" - #include "material.hpp" #include <stdexcept> @@ -27,6 +24,7 @@ #include "stk_config.hpp" #include "graphics/irr_driver.hpp" #include "io/file_manager.hpp" +#include "io/xml_node.hpp" #include "utils/string_utils.hpp" Modified: main/branches/irrlicht/src/material_manager.cpp =================================================================== --- main/branches/irrlicht/src/material_manager.cpp 2009-03-30 18:09:33 UTC (rev 3323) +++ main/branches/irrlicht/src/material_manager.cpp 2009-03-31 02:52:01 UTC (rev 3324) @@ -113,11 +113,11 @@ //----------------------------------------------------------------------------- bool MaterialManager::pushTempMaterial(const std::string& filename) { - XMLReader *xml = file_manager->getXMLReader(filename); - if(!xml) return true; - for(unsigned int i=0; i<xml->getNumNodes(); i++) + XMLNode *root = file_manager->getXMLTree(filename); + if(!root || root->getName()!="materials") return true; + for(unsigned int i=0; i<root->getNumNodes(); i++) { - const XMLNode *node = xml->getNode(i); + const XMLNode *node = root->getNode(i); if(!node) { // We don't have access to the filename at this stage anymore :( Modified: main/branches/irrlicht/src/tracks/track.cpp =================================================================== --- main/branches/irrlicht/src/tracks/track.cpp 2009-03-30 18:09:33 UTC (rev 3323) +++ main/branches/irrlicht/src/tracks/track.cpp 2009-03-31 02:52:01 UTC (rev 3324) @@ -863,54 +863,54 @@ m_ambient_color = video::SColorf(0.5f, 0.5f, 0.5f, 1.0f); m_specular_color = video::SColorf(1.0f, 1.0f, 1.0f, 1.0f); m_diffuse_color = video::SColorf(1.0f, 1.0f, 1.0f, 1.0f); - XMLReader *xml = file_manager->getXMLReader(m_filename); - const XMLNode *node = xml->getNode("track"); - if(!node) + XMLNode *root = file_manager->getXMLTree(m_filename); + + if(!root || root->getName()!="track") { std::ostringstream o; o<<"Can't load track '"<<filename<<"', no track element."; throw std::runtime_error(o.str()); } - node->get("name", &m_name); - node->get("description", &m_description); - node->get("designer", &m_designer); - node->get("version", &m_version); + root->get("name", &m_name); + root->get("description", &m_description); + root->get("designer", &m_designer); + root->get("version", &m_version); std::vector<std::string> filenames; - node->get("music", &filenames); + root->get("music", &filenames); getMusicInformation(filenames, m_music); - node->get("item", &m_item_style); - node->get("screenshot", &m_screenshot); - node->get("item", &m_item_style); - node->get("screenshot", &m_screenshot); - node->get("sky-color", &m_sky_color); - node->get("start-x", &m_start_x); - node->get("start-y", &m_start_y); - node->get("start-z", &m_start_z); - node->get("start-heading", &m_start_heading); - node->get("use-fog", &m_use_fog); - node->get("fog-color", &m_fog_color); - node->get("fog-density", &m_fog_density); - node->get("fog-start", &m_fog_start); - node->get("fog-end", &m_fog_end); - node->get("sun-position", &m_sun_position); - node->get("sun-ambient", &m_ambient_color); - node->get("sun-specular", &m_specular_color); - node->get("sun-diffuse", &m_diffuse_color); - node->get("gravity", &m_gravity); - node->get("arena", &m_is_arena); - node->get("groups", &m_groups); + root->get("item", &m_item_style); + root->get("screenshot", &m_screenshot); + root->get("item", &m_item_style); + root->get("screenshot", &m_screenshot); + root->get("sky-color", &m_sky_color); + root->get("start-x", &m_start_x); + root->get("start-y", &m_start_y); + root->get("start-z", &m_start_z); + root->get("start-heading", &m_start_heading); + root->get("use-fog", &m_use_fog); + root->get("fog-color", &m_fog_color); + root->get("fog-density", &m_fog_density); + root->get("fog-start", &m_fog_start); + root->get("fog-end", &m_fog_end); + root->get("sun-position", &m_sun_position); + root->get("sun-ambient", &m_ambient_color); + root->get("sun-specular", &m_specular_color); + root->get("sun-diffuse", &m_diffuse_color); + root->get("gravity", &m_gravity); + root->get("arena", &m_is_arena); + root->get("groups", &m_groups); if(m_groups.size()==0) m_groups.push_back("standard"); // if both camera position and rotation are defined, // set the flag that the track has final camera position - m_has_final_camera = node->get("camera-final-position", + m_has_final_camera = root->get("camera-final-position", &m_camera_final_position)!=1; - m_has_final_camera &= node->get("camera-final-hpr", + m_has_final_camera &= root->get("camera-final-hpr", &m_camera_final_hpr) !=1; m_camera_final_hpr.degreeToRad(); m_sky_type = SKY_NONE; - node = xml->getNode("sky-dome"); + XMLNode *node = root->getNode("sky-dome"); if(node) { m_sky_type = SKY_DOME; @@ -919,7 +919,7 @@ m_sky_sphere_percent = 1.0f; m_sky_texture_percent = 1.0f; std::string s; - node->get("texture", &s ); + node->get("texture", &s ); m_sky_textures.push_back(s); node->get("vertical", &m_sky_vert_segments ); node->get("horizontal", &m_sky_hori_segments ); @@ -927,7 +927,7 @@ node->get("texture-percent", &m_sky_texture_percent); } // if sky-dome - node = xml->getNode("sky-box"); + node = root->getNode("sky-box"); if(node) { std::string s; @@ -1300,22 +1300,22 @@ // Start building the scene graph #ifdef HAVE_IRRLICHT std::string path = file_manager->getTrackFile(getIdent()+".scene"); - XMLReader *xml = file_manager->getXMLReader(path); + XMLNode *root = file_manager->getXMLTree(path); // Make sure that we have a track (which is used for raycasts to // place other objects). - const XMLNode *node = xml->getNode("track"); - if(!node) + if(!root || root->getName()!="scene") { std::ostringstream msg; msg<< "No track model defined in '"<<path <<"', aborting."; throw std::runtime_error(msg.str()); } + XMLNode *node = root->getNode("track"); loadMainTrack(*node); - for(unsigned int i=0; i<xml->getNumNodes(); i++) + for(unsigned int i=0; i<root->getNumNodes(); i++) { - const XMLNode *node = xml->getNode(i); + const XMLNode *node = root->getNode(i); const std::string name = node->getName(); // The track object was already converted before the loop if(name=="track") continue; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |