123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256 |
- CeladonMartRoofScript:
- jp EnableAutoTextBoxDrawing
- CeladonMartRoofScript_GetDrinksInBag:
- ; construct a list of all drinks in the player's bag
- xor a
- ld [wFilteredBagItemsCount], a
- ld de, wFilteredBagItems
- ld hl, CeladonMartRoofDrinkList
- .loop
- ld a, [hli]
- and a
- jr z, .done
- push hl
- push de
- ld [wd11e], a
- ld b, a
- predef GetQuantityOfItemInBag
- pop de
- pop hl
- ld a, b
- and a
- jr z, .loop ; if the item isn't in the bag
- ld a, [wd11e]
- ld [de], a
- inc de
- push hl
- ld hl, wFilteredBagItemsCount
- inc [hl]
- pop hl
- jr .loop
- .done
- ld a, $ff
- ld [de], a
- ret
- CeladonMartRoofDrinkList:
- db FRESH_WATER
- db SODA_POP
- db LEMONADE
- db $00
- CeladonMartRoofScript_GiveDrinkToGirl:
- ld hl, wd730
- set 6, [hl]
- ld hl, CeladonMartRoofText_484ee
- call PrintText
- xor a
- ld [wCurrentMenuItem], a
- ld a, A_BUTTON | B_BUTTON
- ld [wMenuWatchedKeys], a
- ld a, [wFilteredBagItemsCount]
- dec a
- ld [wMaxMenuItem], a
- ld a, 2
- ld [wTopMenuItemY], a
- ld a, 1
- ld [wTopMenuItemX], a
- ld a, [wFilteredBagItemsCount]
- dec a
- ld bc, 2
- ld hl, 3
- call AddNTimes
- dec l
- ld b, l
- ld c, 12
- coord hl, 0, 0
- call TextBoxBorder
- call UpdateSprites
- call CeladonMartRoofScript_PrintDrinksInBag
- ld hl, wd730
- res 6, [hl]
- call HandleMenuInput
- bit 1, a ; pressed b
- ret nz
- ld hl, wFilteredBagItems
- ld a, [wCurrentMenuItem]
- ld d, 0
- ld e, a
- add hl, de
- ld a, [hl]
- ld [hItemToRemoveID], a
- cp FRESH_WATER
- jr z, .gaveFreshWater
- cp SODA_POP
- jr z, .gaveSodaPop
- ; gave Lemonade
- CheckEvent EVENT_GOT_TM49
- jr nz, .alreadyGaveDrink
- ld hl, CeladonMartRoofText_48515
- call PrintText
- call RemoveItemByIDBank12
- lb bc, TM_49, 1
- call GiveItem
- jr nc, .bagFull
- ld hl, ReceivedTM49Text
- call PrintText
- SetEvent EVENT_GOT_TM49
- ret
- .gaveSodaPop
- CheckEvent EVENT_GOT_TM48
- jr nz, .alreadyGaveDrink
- ld hl, CeladonMartRoofText_48504
- call PrintText
- call RemoveItemByIDBank12
- lb bc, TM_48, 1
- call GiveItem
- jr nc, .bagFull
- ld hl, CeladonMartRoofText_4850a
- call PrintText
- SetEvent EVENT_GOT_TM48
- ret
- .gaveFreshWater
- CheckEvent EVENT_GOT_TM13
- jr nz, .alreadyGaveDrink
- ld hl, CeladonMartRoofText_484f3
- call PrintText
- call RemoveItemByIDBank12
- lb bc, TM_13, 1
- call GiveItem
- jr nc, .bagFull
- ld hl, CeladonMartRoofText_484f9
- call PrintText
- SetEvent EVENT_GOT_TM13
- ret
- .bagFull
- ld hl, CeladonMartRoofText_48526
- jp PrintText
- .alreadyGaveDrink
- ld hl, CeladonMartRoofText_4852c
- jp PrintText
- RemoveItemByIDBank12:
- jpba RemoveItemByID
- CeladonMartRoofText_484ee:
- TX_FAR _CeladonMartRoofText_484ee
- db "@"
- CeladonMartRoofText_484f3:
- TX_FAR _CeladonMartRoofText_484f3
- TX_WAIT
- db "@"
- CeladonMartRoofText_484f9:
- TX_FAR _CeladonMartRoofText_484f9
- TX_SFX_ITEM_1
- TX_FAR _CeladonMartRoofText_484fe
- TX_WAIT
- db "@"
- CeladonMartRoofText_48504:
- TX_FAR _CeladonMartRoofText_48504
- TX_WAIT
- db "@"
- CeladonMartRoofText_4850a:
- TX_FAR _CeladonMartRoofText_4850a
- TX_SFX_ITEM_1
- TX_FAR _CeladonMartRoofText_4850f
- TX_WAIT
- db "@"
- CeladonMartRoofText_48515:
- TX_FAR _CeladonMartRoofText_48515
- TX_WAIT
- db "@"
- ReceivedTM49Text:
- TX_FAR _ReceivedTM49Text
- TX_SFX_ITEM_1
- TX_FAR _CeladonMartRoofText_48520
- TX_WAIT
- db "@"
- CeladonMartRoofText_48526:
- TX_FAR _CeladonMartRoofText_48526
- TX_WAIT
- db "@"
- CeladonMartRoofText_4852c:
- TX_FAR _CeladonMartRoofText_4852c
- TX_WAIT
- db "@"
- CeladonMartRoofScript_PrintDrinksInBag:
- ld hl, wFilteredBagItems
- xor a
- ld [hItemCounter], a
- .loop
- ld a, [hli]
- cp $ff
- ret z
- push hl
- ld [wd11e], a
- call GetItemName
- coord hl, 2, 2
- ld a, [hItemCounter]
- ld bc, SCREEN_WIDTH * 2
- call AddNTimes
- ld de, wcd6d
- call PlaceString
- ld hl, hItemCounter
- inc [hl]
- pop hl
- jr .loop
- CeladonMartRoofTextPointers:
- dw CeladonMartRoofText1
- dw CeladonMartRoofText2
- dw CeladonMartRoofText5
- dw CeladonMartRoofText5
- dw CeladonMartRoofText5
- dw CeladonMartRoofText6
- CeladonMartRoofText1:
- TX_FAR _CeladonMartRoofText1
- db "@"
- CeladonMartRoofText2:
- TX_ASM
- call CeladonMartRoofScript_GetDrinksInBag
- ld a, [wFilteredBagItemsCount]
- and a
- jr z, .noDrinksInBag
- ld a, 1
- ld [wDoNotWaitForButtonPressAfterDisplayingText], a
- ld hl, CeladonMartRoofText4
- call PrintText
- call YesNoChoice
- ld a, [wCurrentMenuItem]
- and a
- jr nz, .done
- call CeladonMartRoofScript_GiveDrinkToGirl
- jr .done
- .noDrinksInBag
- ld hl, CeladonMartRoofText3
- call PrintText
- .done
- jp TextScriptEnd
- CeladonMartRoofText3:
- TX_FAR _CeladonMartRoofText_48598
- db "@"
- CeladonMartRoofText4:
- TX_FAR _CeladonMartRoofText4
- db "@"
- CeladonMartRoofText5:
- TX_VENDING_MACHINE
- CeladonMartRoofText6:
- TX_FAR _CeladonMartRoofText6
- db "@"
|