diff options
-rw-r--r--[-rwxr-xr-x] | asm/field_tasks.s | 53 | ||||
-rw-r--r-- | data/field_tasks.s | 17 | ||||
-rw-r--r-- | include/field_tasks.h | 6 | ||||
-rw-r--r--[-rwxr-xr-x] | src/field_specials.c | 0 | ||||
-rw-r--r--[-rwxr-xr-x] | src/field_tasks.c | 48 |
5 files changed, 54 insertions, 70 deletions
diff --git a/asm/field_tasks.s b/asm/field_tasks.s index 2d2c0abe6..b869f2ad1 100755..100644 --- a/asm/field_tasks.s +++ b/asm/field_tasks.s @@ -6,59 +6,6 @@ .text - thumb_func_start DummyPerStepCallback -DummyPerStepCallback: @ 80695DC - bx lr - thumb_func_end DummyPerStepCallback - - thumb_func_start sub_80695E0 -sub_80695E0: @ 80695E0 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r1, 24 - lsrs r4, r1, 24 - adds r0, r4, 0 - bl sub_80576A0 - lsls r0, 24 - cmp r0, 0 - beq _080695F8 - adds r0, r5, 0 - b _08069630 -_080695F8: - adds r0, r4, 0 - bl sub_80576B4 - lsls r0, 24 - cmp r0, 0 - beq _0806960A - adds r0, r5, 0 - adds r0, 0x8 - b _08069630 -_0806960A: - adds r0, r4, 0 - bl sub_80576C8 - lsls r0, 24 - cmp r0, 0 - beq _0806961C - adds r0, r5, 0 - adds r0, 0x10 - b _08069630 -_0806961C: - adds r0, r4, 0 - bl sub_80576DC - lsls r0, 24 - cmp r0, 0 - bne _0806962C - movs r0, 0 - b _08069630 -_0806962C: - adds r0, r5, 0 - adds r0, 0x18 -_08069630: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80695E0 - thumb_func_start sub_8069638 sub_8069638: @ 8069638 push {r4-r7,lr} diff --git a/data/field_tasks.s b/data/field_tasks.s index d8b4f1146..a4b78df2e 100644 --- a/data/field_tasks.s +++ b/data/field_tasks.s @@ -3,23 +3,6 @@ .section .rodata -gUnknown_08376384:: @ 8376384 - .byte 0, 0,0x59, 2, 0, 1,0x61, 2 - .byte 0, -1,0x59, 2, 0, 0,0x61, 2 - .byte 0, 0,0x52, 2, 1, 0,0x53, 2 - .byte -1, 0,0x52, 2, 0, 0,0x53, 2 - -gUnknown_083763A4:: @ 83763A4 - .byte 0, 0,0x5A, 2, 0, 1,0x62, 2 - .byte 0, -1,0x5A, 2, 0, 0,0x62, 2 - .byte 0, 0,0x54, 2, 1, 0,0x55, 2 - .byte -1, 0,0x54, 2, 0, 0,0x55, 2 - -gUnknown_083763C4:: @ 83763C4 - .byte 0, 0,0x58, 2, 0, 1,0x60, 2 - .byte 0, -1,0x58, 2, 0, 0,0x60, 2 - .byte 0, 0,0x50, 2, 1, 0,0x51, 2 - .byte -1, 0,0x50, 2, 0, 0,0x51, 2 .align 1 gUnknown_083763E4:: @ 83763E4 diff --git a/include/field_tasks.h b/include/field_tasks.h index 53e704395..761d69ada 100644 --- a/include/field_tasks.h +++ b/include/field_tasks.h @@ -1,6 +1,12 @@ #ifndef GUARD_FIELD_TASKS_H #define GUARD_FIELD_TASKS_H +struct MetatileOffset { + s8 x; + s8 y; + u16 tileId; +}; + void SetUpFieldTasks(); void ActivatePerStepCallback(u8); void ResetFieldTasksArgs(void); diff --git a/src/field_specials.c b/src/field_specials.c index 2cb2cf795..2cb2cf795 100755..100644 --- a/src/field_specials.c +++ b/src/field_specials.c diff --git a/src/field_tasks.c b/src/field_tasks.c index d52bafe1c..39c2146d6 100755..100644 --- a/src/field_tasks.c +++ b/src/field_tasks.c @@ -10,6 +10,7 @@ #include "script.h" #include "field_special_scene.h" #include "secret_base.h" +#include "metatile_behavior.h" #include "field_tasks.h" void DummyPerStepCallback(u8); @@ -128,3 +129,50 @@ void ResetFieldTasksArgs(void) taskData[2] = 0; } } + +const struct MetatileOffset gUnknown_08376384[][2] = { + {{ 0, 0,0x259}, { 0, 1,0x261}}, + {{ 0, -1,0x259}, { 0, 0,0x261}}, + {{ 0, 0,0x252}, { 1, 0,0x253}}, + {{ -1, 0,0x252}, { 0, 0,0x253}} +}; + +const struct MetatileOffset gUnknown_083763A4[][2] = { + {{ 0, 0,0x25A}, { 0, 1,0x262}}, + {{ 0, -1,0x25A}, { 0, 0,0x262}}, + {{ 0, 0,0x254}, { 1, 0,0x255}}, + {{ -1, 0,0x254}, { 0, 0,0x255}} +}; + +const struct MetatileOffset gUnknown_083763C4[][2] = { + {{ 0, 0,0x258}, { 0, 1,0x260}}, + {{ 0, -1,0x258}, { 0, 0,0x260}}, + {{ 0, 0,0x250}, { 1, 0,0x251}}, + {{ -1, 0,0x250}, { 0, 0,0x251}} +}; + +void DummyPerStepCallback(u8 taskId) {} + +const struct MetatileOffset *sub_80695E0(const struct MetatileOffset a0[][2], s8 a1) +{ + if (sub_80576A0(a1)) + { + return a0[0]; + } + else if (sub_80576B4(a1)) + { + return a0[1]; + } + else if (sub_80576C8(a1)) + { + return a0[2]; + } + else if (sub_80576DC(a1)) + { + return a0[3]; + } + else + { + return NULL; + } +} |