summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorscnorton <scnorton@biociphers.org>2017-09-15 14:26:01 -0400
committerscnorton <scnorton@biociphers.org>2017-09-15 14:26:01 -0400
commit9f6a4be9f05a46031d20ed7a48398147def2643c (patch)
treefe51e39b2794871bf9ed3f2317d2e0225692086f
parent9a13b1f34e8ccb2b4c868a5c7d06ff86210125f2 (diff)
BerryTree
-rw-r--r--asm/battle_transition.s4
-rw-r--r--asm/braille_puzzles.s4
-rw-r--r--asm/field_effect.s40
-rw-r--r--asm/field_effect_helpers.s56
-rw-r--r--asm/field_ground_effect.s24
-rwxr-xr-xasm/field_map_obj.s308
-rw-r--r--asm/field_player_avatar.s4
-rw-r--r--asm/fldeff_80F9BCC.s32
-rw-r--r--asm/fldeff_emotion.s2
-rw-r--r--asm/fldeff_strength.s4
-rw-r--r--asm/fldeff_sweetscent.s4
-rw-r--r--asm/fldeff_teleport.s2
-rw-r--r--asm/map_obj_8097404.s4
-rw-r--r--asm/rom6.s10
-rw-r--r--asm/rom_80C6FA0.s4
-rw-r--r--asm/rom_818E9AC.s10
-rw-r--r--asm/scrcmd.s2
-rw-r--r--asm/trainer_see.s4
-rw-r--r--include/field_effect.h80
-rwxr-xr-xsrc/field_map_obj.c110
-rw-r--r--sym_ewram.txt2
21 files changed, 300 insertions, 410 deletions
diff --git a/asm/battle_transition.s b/asm/battle_transition.s
index 9709fb54f..6406a3f24 100644
--- a/asm/battle_transition.s
+++ b/asm/battle_transition.s
@@ -2151,7 +2151,7 @@ sub_8147018: @ 8147018
ands r5, r0
movs r1, 0
mov r8, r4
- ldr r6, =gUnknown_02038C08
+ ldr r6, =gFieldEffectSpawnParams
_08147046:
lsls r5, 16
asrs r5, 16
@@ -2221,7 +2221,7 @@ _081470C4:
sub_81470D0: @ 81470D0
push {r4,r5,lr}
ldr r0, =gUnknown_085C8E68
- ldr r5, =gUnknown_02038C08
+ ldr r5, =gFieldEffectSpawnParams
movs r2, 0
ldrsh r1, [r5, r2]
movs r3, 0x4
diff --git a/asm/braille_puzzles.s b/asm/braille_puzzles.s
index ceaddbdf0..095b1b793 100644
--- a/asm/braille_puzzles.s
+++ b/asm/braille_puzzles.s
@@ -271,7 +271,7 @@ _0817982E:
sub_8179834: @ 8179834
push {lr}
bl brm_get_pokemon_selection
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
lsls r0, 24
lsrs r0, 24
str r0, [r1]
@@ -367,7 +367,7 @@ _08179912:
sub_8179918: @ 8179918
push {lr}
bl brm_get_pokemon_selection
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
lsls r0, 24
lsrs r0, 24
str r0, [r1]
diff --git a/asm/field_effect.s b/asm/field_effect.s
index 6277c127b..08670f556 100644
--- a/asm/field_effect.s
+++ b/asm/field_effect.s
@@ -1989,7 +1989,7 @@ task00_8084310: @ 80B6A24
cmp r0, 0
beq _080B6A8A
bl brm_get_pokemon_selection
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
lsls r0, 24
lsrs r0, 24
str r0, [r1]
@@ -3111,7 +3111,7 @@ oei_waterfall: @ 80B734C
adds r1, r0
lsls r1, 3
adds r1, r2
- ldr r2, =gUnknown_02038C08
+ ldr r2, =gFieldEffectSpawnParams
ldr r2, [r2]
strh r2, [r1, 0xA]
bl _call_via_r4
@@ -3188,7 +3188,7 @@ waterfall_1_do_anim_probably: @ 80B73F0
bne _080B7420
adds r0, r5, 0
bl FieldObjectClearAnimIfSpecialAnimFinished
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
movs r2, 0xA
ldrsh r0, [r4, r2]
str r0, [r1]
@@ -3304,7 +3304,7 @@ sub_80B74D0: @ 80B74D0
adds r1, r0
lsls r1, 3
adds r1, r2
- ldr r3, =gUnknown_02038C08
+ ldr r3, =gFieldEffectSpawnParams
ldr r2, [r3]
strh r2, [r1, 0x26]
ldr r2, [r3, 0x4]
@@ -3363,7 +3363,7 @@ dive_2_unknown: @ 80B7558
push {r4,lr}
adds r4, r0, 0
bl ScriptContext2_Enable
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
movs r2, 0x26
ldrsh r0, [r4, r2]
str r0, [r1]
@@ -3536,7 +3536,7 @@ sub_80B76B8: @ 80B76B8
strh r0, [r2, 0x26]
movs r0, 0x1
strh r0, [r4, 0xE]
- ldr r3, =gUnknown_02038C08
+ ldr r3, =gFieldEffectSpawnParams
movs r5, 0x10
ldrsh r0, [r1, r5]
str r0, [r3]
@@ -3835,7 +3835,7 @@ sub_80B791C: @ 80B791C
lsls r0, 24
cmp r0, 0
beq _080B795C
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
movs r2, 0x10
ldrsh r0, [r5, r2]
str r0, [r1]
@@ -3935,7 +3935,7 @@ _080B79E6:
thumb_func_start sub_80B79F4
sub_80B79F4: @ 80B79F4
push {r4,lr}
- ldr r4, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
adds r1, r4, 0x4
adds r0, r4, 0
movs r2, 0x8
@@ -4090,7 +4090,7 @@ sub_80B7B18: @ 80B7B18
ldrsh r0, [r5, r2]
cmp r0, 0x3
ble _080B7B6C
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
movs r2, 0x10
ldrsh r0, [r4, r2]
str r0, [r1]
@@ -4222,7 +4222,7 @@ _080B7C2C:
thumb_func_start sub_80B7C48
sub_80B7C48: @ 80B7C48
push {r4,lr}
- ldr r4, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
adds r1, r4, 0x4
adds r0, r4, 0
movs r2, 0x8
@@ -5229,7 +5229,7 @@ _080B84BE:
bl CreateTask
lsls r0, 24
lsrs r4, r0, 24
- ldr r2, =gUnknown_02038C08
+ ldr r2, =gFieldEffectSpawnParams
ldr r0, [r2]
ldr r1, [r2, 0x4]
ldr r2, [r2, 0x8]
@@ -5252,7 +5252,7 @@ _080B84BE:
thumb_func_start sub_80B84F8
sub_80B84F8: @ 80B84F8
push {r4-r6,lr}
- ldr r5, =gUnknown_02038C08
+ ldr r5, =gFieldEffectSpawnParams
ldr r0, [r5]
movs r6, 0x80
lsls r6, 24
@@ -6292,7 +6292,7 @@ sub_80B8D44: @ 80B8D44
adds r1, r0
lsls r1, 3
adds r1, r2
- ldr r0, =gUnknown_02038C08
+ ldr r0, =gFieldEffectSpawnParams
ldr r0, [r0]
strh r0, [r1, 0x26]
bl sav1_reset_battle_music_maybe
@@ -6421,7 +6421,7 @@ sub_80B8E60: @ 80B8E60
lsls r0, 24
cmp r0, 0
beq _080B8E96
- ldr r2, =gUnknown_02038C08
+ ldr r2, =gFieldEffectSpawnParams
movs r1, 0x26
ldrsh r0, [r4, r1]
movs r1, 0x80
@@ -6473,7 +6473,7 @@ sub_80B8EA8: @ 80B8EA8
lsrs r1, 24
adds r0, r4, 0
bl FieldObjectSetSpecialAnim
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
movs r2, 0xA
ldrsh r0, [r6, r2]
str r0, [r1]
@@ -6704,7 +6704,7 @@ sub_80B90CC: @ 80B90CC
strb r0, [r2, 0x5]
ldr r0, =sub_80B9128
str r0, [r2, 0x1C]
- ldr r0, =gUnknown_02038C08
+ ldr r0, =gFieldEffectSpawnParams
ldr r0, [r0]
strh r0, [r2, 0x30]
movs r0, 0x9E
@@ -6793,7 +6793,7 @@ sub_80B91A4: @ 80B91A4
adds r1, r0
lsls r1, 3
adds r1, r2
- ldr r0, =gUnknown_02038C08
+ ldr r0, =gFieldEffectSpawnParams
ldr r0, [r0]
strh r0, [r1, 0xA]
movs r0, 0
@@ -6884,7 +6884,7 @@ sub_80B925C: @ 80B925C
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
movs r2, 0xA
ldrsh r0, [r4, r2]
str r0, [r1]
@@ -7922,7 +7922,7 @@ _080B9ACA:
sub_80B9ADC: @ 80B9ADC
push {r4,lr}
sub sp, 0x4
- ldr r4, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
ldrb r0, [r4]
ldrb r1, [r4, 0x4]
ldrb r2, [r4, 0x8]
@@ -8343,7 +8343,7 @@ _080B9E24:
sub_80B9E28: @ 80B9E28
push {r4-r7,lr}
sub sp, 0x4
- ldr r7, =gUnknown_02038C08
+ ldr r7, =gFieldEffectSpawnParams
ldrb r0, [r7]
ldrb r1, [r7, 0x4]
ldrb r2, [r7, 0x8]
diff --git a/asm/field_effect_helpers.s b/asm/field_effect_helpers.s
index 04307fde5..76ba35fd2 100644
--- a/asm/field_effect_helpers.s
+++ b/asm/field_effect_helpers.s
@@ -574,7 +574,7 @@ _0815432E:
thumb_func_start oei_shadow
oei_shadow: @ 8154340
push {r4,r5,lr}
- ldr r5, =gUnknown_02038C08
+ ldr r5, =gFieldEffectSpawnParams
ldrb r0, [r5]
ldrb r1, [r5, 0x4]
ldrb r2, [r5, 0x8]
@@ -742,7 +742,7 @@ _08154498:
oei_grass_normal: @ 81544AC
push {r4,r5,lr}
sub sp, 0x4
- ldr r5, =gUnknown_02038C08
+ ldr r5, =gFieldEffectSpawnParams
ldrh r1, [r5]
mov r0, sp
strh r1, [r0]
@@ -951,7 +951,7 @@ _08154648:
thumb_func_start sub_8154658
sub_8154658: @ 8154658
push {r4,lr}
- ldr r4, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
adds r1, r4, 0x4
adds r0, r4, 0
movs r2, 0x8
@@ -1080,7 +1080,7 @@ _0815474C:
sub_8154758: @ 8154758
push {r4,r5,lr}
sub sp, 0x4
- ldr r5, =gUnknown_02038C08
+ ldr r5, =gFieldEffectSpawnParams
ldrh r1, [r5]
mov r0, sp
strh r1, [r0]
@@ -1282,7 +1282,7 @@ _081548EA:
thumb_func_start sub_81548FC
sub_81548FC: @ 81548FC
push {r4,lr}
- ldr r4, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
adds r1, r4, 0x4
adds r0, r4, 0
movs r2, 0x8
@@ -1336,7 +1336,7 @@ _08154958:
thumb_func_start sub_815496C
sub_815496C: @ 815496C
push {r4-r6,lr}
- ldr r6, =gUnknown_02038C08
+ ldr r6, =gFieldEffectSpawnParams
ldrb r0, [r6]
ldrb r1, [r6, 0x4]
ldrb r2, [r6, 0x8]
@@ -1537,7 +1537,7 @@ _08154AF2:
thumb_func_start sub_8154B04
sub_8154B04: @ 8154B04
push {r4,lr}
- ldr r4, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
adds r1, r4, 0x4
adds r0, r4, 0
movs r2, 0x8
@@ -1591,7 +1591,7 @@ _08154B62:
thumb_func_start sub_8154B78
sub_8154B78: @ 8154B78
push {r4,r5,lr}
- ldr r4, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
adds r1, r4, 0x4
adds r0, r4, 0
movs r2, 0x8
@@ -1646,7 +1646,7 @@ _08154BD8:
thumb_func_start sub_8154BEC
sub_8154BEC: @ 8154BEC
push {r4,r5,lr}
- ldr r4, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
adds r1, r4, 0x4
adds r0, r4, 0
movs r2, 0x8
@@ -1777,7 +1777,7 @@ _08154CE4:
thumb_func_start sub_8154CEC
sub_8154CEC: @ 8154CEC
push {r4-r6,lr}
- ldr r6, =gUnknown_02038C08
+ ldr r6, =gFieldEffectSpawnParams
ldrb r0, [r6]
ldrb r1, [r6, 0x4]
ldrb r2, [r6, 0x8]
@@ -1922,7 +1922,7 @@ _08154E0A:
thumb_func_start sub_8154E1C
sub_8154E1C: @ 8154E1C
push {r4,lr}
- ldr r4, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
adds r1, r4, 0x4
adds r0, r4, 0
movs r2, 0x8
@@ -1976,7 +1976,7 @@ _08154E78:
thumb_func_start oei_water_drop_tall
oei_water_drop_tall: @ 8154E8C
push {r4,lr}
- ldr r4, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
adds r1, r4, 0x4
adds r0, r4, 0
movs r2, 0x8
@@ -2030,7 +2030,7 @@ _08154EE8:
thumb_func_start sub_8154EFC
sub_8154EFC: @ 8154EFC
push {r4-r7,lr}
- ldr r7, =gUnknown_02038C08
+ ldr r7, =gFieldEffectSpawnParams
ldrb r0, [r7]
ldrb r1, [r7, 0x4]
ldrb r2, [r7, 0x8]
@@ -2193,7 +2193,7 @@ oei_ripples: @ 8155054
push {r4,lr}
ldr r0, =gFieldEffectObjectTemplatePointers
ldr r0, [r0, 0x14]
- ldr r4, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
movs r2, 0
ldrsh r1, [r4, r2]
movs r3, 0x4
@@ -2238,7 +2238,7 @@ _081550A0:
thumb_func_start sub_81550B4
sub_81550B4: @ 81550B4
push {r4-r6,lr}
- ldr r6, =gUnknown_02038C08
+ ldr r6, =gFieldEffectSpawnParams
ldrb r0, [r6]
ldrb r1, [r6, 0x4]
ldrb r2, [r6, 0x8]
@@ -2393,7 +2393,7 @@ _081551E4:
thumb_func_start sub_81551F0
sub_81551F0: @ 81551F0
push {r4,lr}
- ldr r4, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
adds r1, r4, 0x4
adds r0, r4, 0
movs r2, 0x8
@@ -2445,7 +2445,7 @@ _08155248:
thumb_func_start sub_815525C
sub_815525C: @ 815525C
push {r4,lr}
- ldr r4, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
adds r1, r4, 0x4
adds r0, r4, 0
movs r2, 0x8
@@ -2497,7 +2497,7 @@ _081552B4:
thumb_func_start sub_81552C8
sub_81552C8: @ 81552C8
push {r4,lr}
- ldr r4, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
adds r1, r4, 0x4
adds r0, r4, 0
movs r2, 0x8
@@ -2549,7 +2549,7 @@ _08155320:
thumb_func_start sub_8155334
sub_8155334: @ 8155334
push {r4,lr}
- ldr r4, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
adds r1, r4, 0x4
adds r0, r4, 0
movs r2, 0x8
@@ -2603,7 +2603,7 @@ ash: @ 81553A0
push {r4,lr}
lsls r2, 16
lsrs r2, 16
- ldr r4, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
lsls r0, 16
asrs r0, 16
str r0, [r4]
@@ -2630,7 +2630,7 @@ ash: @ 81553A0
oei_ash: @ 81553D4
push {r4,r5,lr}
sub sp, 0x4
- ldr r5, =gUnknown_02038C08
+ ldr r5, =gFieldEffectSpawnParams
ldrh r1, [r5]
mov r0, sp
strh r1, [r0]
@@ -2809,7 +2809,7 @@ _0815552C:
thumb_func_start sub_8155534
sub_8155534: @ 8155534
push {r4,r5,lr}
- ldr r4, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
adds r1, r4, 0x4
adds r0, r4, 0
movs r2, 0x8
@@ -3261,7 +3261,7 @@ _08155888:
thumb_func_start sub_8155890
sub_8155890: @ 8155890
push {r4,lr}
- ldr r4, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
adds r1, r4, 0x4
adds r0, r4, 0
movs r2, 0x8
@@ -3315,7 +3315,7 @@ _081558EC:
thumb_func_start sub_8155900
sub_8155900: @ 8155900
push {r4-r7,lr}
- ldr r7, =gUnknown_02038C08
+ ldr r7, =gFieldEffectSpawnParams
ldrb r0, [r7]
ldrb r1, [r7, 0x4]
ldrb r2, [r7, 0x8]
@@ -3505,7 +3505,7 @@ _08155A76:
thumb_func_start sub_8155A88
sub_8155A88: @ 8155A88
push {r4,lr}
- ldr r4, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
adds r1, r4, 0x4
adds r0, r4, 0
movs r2, 0x8
@@ -3586,7 +3586,7 @@ _08155B20:
thumb_func_start sub_8155B2C
sub_8155B2C: @ 8155B2C
push {r4,lr}
- ldr r4, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
adds r1, r4, 0x4
adds r0, r4, 0
movs r2, 0x8
@@ -3689,7 +3689,7 @@ ShowDisguiseFieldEffect: @ 8155BD0
lsrs r6, r1, 24
lsls r2, 24
lsrs r7, r2, 24
- ldr r5, =gUnknown_02038C08
+ ldr r5, =gFieldEffectSpawnParams
ldrb r0, [r5]
ldrb r1, [r5, 0x4]
ldrb r2, [r5, 0x8]
@@ -3950,7 +3950,7 @@ _08155DD8:
thumb_func_start sub_8155DDC
sub_8155DDC: @ 8155DDC
push {r4,lr}
- ldr r4, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
ldr r0, [r4]
adds r0, 0x7
str r0, [r4]
diff --git a/asm/field_ground_effect.s b/asm/field_ground_effect.s
index e4c6631d4..7d05dbd98 100644
--- a/asm/field_ground_effect.s
+++ b/asm/field_ground_effect.s
@@ -1166,7 +1166,7 @@ _08096E8C:
@ void GroundEffect_SpawnOnTallGrass(struct npc_state *fieldObject, struct obj *object)
GroundEffect_SpawnOnTallGrass: @ 8096E90
push {lr}
- ldr r3, =gUnknown_02038C08
+ ldr r3, =gFieldEffectSpawnParams
movs r2, 0x10
ldrsh r1, [r0, r2]
str r1, [r3]
@@ -1205,7 +1205,7 @@ GroundEffect_SpawnOnTallGrass: @ 8096E90
@ void GroundEffect_StepOnTallGrass(struct npc_state *fieldObject, struct obj *object)
GroundEffect_StepOnTallGrass: @ 8096EDC
push {lr}
- ldr r3, =gUnknown_02038C08
+ ldr r3, =gFieldEffectSpawnParams
movs r2, 0x10
ldrsh r1, [r0, r2]
str r1, [r3]
@@ -1244,7 +1244,7 @@ GroundEffect_StepOnTallGrass: @ 8096EDC
@ void GroundEffect_SpawnOnLongGrass(struct npc_state *fieldObject, struct obj *object)
GroundEffect_SpawnOnLongGrass: @ 8096F28
push {lr}
- ldr r3, =gUnknown_02038C08
+ ldr r3, =gFieldEffectSpawnParams
movs r2, 0x10
ldrsh r1, [r0, r2]
str r1, [r3]
@@ -1283,7 +1283,7 @@ GroundEffect_SpawnOnLongGrass: @ 8096F28
@ void GroundEffect_StepOnLongGrass(struct npc_state *fieldObject, struct obj *object)
GroundEffect_StepOnLongGrass: @ 8096F74
push {lr}
- ldr r3, =gUnknown_02038C08
+ ldr r3, =gFieldEffectSpawnParams
movs r2, 0x10
ldrsh r1, [r0, r2]
str r1, [r3]
@@ -1413,7 +1413,7 @@ DoTracksGroundEffect_Footprints: @ 8097044
mov r0, sp
movs r2, 0x4
bl memcpy
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
movs r2, 0x14
ldrsh r0, [r5, r2]
str r0, [r1]
@@ -1449,7 +1449,7 @@ DoTracksGroundEffect_BikeTireTracks: @ 8097094
ldr r0, [r4, 0x14]
cmp r1, r0
beq _080970D6
- ldr r2, =gUnknown_02038C08
+ ldr r2, =gFieldEffectSpawnParams
movs r1, 0x14
ldrsh r0, [r4, r1]
str r0, [r2]
@@ -1520,7 +1520,7 @@ GroundEffect_JumpOnTallGrass: @ 8097110
sub sp, 0x4
adds r5, r0, 0
adds r6, r1, 0
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
movs r2, 0x10
ldrsh r0, [r5, r2]
str r0, [r1]
@@ -1562,7 +1562,7 @@ _0809715A:
@ void GroundEffect_JumpOnLongGrass(struct npc_state *fieldObject, struct obj *object)
GroundEffect_JumpOnLongGrass: @ 8097168
push {lr}
- ldr r2, =gUnknown_02038C08
+ ldr r2, =gFieldEffectSpawnParams
movs r3, 0x10
ldrsh r1, [r0, r3]
str r1, [r2]
@@ -1585,7 +1585,7 @@ GroundEffect_JumpOnLongGrass: @ 8097168
@ void GroundEffect_JumpOnShallowWater(struct npc_state *fieldObject, struct obj *object)
GroundEffect_JumpOnShallowWater: @ 8097190
push {r4,lr}
- ldr r3, =gUnknown_02038C08
+ ldr r3, =gFieldEffectSpawnParams
movs r4, 0x10
ldrsh r2, [r0, r4]
str r2, [r3]
@@ -1611,7 +1611,7 @@ GroundEffect_JumpOnShallowWater: @ 8097190
@ void GroundEffect_JumpOnWater(struct npc_state *fieldObject, struct obj *object)
GroundEffect_JumpOnWater: @ 80971C0
push {r4,lr}
- ldr r3, =gUnknown_02038C08
+ ldr r3, =gFieldEffectSpawnParams
movs r4, 0x10
ldrsh r2, [r0, r4]
str r2, [r3]
@@ -1637,7 +1637,7 @@ GroundEffect_JumpOnWater: @ 80971C0
@ void GroundEffect_JumpLandingDust(struct npc_state *fieldObject, struct obj *object)
GroundEffect_JumpLandingDust: @ 80971F0
push {r4,lr}
- ldr r3, =gUnknown_02038C08
+ ldr r3, =gFieldEffectSpawnParams
movs r4, 0x10
ldrsh r2, [r0, r4]
str r2, [r3]
@@ -1685,7 +1685,7 @@ GroundEffect_HotSprings: @ 8097230
@ void GroundEffect_Seaweed(struct npc_state *fieldObject, struct obj *object)
GroundEffect_Seaweed: @ 8097240
push {lr}
- ldr r2, =gUnknown_02038C08
+ ldr r2, =gFieldEffectSpawnParams
movs r3, 0x10
ldrsh r1, [r0, r3]
str r1, [r2]
diff --git a/asm/field_map_obj.s b/asm/field_map_obj.s
index f67a70ef0..6d2de17b9 100755
--- a/asm/field_map_obj.s
+++ b/asm/field_map_obj.s
@@ -5,304 +5,6 @@
.text
- thumb_func_start FieldObjectCB_BerryTree
-FieldObjectCB_BerryTree: @ 808FE2C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gMapObjects
- adds r5, r0, r1
- ldrh r1, [r4, 0x3C]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0808FE58
- adds r0, r5, 0
- adds r1, r4, 0
- bl get_berry_tree_graphics
- ldrh r1, [r4, 0x3C]
- movs r0, 0x1
- orrs r0, r1
- strh r0, [r4, 0x3C]
-_0808FE58:
- ldr r2, =FieldObjectCB2_BerryTree
- adds r0, r5, 0
- adds r1, r4, 0
- bl FieldObjectStep
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectCB_BerryTree
-
- thumb_func_start FieldObjectCB2_BerryTree
-FieldObjectCB2_BerryTree: @ 808FE70
- push {r4,lr}
- ldr r3, =gUnknown_0850D7A0
- movs r4, 0x30
- ldrsh r2, [r1, r4]
- lsls r2, 2
- adds r2, r3
- ldr r2, [r2]
- bl _call_via_r2
- lsls r0, 24
- lsrs r0, 24
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end FieldObjectCB2_BerryTree
-
- thumb_func_start do_berry_tree_growth_sparkle_1
-@ bool8 do_berry_tree_growth_sparkle_1(struct npc_state *fieldObject, struct obj *object)
-do_berry_tree_growth_sparkle_1: @ 808FE90
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- bl npc_reset
- ldrb r0, [r4, 0x1]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r4, 0x1]
- adds r6, r5, 0
- adds r6, 0x3E
- ldrb r0, [r6]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r6]
- ldrb r0, [r4, 0x1D]
- bl GetStageByBerryTreeId
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0
- bne _0808FF00
- ldrh r1, [r5, 0x3C]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _0808FEF6
- subs r6, 0x14
- ldrb r0, [r6]
- cmp r0, 0x4
- bne _0808FEF6
- ldr r1, =gUnknown_02038C08
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- str r0, [r1]
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- str r0, [r1, 0x4]
- adds r0, r5, 0
- adds r0, 0x43
- ldrb r0, [r0]
- subs r0, 0x1
- str r0, [r1, 0x8]
- ldrb r0, [r5, 0x5]
- lsls r0, 28
- lsrs r0, 30
- str r0, [r1, 0xC]
- movs r0, 0x17
- bl FieldEffectStart
- strb r7, [r6]
-_0808FEF6:
- movs r0, 0
- b _0808FF42
- .pool
-_0808FF00:
- ldrb r1, [r4, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
- ldrb r1, [r6]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r6]
- subs r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r5, 0
- adds r0, 0x2A
- ldrb r0, [r0]
- cmp r0, r7
- bne _0808FF3C
- adds r0, r4, 0
- adds r1, r5, 0
- bl get_berry_tree_graphics
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x39
- bl FieldObjectSetRegularAnim
- movs r0, 0x1
- strh r0, [r5, 0x30]
- b _0808FF42
-_0808FF3C:
- movs r0, 0x2
- strh r0, [r5, 0x30]
- movs r0, 0x1
-_0808FF42:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end do_berry_tree_growth_sparkle_1
-
- thumb_func_start sub_808FF48
-@ bool8 sub_808FF48(struct npc_state *fieldObject, struct obj *object)
-sub_808FF48: @ 808FF48
- push {r4,lr}
- adds r4, r1, 0
- bl FieldObjectExecRegularAnim
- lsls r0, 24
- cmp r0, 0
- bne _0808FF5A
- movs r0, 0
- b _0808FF60
-_0808FF5A:
- movs r0, 0
- strh r0, [r4, 0x30]
- movs r0, 0x1
-_0808FF60:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_808FF48
-
- thumb_func_start do_berry_tree_growth_sparkle_2
-@ bool8 do_berry_tree_growth_sparkle_2(struct npc_state *fieldObject, struct obj *object)
-do_berry_tree_growth_sparkle_2: @ 808FF68
- push {r4,lr}
- ldrb r2, [r0]
- movs r3, 0x2
- orrs r2, r3
- strb r2, [r0]
- movs r3, 0
- movs r2, 0x3
- strh r2, [r1, 0x30]
- strh r3, [r1, 0x32]
- ldrh r3, [r1, 0x3C]
- movs r2, 0x2
- orrs r2, r3
- strh r2, [r1, 0x3C]
- ldr r3, =gUnknown_02038C08
- movs r4, 0x10
- ldrsh r2, [r0, r4]
- str r2, [r3]
- movs r2, 0x12
- ldrsh r0, [r0, r2]
- str r0, [r3, 0x4]
- adds r0, r1, 0
- adds r0, 0x43
- ldrb r0, [r0]
- subs r0, 0x1
- str r0, [r3, 0x8]
- ldrb r0, [r1, 0x5]
- lsls r0, 28
- lsrs r0, 30
- str r0, [r3, 0xC]
- movs r0, 0x17
- bl FieldEffectStart
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end do_berry_tree_growth_sparkle_2
-
- thumb_func_start sub_808FFB4
-@ bool8 sub_808FFB4(struct npc_state *fieldObject, struct obj *object)
-sub_808FFB4: @ 808FFB4
- push {r4,lr}
- adds r3, r0, 0
- adds r4, r1, 0
- ldrh r1, [r4, 0x32]
- adds r1, 0x1
- strh r1, [r4, 0x32]
- movs r0, 0x2
- ands r1, r0
- lsls r1, 16
- lsrs r1, 17
- lsls r1, 5
- ldrb r2, [r3, 0x1]
- subs r0, 0x23
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x1]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x40
- bgt _0808FFEC
- movs r0, 0
- b _0808FFFE
-_0808FFEC:
- adds r0, r3, 0
- adds r1, r4, 0
- bl get_berry_tree_graphics
- movs r0, 0x4
- strh r0, [r4, 0x30]
- movs r0, 0
- strh r0, [r4, 0x32]
- movs r0, 0x1
-_0808FFFE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_808FFB4
-
- thumb_func_start sub_8090004
-@ bool8 sub_8090004(struct npc_state *fieldObject, struct obj *object)
-sub_8090004: @ 8090004
- push {r4,lr}
- adds r4, r1, 0
- ldrh r2, [r4, 0x32]
- adds r2, 0x1
- strh r2, [r4, 0x32]
- movs r1, 0x2
- ands r2, r1
- lsls r2, 16
- lsrs r2, 17
- lsls r2, 5
- ldrb r3, [r0, 0x1]
- subs r1, 0x23
- ands r1, r3
- orrs r1, r2
- strb r1, [r0, 0x1]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x40
- bgt _0809003A
- movs r0, 0
- b _08090048
-_0809003A:
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r1, [r4, 0x3C]
- subs r0, 0x3
- ands r0, r1
- strh r0, [r4, 0x3C]
- movs r0, 0x1
-_08090048:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8090004
-
thumb_func_start FieldObjectCB_RandomlyLookNorthOrSouth
FieldObjectCB_RandomlyLookNorthOrSouth: @ 8090050
push {lr}
@@ -5217,7 +4919,7 @@ FieldObjectCB_TreeDisguise: @ 809253C
cmp r0, 0
bne _08092584
_08092564:
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
adds r2, r1, 0x4
adds r3, r1, 0
adds r3, 0x8
@@ -5280,7 +4982,7 @@ FieldObjectCB_MountainDisguise: @ 80925B8
cmp r0, 0
bne _08092600
_080925E0:
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
adds r2, r1, 0x4
adds r3, r1, 0
adds r3, 0x8
@@ -12012,7 +11714,7 @@ sub_80954CC: @ 80954CC
do_exclamation_mark_bubble_1: @ 80954DC
push {r4,lr}
adds r4, r1, 0
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
adds r2, r1, 0x4
adds r3, r1, 0
adds r3, 0x8
@@ -12031,7 +11733,7 @@ do_exclamation_mark_bubble_1: @ 80954DC
do_exclamation_mark_bubble_2: @ 8095500
push {r4,lr}
adds r4, r1, 0
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
adds r2, r1, 0x4
adds r3, r1, 0
adds r3, 0x8
@@ -12050,7 +11752,7 @@ do_exclamation_mark_bubble_2: @ 8095500
do_heart_bubble: @ 8095524
push {r4,lr}
adds r4, r1, 0
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
adds r2, r1, 0x4
adds r3, r1, 0
adds r3, 0x8
diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s
index f21fdacae..3cf5a70da 100644
--- a/asm/field_player_avatar.s
+++ b/asm/field_player_avatar.s
@@ -1522,7 +1522,7 @@ PlayerAvatarTransition_Surfing: @ 808B4D8
bl FieldObjectTurn
movs r0, 0x8
bl SetPlayerAvatarStateMask
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
movs r2, 0x10
ldrsh r0, [r4, r2]
str r0, [r1]
@@ -3517,7 +3517,7 @@ _0808C3F0:
lsrs r1, 24
adds r0, r4, 0
bl FieldObjectSetSpecialAnim
- ldr r2, =gUnknown_02038C08
+ ldr r2, =gFieldEffectSpawnParams
movs r1, 0x10
ldrsh r0, [r4, r1]
str r0, [r2]
diff --git a/asm/fldeff_80F9BCC.s b/asm/fldeff_80F9BCC.s
index e332a8841..784da5b1f 100644
--- a/asm/fldeff_80F9BCC.s
+++ b/asm/fldeff_80F9BCC.s
@@ -486,7 +486,7 @@ sub_80F9F78: @ 80F9F78
ands r0, r1
cmp r0, 0
beq _080F9FC0
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
ldr r0, [r1, 0x4]
cmp r0, 0x2
beq _080F9FAE
@@ -517,7 +517,7 @@ _080F9FB6:
movs r0, 0x18
b _080F9FFC
_080F9FC0:
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
ldr r0, [r1, 0x4]
cmp r0, 0x2
beq _080F9FEA
@@ -643,7 +643,7 @@ _080FA0C4:
sub_80FA0DC: @ 80FA0DC
push {lr}
bl brm_get_pokemon_selection
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
lsls r0, 24
lsrs r0, 24
str r0, [r1]
@@ -701,7 +701,7 @@ sub_80FA13C: @ 80FA13C
ldrh r1, [r2, 0x2]
lsls r1, 23
lsrs r1, 23
- ldr r4, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
ldr r3, [r4, 0x14]
adds r1, r3
lsls r1, 16
@@ -778,7 +778,7 @@ sub_80FA1D8: @ 80FA1D8
sub_80FA1E8: @ 80FA1E8
push {lr}
bl brm_get_pokemon_selection
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
lsls r0, 24
lsrs r0, 24
str r0, [r1]
@@ -836,13 +836,13 @@ sub_80FA248: @ 80FA248
ands r2, r0
cmp r2, 0x96
bne _080FA26A
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
movs r0, 0
str r0, [r1, 0x1C]
_080FA26A:
cmp r2, 0x9C
bne _080FA274
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
movs r0, 0x2
str r0, [r1, 0x1C]
_080FA274:
@@ -858,7 +858,7 @@ _080FA274:
ldrh r1, [r2, 0x2]
lsls r1, 23
lsrs r1, 23
- ldr r4, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
ldr r3, [r4, 0x14]
adds r1, r3
lsls r1, 16
@@ -891,7 +891,7 @@ sub_80FA2D8: @ 80FA2D8
adds r4, r0, 0
movs r0, 0x9B
bl PlaySE
- ldr r0, =gUnknown_02038C08
+ ldr r0, =gFieldEffectSpawnParams
ldr r1, [r0, 0x1C]
adds r2, r4, 0
adds r2, 0x2A
@@ -917,7 +917,7 @@ sub_80FA304: @ 80FA304
asrs r0, 16
cmp r0, 0x27
ble _080FA32E
- ldr r0, =gUnknown_02038C08
+ ldr r0, =gFieldEffectSpawnParams
ldr r0, [r0, 0x1C]
cmp r0, 0
beq _080FA322
@@ -951,7 +951,7 @@ sub_80FA33C: @ 80FA33C
sub_80FA34C: @ 80FA34C
push {lr}
bl brm_get_pokemon_selection
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
lsls r0, 24
lsrs r0, 24
str r0, [r1]
@@ -1009,7 +1009,7 @@ sub_80FA3AC: @ 80FA3AC
ldrh r1, [r2, 0x2]
lsls r1, 23
lsrs r1, 23
- ldr r4, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
ldr r3, [r4, 0x14]
adds r1, r3
lsls r1, 16
@@ -1807,7 +1807,7 @@ sub_80FAA7C: @ 80FAA7C
mov r0, sp
adds r1, r4, 0
bl GetXYCoordsOneStepInFrontOfPlayer
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
mov r0, sp
movs r2, 0
ldrsh r0, [r0, r2]
@@ -1930,7 +1930,7 @@ door_restore_tilemap: @ 80FABA4
adds r5, r0, 0
movs r0, 0x83
bl PlaySE
- ldr r4, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
ldr r0, [r4, 0x14]
ldr r1, [r4, 0x18]
subs r1, 0x1
@@ -1953,7 +1953,7 @@ _080FABDC:
lsls r2, 2
bl MapGridSetMetatileIdAt
_080FABEA:
- ldr r4, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
ldr r0, [r4, 0x14]
ldr r1, [r4, 0x18]
ldr r2, =0x0000020a
@@ -1988,7 +1988,7 @@ sub_80FAC24: @ 80FAC24
strh r0, [r5, 0x2E]
b _080FAC54
_080FAC38:
- ldr r4, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
ldr r0, [r4, 0x14]
ldr r1, [r4, 0x18]
ldr r2, =0x00000e8c
diff --git a/asm/fldeff_emotion.s b/asm/fldeff_emotion.s
index dce540074..37096a438 100644
--- a/asm/fldeff_emotion.s
+++ b/asm/fldeff_emotion.s
@@ -115,7 +115,7 @@ sub_80B46D8: @ 80B46D8
orrs r3, r4
mov r4, r12
strb r3, [r4]
- ldr r4, =gUnknown_02038C08
+ ldr r4, =gFieldEffectSpawnParams
ldr r3, [r4]
strh r3, [r0, 0x2E]
ldr r3, [r4, 0x4]
diff --git a/asm/fldeff_strength.s b/asm/fldeff_strength.s
index 3dc64467e..98764625e 100644
--- a/asm/fldeff_strength.s
+++ b/asm/fldeff_strength.s
@@ -40,7 +40,7 @@ _08145DF2:
sub_8145E0C: @ 8145E0C
push {lr}
bl brm_get_pokemon_selection
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
lsls r0, 24
lsrs r0, 24
str r0, [r1]
@@ -66,7 +66,7 @@ sub_8145E2C: @ 8145E2C
lsrs r0, r2, 16
strh r0, [r1, 0x18]
strh r2, [r1, 0x1A]
- ldr r0, =gUnknown_02038C08
+ ldr r0, =gFieldEffectSpawnParams
ldr r1, [r0]
movs r0, 0x64
muls r0, r1
diff --git a/asm/fldeff_sweetscent.s b/asm/fldeff_sweetscent.s
index a297dd41d..5c83b455d 100644
--- a/asm/fldeff_sweetscent.s
+++ b/asm/fldeff_sweetscent.s
@@ -24,7 +24,7 @@ hm2_sweet_scent: @ 8159F10
movs r0, 0x33
bl FieldEffectStart
bl brm_get_pokemon_selection
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
lsls r0, 24
lsrs r0, 24
str r0, [r1]
@@ -217,4 +217,4 @@ _0815A0BE:
thumb_func_end sub_815A090
.align 2, 0 @ Don't pad with nop.
- \ No newline at end of file
+
diff --git a/asm/fldeff_teleport.s b/asm/fldeff_teleport.s
index f3dc3ec9b..e4f4bce42 100644
--- a/asm/fldeff_teleport.s
+++ b/asm/fldeff_teleport.s
@@ -39,7 +39,7 @@ hm_teleport_run_dp02scr: @ 817C8FC
movs r0, 0x3F
bl FieldEffectStart
bl brm_get_pokemon_selection
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
lsls r0, 24
lsrs r0, 24
str r0, [r1]
diff --git a/asm/map_obj_8097404.s b/asm/map_obj_8097404.s
index 1bbf3eff2..4ed8e3bcd 100644
--- a/asm/map_obj_8097404.s
+++ b/asm/map_obj_8097404.s
@@ -1396,7 +1396,7 @@ oe_exec_and_other_stuff: @ 8097DD0
adds r0, r1, 0
lsls r4, 24
lsrs r4, 24
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
adds r2, r1, 0x4
adds r3, r1, 0
adds r3, 0x8
@@ -1434,7 +1434,7 @@ DoRippleFieldEffect: @ 8097E14
adds r4, r1, 0
ldrb r0, [r0, 0x5]
bl GetFieldObjectGraphicsInfo
- ldr r2, =gUnknown_02038C08
+ ldr r2, =gFieldEffectSpawnParams
movs r3, 0x20
ldrsh r1, [r4, r3]
str r1, [r2]
diff --git a/asm/rom6.s b/asm/rom6.s
index 18de40366..31d385fa9 100644
--- a/asm/rom6.s
+++ b/asm/rom6.s
@@ -167,7 +167,7 @@ sub_8135578: @ 8135578
cmp r4, 0
bne _081355FC
bl player_get_direction_lower_nybble
- ldr r6, =gUnknown_02038C08
+ ldr r6, =gFieldEffectSpawnParams
lsls r0, 24
lsrs r0, 24
str r0, [r6, 0x4]
@@ -303,7 +303,7 @@ _081356AC:
sub_81356C4: @ 81356C4
push {lr}
bl brm_get_pokemon_selection
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
lsls r0, 24
lsrs r0, 24
str r0, [r1]
@@ -380,7 +380,7 @@ hm2_dig: @ 8135760
movs r0, 0x26
bl FieldEffectStart
bl brm_get_pokemon_selection
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
lsls r0, 24
lsrs r0, 24
str r0, [r1]
@@ -3381,7 +3381,7 @@ hm2_flash: @ 8137178
lsls r4, 24
lsrs r4, 24
bl brm_get_pokemon_selection
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
lsls r0, 24
lsrs r0, 24
str r0, [r1]
@@ -11039,7 +11039,7 @@ _0813B0F8:
ldr r0, =sub_813B160
movs r1, 0x8
bl CreateTask
- ldr r3, =gUnknown_02038C08
+ ldr r3, =gFieldEffectSpawnParams
movs r0, 0x1
str r0, [r3]
movs r0, 0x3A
diff --git a/asm/rom_80C6FA0.s b/asm/rom_80C6FA0.s
index 4c3ada218..d6d3bb375 100644
--- a/asm/rom_80C6FA0.s
+++ b/asm/rom_80C6FA0.s
@@ -24444,7 +24444,7 @@ hm2_ruin_valley: @ 80D3A50
movs r0, 0x1
bl FieldEffectStart
bl brm_get_pokemon_selection
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
lsls r0, 24
lsrs r0, 24
str r0, [r1]
@@ -24480,7 +24480,7 @@ sub_80D3A6C: @ 80D3A6C
sub_80D3A9C: @ 80D3A9C
push {lr}
bl brm_get_pokemon_selection
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
lsls r0, 24
lsrs r0, 24
str r0, [r1]
diff --git a/asm/rom_818E9AC.s b/asm/rom_818E9AC.s
index 8363e1308..0ee8404a6 100644
--- a/asm/rom_818E9AC.s
+++ b/asm/rom_818E9AC.s
@@ -74313,7 +74313,7 @@ task_launch_hm_phase_2: @ 81B5750
cmp r0, 0x1
bne _081B577C
bl brm_get_selected_species
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
lsls r0, 16
lsrs r0, 16
str r0, [r1]
@@ -74397,7 +74397,7 @@ _081B57FE:
hm_surf_run_dp02scr: @ 81B5804
push {lr}
bl brm_get_pokemon_selection
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
lsls r0, 24
lsrs r0, 24
str r0, [r1]
@@ -74501,7 +74501,7 @@ sub_81B58A8: @ 81B58A8
hm2_waterfall: @ 81B58D4
push {lr}
bl brm_get_pokemon_selection
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
lsls r0, 24
lsrs r0, 24
str r0, [r1]
@@ -74561,7 +74561,7 @@ _081B594E:
sub_81B5958: @ 81B5958
push {lr}
bl brm_get_pokemon_selection
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
lsls r0, 24
lsrs r0, 24
str r0, [r1]
@@ -74576,7 +74576,7 @@ sub_81B5958: @ 81B5958
sub_81B5974: @ 81B5974
push {lr}
bl sub_809D1E8
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
lsls r0, 24
lsrs r0, 24
str r0, [r1, 0x4]
diff --git a/asm/scrcmd.s b/asm/scrcmd.s
index ccfa0074a..6d531821c 100644
--- a/asm/scrcmd.s
+++ b/asm/scrcmd.s
@@ -4874,7 +4874,7 @@ s9D_set_HM_animation_data: @ 809B7F4
lsls r0, 16
lsrs r0, 16
bl VarGet
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
lsls r4, 2
adds r4, r1
lsls r0, 16
diff --git a/asm/trainer_see.s b/asm/trainer_see.s
index ac2528cd8..d57ad1815 100644
--- a/asm/trainer_see.s
+++ b/asm/trainer_see.s
@@ -734,7 +734,7 @@ sub_80B417C: @ 80B417C
push {r4,r5,lr}
adds r5, r1, 0
adds r4, r2, 0
- ldr r1, =gUnknown_02038C08
+ ldr r1, =gFieldEffectSpawnParams
adds r2, r1, 0x4
adds r3, r1, 0
adds r3, 0x8
@@ -1050,7 +1050,7 @@ sub_80B43E0: @ 80B43E0
lsls r0, 24
cmp r0, 0
beq _080B4426
- ldr r2, =gUnknown_02038C08
+ ldr r2, =gFieldEffectSpawnParams
movs r1, 0x10
ldrsh r0, [r4, r1]
str r0, [r2]
diff --git a/include/field_effect.h b/include/field_effect.h
new file mode 100644
index 000000000..8cf866725
--- /dev/null
+++ b/include/field_effect.h
@@ -0,0 +1,80 @@
+//
+// Created by Scott Norton on 9/15/17.
+//
+
+#ifndef POKEEMERALD_FIELD_EFFECTS_H
+#define POKEEMERALD_FIELD_EFFECTS_H
+
+enum FieldEffectScriptIdx
+{
+ FLDEFF_EXCLAMATION_MARK_ICON_1,
+ FLDEFF_USE_CUT_ON_GRASS,
+ FLDEFF_USE_CUT_ON_TREE,
+ FLDEFF_SHADOW,
+ FLDEFF_TALL_GRASS,
+ FLDEFF_RIPPLE,
+ FLDEFF_FIELD_MOVE_SHOW_MON,
+ FLDEFF_ASH,
+ FLDEFF_SURF_BLOB,
+ FLDEFF_USE_SURF,
+ FLDEFF_DUST,
+ FLDEFF_USE_SECRET_POWER_CAVE,
+ FLDEFF_JUMP_TALL_GRASS,
+ FLDEFF_SAND_FOOTPRINTS,
+ FLDEFF_JUMP_BIG_SPLASH,
+ FLDEFF_SPLASH,
+ FLDEFF_JUMP_SMALL_SPLASH,
+ FLDEFF_LONG_GRASS,
+ FLDEFF_JUMP_LONG_GRASS,
+ FLDEFF_UNKNOWN_19,
+ FLDEFF_UNKNOWN_20,
+ FLDEFF_UNKNOWN_21,
+ FLDEFF_UNKNOWN_22,
+ FLDEFF_BERRY_TREE_GROWTH_SPARKLE,
+ FLDEFF_DEEP_SAND_FOOTPRINTS,
+ FLDEFF_POKECENTER_HEAL,
+ FLDEFF_USE_SECRET_POWER_TREE,
+ FLDEFF_USE_SECRET_POWER_SHRUB,
+ FLDEFF_TREE_DISGUISE,
+ FLDEFF_MOUNTAIN_DISGUISE,
+ FLDEFF_NPCFLY_OUT,
+ FLDEFF_USE_FLY,
+ FLDEFF_FLY_IN,
+ FLDEFF_EXCLAMATION_MARK_ICON_2,
+ FLDEFF_FEET_IN_FLOWING_WATER,
+ FLDEFF_BIKE_TIRE_TRACKS,
+ FLDEFF_SAND_DISGUISE,
+ FLDEFF_USE_ROCK_SMASH,
+ FLDEFF_USE_DIG,
+ FLDEFF_SAND_PILE,
+ FLDEFF_USE_STRENGTH,
+ FLDEFF_SHORT_GRASS,
+ FLDEFF_HOT_SPRINGS_WATER,
+ FLDEFF_USE_WATERFALL,
+ FLDEFF_USE_DIVE,
+ FLDEFF_POKEBALL,
+ FLDEFF_HEART_ICON,
+ FLDEFF_NOP_47,
+ FLDEFF_NOP_48,
+ FLDEFF_POP_OUT_OF_ASH,
+ FLDEFF_LAVARIDGE_GYM_WARP,
+ FLDEFF_SWEET_SCENT,
+ FLDEFF_SAND_PILLAR,
+ FLDEFF_BUBBLES,
+ FLDEFF_SPARKLE,
+ FLDEFF_SECRET_POWER_CAVE,
+ FLDEFF_SECRET_POWER_TREE,
+ FLDEFF_SECRET_POWER_SHRUB,
+ FLDEFF_CUT_GRASS,
+ FLDEFF_FIELD_MOVE_SHOW_MON_INIT,
+ FLDEFF_USE_FLY_ANCIENT_TOMB,
+ FLDEFF_PCTURN_ON,
+ FLDEFF_HALL_OF_FAME_RECORD,
+ FLDEFF_USE_TELEPORT
+};
+
+extern u32 gFieldEffectSpawnParams[8];
+
+u8 FieldEffectStart(u8);
+
+#endif //POKEEMERALD_FIELD_EFFECTS_H
diff --git a/src/field_map_obj.c b/src/field_map_obj.c
index 04b207d96..16a9e5851 100755
--- a/src/field_map_obj.c
+++ b/src/field_map_obj.c
@@ -16,6 +16,7 @@
#include "field_ground_effect.h"
#include "map_obj_8097404.h"
#include "mauville_old_man.h"
+#include "field_effect.h"
#include "field_effect_helpers.h"
#include "field_map_obj.h"
@@ -1884,7 +1885,7 @@ u8 GetEastWestRunningPastFacingDirection(s16 dx, s16 dy, s16 absdx, s16 absdy)
u8 GetNorthEastRunningPastFacingDirection(s16 dx, s16 dy, s16 absdx, s16 absdy)
{
u8 direction;
-
+
direction = GetRegularRunningPastFacingDirection(dx, dy, absdx, absdy);
if (direction == DIR_SOUTH)
{
@@ -2272,3 +2273,110 @@ bool8 sub_808FE1C(struct MapObject *mapObject, struct Sprite *sprite)
mapObject->mapobj_bit_1 = FALSE;
return FALSE;
}
+
+static bool8 FieldObjectCB2_BerryTree(struct MapObject *mapObject, struct Sprite *sprite);
+extern bool8 (*const gUnknown_0850D7A0[])(struct MapObject *mapObject, struct Sprite *sprite);
+void FieldObjectCB_BerryTree(struct Sprite *sprite)
+{
+ struct MapObject *mapObject;
+
+ mapObject = &gMapObjects[sprite->data0];
+ if (!(sprite->data7 & 0x0001))
+ {
+ get_berry_tree_graphics(mapObject, sprite);
+ sprite->data7 |= 0x0001;
+ }
+ FieldObjectStep(mapObject, sprite, FieldObjectCB2_BerryTree);
+}
+static bool8 FieldObjectCB2_BerryTree(struct MapObject *mapObject, struct Sprite *sprite)
+{
+ return gUnknown_0850D7A0[sprite->data1](mapObject, sprite);
+}
+
+bool8 do_berry_tree_growth_sparkle_1 (struct MapObject *mapObject, struct Sprite *sprite)
+{
+ u8 berryStage;
+
+ npc_reset(mapObject, sprite);
+ mapObject->mapobj_bit_13 = TRUE;
+ sprite->invisible = TRUE;
+ berryStage = GetStageByBerryTreeId(mapObject->trainerRange_berryTreeId);
+ if (berryStage == 0)
+ {
+ if (!(sprite->data7 & 0x0004) && sprite->animNum == 4)
+ {
+ gFieldEffectSpawnParams[0] = mapObject->coords2.x;
+ gFieldEffectSpawnParams[1] = mapObject->coords2.y;
+ gFieldEffectSpawnParams[2] = sprite->subpriority - 1;
+ gFieldEffectSpawnParams[3] = sprite->oam.priority;
+ FieldEffectStart(FLDEFF_BERRY_TREE_GROWTH_SPARKLE);
+ sprite->animNum = berryStage;
+ }
+ return FALSE;
+ }
+ mapObject->mapobj_bit_13 = FALSE;
+ sprite->invisible = FALSE;
+ berryStage --;
+ if (sprite->animNum != berryStage)
+ {
+ sprite->data1 = 2;
+ return TRUE;
+ }
+ get_berry_tree_graphics(mapObject, sprite);
+ FieldObjectSetRegularAnim(mapObject, sprite, 0x39);
+ sprite->data1 = 1;
+ return TRUE;
+}
+
+bool8 sub_808FF48 (struct MapObject *mapObject, struct Sprite *sprite)
+{
+ if (FieldObjectExecRegularAnim(mapObject, sprite))
+ {
+ sprite->data1 = 0;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 do_berry_tree_growth_sparkle_2 (struct MapObject *mapObject, struct Sprite *sprite)
+{
+ mapObject->mapobj_bit_1 = TRUE;
+ sprite->data1 = 3;
+ sprite->data2 = 0;
+ sprite->data7 |= 0x0002;
+ gFieldEffectSpawnParams[0] = mapObject->coords2.x;
+ gFieldEffectSpawnParams[1] = mapObject->coords2.y;
+ gFieldEffectSpawnParams[2] = sprite->subpriority - 1;
+ gFieldEffectSpawnParams[3] = sprite->oam.priority;
+ FieldEffectStart(FLDEFF_BERRY_TREE_GROWTH_SPARKLE);
+ return TRUE;
+}
+
+bool8 sub_808FFB4 (struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sprite->data2 ++;
+ mapObject->mapobj_bit_13 = (sprite->data2 & 0x02) >> 1;
+ sprite->animPaused = TRUE;
+ if (sprite->data2 > 64)
+ {
+ get_berry_tree_graphics(mapObject, sprite);
+ sprite->data1 = 4;
+ sprite->data2 = 0;
+ return TRUE;
+ }
+ return FALSE;
+}
+
+bool8 sub_8090004 (struct MapObject *mapObject, struct Sprite *sprite)
+{
+ sprite->data2 ++;
+ mapObject->mapobj_bit_13 = (sprite->data2 & 0x02) >> 1;
+ sprite->animPaused = TRUE;
+ if (sprite->data2 > 64)
+ {
+ sprite->data1 = 0;
+ sprite->data7 &= ~0x0002;
+ return TRUE;
+ }
+ return FALSE;
+}
diff --git a/sym_ewram.txt b/sym_ewram.txt
index b9d1f6650..582518bf3 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -902,7 +902,7 @@ gUnknown_02038C00: @ 2038C00
gUnknown_02038C04: @ 2038C04
.space 0x4
-gUnknown_02038C08: @ 2038C08
+gFieldEffectSpawnParams: @ 2038C08
.space 0x20
gUnknown_02038C28: @ 2038C28