diff options
author | camthesaxman <cameronghall@cox.net> | 2017-09-21 18:12:02 -0500 |
---|---|---|
committer | camthesaxman <cameronghall@cox.net> | 2017-09-21 18:12:02 -0500 |
commit | 3185d7c252ef5eb036edbe8976de41abc40ee498 (patch) | |
tree | 800cf620cc5b2995e9df73cad0b7d939580a339c | |
parent | 61e8416b6e7d1b309b7382169c3fe47bc46f7c90 (diff) |
get sub_807E4EC to match
-rw-r--r-- | asm/field_weather.s | 100 | ||||
-rw-r--r-- | src/field_weather.c | 33 |
2 files changed, 20 insertions, 113 deletions
diff --git a/asm/field_weather.s b/asm/field_weather.s index abc714c55..3a0a70325 100644 --- a/asm/field_weather.s +++ b/asm/field_weather.s @@ -5,106 +5,6 @@ .text - thumb_func_start sub_807E4EC -sub_807E4EC: @ 807E4EC - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r0, 0 - movs r1, 0x30 - ldrsh r0, [r7, r1] - cmp r0, 0 - bne _0807E500 - ldr r0, _0807E5A4 @ =0x00000169 - strh r0, [r7, 0x30] -_0807E500: - movs r2, 0x30 - ldrsh r1, [r7, r2] - ldr r0, _0807E5A8 @ =0x41c64e6d - muls r0, r1 - ldr r3, _0807E5AC @ =0x00003039 - adds r0, r3 - lsls r0, 1 - lsrs r0, 17 - movs r1, 0x96 - lsls r1, 2 - bl __umodsi3 - movs r1, 0 - mov r8, r1 - strh r0, [r7, 0x30] - ldr r1, _0807E5B0 @ =gUnknown_0839AAC4 - ldr r0, _0807E5B4 @ =gUnknown_08396FC4 - ldr r5, [r0] - ldr r2, _0807E5B8 @ =0x000006dc - adds r5, r2 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldrh r6, [r0] - movs r3, 0x30 - ldrsh r0, [r7, r3] - movs r1, 0x1E - bl __modsi3 - adds r4, r0, 0 - lsls r4, 16 - asrs r4, 16 - lsls r0, r4, 3 - strh r0, [r7, 0x32] - movs r1, 0x30 - ldrsh r0, [r7, r1] - movs r1, 0x1E - bl __divsi3 - lsls r0, 16 - lsls r4, 7 - strh r4, [r7, 0x32] - asrs r0, 9 - strh r0, [r7, 0x34] - ldr r2, _0807E5BC @ =gUnknown_0839AABC - ldrb r1, [r5] - lsls r1, 2 - adds r1, r2 - movs r3, 0 - ldrsh r1, [r1, r3] - muls r1, r6 - subs r4, r1 - strh r4, [r7, 0x32] - ldrb r1, [r5] - lsls r1, 2 - adds r2, 0x2 - adds r1, r2 - movs r2, 0 - ldrsh r1, [r1, r2] - muls r1, r6 - subs r0, r1 - strh r0, [r7, 0x34] - adds r0, r7, 0 - movs r1, 0 - bl StartSpriteAnim - mov r3, r8 - strh r3, [r7, 0x36] - adds r2, r7, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - strh r6, [r7, 0x2E] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0807E5A4: .4byte 0x00000169 -_0807E5A8: .4byte 0x41c64e6d -_0807E5AC: .4byte 0x00003039 -_0807E5B0: .4byte gUnknown_0839AAC4 -_0807E5B4: .4byte gUnknown_08396FC4 -_0807E5B8: .4byte 0x000006dc -_0807E5BC: .4byte gUnknown_0839AABC - thumb_func_end sub_807E4EC - thumb_func_start sub_807E5C0 sub_807E5C0: @ 807E5C0 push {r4,r5,lr} diff --git a/src/field_weather.c b/src/field_weather.c index f1b4d4391..fff4ac673 100644 --- a/src/field_weather.c +++ b/src/field_weather.c @@ -1438,31 +1438,38 @@ bool8 sub_807E460(void) } extern const struct Coords16 gUnknown_0839AAC4[]; -extern const struct Coords16 gUnknown_0839AABC[]; +//extern const struct Coords16 gUnknown_0839AABC[]; +extern const s16 gUnknown_0839AABC[][2]; -/* void sub_807E4EC(struct Sprite *sprite) { u32 randVal; u16 r6; - s16 r4; - s16 r0; + s32 r4; + s32 r0; if (sprite->data1 == 0) sprite->data1 = 361; randVal = sprite->data1 * 1103515245 + 12345; sprite->data1 = ((randVal & 0x7FFF0000) >> 16) % 600; r6 = gUnknown_0839AAC4[gUnknown_08396FC4->unknown_6DC].x; - r4 = sprite->data1 % 31; - sprite->data2 = r4 * 8; - r0 = sprite->data1 / 31; - sprite->data2 = r4 * 128; - sprite->data3 = r0 * 128; - sprite->data2 = r4 * 128 - gUnknown_0839AABC[gUnknown_08396FC4->unknown_6DC].x * r6; - sprite->data3 = r0 * 128 - gUnknown_0839AABC[gUnknown_08396FC4->unknown_6DC].y * r6; + + r4 = sprite->data1 % 30; + sprite->data2 = r4 * 8; // useless assignment + + r0 = sprite->data1 / 30; + sprite->data3 = r0 * 8; // useless assignment + + sprite->data2 = r4; + sprite->data2 <<= 7; + + sprite->data3 = r0; + sprite->data3 <<= 7; + + sprite->data2 -= gUnknown_0839AABC[gUnknown_08396FC4->unknown_6DC][0] * r6; + sprite->data3 -= gUnknown_0839AABC[gUnknown_08396FC4->unknown_6DC][1] * r6; StartSpriteAnim(sprite, 0); sprite->data4 = 0; - sprite->invisible = FALSE; + sprite->coordOffsetEnabled = FALSE; sprite->data0 = r6; } -*/
\ No newline at end of file |