summaryrefslogtreecommitdiff
path: root/asm/sprite.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/sprite.s')
-rw-r--r--asm/sprite.s2188
1 files changed, 121 insertions, 2067 deletions
diff --git a/asm/sprite.s b/asm/sprite.s
index 278c0ed17..6e7585960 100644
--- a/asm/sprite.s
+++ b/asm/sprite.s
@@ -5,1956 +5,10 @@
.text
- thumb_func_start AddSpritesToOamBuffer
-@ void AddSpritesToOamBuffer()
-AddSpritesToOamBuffer: @ 8006D68
- push {r4-r6,lr}
- sub sp, 0x4
- movs r4, 0
- mov r0, sp
- strb r4, [r0]
-_08006D72:
- ldr r0, =gSpriteOrder
- adds r0, r4, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r2, r0, r1
- adds r0, r2, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r0, 0x5
- ands r0, r1
- cmp r0, 0x1
- bne _08006D9E
- adds r0, r2, 0
- mov r1, sp
- bl AddSprite
- lsls r0, 24
- cmp r0, 0
- bne _08006DD8
-_08006D9E:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3F
- bls _08006D72
- mov r0, sp
- ldr r4, =gOamLimit
- ldrb r0, [r0]
- ldrb r1, [r4]
- cmp r0, r1
- bcs _08006DD8
- mov r1, sp
- ldr r5, =gUnknown_030022F8
- ldr r0, =gDefaultOamAttributes
- ldr r2, [r0]
- ldr r3, [r0, 0x4]
-_08006DBE:
- ldrb r0, [r1]
- lsls r0, 3
- adds r0, r5
- str r2, [r0]
- str r3, [r0, 0x4]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- ldrb r6, [r4]
- cmp r0, r6
- bcc _08006DBE
-_08006DD8:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end AddSpritesToOamBuffer
-
- thumb_func_start CreateSprite
-@ u8 CreateSprite(struct objtemplate *template, u16 x, u16 y, u8 subpriority)
-CreateSprite: @ 8006DF4
- push {r4-r7,lr}
- sub sp, 0x4
- adds r7, r0, 0
- lsls r3, 24
- lsrs r4, r3, 24
- movs r3, 0
- ldr r0, =gSprites
- mov r12, r0
- lsls r5, r1, 16
- lsls r6, r2, 16
-_08006E08:
- lsls r0, r3, 4
- adds r0, r3
- lsls r0, 2
- add r0, r12
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- bne _08006E34
- str r4, [sp]
- adds r0, r3, 0
- adds r1, r7, 0
- asrs r2, r5, 16
- asrs r3, r6, 16
- bl CreateSpriteAt
- lsls r0, 24
- lsrs r0, 24
- b _08006E40
- .pool
-_08006E34:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3F
- bls _08006E08
- movs r0, 0x40
-_08006E40:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end CreateSprite
-
- thumb_func_start CreateSpriteAtEnd
-@ u8 CreateSpriteAtEnd(struct objtemplate *template, u16 x, u16 y, u8 subpriority)
-CreateSpriteAtEnd: @ 8006E48
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r7, r0, 0
- lsls r3, 24
- lsrs r6, r3, 24
- movs r3, 0x3F
- ldr r0, =gSprites
- mov r8, r0
- movs r0, 0x1
- negs r0, r0
- mov r12, r0
- lsls r4, r1, 16
- lsls r5, r2, 16
-_08006E66:
- lsls r0, r3, 16
- asrs r1, r0, 16
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- bne _08006E98
- lsls r0, r3, 24
- lsrs r0, 24
- str r6, [sp]
- adds r1, r7, 0
- asrs r2, r4, 16
- asrs r3, r5, 16
- bl CreateSpriteAt
- lsls r0, 24
- lsrs r0, 24
- b _08006EA6
- .pool
-_08006E98:
- subs r0, r1, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- asrs r0, 16
- cmp r0, r12
- bgt _08006E66
- movs r0, 0x40
-_08006EA6:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end CreateSpriteAtEnd
-
- thumb_func_start CreateInvisibleSprite
-@ int CreateInvisibleSprite(void ( *func)())
-CreateInvisibleSprite: @ 8006EB4
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r0, =gUnknown_082EC6AC
- movs r1, 0
- movs r2, 0
- movs r3, 0x1F
- bl CreateSprite
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x40
- beq _08006EF4
- ldr r4, =gSprites
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 2
- adds r2, r1, r4
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r3, 0x4
- orrs r0, r3
- strb r0, [r2]
- adds r4, 0x1C
- adds r1, r4
- str r6, [r1]
- adds r0, r5, 0
- b _08006EF6
- .pool
-_08006EF4:
- movs r0, 0x40
-_08006EF6:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end CreateInvisibleSprite
-
- thumb_func_start CreateSpriteAt
-@ u8 CreateSpriteAt(u8 index, struct objtemplate *template, u16 x, u16 y, u8 subpriority)
-CreateSpriteAt: @ 8006EFC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r8, r1
- adds r5, r2, 0
- adds r6, r3, 0
- ldr r4, [sp, 0x20]
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r5, 16
- lsrs r5, 16
- lsls r6, 16
- lsrs r6, 16
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 4
- add r0, r10
- lsls r0, 2
- ldr r1, =gSprites
- adds r7, r0, r1
- adds r0, r7, 0
- bl ResetSprite
- adds r2, r7, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x3F
- adds r0, r7
- mov r9, r0
- ldrb r0, [r0]
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x8
- orrs r0, r1
- movs r1, 0x40
- orrs r0, r1
- mov r1, r9
- strb r0, [r1]
- adds r0, r7, 0
- adds r0, 0x43
- strb r4, [r0]
- mov r1, r8
- ldr r0, [r1, 0x4]
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [r7]
- str r1, [r7, 0x4]
- mov r1, r8
- ldr r0, [r1, 0x8]
- str r0, [r7, 0x8]
- ldr r0, [r1, 0x10]
- str r0, [r7, 0x10]
- str r1, [r7, 0x14]
- ldr r0, [r1, 0x14]
- str r0, [r7, 0x1C]
- strh r5, [r7, 0x20]
- strh r6, [r7, 0x22]
- ldrb r3, [r7, 0x1]
- lsrs r1, r3, 6
- ldrb r2, [r7, 0x3]
- lsrs r2, 6
- lsls r3, 30
- lsrs r3, 30
- adds r0, r7, 0
- bl CalcCenterToCornerVec
- mov r0, r8
- ldrh r1, [r0]
- ldr r4, =0xffff0000
- lsrs r0, r4, 16
- cmp r1, r0
- bne _08006FF8
- mov r1, r8
- ldr r0, [r1, 0xC]
- str r0, [r7, 0xC]
- ldrh r0, [r0, 0x4]
- lsrs r0, 5
- lsls r0, 24
- lsrs r0, 24
- bl AllocSpriteTiles
- lsls r0, 16
- lsrs r2, r0, 16
- asrs r0, 16
- asrs r1, r4, 16
- cmp r0, r1
- bne _08006FC8
- adds r0, r7, 0
- bl ResetSprite
- movs r0, 0x40
- b _08007040
- .pool
-_08006FC8:
- ldr r1, =0x000003ff
- adds r0, r1, 0
- ands r2, r0
- ldrh r1, [r7, 0x4]
- ldr r0, =0xfffffc00
- ands r0, r1
- orrs r0, r2
- strh r0, [r7, 0x4]
- mov r0, r9
- ldrb r1, [r0]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- mov r1, r9
- strb r0, [r1]
- adds r1, r7, 0
- adds r1, 0x40
- movs r0, 0
- strh r0, [r1]
- b _0800700C
- .pool
-_08006FF8:
- mov r1, r8
- ldrh r0, [r1]
- bl GetSpriteTileStartByTag
- adds r1, r7, 0
- adds r1, 0x40
- strh r0, [r1]
- adds r0, r7, 0
- bl SetSpriteSheetFrameTileNum
-_0800700C:
- ldrb r0, [r7, 0x1]
- lsls r0, 30
- lsrs r0, 30
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08007020
- adds r0, r7, 0
- bl InitSpriteAffineAnim
-_08007020:
- mov r0, r8
- ldrh r1, [r0, 0x2]
- ldr r0, =0x0000ffff
- cmp r1, r0
- beq _0800703E
- mov r1, r8
- ldrh r0, [r1, 0x2]
- bl IndexOfSpritePaletteTag
- lsls r0, 4
- ldrb r2, [r7, 0x5]
- movs r1, 0xF
- ands r1, r2
- orrs r1, r0
- strb r1, [r7, 0x5]
-_0800703E:
- mov r0, r10
-_08007040:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end CreateSpriteAt
-
- thumb_func_start CreateSpriteAndAnimate
-@ u8 CreateSpriteAndAnimate(struct objtemplate *template, u16 x, u16 y, u8 subpriority)
-CreateSpriteAndAnimate: @ 8007054
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r10, r0
- lsls r3, 24
- lsrs r3, 24
- mov r9, r3
- movs r3, 0
- ldr r5, =gSprites
- lsls r1, 16
- mov r12, r1
- lsls r2, 16
- mov r8, r2
-_08007074:
- lsls r0, r3, 4
- adds r0, r3
- lsls r6, r0, 2
- adds r4, r6, r5
- adds r7, r4, 0
- adds r7, 0x3E
- ldrb r0, [r7]
- lsls r0, 31
- cmp r0, 0
- bne _080070CC
- mov r0, r9
- str r0, [sp]
- adds r0, r3, 0
- mov r1, r10
- mov r3, r12
- asrs r2, r3, 16
- mov r5, r8
- asrs r3, r5, 16
- bl CreateSpriteAt
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- cmp r5, 0x40
- beq _080070D6
- ldr r1, =gSprites + 0x1C
- adds r0, r6, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- ldrb r0, [r7]
- lsls r0, 31
- cmp r0, 0
- beq _080070C0
- adds r0, r4, 0
- bl AnimateSprite
-_080070C0:
- adds r0, r5, 0
- b _080070D8
- .pool
-_080070CC:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3F
- bls _08007074
-_080070D6:
- movs r0, 0x40
-_080070D8:
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end CreateSpriteAndAnimate
-
- thumb_func_start DestroySprite
-@ void DestroySprite(struct obj *object)
-DestroySprite: @ 80070E8
- push {r4-r7,lr}
- adds r5, r0, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08007144
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0800713E
- ldr r0, [r5, 0xC]
- ldrh r2, [r0, 0x4]
- lsrs r2, 5
- ldrh r0, [r5, 0x4]
- lsls r0, 22
- lsrs r1, r0, 22
- adds r4, r1, r2
- adds r3, r1, 0
- cmp r3, r4
- bcs _0800713E
- ldr r0, =gSpriteTileAllocBitmap
- mov r12, r0
- movs r6, 0x7
- movs r7, 0x1
-_08007122:
- lsrs r2, r3, 3
- add r2, r12
- adds r0, r3, 0
- ands r0, r6
- adds r1, r7, 0
- lsls r1, r0
- ldrb r0, [r2]
- bics r0, r1
- strb r0, [r2]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r4
- bcc _08007122
-_0800713E:
- adds r0, r5, 0
- bl ResetSprite
-_08007144:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end DestroySprite
-
- thumb_func_start ResetOamRange
-@ void ResetOamRange(u8 startIndex, u8 endIndex)
-ResetOamRange: @ 8007150
- push {r4-r6,lr}
- lsls r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- lsrs r3, r0, 24
- cmp r3, r4
- bcs _08007178
- ldr r6, =gUnknown_030022F8
- ldr r5, =gDefaultOamAttributes
-_08007162:
- lsls r0, r3, 3
- adds r0, r6
- ldr r1, [r5]
- ldr r2, [r5, 0x4]
- str r1, [r0]
- str r2, [r0, 0x4]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, r4
- bcc _08007162
-_08007178:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ResetOamRange
-
- thumb_func_start LoadOamFromSprites
-@ void LoadOamFromSprites()
-LoadOamFromSprites: @ 8007188
- push {lr}
- ldr r2, =gMain
- ldr r1, =0x00000439
- adds r0, r2, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080071A8
- adds r0, r2, 0
- adds r0, 0x38
- movs r1, 0xE0
- lsls r1, 19
- ldr r2, =0x04000100
- bl CpuSet
-_080071A8:
- pop {r0}
- bx r0
- .pool
- thumb_func_end LoadOamFromSprites
-
- thumb_func_start ClearSpriteCopyRequests
-@ void ClearSpriteCopyRequests()
-ClearSpriteCopyRequests: @ 80071B8
- push {r4,r5,lr}
- ldr r0, =gShouldProcessSpriteCopyRequests
- movs r1, 0
- strb r1, [r0]
- ldr r0, =gSpriteCopyRequestCount
- strb r1, [r0]
- movs r2, 0
- ldr r4, =gSpriteCopyRequests
- movs r3, 0
- adds r5, r4, 0x4
-_080071CC:
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r4
- str r3, [r1]
- adds r0, r5
- str r3, [r0]
- strh r3, [r1, 0x8]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3F
- bls _080071CC
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ClearSpriteCopyRequests
-
- thumb_func_start ResetOamMatrices
-@ void ResetOamMatrices()
-ResetOamMatrices: @ 80071F8
- push {r4,lr}
- movs r1, 0
- ldr r4, =gOamMatrices
- movs r3, 0
- movs r2, 0x80
- lsls r2, 1
-_08007204:
- lsls r0, r1, 3
- adds r0, r4
- strh r2, [r0]
- strh r3, [r0, 0x2]
- strh r3, [r0, 0x4]
- strh r2, [r0, 0x6]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1F
- bls _08007204
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ResetOamMatrices
-
- thumb_func_start SetOamMatrix
-@ void SetOamMatrix(u8 index, u16 a, u16 b, u16 c, u16 d)
-SetOamMatrix: @ 8007224
- push {r4,r5,lr}
- ldr r5, [sp, 0xC]
- lsls r0, 24
- ldr r4, =gOamMatrices
- lsrs r0, 21
- adds r0, r4
- strh r1, [r0]
- strh r2, [r0, 0x2]
- strh r3, [r0, 0x4]
- strh r5, [r0, 0x6]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end SetOamMatrix
-
- thumb_func_start ResetSprite
-@ void ResetSprite(struct obj *object)
-ResetSprite: @ 8007244
- push {lr}
- ldr r1, =sDummySprite
- movs r2, 0x44
- bl memcpy
- pop {r0}
- bx r0
- .pool
- thumb_func_end ResetSprite
-
- thumb_func_start CalcCenterToCornerVec
-@ void CalcCenterToCornerVec(struct obj *object, u8 shape, u8 size, u8 affineMode)
-CalcCenterToCornerVec: @ 8007258
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r1, 24
- lsls r2, 24
- lsls r3, 24
- lsrs r3, 24
- ldr r4, =gUnknown_082EC634
- lsrs r2, 23
- lsrs r1, 21
- adds r2, r1
- adds r0, r2, r4
- ldrb r5, [r0]
- adds r4, 0x1
- adds r2, r4
- ldrb r1, [r2]
- movs r0, 0x2
- ands r3, r0
- cmp r3, 0
- beq _08007286
- lsls r0, r5, 25
- lsrs r5, r0, 24
- lsls r0, r1, 25
- lsrs r1, r0, 24
-_08007286:
- adds r0, r6, 0
- adds r0, 0x28
- strb r5, [r0]
- adds r0, 0x1
- strb r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end CalcCenterToCornerVec
-
- thumb_func_start AllocSpriteTiles
-@ s16 AllocSpriteTiles(u16 numTiles)
-AllocSpriteTiles: @ 800729C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- bne _080072F2
- ldr r0, =gReservedSpriteTileCount
- ldrh r3, [r0]
- ldr r0, =0x000003ff
- cmp r3, r0
- bhi _080072DA
- ldr r7, =gSpriteTileAllocBitmap
- movs r6, 0x7
- adds r4, r0, 0
- movs r5, 0x1
-_080072BE:
- lsrs r2, r3, 3
- adds r2, r7
- adds r0, r3, 0
- ands r0, r6
- adds r1, r5, 0
- lsls r1, r0
- ldrb r0, [r2]
- bics r0, r1
- strb r0, [r2]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r4
- bls _080072BE
-_080072DA:
- movs r0, 0
- b _080073A4
- .pool
-_080072EC:
- movs r0, 0x1
- negs r0, r0
- b _080073A4
-_080072F2:
- ldr r0, =gReservedSpriteTileCount
- ldrh r3, [r0]
- ldr r0, =gSpriteTileAllocBitmap
- mov r9, r0
- movs r7, 0x7
- movs r6, 0x1
-_080072FE:
- lsrs r0, r3, 3
- add r0, r9
- ldrb r1, [r0]
- adds r0, r3, 0
- ands r0, r7
- asrs r1, r0
- ands r1, r6
- cmp r1, 0
- beq _08007332
- movs r5, 0x80
- lsls r5, 3
- ldr r2, =gSpriteTileAllocBitmap
-_08007316:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r5
- beq _080072EC
- lsrs r0, 19
- adds r0, r2
- ldrb r1, [r0]
- adds r0, r3, 0
- ands r0, r7
- asrs r1, r0
- ands r1, r6
- cmp r1, 0
- bne _08007316
-_08007332:
- mov r8, r3
- movs r2, 0x1
- cmp r2, r4
- beq _0800736C
- movs r1, 0x80
- lsls r1, 3
- mov r12, r1
- ldr r5, =gSpriteTileAllocBitmap
-_08007342:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r12
- beq _080072EC
- lsrs r0, 19
- adds r0, r5
- ldrb r1, [r0]
- adds r0, r3, 0
- ands r0, r7
- asrs r1, r0
- ands r1, r6
- cmp r1, 0
- bne _08007368
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r4
- bne _08007342
-_08007368:
- cmp r2, r4
- bne _080072FE
-_0800736C:
- mov r1, r8
- lsls r0, r1, 16
- lsrs r3, r0, 16
- asrs r1, r0, 16
- adds r1, r4, r1
- adds r6, r0, 0
- cmp r3, r1
- bge _080073A2
- ldr r0, =gSpriteTileAllocBitmap
- mov r8, r0
- movs r7, 0x7
- adds r4, r1, 0
- movs r5, 0x1
-_08007386:
- lsrs r2, r3, 3
- add r2, r8
- adds r1, r3, 0
- ands r1, r7
- adds r0, r5, 0
- lsls r0, r1
- ldrb r1, [r2]
- orrs r0, r1
- strb r0, [r2]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r4
- blt _08007386
-_080073A2:
- asrs r0, r6, 16
-_080073A4:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end AllocSpriteTiles
-
- thumb_func_start Unused_ObjectTileAllocationBitArrayOp
-@ unsigned int Unused_ObjectTileAllocationBitArrayOp(u16 tileNum, u8 op)
-Unused_ObjectTileAllocationBitArrayOp: @ 80073B8
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r2, r0, 16
- lsls r1, 24
- lsrs r1, 24
- lsrs r0, 19
- lsls r0, 24
- lsrs r3, r0, 24
- adds r6, r3, 0
- movs r0, 0x7
- ands r2, r0
- adds r4, r2, 0
- movs r5, 0
- cmp r1, 0
- bne _080073F0
- movs r0, 0x1
- lsls r0, r2
- mvns r0, r0
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, =gSpriteTileAllocBitmap
- adds r0, r3, r0
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- b _0800741C
- .pool
-_080073F0:
- cmp r1, 0x1
- bne _0800740C
- lsls r1, r2
- lsls r0, r1, 24
- lsrs r2, r0, 24
- ldr r0, =gSpriteTileAllocBitmap
- adds r0, r3, r0
- ldrb r1, [r0]
- orrs r2, r1
- strb r2, [r0]
- b _0800741C
- .pool
-_0800740C:
- movs r0, 0x80
- lsls r0, 17
- lsls r0, r4
- lsrs r5, r0, 24
- ldr r0, =gSpriteTileAllocBitmap
- adds r0, r6, r0
- ldrb r0, [r0]
- ands r5, r0
-_0800741C:
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end Unused_ObjectTileAllocationBitArrayOp
-
- thumb_func_start SpriteCallbackDummy
-@ void SpriteCallbackDummy(struct obj *object)
-SpriteCallbackDummy: @ 8007428
- bx lr
- thumb_func_end SpriteCallbackDummy
-
- thumb_func_start ProcessSpriteCopyRequests
-@ void ProcessSpriteCopyRequests()
-ProcessSpriteCopyRequests: @ 800742C
- push {r4-r7,lr}
- ldr r0, =gShouldProcessSpriteCopyRequests
- ldrb r0, [r0]
- cmp r0, 0
- beq _08007474
- movs r4, 0
- ldr r1, =gSpriteCopyRequestCount
- ldrb r0, [r1]
- cmp r0, 0
- beq _0800746E
- ldr r6, =gSpriteCopyRequests
- adds r7, r6, 0x4
- adds r5, r1, 0
-_08007446:
- lsls r1, r4, 1
- adds r1, r4
- lsls r1, 2
- adds r2, r1, r6
- ldr r0, [r2]
- adds r1, r7
- ldr r1, [r1]
- ldrh r2, [r2, 0x8]
- lsrs r2, 1
- bl CpuSet
- ldrb r1, [r5]
- subs r1, 0x1
- strb r1, [r5]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- cmp r1, 0
- bne _08007446
-_0800746E:
- ldr r1, =gShouldProcessSpriteCopyRequests
- movs r0, 0
- strb r0, [r1]
-_08007474:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ProcessSpriteCopyRequests
-
- thumb_func_start AddPicToObjectCopyRequests
-@ void AddPicToObjectCopyRequests(u16 picIndex, u16 targetTileNum, struct obj_tiles *pics)
-AddPicToObjectCopyRequests: @ 8007488
- push {r4-r6,lr}
- adds r5, r2, 0
- lsls r0, 16
- lsrs r2, r0, 16
- lsls r1, 16
- lsrs r6, r1, 16
- ldr r4, =gSpriteCopyRequestCount
- ldrb r0, [r4]
- cmp r0, 0x3F
- bhi _080074D8
- ldr r3, =gSpriteCopyRequests
- adds r1, r0, 0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- lsls r2, 3
- adds r2, r5
- ldr r1, [r2]
- str r1, [r0]
- ldrb r0, [r4]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r0, r3, 0x4
- adds r1, r0
- lsls r0, r6, 5
- ldr r5, =0x06010000
- adds r0, r5
- str r0, [r1]
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r1, [r2, 0x4]
- strh r1, [r0, 0x8]
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
-_080074D8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end AddPicToObjectCopyRequests
-
- thumb_func_start AddTilesToObjectCopyRequests
-@ void AddTilesToObjectCopyRequests(void *src, void *dest, u16 size)
-AddTilesToObjectCopyRequests: @ 80074EC
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r2, 16
- lsrs r6, r2, 16
- ldr r3, =gSpriteCopyRequestCount
- ldrb r0, [r3]
- cmp r0, 0x3F
- bhi _0800752C
- ldr r2, =gSpriteCopyRequests
- adds r1, r0, 0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- str r4, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r1, r2, 0x4
- adds r0, r1
- str r5, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r6, [r0, 0x8]
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
-_0800752C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end AddTilesToObjectCopyRequests
-
- thumb_func_start Unused_CopyFromObjects
-@ void Unused_CopyFromObjects(void *dest)
-Unused_CopyFromObjects: @ 800753C
- push {r4,lr}
- adds r1, r0, 0
- ldr r3, =gSprites
- movs r2, 0
- ldr r4, =0x000010ff
-_08007546:
- ldrb r0, [r3]
- strb r0, [r1]
- adds r1, 0x1
- adds r3, 0x1
- adds r2, 0x1
- cmp r2, r4
- bls _08007546
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end Unused_CopyFromObjects
-
- thumb_func_start Unused_CopyToObjects
-@ void Unused_CopyToObjects(void *src)
-Unused_CopyToObjects: @ 8007564
- push {r4,lr}
- adds r1, r0, 0
- ldr r3, =gSprites
- movs r2, 0
- ldr r4, =0x000010ff
-_0800756E:
- ldrb r0, [r1]
- strb r0, [r3]
- adds r1, 0x1
- adds r3, 0x1
- adds r2, 0x1
- cmp r2, r4
- bls _0800756E
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end Unused_CopyToObjects
-
- thumb_func_start ResetAllSprites
-@ void ResetAllSprites()
-ResetAllSprites: @ 800758C
- push {r4,r5,lr}
- movs r4, 0
-_08007590:
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r5, =gSprites
- adds r0, r5
- bl ResetSprite
- ldr r0, =gSpriteOrder
- adds r0, r4, r0
- strb r4, [r0]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3F
- bls _08007590
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r5
- bl ResetSprite
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ResetAllSprites
-
- thumb_func_start FreeObjectTiles
-@ void FreeObjectTiles(struct obj *object)
-FreeObjectTiles: @ 80075C8
- push {lr}
- ldr r2, [r0, 0x14]
- ldrh r1, [r2]
- ldr r0, =0x0000ffff
- cmp r1, r0
- beq _080075DA
- adds r0, r1, 0
- bl FreeObjectTilesByTag
-_080075DA:
- pop {r0}
- bx r0
- .pool
- thumb_func_end FreeObjectTiles
-
- thumb_func_start FreeObjectPalette
-@ void FreeObjectPalette(struct obj *object)
-FreeObjectPalette: @ 80075E4
- push {lr}
- ldr r0, [r0, 0x14]
- ldrh r0, [r0, 0x2]
- bl FreeObjectPaletteByTag
- pop {r0}
- bx r0
- thumb_func_end FreeObjectPalette
-
- thumb_func_start obj_free_rotscale_entry
-@ void obj_free_rotscale_entry(struct obj *obj)
-obj_free_rotscale_entry: @ 80075F4
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4, 0x1]
- lsls r0, 30
- lsrs r0, 30
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0800761A
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl rotscale_free_entry
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
-_0800761A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end obj_free_rotscale_entry
-
- thumb_func_start ResetSpriteAndFreeResources
-@ void ResetSpriteAndFreeResources(struct obj *object)
-ResetSpriteAndFreeResources: @ 8007620
- push {r4,lr}
- adds r4, r0, 0
- bl FreeObjectTiles
- adds r0, r4, 0
- bl FreeObjectPalette
- adds r0, r4, 0
- bl obj_free_rotscale_entry
- adds r0, r4, 0
- bl DestroySprite
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ResetSpriteAndFreeResources
-
- thumb_func_start AnimateSprite
-@ void AnimateSprite(struct obj *object)
-AnimateSprite: @ 8007640
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r2, =gUnknown_082EC6C4
- adds r5, r4, 0
- adds r5, 0x3F
- ldrb r1, [r5]
- movs r0, 0x4
- ands r0, r1
- adds r0, r2
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- ldr r0, =gAffineAnimsDisabled
- ldrb r0, [r0]
- cmp r0, 0
- bne _08007676
- ldr r0, =gUnknown_082EC6CC
- ldrb r1, [r5]
- lsls r1, 28
- lsrs r1, 31
- lsls r1, 2
- adds r1, r0
- ldr r1, [r1]
- adds r0, r4, 0
- bl _call_via_r1
-_08007676:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end AnimateSprite
-
- thumb_func_start BeginObjectImageAnim
-@ void BeginObjectImageAnim(struct obj *object)
-BeginObjectImageAnim: @ 8007688
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r4, r0, 0
- adds r3, r4, 0
- adds r3, 0x2B
- movs r2, 0
- strb r2, [r3]
- adds r5, r4, 0
- adds r5, 0x3F
- ldrb r1, [r5]
- movs r0, 0x11
- negs r0, r0
- ands r0, r1
- strb r0, [r5]
- adds r0, r4, 0
- adds r0, 0x2D
- strb r2, [r0]
- adds r2, r4, 0
- adds r2, 0x2A
- ldrb r1, [r2]
- ldr r0, [r4, 0x8]
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r3]
- ldr r1, [r1]
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0]
- mov r9, r0
- lsls r0, 16
- mov r8, r0
- asrs r1, r0, 16
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0800776C
- ldrb r1, [r5]
- subs r0, 0x4
- ands r0, r1
- strb r0, [r5]
- ldrb r1, [r2]
- ldr r0, [r4, 0x8]
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r3]
- ldr r1, [r1]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- lsls r1, r0, 10
- lsrs r3, r1, 26
- lsls r1, r0, 9
- lsrs r7, r1, 31
- lsls r0, 8
- lsrs r6, r0, 31
- cmp r3, 0
- beq _08007704
- subs r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
-_08007704:
- adds r2, r4, 0
- adds r2, 0x2C
- movs r0, 0x3F
- ands r3, r0
- ldrb r1, [r2]
- subs r0, 0x7F
- ands r0, r1
- orrs r0, r3
- strb r0, [r2]
- ldrb r0, [r4, 0x1]
- lsls r0, 30
- lsrs r0, 30
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0800772E
- adds r0, r4, 0
- adds r1, r7, 0
- adds r2, r6, 0
- bl obj_set_horizonal_and_vertical_flip
-_0800772E:
- ldrb r1, [r5]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0800775C
- adds r0, r4, 0
- adds r0, 0x40
- ldrh r1, [r0]
- add r1, r9
- ldr r2, =0x000003ff
- adds r0, r2, 0
- ands r1, r0
- ldrh r2, [r4, 0x4]
- ldr r0, =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- b _0800776C
- .pool
-_0800775C:
- mov r1, r8
- lsrs r0, r1, 16
- ldrh r1, [r4, 0x4]
- lsls r1, 22
- lsrs r1, 22
- ldr r2, [r4, 0xC]
- bl AddPicToObjectCopyRequests
-_0800776C:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end BeginObjectImageAnim
-
- thumb_func_start ContinueObjectImageAnim
-@ void ContinueObjectImageAnim(struct obj *object)
-ContinueObjectImageAnim: @ 8007778
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r0, 0x3F
- ands r0, r1
- cmp r0, 0
- beq _080077C8
- adds r0, r4, 0
- bl obj_anim_image_delay_progress
- adds r0, r4, 0
- adds r0, 0x2A
- ldrb r1, [r0]
- ldr r0, [r4, 0x8]
- lsls r1, 2
- adds r1, r0
- adds r0, r4, 0
- adds r0, 0x2B
- ldrb r0, [r0]
- ldr r1, [r1]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- lsls r1, r0, 9
- lsrs r3, r1, 31
- lsls r0, 8
- lsrs r2, r0, 31
- ldrb r0, [r4, 0x1]
- lsls r0, 30
- lsrs r0, 30
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0800780E
- adds r0, r4, 0
- adds r1, r3, 0
- bl obj_set_horizonal_and_vertical_flip
- b _0800780E
-_080077C8:
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0800780E
- adds r2, r4, 0
- adds r2, 0x2B
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- adds r0, r4, 0
- adds r0, 0x2A
- ldrb r0, [r0]
- ldr r1, [r4, 0x8]
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r2]
- ldr r0, [r0]
- lsls r1, 2
- adds r1, r0
- movs r2, 0x3
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bge _080077FE
- adds r0, 0x3
- lsls r0, 16
- lsrs r2, r0, 16
-_080077FE:
- ldr r0, =gUnknown_082EC6D4
- lsls r1, r2, 16
- asrs r1, 14
- adds r1, r0
- ldr r1, [r1]
- adds r0, r4, 0
- bl _call_via_r1
-_0800780E:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ContinueObjectImageAnim
-
- thumb_func_start ImageAnimCmd_frame
-@ void ImageAnimCmd_frame(struct obj *object)
-ImageAnimCmd_frame: @ 8007818
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- adds r0, 0x2A
- ldrb r1, [r0]
- ldr r0, [r4, 0x8]
- lsls r1, 2
- adds r1, r0
- adds r0, r4, 0
- adds r0, 0x2B
- ldrb r0, [r0]
- ldr r1, [r1]
- lsls r0, 2
- adds r0, r1
- ldrh r7, [r0]
- mov r8, r7
- ldr r0, [r0]
- lsls r1, r0, 10
- lsrs r3, r1, 26
- lsls r1, r0, 9
- lsrs r6, r1, 31
- lsls r0, 8
- lsrs r5, r0, 31
- cmp r3, 0
- beq _08007852
- subs r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
-_08007852:
- adds r2, r4, 0
- adds r2, 0x2C
- movs r0, 0x3F
- ands r3, r0
- ldrb r1, [r2]
- subs r0, 0x7F
- ands r0, r1
- orrs r0, r3
- strb r0, [r2]
- ldrb r0, [r4, 0x1]
- lsls r0, 30
- lsrs r0, 30
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0800787C
- adds r0, r4, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl obj_set_horizonal_and_vertical_flip
-_0800787C:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080078AC
- adds r0, r4, 0
- adds r0, 0x40
- ldrh r1, [r0]
- adds r1, r7
- ldr r2, =0x000003ff
- adds r0, r2, 0
- ands r1, r0
- ldrh r2, [r4, 0x4]
- ldr r0, =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- b _080078BA
- .pool
-_080078AC:
- mov r0, r8
- ldrh r1, [r4, 0x4]
- lsls r1, 22
- lsrs r1, 22
- ldr r2, [r4, 0xC]
- bl AddPicToObjectCopyRequests
-_080078BA:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end ImageAnimCmd_frame
-
- thumb_func_start ImageAnimCmd_end
-@ void ImageAnimCmd_end(struct obj *object)
-ImageAnimCmd_end: @ 80078C4
- adds r2, r0, 0
- adds r2, 0x2B
- ldrb r1, [r2]
- subs r1, 0x1
- strb r1, [r2]
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r2, 0x10
- orrs r1, r2
- strb r1, [r0]
- bx lr
- thumb_func_end ImageAnimCmd_end
-
- thumb_func_start ImageAnimCmd_jump
-@ void ImageAnimCmd_jump(struct obj *object)
-ImageAnimCmd_jump: @ 80078DC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- adds r3, r4, 0
- adds r3, 0x2A
- ldrb r1, [r3]
- ldr r0, [r4, 0x8]
- lsls r1, 2
- adds r1, r0
- adds r2, r4, 0
- adds r2, 0x2B
- ldrb r0, [r2]
- ldr r1, [r1]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- lsls r0, 10
- lsrs r0, 26
- strb r0, [r2]
- ldrb r0, [r3]
- ldr r1, [r4, 0x8]
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r2]
- ldr r0, [r0]
- lsls r1, 2
- adds r1, r0
- ldrh r7, [r1]
- mov r8, r7
- ldr r0, [r1]
- lsls r1, r0, 10
- lsrs r3, r1, 26
- lsls r1, r0, 9
- lsrs r6, r1, 31
- lsls r0, 8
- lsrs r5, r0, 31
- cmp r3, 0
- beq _08007930
- subs r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
-_08007930:
- adds r2, r4, 0
- adds r2, 0x2C
- movs r0, 0x3F
- ands r3, r0
- ldrb r1, [r2]
- subs r0, 0x7F
- ands r0, r1
- orrs r0, r3
- strb r0, [r2]
- ldrb r0, [r4, 0x1]
- lsls r0, 30
- lsrs r0, 30
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0800795A
- adds r0, r4, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl obj_set_horizonal_and_vertical_flip
-_0800795A:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0800798C
- adds r0, r4, 0
- adds r0, 0x40
- ldrh r1, [r0]
- adds r1, r7
- ldr r2, =0x000003ff
- adds r0, r2, 0
- ands r1, r0
- ldrh r2, [r4, 0x4]
- ldr r0, =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- b _0800799A
- .pool
-_0800798C:
- mov r0, r8
- ldrh r1, [r4, 0x4]
- lsls r1, 22
- lsrs r1, 22
- ldr r2, [r4, 0xC]
- bl AddPicToObjectCopyRequests
-_0800799A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end ImageAnimCmd_jump
-
- thumb_func_start ImageAnimCmd_loop
-@ void ImageAnimCmd_loop(struct obj *object)
-ImageAnimCmd_loop: @ 80079A4
- push {lr}
- adds r1, r0, 0
- adds r0, 0x2D
- ldrb r0, [r0]
- cmp r0, 0
- beq _080079B8
- adds r0, r1, 0
- bl ContinueImageAnimLoop
- b _080079BE
-_080079B8:
- adds r0, r1, 0
- bl BeginImageAnimLoop
-_080079BE:
- pop {r0}
- bx r0
- thumb_func_end ImageAnimCmd_loop
-
- thumb_func_start BeginImageAnimLoop
-@ void BeginImageAnimLoop(struct obj *object)
-BeginImageAnimLoop: @ 80079C4
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x2A
- ldrb r1, [r0]
- ldr r0, [r4, 0x8]
- lsls r1, 2
- adds r1, r0
- adds r0, r4, 0
- adds r0, 0x2B
- ldrb r0, [r0]
- ldr r1, [r1]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- lsls r0, 10
- lsrs r0, 26
- adds r1, r4, 0
- adds r1, 0x2D
- strb r0, [r1]
- adds r0, r4, 0
- bl JumpToTopOfImageAnimLoop
- adds r0, r4, 0
- bl ContinueObjectImageAnim
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end BeginImageAnimLoop
-
- thumb_func_start ContinueImageAnimLoop
-@ void ContinueImageAnimLoop(struct obj *object)
-ContinueImageAnimLoop: @ 80079FC
- push {r4,lr}
- adds r4, r0, 0
- adds r1, r4, 0
- adds r1, 0x2D
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- adds r0, r4, 0
- bl JumpToTopOfImageAnimLoop
- adds r0, r4, 0
- bl ContinueObjectImageAnim
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ContinueImageAnimLoop
-
- thumb_func_start JumpToTopOfImageAnimLoop
-@ void JumpToTopOfImageAnimLoop(struct obj *object)
-JumpToTopOfImageAnimLoop: @ 8007A1C
- push {r4-r7,lr}
- mov r12, r0
- adds r0, 0x2D
- ldrb r0, [r0]
- cmp r0, 0
- beq _08007A88
- mov r3, r12
- adds r3, 0x2B
- ldrb r0, [r3]
- subs r0, 0x1
- strb r0, [r3]
- mov r5, r12
- adds r5, 0x2A
- ldrb r1, [r5]
- mov r2, r12
- ldr r0, [r2, 0x8]
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r3]
- ldr r1, [r1]
- lsls r0, 2
- adds r0, r1
- subs r0, 0x4
- movs r7, 0
- ldrsh r0, [r0, r7]
- movs r1, 0x3
- negs r1, r1
- adds r4, r3, 0
- cmp r0, r1
- beq _08007A82
- adds r6, r1, 0
- adds r2, r4, 0
-_08007A5C:
- ldrb r0, [r2]
- cmp r0, 0
- beq _08007A82
- subs r0, 0x1
- strb r0, [r3]
- ldrb r1, [r5]
- mov r7, r12
- ldr r0, [r7, 0x8]
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r2]
- ldr r1, [r1]
- lsls r0, 2
- adds r0, r1
- subs r0, 0x4
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, r6
- bne _08007A5C
-_08007A82:
- ldrb r0, [r4]
- subs r0, 0x1
- strb r0, [r4]
-_08007A88:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end JumpToTopOfImageAnimLoop
-
- thumb_func_start BeginObjectRotScalAnim
-@ void BeginObjectRotScalAnim(struct obj *object)
-BeginObjectRotScalAnim: @ 8007A90
- push {r4-r7,lr}
- sub sp, 0x8
- adds r6, r0, 0
- ldrb r0, [r6, 0x1]
- lsls r0, 30
- lsrs r0, 30
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08007B12
- ldr r0, [r6, 0x10]
- ldr r0, [r0]
- movs r2, 0
- ldrsh r1, [r0, r2]
- ldr r0, =0x00007fff
- cmp r1, r0
- beq _08007B12
- adds r0, r6, 0
- bl obj_get_rotscale_entry_index
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl rotscale_reset_half
- mov r5, sp
- adds r0, r4, 0
- adds r1, r6, 0
- mov r2, sp
- bl rotscale_load_frame
- adds r7, r6, 0
- adds r7, 0x3F
- ldrb r1, [r7]
- movs r0, 0x9
- negs r0, r0
- ands r0, r1
- movs r1, 0x21
- negs r1, r1
- ands r0, r1
- strb r0, [r7]
- adds r0, r4, 0
- mov r1, sp
- bl sub_8008168
- ldr r1, =gUnknown_03000B70
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r5, 0x5]
- strb r1, [r0, 0x2]
- ldrb r1, [r7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08007B12
- movs r0, 0x3A
- ldrsh r1, [r6, r0]
- movs r0, 0x3C
- ldrsh r2, [r6, r0]
- adds r0, r6, 0
- bl obj_update_pos2
-_08007B12:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end BeginObjectRotScalAnim
-
- thumb_func_start ContinueObjectRotScalAnim
-@ void ContinueObjectRotScalAnim(struct obj *object)
-ContinueObjectRotScalAnim: @ 8007B24
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrb r0, [r4, 0x1]
- lsls r0, 30
- lsrs r0, 30
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08007BC6
- adds r0, r4, 0
- bl obj_get_rotscale_entry_index
- lsls r0, 24
- lsrs r2, r0, 24
- adds r5, r2, 0
- ldr r1, =gUnknown_03000B70
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r3, r0, r1
- ldrb r0, [r3, 0x2]
- cmp r0, 0
- beq _08007B60
- adds r0, r2, 0
- adds r1, r4, 0
- bl sub_8007BD8
- b _08007BAA
- .pool
-_08007B60:
- adds r0, r4, 0
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08007BC6
- ldrb r0, [r3, 0x1]
- adds r0, 0x1
- strb r0, [r3, 0x1]
- ldrb r0, [r3]
- ldr r1, [r4, 0x10]
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r3, 0x1]
- ldr r0, [r0]
- lsls r1, 3
- adds r1, r0
- movs r2, 0x3
- movs r0, 0
- ldrsh r1, [r1, r0]
- ldr r0, =0x00007ffc
- cmp r1, r0
- ble _08007B98
- ldr r2, =0xffff8003
- adds r0, r1, r2
- lsls r0, 16
- lsrs r2, r0, 16
-_08007B98:
- ldr r0, =gUnknown_082EC6E4
- lsls r1, r2, 16
- asrs r1, 14
- adds r1, r0
- ldr r2, [r1]
- adds r0, r5, 0
- adds r1, r4, 0
- bl _call_via_r2
-_08007BAA:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08007BC6
- movs r0, 0x3A
- ldrsh r1, [r4, r0]
- movs r0, 0x3C
- ldrsh r2, [r4, r0]
- adds r0, r4, 0
- bl obj_update_pos2
-_08007BC6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ContinueObjectRotScalAnim
- thumb_func_start sub_8007BD8
-@ void sub_8007BD8(u8 index, struct obj *object)
-sub_8007BD8: @ 8007BD8
+ thumb_func_start AffineAnimDelay
+@ void AffineAnimDelay(u8 index, struct obj *object)
+AffineAnimDelay: @ 8007BD8
push {r4,r5,lr}
sub sp, 0x8
adds r5, r1, 0
@@ -1962,32 +16,32 @@ sub_8007BD8: @ 8007BD8
lsrs r4, r0, 24
adds r0, r5, 0
adds r1, r4, 0
- bl obj_anim_rotscale_delay_progress
+ bl DecrementAffineAnimDelayCounter
lsls r0, 24
cmp r0, 0
bne _08007C02
adds r0, r4, 0
adds r1, r5, 0
mov r2, sp
- bl rotscale_load_frame
+ bl GetAffineAnimFrame
adds r0, r4, 0
mov r1, sp
- bl rotscale_frame_apply_relative_and_sync
+ bl ApplyAffineAnimFrameRelativeAndUpdateMatrix
_08007C02:
add sp, 0x8
pop {r4,r5}
pop {r0}
bx r0
- thumb_func_end sub_8007BD8
+ thumb_func_end AffineAnimDelay
- thumb_func_start RotScalAnimCmd_loop
-@ void RotScalAnimCmd_loop(u8 index, struct obj *object)
-RotScalAnimCmd_loop: @ 8007C0C
+ thumb_func_start AffineAnimCmd_loop
+@ void AffineAnimCmd_loop(u8 index, struct obj *object)
+AffineAnimCmd_loop: @ 8007C0C
push {lr}
adds r3, r1, 0
lsls r0, 24
lsrs r2, r0, 24
- ldr r1, =gUnknown_03000B70
+ ldr r1, =sAffineAnimStates
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
@@ -1997,26 +51,26 @@ RotScalAnimCmd_loop: @ 8007C0C
beq _08007C34
adds r0, r2, 0
adds r1, r3, 0
- bl ContinueRotScalAnimLoop
+ bl ContinueAffineAnimLoop
b _08007C3C
.pool
_08007C34:
adds r0, r2, 0
adds r1, r3, 0
- bl BeginRotScalAnimLoop
+ bl BeginAffineAnimLoop
_08007C3C:
pop {r0}
bx r0
- thumb_func_end RotScalAnimCmd_loop
+ thumb_func_end AffineAnimCmd_loop
- thumb_func_start BeginRotScalAnimLoop
-@ void BeginRotScalAnimLoop(u8 index, struct obj *object)
-BeginRotScalAnimLoop: @ 8007C40
+ thumb_func_start BeginAffineAnimLoop
+@ void BeginAffineAnimLoop(u8 index, struct obj *object)
+BeginAffineAnimLoop: @ 8007C40
push {r4,lr}
adds r4, r1, 0
lsls r0, 24
lsrs r0, 24
- ldr r1, =gUnknown_03000B70
+ ldr r1, =sAffineAnimStates
lsls r3, r0, 1
adds r3, r0
lsls r3, 2
@@ -2034,21 +88,21 @@ BeginRotScalAnimLoop: @ 8007C40
adds r1, r4, 0
bl JumpToTopOfRotScalAnimLoop
adds r0, r4, 0
- bl ContinueObjectRotScalAnim
+ bl ContinueAffineAnim
pop {r4}
pop {r0}
bx r0
.pool
- thumb_func_end BeginRotScalAnimLoop
+ thumb_func_end BeginAffineAnimLoop
- thumb_func_start ContinueRotScalAnimLoop
-@ void ContinueRotScalAnimLoop(u8 index, struct obj *object)
-ContinueRotScalAnimLoop: @ 8007C7C
+ thumb_func_start ContinueAffineAnimLoop
+@ void ContinueAffineAnimLoop(u8 index, struct obj *object)
+ContinueAffineAnimLoop: @ 8007C7C
push {r4,lr}
adds r4, r1, 0
lsls r0, 24
lsrs r0, 24
- ldr r2, =gUnknown_03000B70
+ ldr r2, =sAffineAnimStates
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
@@ -2059,12 +113,12 @@ ContinueRotScalAnimLoop: @ 8007C7C
adds r1, r4, 0
bl JumpToTopOfRotScalAnimLoop
adds r0, r4, 0
- bl ContinueObjectRotScalAnim
+ bl ContinueAffineAnim
pop {r4}
pop {r0}
bx r0
.pool
- thumb_func_end ContinueRotScalAnimLoop
+ thumb_func_end ContinueAffineAnimLoop
thumb_func_start JumpToTopOfRotScalAnimLoop
@ void JumpToTopOfRotScalAnimLoop(u8 index, struct obj *object)
@@ -2073,7 +127,7 @@ JumpToTopOfRotScalAnimLoop: @ 8007CAC
mov r12, r1
lsls r0, 24
lsrs r5, r0, 24
- ldr r1, =gUnknown_03000B70
+ ldr r1, =sAffineAnimStates
lsls r3, r5, 1
adds r0, r3, r5
lsls r0, 2
@@ -2126,15 +180,15 @@ _08007D0C:
.pool
thumb_func_end JumpToTopOfRotScalAnimLoop
- thumb_func_start RotScalAnimCmd_jump
-@ void RotScalAnimCmd_jump(u8 index, struct obj *object)
-RotScalAnimCmd_jump: @ 8007D18
+ thumb_func_start AffineAnimCmd_jump
+@ void AffineAnimCmd_jump(u8 index, struct obj *object)
+AffineAnimCmd_jump: @ 8007D18
push {r4-r6,lr}
sub sp, 0x8
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
- ldr r0, =gUnknown_03000B70
+ ldr r0, =sAffineAnimStates
lsls r4, r5, 1
adds r4, r5
lsls r4, 2
@@ -2152,10 +206,10 @@ RotScalAnimCmd_jump: @ 8007D18
mov r6, sp
adds r0, r5, 0
mov r2, sp
- bl rotscale_load_frame
+ bl GetAffineAnimFrame
adds r0, r5, 0
mov r1, sp
- bl sub_8008168
+ bl ApplyAffineAnimFrame
ldrb r0, [r6, 0x5]
strb r0, [r4, 0x2]
add sp, 0x8
@@ -2163,11 +217,11 @@ RotScalAnimCmd_jump: @ 8007D18
pop {r0}
bx r0
.pool
- thumb_func_end RotScalAnimCmd_jump
+ thumb_func_end AffineAnimCmd_jump
- thumb_func_start RotScalAnimCmd_end
-@ void RotScalAnimCmd_end(u8 index, struct obj *object)
-RotScalAnimCmd_end: @ 8007D64
+ thumb_func_start AffineAnimCmd_end
+@ void AffineAnimCmd_end(u8 index, struct obj *object)
+AffineAnimCmd_end: @ 8007D64
push {lr}
sub sp, 0x8
lsls r0, 24
@@ -2181,7 +235,7 @@ RotScalAnimCmd_end: @ 8007D64
movs r3, 0x20
orrs r2, r3
strb r2, [r1]
- ldr r2, =gUnknown_03000B70
+ ldr r2, =sAffineAnimStates
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
@@ -2190,16 +244,16 @@ RotScalAnimCmd_end: @ 8007D64
subs r2, 0x1
strb r2, [r1, 0x1]
mov r1, sp
- bl rotscale_frame_apply_relative_and_sync
+ bl ApplyAffineAnimFrameRelativeAndUpdateMatrix
add sp, 0x8
pop {r0}
bx r0
.pool
- thumb_func_end RotScalAnimCmd_end
+ thumb_func_end AffineAnimCmd_end
- thumb_func_start RotScalAnimCmd_frame
-@ void RotScalAnimCmd_frame(u8 index, struct obj *object)
-RotScalAnimCmd_frame: @ 8007DA0
+ thumb_func_start AffineAnimCmd_frame
+@ void AffineAnimCmd_frame(u8 index, struct obj *object)
+AffineAnimCmd_frame: @ 8007DA0
push {r4,r5,lr}
sub sp, 0x8
adds r4, r0, 0
@@ -2208,11 +262,11 @@ RotScalAnimCmd_frame: @ 8007DA0
mov r5, sp
adds r0, r4, 0
mov r2, sp
- bl rotscale_load_frame
+ bl GetAffineAnimFrame
adds r0, r4, 0
mov r1, sp
- bl sub_8008168
- ldr r1, =gUnknown_03000B70
+ bl ApplyAffineAnimFrame
+ ldr r1, =sAffineAnimStates
lsls r0, r4, 1
adds r0, r4
lsls r0, 2
@@ -2224,11 +278,11 @@ RotScalAnimCmd_frame: @ 8007DA0
pop {r0}
bx r0
.pool
- thumb_func_end RotScalAnimCmd_frame
+ thumb_func_end AffineAnimCmd_frame
- thumb_func_start rotscale_set_indirect
-@ void rotscale_set_indirect(u8 rotscale_entry_index, s16 rotscale_data[])
-rotscale_set_indirect: @ 8007DD8
+ thumb_func_start CopyOamMatrix
+@ void CopyOamMatrix(u8 rotscale_entry_index, s16 rotscale_data[])
+CopyOamMatrix: @ 8007DD8
lsls r0, 24
ldr r2, =gOamMatrices
lsrs r0, 21
@@ -2243,11 +297,11 @@ rotscale_set_indirect: @ 8007DD8
strh r1, [r0, 0x6]
bx lr
.pool
- thumb_func_end rotscale_set_indirect
+ thumb_func_end CopyOamMatrix
- thumb_func_start obj_get_rotscale_entry_index
-@ int obj_get_rotscale_entry_index(struct obj *obj)
-obj_get_rotscale_entry_index: @ 8007DF8
+ thumb_func_start GetSpriteMatrixNum
+@ int GetSpriteMatrixNum(struct obj *obj)
+GetSpriteMatrixNum: @ 8007DF8
push {lr}
adds r2, r0, 0
movs r3, 0
@@ -2265,7 +319,7 @@ _08007E12:
adds r0, r3, 0
pop {r1}
bx r1
- thumb_func_end obj_get_rotscale_entry_index
+ thumb_func_end GetSpriteMatrixNum
thumb_func_start sub_8007E18
@ void sub_8007E18(struct obj *obj, s16 a2, s16 a3)
@@ -2384,9 +438,9 @@ _08007EDA:
.pool
thumb_func_end obj_update_pos2
- thumb_func_start obj_set_horizonal_and_vertical_flip
-@ void obj_set_horizonal_and_vertical_flip(struct obj *obj, u8 a2, char a3)
-obj_set_horizonal_and_vertical_flip: @ 8007EF0
+ thumb_func_start SetSpriteOamFlipBits
+@ void SetSpriteOamFlipBits(struct obj *obj, u8 a2, char a3)
+SetSpriteOamFlipBits: @ 8007EF0
push {r4-r6,lr}
mov r6, r8
push {r6}
@@ -2444,14 +498,14 @@ obj_set_horizonal_and_vertical_flip: @ 8007EF0
pop {r4-r6}
pop {r0}
bx r0
- thumb_func_end obj_set_horizonal_and_vertical_flip
+ thumb_func_end SetSpriteOamFlipBits
- thumb_func_start rotscale_reset_half
-@ void rotscale_reset_half(u8 index)
-rotscale_reset_half: @ 8007F64
+ thumb_func_start AffineAnimStateRestartAnim
+@ void AffineAnimStateRestartAnim(u8 index)
+AffineAnimStateRestartAnim: @ 8007F64
lsls r0, 24
lsrs r0, 24
- ldr r2, =gUnknown_03000B70
+ ldr r2, =sAffineAnimStates
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
@@ -2462,14 +516,14 @@ rotscale_reset_half: @ 8007F64
strb r0, [r1, 0x3]
bx lr
.pool
- thumb_func_end rotscale_reset_half
+ thumb_func_end AffineAnimStateRestartAnim
thumb_func_start rotscale_reset_full_1
@ void rotscale_reset_full_1(u8 index, u8 a2)
rotscale_reset_full_1: @ 8007F80
lsls r0, 24
lsrs r0, 24
- ldr r3, =gUnknown_03000B70
+ ldr r3, =sAffineAnimStates
lsls r2, r0, 1
adds r2, r0
lsls r2, 2
@@ -2493,7 +547,7 @@ rotscale_reset_full_1: @ 8007F80
rotscale_reset_full_2: @ 8007FA8
lsls r0, 24
lsrs r0, 24
- ldr r2, =gUnknown_03000B70
+ ldr r2, =sAffineAnimStates
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
@@ -2517,7 +571,7 @@ rotscale_reset_full_2: @ 8007FA8
rotscale_frame_apply_absolute: @ 8007FD0
lsls r0, 24
lsrs r0, 24
- ldr r3, =gUnknown_03000B70
+ ldr r3, =sAffineAnimStates
lsls r2, r0, 1
adds r2, r0
lsls r2, 2
@@ -2533,8 +587,8 @@ rotscale_frame_apply_absolute: @ 8007FD0
.pool
thumb_func_end rotscale_frame_apply_absolute
- thumb_func_start obj_anim_image_delay_progress
-obj_anim_image_delay_progress: @ 8007FF4
+ thumb_func_start DecrementAnimDelayCounter
+DecrementAnimDelayCounter: @ 8007FF4
push {lr}
adds r3, r0, 0
adds r3, 0x2C
@@ -2556,11 +610,11 @@ obj_anim_image_delay_progress: @ 8007FF4
_08008018:
pop {r0}
bx r0
- thumb_func_end obj_anim_image_delay_progress
+ thumb_func_end DecrementAnimDelayCounter
- thumb_func_start obj_anim_rotscale_delay_progress
-@ u8 obj_anim_rotscale_delay_progress(struct obj *object, u8 index)
-obj_anim_rotscale_delay_progress: @ 800801C
+ thumb_func_start DecrementAffineAnimDelayCounter
+@ u8 DecrementAffineAnimDelayCounter(struct obj *object, u8 index)
+DecrementAffineAnimDelayCounter: @ 800801C
push {lr}
lsls r1, 24
lsrs r2, r1, 24
@@ -2571,7 +625,7 @@ obj_anim_rotscale_delay_progress: @ 800801C
ands r0, r1
cmp r0, 0
bne _08008040
- ldr r0, =gUnknown_03000B70
+ ldr r0, =sAffineAnimStates
lsls r1, r2, 1
adds r1, r2
lsls r1, 2
@@ -2585,17 +639,17 @@ _08008040:
pop {r1}
bx r1
.pool
- thumb_func_end obj_anim_rotscale_delay_progress
+ thumb_func_end DecrementAffineAnimDelayCounter
- thumb_func_start rotscale_frame_apply_relative_and_sync
-@ void rotscale_frame_apply_relative_and_sync(u8 index, int a2)
-rotscale_frame_apply_relative_and_sync: @ 800804C
+ thumb_func_start ApplyAffineAnimFrameRelativeAndUpdateMatrix
+@ void ApplyAffineAnimFrameRelativeAndUpdateMatrix(u8 index, int a2)
+ApplyAffineAnimFrameRelativeAndUpdateMatrix: @ 800804C
push {r4-r6,lr}
sub sp, 0x10
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
- ldr r0, =gUnknown_03000B70
+ ldr r0, =sAffineAnimStates
lsls r4, r5, 1
adds r4, r5
lsls r4, 2
@@ -2648,13 +702,13 @@ rotscale_frame_apply_relative_and_sync: @ 800804C
bl ObjAffineSet
adds r0, r5, 0
adds r1, r4, 0
- bl rotscale_set_indirect
+ bl CopyOamMatrix
add sp, 0x10
pop {r4-r6}
pop {r0}
bx r0
.pool
- thumb_func_end rotscale_frame_apply_relative_and_sync
+ thumb_func_end ApplyAffineAnimFrameRelativeAndUpdateMatrix
thumb_func_start divide_0x10000_by
@ int divide_0x10000_by(int n)
@@ -2672,13 +726,13 @@ divide_0x10000_by: @ 80080E4
bx r1
thumb_func_end divide_0x10000_by
- thumb_func_start rotscale_load_frame
-@ void rotscale_load_frame(u8 index, struct obj *obj, rotscale_frame *a3)
-rotscale_load_frame: @ 80080FC
+ thumb_func_start GetAffineAnimFrame
+@ void GetAffineAnimFrame(u8 index, struct obj *obj, rotscale_frame *a3)
+GetAffineAnimFrame: @ 80080FC
push {r4,lr}
lsls r0, 24
lsrs r0, 24
- ldr r3, =gUnknown_03000B70
+ ldr r3, =sAffineAnimStates
lsls r4, r0, 1
adds r4, r0
lsls r4, 2
@@ -2727,10 +781,10 @@ rotscale_load_frame: @ 80080FC
pop {r0}
bx r0
.pool
- thumb_func_end rotscale_load_frame
+ thumb_func_end GetAffineAnimFrame
- thumb_func_start sub_8008168
-sub_8008168: @ 8008168
+ thumb_func_start ApplyAffineAnimFrame
+ApplyAffineAnimFrame: @ 8008168
push {r4,lr}
sub sp, 0x8
adds r2, r1, 0
@@ -2747,7 +801,7 @@ sub_8008168: @ 8008168
strb r0, [r2, 0x5]
adds r0, r4, 0
adds r1, r2, 0
- bl rotscale_frame_apply_relative_and_sync
+ bl ApplyAffineAnimFrameRelativeAndUpdateMatrix
b _0800819E
_0800818E:
adds r0, r4, 0
@@ -2755,13 +809,13 @@ _0800818E:
bl rotscale_frame_apply_absolute
adds r0, r4, 0
mov r1, sp
- bl rotscale_frame_apply_relative_and_sync
+ bl ApplyAffineAnimFrameRelativeAndUpdateMatrix
_0800819E:
add sp, 0x8
pop {r4}
pop {r0}
bx r0
- thumb_func_end sub_8008168
+ thumb_func_end ApplyAffineAnimFrame
thumb_func_start StartObjectImageAnim
@ void StartObjectImageAnim(struct obj *object, u8 whichAnim)
@@ -2837,7 +891,7 @@ SeekObjectImageAnim: @ 80081DC
ands r0, r1
strb r0, [r4]
adds r0, r3, 0
- bl ContinueObjectImageAnim
+ bl ContinueAnim
ldrb r2, [r4]
movs r0, 0x3F
ands r0, r2
@@ -2871,7 +925,7 @@ StartObjectRotScalAnim: @ 8008258
adds r5, r0, 0
lsls r4, r1, 24
lsrs r4, 24
- bl obj_get_rotscale_entry_index
+ bl GetSpriteMatrixNum
lsls r0, 24
lsrs r0, 24
adds r1, r4, 0
@@ -2896,10 +950,10 @@ StartObjectRotScalAnimIfDifferent: @ 8008284
adds r5, r0, 0
lsls r1, 24
lsrs r4, r1, 24
- bl obj_get_rotscale_entry_index
+ bl GetSpriteMatrixNum
lsls r0, 24
lsrs r0, 24
- ldr r2, =gUnknown_03000B70
+ ldr r2, =sAffineAnimStates
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
@@ -2923,10 +977,10 @@ sub_80082B8: @ 80082B8
adds r5, r0, 0
lsls r4, r1, 24
lsrs r4, 24
- bl obj_get_rotscale_entry_index
+ bl GetSpriteMatrixNum
lsls r0, 24
lsrs r0, 24
- ldr r2, =gUnknown_03000B70
+ ldr r2, =sAffineAnimStates
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
@@ -2952,10 +1006,10 @@ sub_80082F0: @ 80082F0
adds r5, r0, 0
lsls r1, 24
lsrs r4, r1, 24
- bl obj_get_rotscale_entry_index
+ bl GetSpriteMatrixNum
lsls r0, 24
lsrs r0, 24
- ldr r2, =gUnknown_03000B70
+ ldr r2, =sAffineAnimStates
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
@@ -3080,9 +1134,9 @@ _080083E2:
bx r1
thumb_func_end rotscale_alloc_entry
- thumb_func_start rotscale_free_entry
-@ void rotscale_free_entry(u8 rotscale_index)
-rotscale_free_entry: @ 80083E8
+ thumb_func_start FreeOamMatrix
+@ void FreeOamMatrix(u8 rotscale_index)
+FreeOamMatrix: @ 80083E8
push {lr}
sub sp, 0x4
lsls r0, 24
@@ -3114,7 +1168,7 @@ _08008406:
pop {r0}
bx r0
.pool
- thumb_func_end rotscale_free_entry
+ thumb_func_end FreeOamMatrix
thumb_func_start InitSpriteAffineAnim
@ void InitSpriteAffineAnim(struct obj *obj)
@@ -3209,7 +1263,7 @@ sub_8008478: @ 8008478
bl ObjAffineSet
adds r0, r6, 0
adds r1, r4, 0
- bl rotscale_set_indirect
+ bl CopyOamMatrix
add sp, 0x10
pop {r3}
mov r8, r3
@@ -3282,9 +1336,9 @@ _08008560:
bx r0
thumb_func_end LoadObjectPics
- thumb_func_start FreeObjectTilesByTag
-@ void FreeObjectTilesByTag(u16 tag)
-FreeObjectTilesByTag: @ 8008568
+ thumb_func_start FreeSpriteTilesByTag
+@ void FreeSpriteTilesByTag(u16 tag)
+FreeSpriteTilesByTag: @ 8008568
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -3340,7 +1394,7 @@ _080085C6:
pop {r0}
bx r0
.pool
- thumb_func_end FreeObjectTilesByTag
+ thumb_func_end FreeSpriteTilesByTag
thumb_func_start FreeSpriteTileRanges
@ void FreeSpriteTileRanges()
@@ -3684,9 +1738,9 @@ GetObjectPaletteTagBySlot: @ 800883C
.pool
thumb_func_end GetObjectPaletteTagBySlot
- thumb_func_start FreeObjectPaletteByTag
-@ void FreeObjectPaletteByTag(int tag)
-FreeObjectPaletteByTag: @ 800884C
+ thumb_func_start FreeSpritePaletteByTag
+@ void FreeSpritePaletteByTag(int tag)
+FreeSpritePaletteByTag: @ 800884C
push {lr}
lsls r0, 16
lsrs r0, 16
@@ -3704,7 +1758,7 @@ _08008868:
pop {r0}
bx r0
.pool
- thumb_func_end FreeObjectPaletteByTag
+ thumb_func_end FreeSpritePaletteByTag
thumb_func_start SetSpriteOamTables_NoPriorityFromTable
@ void SetSpriteOamTables_NoPriorityFromTable(struct obj *object, u32 spriteOamTables)
@@ -3716,9 +1770,9 @@ SetSpriteOamTables_NoPriorityFromTable: @ 8008874
bx lr
thumb_func_end SetSpriteOamTables_NoPriorityFromTable
- thumb_func_start AddSprite
-@ u8 AddSprite(struct obj *obj, u8 *spriteIndex)
-AddSprite: @ 8008880
+ thumb_func_start AddSpriteToOamBuffer
+@ u8 AddSpriteToOamBuffer(struct obj *obj, u8 *spriteIndex)
+AddSpriteToOamBuffer: @ 8008880
push {r4,lr}
adds r4, r0, 0
adds r3, r1, 0
@@ -3764,7 +1818,7 @@ _080088CC:
adds r1, r0
adds r0, r4, 0
adds r2, r3, 0
- bl AddSpritesFromSpriteOamTable
+ bl AddSubspritesToOamBuffer
lsls r0, 24
lsrs r0, 24
_080088E0:
@@ -3772,11 +1826,11 @@ _080088E0:
pop {r1}
bx r1
.pool
- thumb_func_end AddSprite
+ thumb_func_end AddSpriteToOamBuffer
- thumb_func_start AddSpritesFromSpriteOamTable
-@ u8 AddSpritesFromSpriteOamTable(struct obj *object, struct sprite *sprite, u8 *spriteIndex)
-AddSpritesFromSpriteOamTable: @ 80088EC
+ thumb_func_start AddSubspritesToOamBuffer
+@ u8 AddSubspritesToOamBuffer(struct obj *object, struct sprite *sprite, u8 *spriteIndex)
+AddSubspritesToOamBuffer: @ 80088EC
push {r4-r7,lr}
mov r7, r10
mov r6, r9
@@ -4049,6 +2103,6 @@ _08008AE6:
pop {r1}
bx r1
.pool
- thumb_func_end AddSpritesFromSpriteOamTable
+ thumb_func_end AddSubspritesToOamBuffer
.align 2, 0 @ Don't pad with nop.