diff options
Diffstat (limited to 'asm/event_data.s')
-rw-r--r-- | asm/event_data.s | 565 |
1 files changed, 565 insertions, 0 deletions
diff --git a/asm/event_data.s b/asm/event_data.s new file mode 100644 index 000000000..0ae8b4eb7 --- /dev/null +++ b/asm/event_data.s @@ -0,0 +1,565 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_809D300 +sub_809D300: @ 809D300 + push {r4,lr} + ldr r4, =gSaveBlock1Ptr + ldr r0, [r4] + ldr r1, =0x00001270 + adds r0, r1 + movs r2, 0x96 + lsls r2, 1 + movs r1, 0 + bl memset + ldr r0, [r4] + ldr r1, =0x0000139c + adds r0, r1 + movs r2, 0x80 + lsls r2, 2 + movs r1, 0 + bl memset + ldr r0, =gUnknown_020375FC + movs r1, 0 + movs r2, 0x10 + bl memset + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_809D300 + + thumb_func_start sub_809D344 +sub_809D344: @ 809D344 + push {lr} + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x00001270 + adds r2, r0, r1 + movs r1, 0 + str r1, [r2] + ldr r1, =0x0000139c + adds r0, r1 + movs r1, 0 + movs r2, 0x20 + bl memset + ldr r0, =0x000008ad + bl FlagReset + ldr r0, =0x000008ae + bl FlagReset + ldr r0, =0x00000889 + bl FlagReset + ldr r0, =0x000008c1 + bl FlagReset + movs r0, 0x88 + lsls r0, 4 + bl FlagReset + pop {r0} + bx r0 + .pool + thumb_func_end sub_809D344 + + thumb_func_start sub_809D3A0 +sub_809D3A0: @ 809D3A0 + push {lr} + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldr r1, =0x00001394 + adds r0, r1 + movs r1, 0 + movs r2, 0x8 + bl memset + pop {r0} + bx r0 + .pool + thumb_func_end sub_809D3A0 + + thumb_func_start sub_809D3C0 +sub_809D3C0: @ 809D3C0 + push {lr} + ldr r0, =0x00004046 + bl GetVarPointer + ldr r1, =gSaveBlock2Ptr + ldr r2, [r1] + movs r1, 0 + strb r1, [r2, 0x1A] + strh r1, [r0] + ldr r0, =0x00000896 + bl FlagReset + pop {r0} + bx r0 + .pool + thumb_func_end sub_809D3C0 + + thumb_func_start sub_809D3E8 +sub_809D3E8: @ 809D3E8 + push {r4,r5,lr} + ldr r0, =0x00004046 + bl GetVarPointer + ldr r4, =gSaveBlock2Ptr + ldr r2, [r4] + movs r5, 0 + movs r1, 0xDA + strb r1, [r2, 0x1A] + ldr r2, =0x00000302 + adds r1, r2, 0 + strh r1, [r0] + ldr r0, =0x00000896 + bl FlagSet + ldr r1, [r4] + movs r0, 0x1 + strb r0, [r1, 0x19] + ldr r0, [r4] + strb r5, [r0, 0x18] + bl sub_80BB358 + pop {r4,r5} + pop {r0} + bx r0 + .pool + thumb_func_end sub_809D3E8 + + thumb_func_start sub_809D42C +sub_809D42C: @ 809D42C + push {lr} + ldr r0, =gSaveBlock2Ptr + ldr r0, [r0] + ldrb r0, [r0, 0x1A] + cmp r0, 0xDA + bne _0809D468 + ldr r0, =0x00004046 + bl VarGet + lsls r0, 16 + ldr r1, =0x03020000 + cmp r0, r1 + bne _0809D468 + ldr r0, =0x00000896 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _0809D468 + movs r0, 0x1 + b _0809D46A + .pool +_0809D468: + movs r0, 0 +_0809D46A: + pop {r1} + bx r1 + thumb_func_end sub_809D42C + + thumb_func_start sub_809D470 +sub_809D470: @ 809D470 + push {lr} + ldr r0, =0x000008ac + bl FlagReset + pop {r0} + bx r0 + .pool + thumb_func_end sub_809D470 + + thumb_func_start sub_809D480 +sub_809D480: @ 809D480 + push {lr} + ldr r0, =0x000008ac + bl FlagSet + pop {r0} + bx r0 + .pool + thumb_func_end sub_809D480 + + thumb_func_start sub_809D490 +sub_809D490: @ 809D490 + push {lr} + ldr r0, =0x000008ac + bl FlagGet + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .pool + thumb_func_end sub_809D490 + + thumb_func_start sub_809D4A4 +sub_809D4A4: @ 809D4A4 + push {lr} + ldr r0, =0x000008db + bl FlagReset + pop {r0} + bx r0 + .pool + thumb_func_end sub_809D4A4 + + thumb_func_start sub_809D4B4 +sub_809D4B4: @ 809D4B4 + push {lr} + ldr r0, =0x000008db + bl FlagSet + pop {r0} + bx r0 + .pool + thumb_func_end sub_809D4B4 + + thumb_func_start sub_809D4C4 +sub_809D4C4: @ 809D4C4 + push {lr} + ldr r0, =0x000008db + bl FlagGet + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .pool + thumb_func_end sub_809D4C4 + + thumb_func_start sub_809D4D8 +sub_809D4D8: @ 809D4D8 + push {lr} + movs r0, 0xF2 + lsls r0, 1 + bl FlagReset + ldr r0, =0x000001e5 + bl FlagReset + movs r0, 0xF3 + lsls r0, 1 + bl FlagReset + ldr r0, =0x000001e7 + bl FlagReset + movs r0, 0xF4 + lsls r0, 1 + bl FlagReset + ldr r0, =0x000001e9 + bl FlagReset + movs r0, 0xF5 + lsls r0, 1 + bl FlagReset + ldr r0, =0x000001eb + bl FlagReset + movs r0, 0xF6 + lsls r0, 1 + bl FlagReset + ldr r0, =0x000001ed + bl FlagReset + movs r0, 0xF7 + lsls r0, 1 + bl FlagReset + ldr r0, =0x000001ef + bl FlagReset + movs r0, 0xF8 + lsls r0, 1 + bl FlagReset + ldr r0, =0x000001f1 + bl FlagReset + movs r0, 0xF9 + lsls r0, 1 + bl FlagReset + ldr r0, =0x000001f3 + bl FlagReset + pop {r0} + bx r0 + .pool + thumb_func_end sub_809D4D8 + + thumb_func_start sub_809D570 +sub_809D570: @ 809D570 + push {lr} + ldr r0, =0x000040dd + movs r1, 0 + bl VarSet + ldr r0, =0x000040de + movs r1, 0 + bl VarSet + ldr r0, =0x000040df + movs r1, 0 + bl VarSet + ldr r0, =0x000040e0 + movs r1, 0 + bl VarSet + ldr r0, =0x000040e1 + movs r1, 0 + bl VarSet + ldr r0, =0x000040e2 + movs r1, 0 + bl VarSet + ldr r0, =0x000040e3 + movs r1, 0 + bl VarSet + ldr r0, =0x000040e4 + movs r1, 0 + bl VarSet + pop {r0} + bx r0 + .pool + thumb_func_end sub_809D570 + + thumb_func_start sub_809D5D8 +sub_809D5D8: @ 809D5D8 + push {lr} + ldr r0, =0x0000402c + movs r1, 0 + bl VarSet + ldr r0, =0x000008c2 + bl FlagReset + pop {r0} + bx r0 + .pool + thumb_func_end sub_809D5D8 + + thumb_func_start sub_809D5F4 +sub_809D5F4: @ 809D5F4 + push {lr} + ldr r0, =0x0000402c + movs r1, 0x92 + lsls r1, 4 + bl VarSet + ldr r0, =0x000008c2 + bl FlagSet + pop {r0} + bx r0 + .pool + thumb_func_end sub_809D5F4 + + thumb_func_start sub_809D614 +sub_809D614: @ 809D614 + push {lr} + ldr r0, =0x000008c2 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _0809D640 + ldr r0, =0x0000402c + bl VarGet + lsls r0, 16 + movs r1, 0x92 + lsls r1, 20 + cmp r0, r1 + bne _0809D640 + movs r0, 0x1 + b _0809D642 + .pool +_0809D640: + movs r0, 0 +_0809D642: + pop {r1} + bx r1 + thumb_func_end sub_809D614 + + thumb_func_start GetVarPointer +@ u16 *GetVarPointer(u16 varId) +GetVarPointer: @ 809D648 + push {lr} + lsls r0, 16 + lsrs r1, r0, 16 + adds r2, r1, 0 + ldr r0, =0x00003fff + cmp r1, r0 + bhi _0809D660 + movs r0, 0 + b _0809D688 + .pool +_0809D660: + lsls r0, r1, 16 + cmp r0, 0 + bge _0809D67C + ldr r0, =gUnknown_081DBA0C + ldr r2, =0xffff8000 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + b _0809D688 + .pool +_0809D67C: + ldr r0, =gSaveBlock1Ptr + lsls r1, r2, 1 + ldr r2, =0xffff939c + adds r1, r2 + ldr r0, [r0] + adds r0, r1 +_0809D688: + pop {r1} + bx r1 + .pool + thumb_func_end GetVarPointer + + thumb_func_start VarGet +@ u16 VarGet(u16 varId) +VarGet: @ 809D694 + push {r4,lr} + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r4, 0 + bl GetVarPointer + cmp r0, 0 + beq _0809D6A8 + ldrh r0, [r0] + b _0809D6AA +_0809D6A8: + adds r0, r4, 0 +_0809D6AA: + pop {r4} + pop {r1} + bx r1 + thumb_func_end VarGet + + thumb_func_start VarSet +@ bool8 VarSet(u16 varId, u16 value) +VarSet: @ 809D6B0 + push {r4,lr} + lsls r0, 16 + lsrs r0, 16 + lsls r1, 16 + lsrs r4, r1, 16 + bl GetVarPointer + cmp r0, 0 + beq _0809D6C8 + strh r4, [r0] + movs r0, 0x1 + b _0809D6CA +_0809D6C8: + movs r0, 0 +_0809D6CA: + pop {r4} + pop {r1} + bx r1 + thumb_func_end VarSet + + thumb_func_start VarGetFieldObjectGraphicsId +@ u8 VarGetFieldObjectGraphicsId(u8 index) +VarGetFieldObjectGraphicsId: @ 809D6D0 + push {lr} + lsls r0, 24 + lsrs r0, 8 + ldr r1, =0x40100000 + adds r0, r1 + lsrs r0, 16 + bl VarGet + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + .pool + thumb_func_end VarGetFieldObjectGraphicsId + + thumb_func_start GetFlagPointer +@ u8 *GetFlagPointer(u16 flagId) +GetFlagPointer: @ 809D6EC + push {lr} + lsls r1, r0, 16 + lsrs r2, r1, 16 + adds r3, r2, 0 + cmp r2, 0 + bne _0809D6FC + movs r0, 0 + b _0809D72E +_0809D6FC: + ldr r0, =0x00003fff + cmp r2, r0 + bhi _0809D71C + ldr r0, =gSaveBlock1Ptr + lsrs r1, 19 + ldr r2, =0x00001270 + adds r1, r2 + ldr r0, [r0] + b _0809D72C + .pool +_0809D71C: + ldr r1, =0xffffc000 + adds r0, r3, r1 + cmp r0, 0 + bge _0809D728 + ldr r2, =0xffffc007 + adds r0, r3, r2 +_0809D728: + asrs r0, 3 + ldr r1, =gUnknown_020375FC +_0809D72C: + adds r0, r1 +_0809D72E: + pop {r1} + bx r1 + .pool + thumb_func_end GetFlagPointer + + thumb_func_start FlagSet +@ bool8 FlagSet(u16 flagId) +FlagSet: @ 809D740 + push {r4,lr} + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r4, 0 + bl GetFlagPointer + adds r2, r0, 0 + cmp r2, 0 + beq _0809D760 + movs r0, 0x7 + ands r0, r4 + movs r1, 0x1 + lsls r1, r0 + ldrb r0, [r2] + orrs r1, r0 + strb r1, [r2] +_0809D760: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end FlagSet + + thumb_func_start FlagReset +@ bool8 FlagReset(u16 flagId) +FlagReset: @ 809D768 + push {r4,lr} + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r4, 0 + bl GetFlagPointer + adds r2, r0, 0 + cmp r2, 0 + beq _0809D788 + movs r0, 0x7 + ands r0, r4 + movs r1, 0x1 + lsls r1, r0 + ldrb r0, [r2] + bics r0, r1 + strb r0, [r2] +_0809D788: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end FlagReset + + thumb_func_start FlagGet +@ bool8 FlagGet(u16 flagId) +FlagGet: @ 809D790 + push {r4,lr} + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r4, 0 + bl GetFlagPointer + cmp r0, 0 + beq _0809D7B4 + ldrb r0, [r0] + movs r1, 0x7 + ands r1, r4 + asrs r0, r1 + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0809D7B4 + movs r0, 0x1 + b _0809D7B6 +_0809D7B4: + movs r0, 0 +_0809D7B6: + pop {r4} + pop {r1} + bx r1 + thumb_func_end FlagGet + + .align 2, 0 @ Don't pad with nop. |