#include <ShipLevel.h>
Public Member Functions | |
ShipLevel (String Name, int Altitude, SceneManager *SceneMgr, SceneNode *ParentNode) | |
Constructeur: Crée un étage vide. | |
virtual | ~ShipLevel () |
Destructeur. | |
Vector3 | getPosition () |
Renvoie la position du Level. | |
void | setAllLights (bool On) |
Allume (ou éteint) les lumières de toutes les pieces du niveau. | |
void | setRedLight (bool On) |
Les lumières principales de toutes les pieces du niveau passent au rouge. | |
void | showOneRoom (Room *room) |
Cette fonction affiche la Room demandée, et efface toutes les autres. | |
void | showOneRoom (String roomName) |
Affiche la pièce demandée (les autres sont effacées pour gagner en framerate). | |
void | showAdjacentRooms (Door *Porte) |
Affiche les pièces voisines de la porte. | |
void | showAllRooms () |
Affiche toutes les pièces du niveau. | |
void | hideAllRooms () |
Enleve toutes les pièces du niveau. | |
void | showElevator () |
Affiche la pièce qui fait partie de l'ascenseur. | |
void | setInitialRoom () |
Etablit l'état initial du vaisseau. | |
bool | openDoor (Door *Porte) |
Cette fonction demande l'ouverture d'une porte. | |
bool | openDoor (String DoorName) |
Cette fonction demande l'ouverture d'une porte. | |
String | getStatus () |
Renvoie le status du niveau sous forme de chaine XML. | |
void | setAlertLevel (short alert) |
Envoie l'état d'alerte à toutes les pièces du niveau. | |
Vector3 | getCamPos () |
Cette fonction renvoie la position initiale de la camera dans ce niveau telle que décrite dans le fichier scene.xml (debug). | |
Room * | getElevatorRoom () |
Extrait un quaternion du fichier DotScene. | |
Room * | getRoom (String RoomName) |
Retrouve une piece par son nom. Renvoie NULL si la piece n'est pas à ce niveau. | |
Protected Member Functions | |
void | addScene () |
Ajoute une scene (contenant N Room + des porte et des objets). | |
Room * | addRoom () |
Ajoute une piece (décrite dans le fichier level.xml ou scene.xml). | |
Door * | addDoor () |
Ajoute une Porte (décrite dans un fichier XML dotScene). | |
void | addObject (SceneNode *ParentNode) |
Ajoute un objet à une piece. | |
void | addLight (Room *ParentRoom) |
Ajoute une lumière à une piece (décrit dans le fichier level.xml ou scene.xml). | |
int | getMapIndex (String RoomName) |
Renvoie l'index dans le tableau mRoomMap de la Room demandée. | |
void | linkScene () |
On connecte les differentes pièces du ShipLevel entre elles, grace aux portes. | |
Vector3 | readCamPosition () |
Renvoie la position du Node <> (décrit dans le fichier scene.xml). | |
String | getXMLattribute (String attribute, String childnode="") |
Renvoie un attribut du fichier XML. | |
Vector3 | getXMLvector (String childnode) |
Renvoie le vecteur demandé, soit du fichier XML de la scene ou du niveau. | |
bool | getXMLboolean (String attribute, bool DefaultValue, String childnode) |
Renvoie un attribut boolean du fichier XML. | |
Vector3 | getXMLColour () |
Renvoie la couleur du node "light". | |
Vector3 | getXMLLightDirection () |
Renvoie la direction d'une lumière directionnelle. | |
Real | getXMLLightRange () |
Renvoie le range du node "light". | |
int | getXMLRotation () |
Quaternion | getXMLOrientation () |
Extrait le quaternion "orientation" du node courant du fichier DotScene. | |
String | getXMLuserdata (String PropertyName) |
Renvoie le userData demandé. | |
void | rotateNode (SceneNode *node, Real Orientation, Quaternion q=Quaternion::IDENTITY) |
Cette fonction oriente un Node. | |
Protected Attributes | |
String | mLevelName |
SceneNode * | mLevelNode |
SceneManager * | mSceneMgr |
SceneNode * | mParentNode |
ShipLevel_XMLparser * | mXMLlevel |
Scene_XMLparser * | mXMLscene |
int | mRoomIndex |
int | mDoorIndex |
t_Map | mDoorMap [MAP_SIZE] |
Room * | mRoomMap [MAP_SIZE] |
Le tableau de toutes les Room du niveau. | |
Room * | mElevatorRoom |
La piece du niveau qui joue le role d'ascensceur. | |
bool | mSceneLevel |
Ce flag indique que le niveau entier est decrit par un fichier DotScene. | |
bool | mSceneRoom |
Ce flag indique que la Room est decrite individuellement par un fichier DotScene. | |
Vector3 | mCamPos |
Position initiale de la camera dans ce niveau (debug). | |
bool | mBlender |
Indique si la source du Level est Blender. Auquel cas, il y a une correction d'orientation à faire. | |
Classes | |
struct | t_Map |
< Cette structure contient le plan du Level More... |
Cette classe gère l'affichage (ou non) des pieces, selon l'emplacement du joueur (=camera) sur la carte. Le level est décrit dans un fichier XML, qui contient des Room, des Door, et des Scenes. Une Scene est aussi un fichier XML (au format "dotScene" qui contient 1 Romm et 1 Door).
|
Constructeur: Crée un étage vide.
|
|
Destructeur.
|
|
Ajoute une Porte (décrite dans un fichier XML dotScene). Dans le fichier XML, on doit être positionné sur un node DOOR.
|
|
Ajoute une lumière à une piece (décrit dans le fichier level.xml ou scene.xml).
|
|
Ajoute un objet à une piece. Cet objet est décrit dans le fichier XML dotScene. Il est ajouté là où est positionné le pointeur mCurrentNode.
|
|
Ajoute une piece (décrite dans le fichier level.xml ou scene.xml). Note: Le nom de la Room est le node name défini dans le fichier DotScene.
Attention, on a une exception si ReferencedRoom n'existe pas... |
|
Ajoute une scene (contenant N Room + des porte et des objets).
|
|
Cette fonction renvoie la position initiale de la camera dans ce niveau telle que décrite dans le fichier scene.xml (debug).
|
|
Extrait un quaternion du fichier DotScene.
|
|
Renvoie l'index dans le tableau mRoomMap de la Room demandée.
|
|
Renvoie la position du Level.
|
|
Retrouve une piece par son nom. Renvoie NULL si la piece n'est pas à ce niveau.
|
|
Renvoie le status du niveau sous forme de chaine XML.
|
|
Renvoie un attribut du fichier XML. Dans le cas d'un attribut de scene.xml, c'est un attribut de l'un des fils du node courant. Dans le cas d'un attribut de level.xml, c'est un attribut direct du node courant, et n'y a pas besoin de le chercher dans un node fils. Si childnode est vide, alors c'est un attribut du node courant (et pas d'un fils) Les noms des attributs sont les mêmes pour les deux formats XML. |
|
Renvoie un attribut boolean du fichier XML. Dans le cas d'un attribut de scene.xml, c'est un attribut de l'un des fils du node courant. Dans le cas d'un attribut de level.xml, c'est un attribut direct du node courant, et n'y a pas besoin de le checher dans un node fils. Si childnode est vide, alors c'est un attribut du node courant (et pas d'un fils) Les noms des attributs sont les mêmes pour les deux formats XML. |
|
Renvoie la couleur du node "light". La valeur par defaut est le noir. |
|
Renvoie la direction d'une lumière directionnelle.
|
|
Renvoie le range du node "light".
|
|
Extrait le quaternion "orientation" du node courant du fichier DotScene.
|
|
La valeur lue dans le XML "dotScene" est un réel [0..1] pour lequel "1" correspond à 380. (je ne sais pas ce que c'est comme unité). La valeur lue dans le XML "level" est un entier en degrés.
|
|
Renvoie le userData demandé. Dans les dotScene, les nodes "userdata" sont composés de sous-nodes "property". Ces "property" ont trois attributs: TYPE, NAME et DATA. (TYPE est ignoré).
|
|
Renvoie le vecteur demandé, soit du fichier XML de la scene ou du niveau. Dans le cas d'un fichier scene.xml, les attributs attendus dans le vecteur sont "x=", "y=" et "z=". On l'utilise en paticulier pour "position" et "scale". La valeur par defaut est un vecteur Nul. Note: ne fonctionne pas pour "colour", car les attributs de dotScene sont alors r, g, b. |
|
Enleve toutes les pièces du niveau.
|
|
On connecte les differentes pièces du ShipLevel entre elles, grace aux portes.
|
|
Cette fonction demande l'ouverture d'une porte.
|
|
Cette fonction demande l'ouverture d'une porte.
|
|
Renvoie la position du Node <> (décrit dans le fichier scene.xml). Dans le fichier DotScene, il y a possibilité de placer un node 'camera', avec une position. C'est utilie pour la mise au point des niveau.
|
|
Cette fonction oriente un Node. Simple rotation pour le format LEVEL, un quaternion pour le format DotScene. |
|
Envoie l'état d'alerte à toutes les pièces du niveau.
|
|
Allume (ou éteint) les lumières de toutes les pieces du niveau. Le tableau mRoomMap doit être construit avant d'appeler cette fonction. |
|
Etablit l'état initial du vaisseau.
|
|
Les lumières principales de toutes les pieces du niveau passent au rouge. Le tableau mRoomMap doit être construit avant d'appeler cette fonction. |
|
Affiche les pièces voisines de la porte.
|
|
Affiche toutes les pièces du niveau.
|
|
Affiche la pièce qui fait partie de l'ascenseur.
|
|
Affiche la pièce demandée (les autres sont effacées pour gagner en framerate).
|
|
Cette fonction affiche la Room demandée, et efface toutes les autres. Cela permet de gagner du framerate opur l'affichage. Si la pièce à afficher est un Elevator (de ce niveau, ou d'un autre niveau) alors alors on n'efface pas l'ascenseur de ce niveau. |
|
Indique si la source du Level est Blender. Auquel cas, il y a une correction d'orientation à faire.
|
|
Position initiale de la camera dans ce niveau (debug).
|
|
|
|
|
|
La piece du niveau qui joue le role d'ascensceur.
|
|
|
|
|
|
|
|
|
|
Le tableau de toutes les Room du niveau.
|
|
Ce flag indique que le niveau entier est decrit par un fichier DotScene.
|
|
|
|
Ce flag indique que la Room est decrite individuellement par un fichier DotScene.
|
|
|
|
|