123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- ActivatePC:
- call SaveScreenTilesToBuffer2
- ld a, SFX_TURN_ON_PC
- call PlaySound
- ld hl, TurnedOnPC1Text
- call PrintText
- call WaitForSoundToFinish
- ld hl, wFlags_0xcd60
- set 3, [hl]
- call LoadScreenTilesFromBuffer2
- call Delay3
- PCMainMenu:
- callba DisplayPCMainMenu
- ld hl, wFlags_0xcd60
- set 5, [hl]
- call HandleMenuInput
- bit 1, a ;if player pressed B
- jp nz, LogOff
- ld a, [wMaxMenuItem]
- cp 2
- jr nz, .next ;if not 2 menu items (not counting log off) (2 occurs before you get the pokedex)
- ld a, [wCurrentMenuItem]
- and a
- jp z, BillsPC ;if current menu item id is 0, it's bills pc
- cp 1
- jr z, .playersPC ;if current menu item id is 1, it's players pc
- jp LogOff ;otherwise, it's 2, and you're logging off
- .next
- cp 3
- jr nz, .next2 ;if not 3 menu items (not counting log off) (3 occurs after you get the pokedex, before you beat the pokemon league)
- ld a, [wCurrentMenuItem]
- and a
- jp z, BillsPC ;if current menu item id is 0, it's bills pc
- cp 1
- jr z, .playersPC ;if current menu item id is 1, it's players pc
- cp 2
- jp z, OaksPC ;if current menu item id is 2, it's oaks pc
- jp LogOff ;otherwise, it's 3, and you're logging off
- .next2
- ld a, [wCurrentMenuItem]
- and a
- jp z, BillsPC ;if current menu item id is 0, it's bills pc
- cp 1
- jr z, .playersPC ;if current menu item id is 1, it's players pc
- cp 2
- jp z, OaksPC ;if current menu item id is 2, it's oaks pc
- cp 3
- jp z, PKMNLeague ;if current menu item id is 3, it's pkmnleague
- jp LogOff ;otherwise, it's 4, and you're logging off
- .playersPC
- ld hl, wFlags_0xcd60
- res 5, [hl]
- set 3, [hl]
- ld a, SFX_ENTER_PC
- call PlaySound
- call WaitForSoundToFinish
- ld hl, AccessedMyPCText
- call PrintText
- callba PlayerPC
- jr ReloadMainMenu
- OaksPC:
- ld a, SFX_ENTER_PC
- call PlaySound
- call WaitForSoundToFinish
- callba OpenOaksPC
- jr ReloadMainMenu
- PKMNLeague:
- ld a, SFX_ENTER_PC
- call PlaySound
- call WaitForSoundToFinish
- callba PKMNLeaguePC
- jr ReloadMainMenu
- BillsPC:
- ld a, SFX_ENTER_PC
- call PlaySound
- call WaitForSoundToFinish
- CheckEvent EVENT_MET_BILL
- jr nz, .billsPC ;if you've met bill, use that bill's instead of someone's
- ld hl, AccessedSomeonesPCText
- jr .printText
- .billsPC
- ld hl, AccessedBillsPCText
- .printText
- call PrintText
- callba BillsPC_
- ReloadMainMenu:
- xor a
- ld [wDoNotWaitForButtonPressAfterDisplayingText], a
- call ReloadMapData
- call UpdateSprites
- jp PCMainMenu
- LogOff:
- ld a, SFX_TURN_OFF_PC
- call PlaySound
- call WaitForSoundToFinish
- ld hl, wFlags_0xcd60
- res 3, [hl]
- res 5, [hl]
- ret
- TurnedOnPC1Text:
- TX_FAR _TurnedOnPC1Text
- db "@"
- AccessedBillsPCText:
- TX_FAR _AccessedBillsPCText
- db "@"
- AccessedSomeonesPCText:
- TX_FAR _AccessedSomeonesPCText
- db "@"
- AccessedMyPCText:
- TX_FAR _AccessedMyPCText
- db "@"
- ; removes one of the specified item ID [hItemToRemoveID] from bag (if existent)
- RemoveItemByID:
- ld hl, wBagItems
- ld a, [hItemToRemoveID]
- ld b, a
- xor a
- ld [hItemToRemoveIndex], a
- .loop
- ld a, [hli]
- cp -1 ; reached terminator?
- ret z
- cp b
- jr z, .foundItem
- inc hl
- ld a, [hItemToRemoveIndex]
- inc a
- ld [hItemToRemoveIndex], a
- jr .loop
- .foundItem
- ld a, $1
- ld [wItemQuantity], a
- ld a, [hItemToRemoveIndex]
- ld [wWhichPokemon], a
- ld hl, wNumBagItems
- jp RemoveItemFromInventory
|