diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2017-09-09 21:31:32 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2017-09-09 21:31:32 -0400 |
commit | 7980e39efb2eda587e41452b47d2503f17346368 (patch) | |
tree | ef5847b62d2bf28a849fa82872953d95e099cdd1 | |
parent | 94b7142ddeb40235be830f2def8c7eae5e52499e (diff) |
sub_8127A7C
-rw-r--r-- | asm/field_effect_helpers.s | 79 | ||||
-rw-r--r-- | src/field_effect_helpers.c | 21 |
2 files changed, 21 insertions, 79 deletions
diff --git a/asm/field_effect_helpers.s b/asm/field_effect_helpers.s index 7431acb8a..36d9ce69e 100644 --- a/asm/field_effect_helpers.s +++ b/asm/field_effect_helpers.s @@ -6,85 +6,6 @@ .text - thumb_func_start sub_8127A7C -sub_8127A7C: @ 8127A7C - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x30] - lsls r1, 24 - lsrs r1, 24 - ldrh r2, [r4, 0x32] - lsls r2, 24 - lsrs r2, 24 - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _08127AB6 - ldr r5, _08127AC0 @ =gMapObjects - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r5 - ldrb r0, [r1, 0x2] - lsls r0, 26 - cmp r0, 0 - blt _08127AC4 -_08127AB6: - adds r0, r4, 0 - movs r1, 0x2A - bl FieldEffectStop - b _08127B08 - .align 2, 0 -_08127AC0: .4byte gMapObjects -_08127AC4: - ldrb r0, [r1, 0x5] - bl GetFieldObjectGraphicsInfo - mov r1, sp - ldrb r2, [r1] - lsls r1, r2, 3 - adds r1, r2 - lsls r1, 2 - adds r1, r5 - ldrb r2, [r1, 0x4] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - ldr r2, _08127B10 @ =gSprites - adds r1, r2 - ldrh r2, [r1, 0x20] - strh r2, [r4, 0x20] - ldrh r0, [r0, 0xA] - lsls r0, 16 - asrs r0, 17 - ldrh r2, [r1, 0x22] - adds r0, r2 - subs r0, 0x8 - strh r0, [r4, 0x22] - adds r1, 0x43 - ldrb r0, [r1] - subs r0, 0x1 - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0 - bl sub_806487C -_08127B08: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08127B10: .4byte gSprites - thumb_func_end sub_8127A7C - thumb_func_start FldEff_Unknown19 FldEff_Unknown19: @ 8127B14 push {r4,lr} diff --git a/src/field_effect_helpers.c b/src/field_effect_helpers.c index 3f821e0b7..2113a79d7 100644 --- a/src/field_effect_helpers.c +++ b/src/field_effect_helpers.c @@ -802,3 +802,24 @@ u8 FldEff_HotSpringsWater(void) } return 0; } + +void sub_8127A7C(struct Sprite *sprite) +{ + u8 mapObjectId; + const struct MapObjectGraphicsInfo *graphicsInfo; + struct Sprite *linkedSprite; + + if (TryGetFieldObjectIdByLocalIdAndMap(sprite->data0, sprite->data1, sprite->data2, &mapObjectId) || !gMapObjects[mapObjectId].mapobj_bit_21) + { + FieldEffectStop(sprite, FLDEFF_HOT_SPRINGS_WATER); + } + else + { + graphicsInfo = GetFieldObjectGraphicsInfo(gMapObjects[mapObjectId].graphicsId); + linkedSprite = &gSprites[gMapObjects[mapObjectId].spriteId]; + sprite->pos1.x = linkedSprite->pos1.x; + sprite->pos1.y = (graphicsInfo->height >> 1) + linkedSprite->pos1.y - 8; + sprite->subpriority = linkedSprite->subpriority - 1; + sub_806487C(sprite, FALSE); + } +} |