ftp.nice.ch/pub/next/games/card/NEXTVegas3.0.src.tar.gz#/NEXTVegas/VideoPoker/VideoPoker.h

This is VideoPoker.h in view mode; [Download] [Up]

#import <appkit/appkit.h>
#import "../NEXTVegas/NVDealer.h"
#import "poker.h"

/**************************************************************************************
 *    VideoPoker                                                                      *
 *                                                                                    *
 *    Video Poker is a one player game that simulates a video poker machine found in  *
 *    most casinos.  The current player (the player whose window is highest in the    *
 *    window list) is the player who is "playing" the game.                           *
 *                                                                                    *
 *    This is the third module I wrote for NEXTVegas, as so it is probably the        *
 *    most coherent of the three.  I would look at this mostly to get ideas on how    *
 *    to write modules for the app.  It was written in three days, which is pretty    *
 *    good considering how long it took me to write the craps game!                   *
 *                                                                                    *
 **************************************************************************************/

#define VP_HIGHLIGHT 1
#define VP_REGULAR 0

struct VP_TableDisplay
{
	id	button;
	id	image;
	id	imageH;
};

@interface VideoPoker:NVDealer
{
	id	deckView;
	id	deckPile;

	id	card1View;
	id	card2View;
	id	card3View;
	id	card4View;
	id	card5View;
	id	card1Button;
	id	card2Button;
	id	card3Button;
	id	card4Button;
	id	card5Button;
	id	drawButton;
	id	coinsPlayedText;
	id	oneCoinButton;
	id	maxCoinsButton;
	id	coinsWonText;
	id	wonText;
	id	propText;
	id	creditText;
	id  coinValueText;
	id	cashOutButton;
	id	propButton;
	id  coinValueButton;
	id	coinPlayDepText;
	
	struct _cardField cardField[VP_NUMCARDS];
	
	int	coinValue;
	int	maxCoins;
	
	BOOL	handInProgress;
	BOOL	isFirstCoin;
	
	// Sound effects
	id		glissSound;
	id		beepSound;
	id		twoBeepSound;
	id		beepHighSound;
	
	// Timed entries for animation of the various payouts
	DPSTimedEntry	payOutTE;
	int				payOutAmount;
	
	//	Button images
	BOOL 	isHighlight;
	id		holdButtonImage;
	id		holdButtonImageH;
	id		cashOutButtonImage;
	id		cashOutButtonImageH;
	id		drawButtonImage;
	id		drawButtonImageH;
	id		oneCoinButtonImage;
	id		oneCoinButtonImageH;
	id		maxCoinsButtonImage;
	id		maxCoinsButtonImageH;
	
	id		tableButton1;
	id		tableButton2;
	id		tableButton3;
	id		tableButton4;
	id		tableButton5;
	struct VP_TableDisplay	tableArea[5];
	
	// Timed entry for the flashing of the buttons
	DPSTimedEntry	fastFlashTE;
}

// Initialization methods
- awakeFromNib;
- setImages;
- newDeck;
- setCoinValue:sender;

// Game flow methods
- startGame:sender;
- dealCards;
- replaceDiscards;
- (PokerHand)checkForWin;
- endGame:sender;
 
// Pay out methods
- payOut:(PokerHand)winType;
- payOneToCurrent;

// Target/Action methods
- cashOut:sender;
- draw:sender;
- hold:sender;
- playOne:sender;
- playMax:sender;

// Utility methods
- fastFlash;

// for debugging
- getNextCard:sender;
- checkHand:sender;
- cardValues:sender;

// CardPileView delegate methods
- clickedCard:aCard in:aCardPileView;
- getOffset:(float *)xOffset :(float *)yOffset;

@end


These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.