Gen 5 Repel system

Also used in PureRGB. Gives the player the option to use another Repel after the last one runs out.

I had to remove some debug features in order to fit it in, but it won't have an effect on the regular game. Hopefully.
This commit is contained in:
Martha Schilling 2024-04-15 13:01:52 +01:00
parent 2d24f19ba6
commit f675c1ad9b
8 changed files with 68 additions and 14 deletions

View file

@ -16,3 +16,23 @@ GetQuantityOfItemInBag:
.notInBag
ld b, 0
ret
GetIndexOfItemInBag:
; In: b = item ID
; Out: b = index of item in bag (FF if not)
call GetPredefRegisters
ld hl, wBagItems - 1
ld c, -1
.loop
inc c
inc hl
ld a, [hli]
cp $ff
jr z, .notInBag
cp b
jr nz, .loop
ld b, c
ret
.notInBag
ld b, a
ret

View file

@ -0,0 +1,41 @@
UseAnotherRepel::
ld b, REPEL
push bc
call IsItemInBag
pop bc
jr nz, .checkUse
ld b, SUPER_REPEL
push bc
call IsItemInBag
pop bc
jr nz, .checkUse
ld b, MAX_REPEL
push bc
call IsItemInBag
pop bc
jr nz, .checkUse
jr .done
.checkUse
push bc
ld hl, RepelUseAnotherText
call PrintText
call YesNoChoice
pop bc
ld a, [wCurrentMenuItem]
and a
jr nz, .done
ld a, b
ld [wcf91], a ;load item to be used
ld [wd11e], a ;load item so its name can be grabbed
predef GetIndexOfItemInBag
ld a, b
ld [wWhichPokemon], a ; load item index to be deleted when used
call GetItemName ;get the item name into de register
call CopyToStringBuffer ; copy name from de to wcf4b so it shows up in text
call UseItem ;use the item
.done
ret
RepelUseAnotherText:
text_far _RepelUseAnotherText
text_end