BerryTree

This commit is contained in:
scnorton 2017-09-15 14:26:01 -04:00
parent 9a13b1f34e
commit 9f6a4be9f0
21 changed files with 300 additions and 410 deletions

View File

@ -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

View File

@ -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]

View File

@ -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]

View File

@ -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]

View File

@ -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]

View File

@ -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

View File

@ -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]

View File

@ -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

View File

@ -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]

View File

@ -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

View File

@ -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.

View File

@ -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]

View File

@ -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]

View File

@ -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

View File

@ -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]

View File

@ -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]

View File

@ -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

View File

@ -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]

80
include/field_effect.h Normal file
View File

@ -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

View File

@ -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;
}

View File

@ -902,7 +902,7 @@ gUnknown_02038C00: @ 2038C00
gUnknown_02038C04: @ 2038C04
.space 0x4
gUnknown_02038C08: @ 2038C08
gFieldEffectSpawnParams: @ 2038C08
.space 0x20
gUnknown_02038C28: @ 2038C28