.include "constants/gba_constants.inc" .include "constants/species_constants.inc" .include "asm/macros.inc" .syntax unified .text thumb_func_start sub_8128774 sub_8128774: @ 8128774 push {lr} adds r2, r0, 0 movs r1, 0x2E ldrsh r0, [r2, r1] cmp r0, 0 bne _081287A8 adds r0, r2, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _081287A0 adds r3, r2, 0 adds r3, 0x3E ldrb r0, [r3] movs r1, 0x4 orrs r0, r1 strb r0, [r3] ldrh r0, [r2, 0x2E] adds r0, 0x1 strh r0, [r2, 0x2E] _081287A0: movs r1, 0x2E ldrsh r0, [r2, r1] cmp r0, 0 beq _081287BE _081287A8: ldrh r0, [r2, 0x30] adds r0, 0x1 strh r0, [r2, 0x30] lsls r0, 16 asrs r0, 16 cmp r0, 0x22 ble _081287BE adds r0, r2, 0 movs r1, 0x36 bl FieldEffectStop _081287BE: pop {r0} bx r0 thumb_func_end sub_8128774 thumb_func_start sub_81287C4 sub_81287C4: @ 81287C4 push {r4,lr} adds r4, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _081287E2 ldrh r1, [r4, 0x30] lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl FieldEffectStop b _081287F8 _081287E2: adds r0, r4, 0 movs r1, 0 bl sub_806487C ldrh r0, [r4, 0x2E] lsls r0, 24 lsrs r0, 24 adds r1, r4, 0 movs r2, 0 bl SetObjectSubpriorityByZCoord _081287F8: pop {r4} pop {r0} bx r0 thumb_func_end sub_81287C4 thumb_func_start sub_8128800 sub_8128800: @ 8128800 push {lr} adds r2, r0, 0 adds r0, 0x3F ldrb r1, [r0] movs r0, 0x10 ands r0, r1 cmp r0, 0 beq _0812881E ldrh r1, [r2, 0x2E] lsls r1, 24 lsrs r1, 24 adds r0, r2, 0 bl FieldEffectStop b _08128826 _0812881E: adds r0, r2, 0 movs r1, 0 bl sub_806487C _08128826: pop {r0} bx r0 thumb_func_end sub_8128800 thumb_func_start sub_812882C sub_812882C: @ 812882C push {r4-r7,lr} adds r6, r0, 0 adds r0, r1, 0 lsls r0, 24 lsrs r0, 24 lsls r2, 24 lsrs r2, 24 adds r1, r6, 0 bl SetObjectSubpriorityByZCoord movs r7, 0 _08128842: lsls r0, r7, 3 adds r0, r7 lsls r0, 2 ldr r1, _081288DC @ =gMapObjects adds r4, r0, r1 ldrb r0, [r4] lsls r0, 31 cmp r0, 0 beq _081288E4 ldrb r0, [r4, 0x5] bl GetFieldObjectGraphicsInfo ldrb r1, [r4, 0x4] lsls r0, r1, 4 adds r0, r1 lsls r0, 2 ldr r1, _081288E0 @ =gSprites adds r5, r0, r1 adds r0, r6, 0 adds r0, 0x28 movs r2, 0 ldrsb r2, [r0, r2] ldrh r0, [r6, 0x20] adds r1, r0, r2 subs r0, r2 lsls r0, 16 lsrs r4, r0, 16 lsls r1, 16 asrs r1, 16 movs r0, 0x20 ldrsh r2, [r5, r0] cmp r1, r2 bge _081288E4 lsls r0, r4, 16 asrs r0, 16 cmp r0, r2 ble _081288E4 adds r0, r5, 0 adds r0, 0x29 movs r3, 0 ldrsb r3, [r0, r3] ldrh r2, [r5, 0x22] adds r2, r3 ldrh r4, [r5, 0x22] adds r0, r6, 0 adds r0, 0x29 movs r1, 0 ldrsb r1, [r0, r1] ldrh r0, [r6, 0x22] subs r0, r1 lsls r0, 16 asrs r0, 16 adds r3, r0, r3 lsls r2, 16 asrs r2, 16 lsls r3, 16 asrs r3, 16 cmp r2, r3 blt _081288BC cmp r2, r0 bge _081288E4 _081288BC: lsls r0, r4, 16 asrs r0, 16 cmp r0, r3 ble _081288E4 adds r2, r6, 0 adds r2, 0x43 adds r0, r5, 0 adds r0, 0x43 ldrb r1, [r0] ldrb r0, [r2] cmp r0, r1 bhi _081288E4 adds r0, r1, 0x2 strb r0, [r2] b _081288EE .align 2, 0 _081288DC: .4byte gMapObjects _081288E0: .4byte gSprites _081288E4: adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0xF bls _08128842 _081288EE: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_812882C .align 2, 0 @ Don't pad with nop.