#include <game_bsp.h>
Public Member Functions | |
cGame_World () | |
constructeur | |
~cGame_World () | |
destructeur | |
void | Print_Leaves () |
affiche ds std::cout la liste des feuilles et leurs infos | |
bool | Find_Path (cPoint2D &pA, cPoint2D &pB, std::vector< cPoint2D > &Path) |
met ds Path le chemin de pA à pB | |
bool | Do_Ball_Intersect_Walls (int x, int y, int r) |
retourne true si la boule de centre (x,y) de rayon r intersecte un mur du monde | |
bool | Do_Segment_Intersect_Walls (cSeg &seg, cPoint2D &p_inter, int square_test_range) |
retourne vrai si le segment intersecte au moins un mur | |
bool | Do_Segment_Intersect_Walls (cSeg &seg, cPoint2D &p_inter) |
meme chose mais test le segment sur toute la longueur | |
void | Decorate () |
decore l'arbre bsp et crée les liste de murs et de portails | |
Public Attributes | |
cHV_BSP_Tree | My_BSP |
l'arbre BSP qui contient la monde | |
Static Public Attributes | |
cPositive_Rectangle | Ecran |
rectangle qui represente la zone de jeu entiere | |
Private Member Functions | |
void | Decorate_With_Areas () |
parcours l'arbre et remplace chaque feuille par un cSquare_Area | |
void | Decorate_With_Areas (cHV_Node *node, cSquare_Area *area) |
remplace les feuilles du sous-arbre 'node' par un cSquare_Area | |
void | Decorate_With_Walls_And_Portals () |
parcours la liste des cSquare_Areas et ajoute a chacune ses murs et ses portals | |
cPortal * | Declare_Portal (cSquare_Area *area, cHV_Seg &seg) |
declare au jeu l'existence d'un portal ( qui a peut-etre déja été créé ) | |
void | Add_Wall_And_Portals (cSquare_Area *area, cHV_Seg &seg) |
ajoute au jeu les murs et les portals contenu dans un coté d'une piece | |
void | Creates_And_Add_Portals (cSquare_Area *area, cHV_Seg &seg, cHV_Seg &wall) |
ajoute au jeu les portals qui decoulent de l'ajout d'un mur au bord de cette piece | |
void | Split_Portal (cPortal *p, cHV_Seg &seg) |
divise le portail 'p' selon le segment 'seg' | |
void | Manage_Paralell_Portals (void) |
créee un noeud entre deux portails paralelles d'un mur d'une meme piece | |
Private Attributes | |
std::vector< cSquare_Area * > | List_Areas |
la liste des pieces du jeu | |
std::vector< cPortal * > | List_Portals |
la liste des portals qui sont les noeuds pour le A* algorithm | |
int | N_Leaves |
nombres de pieces ds le jeu | |
int | N_Portals |
nombre de portals | |
bool | bDecorated_With_Areas |
indique que les feuilles de l'arbre ont ete insérées | |
cA_Star_Search | Path_Finder |
class pour chercher un chemin dans un graphe ( A* ) |
Definition at line 101 of file game_bsp.h.
|
constructeur
Definition at line 206 of file game_bsp.cpp. References bDecorated_With_Areas, N_Leaves, and N_Portals. |
|
destructeur
Definition at line 215 of file game_bsp.cpp. References bDecorated_With_Areas, List_Areas, List_Portals, N_Leaves, and N_Portals. |
|
ajoute au jeu les murs et les portals contenu dans un coté d'une piece
'area' : area à laquelle on va ajouter les murs et portals trouvés Definition at line 403 of file game_bsp.cpp. References cSquare_Area::Add_Wall(), Add_Wall_And_Portals(), cBSP_Node< Divider_Type >::Back, Creates_And_Add_Portals(), Declare_Portal(), cBSP_Node< Divider_Type >::Divider, cBSP_Node< Divider_Type >::Front, cHV_Seg::Get_Intersection(), cSeg::Get_Middle(), cSeg::Get_p0(), cSeg::Get_p1(), My_BSP, cHV_Seg::Set(), and cBSP_Tree< cItem, cBSP_Node, cDivider_Type >::Where_Is(). Referenced by Add_Wall_And_Portals(), and Decorate_With_Walls_And_Portals(). |
|
ajoute au jeu les portals qui decoulent de l'ajout d'un mur au bord de cette piece
'area' : piece etudiée Definition at line 366 of file game_bsp.cpp. References Creates_And_Add_Portals(), Declare_Portal(), cSeg::Get_p0(), cSeg::Get_p1(), and cHV_Seg::Set(). Referenced by Add_Wall_And_Portals(), and Creates_And_Add_Portals(). |
|
declare au jeu l'existence d'un portal ( qui a peut-etre déja été créé )
'seg' : segment porteur du nouveau portal Definition at line 447 of file game_bsp.cpp. References cPortal::Add_Area(), cSquare_Area::Add_Portal(), cPortal::Area2, Declare_Portal(), cHV_Seg::Get_Complementaires(), cSeg::Get_p0(), cSeg::Get_p1(), List_Portals, N_Portals, cPortal::Segment, and Split_Portal(). Referenced by Add_Wall_And_Portals(), Creates_And_Add_Portals(), and Declare_Portal(). |
|
decore l'arbre bsp et crée les liste de murs et de portails
Definition at line 764 of file game_bsp.cpp. References Decorate_With_Areas(), Decorate_With_Walls_And_Portals(), and Manage_Paralell_Portals(). Referenced by cGame_Manager::Load_Level(), Test_Intersections_1(), Test_Intersections_2(), Test_Path_Finder_1(), Test_Path_Finder_2(), Test_Path_Finder_3(), Test_Path_Finder_4(), and Test_Path_Finder_5(). |
|
remplace les feuilles du sous-arbre 'node' par un cSquare_Area
'area' contient un pointeur vers un cSquare_Area qui represente ( node->front union node->back ) Definition at line 260 of file game_bsp.cpp. References cBSP_Node< Divider_Type >::Back, Decorate_With_Areas(), cBSP_Node< Divider_Type >::Divider, cBSP_Node< Divider_Type >::Front, List_Areas, N_Leaves, cBSP_Node< Divider_Type >::Set_Id(), and cSquare_Area::split(). |
|
parcours l'arbre et remplace chaque feuille par un cSquare_Area met dans 'List_Areas' la liste des areas du jeu Definition at line 241 of file game_bsp.cpp. References bDecorated_With_Areas, cHV_Node, Ecran, cBSP_Tree< cItem, cBSP_Node, cDivider_Type >::Get_Root(), My_BSP, N_Leaves, and cBSP_Node< Divider_Type >::Set_Id(). Referenced by Decorate(), and Decorate_With_Areas(). |
|
parcours la liste des cSquare_Areas et ajoute a chacune ses murs et ses portals
met dans 'List_Portals' la liste des portals du jeu Definition at line 316 of file game_bsp.cpp. References Add_Wall_And_Portals(), bDecorated_With_Areas, and List_Areas. Referenced by Decorate(). |
|
retourne true si la boule de centre (x,y) de rayon r intersecte un mur du monde retourne false si le fichier est introuvable ou non valide Definition at line 679 of file game_bsp.cpp. References Do_Ball_Intersect_Walls(), cBSP_Tree< cItem, cBSP_Node, cDivider_Type >::In_Which_Leaf_Is(), cSquare_Area::List_Walls, and My_BSP. Referenced by Do_Ball_Intersect_Walls(), cGame_Manager::Is_Free_Place(), cUnit::Move(), and Test_Intersections_2(). |
|
meme chose mais test le segment sur toute la longueur
Definition at line 699 of file game_bsp.cpp. References Do_Segment_Intersect_Walls(), and cSeg::Get_Square_Length(). |
|
retourne vrai si le segment intersecte au moins un mur
s'il y a intersection, le point d'intersection est mis ds p_inter Definition at line 707 of file game_bsp.cpp. References cBSP_Node< Divider_Type >::Back, cHV_Seg::Contient_Point(), cBSP_Node< Divider_Type >::Divider, Do_Segment_Intersect_Walls(), cBSP_Node< Divider_Type >::Front, cSeg::Get_p0(), cSeg::Get_p1(), cPoint2D::Get_X(), cPoint2D::Get_Y(), cBSP_Tree< cItem, cBSP_Node, cDivider_Type >::In_Which_Leaf_Is(), My_BSP, cIncremental_Bresenham::Reset(), cHV_Seg::Set(), cIncremental_Bresenham::Step(), cBSP_Tree< cItem, cBSP_Node, cDivider_Type >::Where_Is(), cPoint2D::X, and cPoint2D::Y. Referenced by Do_Segment_Intersect_Walls(), and Test_Intersections_1(). |
|
met ds Path le chemin de pA à pB retourne vrai si un chemin a ete trouvé, false sinon Definition at line 609 of file game_bsp.cpp. References cPortal::Add_Voisin(), cA_Star_Search::Find_Path(), Find_Path(), cA_Star_Node::Get_List_Neighbors(), cPoint2D::Get_X(), cPoint2D::Get_Y(), cBSP_Tree< cItem, cBSP_Node, cDivider_Type >::In_Which_Leaf_Is(), My_BSP, Path_Finder, cPortal::Remove_Voisin(), cPoint2D::X, and cPoint2D::Y. Referenced by Find_Path(), Test_Path_Finder_1(), Test_Path_Finder_2(), Test_Path_Finder_3(), Test_Path_Finder_4(), Test_Path_Finder_5(), and cEnnemy::Update_Path(). |
|
créee un noeud entre deux portails paralelles d'un mur d'une meme piece
le noeud est placé a distance egale des deux portails, décalé un peu dans la piece Definition at line 352 of file game_bsp.cpp. References List_Areas. Referenced by Decorate(). |
|
affiche ds std::cout la liste des feuilles et leurs infos
Definition at line 304 of file game_bsp.cpp. References List_Areas. |
|
divise le portail 'p' selon le segment 'seg'
precondition : 'seg' est contenu dans le portail Definition at line 536 of file game_bsp.cpp. References cSquare_Area::Add_Portal(), cPortal::Area1, cHV_Seg::Contient(), cHV_Seg::Get_Complementaires(), cSeg::Get_Middle(), cSeg::Get_p0(), cSeg::Get_p1(), List_Portals, N_Portals, cA_Star_Node::Position, cPortal::Segment, cHV_Seg::Set(), and Split_Portal(). Referenced by Declare_Portal(), and Split_Portal(). |
|
indique que les feuilles de l'arbre ont ete insérées
Definition at line 142 of file game_bsp.h. Referenced by cGame_World(), Decorate_With_Areas(), Decorate_With_Walls_And_Portals(), and ~cGame_World(). |
|
rectangle qui represente la zone de jeu entiere
Definition at line 135 of file game_bsp.h. Referenced by Decorate_With_Areas(). |
|
la liste des pieces du jeu
Definition at line 138 of file game_bsp.h. Referenced by Decorate_With_Areas(), Decorate_With_Walls_And_Portals(), cGame_World_Debug_Displayer::Display_Areas(), Manage_Paralell_Portals(), Print_Leaves(), and ~cGame_World(). |
|
la liste des portals qui sont les noeuds pour le A* algorithm
Definition at line 139 of file game_bsp.h. Referenced by Declare_Portal(), cGame_World_Debug_Displayer::Display_Graph(), Split_Portal(), and ~cGame_World(). |
|
l'arbre BSP qui contient la monde
Definition at line 134 of file game_bsp.h. Referenced by Add_Wall_And_Portals(), Decorate_With_Areas(), cGame_Manager::Display(), Do_Ball_Intersect_Walls(), Do_Segment_Intersect_Walls(), Find_Path(), cLevel_Loader::Read_Wall(), and cBSP_Loader::Read_Wall(). |
|
nombres de pieces ds le jeu
Definition at line 140 of file game_bsp.h. Referenced by cGame_World(), Decorate_With_Areas(), and ~cGame_World(). |
|
nombre de portals
Definition at line 141 of file game_bsp.h. Referenced by cGame_World(), Declare_Portal(), Split_Portal(), and ~cGame_World(). |
|
class pour chercher un chemin dans un graphe ( A* )
Definition at line 143 of file game_bsp.h. Referenced by Find_Path(). |