aboutsummaryrefslogtreecommitdiffstats
path: root/engine/events/oaks_aide.asm
diff options
context:
space:
mode:
Diffstat (limited to 'engine/events/oaks_aide.asm')
-rwxr-xr-xengine/events/oaks_aide.asm71
1 files changed, 71 insertions, 0 deletions
diff --git a/engine/events/oaks_aide.asm b/engine/events/oaks_aide.asm
new file mode 100755
index 00000000..f5068fda
--- /dev/null
+++ b/engine/events/oaks_aide.asm
@@ -0,0 +1,71 @@
+OaksAideScript:
+ ld hl, OaksAideHiText
+ call PrintText
+ call YesNoChoice
+ ld a, [wCurrentMenuItem]
+ and a
+ jr nz, .choseNo
+ ld hl, wPokedexOwned
+ ld b, wPokedexOwnedEnd - wPokedexOwned
+ call CountSetBits
+ ld a, [wNumSetBits]
+ ld [hOaksAideNumMonsOwned], a
+ ld b, a
+ ld a, [hOaksAideRequirement]
+ cp b
+ jr z, .giveItem
+ jr nc, .notEnoughOwnedMons
+.giveItem
+ ld hl, OaksAideHereYouGoText
+ call PrintText
+ ld a, [hOaksAideRewardItem]
+ ld b, a
+ ld c, 1
+ call GiveItem
+ jr nc, .bagFull
+ ld hl, OaksAideGotItemText
+ call PrintText
+ ld a, $1
+ jr .done
+.bagFull
+ ld hl, OaksAideNoRoomText
+ call PrintText
+ xor a
+ jr .done
+.notEnoughOwnedMons
+ ld hl, OaksAideUhOhText
+ call PrintText
+ ld a, $80
+ jr .done
+.choseNo
+ ld hl, OaksAideComeBackText
+ call PrintText
+ ld a, $ff
+.done
+ ld [hOaksAideResult], a
+ ret
+
+OaksAideHiText:
+ TX_FAR _OaksAideHiText
+ db "@"
+
+OaksAideUhOhText:
+ TX_FAR _OaksAideUhOhText
+ db "@"
+
+OaksAideComeBackText:
+ TX_FAR _OaksAideComeBackText
+ db "@"
+
+OaksAideHereYouGoText:
+ TX_FAR _OaksAideHereYouGoText
+ db "@"
+
+OaksAideGotItemText:
+ TX_FAR _OaksAideGotItemText
+ TX_SFX_ITEM_1
+ db "@"
+
+OaksAideNoRoomText:
+ TX_FAR _OaksAideNoRoomText
+ db "@"