#ifndef TTR_H #define TTR_H #include "grafx.h" // Towns #define TOWN_VANCOUVER 0 #define TOWN_SEATTLE 1 #define TOWN_PORTLAND 2 #define TOWN_SAN_FRANCISCO 3 #define TOWN_CALGARY 4 #define TOWN_HELENA 5 #define TOWN_SALT_LAKE_CITY 6 #define TOWN_LAS_VEGAS 7 #define TOWN_LOS_ANGELES 8 #define TOWN_DENVER 9 #define TOWN_SANTA_FE 10 #define TOWN_PHOENIX 11 #define TOWN_EL_PASO 12 #define TOWN_OMAHA 13 #define TOWN_WINNIPEG 14 #define TOWN_DULUTH 15 #define TOWN_KANSAS_CITY 16 #define TOWN_OKLAHOMA_CITY 17 #define TOWN_CHICAGO 18 #define TOWN_SAULT_ST_MARIE 19 #define TOWN_TORONTO 20 #define TOWN_MONTREAL 21 #define TOWN_BOSTON 22 #define TOWN_NEW_YORK 23 #define TOWN_PITTSBURGH 24 #define TOWN_SAINT_LOUIS 25 #define TOWN_WASHINGTON 26 #define TOWN_LITTLE_ROCK 27 #define TOWN_RALEIGH 28 #define TOWN_NASHVILLE 29 #define TOWN_ATLANTA 30 #define TOWN_CHARLESTON 31 #define TOWN_HOUSTON 32 #define TOWN_NEW_ORLEANS 33 #define TOWN_MIAMI 34 #define TOWN_DALLAS 35 #define COULEUR_LOCO 0 #define COULEUR_NOIR 1 #define COULEUR_BLEU 2 #define COULEUR_MARRON 3 #define COULEUR_VERT 4 #define COULEUR_ROSE 5 #define COULEUR_ROUGE 6 #define COULEUR_BLANC 7 #define COULEUR_JAUNE 8 #define COULEUR_BACK 9 #define MAX_PAVE 310 #define MAX_PATH 101 #define ETAT_SPLASH_SCREEN 1 #define ETAT_LOADING 2 #define ETAT_MENU_ANIME 3 #define ETAT_MENU 4 #define ETAT_NOUVELLE_PARTIE 5 #define ETAT_CHARGER_PARTIE 6 #define ETAT_CREDITS 7 #define ETAT_TUTORIAL 8 #define ETAT_LANCER_PARTIE 9 #define ETAT_LOADING_SLOT_1 10 #define ETAT_LOADING_SLOT_2 11 #define ETAT_LOADING_SLOT_3 12 #define ETAT_LOADING_SLOT_4 13 #define ETAT_LOADING_SLOT_5 14 #define ETAT_CHOIX_SLOT_SAUVEGARDE 15 #define ETAT_CHOIX_SLOT_1 16 #define ETAT_CHOIX_SLOT_2 17 #define ETAT_CHOIX_SLOT_3 18 #define ETAT_CHOIX_SLOT_4 19 #define ETAT_CHOIX_SLOT_5 20 #define ETAT_RETOUR_BUREAU 21 #define ETAT_LIBERATION_MEMOIRE 22 #define ETAT_CHOIX_JOUEUR 23 #define ETAT_FIN_DU_TOUR 24 #define ETAT_CHOIX_ROUTE 25 #define ETAT_CHOISIR_CARTES_MISSIONS 26 #define ETAT_FIN_DU_JEU 27 typedef struct ttrPave { sint16 x; sint16 y; uint8 rot; uint8 owner; // 0 personne; 1 et + : joueur } ttrPave; uint16 numPave; ttrPave *paves; typedef struct ttrPath { uint8 villeA; uint8 villeB; uint8 couleur; uint8 lien; uint8 distance; uint16 idxPave[6]; uint8 owner; // 0 personne; 1 et + : joueur uint8 IAscore; } ttrPath; ttrPath *paths; uint16 nbPaveAAfficher; uint16 *pavesAAfficher; uint8 piocheCartesWagon[110]; uint8 nbCartesWagonPioche; uint8 defausseCartesWagon[110]; uint8 nbCartesWagonDefausse; uint8 choixCartesWagon[5]; typedef struct ttrMission { uint8 villeA; uint8 villeB; uint8 pts; } ttrMission; ttrMission missions[30]; uint8 piocheCartesMission[30]; uint8 nbCartesMissionPioche; uint8 nbChoixCarteMission; uint8 choixCarteMission[5]; uint8 choixCarteMissionResultat[5]; void creations_routes(); void done_routes(); typedef struct ttrJoueur { uint16 couleur; uint8 couleurW; uint8 avatar; sint16 points; uint8 nbWagons; uint8 selectionChoix; uint8 nbCartesWagon; uint8 lstCartesWagon[110]; uint8 nbCartesMission; uint8 lstCartesMission[30]; bool missionsRealisee[30]; bool villesAccessibles[36]; uint8 nbCartes[9]; uint8 missionCourante; uint16 lastAction; uint8 affichageBas; uint16 xCarte; uint8 yCarte; uint16 couleurFonte; // pour l'IA bool humain; sint8 bestPaths[3]; sint8 bestCouleur[3]; } ttrJoueur; uint8 nbTotalJoueur; ttrJoueur *joueurs; uint8 numeroTour; uint8 tourRestant; void initJoueurs(); void doneJoueurs(); void preparerUsMap(); void revendiquerRoute(uint8 numPath, uint8 numJoueur); void initCartes(); void initPioches(); bool isPiocheWagonVide(); void joueurPiocheCarteWagon(uint8 numJoueur); void joueurDefausseCarteWagon(uint8 numJoueur, uint8 couleur); void refairePiocheWagon(); void piochePiocheCarteWagon(uint8 num); uint8 etatGlobal; uint8 nbCarteJoueur(uint8 numJoueur, uint8 numCarte); void etatChoixJoueur(uint8 numJoueur, uint8 numSlot); void etatChoixRouteJoueur(uint8 numJoueur, uint8 numSlot); void etatChoixCarteMission(uint8 numJoueur, uint8 numSlot, bool modeTuto); void afficherMainJoueur(uint8 numJoueur); bool afficherMissionCourante(uint8 numJoueur); uint16 nbPaiementPossible; uint8 paiementPossible[6*9][6]; bool isPathPossible(uint8 numJoueur, uint8 numPath); uint8 remplirChoixPaiementWagon(uint8 numJoueur, uint8 numPath); typedef struct ttrpathfinder_ville { uint8 step; uint8 score; } ttrpathfinder_ville; ttrpathfinder_ville pathfinder_ville[36]; uint8 chargerPartie(uint8 numPartie); void afficherAnimationMenu(); uint8 afficherMenuPrincipal(); uint8 afficherNouvellePartie(); void afficherFinDuJeu(); void terminerPartie(uint8 slotCourant); void afficherCredits(); void afficherBas(uint8 numJoueur, uint8 modeAffichage); uint8 choisirSlot(bool modeChargement); void melangerPiocheWagon(); void testerPassAndPlay(); void afficherTuto(); #endif