summaryrefslogtreecommitdiff
path: root/engine/events
diff options
context:
space:
mode:
Diffstat (limited to 'engine/events')
-rwxr-xr-xengine/events/fruit_trees.asm116
1 files changed, 116 insertions, 0 deletions
diff --git a/engine/events/fruit_trees.asm b/engine/events/fruit_trees.asm
new file mode 100755
index 00000000..0177eb6f
--- /dev/null
+++ b/engine/events/fruit_trees.asm
@@ -0,0 +1,116 @@
+FruitTreeScript::
+ callasm GetCurTreeFruit
+ opentext
+ readmem wCurFruit
+ getitemname STRING_BUFFER_3, USE_SCRIPT_VAR
+ writetext FruitBearingTreeText
+ promptbutton
+ callasm TryResetFruitTrees
+ callasm CheckFruitTree
+ iffalse .fruit
+ writetext NothingHereText
+ waitbutton
+ sjump .end
+
+.fruit
+ writetext HeyItsFruitText
+ readmem wCurFruit
+ giveitem ITEM_FROM_MEM
+ iffalse .packisfull
+ promptbutton
+ writetext ObtainedFruitText
+ callasm PickedFruitTree
+ specialsound
+ itemnotify
+ sjump .end
+
+.packisfull
+ promptbutton
+ writetext FruitPackIsFullText
+ waitbutton
+
+.end
+ closetext
+ end
+
+GetCurTreeFruit:
+ ld a, [wCurFruitTree]
+ dec a
+ call GetFruitTreeItem
+ ld [wCurFruit], a
+ ret
+
+TryResetFruitTrees:
+ ld hl, wDailyFlags1
+ bit DAILYFLAGS1_ALL_FRUIT_TREES_F, [hl]
+ ret nz
+ jp ResetFruitTrees
+
+CheckFruitTree:
+ ld b, 2
+ call GetFruitTreeFlag
+ ld a, c
+ ld [wScriptVar], a
+ ret
+
+PickedFruitTree:
+ ld b, 1
+ jp GetFruitTreeFlag
+
+ResetFruitTrees:
+ xor a
+ ld hl, wFruitTreeFlags
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+ ld hl, wDailyFlags1
+ set DAILYFLAGS1_ALL_FRUIT_TREES_F, [hl]
+ ret
+
+GetFruitTreeFlag:
+ push hl
+ push de
+ ld a, [wCurFruitTree]
+ dec a
+ ld e, a
+ ld d, 0
+ ld hl, wFruitTreeFlags
+ call FlagAction
+ pop de
+ pop hl
+ ret
+
+GetFruitTreeItem:
+ push hl
+ push de
+ ld e, a
+ ld d, 0
+ ld hl, FruitTreeItems
+ add hl, de
+ ld a, [hl]
+ pop de
+ pop hl
+ ret
+
+INCLUDE "data/items/fruit_trees.asm"
+
+FruitBearingTreeText:
+ text_far _FruitBearingTreeText
+ text_end
+
+HeyItsFruitText:
+ text_far _HeyItsFruitText
+ text_end
+
+ObtainedFruitText:
+ text_far _ObtainedFruitText
+ text_end
+
+FruitPackIsFullText:
+ text_far _FruitPackIsFullText
+ text_end
+
+NothingHereText:
+ text_far _NothingHereText
+ text_end