home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Freelog 17
/
Freelog017.iso
/
BeOS
/
ababelone
/
Sources
/
FenetreAbabelone.h
< prev
next >
Wrap
C/C++ Source or Header
|
2000-11-22
|
5KB
|
144 lines
/*
Copyright (C) 2000 by Hervé PHILIPPE <rv@bemail.org>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef _FENETREABABELONE_H_
#define _FENETREABABELONE_H_
#include <Application.h>
#include <Window.h>
#include <Button.h>
#include <Message.h>
#include <stdio.h>
#include <MenuBar.h>
#include <MenuItem.h>
#include <Alert.h>
#include <FilePanel.h>
#include <File.h>
#include <FindDirectory.h>
#include <Path.h>
#include <OS.h>
#include "PlateauDeJeuInterne.h"
#include "PlateauDeJeuGraphique.h"
#include "DeplacementHumain.h"
#include "DeplacementOrdinateur.h"
#include "FenetreChangementDePartie.h"
#include "TextesDuLogiciel.h"
#include "MenuDynamique.h"
// VERSION pour "aba_Be_lone"
#define VERSION_ABABELONE "aba_Be_lone v1.1"
#define REPERTOIRE_PARTIES "Parties"
#define REPERTOIRE_FICHIER_PREFERENCES "aba_Be_lone"
#define FICHIER_PREFERENCES "settings"
#define EXTENTION_FICHIER ".aba_Be_lone"
#define ENTETE_FICHIER "aba_Be_lone.\nFichier d'une partie faite par le logiciel \"aba_Be_lone\".\n"
#define POSITION_FENETRE_ABABELONE BRect(0,20,1023,725)
#define MSG_QUITTER 'QUIT'
#define MSG_PARTIE_PAUSE 'PAUS'
#define MSG_NOUVELLE_PARTIE 'NOUD'
#define MSG_CHANGER_PARTIE 'NOUP'
#define MSG_CHARGER 'CHAR'
#define MSG_SAUVEGARDER 'SAUV'
#define MSG_COUP_PRECEDENT 'CPRE'
#define MSG_COUP_SUIVANT 'CSUI'
#define MSG_COUP_SUIVANT_REALISTE 'CSUR'
#define MSG_DEPLACEMENT_REALISTE 'DREA'
#define MSG_A_PROPOS_DE 'APRO'
#define MSG_LANGUE 'Z000'
#define MSG_PLATEAU_DE_JEU 'Z100'
class FenetreAbabelone : public BWindow
{
// FONCTIONS
public:
FenetreAbabelone();
virtual ~FenetreAbabelone();
virtual bool QuitRequested();
virtual void FrameResized(float width, float height);
virtual void MessageReceived(BMessage* message);
void SourisBoutonGaucheAppuye(BPoint where);
void SourisBoutonDroitAppuye();
void SourisBoutonRelache(BPoint where);
private:
void CreerMenu(uint8 numero_langue = 1, uint8 numero_plateau_de_jeu = 1);
void ChangerTextes(uint8 numero_langue);
void RemplirTableauHexagonalPositionDeDepart();
static int32 Jouer(void* ptr_objet);
void InterromprePartie(bool tuer_thread = true, bool interrompre_temporairement = false);
void ContinuerPartie();
void CommencerPartie(bool commencer_du_debut, bool mise_a_jour_buffer_ecran = true);
// void JoueurSuivantOuPrecedent(bool joueur_suivant);
void CoupPrecedent();
void CoupSuivant(bool faire_glisser_les_boules = false, bool mise_a_jour_buffer_ecran = true);
void ChargerFichier(BMessage* message);
void SauvegarderFichier(BMessage* message);
void PreparerListeAvantDeJouer();
void AfficherTitre(bool partie_finie);
void APropos();
// VARIABLES ET CONSTANTES
private:
BFile* m_FichierPreferences;
BFilePanel* m_ChargerFichier;
BFilePanel* m_SauvegarderFichier;
FenetreChangementDePartie* m_FenetreChangementDePartie;
thread_id m_ThreadJouer;
uint8 m_HumainADejaJoue;
BMenuBar* m_MenuBar;
BMenuItem* m_ItemTerminer;
BMenuItem* m_ItemCoupPrecedent;
BMenuItem* m_ItemCoupSuivant;
BMenuItem* m_ItemCoupSuivantRealiste;
BMenuItem* m_ItemCharger;
BMenuItem* m_ItemSauvegarder;
BMenuItem* m_ItemChangerJoueurs;
BMenuItem* m_ItemDeplacementRealiste;
PlateauDeJeuInterne* m_PlateauInterne; // Objet "Plateau" qui réunit les fonctions liées au plateau de jeu interne
PlateauDeJeuGraphique* m_PlateauGraphique;
uint8 m_NombreJoueurs;
uint8 m_NombreBoules;
uint8* m_TableauJoueurs;
Deplacement** m_TableauDeplacementJoueurs;
uint8 m_JoueurCourant;
sem_id m_SemaphoreThread;
BMessage* m_MessagePourFenetre;
bool m_DeplacementRealiste;
bool m_PartieInterrompue;
bool m_PartieInterrompueTemporairement;
bool m_PartieTerminee;
bool m_Debut;
BList* m_ListeCoupsJoues;
int32 m_NumeroCoupJoueCourant;
bool m_AffichageAPropos;
TextesDuLogiciel* m_Textes;
MenuDynamique* m_MenuLangue;
MenuDynamique* m_MenuPlateauDeJeu;
};
#endif