2014-05-22 22:13:20 +00:00
|
|
|
|
PromptUserToPlaySlots: ; 3730e (d:730e)
|
|
|
|
|
call SaveScreenTilesToBuffer2
|
|
|
|
|
ld a, BANK(DisplayTextIDInit)
|
2014-09-13 07:50:56 +00:00
|
|
|
|
ld [wAutoTextBoxDrawingControl], a
|
2014-05-22 22:13:20 +00:00
|
|
|
|
ld b, a
|
|
|
|
|
ld hl, DisplayTextIDInit
|
|
|
|
|
call Bankswitch
|
|
|
|
|
ld hl, PlaySlotMachineText
|
|
|
|
|
call PrintText
|
|
|
|
|
call YesNoChoice
|
|
|
|
|
ld a, [wCurrentMenuItem]
|
|
|
|
|
and a
|
|
|
|
|
jr nz, .skip
|
|
|
|
|
dec a
|
2014-09-13 07:50:56 +00:00
|
|
|
|
ld [wUpdateSpritesEnabled], a
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld hl, wcd4f
|
2014-05-22 22:13:20 +00:00
|
|
|
|
xor a
|
|
|
|
|
ld [hli], a
|
|
|
|
|
ld [hl], $2
|
2014-06-16 20:57:26 +00:00
|
|
|
|
predef EmotionBubble
|
2014-05-22 22:13:20 +00:00
|
|
|
|
call GBPalWhiteOutWithDelay3
|
|
|
|
|
call LoadSlotMachineTiles
|
|
|
|
|
call LoadFontTilePatterns
|
|
|
|
|
ld b, $5
|
|
|
|
|
call GoPAL_SET
|
|
|
|
|
call GBPalNormal
|
|
|
|
|
ld a, $e4
|
|
|
|
|
ld [$ff48], a
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld hl, wd730
|
2014-05-22 22:13:20 +00:00
|
|
|
|
set 6, [hl]
|
|
|
|
|
xor a
|
|
|
|
|
ld [W_SUBANIMSUBENTRYADDR], a
|
|
|
|
|
ld hl, wTrainerSpriteOffset
|
|
|
|
|
ld bc, $0014
|
|
|
|
|
call FillMemory
|
|
|
|
|
call MainSlotMachineLoop
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld hl, wd730
|
2014-05-22 22:13:20 +00:00
|
|
|
|
res 6, [hl]
|
|
|
|
|
xor a
|
|
|
|
|
ld [W_SUBANIMSUBENTRYADDR], a
|
|
|
|
|
call GBPalWhiteOutWithDelay3
|
|
|
|
|
ld a, $1
|
2014-09-13 07:50:56 +00:00
|
|
|
|
ld [wUpdateSpritesEnabled], a
|
2014-05-22 22:13:20 +00:00
|
|
|
|
call GoPAL_SET_CF1C
|
2014-09-10 03:55:19 +00:00
|
|
|
|
call ReloadMapSpriteTilePatterns
|
2014-05-22 22:13:20 +00:00
|
|
|
|
call ReloadTilesetTilePatterns
|
|
|
|
|
.skip
|
|
|
|
|
call LoadScreenTilesFromBuffer2
|
|
|
|
|
call Delay3
|
|
|
|
|
call GBPalNormal
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld a, [wcc5e]
|
2014-05-22 22:13:20 +00:00
|
|
|
|
push af
|
|
|
|
|
jp CloseTextDisplay
|
|
|
|
|
|
|
|
|
|
PlaySlotMachineText: ; 37390 (d:7390)
|
|
|
|
|
TX_FAR _PlaySlotMachineText
|
|
|
|
|
db "@"
|
|
|
|
|
|
|
|
|
|
MainSlotMachineLoop: ; 37395 (d:7395)
|
|
|
|
|
call SlotMachine_37754
|
|
|
|
|
xor a
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld hl, wcd4a
|
2014-05-22 22:13:20 +00:00
|
|
|
|
ld [hli], a
|
|
|
|
|
ld [hl], a
|
|
|
|
|
call SlotMachine_3775f
|
|
|
|
|
ld hl, BetHowManySlotMachineText
|
|
|
|
|
call PrintText
|
|
|
|
|
call SaveScreenTilesToBuffer1
|
|
|
|
|
.loop
|
|
|
|
|
ld a, $3
|
|
|
|
|
ld [wMenuWatchedKeys], a
|
|
|
|
|
ld a, $2
|
|
|
|
|
ld [wMaxMenuItem], a
|
|
|
|
|
ld a, $c
|
|
|
|
|
ld [wTopMenuItemY], a
|
|
|
|
|
ld a, $f
|
|
|
|
|
ld [wTopMenuItemX], a
|
|
|
|
|
xor a
|
|
|
|
|
ld [wCurrentMenuItem], a
|
|
|
|
|
ld [wLastMenuItem], a
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld [wcc37], a
|
|
|
|
|
ld hl, wTileMap + $ea
|
2014-05-22 22:13:20 +00:00
|
|
|
|
ld b, $5
|
|
|
|
|
ld c, $4
|
|
|
|
|
call TextBoxBorder
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld hl, wTileMap + $100
|
2014-05-22 22:13:20 +00:00
|
|
|
|
ld de, CoinMultiplierSlotMachineText
|
|
|
|
|
call PlaceString
|
|
|
|
|
call HandleMenuInput
|
|
|
|
|
and $2
|
|
|
|
|
jp nz, LoadScreenTilesFromBuffer1
|
|
|
|
|
ld a, [wCurrentMenuItem]
|
|
|
|
|
ld b, a
|
|
|
|
|
ld a, $3
|
|
|
|
|
sub b
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld [wcd50], a
|
2014-05-22 22:13:20 +00:00
|
|
|
|
ld hl, wPlayerCoins
|
|
|
|
|
ld c, a
|
|
|
|
|
ld a, [hli]
|
|
|
|
|
and a
|
|
|
|
|
jr nz, .skip1
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
cp c
|
|
|
|
|
jr nc, .skip1
|
|
|
|
|
ld hl, NotEnoughCoinsSlotMachineText
|
|
|
|
|
call PrintText
|
|
|
|
|
jr .loop
|
|
|
|
|
.skip1
|
|
|
|
|
call LoadScreenTilesFromBuffer1
|
|
|
|
|
call SlotMachine_37741
|
|
|
|
|
call SlotMachine_377d5
|
|
|
|
|
call SlotMachine_37480
|
|
|
|
|
ld a, $4
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld hl, wcd4d
|
2014-05-22 22:13:20 +00:00
|
|
|
|
ld [hli], a
|
|
|
|
|
ld [hli], a
|
|
|
|
|
ld [hl], a
|
|
|
|
|
call WaitForSoundToFinish
|
|
|
|
|
ld a, (SFX_1f_66 - SFX_Headers_1f) / 3
|
|
|
|
|
call PlaySound
|
|
|
|
|
ld hl, StartSlotMachineText
|
|
|
|
|
call PrintText
|
|
|
|
|
call SlotMachine_374ad
|
|
|
|
|
call SlotMachine_37588
|
|
|
|
|
ld hl, wPlayerCoins
|
|
|
|
|
ld a, [hli]
|
|
|
|
|
or [hl]
|
|
|
|
|
jr nz, .skip2
|
|
|
|
|
ld hl, OutOfCoinsSlotMachineText
|
|
|
|
|
call PrintText
|
|
|
|
|
ld c, $3c
|
|
|
|
|
jp DelayFrames
|
|
|
|
|
.skip2
|
|
|
|
|
ld hl, OneMoreGoSlotMachineText
|
|
|
|
|
call PrintText
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld hl, wTileMap + $fe
|
2014-05-22 22:13:20 +00:00
|
|
|
|
ld bc, $0d0f
|
2015-02-07 10:43:08 +00:00
|
|
|
|
xor a ; YES_NO_MENU
|
|
|
|
|
ld [wTwoOptionMenuID], a
|
2015-02-07 20:27:36 +00:00
|
|
|
|
ld a, TWO_OPTION_MENU
|
2015-02-07 10:43:08 +00:00
|
|
|
|
ld [wTextBoxID], a
|
2014-05-22 22:13:20 +00:00
|
|
|
|
call DisplayTextBoxID
|
|
|
|
|
ld a, [wCurrentMenuItem]
|
|
|
|
|
and a
|
|
|
|
|
ret nz
|
|
|
|
|
call SlotMachine_377ce
|
|
|
|
|
jp MainSlotMachineLoop
|
|
|
|
|
|
|
|
|
|
CoinMultiplierSlotMachineText: ; 3745e (d:745e)
|
|
|
|
|
db "×3"
|
|
|
|
|
next "×2"
|
|
|
|
|
next "×1@"
|
|
|
|
|
|
|
|
|
|
OutOfCoinsSlotMachineText: ; 37467 (d:7467)
|
|
|
|
|
TX_FAR _OutOfCoinsSlotMachineText
|
|
|
|
|
db "@"
|
|
|
|
|
|
|
|
|
|
BetHowManySlotMachineText: ; 3746c (d:746c)
|
|
|
|
|
TX_FAR _BetHowManySlotMachineText
|
|
|
|
|
db "@"
|
|
|
|
|
|
|
|
|
|
StartSlotMachineText: ; 37471 (d:7471)
|
|
|
|
|
TX_FAR _StartSlotMachineText
|
|
|
|
|
db "@"
|
|
|
|
|
|
|
|
|
|
NotEnoughCoinsSlotMachineText: ; 37476 (d:7476)
|
|
|
|
|
TX_FAR _NotEnoughCoinsSlotMachineText
|
|
|
|
|
db "@"
|
|
|
|
|
|
|
|
|
|
OneMoreGoSlotMachineText: ; 3747b (d:747b)
|
|
|
|
|
TX_FAR _OneMoreGoSlotMachineText
|
|
|
|
|
db "@"
|
|
|
|
|
|
|
|
|
|
SlotMachine_37480: ; 37480 (d:7480)
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld hl, wcd4c
|
2014-05-22 22:13:20 +00:00
|
|
|
|
bit 7, [hl]
|
|
|
|
|
ret nz
|
|
|
|
|
ld a, [W_SUBANIMSUBENTRYADDR]
|
|
|
|
|
and a
|
|
|
|
|
jr nz, .skip1
|
2014-05-24 18:40:38 +00:00
|
|
|
|
call Random
|
2014-05-22 22:13:20 +00:00
|
|
|
|
and a
|
|
|
|
|
jr z, .skip2
|
|
|
|
|
ld b, a
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld a, [wcc5b]
|
2014-05-22 22:13:20 +00:00
|
|
|
|
cp b
|
|
|
|
|
jr c, .skip3
|
|
|
|
|
ld a, $d2
|
|
|
|
|
cp b
|
|
|
|
|
jr c, .skip1
|
|
|
|
|
ld [hl], $0
|
|
|
|
|
ret
|
|
|
|
|
.skip1
|
|
|
|
|
set 6, [hl]
|
|
|
|
|
ret
|
|
|
|
|
.skip2
|
|
|
|
|
ld a, $3c
|
|
|
|
|
ld [W_SUBANIMSUBENTRYADDR], a
|
|
|
|
|
ret
|
|
|
|
|
.skip3
|
|
|
|
|
set 7, [hl]
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
SlotMachine_374ad: ; 374ad (d:74ad)
|
|
|
|
|
ld c, $14
|
|
|
|
|
.loop1
|
|
|
|
|
push bc
|
|
|
|
|
call SlotMachine_37813
|
|
|
|
|
call SlotMachine_37823
|
|
|
|
|
call SlotMachine_37833
|
|
|
|
|
ld c, $2
|
|
|
|
|
call DelayFrames
|
|
|
|
|
pop bc
|
|
|
|
|
dec c
|
|
|
|
|
jr nz, .loop1
|
|
|
|
|
xor a
|
|
|
|
|
ld [wTrainerSpriteOffset], a
|
|
|
|
|
.loop2
|
|
|
|
|
call SlotMachine_37882
|
|
|
|
|
call SlotMachine_374df
|
|
|
|
|
call SlotMachine_374fb
|
|
|
|
|
call SlotMachine_37517
|
|
|
|
|
ret c
|
2014-09-13 07:50:56 +00:00
|
|
|
|
ld a, [wOnSGB]
|
2014-05-22 22:13:20 +00:00
|
|
|
|
xor $1
|
|
|
|
|
inc a
|
|
|
|
|
ld c, a
|
|
|
|
|
call DelayFrames
|
|
|
|
|
jr .loop2
|
|
|
|
|
|
|
|
|
|
SlotMachine_374df: ; 374df (d:74df)
|
|
|
|
|
ld a, [wTrainerSpriteOffset]
|
|
|
|
|
cp $1
|
|
|
|
|
jr c, .skip
|
|
|
|
|
ld de, wTrainerEngageDistance
|
|
|
|
|
ld a, [de]
|
|
|
|
|
rra
|
|
|
|
|
jr nc, .skip
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld hl, wcd4d
|
2014-05-22 22:13:20 +00:00
|
|
|
|
ld a, [hl]
|
|
|
|
|
and a
|
|
|
|
|
ret z
|
|
|
|
|
dec [hl]
|
|
|
|
|
call SlotMachine_3752c
|
|
|
|
|
ret nz
|
|
|
|
|
.skip
|
|
|
|
|
jp SlotMachine_37813
|
|
|
|
|
|
|
|
|
|
SlotMachine_374fb: ; 374fb (d:74fb)
|
|
|
|
|
ld a, [wTrainerSpriteOffset]
|
|
|
|
|
cp $2
|
|
|
|
|
jr c, .skip
|
|
|
|
|
ld de, wTrainerFacingDirection
|
|
|
|
|
ld a, [de]
|
|
|
|
|
rra
|
|
|
|
|
jr nc, .skip
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld hl, wcd4e
|
2014-05-22 22:13:20 +00:00
|
|
|
|
ld a, [hl]
|
|
|
|
|
and a
|
|
|
|
|
ret z
|
|
|
|
|
dec [hl]
|
|
|
|
|
call SlotMachine_37552
|
|
|
|
|
ret z
|
|
|
|
|
.skip
|
|
|
|
|
jp SlotMachine_37823
|
|
|
|
|
|
|
|
|
|
SlotMachine_37517: ; 37517 (d:7517)
|
|
|
|
|
ld a, [wTrainerSpriteOffset]
|
|
|
|
|
cp $3
|
|
|
|
|
jr c, .skip
|
|
|
|
|
ld de, wTrainerScreenY
|
|
|
|
|
ld a, [de]
|
|
|
|
|
rra
|
|
|
|
|
jr nc, .skip
|
|
|
|
|
scf
|
|
|
|
|
ret
|
|
|
|
|
.skip
|
|
|
|
|
call SlotMachine_37833
|
|
|
|
|
and a
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
SlotMachine_3752c: ; 3752c (d:752c)
|
|
|
|
|
call SlotMachine_GetWheelOneTile
|
|
|
|
|
ld hl, wTrainerScreenX
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld a, [wcd4c]
|
2014-05-22 22:13:20 +00:00
|
|
|
|
and $80
|
|
|
|
|
jr nz, .skip1
|
|
|
|
|
inc hl
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
cp $a
|
|
|
|
|
jr nz, .skip2
|
|
|
|
|
ret
|
|
|
|
|
.skip1
|
|
|
|
|
ld c, $3
|
|
|
|
|
.loop
|
|
|
|
|
ld a, [hli]
|
|
|
|
|
cp $2
|
|
|
|
|
jr c, .skip2
|
|
|
|
|
dec c
|
|
|
|
|
jr nz, .loop
|
|
|
|
|
ret
|
|
|
|
|
.skip2
|
|
|
|
|
inc a
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld hl, wcd4d
|
2014-05-22 22:13:20 +00:00
|
|
|
|
ld [hl], $0
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
SlotMachine_37552: ; 37552 (d:7552)
|
|
|
|
|
call SlotMachine_GetWheelTwoTile
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld a, [wcd4c]
|
2014-05-22 22:13:20 +00:00
|
|
|
|
and $80
|
|
|
|
|
jr nz, .skip1
|
|
|
|
|
call SlotMachine_3756e
|
|
|
|
|
ret nz
|
|
|
|
|
jr .skip2
|
|
|
|
|
.skip1
|
|
|
|
|
call SlotMachine_3756e
|
|
|
|
|
ld a, [de]
|
|
|
|
|
cp $7
|
|
|
|
|
ret nc
|
|
|
|
|
.skip2
|
|
|
|
|
xor a
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld [wcd4e], a
|
2014-05-22 22:13:20 +00:00
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
SlotMachine_3756e: ; 3756e (d:756e)
|
|
|
|
|
ld hl, wTrainerScreenX
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld de, wcd44
|
2014-05-22 22:13:20 +00:00
|
|
|
|
ld a, [de]
|
|
|
|
|
cp [hl]
|
|
|
|
|
ret z
|
|
|
|
|
inc de
|
|
|
|
|
ld a, [de]
|
|
|
|
|
cp [hl]
|
|
|
|
|
ret z
|
|
|
|
|
inc hl
|
|
|
|
|
cp [hl]
|
|
|
|
|
ret z
|
|
|
|
|
inc hl
|
|
|
|
|
cp [hl]
|
|
|
|
|
ret z
|
|
|
|
|
inc de
|
|
|
|
|
ld a, [de]
|
|
|
|
|
cp [hl]
|
|
|
|
|
ret z
|
|
|
|
|
dec de
|
|
|
|
|
dec de
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
SlotMachine_37588: ; 37588 (d:7588)
|
|
|
|
|
call SlotMachine_GetWheelThreeTile
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld a, [wcd50]
|
2014-05-22 22:13:20 +00:00
|
|
|
|
cp $2
|
|
|
|
|
jr z, .skip1
|
|
|
|
|
cp $1
|
|
|
|
|
jr z, .skip2
|
|
|
|
|
ld hl, wTrainerScreenX
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld de, wcd45
|
|
|
|
|
ld bc, wcd49
|
2014-05-22 22:13:20 +00:00
|
|
|
|
call SlotMachine_CheckForMatch
|
|
|
|
|
jp z, .skip5
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld hl, wcd43
|
|
|
|
|
ld de, wcd45
|
|
|
|
|
ld bc, wcd47
|
2014-05-22 22:13:20 +00:00
|
|
|
|
call SlotMachine_CheckForMatch
|
|
|
|
|
jr z, .skip5
|
|
|
|
|
.skip1
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld hl, wcd43
|
|
|
|
|
ld de, wcd46
|
|
|
|
|
ld bc, wcd49
|
2014-05-22 22:13:20 +00:00
|
|
|
|
call SlotMachine_CheckForMatch
|
|
|
|
|
jr z, .skip5
|
|
|
|
|
ld hl, wTrainerScreenX
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld de, wcd44
|
|
|
|
|
ld bc, wcd47
|
2014-05-22 22:13:20 +00:00
|
|
|
|
call SlotMachine_CheckForMatch
|
|
|
|
|
jr z, .skip5
|
|
|
|
|
.skip2
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld hl, wcd42
|
|
|
|
|
ld de, wcd45
|
|
|
|
|
ld bc, wcd48
|
2014-05-22 22:13:20 +00:00
|
|
|
|
call SlotMachine_CheckForMatch
|
|
|
|
|
jr z, .skip5
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld a, [wcd4c]
|
2014-05-22 22:13:20 +00:00
|
|
|
|
and $c0
|
|
|
|
|
jr z, .skip3
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld hl, wcd4f
|
2014-05-22 22:13:20 +00:00
|
|
|
|
dec [hl]
|
|
|
|
|
jr nz, .skip4
|
|
|
|
|
.skip3
|
|
|
|
|
ld hl, NotThisTimeText
|
|
|
|
|
call PrintText
|
|
|
|
|
.loop
|
|
|
|
|
xor a
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld [wc002], a
|
2014-05-22 22:13:20 +00:00
|
|
|
|
ret
|
|
|
|
|
.skip4
|
|
|
|
|
call SlotMachine_37833
|
|
|
|
|
call DelayFrame
|
|
|
|
|
call SlotMachine_37833
|
|
|
|
|
call DelayFrame
|
|
|
|
|
jp SlotMachine_37588
|
|
|
|
|
.skip5
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld a, [wcd4c]
|
2014-05-22 22:13:20 +00:00
|
|
|
|
and $c0
|
|
|
|
|
jr z, .skip4
|
|
|
|
|
and $80
|
|
|
|
|
jr nz, .skip6
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
cp $7
|
|
|
|
|
jr c, .skip4
|
|
|
|
|
.skip6
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
sub $2
|
|
|
|
|
ld [wTrainerScreenX], a
|
|
|
|
|
ld hl, SlotRewardPointers
|
|
|
|
|
ld c, a
|
|
|
|
|
ld b, $0
|
|
|
|
|
add hl, bc
|
|
|
|
|
ld a, [hli]
|
|
|
|
|
ld e, a
|
|
|
|
|
ld a, [hli]
|
|
|
|
|
ld d, a
|
|
|
|
|
push de
|
|
|
|
|
ld a, [hli]
|
|
|
|
|
ld h, [hl]
|
|
|
|
|
ld l, a
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld de, wcf4b
|
2014-05-22 22:13:20 +00:00
|
|
|
|
ld bc, $0004
|
|
|
|
|
call CopyData
|
|
|
|
|
pop hl
|
|
|
|
|
ld de, .asm_37638
|
|
|
|
|
push de
|
|
|
|
|
jp [hl]
|
|
|
|
|
|
|
|
|
|
.asm_37638
|
|
|
|
|
ld a, [$ff47]
|
|
|
|
|
xor $40
|
|
|
|
|
ld [$ff47], a
|
|
|
|
|
ld c, $5
|
|
|
|
|
call DelayFrames
|
|
|
|
|
dec b
|
|
|
|
|
jr nz, .asm_37638
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld hl, wcd4a
|
2014-05-22 22:13:20 +00:00
|
|
|
|
ld [hl], d
|
|
|
|
|
inc hl
|
|
|
|
|
ld [hl], e
|
|
|
|
|
call SlotMachine_3775f
|
|
|
|
|
ld hl, SlotsMachineText_37665
|
|
|
|
|
call PrintText
|
|
|
|
|
call WaitForTextScrollButtonPress
|
|
|
|
|
call SlotMachine_3776b
|
|
|
|
|
call SlotMachine_3775f
|
|
|
|
|
ld a, $e4
|
|
|
|
|
ld [$ff48], a
|
|
|
|
|
jp .loop
|
|
|
|
|
|
|
|
|
|
SlotsMachineText_37665: ; 37665 (d:7665)
|
|
|
|
|
db $08 ; asm
|
|
|
|
|
push bc
|
|
|
|
|
call SlotMachine_37728
|
|
|
|
|
ld hl, LinedUpText
|
|
|
|
|
pop bc
|
|
|
|
|
inc bc
|
|
|
|
|
inc bc
|
|
|
|
|
inc bc
|
|
|
|
|
inc bc
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
LinedUpText: ; 37673 (d:7673)
|
|
|
|
|
TX_FAR _LinedUpText
|
|
|
|
|
db "@"
|
|
|
|
|
|
|
|
|
|
SlotRewardPointers: ; 37678 (d:7678)
|
|
|
|
|
dw SlotReward300Func
|
|
|
|
|
dw SlotReward300Text
|
|
|
|
|
dw SlotReward100Func
|
|
|
|
|
dw SlotReward100Text
|
|
|
|
|
dw SlotReward8Func
|
|
|
|
|
dw SlotReward8Text
|
|
|
|
|
dw SlotReward15Func
|
|
|
|
|
dw SlotReward15Text
|
|
|
|
|
dw SlotReward15Func
|
|
|
|
|
dw SlotReward15Text
|
|
|
|
|
dw SlotReward15Func
|
|
|
|
|
dw SlotReward15Text
|
|
|
|
|
|
|
|
|
|
SlotReward300Text: ; 37690 (d:7690)
|
|
|
|
|
db "300@"
|
|
|
|
|
|
|
|
|
|
SlotReward100Text: ; 37694 (d:7694)
|
|
|
|
|
db "100@"
|
|
|
|
|
|
|
|
|
|
SlotReward8Text: ; 37698 (d:7698)
|
|
|
|
|
db "8@"
|
|
|
|
|
|
|
|
|
|
SlotReward15Text: ; 3769a (d:769a)
|
|
|
|
|
db "15@"
|
|
|
|
|
|
|
|
|
|
NotThisTimeText: ; 3769d (d:769d)
|
|
|
|
|
TX_FAR _NotThisTimeText
|
|
|
|
|
db "@"
|
|
|
|
|
|
|
|
|
|
; compares the slot machine tiles at bc, de, and hl
|
|
|
|
|
SlotMachine_CheckForMatch: ; 376a2 (d:76a2)
|
|
|
|
|
ld a, [de]
|
|
|
|
|
cp [hl]
|
|
|
|
|
ret nz
|
|
|
|
|
ld a, [bc]
|
|
|
|
|
cp [hl]
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
SlotMachine_GetWheelThreeTile: ; 376a8 (d:76a8)
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld de, wcd47
|
2014-05-22 22:13:20 +00:00
|
|
|
|
ld hl, SlotMachineWheel3
|
|
|
|
|
ld a, [wTrainerScreenY]
|
|
|
|
|
call SlotMachine_GetWheelTile
|
|
|
|
|
|
|
|
|
|
SlotMachine_GetWheelTwoTile: ; 376b4 (d:76b4)
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld de, wcd44
|
2014-05-22 22:13:20 +00:00
|
|
|
|
ld hl, SlotMachineWheel2
|
|
|
|
|
ld a, [wTrainerFacingDirection]
|
|
|
|
|
call SlotMachine_GetWheelTile
|
|
|
|
|
|
|
|
|
|
SlotMachine_GetWheelOneTile: ; 376c0 (d:76c0)
|
|
|
|
|
ld de, wTrainerScreenX
|
|
|
|
|
ld hl, SlotMachineWheel1
|
|
|
|
|
ld a, [wTrainerEngageDistance]
|
|
|
|
|
|
|
|
|
|
SlotMachine_GetWheelTile: ; 376c9 (d:76c9)
|
|
|
|
|
ld c, a
|
|
|
|
|
ld b, $0
|
|
|
|
|
add hl, bc
|
|
|
|
|
ld c, $3
|
|
|
|
|
.loop
|
|
|
|
|
ld a, [hli]
|
|
|
|
|
ld [de], a
|
|
|
|
|
inc de
|
|
|
|
|
inc hl
|
|
|
|
|
dec c
|
|
|
|
|
jr nz, .loop
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
SlotReward8Func: ; 376d7 (d:76d7)
|
|
|
|
|
ld hl, W_SUBANIMSUBENTRYADDR
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
and a
|
|
|
|
|
jr z, .skip
|
|
|
|
|
dec [hl]
|
|
|
|
|
.skip
|
|
|
|
|
ld b, $2
|
|
|
|
|
ld de, 8
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
SlotReward15Func: ; 376e5 (d:76e5)
|
|
|
|
|
ld hl, W_SUBANIMSUBENTRYADDR
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
and a
|
|
|
|
|
jr z, .skip
|
|
|
|
|
dec [hl]
|
|
|
|
|
.skip
|
|
|
|
|
ld b, $4
|
|
|
|
|
ld de, 15
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
SlotReward100Func: ; 376f3 (d:76f3)
|
|
|
|
|
ld a, (SFX_1f_42 - SFX_Headers_1f) / 3
|
|
|
|
|
call PlaySound
|
|
|
|
|
xor a
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld [wcd4c], a
|
2014-05-22 22:13:20 +00:00
|
|
|
|
ld b, $8
|
|
|
|
|
ld de, 100
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
SlotReward300Func: ; 37702 (d:7702)
|
|
|
|
|
ld hl, YeahText
|
|
|
|
|
call PrintText
|
|
|
|
|
ld a, (SFX_1f_3b - SFX_Headers_1f) / 3
|
|
|
|
|
call PlaySound
|
2014-05-24 18:40:38 +00:00
|
|
|
|
call Random
|
2014-05-22 22:13:20 +00:00
|
|
|
|
cp $80
|
|
|
|
|
ld a, $0
|
|
|
|
|
jr c, .skip
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld [wcd4c], a
|
2014-05-22 22:13:20 +00:00
|
|
|
|
.skip
|
|
|
|
|
ld [W_SUBANIMSUBENTRYADDR], a
|
|
|
|
|
ld b, $14
|
|
|
|
|
ld de, 300
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
YeahText: ; 37722 (d:7722)
|
|
|
|
|
TX_FAR _YeahText
|
|
|
|
|
db $0a, "@"
|
|
|
|
|
|
|
|
|
|
SlotMachine_37728: ; 37728 (d:7728)
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld hl, wTileMap + $11a
|
2014-05-22 22:13:20 +00:00
|
|
|
|
ld a, [wTrainerScreenX]
|
|
|
|
|
add $25
|
|
|
|
|
ld [hli], a
|
|
|
|
|
inc a
|
|
|
|
|
ld [hld], a
|
|
|
|
|
inc a
|
|
|
|
|
ld de, $ffec
|
|
|
|
|
add hl, de
|
|
|
|
|
ld [hli], a
|
|
|
|
|
inc a
|
|
|
|
|
ld [hl], a
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld hl, wTileMap + $152
|
2014-05-22 22:13:20 +00:00
|
|
|
|
ld [hl], $ee
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
SlotMachine_37741: ; 37741 (d:7741)
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld hl, wcd4b
|
|
|
|
|
ld a, [wcd50]
|
2014-05-22 22:13:20 +00:00
|
|
|
|
ld [hld], a
|
|
|
|
|
xor a
|
|
|
|
|
ld [hli], a
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld de, wPlayerCoins + 1
|
2014-05-22 22:13:20 +00:00
|
|
|
|
ld c, $2
|
2014-06-16 20:57:26 +00:00
|
|
|
|
predef SubBCDPredef
|
2014-05-22 22:13:20 +00:00
|
|
|
|
|
|
|
|
|
SlotMachine_37754: ; 37754 (d:7754)
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld hl, wTileMap + $19
|
2014-05-22 22:13:20 +00:00
|
|
|
|
ld de, wPlayerCoins
|
|
|
|
|
ld c, $2
|
|
|
|
|
jp PrintBCDNumber
|
|
|
|
|
|
|
|
|
|
SlotMachine_3775f: ; 3775f (d:775f)
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld hl, wTileMap + $1f
|
|
|
|
|
ld de, wcd4a
|
2014-05-22 22:13:20 +00:00
|
|
|
|
ld bc, $8204
|
|
|
|
|
jp PrintNumber
|
|
|
|
|
|
|
|
|
|
SlotMachine_3776b: ; 3776b (d:776b)
|
|
|
|
|
ld a, $1
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld [wc002], a
|
2014-05-22 22:13:20 +00:00
|
|
|
|
call WaitForSoundToFinish
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld hl, wcd46
|
2014-05-22 22:13:20 +00:00
|
|
|
|
xor a
|
|
|
|
|
ld [hli], a
|
|
|
|
|
inc a
|
|
|
|
|
ld [hl], a
|
|
|
|
|
ld a, $5
|
|
|
|
|
ld [W_SUBANIMTRANSFORM], a
|
|
|
|
|
.loop
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld a, [wcd4b]
|
2014-05-22 22:13:20 +00:00
|
|
|
|
ld l, a
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld a, [wcd4a]
|
2014-05-22 22:13:20 +00:00
|
|
|
|
ld h, a
|
|
|
|
|
or l
|
|
|
|
|
ret z
|
|
|
|
|
ld de, $ffff
|
|
|
|
|
add hl, de
|
|
|
|
|
ld a, l
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld [wcd4b], a
|
2014-05-22 22:13:20 +00:00
|
|
|
|
ld a, h
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld [wcd4a], a
|
|
|
|
|
ld hl, wcd47
|
|
|
|
|
ld de, wPlayerCoins + 1
|
2014-05-22 22:13:20 +00:00
|
|
|
|
ld c, $2
|
2014-06-16 20:57:26 +00:00
|
|
|
|
predef AddBCDPredef
|
2014-05-22 22:13:20 +00:00
|
|
|
|
call SlotMachine_37754
|
|
|
|
|
call SlotMachine_3775f
|
|
|
|
|
ld a, (SFX_1f_65 - SFX_Headers_1f) / 3
|
|
|
|
|
call PlaySound
|
|
|
|
|
ld a, [W_SUBANIMTRANSFORM]
|
|
|
|
|
dec a
|
|
|
|
|
jr nz, .skip1
|
|
|
|
|
ld a, [$ff48]
|
|
|
|
|
xor $40
|
|
|
|
|
ld [$ff48], a
|
|
|
|
|
ld a, $5
|
|
|
|
|
.skip1
|
|
|
|
|
ld [W_SUBANIMTRANSFORM], a
|
|
|
|
|
ld a, [wTrainerScreenX]
|
|
|
|
|
cp $7
|
|
|
|
|
ld c, $8
|
|
|
|
|
jr nc, .skip2
|
|
|
|
|
srl c
|
|
|
|
|
.skip2
|
|
|
|
|
call DelayFrames
|
|
|
|
|
jr .loop
|
|
|
|
|
|
|
|
|
|
SlotMachine_377ce: ; 377ce (d:77ce)
|
|
|
|
|
ld a, $23
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld [wd08a], a
|
2014-05-22 22:13:20 +00:00
|
|
|
|
jr SlotMachine_377e3
|
|
|
|
|
|
|
|
|
|
SlotMachine_377d5: ; 377d5 (d:77d5)
|
|
|
|
|
ld a, $14
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld [wd08a], a
|
|
|
|
|
ld a, [wcd50]
|
2014-05-22 22:13:20 +00:00
|
|
|
|
dec a
|
|
|
|
|
jr z, SlotMachine_377fb
|
|
|
|
|
dec a
|
|
|
|
|
jr z, SlotMachine_377ef
|
|
|
|
|
|
|
|
|
|
SlotMachine_377e3: ; 377e3 (d:77e3)
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld hl, wTileMap + $2b
|
2014-05-22 22:13:20 +00:00
|
|
|
|
call SlotMachine_377fe
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld hl, wTileMap + $cb
|
2014-05-22 22:13:20 +00:00
|
|
|
|
call SlotMachine_377fe
|
|
|
|
|
|
|
|
|
|
SlotMachine_377ef: ; 377ef (d:77ef)
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld hl, wTileMap + $53
|
2014-05-22 22:13:20 +00:00
|
|
|
|
call SlotMachine_377fe
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld hl, wTileMap + $a3
|
2014-05-22 22:13:20 +00:00
|
|
|
|
call SlotMachine_377fe
|
|
|
|
|
|
|
|
|
|
SlotMachine_377fb: ; 377fb (d:77fb)
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld hl, wTileMap + $7b
|
2014-05-22 22:13:20 +00:00
|
|
|
|
|
|
|
|
|
SlotMachine_377fe: ; 377fe (d:77fe)
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld a, [wd08a]
|
2014-05-22 22:13:20 +00:00
|
|
|
|
ld [hl], a
|
|
|
|
|
ld bc, $000d
|
|
|
|
|
add hl, bc
|
|
|
|
|
ld [hl], a
|
|
|
|
|
ld bc, $0007
|
|
|
|
|
add hl, bc
|
|
|
|
|
inc a
|
|
|
|
|
ld [hl], a
|
|
|
|
|
ld bc, $000d
|
|
|
|
|
add hl, bc
|
|
|
|
|
ld [hl], a
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
SlotMachine_37813: ; 37813 (d:7813)
|
|
|
|
|
ld bc, SlotMachineWheel1
|
|
|
|
|
ld de, wTrainerEngageDistance
|
|
|
|
|
ld hl, wOAMBuffer
|
|
|
|
|
ld a, $30
|
|
|
|
|
ld [W_BASECOORDX], a
|
|
|
|
|
jr SlotMachine_37841
|
|
|
|
|
|
|
|
|
|
SlotMachine_37823: ; 37823 (d:7823)
|
|
|
|
|
ld bc, SlotMachineWheel2
|
|
|
|
|
ld de, wTrainerFacingDirection
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld hl, wOAMBuffer + $30
|
2014-05-22 22:13:20 +00:00
|
|
|
|
ld a, $50
|
|
|
|
|
ld [W_BASECOORDX], a
|
|
|
|
|
jr SlotMachine_37841
|
|
|
|
|
|
|
|
|
|
SlotMachine_37833: ; 37833 (d:7833)
|
|
|
|
|
ld bc, SlotMachineWheel3
|
|
|
|
|
ld de, wTrainerScreenY
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld hl, wOAMBuffer + $60
|
2014-05-22 22:13:20 +00:00
|
|
|
|
ld a, $70
|
|
|
|
|
ld [W_BASECOORDX], a
|
|
|
|
|
|
|
|
|
|
SlotMachine_37841: ; 37841 (d:7841)
|
|
|
|
|
ld a, $58
|
|
|
|
|
ld [W_BASECOORDY], a
|
|
|
|
|
push de
|
|
|
|
|
ld a, [de]
|
|
|
|
|
ld d, b
|
|
|
|
|
add c
|
|
|
|
|
ld e, a
|
|
|
|
|
jr nc, SlotMachine_3784e
|
|
|
|
|
inc d
|
|
|
|
|
|
|
|
|
|
SlotMachine_3784e: ; 3784e (d:784e)
|
|
|
|
|
ld a, [W_BASECOORDY]
|
|
|
|
|
ld [hli], a
|
|
|
|
|
ld a, [W_BASECOORDX]
|
|
|
|
|
ld [hli], a
|
|
|
|
|
ld a, [de]
|
|
|
|
|
ld [hli], a
|
|
|
|
|
ld a, $80
|
|
|
|
|
ld [hli], a
|
|
|
|
|
ld a, [W_BASECOORDY]
|
|
|
|
|
ld [hli], a
|
|
|
|
|
ld a, [W_BASECOORDX]
|
|
|
|
|
add $8
|
|
|
|
|
ld [hli], a
|
|
|
|
|
ld a, [de]
|
|
|
|
|
inc a
|
|
|
|
|
ld [hli], a
|
|
|
|
|
ld a, $80
|
|
|
|
|
ld [hli], a
|
|
|
|
|
inc de
|
|
|
|
|
ld a, [W_BASECOORDY]
|
|
|
|
|
sub $8
|
|
|
|
|
ld [W_BASECOORDY], a
|
|
|
|
|
cp $28
|
|
|
|
|
jr nz, SlotMachine_3784e
|
|
|
|
|
pop de
|
|
|
|
|
ld a, [de]
|
|
|
|
|
inc a
|
|
|
|
|
cp $1e
|
|
|
|
|
jr nz, .skip
|
|
|
|
|
xor a
|
|
|
|
|
.skip
|
|
|
|
|
ld [de], a
|
|
|
|
|
ret
|
|
|
|
|
|
|
|
|
|
SlotMachine_37882: ; 37882 (d:7882)
|
|
|
|
|
call DelayFrame
|
2014-05-25 18:21:48 +00:00
|
|
|
|
call JoypadLowSensitivity
|
2014-08-31 02:48:49 +00:00
|
|
|
|
ld a, [hJoy5]
|
2014-05-22 22:13:20 +00:00
|
|
|
|
and $1
|
|
|
|
|
ret z
|
|
|
|
|
ld hl, wTrainerSpriteOffset
|
|
|
|
|
ld a, [hl]
|
|
|
|
|
dec a
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld de, wcd4d
|
2014-05-22 22:13:20 +00:00
|
|
|
|
jr z, .skip
|
|
|
|
|
dec a
|
2014-05-26 21:04:56 +00:00
|
|
|
|
ld de, wcd4e
|
2014-05-22 22:13:20 +00:00
|
|
|
|
jr z, .skip
|
|
|
|
|
.loop
|
|
|
|
|
inc [hl]
|
|
|
|
|
ld a, (SFX_1f_64 - SFX_Headers_1f) / 3
|
|
|
|
|
jp PlaySound
|
|
|
|
|
.skip
|
|
|
|
|
ld a, [de]
|
|
|
|
|
and a
|
|
|
|
|
ret nz
|
|
|
|
|
jr .loop
|
|
|
|
|
|
|
|
|
|
LoadSlotMachineTiles: ; 378a8 (d:78a8)
|
|
|
|
|
call DisableLCD
|
|
|
|
|
ld hl, SlotMachineTiles2
|
2014-05-29 08:31:46 +00:00
|
|
|
|
ld de, vChars0
|
|
|
|
|
ld bc, $1c0
|
2014-05-22 22:13:20 +00:00
|
|
|
|
ld a, BANK(SlotMachineTiles2)
|
|
|
|
|
call FarCopyData2
|
|
|
|
|
ld hl, SlotMachineTiles1
|
2014-05-29 08:31:46 +00:00
|
|
|
|
ld de, vChars2
|
|
|
|
|
ld bc, $250
|
2014-05-22 22:13:20 +00:00
|
|
|
|
ld a, BANK(SlotMachineTiles1)
|
|
|
|
|
call FarCopyData2
|
|
|
|
|
ld hl, SlotMachineTiles2
|
2014-05-29 08:31:46 +00:00
|
|
|
|
ld de, vChars2 + $250
|
|
|
|
|
ld bc, $1c0
|
2014-05-22 22:13:20 +00:00
|
|
|
|
ld a, BANK(SlotMachineTiles2)
|
|
|
|
|
call FarCopyData2
|
|
|
|
|
ld hl, SlotMachineMap
|
|
|
|
|
ld de, wTileMap
|
|
|
|
|
ld bc, $00f0
|
|
|
|
|
call CopyData
|
|
|
|
|
call EnableLCD
|
|
|
|
|
ld hl, wTrainerEngageDistance
|
|
|
|
|
ld a, $1c
|
|
|
|
|
ld [hli], a
|
|
|
|
|
ld [hli], a
|
|
|
|
|
ld [hl], a
|
|
|
|
|
call SlotMachine_37813
|
|
|
|
|
call SlotMachine_37823
|
|
|
|
|
jp SlotMachine_37833
|
|
|
|
|
|
|
|
|
|
SlotMachineMap: ; 378f5 (d:78f5)
|
|
|
|
|
INCBIN "gfx/tilemaps/slotmachine.map"
|
|
|
|
|
|
|
|
|
|
SLOTS7 EQU $0200
|
|
|
|
|
SLOTSBAR EQU $0604
|
|
|
|
|
SLOTSCHERRY EQU $0A08
|
|
|
|
|
SLOTSFISH EQU $0E0C
|
|
|
|
|
SLOTSBIRD EQU $1210
|
|
|
|
|
SLOTSMOUSE EQU $1614
|
|
|
|
|
|
|
|
|
|
INCLUDE "data/slot_machine_wheels.asm"
|
|
|
|
|
|
|
|
|
|
SlotMachineTiles1: ; 37a51 (d:7a51)
|
2014-10-17 08:42:32 +00:00
|
|
|
|
IF DEF(_RED)
|
2014-05-22 22:13:20 +00:00
|
|
|
|
INCBIN "gfx/red/slotmachine1.2bpp"
|
|
|
|
|
ENDC
|
2014-10-17 08:42:32 +00:00
|
|
|
|
IF DEF(_BLUE)
|
2014-05-22 22:13:20 +00:00
|
|
|
|
INCBIN "gfx/blue/slotmachine1.2bpp"
|
|
|
|
|
ENDC
|
2014-10-21 07:31:34 +00:00
|
|
|
|
IF DEF(_YELLOW)
|
|
|
|
|
INCBIN "gfx/yellow/slotmachine1.2bpp"
|
|
|
|
|
ENDC
|