mirror of
https://github.com/pret/pokered.git
synced 2024-10-23 06:58:24 +00:00
269 lines
4.9 KiB
NASM
Executable file
269 lines
4.9 KiB
NASM
Executable file
DayCareMScript: ; 5624f (15:624f)
|
|
jp EnableAutoTextBoxDrawing
|
|
|
|
DayCareMTextPointers: ; 56252 (15:6252)
|
|
dw DayCareMText1
|
|
|
|
DayCareMText1: ; 56254 (15:6254)
|
|
TX_ASM
|
|
call SaveScreenTilesToBuffer2
|
|
ld a, [wDayCareInUse]
|
|
and a
|
|
jp nz, .daycareInUse
|
|
ld hl, DayCareIntroText
|
|
call PrintText
|
|
call YesNoChoice
|
|
ld a, [wCurrentMenuItem]
|
|
and a
|
|
ld hl, DayCareComeAgainText
|
|
jp nz, .done
|
|
ld a, [wPartyCount]
|
|
dec a
|
|
ld hl, DayCareOnlyHaveOneMonText
|
|
jp z, .done
|
|
ld hl, DayCareWhichMonText
|
|
call PrintText
|
|
xor a
|
|
ld [wUpdateSpritesEnabled], a
|
|
ld [wPartyMenuTypeOrMessageID], a
|
|
ld [wMenuItemToSwap], a
|
|
call DisplayPartyMenu
|
|
push af
|
|
call GBPalWhiteOutWithDelay3
|
|
call RestoreScreenTilesAndReloadTilePatterns
|
|
call LoadGBPal
|
|
pop af
|
|
ld hl, DayCareAllRightThenText
|
|
jp c, .done
|
|
callab KnowsHMMove
|
|
ld hl, DayCareCantAcceptMonWithHMText
|
|
jp c, .done
|
|
xor a
|
|
ld [wPartyAndBillsPCSavedMenuItem], a
|
|
ld a, [wWhichPokemon]
|
|
ld hl, wPartyMonNicks
|
|
call GetPartyMonName
|
|
ld hl, DayCareWillLookAfterMonText
|
|
call PrintText
|
|
ld a, 1
|
|
ld [wDayCareInUse], a
|
|
ld a, PARTY_TO_DAYCARE
|
|
ld [wMoveMonType], a
|
|
call MoveMon
|
|
xor a
|
|
ld [wRemoveMonFromBox], a
|
|
call RemovePokemon
|
|
ld a, [wcf91]
|
|
call PlayCry
|
|
ld hl, DayCareComeSeeMeInAWhileText
|
|
jp .done
|
|
|
|
.daycareInUse
|
|
xor a
|
|
ld hl, wDayCareMonName
|
|
call GetPartyMonName
|
|
ld a, DAYCARE_DATA
|
|
ld [wMonDataLocation], a
|
|
call LoadMonData
|
|
callab CalcLevelFromExperience
|
|
ld a, d
|
|
cp MAX_LEVEL
|
|
jr c, .skipCalcExp
|
|
|
|
ld d, MAX_LEVEL
|
|
callab CalcExperience
|
|
ld hl, wDayCareMonExp
|
|
ld a, [hExperience]
|
|
ld [hli], a
|
|
ld a, [hExperience + 1]
|
|
ld [hli], a
|
|
ld a, [hExperience + 2]
|
|
ld [hl], a
|
|
ld d, MAX_LEVEL
|
|
|
|
.skipCalcExp
|
|
xor a
|
|
ld [wDayCareNumLevelsGrown], a
|
|
ld hl, wDayCareMonBoxLevel
|
|
ld a, [hl]
|
|
ld [wDayCareStartLevel], a
|
|
cp d
|
|
ld [hl], d
|
|
ld hl, DayCareMonNeedsMoreTimeText
|
|
jr z, .next
|
|
ld a, [wDayCareStartLevel]
|
|
ld b, a
|
|
ld a, d
|
|
sub b
|
|
ld [wDayCareNumLevelsGrown], a
|
|
ld hl, DayCareMonHasGrownText
|
|
|
|
.next
|
|
call PrintText
|
|
ld a, [wPartyCount]
|
|
cp PARTY_LENGTH
|
|
ld hl, DayCareNoRoomForMonText
|
|
jp z, .leaveMonInDayCare
|
|
ld de, wDayCareTotalCost
|
|
xor a
|
|
ld [de], a
|
|
inc de
|
|
ld [de], a
|
|
ld hl, wDayCarePerLevelCost
|
|
ld a, $1
|
|
ld [hli], a
|
|
ld [hl], $0
|
|
ld a, [wDayCareNumLevelsGrown]
|
|
inc a
|
|
ld b, a
|
|
ld c, 2
|
|
.calcPriceLoop
|
|
push hl
|
|
push de
|
|
push bc
|
|
predef AddBCDPredef
|
|
pop bc
|
|
pop de
|
|
pop hl
|
|
dec b
|
|
jr nz, .calcPriceLoop
|
|
ld hl, DayCareOweMoneyText
|
|
call PrintText
|
|
ld a, MONEY_BOX
|
|
ld [wTextBoxID], a
|
|
call DisplayTextBoxID
|
|
call YesNoChoice
|
|
ld hl, DayCareAllRightThenText
|
|
ld a, [wCurrentMenuItem]
|
|
and a
|
|
jp nz, .leaveMonInDayCare
|
|
ld hl, wDayCareTotalCost
|
|
ld [hMoney], a
|
|
ld a, [hli]
|
|
ld [hMoney + 1], a
|
|
ld a, [hl]
|
|
ld [hMoney + 2], a
|
|
call HasEnoughMoney
|
|
jr nc, .enoughMoney
|
|
ld hl, DayCareNotEnoughMoneyText
|
|
jp .leaveMonInDayCare
|
|
|
|
.enoughMoney
|
|
xor a
|
|
ld [wDayCareInUse], a
|
|
ld hl, wDayCareNumLevelsGrown
|
|
ld [hli], a
|
|
inc hl
|
|
ld de, wPlayerMoney + 2
|
|
ld c, $3
|
|
predef SubBCDPredef
|
|
ld a, SFX_PURCHASE
|
|
call PlaySoundWaitForCurrent
|
|
ld a, MONEY_BOX
|
|
ld [wTextBoxID], a
|
|
call DisplayTextBoxID
|
|
ld hl, DayCareHeresYourMonText
|
|
call PrintText
|
|
ld a, DAYCARE_TO_PARTY
|
|
ld [wMoveMonType], a
|
|
call MoveMon
|
|
ld a, [wDayCareMonSpecies]
|
|
ld [wcf91], a
|
|
ld a, [wPartyCount]
|
|
dec a
|
|
push af
|
|
ld bc, wPartyMon2 - wPartyMon1
|
|
push bc
|
|
ld hl, wPartyMon1Moves
|
|
call AddNTimes
|
|
ld d, h
|
|
ld e, l
|
|
ld a, 1
|
|
ld [wLearningMovesFromDayCare], a
|
|
predef WriteMonMoves
|
|
pop bc
|
|
pop af
|
|
|
|
; set mon's HP to max
|
|
ld hl, wPartyMon1HP
|
|
call AddNTimes
|
|
ld d, h
|
|
ld e, l
|
|
ld bc, wPartyMon1MaxHP - wPartyMon1HP
|
|
add hl, bc
|
|
ld a, [hli]
|
|
ld [de], a
|
|
inc de
|
|
ld a, [hl]
|
|
ld [de], a
|
|
|
|
ld a, [wcf91]
|
|
call PlayCry
|
|
ld hl, DayCareGotMonBackText
|
|
jr .done
|
|
|
|
.leaveMonInDayCare
|
|
ld a, [wDayCareStartLevel]
|
|
ld [wDayCareMonBoxLevel], a
|
|
|
|
.done
|
|
call PrintText
|
|
jp TextScriptEnd
|
|
|
|
DayCareIntroText: ; 5640f (15:640f)
|
|
TX_FAR _DayCareIntroText
|
|
db "@"
|
|
|
|
DayCareWhichMonText: ; 56414 (15:6414)
|
|
TX_FAR _DayCareWhichMonText
|
|
db "@"
|
|
|
|
DayCareWillLookAfterMonText: ; 56419 (15:6419)
|
|
TX_FAR _DayCareWillLookAfterMonText
|
|
db "@"
|
|
|
|
DayCareComeSeeMeInAWhileText: ; 5641e (15:641e)
|
|
TX_FAR _DayCareComeSeeMeInAWhileText
|
|
db "@"
|
|
|
|
DayCareMonHasGrownText: ; 56423 (15:6423)
|
|
TX_FAR _DayCareMonHasGrownText
|
|
db "@"
|
|
|
|
DayCareOweMoneyText: ; 56428 (15:6428)
|
|
TX_FAR _DayCareOweMoneyText
|
|
db "@"
|
|
|
|
DayCareGotMonBackText: ; 5642d (15:642d)
|
|
TX_FAR _DayCareGotMonBackText
|
|
db "@"
|
|
|
|
DayCareMonNeedsMoreTimeText: ; 56432 (15:6432)
|
|
TX_FAR _DayCareMonNeedsMoreTimeText
|
|
db "@"
|
|
|
|
DayCareAllRightThenText: ; 56437 (15:6437)
|
|
TX_FAR _DayCareAllRightThenText
|
|
DayCareComeAgainText: ; 5643b (15:643b)
|
|
TX_FAR _DayCareComeAgainText
|
|
db "@"
|
|
|
|
DayCareNoRoomForMonText: ; 56440 (15:6440)
|
|
TX_FAR _DayCareNoRoomForMonText
|
|
db "@"
|
|
|
|
DayCareOnlyHaveOneMonText: ; 56445 (15:6445)
|
|
TX_FAR _DayCareOnlyHaveOneMonText
|
|
db "@"
|
|
|
|
DayCareCantAcceptMonWithHMText: ; 5644a (15:644a)
|
|
TX_FAR _DayCareCantAcceptMonWithHMText
|
|
db "@"
|
|
|
|
DayCareHeresYourMonText: ; 5644f (15:644f)
|
|
TX_FAR _DayCareHeresYourMonText
|
|
db "@"
|
|
|
|
DayCareNotEnoughMoneyText: ; 56454 (15:6454)
|
|
TX_FAR _DayCareNotEnoughMoneyText
|
|
db "@"
|