pokered/scripts/daycarem.asm

270 lines
4.9 KiB
NASM
Raw Normal View History

2014-05-18 18:19:10 +00:00
DayCareMScript: ; 5624f (15:624f)
jp EnableAutoTextBoxDrawing
DayCareMTextPointers: ; 56252 (15:6252)
dw DayCareMText1
DayCareMText1: ; 56254 (15:6254)
2015-07-03 19:58:50 +00:00
TX_ASM
2014-05-18 18:19:10 +00:00
call SaveScreenTilesToBuffer2
ld a, [W_DAYCARE_IN_USE]
and a
2015-07-19 03:49:52 +00:00
jp nz, .daycareInUse
ld hl, DayCareIntroText
2014-05-18 18:19:10 +00:00
call PrintText
call YesNoChoice
ld a, [wCurrentMenuItem]
2014-05-18 18:19:10 +00:00
and a
2015-07-19 03:49:52 +00:00
ld hl, DayCareComeAgainText
jp nz, .done
ld a, [wPartyCount]
2014-05-18 18:19:10 +00:00
dec a
2015-07-19 03:49:52 +00:00
ld hl, DayCareOnlyHaveOneMonText
jp z, .done
ld hl, DayCareWhichMonText
2014-05-18 18:19:10 +00:00
call PrintText
xor a
2014-09-13 07:50:56 +00:00
ld [wUpdateSpritesEnabled], a
ld [wPartyMenuTypeOrMessageID], a
2014-08-09 05:39:13 +00:00
ld [wMenuItemToSwap], a
2014-05-18 18:19:10 +00:00
call DisplayPartyMenu
push af
call GBPalWhiteOutWithDelay3
call RestoreScreenTilesAndReloadTilePatterns
2014-05-18 18:19:10 +00:00
call LoadGBPal
pop af
2015-07-19 03:49:52 +00:00
ld hl, DayCareAllRightThenText
jp c, .done
2015-07-16 03:04:58 +00:00
callab KnowsHMMove
2015-07-19 03:49:52 +00:00
ld hl, DayCareCantAcceptMonWithHMText
jp c, .done
2014-05-18 18:19:10 +00:00
xor a
2015-07-16 03:04:58 +00:00
ld [wPartyAndBillsPCSavedMenuItem], a
2014-05-18 18:19:10 +00:00
ld a, [wWhichPokemon]
ld hl, wPartyMonNicks
2014-05-18 18:19:10 +00:00
call GetPartyMonName
2015-07-19 03:49:52 +00:00
ld hl, DayCareWillLookAfterMonText
2014-05-18 18:19:10 +00:00
call PrintText
ld a, 1
2014-05-18 18:19:10 +00:00
ld [W_DAYCARE_IN_USE], a
ld a, PARTY_TO_DAYCARE
ld [wMoveMonType], a
2015-07-13 06:00:48 +00:00
call MoveMon
2014-05-18 18:19:10 +00:00
xor a
ld [wRemoveMonFromBox], a
2014-05-18 18:19:10 +00:00
call RemovePokemon
ld a, [wcf91]
2014-05-18 18:19:10 +00:00
call PlayCry
2015-07-19 03:49:52 +00:00
ld hl, DayCareComeSeeMeInAWhileText
jp .done
2014-05-18 18:19:10 +00:00
2015-07-19 03:49:52 +00:00
.daycareInUse
2014-05-18 18:19:10 +00:00
xor a
ld hl, W_DAYCAREMONNAME
call GetPartyMonName
2015-07-16 03:04:58 +00:00
ld a, DAYCARE_DATA
ld [wMonDataLocation], a
2014-05-18 18:19:10 +00:00
call LoadMonData
2014-08-09 05:39:13 +00:00
callab CalcLevelFromExperience
2014-05-18 18:19:10 +00:00
ld a, d
cp MAX_LEVEL
2015-07-19 03:49:52 +00:00
jr c, .skipCalcExp
ld d, MAX_LEVEL
callab CalcExperience
ld hl, wDayCareMonExp
2015-07-19 03:49:52 +00:00
ld a, [hExperience]
2014-05-18 18:19:10 +00:00
ld [hli], a
2015-07-19 03:49:52 +00:00
ld a, [hExperience + 1]
2014-05-18 18:19:10 +00:00
ld [hli], a
2015-07-19 03:49:52 +00:00
ld a, [hExperience + 2]
2014-05-18 18:19:10 +00:00
ld [hl], a
ld d, MAX_LEVEL
2014-05-18 18:19:10 +00:00
2015-07-19 03:49:52 +00:00
.skipCalcExp
2014-05-18 18:19:10 +00:00
xor a
2015-07-19 03:49:52 +00:00
ld [wDayCareNumLevelsGrown], a
ld hl, wDayCareMonBoxLevel
2014-05-18 18:19:10 +00:00
ld a, [hl]
2015-07-19 03:49:52 +00:00
ld [wDayCareStartLevel], a
2014-05-18 18:19:10 +00:00
cp d
ld [hl], d
2015-07-19 03:49:52 +00:00
ld hl, DayCareMonNeedsMoreTimeText
jr z, .next
ld a, [wDayCareStartLevel]
2014-05-18 18:19:10 +00:00
ld b, a
ld a, d
sub b
2015-07-19 03:49:52 +00:00
ld [wDayCareNumLevelsGrown], a
ld hl, DayCareMonHasGrownText
2014-05-18 18:19:10 +00:00
2015-07-19 03:49:52 +00:00
.next
2014-05-18 18:19:10 +00:00
call PrintText
ld a, [wPartyCount]
cp PARTY_LENGTH
2015-07-19 03:49:52 +00:00
ld hl, DayCareNoRoomForMonText
2014-05-18 18:19:10 +00:00
jp z, .asm_56403
ld de, wTrainerFacingDirection
xor a
ld [de], a
inc de
ld [de], a
ld hl, wTrainerScreenX
ld a, $1
ld [hli], a
ld [hl], $0
2015-07-19 03:49:52 +00:00
ld a, [wDayCareNumLevelsGrown]
2014-05-18 18:19:10 +00:00
inc a
ld b, a
ld c, $2
.asm_56357
push hl
push de
push bc
predef AddBCDPredef
2014-05-18 18:19:10 +00:00
pop bc
pop de
pop hl
dec b
jr nz, .asm_56357
2015-07-19 03:49:52 +00:00
ld hl, DayCareOweMoneyText
2014-05-18 18:19:10 +00:00
call PrintText
ld a, $13
2015-02-07 10:43:08 +00:00
ld [wTextBoxID], a
2014-05-18 18:19:10 +00:00
call DisplayTextBoxID
call YesNoChoice
2015-07-19 03:49:52 +00:00
ld hl, DayCareAllRightThenText
2014-05-18 18:19:10 +00:00
ld a, [wCurrentMenuItem]
and a
jp nz, .asm_56403
ld hl, wTrainerFacingDirection
2015-07-17 08:21:40 +00:00
ld [hMoney], a
2014-05-18 18:19:10 +00:00
ld a, [hli]
2015-07-17 08:21:40 +00:00
ld [hMoney + 1], a
2014-05-18 18:19:10 +00:00
ld a, [hl]
2015-07-17 08:21:40 +00:00
ld [hMoney + 2], a
2014-05-18 18:19:10 +00:00
call HasEnoughMoney
jr nc, .asm_56396
2015-07-19 03:49:52 +00:00
ld hl, DayCareNotEnoughMoneyText
2014-05-18 18:19:10 +00:00
jp .asm_56403
.asm_56396
xor a
ld [W_DAYCARE_IN_USE], a
2015-07-19 03:49:52 +00:00
ld hl, wDayCareNumLevelsGrown
2014-05-18 18:19:10 +00:00
ld [hli], a
inc hl
ld de, wPlayerMoney + 2
2014-05-18 18:19:10 +00:00
ld c, $3
predef SubBCDPredef
2015-07-19 08:46:12 +00:00
ld a, SFX_PURCHASE
2014-05-18 18:19:10 +00:00
call PlaySoundWaitForCurrent
2015-07-13 06:00:48 +00:00
ld a, MONEY_BOX
2015-02-07 10:43:08 +00:00
ld [wTextBoxID], a
2014-05-18 18:19:10 +00:00
call DisplayTextBoxID
2015-07-19 03:49:52 +00:00
ld hl, DayCareHeresYourMonText
2014-05-18 18:19:10 +00:00
call PrintText
ld a, DAYCARE_TO_PARTY
ld [wMoveMonType], a
2015-07-13 06:00:48 +00:00
call MoveMon
ld a, [wDayCareMonSpecies]
ld [wcf91], a
ld a, [wPartyCount]
2014-05-18 18:19:10 +00:00
dec a
push af
ld bc, wPartyMon2 - wPartyMon1
2014-05-18 18:19:10 +00:00
push bc
ld hl, wPartyMon1Moves
2014-05-18 18:19:10 +00:00
call AddNTimes
ld d, h
ld e, l
ld a, 1
2015-07-19 03:49:52 +00:00
ld [wLearningMovesFromDayCare], a
predef WriteMonMoves
2014-05-18 18:19:10 +00:00
pop bc
pop af
2015-07-19 03:49:52 +00:00
; set mon's HP to max
ld hl, wPartyMon1HP
2014-05-18 18:19:10 +00:00
call AddNTimes
ld d, h
ld e, l
ld bc, wPartyMon1MaxHP - wPartyMon1HP
2014-05-18 18:19:10 +00:00
add hl, bc
ld a, [hli]
ld [de], a
inc de
ld a, [hl]
ld [de], a
2015-07-19 03:49:52 +00:00
ld a, [wcf91]
2014-05-18 18:19:10 +00:00
call PlayCry
2015-07-19 03:49:52 +00:00
ld hl, DayCareGotMonBackText
jr .done
2014-05-18 18:19:10 +00:00
.asm_56403
2015-07-19 03:49:52 +00:00
ld a, [wDayCareStartLevel]
ld [wDayCareMonBoxLevel], a
2014-05-18 18:19:10 +00:00
2015-07-19 03:49:52 +00:00
.done
2014-05-18 18:19:10 +00:00
call PrintText
jp TextScriptEnd
2015-07-19 03:49:52 +00:00
DayCareIntroText: ; 5640f (15:640f)
TX_FAR _DayCareIntroText
2014-05-18 18:19:10 +00:00
db "@"
2015-07-19 03:49:52 +00:00
DayCareWhichMonText: ; 56414 (15:6414)
TX_FAR _DayCareWhichMonText
2014-05-18 18:19:10 +00:00
db "@"
2015-07-19 03:49:52 +00:00
DayCareWillLookAfterMonText: ; 56419 (15:6419)
TX_FAR _DayCareWillLookAfterMonText
2014-05-18 18:19:10 +00:00
db "@"
2015-07-19 03:49:52 +00:00
DayCareComeSeeMeInAWhileText: ; 5641e (15:641e)
TX_FAR _DayCareComeSeeMeInAWhileText
2014-05-18 18:19:10 +00:00
db "@"
2015-07-19 03:49:52 +00:00
DayCareMonHasGrownText: ; 56423 (15:6423)
TX_FAR _DayCareMonHasGrownText
2014-05-18 18:19:10 +00:00
db "@"
2015-07-19 03:49:52 +00:00
DayCareOweMoneyText: ; 56428 (15:6428)
TX_FAR _DayCareOweMoneyText
2014-05-18 18:19:10 +00:00
db "@"
2015-07-19 03:49:52 +00:00
DayCareGotMonBackText: ; 5642d (15:642d)
TX_FAR _DayCareGotMonBackText
2014-05-18 18:19:10 +00:00
db "@"
2015-07-19 03:49:52 +00:00
DayCareMonNeedsMoreTimeText: ; 56432 (15:6432)
TX_FAR _DayCareMonNeedsMoreTimeText
2014-05-18 18:19:10 +00:00
db "@"
2015-07-19 03:49:52 +00:00
DayCareAllRightThenText: ; 56437 (15:6437)
TX_FAR _DayCareAllRightThenText
DayCareComeAgainText: ; 5643b (15:643b)
TX_FAR _DayCareComeAgainText
2014-05-18 18:19:10 +00:00
db "@"
2015-07-19 03:49:52 +00:00
DayCareNoRoomForMonText: ; 56440 (15:6440)
TX_FAR _DayCareNoRoomForMonText
2014-05-18 18:19:10 +00:00
db "@"
2015-07-19 03:49:52 +00:00
DayCareOnlyHaveOneMonText: ; 56445 (15:6445)
TX_FAR _DayCareOnlyHaveOneMonText
2014-05-18 18:19:10 +00:00
db "@"
2015-07-19 03:49:52 +00:00
DayCareCantAcceptMonWithHMText: ; 5644a (15:644a)
TX_FAR _DayCareCantAcceptMonWithHMText
2014-05-18 18:19:10 +00:00
db "@"
2015-07-19 03:49:52 +00:00
DayCareHeresYourMonText: ; 5644f (15:644f)
TX_FAR _DayCareHeresYourMonText
2014-05-18 18:19:10 +00:00
db "@"
2015-07-19 03:49:52 +00:00
DayCareNotEnoughMoneyText: ; 56454 (15:6454)
TX_FAR _DayCareNotEnoughMoneyText
2014-05-18 18:19:10 +00:00
db "@"