diff options
-rwxr-xr-x | engine/games/card_flip.asm | 1614 | ||||
-rwxr-xr-x | gfx/card_flip/card_flip.pal | 44 | ||||
-rwxr-xr-x | gfx/card_flip/card_flip.tilemap | bin | 0 -> 132 bytes | |||
-rwxr-xr-x | gfx/card_flip/card_flip_1.2bpp.lz | bin | 0 -> 402 bytes | |||
-rwxr-xr-x | gfx/card_flip/card_flip_1.png | bin | 0 -> 476 bytes | |||
-rwxr-xr-x | gfx/card_flip/card_flip_2.2bpp.lz | bin | 0 -> 612 bytes | |||
-rwxr-xr-x | gfx/card_flip/card_flip_2.png | bin | 0 -> 1283 bytes | |||
-rwxr-xr-x | gfx/card_flip/card_flip_3.2bpp.lz | bin | 0 -> 27 bytes | |||
-rwxr-xr-x | gfx/card_flip/card_flip_3.png | bin | 0 -> 99 bytes | |||
-rwxr-xr-x | gfx/card_flip/off.2bpp | 1 | ||||
-rwxr-xr-x | gfx/card_flip/off.png | bin | 0 -> 79 bytes | |||
-rwxr-xr-x | gfx/card_flip/on.2bpp | 1 | ||||
-rwxr-xr-x | gfx/card_flip/on.png | bin | 0 -> 79 bytes | |||
-rw-r--r-- | main.asm | 6 | ||||
-rw-r--r-- | wram.asm | 18 |
15 files changed, 1679 insertions, 5 deletions
diff --git a/engine/games/card_flip.asm b/engine/games/card_flip.asm new file mode 100755 index 00000000..41c7e141 --- /dev/null +++ b/engine/games/card_flip.asm @@ -0,0 +1,1614 @@ +CARDFLIP_LIGHT_OFF EQU "♂" ; $ef +CARDFLIP_LIGHT_ON EQU "♀" ; $f5 + +CARDFLIP_DECK_SIZE EQU 4 * 6 + +; two labels below called from inside ./dummy_game.asm +Unknown_e0908: +; Graphics for an unused Game Corner +; game were meant to be here. +ret_e0908:: + ret + +_CardFlip: + ld hl, wOptions + set NO_TEXT_SCROLL, [hl] + call ClearBGPalettes + call ClearTilemap + call ClearSprites + ld de, MUSIC_NONE + call PlayMusic + call DelayFrame + call DisableLCD + call LoadStandardFont + call LoadFontsExtra + + ld hl, CardFlipLZ01 + ld de, vTiles2 tile $00 + call Decompress + ld hl, CardFlipLZ02 + ld de, vTiles2 tile $3e + call Decompress + ld hl, CardFlipLZ03 + ld de, vTiles0 tile $00 + call Decompress + ld hl, CardFlipOffButtonGFX + ld de, vTiles0 tile CARDFLIP_LIGHT_OFF + ld bc, 1 tiles + call CopyBytes + ld hl, CardFlipOnButtonGFX + ld de, vTiles0 tile CARDFLIP_LIGHT_ON + ld bc, 1 tiles + call CopyBytes + + call CardFlip_InitTilemap + call CardFlip_InitAttrPals + call EnableLCD + call WaitBGMap2 + ld a, %11100100 + call DmgToCgbBGPals + lb de, %11100100, %11100100 + call DmgToCgbObjPals + call DelayFrame + xor a + ld [wJumptableIndex], a + ld a, $2 + ld [wCardFlipCursorY], a + ld [wCardFlipCursorX], a + ld de, MUSIC_GAME_CORNER + call PlayMusic +.MasterLoop: + ld a, [wJumptableIndex] + bit 7, a + jr nz, .leavethegame + call .CardFlip + jr .MasterLoop +.leavethegame + call WaitSFX + ld de, SFX_QUIT_SLOTS + call PlaySFX + call WaitSFX + call ClearBGPalettes + ld hl, wOptions + res 4, [hl] + ret + +.CardFlip: + ld a, [wJumptableIndex] + ld e, a + ld d, 0 + ld hl, .Jumptable + add hl, de + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp hl + +.Jumptable: + dw .AskPlayWithThree + dw .DeductCoins + dw .ChooseACard + dw .PlaceYourBet + dw .CheckTheCard + dw .TabulateTheResult + dw .PlayAgain + dw .Quit + +.Increment: + ld hl, wJumptableIndex + inc [hl] + ret + +.AskPlayWithThree: + ld hl, .CardFlipPlayWithThreeCoinsText + call CardFlip_UpdateCoinBalanceDisplay + call YesNoBox + jr c, .SaidNo + call CardFlip_ShuffleDeck + call .Increment + ret + +.SaidNo: + ld a, 7 + ld [wJumptableIndex], a + ret + +.CardFlipPlayWithThreeCoinsText: + text_far _CardFlipPlayWithThreeCoinsText + text_end + +.DeductCoins: + ld a, [wCoins] + ld h, a + ld a, [wCoins + 1] + ld l, a + ld a, h + and a + jr nz, .deduct ; You have at least 256 coins. + ld a, l + cp 3 + jr nc, .deduct ; You have at least 3 coins. + ld hl, .CardFlipNotEnoughCoinsText + call CardFlip_UpdateCoinBalanceDisplay + ld a, 7 + ld [wJumptableIndex], a + ret + +.deduct + ld de, -3 + add hl, de + ld a, h + ld [wCoins], a + ld a, l + ld [wCoins + 1], a + ld de, SFX_TRANSACTION + call PlaySFX + xor a + ldh [hBGMapMode], a + call CardFlip_PrintCoinBalance + ld a, $1 + ldh [hBGMapMode], a + call WaitSFX + call .Increment + ret + +.CardFlipNotEnoughCoinsText: + text_far _CardFlipNotEnoughCoinsText + text_end + +.ChooseACard: + xor a + ldh [hBGMapMode], a + hlcoord 0, 0 + lb bc, 12, 9 + call CardFlip_FillGreenBox + hlcoord 9, 0 + ld bc, SCREEN_WIDTH + ld a, [wCardFlipNumCardsPlayed] + call AddNTimes + ld [hl], CARDFLIP_LIGHT_ON + ld a, $1 + ldh [hBGMapMode], a + ld c, 20 + call DelayFrames + hlcoord 2, 0 + call PlaceCardFaceDown + ld a, $1 + ldh [hBGMapMode], a + ld c, 20 + call DelayFrames + hlcoord 2, 6 + call PlaceCardFaceDown + call WaitBGMap + ld hl, .CardFlipChooseACardText + call CardFlip_UpdateCoinBalanceDisplay + xor a + ld [wCardFlipWhichCard], a +.loop + call JoyTextDelay + ldh a, [hJoyLast] + and A_BUTTON + jr nz, .next + ld de, SFX_KINESIS + call PlaySFX + call PlaceOAMCardBorder + ld c, 4 + call DelayFrames + ld hl, wCardFlipWhichCard + ld a, [hl] + xor $1 + ld [hl], a + jr .loop + +.next + ld de, SFX_SLOT_MACHINE_START + call PlaySFX + ld a, $3 +.loop2 + push af + call PlaceOAMCardBorder + ld c, 4 + call DelayFrames + call ClearSprites + ld c, 4 + call DelayFrames + pop af + dec a + jr nz, .loop2 + ld hl, wCardFlipWhichCard + ld a, [hl] + push af + xor $1 + ld [hl], a + call GetCoordsOfChosenCard + lb bc, 6, 5 + call CardFlip_FillGreenBox + pop af + ld [wCardFlipWhichCard], a + call .Increment + ret + +.CardFlipChooseACardText: + text_far _CardFlipChooseACardText + text_end + +.PlaceYourBet: + ld hl, .CardFlipPlaceYourBetText + call CardFlip_UpdateCoinBalanceDisplay +.betloop + call JoyTextDelay + ldh a, [hJoyLast] + and A_BUTTON + jr nz, .betdone + call ChooseCard_HandleJoypad + call CardFlip_UpdateCursorOAM + call DelayFrame + jr .betloop + +.betdone + call .Increment + ret + +.CardFlipPlaceYourBetText: + text_far _CardFlipPlaceYourBetText + text_end + +.CheckTheCard: + xor a + ldh [hVBlankCounter], a + call CardFlip_UpdateCursorOAM + call WaitSFX + ld de, SFX_CHOOSE_A_CARD + call PlaySFX + call WaitSFX + ld a, [wCardFlipNumCardsPlayed] + ld e, a + ld d, 0 + ld hl, wDeck + add hl, de + add hl, de + ld a, [wCardFlipWhichCard] + ld e, a + add hl, de + ld a, [hl] + ld [wCardFlipFaceUpCard], a + ld e, a + ld hl, wDiscardPile + add hl, de + ld [hl], TRUE + call GetCoordsOfChosenCard + call CardFlip_DisplayCardFaceUp + call WaitBGMap2 + call .Increment + ret + +.TabulateTheResult: + call CardFlip_CheckWinCondition + call WaitPressAorB_BlinkCursor + call .Increment + ret + +.PlayAgain: + call ClearSprites + ld hl, .CardFlipPlayAgainText + call CardFlip_UpdateCoinBalanceDisplay + call YesNoBox + jr nc, .Continue + call .Increment + ret + +.Continue: + ld a, [wCardFlipNumCardsPlayed] + inc a + ld [wCardFlipNumCardsPlayed], a + cp 12 + jr c, .KeepTheCurrentDeck + call CardFlip_InitTilemap + ld a, $1 + ldh [hBGMapMode], a + call CardFlip_ShuffleDeck + ld hl, .CardFlipShuffledText + call PrintText + jr .LoopAround + +.KeepTheCurrentDeck: + call CardFlip_BlankDiscardedCardSlot + +.LoopAround: + ld a, 1 + ld [wJumptableIndex], a + ret + +.CardFlipPlayAgainText: + text_far _CardFlipPlayAgainText + text_end + +.CardFlipShuffledText: + text_far _CardFlipShuffledText + text_end + +.Quit: + ld hl, wJumptableIndex + set 7, [hl] + ret + +CardFlip_ShuffleDeck: + ld hl, wDeck + ld bc, CARDFLIP_DECK_SIZE + xor a + call ByteFill + ld de, wDeck + ld c, CARDFLIP_DECK_SIZE - 1 +.loop + call Random + and $1f + cp CARDFLIP_DECK_SIZE + jr nc, .loop + ld l, a + ld h, $0 + add hl, de + ld a, [hl] + and a + jr nz, .loop + ld [hl], c + dec c + jr nz, .loop + xor a + ld [wCardFlipNumCardsPlayed], a + ld hl, wDiscardPile + ld bc, CARDFLIP_DECK_SIZE + call ByteFill + ret + +CollapseCursorPosition: + ld hl, 0 + ld bc, 6 + ld a, [wCardFlipCursorY] + call AddNTimes + ld b, $0 + ld a, [wCardFlipCursorX] + ld c, a + add hl, bc + ret + +GetCoordsOfChosenCard: + ld a, [wCardFlipWhichCard] + and a + jr nz, .BottomCard + hlcoord 2, 0 + bcpixel 2, 3 + jr .done + +.BottomCard: + hlcoord 2, 6 + bcpixel 8, 3 + +.done + ret + +PlaceCardFaceDown: + xor a + ldh [hBGMapMode], a + ld de, .FaceDownCardTilemap + lb bc, 6, 5 + call CardFlip_CopyToBox + ret + +.FaceDownCardTilemap: + db $08, $09, $09, $09, $0a + db $0b, $28, $2b, $28, $0c + db $0b, $2c, $2d, $2e, $0c + db $0b, $2f, $30, $31, $0c + db $0b, $32, $33, $34, $0c + db $0d, $0e, $0e, $0e, $0f + +CardFlip_DisplayCardFaceUp: + xor a + ldh [hBGMapMode], a + push hl + push hl + ; Flip the card face up. + ld de, .FaceUpCardTilemap + lb bc, 6, 5 + call CardFlip_CopyToBox + + ; Get the level and species of the upturned card. + ld a, [wCardFlipFaceUpCard] + ld e, a + ld d, 0 + ld hl, .Deck + add hl, de + add hl, de + ld a, [hli] + ld e, a + ld d, [hl] + + ; Place the level. + pop hl + ld bc, 3 + SCREEN_WIDTH + add hl, bc + ld [hl], e + + ; Place the Pokepic. + ld bc, SCREEN_HEIGHT + add hl, bc + ld a, d + ld de, SCREEN_WIDTH + ld b, 3 +.row + push hl + ld c, 3 +.col + ld [hli], a + inc a + dec c + jr nz, .col + pop hl + add hl, de + dec b + jr nz, .row + pop hl + + ; Pointless CGB check + ldh a, [hCGB] + and a + ret z + + ; Set the attributes + ld de, wAttrmap - wTilemap + add hl, de + ld a, [wCardFlipFaceUpCard] + and 3 + inc a + lb bc, 6, 5 + call CardFlip_FillBox + ret + +.FaceUpCardTilemap: + db $18, $19, $19, $19, $1a + db $1b, $35, $7f, $7f, $1c + db $0b, $28, $28, $28, $0c + db $0b, $28, $28, $28, $0c + db $0b, $28, $28, $28, $0c + db $1d, $1e, $1e, $1e, $1f + +.Deck: + ; level, pic anchor (3x3) + db "1", $4e, "1", $57, "1", $69, "1", $60 + db "2", $4e, "2", $57, "2", $69, "2", $60 + db "3", $4e, "3", $57, "3", $69, "3", $60 + db "4", $4e, "4", $57, "4", $69, "4", $60 + db "5", $4e, "5", $57, "5", $69, "5", $60 + db "6", $4e, "6", $57, "6", $69, "6", $60 + +CardFlip_UpdateCoinBalanceDisplay: + push hl + hlcoord 0, 12 + ld b, 4 + ld c, SCREEN_WIDTH - 2 + call Textbox + pop hl + call PrintTextboxText + call CardFlip_PrintCoinBalance + ret + +CardFlip_PrintCoinBalance: + hlcoord 9, 15 + ld bc, $0109 + call Textbox + hlcoord 10, 16 + ld de, .CoinStr + call PlaceString + hlcoord 15, 16 + ld de, wCoins + lb bc, PRINTNUM_LEADINGZEROS | 2, 4 + call PrintNum + ret + +.CoinStr: + db "COIN@" + +CardFlip_InitTilemap: + xor a + ldh [hBGMapMode], a + hlcoord 0, 0 + ld bc, SCREEN_HEIGHT * SCREEN_WIDTH + ld a, $29 + call ByteFill + hlcoord 9, 0 + ld de, CardFlipTilemap + lb bc, 12, 11 + call CardFlip_CopyToBox + hlcoord 0, 12 + lb bc, 4, 18 + call Textbox + ret + +CardFlip_FillGreenBox: + ld a, $29 + +CardFlip_FillBox: +.row + push bc + push hl +.col + ld [hli], a + dec c + jr nz, .col + pop hl + ld bc, SCREEN_WIDTH + add hl, bc + pop bc + dec b + jr nz, .row + ret + +CardFlip_CopyToBox: +.row + push bc + push hl +.col + ld a, [de] + inc de + ld [hli], a + dec c + jr nz, .col + pop hl + ld bc, SCREEN_WIDTH + add hl, bc + pop bc + dec b + jr nz, .row + ret + +CardFlip_CopyOAM: + ld de, wVirtualOAMSprite00 + ld a, [hli] +.loop + push af + ld a, [hli] + add b + ld [de], a ; y + inc de + ld a, [hli] + add c + ld [de], a ; x + inc de + ld a, [hli] + ld [de], a ; tile id + inc de + ld a, [hli] + ld [de], a ; attributes + inc de + pop af + dec a + jr nz, .loop + ret + +CardFlip_ShiftDigitsUpOnePixel: +; The top rows of digits 1-9 become the bottom rows of 0-8, +; so this routine relies on the top rows being blank. + ld de, vTiles0 tile "0" + ld hl, vTiles0 tile "0" + 2 + ld bc, 10 tiles - 2 + call CopyBytes + ld hl, vTiles0 tile "9" + 1 tiles - 2 + xor a + ld [hli], a + ld [hl], a + ret + +CardFlip_BlankDiscardedCardSlot: + xor a + ldh [hBGMapMode], a + ld a, [wCardFlipFaceUpCard] + ld e, a + ld d, 0 + + and 3 ; get mon + ld c, a + ld b, 0 + + ld a, e + and $1c ; get level + srl a + add LOW(.Jumptable) + ld l, a + ld a, 0 + adc HIGH(.Jumptable) + ld h, a + ld a, [hli] + ld h, [hl] + ld l, a + jp hl + +.Jumptable: + dw .Level1 + dw .Level2 + dw .Level3 + dw .Level4 + dw .Level5 + dw .Level6 + +.Level1: + ld hl, wDiscardPile + 4 + add hl, de + ld a, [hl] + and a + jr nz, .discarded2 + hlcoord 13, 3 + add hl, bc + add hl, bc + ld [hl], $36 + ld bc, SCREEN_WIDTH + add hl, bc + ld [hl], $37 + ret + +.discarded2 + hlcoord 13, 3 + add hl, bc + add hl, bc + ld [hl], $36 + ld bc, SCREEN_WIDTH + add hl, bc + ld [hl], $3d + ret + +.Level2: + ld hl, wDiscardPile - 4 + add hl, de + ld a, [hl] + and a + jr nz, .discarded1 + hlcoord 13, 4 + add hl, bc + add hl, bc + ld [hl], $3b + ld bc, SCREEN_WIDTH + add hl, bc + ld [hl], $3a + ret + +.discarded1 + hlcoord 13, 4 + add hl, bc + add hl, bc + ld [hl], $3d + ld bc, SCREEN_WIDTH + add hl, bc + ld [hl], $3a + ret + +.Level3: + ld hl, wDiscardPile + 4 + add hl, de + ld a, [hl] + and a + jr nz, .discarded4 + hlcoord 13, 6 + add hl, bc + add hl, bc + ld [hl], $36 + ld bc, SCREEN_WIDTH + add hl, bc + ld [hl], $38 + ret + +.discarded4 + hlcoord 13, 6 + add hl, bc + add hl, bc + ld [hl], $36 + ld bc, SCREEN_WIDTH + add hl, bc + ld [hl], $3d + ret + +.Level4: + ld hl, wDiscardPile - 4 + add hl, de + ld a, [hl] + and a + jr nz, .discarded3 + hlcoord 13, 7 + add hl, bc + add hl, bc + ld [hl], $3c + ld bc, SCREEN_WIDTH + add hl, bc + ld [hl], $3a + ret + +.discarded3 + hlcoord 13, 7 + add hl, bc + add hl, bc + ld [hl], $3d + ld bc, SCREEN_WIDTH + add hl, bc + ld [hl], $3a + ret + +.Level5: + ld hl, wDiscardPile + 4 + add hl, de + ld a, [hl] + and a + jr nz, .discarded6 + hlcoord 13, 9 + add hl, bc + add hl, bc + ld [hl], $36 + ld bc, SCREEN_WIDTH + add hl, bc + ld [hl], $39 + ret + +.discarded6 + hlcoord 13, 9 + add hl, bc + add hl, bc + ld [hl], $36 + ld bc, SCREEN_WIDTH + add hl, bc + ld [hl], $3d + ret + +.Level6: + ld hl, wDiscardPile - 4 + add hl, de + ld a, [hl] + and a + jr nz, .discarded5 + hlcoord 13, 10 + add hl, bc + add hl, bc + ld [hl], $3c + ld bc, SCREEN_WIDTH + add hl, bc + ld [hl], $3a + ret + +.discarded5 + hlcoord 13, 10 + add hl, bc + add hl, bc + ld [hl], $3d + ld bc, SCREEN_WIDTH + add hl, bc + ld [hl], $3a + ret + +CardFlip_CheckWinCondition: + call CollapseCursorPosition + add hl, hl + ld de, .Jumptable + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp hl + +.Jumptable: + dw .Impossible + dw .Impossible + dw .PikaJiggly + dw .PikaJiggly + dw .PoliOddish + dw .PoliOddish + + dw .Impossible + dw .Impossible + dw .Pikachu + dw .Jigglypuff + dw .Poliwag + dw .Oddish + + dw .OneTwo + dw .One + dw .PikaOne + dw .JigglyOne + dw .PoliOne + dw .OddOne + + dw .OneTwo + dw .Two + dw .PikaTwo + dw .JigglyTwo + dw .PoliTwo + dw .OddTwo + + dw .ThreeFour + dw .Three + dw .PikaThree + dw .JigglyThree + dw .PoliThree + dw .OddThree + + dw .ThreeFour + dw .Four + dw .PikaFour + dw .JigglyFour + dw .PoliFour + dw .OddFour + + dw .FiveSix + dw .Five + dw .PikaFive + dw .JigglyFive + dw .PoliFive + dw .OddFive + + dw .FiveSix + dw .Six + dw .PikaSix + dw .JigglySix + dw .PoliSix + dw .OddSix + +.Impossible: + jp .Lose + +.PikaJiggly: + ld a, [wCardFlipFaceUpCard] + and $2 + jp nz, .Lose + jr .WinSix + +.PoliOddish: + ld a, [wCardFlipFaceUpCard] + and $2 + jr nz, .WinSix + jp .Lose + +.WinSix: + ld c, $6 + ld de, SFX_2ND_PLACE + jp .Payout + +.OneTwo: + ld a, [wCardFlipFaceUpCard] + and $18 + jr z, .WinNine + jp .Lose + +.ThreeFour: + ld a, [wCardFlipFaceUpCard] + and $18 + cp $8 + jr z, .WinNine + jp .Lose + +.FiveSix: + ld a, [wCardFlipFaceUpCard] + and $18 + cp $10 + jr z, .WinNine + jp .Lose + +.WinNine: + ld c, $9 + ld de, SFX_2ND_PLACE + jp .Payout + +.Pikachu: + ld a, [wCardFlipFaceUpCard] + and $3 + jr z, .WinTwelve + jp .Lose + +.Jigglypuff: + ld a, [wCardFlipFaceUpCard] + and $3 + cp $1 + jr z, .WinTwelve + jp .Lose + +.Poliwag: + ld a, [wCardFlipFaceUpCard] + and $3 + cp $2 + jr z, .WinTwelve + jp .Lose + +.Oddish: + ld a, [wCardFlipFaceUpCard] + and $3 + cp $3 + jr z, .WinTwelve + jp .Lose + +.WinTwelve: + ld c, $c + ld de, SFX_2ND_PLACE + jp .Payout + +.One: + ld a, [wCardFlipFaceUpCard] + and $1c + jr z, .WinEighteen + jp .Lose + +.Two: + ld a, [wCardFlipFaceUpCard] + and $1c + cp $4 + jr z, .WinEighteen + jp .Lose + +.Three: + ld a, [wCardFlipFaceUpCard] + and $1c + cp $8 + jr z, .WinEighteen + jp .Lose + +.Four: + ld a, [wCardFlipFaceUpCard] + and $1c + cp $c + jr z, .WinEighteen + jp .Lose + +.Five: + ld a, [wCardFlipFaceUpCard] + and $1c + cp $10 + jr z, .WinEighteen + jp .Lose + +.Six: + ld a, [wCardFlipFaceUpCard] + and $1c + cp $14 + jr z, .WinEighteen + jp .Lose + +.WinEighteen: + ld c, $12 + ld de, SFX_2ND_PLACE + jp .Payout + +.PikaOne: + ld e, $0 + jr .CheckWin72 + +.JigglyOne: + ld e, $1 + jr .CheckWin72 + +.PoliOne: + ld e, $2 + jr .CheckWin72 + +.OddOne: + ld e, $3 + jr .CheckWin72 + +.PikaTwo: + ld e, $4 + jr .CheckWin72 + +.JigglyTwo: + ld e, $5 + jr .CheckWin72 + +.PoliTwo: + ld e, $6 + jr .CheckWin72 + +.OddTwo: + ld e, $7 + jr .CheckWin72 + +.PikaThree: + ld e, $8 + jr .CheckWin72 + +.JigglyThree: + ld e, $9 + jr .CheckWin72 + +.PoliThree: + ld e, $a + jr .CheckWin72 + +.OddThree: + ld e, $b + jr .CheckWin72 + +.PikaFour: + ld e, $c + jr .CheckWin72 + +.JigglyFour: + ld e, $d + jr .CheckWin72 + +.PoliFour: + ld e, $e + jr .CheckWin72 + +.OddFour: + ld e, $f + jr .CheckWin72 + +.PikaFive: + ld e, $10 + jr .CheckWin72 + +.JigglyFive: + ld e, $11 + jr .CheckWin72 + +.PoliFive: + ld e, $12 + jr .CheckWin72 + +.OddFive: + ld e, $13 + jr .CheckWin72 + +.PikaSix: + ld e, $14 + jr .CheckWin72 + +.JigglySix: + ld e, $15 + jr .CheckWin72 + +.PoliSix: + ld e, $16 + jr .CheckWin72 + +.OddSix: + ld e, $17 + +.CheckWin72: + ld a, [wCardFlipFaceUpCard] + cp e + jr nz, .Lose + ld c, 72 + ld de, SFX_2ND_PLACE + jr .Payout + +.Lose: + ld de, SFX_WRONG + call PlaySFX + ld hl, .CardFlipDarnText + call CardFlip_UpdateCoinBalanceDisplay + call WaitSFX + ret + +.Payout: + push bc + push de + ld hl, .CardFlipYeahText + call CardFlip_UpdateCoinBalanceDisplay + pop de + call PlaySFX + call WaitSFX + pop bc +.loop + push bc + call .IsCoinCaseFull + jr c, .full + call .AddCoinPlaySFX + +.full + call CardFlip_PrintCoinBalance + ld c, 2 + call DelayFrames + pop bc + dec c + jr nz, .loop + ret + +.CardFlipYeahText: + text_far _CardFlipYeahText + text_end + +.CardFlipDarnText: + text_far _CardFlipDarnText + text_end + +.AddCoinPlaySFX: + ld a, [wCoins] + ld h, a + ld a, [wCoins + 1] + ld l, a + inc hl + ld a, h + ld [wCoins], a + ld a, l + ld [wCoins + 1], a + ld de, SFX_PAY_DAY + call PlaySFX + ret + +.IsCoinCaseFull: + ld a, [wCoins] + cp HIGH(MAX_COINS) + jr c, .less + jr z, .check_low + jr .more + +.check_low + ld a, [wCoins + 1] + cp LOW(MAX_COINS) + jr c, .less + +.more + scf + ret + +.less + and a + ret + +PlaceOAMCardBorder: + call GetCoordsOfChosenCard + ld hl, .SpriteData + call CardFlip_CopyOAM + ret + +.SpriteData: + db 18 + dbsprite 0, 0, 0, 0, $04, 0 + dbsprite 1, 0, 0, 0, $06, 0 + dbsprite 2, 0, 0, 0, $06, 0 + dbsprite 3, 0, 0, 0, $06, 0 + dbsprite 4, 0, 0, 0, $04, 0 | X_FLIP + + dbsprite 0, 1, 0, 0, $05, 0 + dbsprite 4, 1, 0, 0, $05, 0 | X_FLIP + + dbsprite 0, 2, 0, 0, $05, 0 + dbsprite 4, 2, 0, 0, $05, 0 | X_FLIP + + dbsprite 0, 3, 0, 0, $05, 0 + dbsprite 4, 3, 0, 0, $05, 0 | X_FLIP + + dbsprite 0, 4, 0, 0, $05, $00 + dbsprite 4, 4, 0, 0, $05, 0 | X_FLIP + + dbsprite 0, 5, 0, 0, $04, 0 | Y_FLIP + dbsprite 1, 5, 0, 0, $06, 0 | Y_FLIP + dbsprite 2, 5, 0, 0, $06, 0 | Y_FLIP + dbsprite 3, 5, 0, 0, $06, 0 | Y_FLIP + dbsprite 4, 5, 0, 0, $04, 0 | X_FLIP | Y_FLIP + +ChooseCard_HandleJoypad: + ld hl, hJoyLast + ld a, [hl] + and D_LEFT + jp nz, .d_left + ld a, [hl] + and D_RIGHT + jp nz, .d_right + ld a, [hl] + and D_UP + jp nz, .d_up + ld a, [hl] + and D_DOWN + jp nz, .d_down + ret + +.d_left + ld hl, wCardFlipCursorX + ld a, [wCardFlipCursorY] + and a + jr z, .mon_pair_left + cp $1 + jr z, .mon_group_left + ld a, [hl] + and a + ret z + dec [hl] + jp .play_sound + +.mon_group_left + ld a, [hl] + cp $3 + jr c, .left_to_number_gp + dec [hl] + jp .play_sound + +.mon_pair_left + ld a, [hl] + and $e + ld [hl], a + cp $3 + jr c, .left_to_number_gp + dec [hl] + dec [hl] + jp .play_sound + +.left_to_number_gp + ld a, $2 + ld [wCardFlipCursorY], a + ld a, $1 + ld [wCardFlipCursorX], a + jp .play_sound + +.d_right + ld hl, wCardFlipCursorX + ld a, [wCardFlipCursorY] + and a + jr z, .mon_pair_right + ld a, [hl] + cp $5 + ret nc + inc [hl] + jr .play_sound + +.mon_pair_right + ld a, [hl] + and $e + ld [hl], a + cp $4 + ret nc + inc [hl] + inc [hl] + jr .play_sound + +.d_up + ld hl, wCardFlipCursorY + ld a, [wCardFlipCursorX] + and a + jr z, .num_pair_up + cp $1 + jr z, .num_gp_up + ld a, [hl] + and a + ret z + dec [hl] + jr .play_sound + +.num_gp_up + ld a, [hl] + cp $3 + jr c, .up_to_mon_group + dec [hl] + jr .play_sound + +.num_pair_up + ld a, [hl] + and $e + ld [hl], a + cp $3 + jr c, .up_to_mon_group + dec [hl] + dec [hl] + jr .play_sound + +.up_to_mon_group + ld a, $1 + ld [wCardFlipCursorY], a + ld a, $2 + ld [wCardFlipCursorX], a + jr .play_sound + +.d_down + ld hl, wCardFlipCursorY + ld a, [wCardFlipCursorX] + and a + jr z, .num_pair_down + ld hl, wCardFlipCursorY + ld a, [hl] + cp $7 + ret nc + inc [hl] + jr .play_sound + +.num_pair_down + ld a, [hl] + and $e + ld [hl], a + cp $6 + ret nc + inc [hl] + inc [hl] + +.play_sound + ld de, SFX_POKEBALLS_PLACED_ON_TABLE + call PlaySFX + ret + +CardFlip_UpdateCursorOAM: + call ClearSprites + ldh a, [hCGB] + and a + jr nz, .skip + ldh a, [hVBlankCounter] + and $4 + ret nz + +.skip + call CollapseCursorPosition + add hl, hl + add hl, hl + ld de, .OAMData + add hl, de + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, [hli] + ld h, [hl] + ld l, a + call CardFlip_CopyOAM + ret + +.OAMData: +cardflip_cursor: MACRO +if _NARG >= 5 + dbpixel \1, \2, \3, \4 + dw \5 +else + dbpixel \1, \2 + dw \3 +endc +ENDM + + cardflip_cursor 11, 2, .Impossible + cardflip_cursor 12, 2, .Impossible + cardflip_cursor 13, 2, .PokeGroupPair + cardflip_cursor 13, 2, .PokeGroupPair + cardflip_cursor 17, 2, .PokeGroupPair + cardflip_cursor 17, 2, .PokeGroupPair + + cardflip_cursor 11, 3, .Impossible + cardflip_cursor 12, 3, .Impossible + cardflip_cursor 13, 3, .PokeGroup + cardflip_cursor 15, 3, .PokeGroup + cardflip_cursor 17, 3, .PokeGroup + cardflip_cursor 19, 3, .PokeGroup + + cardflip_cursor 11, 5, .NumGroupPair + cardflip_cursor 12, 5, .NumGroup + cardflip_cursor 13, 5, .SingleTile + cardflip_cursor 15, 5, .SingleTile + cardflip_cursor 17, 5, .SingleTile + cardflip_cursor 19, 5, .SingleTile + + cardflip_cursor 11, 5, .NumGroupPair + cardflip_cursor 12, 6, 0, 4, .NumGroup + cardflip_cursor 13, 6, 0, 4, .SingleTile + cardflip_cursor 15, 6, 0, 4, .SingleTile + cardflip_cursor 17, 6, 0, 4, .SingleTile + cardflip_cursor 19, 6, 0, 4, .SingleTile + + cardflip_cursor 11, 8, .NumGroupPair + cardflip_cursor 12, 8, .NumGroup + cardflip_cursor 13, 8, .SingleTile + cardflip_cursor 15, 8, .SingleTile + cardflip_cursor 17, 8, .SingleTile + cardflip_cursor 19, 8, .SingleTile + + cardflip_cursor 11, 8, .NumGroupPair + cardflip_cursor 12, 9, 0, 4, .NumGroup + cardflip_cursor 13, 9, 0, 4, .SingleTile + cardflip_cursor 15, 9, 0, 4, .SingleTile + cardflip_cursor 17, 9, 0, 4, .SingleTile + cardflip_cursor 19, 9, 0, 4, .SingleTile + + cardflip_cursor 11, 11, .NumGroupPair + cardflip_cursor 12, 11, .NumGroup + cardflip_cursor 13, 11, .SingleTile + cardflip_cursor 15, 11, .SingleTile + cardflip_cursor 17, 11, .SingleTile + cardflip_cursor 19, 11, .SingleTile + + cardflip_cursor 11, 11, .NumGroupPair + cardflip_cursor 12, 12, 0, 4, .NumGroup + cardflip_cursor 13, 12, 0, 4, .SingleTile + cardflip_cursor 15, 12, 0, 4, .SingleTile + cardflip_cursor 17, 12, 0, 4, .SingleTile + cardflip_cursor 19, 12, 0, 4, .SingleTile + +.SingleTile: + db 6 + dbsprite -1, 0, 7, 0, $00, 0 | PRIORITY + dbsprite 0, 0, 0, 0, $02, 0 | PRIORITY + dbsprite 1, 0, 0, 0, $03, 0 | PRIORITY + dbsprite -1, 0, 7, 5, $00, 0 | Y_FLIP | PRIORITY + dbsprite 0, 0, 0, 5, $02, 0 | Y_FLIP | PRIORITY + dbsprite 1, 0, 0, 5, $03, 0 | PRIORITY + +.PokeGroup: + db 26 + dbsprite -1, 0, 7, 0, $00, 0 | PRIORITY + dbsprite 0, 0, 0, 0, $02, 0 | PRIORITY + dbsprite 1, 0, 0, 0, $00, 0 | X_FLIP | PRIORITY + dbsprite -1, 1, 7, 0, $01, 0 | PRIORITY + dbsprite 1, 1, 0, 0, $01, 0 | X_FLIP | PRIORITY + dbsprite -1, 2, 7, 0, $01, 0 | PRIORITY + dbsprite 1, 2, 0, 0, $03, 0 | PRIORITY + dbsprite -1, 3, 7, 0, $01, 0 | PRIORITY + dbsprite 1, 3, 0, 0, $03, 0 | PRIORITY + dbsprite -1, 4, 7, 0, $01, 0 | PRIORITY + dbsprite 1, 4, 0, 0, $03, 0 | PRIORITY + dbsprite -1, 5, 7, 0, $01, 0 | PRIORITY + dbsprite 1, 5, 0, 0, $03, 0 | PRIORITY + dbsprite -1, 6, 7, 0, $01, 0 | PRIORITY + dbsprite 1, 6, 0, 0, $03, 0 | PRIORITY + dbsprite -1, 7, 7, 0, $01, 0 | PRIORITY + dbsprite 1, 7, 0, 0, $03, 0 | PRIORITY + dbsprite -1, 8, 7, 0, $01, 0 | PRIORITY + dbsprite 1, 8, 0, 0, $03, 0 | PRIORITY + dbsprite -1, 9, 7, 0, $01, 0 | PRIORITY + dbsprite 1, 9, 0, 0, $03, 0 | PRIORITY + dbsprite -1, 10, 7, 0, $01, 0 | PRIORITY + dbsprite 1, 10, 0, 0, $03, 0 | PRIORITY + dbsprite -1, 10, 7, 1, $00, 0 | Y_FLIP | PRIORITY + dbsprite 0, 10, 0, 1, $02, 0 | Y_FLIP | PRIORITY + dbsprite 1, 10, 0, 1, $03, 0 | PRIORITY + +.NumGroup: + db 20 + dbsprite -1, 0, 7, 0, $00, 0 | PRIORITY + dbsprite 0, 0, 0, 0, $02, 0 | PRIORITY + dbsprite 1, 0, 0, 0, $02, 0 | PRIORITY + dbsprite 2, 0, 0, 0, $03, 0 | PRIORITY + dbsprite 3, 0, 0, 0, $02, 0 | PRIORITY + dbsprite 4, 0, 0, 0, $03, 0 | PRIORITY + dbsprite 5, 0, 0, 0, $02, 0 | PRIORITY + dbsprite 6, 0, 0, 0, $03, 0 | PRIORITY + dbsprite 7, 0, 0, 0, $02, 0 | PRIORITY + dbsprite 8, 0, 0, 0, $03, 0 | PRIORITY + dbsprite -1, 0, 7, 5, $00, 0 | Y_FLIP | PRIORITY + dbsprite 0, 0, 0, 5, $02, 0 | Y_FLIP | PRIORITY + dbsprite 1, 0, 0, 5, $02, 0 | Y_FLIP | PRIORITY + dbsprite 2, 0, 0, 5, $03, 0 | PRIORITY + dbsprite 3, 0, 0, 5, $02, 0 | Y_FLIP | PRIORITY + dbsprite 4, 0, 0, 5, $03, 0 | PRIORITY + dbsprite 5, 0, 0, 5, $02, 0 | Y_FLIP | PRIORITY + dbsprite 6, 0, 0, 5, $03, 0 | PRIORITY + dbsprite 7, 0, 0, 5, $02, 0 | Y_FLIP | PRIORITY + dbsprite 8, 0, 0, 5, $03, 0 | PRIORITY + +.NumGroupPair: + db 30 + dbsprite 0, 0, 0, 0, $00, 0 | PRIORITY + dbsprite 1, 0, 0, 0, $02, 0 | PRIORITY + dbsprite 2, 0, 0, 0, $02, 0 | PRIORITY + dbsprite 3, 0, 0, 0, $03, 0 | PRIORITY + dbsprite 4, 0, 0, 0, $02, 0 | PRIORITY + dbsprite 5, 0, 0, 0, $03, 0 | PRIORITY + dbsprite 6, 0, 0, 0, $02, 0 | PRIORITY + dbsprite 7, 0, 0, 0, $03, 0 | PRIORITY + dbsprite 8, 0, 0, 0, $02, 0 | PRIORITY + dbsprite 9, 0, 0, 0, $03, 0 | PRIORITY + dbsprite 0, 1, 0, 0, $01, 0 | PRIORITY + dbsprite 3, 1, 0, 0, $03, 0 | PRIORITY + dbsprite 5, 1, 0, 0, $03, 0 | PRIORITY + dbsprite 7, 1, 0, 0, $03, 0 | PRIORITY + dbsprite 9, 1, 0, 0, $03, 0 | PRIORITY + dbsprite 0, 2, 0, 0, $01, 0 | PRIORITY + dbsprite 3, 2, 0, 0, $03, 0 | PRIORITY + dbsprite 5, 2, 0, 0, $03, 0 | PRIORITY + dbsprite 7, 2, 0, 0, $03, 0 | PRIORITY + dbsprite 9, 2, 0, 0, $03, 0 | PRIORITY + dbsprite 0, 2, 0, 1, $00, 0 | Y_FLIP | PRIORITY + dbsprite 1, 2, 0, 1, $02, 0 | Y_FLIP | PRIORITY + dbsprite 2, 2, 0, 1, $02, 0 | Y_FLIP | PRIORITY + dbsprite 3, 2, 0, 1, $03, 0 | PRIORITY + dbsprite 4, 2, 0, 1, $03, 0 | PRIORITY + dbsprite 5, 2, 0, 1, $03, 0 | PRIORITY + dbsprite 6, 2, 0, 1, $03, 0 | PRIORITY + dbsprite 7, 2, 0, 1, $03, 0 | PRIORITY + dbsprite 8, 2, 0, 1, $03, 0 | PRIORITY + dbsprite 9, 2, 0, 1, $03, 0 | PRIORITY + +.PokeGroupPair: + db 38 + dbsprite -1, 0, 7, 0, $00, 0 | PRIORITY + dbsprite 3, 0, 0, 0, $00, 0 | X_FLIP | PRIORITY + dbsprite -1, 1, 7, 0, $01, 0 | PRIORITY + dbsprite 3, 1, 0, 0, $01, 0 | X_FLIP | PRIORITY + dbsprite -1, 2, 7, 0, $01, 0 | PRIORITY + dbsprite 3, 2, 0, 0, $01, 0 | X_FLIP | PRIORITY + dbsprite -1, 3, 7, 0, $01, 0 | PRIORITY + dbsprite 1, 3, 0, 0, $03, 0 | PRIORITY + dbsprite 3, 3, 0, 0, $03, 0 | PRIORITY + dbsprite -1, 4, 7, 0, $01, 0 | PRIORITY + dbsprite 1, 4, 0, 0, $03, 0 | PRIORITY + dbsprite 3, 4, 0, 0, $03, 0 | PRIORITY + dbsprite -1, 5, 7, 0, $01, 0 | PRIORITY + dbsprite 1, 5, 0, 0, $03, 0 | PRIORITY + dbsprite 3, 5, 0, 0, $03, 0 | PRIORITY + dbsprite -1, 6, 7, 0, $01, 0 | PRIORITY + dbsprite 1, 6, 0, 0, $03, 0 | PRIORITY + dbsprite 3, 6, 0, 0, $03, 0 | PRIORITY + dbsprite -1, 7, 7, 0, $01, 0 | PRIORITY + dbsprite 1, 7, 0, 0, $03, 0 | PRIORITY + dbsprite 3, 7, 0, 0, $03, 0 | PRIORITY + dbsprite -1, 8, 7, 0, $01, 0 | PRIORITY + dbsprite 1, 8, 0, 0, $03, 0 | PRIORITY + dbsprite 3, 8, 0, 0, $03, 0 | PRIORITY + dbsprite -1, 9, 7, 0, $01, 0 | PRIORITY + dbsprite 1, 9, 0, 0, $03, 0 | PRIORITY + dbsprite 3, 9, 0, 0, $03, 0 | PRIORITY + dbsprite -1, 10, 7, 0, $01, 0 | PRIORITY + dbsprite 1, 10, 0, 0, $03, 0 | PRIORITY + dbsprite 3, 10, 0, 0, $03, 0 | PRIORITY + dbsprite -1, 11, 7, 0, $01, 0 | PRIORITY + dbsprite 1, 11, 0, 0, $03, 0 | PRIORITY + dbsprite 3, 11, 0, 0, $03, 0 | PRIORITY + dbsprite -1, 11, 7, 1, $00, 0 | Y_FLIP | PRIORITY + dbsprite 0, 11, 0, 1, $02, 0 | Y_FLIP | PRIORITY + dbsprite 1, 11, 0, 1, $03, 0 | Y_FLIP | PRIORITY + dbsprite 2, 11, 0, 1, $02, 0 | Y_FLIP | PRIORITY + dbsprite 3, 11, 0, 1, $03, 0 | X_FLIP | Y_FLIP | PRIORITY + +.Impossible: + db 4 + dbsprite 0, 0, 0, 0, $00, 0 | PRIORITY + dbsprite 1, 0, 0, 0, $00, 0 | X_FLIP | PRIORITY + dbsprite 0, 1, 0, 0, $00, 0 | Y_FLIP | PRIORITY + dbsprite 1, 1, 0, 0, $00, 0 | X_FLIP | Y_FLIP | PRIORITY + +CardFlip_InitAttrPals: + ldh a, [hCGB] + and a + ret z + + hlcoord 0, 0, wAttrmap + ld bc, SCREEN_HEIGHT * SCREEN_WIDTH + xor a + call ByteFill + + hlcoord 12, 1, wAttrmap + lb bc, 2, 2 + ld a, $1 + call CardFlip_FillBox + + hlcoord 14, 1, wAttrmap + lb bc, 2, 2 + ld a, $2 + call CardFlip_FillBox + + hlcoord 16, 1, wAttrmap + lb bc, 2, 2 + ld a, $3 + call CardFlip_FillBox + + hlcoord 18, 1, wAttrmap + lb bc, 2, 2 + ld a, $4 + call CardFlip_FillBox + + hlcoord 9, 0, wAttrmap + lb bc, 12, 1 + ld a, $1 + call CardFlip_FillBox + + ld hl, .palettes + ld de, wBGPals1 + ld bc, 9 palettes + call CopyBytes + ret + +.palettes +INCLUDE "gfx/card_flip/card_flip.pal" + +CardFlipLZ03: +INCBIN "gfx/card_flip/card_flip_3.2bpp.lz" + +CardFlipOffButtonGFX: +INCBIN "gfx/card_flip/off.2bpp" + +CardFlipOnButtonGFX: +INCBIN "gfx/card_flip/on.2bpp" + +CardFlipLZ01: +INCBIN "gfx/card_flip/card_flip_1.2bpp.lz" + +CardFlipLZ02: +INCBIN "gfx/card_flip/card_flip_2.2bpp.lz" + +CardFlipTilemap: +INCBIN "gfx/card_flip/card_flip.tilemap" diff --git a/gfx/card_flip/card_flip.pal b/gfx/card_flip/card_flip.pal new file mode 100755 index 00000000..24c5566f --- /dev/null +++ b/gfx/card_flip/card_flip.pal @@ -0,0 +1,44 @@ + RGB 31, 31, 31 + RGB 17, 07, 31 + RGB 06, 19, 08 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 29, 25, 00 + RGB 06, 19, 08 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 31, 13, 30 + RGB 06, 19, 08 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 08, 17, 30 + RGB 06, 19, 08 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 08, 31, 08 + RGB 06, 19, 08 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 17, 07, 31 + RGB 06, 19, 08 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 17, 07, 31 + RGB 06, 19, 08 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 17, 07, 31 + RGB 06, 19, 08 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 00, 00 + RGB 31, 00, 00 diff --git a/gfx/card_flip/card_flip.tilemap b/gfx/card_flip/card_flip.tilemap Binary files differnew file mode 100755 index 00000000..f6cdbefb --- /dev/null +++ b/gfx/card_flip/card_flip.tilemap diff --git a/gfx/card_flip/card_flip_1.2bpp.lz b/gfx/card_flip/card_flip_1.2bpp.lz Binary files differnew file mode 100755 index 00000000..8a60b966 --- /dev/null +++ b/gfx/card_flip/card_flip_1.2bpp.lz diff --git a/gfx/card_flip/card_flip_1.png b/gfx/card_flip/card_flip_1.png Binary files differnew file mode 100755 index 00000000..d3bfef22 --- /dev/null +++ b/gfx/card_flip/card_flip_1.png diff --git a/gfx/card_flip/card_flip_2.2bpp.lz b/gfx/card_flip/card_flip_2.2bpp.lz Binary files differnew file mode 100755 index 00000000..f238c797 --- /dev/null +++ b/gfx/card_flip/card_flip_2.2bpp.lz diff --git a/gfx/card_flip/card_flip_2.png b/gfx/card_flip/card_flip_2.png Binary files differnew file mode 100755 index 00000000..d7123061 --- /dev/null +++ b/gfx/card_flip/card_flip_2.png diff --git a/gfx/card_flip/card_flip_3.2bpp.lz b/gfx/card_flip/card_flip_3.2bpp.lz Binary files differnew file mode 100755 index 00000000..12baf9a8 --- /dev/null +++ b/gfx/card_flip/card_flip_3.2bpp.lz diff --git a/gfx/card_flip/card_flip_3.png b/gfx/card_flip/card_flip_3.png Binary files differnew file mode 100755 index 00000000..22745096 --- /dev/null +++ b/gfx/card_flip/card_flip_3.png diff --git a/gfx/card_flip/off.2bpp b/gfx/card_flip/off.2bpp new file mode 100755 index 00000000..0e7c66a3 --- /dev/null +++ b/gfx/card_flip/off.2bpp @@ -0,0 +1 @@ +
\ No newline at end of file diff --git a/gfx/card_flip/off.png b/gfx/card_flip/off.png Binary files differnew file mode 100755 index 00000000..ac588564 --- /dev/null +++ b/gfx/card_flip/off.png diff --git a/gfx/card_flip/on.2bpp b/gfx/card_flip/on.2bpp new file mode 100755 index 00000000..18497c4f --- /dev/null +++ b/gfx/card_flip/on.2bpp @@ -0,0 +1 @@ +ÁÁÁÁ
\ No newline at end of file diff --git a/gfx/card_flip/on.png b/gfx/card_flip/on.png Binary files differnew file mode 100755 index 00000000..cea1577e --- /dev/null +++ b/gfx/card_flip/on.png @@ -323,11 +323,7 @@ ret_e0000: INCLUDE "engine/events/diploma.asm" INCLUDE "engine/events/print_unown_2.asm" - -ret_e0908:: - ret -_CardFlip:: - dr $e0909, $e199d +INCLUDE "engine/games/card_flip.asm" _UnownPuzzle:: dr $e199d, $e2668 @@ -392,6 +392,18 @@ wSlotsDataEnd:: wSlotsEnd:: NEXTU ; c5d0 +; card flip +wCardFlip:: ; c5d0 +wDeck:: ds 24 +wDeckEnd:: +; c5e8 +wCardFlipNumCardsPlayed:: db +wCardFlipFaceUpCard:: db +wDiscardPile:: ds 24 +wDiscardPileEnd:: +wCardFlipEnd:: + +NEXTU ; c5d0 ; unused (engine/gfx/color.asm) ds 50 @@ -1098,6 +1110,12 @@ wTrainerCardBadgeTileID:: db wTrainerCardBadgeAttributes:: db NEXTU ; ce64 +; card flip data +wCardFlipCursorY:: db +wCardFlipCursorX:: db +wCardFlipWhichCard:: db + +NEXTU ; ce64 ; magnet train wMagnetTrainOffset:: db wMagnetTrainPosition:: db |