#pragma once #import named_guids #include "GameScene.h" #include "Player.h" class Object3d; class NxActorDesc; class NxBodyDesc; class Sprite; #define SPTR boost::shared_ptr #define WPTR boost::weak_ptr class GameSceneLoader { public: GameSceneLoader(void); ~GameSceneLoader(void); bool loadGameScene(GameScene &_scene, std::string filename, GameManager *_manager); Vector tracePosition(MSXML::IXMLDOMNodePtr positionNode); void traceSun(MSXML::IXMLDOMNodePtr sunNode); void traceSkyBox(MSXML::IXMLDOMNodePtr skyBoxNode); void traceTerrain(MSXML::IXMLDOMNodePtr terrainNode); void traceOcean(MSXML::IXMLDOMNodePtr oceanNode); void traceBullet(MSXML::IXMLDOMNodePtr bulletNode); void traceWeapon(MSXML::IXMLDOMNodePtr weaponNode); void tracePlayer(MSXML::IXMLDOMNodePtr playerNode); void traceGoodies(MSXML::IXMLDOMNodePtr goodiesNode); void traceWeaponPackage(MSXML::IXMLDOMNodePtr weaponNode); void traceHealthPackage(MSXML::IXMLDOMNodePtr healthNode); void traceAmoPackage(MSXML::IXMLDOMNodePtr amoNode); void traceHud(MSXML::IXMLDOMNodePtr terrainNode); void tracePActor(MSXML::IXMLDOMNodePtr actorNode, Object3d &obj); void tracePMaterial(MSXML::IXMLDOMNodePtr materialNode); void traceRenderer(MSXML::IXMLDOMNodePtr rendererNode, Node &node); void traceRaytraceRenderer(MSXML::IXMLDOMNodePtr rendererNode, Node &node); ParticleEmitter* traceParticleEmitter(MSXML::IXMLDOMNodePtr emitterNode); Object3d* traceEnvironmentObject(MSXML::IXMLDOMNodePtr envNode); Sprite* traceSprite(MSXML::IXMLDOMNodePtr spriteNode); SoundNode* traceSound(MSXML::IXMLDOMNodePtr soundNode); void addWeapon(MSXML::IXMLDOMNodePtr playerWeaponNode, Player &player); protected: GameScene *scene; MSXML::IXMLDOMDocumentPtr sceneDomDocument; MSXML::IXMLDOMElementPtr sceneDocRoot; };