Files
DoomRTX/neo/prey/Prey/game_slots.h
T
2026-05-05 15:01:01 -07:00

87 lines
1.7 KiB
C++

#ifndef __GAME_SLOTS_H__
#define __GAME_SLOTS_H__
#define SLOT_HEIGHT 100
#define SLOTS_IN_REEL 10
#define MINIMUM_REEL_RATE (SLOT_HEIGHT/2)
#define REEL_LENGTH (SLOTS_IN_REEL*SLOT_HEIGHT)
#define MASK_CHERRY 0x00000001
#define MASK_ORANGE 0x00000002
#define MASK_LEMON 0x00000004
#define MASK_APPLE 0x00000008
#define MASK_GRAPE 0x00000010
#define MASK_MELON 0x00000020
#define MASK_BAR 0x00000100
#define MASK_BARBAR 0x00000200
#define MASK_BARBARBAR 0x00000400
#define MASK_ANYBAR 0x00000700
#define MASK_ANY 0xffffffff
typedef enum {
FRUIT_CHERRY=0,
FRUIT_ORANGE,
FRUIT_LEMON,
FRUIT_APPLE,
FRUIT_GRAPE,
FRUIT_MELON,
FRUIT_BAR,
FRUIT_BARBAR,
FRUIT_BARBARBAR,
NUM_FRUITS
}fruit_t;
typedef struct victory_s {
int f1, f2, f3;
int payoff;
}victory_t;
class hhSlots : public hhConsole {
public:
CLASS_PROTOTYPE( hhSlots );
void Spawn( void );
void Save( idSaveGame *savefile ) const;
void Restore( idRestoreGame *savefile );
void Spin();
void IncBet();
void DecBet();
void CheckVictory();
void Reset();
void UpdateView();
bool HandleSingleGuiCommand(idEntity *entityGui, idLexer *src);
protected:
virtual void Think( void );
void Event_Spin();
private:
int Bet;
int PlayerBet;
int PlayerCredits;
int result;
int creditsWon;
int victoryAmount;
idStr fruitTextures[NUM_FRUITS];
fruit_t reel1[SLOTS_IN_REEL];
fruit_t reel2[SLOTS_IN_REEL];
fruit_t reel3[SLOTS_IN_REEL];
float reelPos1, reelPos2, reelPos3;
float reelRate1, reelRate2, reelRate3;
bool bSpinning;
bool bCanSpin;
bool bCanIncBet;
bool bCanDecBet;
};
#endif /* __GAME_SLOTS_H__ */