RbBFBlokProjE l8PSIVStrn5.5OPSpStrn Cards.rbpACnmStrnAChpStrnACsvStrnVer1Strn1Ver2Strn0Ver3Strn0RelsStrn0NnRlStrn0RegnStrnSVerStrnLVerStrnIVerStrnDVewInt gprTpInt DLanInt CLanInt DEncInt BflgInt BCXFInt IconGrupEndGInt CPalGrupflagInt elemInt elemInt elemInt elemInt elemInt elemInt elemInt elemInt elemInt elemInt elemInt elemInt elemInt elemInt elemInt elemInt EndGInt MacCStrnBMacStrnMy App (Classic)BCarStrnMy ApplicationBSizInt @BMSzInt BSzSStrn4096BMSSStrn2048MDIcStrnBWinStrnMy Application.exeBMDIInt BL86Strn MyApplicationrEdtRectPadnPadn********************************************************************************************************************************************************************************************************BlokpVewg\E l8NameStrn WarWindowContInt "wrEdtRect*7zeSptInt bPGpGrupPbPElGrup4scKyInt VrEdtRect*7zeSptInt EndGInt EndGInt lstHInt lstVInt PDefGrup8nameStrnNamePValStrn WarWindowEncoInt EndGInt PDefGrup(nameStrnFramePValStrn0EndGInt PDefGrup0nameStrn CompositePValStrnFalseEndGInt PDefGrup0 nameStrn HasBackColorPValStrnFalseEndGInt PDefGrup0 nameStrn BackColorPValStrn16777215EndGInt PDefGrup( nameStrnBackdropPValStrn0EndGInt PDefGrup@ nameStrnTitlePValStrnLet's Play War!EncoInt EndGInt PDefGrup( nameStrnVisiblePValStrnTrueEndGInt PDefGrup0nameStrn FullScreenPValStrnFalseEndGInt PDefGrup0nameStrnMenuBarVisiblePValStrnTrueEndGInt PDefGrup(nameStrnCloseBoxPValStrnTrueEndGInt PDefGrup(nameStrnGrowIconPValStrnTrueEndGInt PDefGrup0nameStrn LiveResizePValStrnFalseEndGInt PDefGrup(nameStrnZoomIconPValStrnTrueEndGInt PDefGrup(nameStrn BalloonHelpPValStrnEndGInt PDefGrup,nameStrn MacProcIDPValStrn0EndGInt PDefGrup0nameStrnMenuBarPValStrn 2044872703EndGInt PDefGrup,nameStrn PlacementPValStrn0EndGInt PDefGrup(nameStrnWidthPValStrn235EndGInt PDefGrup(nameStrnHeightPValStrn292EndGInt PDefGrup(nameStrnMinWidthPValStrn64EndGInt PDefGrup,nameStrn MinHeightPValStrn64EndGInt PDefGrup,nameStrnMaxWidthPValStrn32000EndGInt PDefGrup0nameStrn MaxHeightPValStrn32000EndGInt FDefGrupNameStrn WarWindowSizeInt SuprStrnWindowbNtrInt PropGrupEncoInt declStrnmManager As CardManagerflagInt sorcGrup| stsrInt stscInt ndsrInt ndscInt EncoInt ntlnStrnmManager As CardManagerntlnStrnntlnStrnEndGInt EndGInt PropGrup!EncoInt declStrnmDeck(-1) As CardflagInt sorcGrupx"stsrInt stscInt ndsrInt ndscInt EncoInt ntlnStrnmDeck(-1) As CardntlnStrnntlnStrnEndGInt "EndGInt !PropGrup#EncoInt declStrnmOpponentCard As CardflagInt sorcGrup|$stsrInt stscInt ndsrInt ndscInt EncoInt ntlnStrnmOpponentCard As CardntlnStrnntlnStrnEndGInt $EndGInt #PropGrup%EncoInt declStrnmPlayerCard As CardflagInt sorcGrupx&stsrInt stscInt ndsrInt ndscInt EncoInt ntlnStrnmPlayerCard As CardntlnStrnntlnStrnEndGInt &EndGInt %PropGrup'EncoInt declStrnmPlayerWins As IntegerflagInt sorcGrup|(stsrInt stscInt ndsrInt ndscInt EncoInt ntlnStrnmPlayerWins As IntegerntlnStrnntlnStrnEndGInt (EndGInt 'PropGrup)EncoInt declStrnmOpponentWins As IntegerflagInt sorcGrup|*stsrInt stscInt ndsrInt ndscInt EncoInt ntlnStrnmOpponentWins As IntegerntlnStrnntlnStrnEndGInt *EndGInt )PropGrup+EncoInt declStrnmCardBack As CardflagInt sorcGrupx,stsrInt stscInt ndsrInt ndscInt EncoInt ntlnStrnmCardBack As CardntlnStrnntlnStrnEndGInt ,EndGInt +PropGrup-EncoInt declStrn r as randomflagInt sorcGrupp.stsrInt stscInt ndsrInt ndscInt EncoInt ntlnStrn r as randomntlnStrnntlnStrnEndGInt .EndGInt -MethGrup H/EncoInt nameStrn DealCardsparmStrn:opponent as Card, player as Card, cardsInvolved as IntegerrsltStrnflagInt sorcGrup 0stsrInt 9stscInt ndsrInt 9ndscInt EncoInt srclStrnISub DealCards(opponent as Card, player as Card, cardsInvolved as Integer)srclStrndim cardsDealt,i as IntegersrclStrn8// We're given two cards, so let's see who wins the war!srclStrnmOpponentCard = opponentsrclStrnmPlayerCard = playersrclStrnsrclStrn// Now refresh the drawingsrclStrnme.Refresh( false )srclStrnsrclStrn// Check to see who wonsrclStrn-If mPlayerCard.Rank > mOpponentCard.Rank thensrclStrnWhoWon.Text = "Player won!"srclStrn)mPlayerWins = mPlayerWins + cardsInvolvedsrclStrn// Set the new win recordssrclStrn0PlayerScore.Text = Str( mPlayerWins ) + " cards"srclStrnReturnsrclStrnEnd IfsrclStrnsrclStrn-If mPlayerCard.Rank < mOpponentCard.Rank thensrclStrnWhoWon.Text = "Opponent won!"srclStrn-mOpponentWins = mOpponentWins + cardsInvolvedsrclStrn// Set the new win recordssrclStrn4OpponentScore.Text = Str( mOpponentWins ) + " cards"srclStrnReturnsrclStrnEnd IfsrclStrnsrclStrn// It was a tie!srclStrnWhoWon.Text = "War!!!"srclStrnWhoWon.Refresh( false )srclStrnsrclStrnA// Since it's a tie, we need to try to give out three more cards.srclStrn?// So we'll pause first, to let the war register with the user.srclStrn$''App.SleepCurrentThread( 1000 * 2 )srclStrnsrclStrn0// Then we'll silently deal out three more cardssrclStrn,// to each user. But first, check to see ifsrclStrn"// we're about to run out of cardssrclStrnif UBound( mDeck ) < 7 thensrclStrnsrclStrnsrclStrn-// Deal out until we've only got 2 cards leftsrclStrnwhile UBound( mDeck ) > 2srclStrncall mDeck.PopsrclStrncall mDeck.PopsrclStrncardsDealt = cardsDealt + 2srclStrnwendsrclStrnsrclStrn!// Do we still have 2 cards left?srclStrnIf UBound( mDeck ) >= 2 ThensrclStrnsrclStrn // Just deal the final cards outsrclStrnADealCards( mDeck.Pop, mDeck.Pop, cardsInvolved + cardsDealt + 2 )srclStrnsrclStrnElsesrclStrnsrclStrn!// Make a new deck and keep goingsrclStrnmDeck = mManager.GetDecksrclStrn mDeck.ShufflesrclStrnADealCards( mDeck.Pop, mDeck.Pop, cardsInvolved + cardsDealt + 2 )srclStrnsrclStrnEnd IfsrclStrnsrclStrnelsesrclStrnsrclStrn// Deal out six cardssrclStrnfor i = 0 to 5srclStrncall mDeck.PopsrclStrnnext isrclStrnsrclStrn,// And then do a true deal for the final twosrclStrn4DealCards( mDeck.Pop, mDeck.Pop, cardsInvolved + 8 )srclStrnsrclStrnend ifsrclStrnsrclStrnsrclStrnsrclStrnEnd SubEndGInt 0EndGInt /MethGrup|1EncoInt nameStrnNewGameparmStrnrsltStrnflagInt sorcGrup2stsrInt stscInt ndsrInt ndscInt EncoInt srclStrn Sub NewGame()srclStrn'// Reset the scores and everything elsesrclStrnPlayerScore.Text = "0 cards"srclStrnOpponentScore.Text = "0 cards"srclStrnmPlayerCard = nilsrclStrnmOpponentCard = nilsrclStrnmPlayerWins = 0srclStrnmOpponentWins = 0srclStrnsrclStrn// Create the managersrclStrnmManager = new CardManagersrclStrnsrclStrn // Aces are not the lowest cardssrclStrnmManager.AceIsLowest = falsesrclStrnsrclStrn// And get a deck from itsrclStrnmDeck = mManager.GetDecksrclStrnsrclStrn// Shuffle the decksrclStrn mDeck.ShufflesrclStrnsrclStrn+// Make the card back we use for displayingsrclStrn// flipped over cardssrclStrn mCardBack = new Card( mManager )srclStrnr = new RandomsrclStrnEmCardBack.Back = r.InRange( Card.kBackTypeFirst, Card.kBackTypeLast )srclStrnsrclStrn// Do some drawingsrclStrnme.Refresh( false )srclStrnEnd SubEndGInt 2EndGInt 1HInsGrup3EncoInt nameStrnOpensorcGrup4stsrInt stscInt ndsrInt ndscInt EncoInt srclStrn Sub Open()srclStrn// Make a new game for the usersrclStrnNewGamesrclStrnEnd SubEndGInt 4EndGInt 3MnuHGrup,5EncoInt nameStrnFileLibraryDemonstrationsorcGrup6stsrInt stscInt ndsrInt ndscInt EncoInt srclStrn.Function FileLibraryDemonstration() As BooleansrclStrnExampleFeaturesWindow.ShowsrclStrnsrclStrn return truesrclStrn End FunctionEndGInt 6EndGInt 5MnuHGrup7EncoInt nameStrn FileNewGamesorcGrup8stsrInt stscInt ndsrInt ndscInt EncoInt srclStrn!Function FileNewGame() As BooleansrclStrnNewGamesrclStrnsrclStrn return truesrclStrn End FunctionEndGInt 8EndGInt 7EndGInt CBhvGrupT9NameStrnSizeInt tSuprStrnCanvasbNtrInt HInsGrup:EncoInt nameStrnPaintsorcGrup;stsrInt stscInt ndsrInt ndscInt EncoInt srclStrnSub Paint(g As Graphics)srclStrnif mOpponentCard = nil thensrclStrn(// If there's no card to draw, then drawsrclStrn // the ghostsrclStrnBmManager.DrawGhostCard( g, me.Left, me.Top, RGB( 212, 212, 212 ) )srclStrnelsesrclStrn// Draw our card, face upsrclStrn.mOpponentCard.DrawFaceUp( g, me.Left, me.Top )srclStrnend ifsrclStrnEnd SubEndGInt ;EndGInt :EndGInt 9CBhvGrupPstsrInt stscInt ndsrInt ndscInt EncoInt srclStrnSub Paint(g As Graphics)srclStrnif mPlayerCard = nil thensrclStrn(// If there's no card to draw, then drawsrclStrn // the ghostsrclStrnBmManager.DrawGhostCard( g, me.Left, me.Top, RGB( 212, 212, 212 ) )srclStrnelsesrclStrn// Draw our card, face upsrclStrn,mPlayerCard.DrawFaceUp( g, me.Left, me.Top )srclStrnend ifsrclStrnEnd SubEndGInt >EndGInt =EndGInt 6 thensrclStrn// Draw a whole stacksrclStrnfor i = 0 to 5srclStrn4mCardBack.DrawFaceDown( g, me.Left + x, me.Top + y )srclStrnsrclStrn x = x + 2srclStrn y = y + 1srclStrnnext isrclStrnelsesrclStrn,// Draw the proper number of cards, slightlysrclStrn// offset from one anothersrclStrnfor each c in mDecksrclStrn,c.DrawFaceDown( g, me.Left + x, me.Top + y )srclStrnsrclStrn x = x + 2srclStrn y = y + 1srclStrnnext csrclStrnend ifsrclStrnEnd SubEndGInt AEndGInt @HInsGrupBEncoInt nameStrn MouseDownsorcGruppCstsrInt stscInt ndsrInt ndscInt EncoInt srclStrn9Function MouseDown(X As Integer, Y As Integer) As BooleansrclStrn.// When the user clicks on the deck, it's timesrclStrn// to deal two new cards.srclStrnif UBound( mDeck ) >= 1 thensrclStrn$DealCards( mDeck.Pop, mDeck.Pop, 2 )srclStrnend ifsrclStrn End FunctionEndGInt CEndGInt BEndGInt ?CBhvGrup@DNameStrnSizeInt SuprStrn StaticTextbNtrInt EndGInt DCBhvGrup@ENameStrnSizeInt SuprStrn StaticTextbNtrInt EndGInt ECBhvGrup@FNameStrnSizeInt SuprStrn StaticTextbNtrInt EndGInt FCtrlGrupGcclsStrnCanvasnameStrnCanvasPDefGrup<HnameStrnNamePValStrnOpponentCanvasEncoInt EndGInt HPDefGrup0InameStrnIndexPValStrn -2147483648EndGInt IPDefGrup0JnameStrn TabPanelIndexPValStrn0EndGInt JPDefGrup(KnameStrnVisiblePValStrnTrueEndGInt KPDefGrup$LnameStrnLeftPValStrn32EndGInt LPDefGrup$MnameStrnTopPValStrn18EndGInt MPDefGrup(NnameStrnWidthPValStrn78EndGInt NPDefGrup(OnameStrnHeightPValStrn105EndGInt OPDefGrup,PnameStrn InitialParentPValStrnEndGInt PPDefGrup$QnameStrnHelpTagPValStrnEndGInt QPDefGrup(RnameStrn BalloonHelpPValStrnEndGInt RPDefGrup0SnameStrnDisabledBalloonHelpPValStrnEndGInt SPDefGrup0TnameStrnAutoDeactivatePValStrnTrueEndGInt TPDefGrup,UnameStrnLockLeftPValStrnFalseEndGInt UPDefGrup,VnameStrnLockTopPValStrnFalseEndGInt VPDefGrup0WnameStrn LockRightPValStrnFalseEndGInt WPDefGrup0XnameStrn LockBottomPValStrnFalseEndGInt XPDefGrup(YnameStrnBackdropPValStrn0EndGInt YPDefGrup(ZnameStrnEnabledPValStrnTrueEndGInt ZPDefGrup,[nameStrn UseFocusRingPValStrnTrueEndGInt [PDefGrup0\nameStrn AcceptFocusPValStrnFalseEndGInt \PDefGrup0]nameStrn AcceptTabsPValStrnFalseEndGInt ]CBixInt EndGInt GCtrlGrup ^cclsStrnCanvasnameStrnCanvasPDefGrup8_nameStrnNamePValStrn PlayerCanvasEncoInt EndGInt _PDefGrup0`nameStrnIndexPValStrn -2147483648EndGInt `PDefGrup0anameStrn TabPanelIndexPValStrn0EndGInt aPDefGrup(bnameStrnVisiblePValStrnTrueEndGInt bPDefGrup$cnameStrnLeftPValStrn32EndGInt cPDefGrup$dnameStrnTopPValStrn167EndGInt dPDefGrup(enameStrnWidthPValStrn78EndGInt ePDefGrup(fnameStrnHeightPValStrn105EndGInt fPDefGrup,gnameStrn InitialParentPValStrnEndGInt gPDefGrup$hnameStrnHelpTagPValStrnEndGInt hPDefGrup(inameStrn BalloonHelpPValStrnEndGInt iPDefGrup0jnameStrnDisabledBalloonHelpPValStrnEndGInt jPDefGrup0knameStrnAutoDeactivatePValStrnTrueEndGInt kPDefGrup,lnameStrnLockLeftPValStrnFalseEndGInt lPDefGrup,mnameStrnLockTopPValStrnFalseEndGInt mPDefGrup0nnameStrn LockRightPValStrnFalseEndGInt nPDefGrup0onameStrn LockBottomPValStrnFalseEndGInt oPDefGrup(pnameStrnBackdropPValStrn0EndGInt pPDefGrup(qnameStrnEnabledPValStrnTrueEndGInt qPDefGrup,rnameStrn UseFocusRingPValStrnTrueEndGInt rPDefGrup0snameStrn AcceptFocusPValStrnFalseEndGInt sPDefGrup0tnameStrn AcceptTabsPValStrnFalseEndGInt tCBixInt EndGInt ^CtrlGrup ucclsStrnCanvasnameStrnCanvasPDefGrup8vnameStrnNamePValStrn DeckCanvasEncoInt EndGInt vPDefGrup0wnameStrnIndexPValStrn -2147483648EndGInt wPDefGrup0xnameStrn TabPanelIndexPValStrn0EndGInt xPDefGrup(ynameStrnVisiblePValStrnTrueEndGInt yPDefGrup$znameStrnLeftPValStrn136EndGInt zPDefGrup${nameStrnTopPValStrn90EndGInt {PDefGrup(|nameStrnWidthPValStrn79EndGInt |PDefGrup(}nameStrnHeightPValStrn111EndGInt }PDefGrup,~nameStrn InitialParentPValStrnEndGInt ~PDefGrup$nameStrnHelpTagPValStrnEndGInt PDefGrup(nameStrn BalloonHelpPValStrnEndGInt PDefGrup0nameStrnDisabledBalloonHelpPValStrnEndGInt PDefGrup0nameStrnAutoDeactivatePValStrnTrueEndGInt PDefGrup,nameStrnLockLeftPValStrnFalseEndGInt PDefGrup,nameStrnLockTopPValStrnFalseEndGInt PDefGrup0nameStrn LockRightPValStrnFalseEndGInt PDefGrup0nameStrn LockBottomPValStrnFalseEndGInt PDefGrup(nameStrnBackdropPValStrn0EndGInt PDefGrup(nameStrnEnabledPValStrnTrueEndGInt PDefGrup,nameStrn UseFocusRingPValStrnTrueEndGInt PDefGrup0nameStrn AcceptFocusPValStrnFalseEndGInt PDefGrup0nameStrn AcceptTabsPValStrnFalseEndGInt CBixInt EndGInt uCtrlGrupcclsStrn StaticTextnameStrn StaticTextPDefGrup<nameStrnNamePValStrn OpponentScoreEncoInt EndGInt PDefGrup0nameStrnIndexPValStrn -2147483648EndGInt PDefGrup0nameStrn TabPanelIndexPValStrn0EndGInt PDefGrup(nameStrnVisiblePValStrnTrueEndGInt PDefGrup$nameStrnLeftPValStrn136EndGInt PDefGrup$nameStrnTopPValStrn18EndGInt PDefGrup(nameStrnWidthPValStrn79EndGInt PDefGrup(nameStrnHeightPValStrn20EndGInt PDefGrup,nameStrn InitialParentPValStrnEndGInt PDefGrup$nameStrnHelpTagPValStrnEndGInt PDefGrup(nameStrn BalloonHelpPValStrnEndGInt PDefGrup0nameStrnDisabledBalloonHelpPValStrnEndGInt PDefGrup0nameStrnAutoDeactivatePValStrnTrueEndGInt PDefGrup,nameStrnLockLeftPValStrnFalseEndGInt PDefGrup,nameStrnLockTopPValStrnFalseEndGInt PDefGrup0nameStrn LockRightPValStrnFalseEndGInt PDefGrup0nameStrn LockBottomPValStrnFalseEndGInt PDefGrup8nameStrnTextFontPValStrnSystemEncoInt EndGInt PDefGrup(nameStrnTextSizePValStrn0EndGInt PDefGrup(nameStrnBoldPValStrnFalseEndGInt PDefGrup,nameStrnItalicPValStrnFalseEndGInt PDefGrup0nameStrn UnderlinePValStrnFalseEndGInt PDefGrup4nameStrnTextPValStrn0 cardsEncoInt EndGInt PDefGrup,nameStrn TextAlignPValStrn0EndGInt PDefGrup,nameStrn TextColorPValStrn0EndGInt PDefGrup0nameStrn MultiLinePValStrnFalseEndGInt PDefGrup(nameStrnEnabledPValStrnTrueEndGInt PDefGrup(nameStrn DataSourcePValStrnEndGInt PDefGrup(nameStrn DataFieldPValStrnEndGInt CBixInt EndGInt CtrlGrupcclsStrn StaticTextnameStrn StaticTextPDefGrup8nameStrnNamePValStrn PlayerScoreEncoInt EndGInt PDefGrup0nameStrnIndexPValStrn -2147483648EndGInt PDefGrup0nameStrn TabPanelIndexPValStrn0EndGInt PDefGrup(nameStrnVisiblePValStrnTrueEndGInt PDefGrup$nameStrnLeftPValStrn136EndGInt PDefGrup$nameStrnTopPValStrn252EndGInt PDefGrup(nameStrnWidthPValStrn79EndGInt PDefGrup(nameStrnHeightPValStrn20EndGInt PDefGrup,nameStrn InitialParentPValStrnEndGInt PDefGrup$nameStrnHelpTagPValStrnEndGInt PDefGrup(nameStrn BalloonHelpPValStrnEndGInt PDefGrup0nameStrnDisabledBalloonHelpPValStrnEndGInt PDefGrup0nameStrnAutoDeactivatePValStrnTrueEndGInt PDefGrup,nameStrnLockLeftPValStrnFalseEndGInt PDefGrup,nameStrnLockTopPValStrnFalseEndGInt PDefGrup0nameStrn LockRightPValStrnFalseEndGInt PDefGrup0nameStrn LockBottomPValStrnFalseEndGInt PDefGrup8nameStrnTextFontPValStrnSystemEncoInt EndGInt PDefGrup(nameStrnTextSizePValStrn0EndGInt PDefGrup(nameStrnBoldPValStrnFalseEndGInt PDefGrup,nameStrnItalicPValStrnFalseEndGInt PDefGrup0nameStrn UnderlinePValStrnFalseEndGInt PDefGrup4nameStrnTextPValStrn0 cardsEncoInt EndGInt PDefGrup,nameStrn TextAlignPValStrn0EndGInt PDefGrup,nameStrn TextColorPValStrn0EndGInt PDefGrup0nameStrn MultiLinePValStrnFalseEndGInt PDefGrup(nameStrnEnabledPValStrnTrueEndGInt PDefGrup(nameStrn DataSourcePValStrnEndGInt PDefGrup(nameStrn DataFieldPValStrnEndGInt CBixInt EndGInt CtrlGrupcclsStrn StaticTextnameStrn StaticTextPDefGrup4nameStrnNamePValStrnWhoWonEncoInt EndGInt PDefGrup0nameStrnIndexPValStrn -2147483648EndGInt PDefGrup0nameStrn TabPanelIndexPValStrn0EndGInt PDefGrup(nameStrnVisiblePValStrnTrueEndGInt PDefGrup$nameStrnLeftPValStrn32EndGInt PDefGrup$nameStrnTopPValStrn135EndGInt PDefGrup(nameStrnWidthPValStrn78EndGInt PDefGrup(nameStrnHeightPValStrn20EndGInt PDefGrup,nameStrn InitialParentPValStrnEndGInt PDefGrup$nameStrnHelpTagPValStrnEndGInt PDefGrup(nameStrn BalloonHelpPValStrnEndGInt PDefGrup0nameStrnDisabledBalloonHelpPValStrnEndGInt PDefGrup0nameStrnAutoDeactivatePValStrnTrueEndGInt PDefGrup,nameStrnLockLeftPValStrnFalseEndGInt PDefGrup,nameStrnLockTopPValStrnFalseEndGInt PDefGrup0nameStrn LockRightPValStrnFalseEndGInt PDefGrup0nameStrn LockBottomPValStrnFalseEndGInt PDefGrup8nameStrnTextFontPValStrnSystemEncoInt EndGInt PDefGrup(nameStrnTextSizePValStrn0EndGInt PDefGrup(nameStrnBoldPValStrnFalseEndGInt PDefGrup,nameStrnItalicPValStrnFalseEndGInt PDefGrup0nameStrn UnderlinePValStrnFalseEndGInt PDefGrup<nameStrnTextPValStrnClick the deckEncoInt EndGInt PDefGrup,nameStrn TextAlignPValStrn0EndGInt PDefGrup,nameStrn TextColorPValStrn0EndGInt PDefGrup0nameStrn MultiLinePValStrnFalseEndGInt PDefGrup(nameStrnEnabledPValStrnTrueEndGInt PDefGrup(nameStrn DataSourcePValStrnEndGInt PDefGrup(nameStrn DataFieldPValStrnEndGInt CBixInt EndGInt PadnPadn************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************BlokpVew;wO E l8NameStrnExampleFeaturesWindowContInt "wrEdtRectT&eSptInt bPGpGrupPbPElGrup4scKyInt VrEdtRectT&eSptInt EndGInt EndGInt lstHInt lstVInt PDefGrupDnameStrnNamePValStrnExampleFeaturesWindowEncoInt EndGInt PDefGrup(nameStrnFramePValStrn0EndGInt PDefGrup0nameStrn CompositePValStrnFalseEndGInt PDefGrup0nameStrn HasBackColorPValStrnFalseEndGInt PDefGrup0nameStrn BackColorPValStrn16777215EndGInt PDefGrup(nameStrnBackdropPValStrn0EndGInt PDefGrup8nameStrnTitlePValStrnUntitledEncoInt EndGInt PDefGrup(nameStrnVisiblePValStrnTrueEndGInt PDefGrup0nameStrn FullScreenPValStrnFalseEndGInt PDefGrup0nameStrnMenuBarVisiblePValStrnTrueEndGInt PDefGrup(nameStrnCloseBoxPValStrnTrueEndGInt PDefGrup(nameStrnGrowIconPValStrnTrueEndGInt PDefGrup0nameStrn LiveResizePValStrnFalseEndGInt PDefGrup(nameStrnZoomIconPValStrnTrueEndGInt PDefGrup(nameStrn BalloonHelpPValStrnEndGInt PDefGrup,nameStrn MacProcIDPValStrn0EndGInt PDefGrup(nameStrnMenuBarPValStrn0EndGInt PDefGrup,nameStrn PlacementPValStrn0EndGInt PDefGrup(nameStrnWidthPValStrn1024EndGInt PDefGrup(nameStrnHeightPValStrn768EndGInt PDefGrup(nameStrnMinWidthPValStrn64EndGInt PDefGrup,nameStrn MinHeightPValStrn64EndGInt PDefGrup,nameStrnMaxWidthPValStrn32000EndGInt PDefGrup0nameStrn MaxHeightPValStrn32000EndGInt FDefGrupNameStrnExampleFeaturesWindowSizeInt SuprStrnWindowbNtrInt PropGrupEncoInt declStrnmManager As CardManagerflagInt sorcGrup|stsrInt stscInt ndsrInt ndscInt EncoInt ntlnStrnmManager As CardManagerntlnStrnntlnStrnEndGInt EndGInt PropGrupEncoInt declStrn$currentanimationframe(11) as integerflagInt sorcGrupstsrInt stscInt ndsrInt ndscInt EncoInt ntlnStrn$currentanimationframe(11) as integerntlnStrnntlnStrnEndGInt EndGInt HInsGrupEncoInt nameStrnOpensorcGrupstsrInt stscInt ndsrInt ndscInt EncoInt srclStrn Sub Open()srclStrnmManager = new CardManagersrclStrnsrclStrnTimer1.Enabled = truesrclStrnEnd SubEndGInt EndGInt HInsGrup lEncoInt nameStrnPaintsorcGrup 0stsrInt stscInt ndsrInt ndscInt EncoInt srclStrnSub Paint(g As Graphics)srclStrn(dim cards(-1) as Card = mManager.GetDecksrclStrnsrclStrndim x, y, i as IntegersrclStrnsrclStrn dim c as cardsrclStrnsrclStrndim whichback as integersrclStrnsrclStrnx = 12srclStrny = 12srclStrnsrclStrn// Draw the card facessrclStrnfor each c in cardssrclStrn8if x + mManager.DefaultCardWidth + 3 > g.Width - 12 thensrclStrnx = 12srclStrn&y = y + mManager.DefaultCardHeight + 3srclStrnend ifsrclStrnsrclStrnc.DrawFaceUp( g, x, y )srclStrnsrclStrn%x = x + mManager.DefaultCardWidth + 3srclStrnnext csrclStrnsrclStrn// Draw the card backssrclStrn2for i = Card.kBackTypeFirst to Card.kBackTypeLastsrclStrnc = new Card( mManager )srclStrn c.Back = isrclStrnsrclStrn8if x + mManager.DefaultCardWidth + 3 > g.Width - 12 thensrclStrnx = 12srclStrn&y = y + mManager.DefaultCardHeight + 3srclStrnend ifsrclStrnsrclStrn=// If the card has an animation, draw the proper frame for itsrclStrn%if c.MaxAnimationFrameNumber > 0 thensrclStrn$whichBack = i - Card.kBackTypeFirstsrclStrn=c.DrawFaceDown( g, x, y, currentAnimationFrame( whichBack ) )srclStrnkcurrentAnimationFrame( whichBack ) = (currentAnimationFrame( whichBack ) + 1) mod c.MaxAnimationFrameNumbersrclStrnelsesrclStrnc.DrawFaceDown( g, x, y )srclStrnend ifsrclStrnsrclStrn%x = x + mManager.DefaultCardWidth + 3srclStrnnext isrclStrnsrclStrn// Draw a ghost stacksrclStrn8if x + mManager.DefaultCardWidth + 3 > g.Width - 12 thensrclStrnx = 12srclStrn&y = y + mManager.DefaultCardHeight + 3srclStrnend ifsrclStrnsrclStrn6mManager.DrawGhostCard( g, x, y, RGB(212, 212, 212 ) )srclStrnsrclStrn%x = x + mManager.DefaultCardWidth + 3srclStrnsrclStrn!// Display a highlight for a cardsrclStrnfor each c in cardssrclStrn8if x + mManager.DefaultCardWidth + 3 > g.Width - 12 thensrclStrnx = 12srclStrn&y = y + mManager.DefaultCardHeight + 3srclStrnend ifsrclStrnsrclStrnc.DrawCardHilite( g, x, y )srclStrnsrclStrn%x = x + mManager.DefaultCardWidth + 3srclStrnnext csrclStrnsrclStrn-// Draw the background in the shape of a cardsrclStrn8if x + mManager.DefaultCardWidth + 3 > g.Width - 12 thensrclStrnx = 12srclStrn&y = y + mManager.DefaultCardHeight + 3srclStrnend ifsrclStrnsrclStrn7mManager.DrawBackgroundCard( g, x, y, RGB(0, 200, 0 ) )srclStrnsrclStrn%x = x + mManager.DefaultCardWidth + 3srclStrnsrclStrn// Draw the Deck XsrclStrn8if x + mManager.DefaultCardWidth + 3 > g.Width - 12 thensrclStrnx = 12srclStrn&y = y + mManager.DefaultCardHeight + 3srclStrnend ifsrclStrnsrclStrnmManager.DrawX( g, x, y )srclStrnsrclStrn%x = x + mManager.DefaultCardWidth + 3srclStrnsrclStrn// Draw the Deck YsrclStrn8if x + mManager.DefaultCardWidth + 3 > g.Width - 12 thensrclStrnx = 12srclStrn&y = y + mManager.DefaultCardHeight + 3srclStrnend ifsrclStrnsrclStrnmManager.DrawY( g, x, y )srclStrnsrclStrn%x = x + mManager.DefaultCardWidth + 3srclStrnEnd SubEndGInt EndGInt HInsGrup EncoInt nameStrnResizedsorcGrup stsrInt stscInt ndsrInt ndscInt EncoInt srclStrn Sub Resized()srclStrn me.RefreshsrclStrnEnd SubEndGInt  EndGInt  EndGInt CBhvGrup  NameStrnSizeInt 8SuprStrnTimerbNtrInt HInsGrup EncoInt nameStrnActionsorcGrup stsrInt stscInt ndsrInt ndscInt EncoInt srclStrn Sub Action()srclStrnself.Refresh( false )srclStrnEnd SubEndGInt  EndGInt  EndGInt  CtrlGrupcclsStrnTimernameStrnTimerPDefGrup4nameStrnNamePValStrnTimer1EncoInt EndGInt PDefGrup0nameStrnIndexPValStrn -2147483648EndGInt PDefGrup0nameStrn TabPanelIndexPValStrn0EndGInt PDefGrup$nameStrnLeftPValStrn8EndGInt PDefGrup$nameStrnTopPValStrn7EndGInt PDefGrup$nameStrnModePValStrn2EndGInt PDefGrup(nameStrnPeriodPValStrn250EndGInt CBixInt EndGInt PadnPadnd****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************BlokpMnuyGE l8NameStrnMenuBar1ContInt "wrEdtRectdd,MItmGrupspmuInt nameStrnFileMenutextStrn&FileindxInt scutStrnbhlpStrndhlpStrnstylInt EncoInt flagInt maEnInt NameStrnFileMenuSizeInt LSuprStrnMenuItembNtrInt MItmGrupspmuInt nameStrn FileNewGametextStrn &New GameindxInt scutStrnbhlpStrndhlpStrnstylInt EncoInt flagInt maEnInt NameStrn FileNewGameSizeInt LSuprStrnMenuItembNtrInt EndGInt MItmGrupspmuInt nameStrn UntitledItemtextStrn-indxInt scutStrnbhlpStrndhlpStrnstylInt EncoInt flagInt maEnInt NameStrn UntitledItemSizeInt LSuprStrnMenuItembNtrInt EndGInt MItmGrupspmuInt nameStrnFileLibraryDemonstrationtextStrn&Library DemonstrationindxInt scutStrnbhlpStrndhlpStrnstylInt EncoInt flagInt maEnInt NameStrnFileLibraryDemonstrationSizeInt LSuprStrnMenuItembNtrInt EndGInt MItmGrupspmuInt nameStrn UntitledItemtextStrn-indxInt scutStrnbhlpStrndhlpStrnstylInt EncoInt flagInt maEnInt NameStrn UntitledItemSizeInt LSuprStrnMenuItembNtrInt EndGInt MItmGrupspmuInt nameStrnFileQuittextStrn#App.kFileQuitindxInt scutStrn#App.kFileQuitShortcutbhlpStrndhlpStrnstylInt EncoInt flagInt maEnInt NameStrnFileQuitSizeInt LSuprStrn QuitMenuItembNtrInt EndGInt EndGInt PadnPadn********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************BlokpObj* j-ZyJNameStrnAppContInt "wrEdtRect_K!eSptInt bPGpGrupPbPElGrup4scKyInt VrEdtRect_K!eSptInt EndGInt EndGInt bClsInt NameStrnAppSizeInt 4SuprStrn ApplicationbNtrInt CnstGrupEncoInt nameStrnkFileQuitShortcuttypeInt defnStrnflagInt CInsGrup0pltfInt langInt defnStrnCmd+QEndGInt EndGInt CnstGrup EncoInt nameStrn kFileQuittypeInt defnStrnQuitflagInt CInsGrup0!pltfInt langInt defnStrnE&xitEndGInt !CInsGrup0"pltfInt langInt defnStrnE&xitEndGInt "EndGInt  CnstGrup#EncoInt nameStrn kEditCleartypeInt defnStrnClearflagInt CInsGrup0$pltfInt langInt defnStrn&DeleteEndGInt $CInsGrup0%pltfInt langInt defnStrn&DeleteEndGInt %EndGInt #IntrStrnbApOInt PDefGrup0&nameStrnMenuBarPValStrn 2044872703EndGInt &PadnPadn************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************BlokpObjn*_33aZX$N@O8enԥ/2ig/c$ms*yzr7 Y@.O} QPܚ?w45 `1# yZJ^} Qs@SX_$qOP7AG75} Q#jl9mKgոrb.e"jAoj5nш7$jH= $xz_J-̰ɠ܂ƪs.B({P;Uac$U@ˁ_Pdh'`jH= $xz_J-̰ɠ~94w%V$9 OP#D;Sg'E 2""k3s~̫\A"@h k)h f4YAKj$x?Qa{i#܉cJt˧2u̟@@DZ sÔJDQ -b)KS{3 'vlLN MLZYE!XgMLZe? p͠?g~ ~t=KZ1?峨Xa E"9H.VMJyܙBIp͠?g;8g̓<&:>]{ٸGrıR\GG۷h־%Mی(fQ'{\-H,p͠?g#0g +H[:9 5qp͠?g>ЭJYH_˄~94YR2^ ge%X>7KjsN $k.h.h.h.h.h.h.h.h.h.h.h.h.h.hBlokpObjIg$ j-ZyJNameStrnCardContInt 7rEdtRect@PeSptInt 9bPGpGrupP+bPElGrup4,scKyInt VrEdtRect@PeSptInt 9EndGInt ,EndGInt +bClsInt NameStrnCardSizeInt 0bNtrInt PropGrup-EncoInt declStrnSuit As IntegersorcGrupt.stsrInt stscInt ndsrInt ndscInt EncoInt ntlnStrnSuit As IntegerntlnStrnntlnStrnEndGInt .EndGInt -PropGrup/EncoInt declStrnBack As IntegersorcGrupt0stsrInt stscInt ndsrInt ndscInt EncoInt ntlnStrnBack As IntegerntlnStrnntlnStrnEndGInt 0EndGInt /PropGrup1EncoInt declStrnmManager As CardManagerflagInt !sorcGrup|2stsrInt stscInt ndsrInt ndscInt EncoInt ntlnStrnmManager As CardManagerntlnStrnntlnStrnEndGInt 2EndGInt 1PropGrup3EncoInt declStrnAceIsLowest As BooleansorcGrup|4stsrInt stscInt ndsrInt ndscInt EncoInt ntlnStrnAceIsLowest As BooleanntlnStrnntlnStrnEndGInt 4EndGInt 3PropGrup5EncoInt declStrnRank As IntegersorcGruph6stsrInt stscInt ndsrInt ndscInt EncoInt ntlnStrnRank As IntegerntlnStrnEndGInt 6EndGInt 5PropGrup7EncoInt declStrnmRank As IntegerflagInt !sorcGrupt8stsrInt stscInt ndsrInt ndscInt EncoInt ntlnStrnmRank As IntegerntlnStrnntlnStrnEndGInt 8EndGInt 7MethGrup9EncoInt nameStrn ConstructorparmStrn8manager as CardManager, suit as Integer, rank as IntegerrsltStrnflagInt sorcGrupH:stsrInt stscInt ndsrInt ndscInt EncoInt srclStrnISub Constructor(manager as CardManager, suit as Integer, rank as Integer)srclStrnme.Suit = suitsrclStrnme.Rank = ranksrclStrnme.mRank = ranksrclStrnme.mManager = managersrclStrnme.Back = kBackTypeFirstsrclStrnEnd SubEndGInt :EndGInt 9MethGrup;EncoInt nameStrn ConstructorparmStrnmanager as CardManagerrsltStrnflagInt sorcGrupstsrInt stscInt ndsrInt ndscInt EncoInt srclStrnaSub DrawFaceUp(g as Graphics, x as Integer, y as Integer, cx as Integer = -1, cy as Integer = -1)srclStrnConst kDrawModeFaceUp = 0srclStrnsrclStrnif cx = -1 and cy = -1 thensrclStrnEDraw( Hacks.HDCFromGraphics( g ), x, y, CardNumber, kDrawModeFaceUp )srclStrnelsesrclStrn.if cx = -1 then cx = mManager.DefaultCardWidthsrclStrn/if cy = -1 then cy = mManager.DefaultCardHeightsrclStrnsrclStrnODrawEx( Hacks.HDCFromGraphics( g ), x, y, cx, cy, CardNumber, kDrawModeFaceUp )srclStrnend ifsrclStrnEnd SubEndGInt >EndGInt =MethGrupd?EncoInt nameStrnDrawparmStrn`hdc as Integer, x as Integer, y as Integer, cd as Integer, md as Integer, bk as Color = &c000000rsltStrnflagInt sorcGrup@stsrInt stscInt ndsrInt ndscInt EncoInt srclStrnjSub Draw(hdc as Integer, x as Integer, y as Integer, cd as Integer, md as Integer, bk as Color = &c000000)srclStrnODeclare Sub cdtDraw Lib "Cards" ( hdc as Integer, x as Integer, y as Integer, _srclStrn.cd as Integer, md as Integer, bkgnd as Color )srclStrnsrclStrn cdtDraw( hdc, x, y, cd, md, bk )srclStrnsrclStrnEnd SubEndGInt @EndGInt ?MethGrupAEncoInt nameStrn CardNumberparmStrnrsltStrnIntegerflagInt sorcGrupBstsrInt stscInt ndsrInt ndscInt EncoInt srclStrn Function CardNumber() As IntegersrclStrnreturn (mRank * 4) + SuitsrclStrn End FunctionEndGInt BEndGInt AMethGrupCEncoInt nameStrn DrawFaceDownparmStrnhg as Graphics, x as Integer, y as Integer, frame as Integer = -1, cx as Integer = -1, cy as Integer = -1rsltStrnflagInt sorcGrup DstsrInt stscInt ndsrInt ndscInt EncoInt srclStrnzSub DrawFaceDown(g as Graphics, x as Integer, y as Integer, frame as Integer = -1, cx as Integer = -1, cy as Integer = -1)srclStrnConst kDrawModeFaceDown = 1srclStrnsrclStrnif cx = -1 and cy = -1 thensrclStrnADraw( Hacks.HDCFromGraphics( g ), x, y, Back, kDrawModeFaceDown )srclStrnsrclStrnif frame <> -1 thensrclStrn8Animate( Hacks.HDCFromGraphics( g ), x, y, Back, frame )srclStrnend ifsrclStrnelsesrclStrn.if cx = -1 then cx = mManager.DefaultCardWidthsrclStrn/if cy = -1 then cy = mManager.DefaultCardHeightsrclStrnsrclStrnKDrawEx( Hacks.HDCFromGraphics( g ), x, y, cx, cy, Back, kDrawModeFaceDown )srclStrnend ifsrclStrnEnd SubEndGInt DEndGInt CMethGrup@EEncoInt nameStrnDrawCardHiliteparmStrnQg as Graphics, x as Integer, y as Integer, cx as Integer = -1, cy as Integer = -1rsltStrnflagInt sorcGrupFstsrInt stscInt ndsrInt ndscInt EncoInt srclStrneSub DrawCardHilite(g as Graphics, x as Integer, y as Integer, cx as Integer = -1, cy as Integer = -1)srclStrnConst kDrawModeHilite = 2srclStrnsrclStrnif cx = -1 and cy = -1 thensrclStrnODraw( Hacks.HDCFromGraphics( g ), x, y, CardNumber, kDrawModeHilite, &cFFFFFF )srclStrnelsesrclStrn.if cx = -1 then cx = mManager.DefaultCardWidthsrclStrn/if cy = -1 then cy = mManager.DefaultCardHeightsrclStrnsrclStrnODrawEx( Hacks.HDCFromGraphics( g ), x, y, cx, cy, CardNumber, kDrawModeHilite )srclStrnend ifsrclStrnEnd SubEndGInt FEndGInt EMethGrupGEncoInt nameStrnDrawExparmStrn~hdc as Integer, x as Integer, y as Integer, cx as Integer, cy as Integer, cd as Integer, md as Integer, bk as Color = &c000000rsltStrnflagInt sorcGrupHstsrInt stscInt ndsrInt ndscInt EncoInt srclStrnSub DrawEx(hdc as Integer, x as Integer, y as Integer, cx as Integer, cy as Integer, cd as Integer, md as Integer, bk as Color = &c000000)srclStrnRDeclare Sub cdtDrawExt Lib "Cards" ( hdc as Integer, x as Integer, y as Integer, _srclStrnLcx as Integer, cy as Integer, cd as Integer, md as Integer, bkgnd as Color )srclStrnsrclStrn+cdtDrawExt( hdc, x, y, cx, cy, cd, md, bk )srclStrnsrclStrnEnd SubEndGInt HEndGInt GMethGrup,IEncoInt nameStrnAnimateparmStrnKhdc as Integer, x as Integer, y as Integer, cd as Integer, frame as IntegerrsltStrnflagInt sorcGrupJstsrInt stscInt ndsrInt ndscInt EncoInt srclStrnXSub Animate(hdc as Integer, x as Integer, y as Integer, cd as Integer, frame as Integer)srclStrnrDeclare Sub cdtAnimate Lib "Cards" ( hdc as Integer, cd as Integer, x as Integer, y as Integer, frame as Integer )srclStrnsrclStrn"cdtAnimate( hdc, cd, x, y, frame )srclStrnsrclStrnEnd SubEndGInt JEndGInt IMethGrupKEncoInt nameStrnMaxAnimationFrameNumberparmStrnrsltStrnIntegerflagInt sorcGrupLstsrInt stscInt ndsrInt ndscInt EncoInt srclStrn-Function MaxAnimationFrameNumber() As IntegersrclStrnselect case BacksrclStrnAcase kBackTypeFirst + 2, kBackTypeFirst + 10, kBackTypeFirst + 11srclStrnreturn 4srclStrncase kBackTypeFirst + 9srclStrnreturn 2srclStrnelsesrclStrnreturn 0srclStrn end selectsrclStrn End FunctionEndGInt LEndGInt KCnstGrupTMEncoInt nameStrn kBackTypeLasttypeInt defnStrn65flagInt EndGInt MCnstGrupTNEncoInt nameStrnkBackTypeFirsttypeInt defnStrn54flagInt EndGInt NIntrStrnPadnPadn********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************BlokpObj j-ZyJNameStrn CardManagerContInt 7rEdtRectusReSptInt pbPGpGrupPObPElGrup4PscKyInt VrEdtRectusReSptInt pEndGInt PEndGInt ObClsInt NameStrn CardManagerSizeInt (bNtrInt PropGrupQEncoInt declStrnDefaultCardWidth As IntegersorcGrupRstsrInt stscInt ndsrInt ndscInt EncoInt ntlnStrnDefaultCardWidth As IntegerntlnStrnntlnStrnEndGInt REndGInt QPropGrupSEncoInt declStrnDefaultCardHeight As IntegersorcGrupTstsrInt stscInt ndsrInt ndscInt EncoInt ntlnStrnDefaultCardHeight As IntegerntlnStrnntlnStrnEndGInt TEndGInt SPropGrupUEncoInt declStrnAceIsLowest As BooleansorcGrup|VstsrInt stscInt ndsrInt ndscInt EncoInt ntlnStrnAceIsLowest As BooleanntlnStrnntlnStrnEndGInt VEndGInt UPropGrupWEncoInt declStrnmDeck(-1) As CardflagInt sorcGrupxXstsrInt stscInt ndsrInt ndscInt EncoInt ntlnStrnmDeck(-1) As CardntlnStrnntlnStrnEndGInt XEndGInt WMethGrupYEncoInt nameStrn ConstructorparmStrnrsltStrnflagInt sorcGrup ZstsrInt stscInt ndsrInt ndscInt EncoInt srclStrnSub Constructor()srclStrnLDeclare Sub cdtInit Lib "Cards" ( ByRef cx as Integer, ByRef cy as Integer )srclStrnsrclStrn.cdtInit( DefaultCardWidth, DefaultCardHeight )srclStrnsrclStrnEnd SubEndGInt ZEndGInt YMethGrup0[EncoInt nameStrn DestructorparmStrnrsltStrnflagInt sorcGrup\stsrInt stscInt ndsrInt ndscInt EncoInt srclStrnSub Destructor()srclStrn"Declare Sub cdtTerm Lib "Cards" ()srclStrnsrclStrncdtTermsrclStrnsrclStrnEnd SubEndGInt \EndGInt [MethGrup ]EncoInt nameStrnGetDeckparmStrnrsltStrnCard()flagInt sorcGrup^stsrInt stscInt ndsrInt ndscInt EncoInt srclStrnFunction GetDeck() As Card()srclStrn)// Returns an entire deck of card objectssrclStrn'// with their suit and ranks filled outsrclStrndim suit,rank as integersrclStrn dim c as cardsrclStrnif UBound( mDeck ) < 0 thensrclStrn// Do the suitssrclStrnfor suit = 0 to 3srclStrn// Do the rankssrclStrnfor rank = 0 to 12srclStrnc = new Card(me,suit,rank)srclStrnc.AceIsLowest = AceIsLowestsrclStrnmDeck.Append( c )srclStrn next ranksrclStrn next suitsrclStrnend ifsrclStrnsrclStrn return mDecksrclStrn End FunctionEndGInt ^EndGInt ]MethGrup(_EncoInt nameStrn DrawGhostCardparmStrn]g as Graphics, x as Integer, y as Integer, c as Color, cx as Integer = -1, cy as Integer = -1rsltStrnflagInt sorcGrup``stsrInt stscInt ndsrInt ndscInt EncoInt srclStrnpSub DrawGhostCard(g as Graphics, x as Integer, y as Integer, c as Color, cx as Integer = -1, cy as Integer = -1)srclStrnConst kDrawModeGhost = 5srclStrnsrclStrnif cx = -1 and cy = -1 thensrclStrn>Draw( Hacks.HDCFromGraphics( g ), x, y, 0, kDrawModeGhost, c )srclStrnelsesrclStrn%if cx = -1 then cx = DefaultCardWidthsrclStrn&if cy = -1 then cy = DefaultCardHeightsrclStrnsrclStrnHDrawEx( Hacks.HDCFromGraphics( g ), x, y, cx, cy, 0, kDrawModeGhost, c )srclStrnend ifsrclStrnEnd SubEndGInt `EndGInt _MethGrupdaEncoInt nameStrnDrawparmStrn`hdc as Integer, x as Integer, y as Integer, cd as Integer, md as Integer, bk as Color = &cFF0000rsltStrnflagInt !sorcGrupbstsrInt stscInt ndsrInt ndscInt EncoInt srclStrnjSub Draw(hdc as Integer, x as Integer, y as Integer, cd as Integer, md as Integer, bk as Color = &cFF0000)srclStrnODeclare Sub cdtDraw Lib "Cards" ( hdc as Integer, x as Integer, y as Integer, _srclStrn.cd as Integer, md as Integer, bkgnd as Color )srclStrnsrclStrn cdtDraw( hdc, x, y, cd, md, bk )srclStrnsrclStrnEnd SubEndGInt bEndGInt aMethGrupHcEncoInt nameStrnDrawBackgroundCardparmStrn]g as Graphics, x as Integer, y as Integer, c as Color, cx as Integer = -1, cy as Integer = -1rsltStrnflagInt sorcGrup|dstsrInt stscInt ndsrInt ndscInt EncoInt srclStrnuSub DrawBackgroundCard(g as Graphics, x as Integer, y as Integer, c as Color, cx as Integer = -1, cy as Integer = -1)srclStrnConst kDrawModeBackground = 4srclStrnsrclStrnif cx = -1 and cy = -1 thensrclStrnCDraw( Hacks.HDCFromGraphics( g ), x, y, 0, kDrawModeBackground, c )srclStrnelsesrclStrn%if cx = -1 then cx = DefaultCardWidthsrclStrn&if cy = -1 then cy = DefaultCardHeightsrclStrnsrclStrnMDrawEx( Hacks.HDCFromGraphics( g ), x, y, cx, cy, 0, kDrawModeBackground, c )srclStrnend ifsrclStrnEnd SubEndGInt dEndGInt cMethGrupeEncoInt nameStrnDrawXparmStrnQg as Graphics, x as Integer, y as Integer, cx as Integer = -1, cy as Integer = -1rsltStrnflagInt sorcGrup<fstsrInt stscInt ndsrInt ndscInt EncoInt srclStrn\Sub DrawX(g as Graphics, x as Integer, y as Integer, cx as Integer = -1, cy as Integer = -1)srclStrnConst kDrawModeX = 6srclStrnsrclStrnif cx = -1 and cy = -1 thensrclStrn7Draw( Hacks.HDCFromGraphics( g ), x, y, 0, kDrawModeX )srclStrnelsesrclStrn%if cx = -1 then cx = DefaultCardWidthsrclStrn&if cy = -1 then cy = DefaultCardHeightsrclStrnsrclStrnADrawEx( Hacks.HDCFromGraphics( g ), x, y, cx, cy, 0, kDrawModeX )srclStrnend ifsrclStrnEnd SubEndGInt fEndGInt eMethGrupgEncoInt nameStrnDrawYparmStrnQg as Graphics, x as Integer, y as Integer, cx as Integer = -1, cy as Integer = -1rsltStrnflagInt sorcGrup<hstsrInt stscInt ndsrInt ndscInt EncoInt srclStrn\Sub DrawY(g as Graphics, x as Integer, y as Integer, cx as Integer = -1, cy as Integer = -1)srclStrnConst kDrawModeY = 7srclStrnsrclStrnif cx = -1 and cy = -1 thensrclStrn7Draw( Hacks.HDCFromGraphics( g ), x, y, 0, kDrawModeY )srclStrnelsesrclStrn%if cx = -1 then cx = DefaultCardWidthsrclStrn&if cy = -1 then cy = DefaultCardHeightsrclStrnsrclStrnADrawEx( Hacks.HDCFromGraphics( g ), x, y, cx, cy, 0, kDrawModeY )srclStrnend ifsrclStrnEnd SubEndGInt hEndGInt gMethGrupiEncoInt nameStrnDrawExparmStrn~hdc as Integer, x as Integer, y as Integer, cx as Integer, cy as Integer, cd as Integer, md as Integer, bk as Color = &c000000rsltStrnflagInt !sorcGrupjstsrInt stscInt ndsrInt ndscInt EncoInt srclStrnSub DrawEx(hdc as Integer, x as Integer, y as Integer, cx as Integer, cy as Integer, cd as Integer, md as Integer, bk as Color = &c000000)srclStrnRDeclare Sub cdtDrawExt Lib "Cards" ( hdc as Integer, x as Integer, y as Integer, _srclStrnLcx as Integer, cy as Integer, cd as Integer, md as Integer, bkgnd as Color )srclStrnsrclStrn+cdtDrawExt( hdc, x, y, cx, cy, cd, md, bk )srclStrnsrclStrnEnd SubEndGInt jEndGInt iIntrStrnPadnPadn(****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************BlokpFol7 j-ZyJNameStrnCardsContInt PadnPadn************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************BlokpFol"w j-ZyJNameStrnExamplesContInt PadnPadn************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************EOF!