mirror of
https://github.com/jmarshall23/DoomRTX.git
synced 2026-08-21 05:02:28 +02:00
Initial Prey Game integration support.
This commit is contained in:
@@ -0,0 +1,123 @@
|
||||
|
||||
#ifndef __GAME_POKER_H__
|
||||
#define __GAME_POKER_H__
|
||||
|
||||
extern const idEventDef EV_UpdateView;
|
||||
|
||||
#define PREQ_FLUSH 0x00000001
|
||||
#define PREQ_STRAIGHT 0x00000002
|
||||
#define PREQ_ROYALS 0x00000004
|
||||
#define PREQ_4MATCH 0x00000008
|
||||
#define PREQ_3MATCH 0x00000010
|
||||
#define PREQ_2MATCH 0x00000020
|
||||
#define PREQ_FULLHOUSE 0x00000040
|
||||
#define PREQ_2PAIR 0x00000080
|
||||
|
||||
typedef enum pokerhand_e {
|
||||
HAND_ROYALFLUSH=0,
|
||||
HAND_STRAIGHTFLUSH,
|
||||
HAND_FOUROFKIND,
|
||||
HAND_FULLHOUSE,
|
||||
HAND_FLUSH,
|
||||
HAND_STRAIGHT,
|
||||
HAND_THREEOFKIND,
|
||||
HAND_TWOPAIR,
|
||||
HAND_PAIR,
|
||||
HAND_NOTHING,
|
||||
NUM_POKER_HANDS
|
||||
}pokerhand_t;
|
||||
|
||||
typedef struct hand_s {
|
||||
pokerhand_t hand;
|
||||
int payoff;
|
||||
int requirement;
|
||||
} hand_t;
|
||||
|
||||
|
||||
class hhPokerHand : public idClass {
|
||||
CLASS_PROTOTYPE( hhPokerHand );
|
||||
|
||||
public:
|
||||
typedef struct valueHist_s {
|
||||
int count;
|
||||
} valueHist_t;
|
||||
|
||||
typedef struct suitHist_s {
|
||||
int count;
|
||||
} suitHist_t;
|
||||
|
||||
hhPokerHand();
|
||||
void Save( idSaveGame *savefile ) const;
|
||||
void Restore( idRestoreGame *savefile );
|
||||
void Clear();
|
||||
int MaxCountOfValues();
|
||||
int ValueOfMaxCount();
|
||||
int GetLowValue();
|
||||
int GetHighValue();
|
||||
bool HasValue(int value);
|
||||
int NumOfValue(int value);
|
||||
int SuitOfMaxCount();
|
||||
int NumUniqueValues();
|
||||
int NumUniqueSuits();
|
||||
void AddCard(hhCard card);
|
||||
bool Search(hhCard &card);
|
||||
void operator=(hhPokerHand &other);
|
||||
|
||||
public:
|
||||
suitHist_t suits[NUM_SUITS];
|
||||
valueHist_t values[NUM_CARD_VALUES];
|
||||
idList<hhCard> cards;
|
||||
|
||||
};
|
||||
|
||||
class hhPoker : public hhConsole {
|
||||
CLASS_PROTOTYPE( hhPoker );
|
||||
public:
|
||||
|
||||
void Spawn( void );
|
||||
void Save( idSaveGame *savefile ) const;
|
||||
void Restore( idRestoreGame *savefile );
|
||||
|
||||
void Deal();
|
||||
void Draw();
|
||||
void Mark(int card);
|
||||
void IncBet();
|
||||
void DecBet();
|
||||
void BestHand(float probability);
|
||||
void Reset();
|
||||
|
||||
void EvaluateHand(bool score);
|
||||
void UpdateView();
|
||||
bool HandleSingleGuiCommand(idEntity *entityGui, idLexer *src);
|
||||
|
||||
protected:
|
||||
void Event_Deal();
|
||||
void Event_Draw();
|
||||
void Event_UpdateView();
|
||||
|
||||
private:
|
||||
static const hand_t *hands;
|
||||
hhDeck deck;
|
||||
hhPokerHand PlayerHand;
|
||||
|
||||
bool markedCards[5];
|
||||
int Bet;
|
||||
int PlayerBet;
|
||||
int PlayerCredits;
|
||||
int victoryAmount;
|
||||
int currentHandIndex;
|
||||
int creditsWon;
|
||||
|
||||
bool bGameOver;
|
||||
bool bCanDeal;
|
||||
bool bCanIncBet;
|
||||
bool bCanDecBet;
|
||||
bool bCanDraw;
|
||||
bool bCanMark1;
|
||||
bool bCanMark2;
|
||||
bool bCanMark3;
|
||||
bool bCanMark4;
|
||||
bool bCanMark5;
|
||||
};
|
||||
|
||||
#endif /* __GAME_POKER_H__ */
|
||||
Reference in New Issue
Block a user