summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/code_800D090.s182
-rw-r--r--asm/code_8040094.s41
-rw-r--r--asm/code_80428A0.s4
-rw-r--r--asm/code_80450F8.s4
-rw-r--r--asm/code_8057824.s14
-rw-r--r--asm/code_806CD90.s4
-rw-r--r--asm/code_8075BA4.s200
-rw-r--r--data/data_80B9BB8.s73
-rw-r--r--data/data_80F4278.s185
-rw-r--r--graphics/status/blinker.pngbin0 -> 217 bytes
-rw-r--r--graphics/status/burned.pngbin0 -> 527 bytes
-rw-r--r--graphics/status/confused.pngbin0 -> 471 bytes
-rw-r--r--graphics/status/cross_eyed.pngbin0 -> 398 bytes
-rw-r--r--graphics/status/eyedrops.pngbin0 -> 269 bytes
-rw-r--r--graphics/status/frozen.pngbin0 -> 1126 bytes
-rw-r--r--graphics/status/lowhp.pngbin0 -> 245 bytes
-rw-r--r--graphics/status/muzzled.pngbin0 -> 242 bytes
-rw-r--r--graphics/status/poisoned.pngbin0 -> 403 bytes
-rw-r--r--graphics/status/shield.pngbin0 -> 472 bytes
-rw-r--r--graphics/status/sleep.pngbin0 -> 352 bytes
-rw-r--r--graphics/status/sleepless.pngbin0 -> 214 bytes
-rw-r--r--graphics/status/statdown.pngbin0 -> 322 bytes
-rw-r--r--graphics/status/sword.pngbin0 -> 380 bytes
-rw-r--r--graphics/status/taunted.pngbin0 -> 603 bytes
-rw-r--r--graphics/status/whiffer.pngbin0 -> 376 bytes
-rw-r--r--include/constants/status.h113
-rw-r--r--include/dungeon_entity.h4
-rw-r--r--include/dungeon_global_data.h6
-rw-r--r--include/dungeon_pokemon_sprites.h39
-rw-r--r--sym_ewram2.txt2
30 files changed, 543 insertions, 328 deletions
diff --git a/asm/code_800D090.s b/asm/code_800D090.s
index 5cc35f6..505b5e1 100644
--- a/asm/code_800D090.s
+++ b/asm/code_800D090.s
@@ -4407,8 +4407,9 @@ sub_800F204:
bx r0
thumb_func_end sub_800F204
- thumb_func_start sub_800F210
-sub_800F210:
+ thumb_func_start GetDungeonPokemonSprite
+ @ struct DungeonPokemonSprite *GetDungeonPokemonSprite(int id)
+GetDungeonPokemonSprite:
push {r4,lr}
adds r4, r0, 0
movs r3, 0
@@ -4427,7 +4428,7 @@ _0800F220:
adds r0, r1, 0
b _0800F240
.align 2, 0
-_0800F230: .4byte gUnknown_203B0D8
+_0800F230: .4byte gDungeonPokemonSprites
_0800F234:
adds r1, 0x40
adds r2, 0x40
@@ -4439,10 +4440,11 @@ _0800F240:
pop {r4}
pop {r1}
bx r1
- thumb_func_end sub_800F210
+ thumb_func_end GetDungeonPokemonSprite
- thumb_func_start sub_800F248
-sub_800F248:
+ thumb_func_start NewDungeonPokemonSprite
+ @ struct DungeonPokemonSprite *NewDungeonPokemonSprite(void)
+NewDungeonPokemonSprite:
push {lr}
movs r2, 0
ldr r0, _0800F25C
@@ -4455,7 +4457,7 @@ _0800F252:
adds r0, r1, 0
b _0800F26A
.align 2, 0
-_0800F25C: .4byte gUnknown_203B0D8
+_0800F25C: .4byte gDungeonPokemonSprites
_0800F260:
adds r1, 0x40
adds r2, 0x1
@@ -4465,10 +4467,14 @@ _0800F260:
_0800F26A:
pop {r1}
bx r1
- thumb_func_end sub_800F248
-
- thumb_func_start sub_800F270
-sub_800F270:
+ thumb_func_end NewDungeonPokemonSprite
+
+ thumb_func_start GetNextStatusSymbol
+ @ u32 GetNextStatusSymbol(?, int select)
+ @ The "select" parameter exists to differentiate between the two kinds of
+ @ status symbols that can appear at the same time.
+ @ Only frozen falls under select = 1, every other symbol falls under select = 0
+GetNextStatusSymbol:
push {r4-r6,lr}
adds r2, r0, 0
lsls r0, r1, 3
@@ -4529,10 +4535,10 @@ _0800F2CE:
pop {r4-r6}
pop {r1}
bx r1
- thumb_func_end sub_800F270
+ thumb_func_end GetNextStatusSymbol
- thumb_func_start sub_800F2D4
-sub_800F2D4:
+ thumb_func_start StatusSymbolBitToIndex
+StatusSymbolBitToIndex:
push {lr}
movs r1, 0
cmp r0, 0
@@ -4546,7 +4552,7 @@ _0800F2E4:
adds r0, r1, 0
pop {r1}
bx r1
- thumb_func_end sub_800F2D4
+ thumb_func_end StatusSymbolBitToIndex
thumb_func_start sub_800F2EC
sub_800F2EC:
@@ -4574,7 +4580,7 @@ _0800F30E:
bgt _0800F32A
adds r0, r5, 0
adds r1, r6, 0
- bl sub_800F270
+ bl GetNextStatusSymbol
adds r1, r0, 0
ldr r0, [r4]
cmp r0, r1
@@ -4593,7 +4599,7 @@ _0800F32C:
ldr r0, [r4]
cmp r0, 0
beq _0800F35C
- bl sub_800F2D4
+ bl StatusSymbolBitToIndex
adds r1, r0, 0
movs r2, 0x8
ldrsh r0, [r5, r2]
@@ -4607,7 +4613,7 @@ _0800F32C:
str r4, [sp, 0x4]
ldr r4, [r5, 0x4]
str r4, [sp, 0x8]
- bl sub_800F364
+ bl DrawStatusSprite
_0800F35C:
add sp, 0xC
pop {r4-r7}
@@ -4615,8 +4621,9 @@ _0800F35C:
bx r0
thumb_func_end sub_800F2EC
- thumb_func_start sub_800F364
-sub_800F364:
+ thumb_func_start DrawStatusSprite
+ @ void DrawStatusSprite(?, int status, struct Position *pos, struct Position *pos_offset, struct Position *pos_screen, ?)
+DrawStatusSprite:
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -4708,7 +4715,7 @@ _0800F404:
ldr r0, [r0]
mov pc, r0
.align 2, 0
-_0800F410: .4byte gUnknown_80D3474
+_0800F410: .4byte gStatusSprites
_0800F414: .4byte gStatusGraphics
_0800F418: .4byte 0x0000032b
_0800F41C: .4byte gUnknown_203B0DC
@@ -4929,10 +4936,10 @@ _0800F5F0: .4byte 0x00003fff
_0800F5F4: .4byte 0x000001ff
_0800F5F8: .4byte 0x00000fff
_0800F5FC: .4byte 0x000003ff
- thumb_func_end sub_800F364
+ thumb_func_end DrawStatusSprite
- thumb_func_start sub_800F600
-sub_800F600:
+ thumb_func_start LoadStatusGraphics
+LoadStatusGraphics:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
@@ -4982,7 +4989,7 @@ _0800F63C:
.align 2, 0
_0800F660: .4byte gStatusGraphics
_0800F664: .4byte 0x0000032b
-_0800F668: .4byte gUnknown_203B0D8
+_0800F668: .4byte gDungeonPokemonSprites
_0800F66C: .4byte gStatusGraphics4bpp
_0800F670: .4byte 0x06010000
_0800F674:
@@ -4999,10 +5006,10 @@ _0800F67E:
bx r0
.align 2, 0
_0800F68C: .4byte 0x06010000
- thumb_func_end sub_800F600
+ thumb_func_end LoadStatusGraphics
- thumb_func_start sub_800F690
-sub_800F690:
+ thumb_func_start InitDungeonPokemonSprites
+InitDungeonPokemonSprites:
push {r4,r5,lr}
ldr r5, _0800F738
ldr r0, [r5]
@@ -5021,62 +5028,62 @@ _0800F6AC:
str r0, [r1]
movs r0, 0x1
movs r1, 0
- bl sub_800F600
+ bl LoadStatusGraphics
movs r0, 0x2
movs r1, 0
- bl sub_800F600
+ bl LoadStatusGraphics
movs r0, 0x3
movs r1, 0
- bl sub_800F600
+ bl LoadStatusGraphics
movs r0, 0x4
movs r1, 0
- bl sub_800F600
+ bl LoadStatusGraphics
movs r0, 0x5
movs r1, 0
- bl sub_800F600
+ bl LoadStatusGraphics
movs r0, 0x6
movs r1, 0
- bl sub_800F600
+ bl LoadStatusGraphics
movs r0, 0x7
movs r1, 0
- bl sub_800F600
+ bl LoadStatusGraphics
movs r0, 0x8
movs r1, 0
- bl sub_800F600
+ bl LoadStatusGraphics
movs r0, 0x9
movs r1, 0
- bl sub_800F600
+ bl LoadStatusGraphics
movs r0, 0xA
movs r1, 0
- bl sub_800F600
+ bl LoadStatusGraphics
movs r0, 0xB
movs r1, 0
- bl sub_800F600
+ bl LoadStatusGraphics
movs r0, 0xC
movs r1, 0
- bl sub_800F600
+ bl LoadStatusGraphics
movs r0, 0xD
movs r1, 0
- bl sub_800F600
+ bl LoadStatusGraphics
movs r0, 0xE
movs r1, 0
- bl sub_800F600
+ bl LoadStatusGraphics
movs r0, 0xF
movs r1, 0
- bl sub_800F600
+ bl LoadStatusGraphics
movs r0, 0x10
movs r1, 0
- bl sub_800F600
+ bl LoadStatusGraphics
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
-_0800F738: .4byte gUnknown_203B0D8
+_0800F738: .4byte gDungeonPokemonSprites
_0800F73C: .4byte 0x00000584
- thumb_func_end sub_800F690
+ thumb_func_end InitDungeonPokemonSprites
- thumb_func_start sub_800F740
-sub_800F740:
+ thumb_func_start FreeDungeonPokemonSprites
+FreeDungeonPokemonSprites:
push {r4,lr}
ldr r4, _0800F758
ldr r0, [r4]
@@ -5090,11 +5097,12 @@ _0800F752:
pop {r0}
bx r0
.align 2, 0
-_0800F758: .4byte gUnknown_203B0D8
- thumb_func_end sub_800F740
+_0800F758: .4byte gDungeonPokemonSprites
+ thumb_func_end FreeDungeonPokemonSprites
- thumb_func_start sub_800F75C
-sub_800F75C:
+ thumb_func_start UpdateDungeonPokemonSprite
+ @ void UpdateDungeonPokemonSprite(int id, short species, int status, char visible)
+UpdateDungeonPokemonSprite:
push {r4-r7,lr}
adds r4, r0, 0
adds r7, r2, 0
@@ -5107,7 +5115,7 @@ sub_800F75C:
cmp r0, 0
beq _0800F788
adds r0, r4, 0
- bl sub_800F210
+ bl GetDungeonPokemonSprite
cmp r0, 0
beq _0800F788
movs r1, 0
@@ -5121,8 +5129,8 @@ _0800F788:
pop {r0}
bx r0
.align 2, 0
-_0800F790: .4byte gUnknown_203B0D8
- thumb_func_end sub_800F75C
+_0800F790: .4byte gDungeonPokemonSprites
+ thumb_func_end UpdateDungeonPokemonSprite
thumb_func_start sub_800F794
sub_800F794:
@@ -5136,7 +5144,7 @@ sub_800F794:
cmp r0, 0
beq _0800F7C6
adds r0, r1, 0
- bl sub_800F210
+ bl GetDungeonPokemonSprite
adds r2, r0, 0
cmp r2, 0
beq _0800F7C6
@@ -5155,7 +5163,7 @@ _0800F7C6:
pop {r0}
bx r0
.align 2, 0
-_0800F7CC: .4byte gUnknown_203B0D8
+_0800F7CC: .4byte gDungeonPokemonSprites
thumb_func_end sub_800F794
thumb_func_start sub_800F7D0
@@ -5185,7 +5193,7 @@ _0800F7EA:
beq _0800F80E
b _0800F888
.align 2, 0
-_0800F800: .4byte gUnknown_203B0D8
+_0800F800: .4byte gDungeonPokemonSprites
_0800F804:
cmp r0, 0x2
beq _0800F846
@@ -5195,55 +5203,55 @@ _0800F804:
_0800F80E:
movs r0, 0x1
movs r1, 0x1
- bl sub_800F600
+ bl LoadStatusGraphics
movs r0, 0x2
movs r1, 0x1
- bl sub_800F600
+ bl LoadStatusGraphics
movs r0, 0x3
movs r1, 0x1
- bl sub_800F600
+ bl LoadStatusGraphics
movs r0, 0x4
b _0800F860
_0800F82A:
movs r0, 0x5
movs r1, 0x1
- bl sub_800F600
+ bl LoadStatusGraphics
movs r0, 0x6
movs r1, 0x1
- bl sub_800F600
+ bl LoadStatusGraphics
movs r0, 0x7
movs r1, 0x1
- bl sub_800F600
+ bl LoadStatusGraphics
movs r0, 0x8
b _0800F860
_0800F846:
movs r0, 0x9
movs r1, 0x1
- bl sub_800F600
+ bl LoadStatusGraphics
movs r0, 0xA
movs r1, 0x1
- bl sub_800F600
+ bl LoadStatusGraphics
movs r0, 0xB
movs r1, 0x1
- bl sub_800F600
+ bl LoadStatusGraphics
movs r0, 0xC
_0800F860:
movs r1, 0x1
- bl sub_800F600
+ bl LoadStatusGraphics
b _0800F888
_0800F868:
movs r0, 0xD
movs r1, 0x1
- bl sub_800F600
+ bl LoadStatusGraphics
movs r0, 0xE
movs r1, 0x1
- bl sub_800F600
+ bl LoadStatusGraphics
movs r0, 0xF
movs r1, 0x1
- bl sub_800F600
+ bl LoadStatusGraphics
movs r0, 0x10
movs r1, 0x1
- bl sub_800F600
+ bl LoadStatusGraphics
_0800F888:
movs r5, 0
movs r6, 0x4
@@ -5280,11 +5288,12 @@ _0800F8C0:
pop {r0}
bx r0
.align 2, 0
-_0800F8CC: .4byte gUnknown_203B0D8
+_0800F8CC: .4byte gDungeonPokemonSprites
thumb_func_end sub_800F7D0
- thumb_func_start sub_800F8D0
-sub_800F8D0:
+ thumb_func_start AddPokemonDungeonSprite
+ @ void AddPokemonDungeonSprite(int id, short species, struct Position *pos, ?)
+AddPokemonDungeonSprite:
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -5298,11 +5307,11 @@ sub_800F8D0:
cmp r0, 0
beq _0800F920
adds r0, r5, 0
- bl sub_800F210
+ bl GetDungeonPokemonSprite
adds r4, r0, 0
cmp r4, 0
bne _0800F920
- bl sub_800F248
+ bl NewDungeonPokemonSprite
adds r1, r0, 0
cmp r1, 0
beq _0800F920
@@ -5330,12 +5339,13 @@ _0800F920:
pop {r0}
bx r0
.align 2, 0
-_0800F92C: .4byte gUnknown_203B0D8
+_0800F92C: .4byte gDungeonPokemonSprites
_0800F930: .4byte gUnknown_80D3564
- thumb_func_end sub_800F8D0
+ thumb_func_end AddPokemonDungeonSprite
- thumb_func_start sub_800F934
-sub_800F934:
+ thumb_func_start DeletePokemonDungeonSprite
+ @ void DeletePokemonDungeonSprite(int id)
+DeletePokemonDungeonSprite:
push {lr}
adds r1, r0, 0
ldr r0, _0800F954
@@ -5343,7 +5353,7 @@ sub_800F934:
cmp r0, 0
beq _0800F950
adds r0, r1, 0
- bl sub_800F210
+ bl GetDungeonPokemonSprite
cmp r0, 0
beq _0800F950
movs r1, 0x40
@@ -5352,8 +5362,8 @@ _0800F950:
pop {r0}
bx r0
.align 2, 0
-_0800F954: .4byte gUnknown_203B0D8
- thumb_func_end sub_800F934
+_0800F954: .4byte gDungeonPokemonSprites
+ thumb_func_end DeletePokemonDungeonSprite
thumb_func_start sub_800F958
sub_800F958:
@@ -5367,7 +5377,7 @@ sub_800F958:
cmp r0, 0
beq _0800F984
adds r0, r4, 0
- bl sub_800F210
+ bl GetDungeonPokemonSprite
adds r3, r0, 0
cmp r3, 0
beq _0800F984
@@ -5383,7 +5393,7 @@ _0800F984:
pop {r0}
bx r0
.align 2, 0
-_0800F98C: .4byte gUnknown_203B0D8
+_0800F98C: .4byte gDungeonPokemonSprites
thumb_func_end sub_800F958
thumb_func_start sub_800F990
diff --git a/asm/code_8040094.s b/asm/code_8040094.s
index 34ae163..6148e19 100644
--- a/asm/code_8040094.s
+++ b/asm/code_8040094.s
@@ -3009,15 +3009,16 @@ _08041874: .4byte 0x00000808
_08041878: .4byte gUnknown_203B40D
thumb_func_end sub_804178C
- thumb_func_start sub_804187C
-sub_804187C:
+ thumb_func_start EntityGetStatusSprites
+ @ int EntityGetStatusSprites(struct DungeonEntity *entity)
+EntityGetStatusSprites:
ldr r0, [r0, 0x70]
movs r1, 0x80
lsls r1, 2
adds r0, r1
ldr r0, [r0]
bx lr
- thumb_func_end sub_804187C
+ thumb_func_end EntityGetStatusSprites
thumb_func_start sub_8041888
sub_8041888:
@@ -3048,7 +3049,7 @@ _08041890:
strb r0, [r1]
_080418BA:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_080418C0:
adds r5, 0x1
cmp r5, 0x13
@@ -3061,8 +3062,8 @@ _080418CC: .4byte gDungeonGlobalData
_080418D0: .4byte 0x000135cc
thumb_func_end sub_8041888
- thumb_func_start sub_80418D4
-sub_80418D4:
+ thumb_func_start DungeonEntityUpdateStatusSprites
+DungeonEntityUpdateStatusSprites:
push {r4,lr}
adds r4, r0, 0
bl EntityExists
@@ -3297,21 +3298,21 @@ _08041A8C:
pop {r0}
bx r0
.align 2, 0
-_08041A94: .4byte gUnknown_80F669C
-_08041A98: .4byte gUnknown_80F66B4
-_08041A9C: .4byte gUnknown_80F66C8
-_08041AA0: .4byte gUnknown_80F66E8
-_08041AA4: .4byte gUnknown_80F6708
-_08041AA8: .4byte gUnknown_80F673C
-_08041AAC: .4byte gUnknown_80F6778
-_08041AB0: .4byte gUnknown_80F6788
-_08041AB4: .4byte gUnknown_80F6794
-_08041AB8: .4byte gUnknown_80F67A8
-_08041ABC: .4byte gUnknown_80F67B4
-_08041AC0: .4byte gUnknown_80F67C4
-_08041AC4: .4byte gUnknown_80F67D4
+_08041A94: .4byte gStatusSpriteMasks_SleepStatus
+_08041A98: .4byte gStatusSpriteMasks_NonVolatileStatus
+_08041A9C: .4byte gStatusSpriteMasks_ImmobilizeStatus
+_08041AA0: .4byte gStatusSpriteMasks_VolatileStatus
+_08041AA4: .4byte gStatusSpriteMasks_ChargingStatus
+_08041AA8: .4byte gStatusSpriteMasks_ProtectionStatus
+_08041AAC: .4byte gStatusSpriteMasks_WaitingStatus
+_08041AB0: .4byte gStatusSpriteMasks_LinkedStatus
+_08041AB4: .4byte gStatusSpriteMasks_MoveStatus
+_08041AB8: .4byte gStatusSpriteMasks_ItemStatus
+_08041ABC: .4byte gStatusSpriteMasks_TransformStatus
+_08041AC0: .4byte gStatusSpriteMasks_EyesightStatus
+_08041AC4: .4byte gStatusSpriteMasks_MuzzledStatus
_08041AC8: .4byte gDungeonGlobalData
_08041ACC: .4byte 0x00000676
- thumb_func_end sub_80418D4
+ thumb_func_end DungeonEntityUpdateStatusSprites
.align 2,0
diff --git a/asm/code_80428A0.s b/asm/code_80428A0.s
index 3146edd..321afa0 100644
--- a/asm/code_80428A0.s
+++ b/asm/code_80428A0.s
@@ -1074,7 +1074,7 @@ _080432FC:
bl nullsub_16
bl sub_80521D0
bl sub_80531A8
- bl sub_800F690
+ bl InitDungeonPokemonSprites
cmp r6, 0
bne _08043318
bl sub_804513C
@@ -1762,7 +1762,7 @@ _08043926:
ldr r0, _08043994
ldr r0, [r0]
bl CloseFile
- bl sub_800F740
+ bl FreeDungeonPokemonSprites
ldr r0, _08043998
mov r3, r10
strb r3, [r0]
diff --git a/asm/code_80450F8.s b/asm/code_80450F8.s
index 53a6e20..98b4b01 100644
--- a/asm/code_80450F8.s
+++ b/asm/code_80450F8.s
@@ -170,7 +170,7 @@ _08045284: .4byte 0x000181f8
_08045288:
ldr r4, [r5, 0x70]
adds r0, r5, 0
- bl sub_804187C
+ bl EntityGetStatusSprites
adds r2, r0, 0
adds r0, r4, 0
adds r0, 0x98
@@ -178,7 +178,7 @@ _08045288:
movs r3, 0x4
ldrsh r1, [r4, r3]
movs r3, 0
- bl sub_800F75C
+ bl UpdateDungeonPokemonSprite
_080452A2:
adds r6, 0x1
cmp r6, 0x13
diff --git a/asm/code_8057824.s b/asm/code_8057824.s
index c623f0d..0134a51 100644
--- a/asm/code_8057824.s
+++ b/asm/code_8057824.s
@@ -35247,7 +35247,7 @@ _08069462:
_08069466:
mov r1, r10
ldr r0, [r1]
- bl sub_800F934
+ bl DeletePokemonDungeonSprite
ldr r0, _080694BC
movs r2, 0
str r2, [r0]
@@ -37746,7 +37746,7 @@ _0806A744:
cmp r0, 0
beq _0806A776
adds r0, r7, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
b _0806A776
.align 2, 0
_0806A75C: .4byte gDungeonGlobalData
@@ -40398,7 +40398,7 @@ sub_806BB6C:
mov r8, r9
adds r0, 0x98
ldr r0, [r0]
- bl sub_800F934
+ bl DeletePokemonDungeonSprite
add r0, sp, 0x8
movs r1, 0
mov r10, r1
@@ -40494,7 +40494,7 @@ _0806BC14:
adds r0, r7, 0
bl sub_80429E8
adds r0, r7, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
add sp, 0x1C
pop {r3-r5}
mov r8, r3
@@ -40901,7 +40901,7 @@ _0806BF70:
ldr r4, _0806BFBC
adds r3, r4
ldrb r3, [r3]
- bl sub_800F8D0
+ bl AddPokemonDungeonSprite
mov r0, r8
bl LoadIQSkills
mov r0, r8
@@ -42175,7 +42175,7 @@ _0806C904:
add r2, sp, 0xC
bl sub_800F958
adds r0, r6, 0
- bl sub_804187C
+ bl EntityGetStatusSprites
adds r2, r0, 0
ldr r4, [r4]
mov r0, r8
@@ -42195,7 +42195,7 @@ _0806C904:
_0806C958:
adds r0, r4, 0
adds r1, r7, 0
- bl sub_800F75C
+ bl UpdateDungeonPokemonSprite
adds r0, r6, 0
mov r1, r9
bl sub_8042EC8
diff --git a/asm/code_806CD90.s b/asm/code_806CD90.s
index 50f101b..6eff73f 100644
--- a/asm/code_806CD90.s
+++ b/asm/code_806CD90.s
@@ -1919,7 +1919,7 @@ _0806DDA2:
adds r0, r7, 0
bl sub_806CCB4
adds r0, r7, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
ldr r4, _0806DDF0
adds r0, r4, 0
adds r1, r7, 0
@@ -2080,7 +2080,7 @@ _0806DEF2:
adds r0, r7, 0
bl sub_806CCB4
adds r0, r7, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
ldr r0, _0806DF40
adds r1, r7, 0
movs r2, 0
diff --git a/asm/code_8075BA4.s b/asm/code_8075BA4.s
index 90e8196..9c0d0da 100644
--- a/asm/code_8075BA4.s
+++ b/asm/code_8075BA4.s
@@ -54,7 +54,7 @@ _08075C48:
movs r7, 0x2
_08075C4A:
adds r0, r5, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
adds r0, r7, 0
_08075C52:
pop {r4-r7}
@@ -321,7 +321,7 @@ _08075E50:
bl sub_80522F4
_08075E5C:
adds r0, r5, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08075E62:
pop {r3,r4}
mov r8, r3
@@ -419,7 +419,7 @@ _08075F10:
bl sub_80522F4
_08075F1C:
adds r0, r5, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08075F22:
pop {r3,r4}
mov r8, r3
@@ -502,7 +502,7 @@ _08075FB0:
bl sub_80522F4
_08075FBC:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08075FC2:
pop {r4-r6}
pop {r0}
@@ -596,7 +596,7 @@ _08076074:
bl sub_80522F4
_08076080:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08076086:
pop {r4-r7}
pop {r0}
@@ -687,7 +687,7 @@ _08076128:
bl sub_80522F4
_08076134:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_0807613A:
pop {r3,r4}
mov r8, r3
@@ -780,7 +780,7 @@ _080761F4:
bl sub_80522F4
_08076200:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08076206:
pop {r4-r7}
pop {r0}
@@ -940,7 +940,7 @@ _08076338:
bl sub_80522F4
_08076344:
adds r0, r5, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
adds r0, r5, 0
movs r1, 0x19
bl HasAbility
@@ -1241,7 +1241,7 @@ _080765B4:
ble _08076544
_080765BA:
adds r0, r5, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_080765C0:
pop {r3-r5}
mov r8, r3
@@ -1464,7 +1464,7 @@ _08076784:
ble _08076714
_0807678A:
adds r0, r5, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08076790:
pop {r3-r5}
mov r8, r3
@@ -1609,7 +1609,7 @@ _08076892:
adds r1, r5, 0
bl sub_80522F4
adds r0, r5, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_080768C8:
pop {r3}
mov r8, r3
@@ -1724,7 +1724,7 @@ _080769AC:
bl sub_80522F4
_080769B8:
adds r0, r5, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_080769BE:
pop {r3}
mov r8, r3
@@ -1828,7 +1828,7 @@ _08076A88:
bl sub_80522F4
_08076A94:
adds r0, r5, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08076A9A:
pop {r4-r7}
pop {r0}
@@ -1905,7 +1905,7 @@ _08076B28:
bl sub_80522F4
_08076B34:
adds r0, r5, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08076B3A:
pop {r3}
mov r8, r3
@@ -2074,7 +2074,7 @@ _08076C7C:
bl sub_80522F4
_08076C98:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08076C9E:
pop {r3}
mov r8, r3
@@ -2124,7 +2124,7 @@ _08076CF2:
str r6, [r2]
_08076CF4:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08076CFA:
adds r5, 0x1
cmp r5, 0x13
@@ -2260,7 +2260,7 @@ _08076E02:
ble _08076DC2
_08076E08:
adds r0, r6, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08076E0E:
pop {r4-r7}
pop {r0}
@@ -2422,7 +2422,7 @@ _08076F5C:
bl sub_80522F4
_08076F68:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08076F6E:
pop {r3,r4}
mov r8, r3
@@ -2545,7 +2545,7 @@ _08077060:
bl sub_80522F4
_0807706C:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08077072:
pop {r3,r4}
mov r8, r3
@@ -2648,7 +2648,7 @@ _08077140:
bl sub_80522F4
_0807714C:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08077152:
pop {r3}
mov r8, r3
@@ -2750,7 +2750,7 @@ _0807721C:
bl sub_80522F4
_08077228:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_0807722E:
pop {r3}
mov r8, r3
@@ -2825,7 +2825,7 @@ _0807729E:
bl sub_8041C58
_080772AE:
adds r0, r5, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_080772B4:
pop {r4,r5}
pop {r0}
@@ -3001,7 +3001,7 @@ _08077410:
bl sub_80522F4
_0807741C:
adds r0, r5, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08077422:
pop {r3-r5}
mov r8, r3
@@ -3134,7 +3134,7 @@ _0807751C:
bl sub_80522F4
_08077528:
adds r0, r5, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_0807752E:
pop {r3-r5}
mov r8, r3
@@ -3212,7 +3212,7 @@ _080775C0:
bl sub_80522F4
_080775CC:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_080775D2:
pop {r4-r7}
pop {r0}
@@ -3318,7 +3318,7 @@ _080776A4:
bl sub_80522F4
_080776B0:
adds r0, r5, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_080776B6:
pop {r4-r7}
pop {r0}
@@ -3408,7 +3408,7 @@ _08077764:
bl sub_80522F4
_08077770:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08077776:
pop {r4-r6}
pop {r0}
@@ -3588,7 +3588,7 @@ _080778E4:
ble _08077874
_080778EA:
adds r0, r5, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_080778F0:
pop {r3-r5}
mov r8, r3
@@ -3703,7 +3703,7 @@ _080779B0:
strb r2, [r0]
_080779D8:
adds r0, r5, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_080779DE:
pop {r3,r4}
mov r8, r3
@@ -3822,7 +3822,7 @@ _08077AB4:
bl sub_80522F4
_08077ACA:
adds r0, r5, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08077AD0:
add sp, 0x4
pop {r3-r5}
@@ -3927,7 +3927,7 @@ _08077B98:
bl sub_80522F4
_08077BA4:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08077BAA:
pop {r4-r7}
pop {r0}
@@ -3995,7 +3995,7 @@ _08077C28:
bl sub_80522F4
_08077C34:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08077C3A:
pop {r4-r6}
pop {r0}
@@ -4101,7 +4101,7 @@ _08077CE8:
ldrsh r0, [r4, r2]
subs r6, r0, r6
adds r0, r5, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
ldr r0, _08077D1C
str r6, [r0]
str r7, [r0, 0x4]
@@ -4256,7 +4256,7 @@ _08077E0C:
bl sub_803F580
bl sub_8040A84
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08077E3C:
pop {r4,r5}
pop {r0}
@@ -4318,7 +4318,7 @@ _08077E90:
bl sub_803F580
bl sub_8040A84
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08077EC0:
pop {r4,r5}
pop {r0}
@@ -4370,7 +4370,7 @@ _08077F00:
bl sub_803F580
bl sub_8040A84
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08077F30:
pop {r4,r5}
pop {r0}
@@ -4523,7 +4523,7 @@ _08078050:
adds r1, r4, 0
bl sub_80522F4
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08078068:
pop {r3-r5}
mov r8, r3
@@ -4576,7 +4576,7 @@ _0807808A:
movs r0, 0
strb r0, [r3]
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_080780D0:
adds r5, 0x1
cmp r5, 0x13
@@ -4692,7 +4692,7 @@ _080781AC:
adds r1, r5, 0
bl sub_80522F4
adds r0, r5, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_080781C4:
pop {r3}
mov r8, r3
@@ -4751,7 +4751,7 @@ _08078230:
bl sub_80522F4
_0807823C:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08078242:
pop {r4-r7}
pop {r0}
@@ -4813,7 +4813,7 @@ _080782B0:
bl sub_80522F4
_080782BC:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_080782C2:
pop {r4-r7}
pop {r0}
@@ -4872,7 +4872,7 @@ _0807832C:
bl sub_80522F4
_08078338:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_0807833E:
pop {r4-r6}
pop {r0}
@@ -4931,7 +4931,7 @@ _080783A8:
bl sub_80522F4
_080783B4:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_080783BA:
pop {r4-r6}
pop {r0}
@@ -5141,7 +5141,7 @@ _0807855E:
cmp r6, 0x13
ble _08078502
adds r0, r7, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_0807856A:
add sp, 0x24
pop {r3-r5}
@@ -5259,7 +5259,7 @@ _08078640:
bl sub_80779F0
_08078668:
adds r0, r6, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_0807866E:
pop {r4-r7}
pop {r0}
@@ -5356,7 +5356,7 @@ _08078700:
adds r1, r6, 0
bl sub_80522F4
adds r0, r6, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08078732:
pop {r3}
mov r8, r3
@@ -5430,7 +5430,7 @@ _080787C8:
bl sub_80522F4
_080787D4:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_080787DA:
pop {r4-r6}
pop {r0}
@@ -5487,7 +5487,7 @@ _08078840:
bl sub_80522F4
_0807884C:
adds r0, r5, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08078852:
pop {r4-r6}
pop {r0}
@@ -5554,7 +5554,7 @@ _080788CC:
bl sub_80522F4
_080788D8:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_080788DE:
pop {r4-r7}
pop {r0}
@@ -5615,7 +5615,7 @@ _0807894C:
bl sub_80522F4
_08078958:
adds r0, r5, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_0807895E:
pop {r4-r6}
pop {r0}
@@ -5731,7 +5731,7 @@ _08078A38:
bl sub_80522F4
_08078A44:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08078A4A:
pop {r3}
mov r8, r3
@@ -5849,7 +5849,7 @@ _08078B38:
bl sub_80522F4
_08078B44:
adds r0, r6, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08078B4A:
add sp, 0x14
pop {r3}
@@ -6106,7 +6106,7 @@ _08078D60:
bl sub_80522F4
_08078D72:
adds r0, r6, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08078D78:
add sp, 0x28
pop {r3-r5}
@@ -6177,7 +6177,7 @@ _08078DFC:
bl sub_80522F4
_08078E08:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08078E0E:
pop {r4-r6}
pop {r0}
@@ -6313,7 +6313,7 @@ _08078ED4:
adds r1, r5, 0
bl sub_80522F4
adds r0, r5, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08078F2E:
movs r3, 0x80
lsls r3, 2
@@ -6389,7 +6389,7 @@ _08078FC0:
bl sub_80522F4
_08078FCC:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08078FD2:
pop {r4-r7}
pop {r0}
@@ -6499,7 +6499,7 @@ _080790A0:
bl sub_80522F4
_080790B0:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_080790B6:
pop {r3-r5}
mov r8, r3
@@ -6544,7 +6544,7 @@ sub_80790C8:
movs r1, 0x1
strb r1, [r0]
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
ldr r0, _08079124
ldr r2, [r0]
adds r0, r5, 0
@@ -6630,7 +6630,7 @@ _080791BC:
bl sub_80522F4
_080791C8:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_080791CE:
pop {r4-r6}
pop {r0}
@@ -6700,7 +6700,7 @@ _08079254:
bl sub_80522F4
_08079260:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08079266:
pop {r4-r7}
pop {r0}
@@ -6763,7 +6763,7 @@ _080792DC:
bl sub_80522F4
_080792E8:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_080792EE:
pop {r4-r6}
pop {r0}
@@ -6852,7 +6852,7 @@ _08079388:
bl sub_80522F4
_08079394:
adds r0, r6, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_0807939A:
add sp, 0x8
pop {r3-r5}
@@ -6914,7 +6914,7 @@ _08079404:
bl sub_80522F4
_08079410:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08079416:
pop {r4-r6}
pop {r0}
@@ -6971,7 +6971,7 @@ _08079474:
bl sub_80522F4
_08079480:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08079486:
pop {r4-r6}
pop {r0}
@@ -7028,7 +7028,7 @@ _080794E4:
bl sub_80522F4
_080794F0:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_080794F6:
pop {r4-r6}
pop {r0}
@@ -7085,7 +7085,7 @@ _08079554:
bl sub_80522F4
_08079560:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08079566:
pop {r4-r6}
pop {r0}
@@ -7128,7 +7128,7 @@ _080795A8:
bl sub_80522F4
_080795B4:
adds r0, r5, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
pop {r4-r6}
pop {r0}
bx r0
@@ -7170,7 +7170,7 @@ _080795FC:
bl sub_80522F4
_08079608:
adds r0, r5, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
pop {r4-r6}
pop {r0}
bx r0
@@ -7304,7 +7304,7 @@ _080796FA:
ldr r2, [sp, 0x1C]
bl sub_80522F4
adds r0, r7, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
movs r4, 0
ldr r6, _08079720
b _0807972C
@@ -7375,7 +7375,7 @@ sub_8079764:
strb r1, [r0]
_08079794:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_0807979A:
pop {r4}
pop {r0}
@@ -7441,7 +7441,7 @@ _0807980A:
adds r1, r4, 0
bl sub_80522F4
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08079822:
pop {r3}
mov r8, r3
@@ -7503,7 +7503,7 @@ _08079894:
bl sub_80522F4
_080798A0:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_080798A6:
pop {r4-r6}
pop {r0}
@@ -7562,7 +7562,7 @@ _08079910:
bl sub_80522F4
_0807991C:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08079922:
pop {r4-r6}
pop {r0}
@@ -7621,7 +7621,7 @@ _0807998C:
bl sub_80522F4
_08079998:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_0807999E:
pop {r4-r6}
pop {r0}
@@ -7680,7 +7680,7 @@ _08079A08:
bl sub_80522F4
_08079A14:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08079A1A:
pop {r4-r6}
pop {r0}
@@ -7739,7 +7739,7 @@ _08079A84:
bl sub_80522F4
_08079A90:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08079A96:
pop {r4-r6}
pop {r0}
@@ -7798,7 +7798,7 @@ _08079B00:
bl sub_80522F4
_08079B0C:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08079B12:
pop {r4-r6}
pop {r0}
@@ -7861,7 +7861,7 @@ _08079B7C:
bl sub_80522F4
_08079B92:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08079B98:
pop {r4-r6}
pop {r0}
@@ -7921,7 +7921,7 @@ _08079C08:
bl sub_80522F4
_08079C14:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08079C1A:
pop {r4-r6}
pop {r0}
@@ -7980,7 +7980,7 @@ _08079C84:
bl sub_80522F4
_08079C90:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08079C96:
pop {r4-r6}
pop {r0}
@@ -8039,7 +8039,7 @@ _08079D00:
bl sub_80522F4
_08079D0C:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08079D12:
pop {r4-r6}
pop {r0}
@@ -8113,7 +8113,7 @@ _08079D9C:
bl sub_80522F4
_08079DA8:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08079DAE:
pop {r4-r6}
pop {r0}
@@ -8172,7 +8172,7 @@ _08079E18:
bl sub_80522F4
_08079E24:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08079E2A:
pop {r4-r6}
pop {r0}
@@ -8293,7 +8293,7 @@ _08079EFC:
bl sub_80522F4
_08079F08:
adds r0, r5, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_08079F0E:
pop {r3,r4}
mov r8, r3
@@ -8496,7 +8496,7 @@ _0807A0A0:
bl sub_80522F4
_0807A0B2:
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_0807A0B8:
add sp, 0x4
pop {r3-r5}
@@ -8551,7 +8551,7 @@ _0807A110:
cmp r3, 0
bge _0807A0FE
adds r0, r5, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_0807A11E:
pop {r4-r7}
pop {r0}
@@ -8711,7 +8711,7 @@ _0807A260:
movs r0, 0
strb r0, [r1]
adds r0, r5, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
mov r2, r9
cmp r2, 0
beq _0807A27C
@@ -8793,7 +8793,7 @@ _0807A30C:
movs r0, 0
strb r0, [r1]
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_0807A31A:
pop {r4-r6}
pop {r0}
@@ -8892,7 +8892,7 @@ _0807A3DC:
movs r0, 0
strb r0, [r1]
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
cmp r7, 0
beq _0807A3F4
adds r0, r4, 0
@@ -8991,7 +8991,7 @@ _0807A4A8:
movs r0, 0
strb r0, [r1]
adds r0, r5, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
adds r0, r5, 0
bl GetMovementSpeed
_0807A4BC:
@@ -9124,7 +9124,7 @@ _0807A5B6:
movs r0, 0
strb r0, [r1]
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_0807A5C4:
pop {r4,r5}
pop {r0}
@@ -9235,7 +9235,7 @@ _0807A6A4:
movs r0, 0
strb r0, [r1]
adds r0, r5, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_0807A6B2:
pop {r4-r7}
pop {r0}
@@ -9295,7 +9295,7 @@ _0807A716:
movs r0, 0xFF
strb r0, [r1]
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_0807A72A:
pop {r4,r5}
pop {r0}
@@ -9369,7 +9369,7 @@ _0807A7AE:
movs r0, 0
strb r0, [r1]
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_0807A7BC:
pop {r4,r5}
pop {r0}
@@ -9455,7 +9455,7 @@ _0807A866:
movs r0, 0
strb r0, [r1]
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
cmp r6, 0
beq _0807A87E
movs r0, 0x1
@@ -9527,7 +9527,7 @@ _0807A8F6:
movs r1, 0
strb r1, [r0]
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
ldrb r0, [r5, 0x7]
cmp r0, 0
beq _0807A918
@@ -9569,7 +9569,7 @@ _0807A952:
movs r0, 0
strb r0, [r4]
adds r0, r5, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_0807A95C:
pop {r4,r5}
pop {r0}
@@ -9632,7 +9632,7 @@ sub_807A9B0:
movs r2, 0x1
bl sub_806A898
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
pop {r4}
pop {r0}
bx r0
@@ -9671,7 +9671,7 @@ sub_807A9D8:
adds r1, r4, 0
bl sub_80522F4
adds r0, r4, 0
- bl sub_80418D4
+ bl DungeonEntityUpdateStatusSprites
_0807AA20:
pop {r4,r5}
pop {r0}
@@ -25838,7 +25838,7 @@ _08082B46:
ldrsh r1, [r4, r2]
mov r2, sp
movs r3, 0x3
- bl sub_800F8D0
+ bl AddPokemonDungeonSprite
movs r1, 0x4
ldrsh r0, [r5, r1]
movs r2, 0x6
diff --git a/data/data_80B9BB8.s b/data/data_80B9BB8.s
index ff0c5dc..74eb4a9 100644
--- a/data/data_80B9BB8.s
+++ b/data/data_80B9BB8.s
@@ -5599,15 +5599,78 @@ gUnknown_80CE788: @ 80CE788
.global gStatusGraphics
gStatusGraphics: @ 80CE79C
- .incbin "baserom.gba", 0xCE79C, 0x198
+ @ width, height, vram index, unk, graphic count, offset into graphic
+ .4byte 0, 0, 0, 0, 0, 0
+ .4byte 1, 1, 0, 0, 14, TILE_SIZE_2BPP * 0 @ sleepless
+ .4byte 2, 2, 1, 0, 7, TILE_SIZE_2BPP * 14 @ burned
+ .4byte 2, 2, 5, 0, 16, TILE_SIZE_2BPP * 42 @ poisoned
+ .4byte 4, 4, 9, 0, 6, TILE_SIZE_2BPP * 106 @ frozen
+ .4byte 4, 2, 25, 0, 4, TILE_SIZE_2BPP * 202 @ confused
+ .4byte 2, 2, 33, 0, 9, TILE_SIZE_2BPP * 234 @ whiffer
+ .4byte 2, 2, 37, 0, 8, TILE_SIZE_2BPP * 270 @ taunted
+ .4byte 1, 2, 41, 0, 8, TILE_SIZE_2BPP * 302 @ lowhp
+ .4byte 2, 2, 43, 0, 13, TILE_SIZE_2BPP * 318 @ shield
+ .4byte 2, 2, 47, 10, 10, TILE_SIZE_2BPP * 370 @ statdown
+ .4byte 2, 2, 51, 0, 13, TILE_SIZE_2BPP * 410 @ sword
+ .4byte 1, 1, 55, 0, 14, TILE_SIZE_2BPP * 462 @ blinker
+ .4byte 2, 2, 56, 0, 10, TILE_SIZE_2BPP * 476 @ cross-eyed
+ .4byte 1, 1, 60, 0, 14, TILE_SIZE_2BPP * 516 @ eyedrops
+ .4byte 2, 2, 61, 0, 8, TILE_SIZE_2BPP * 530 @ muzzled
+ .4byte 2, 2, 65, 4, 10, TILE_SIZE_2BPP * 562 @ sleep
.global gStatusGraphics4bpp
gStatusGraphics4bpp: @ 80CE934
- .incbin "baserom.gba", 0xCE934, 0x4B40
+ .incbin "graphics/status/sleepless.4bpp"
+ .incbin "graphics/status/burned.4bpp"
+ .incbin "graphics/status/poisoned.4bpp"
+ .incbin "graphics/status/frozen.4bpp"
+ .incbin "graphics/status/confused.4bpp"
+ .incbin "graphics/status/whiffer.4bpp"
+ .incbin "graphics/status/taunted.4bpp"
+ .incbin "graphics/status/lowhp.4bpp"
+ .incbin "graphics/status/shield.4bpp"
+ .incbin "graphics/status/statdown.4bpp"
+ .incbin "graphics/status/sword.4bpp"
+ .incbin "graphics/status/blinker.4bpp"
+ .incbin "graphics/status/cross_eyed.4bpp"
+ .incbin "graphics/status/eyedrops.4bpp"
+ .incbin "graphics/status/muzzled.4bpp"
+ .incbin "graphics/status/sleep.4bpp"
- .global gUnknown_80D3474
-gUnknown_80D3474: @ 80D3474
- .incbin "baserom.gba", 0xD3474, 0xF0
+ .global gStatusSprites
+gStatusSprites: @ 80D3474
+ @ Status to status image conversion
+ @ image, palette
+ .4byte 0, 0
+ .4byte 1, 0 @ STATUS_SPRITE_SLEEPLESS
+ .4byte 2, 0 @ STATUS_SPRITE_BURNED
+ .4byte 3, 11 @ STATUS_SPRITE_POISONED
+ .4byte 3, 7 @ STATUS_SPRITE_BADLY_POISONED
+ .4byte 5, 0 @ STATUS_SPRITE_CONFUSED
+ .4byte 6, 0 @ STATUS_SPRITE_COWERING
+ .4byte 7, 0 @ STATUS_SPRITE_TAUNTED
+ .4byte 8, 0 @ STATUS_SPRITE_ENCORE
+ .4byte 9, 0 @ STATUS_SPRITE_SHIELD_BLUE
+ .4byte 9, 4 @ STATUS_SPRITE_SHIELD_RED
+ .4byte 9, 3 @ STATUS_SPRITE_SHIELD_YELLOW
+ .4byte 9, 10 @ STATUS_SPRITE_SHIELD_GREEN
+ .4byte 9, 5 @ STATUS_SPRITE_ENDURE
+ .4byte 8, 0 @ STATUS_SPRITE_LOWHP
+ .4byte 3, 6 @ STATUS_SPRITE_CURSED
+ .4byte 8, 3 @ STATUS_SPRITE_SNATCH
+ .4byte 11, 0 @ STATUS_SPRITE_SURE_SHOT
+ .4byte 6, 10 @ STATUS_SPRITE_WHIFFER
+ .4byte 11, 5 @ STATUS_SPRITE_SET_DAMAGE
+ .4byte 11, 4 @ STATUS_SPRITE_FOCUS_ENERGY
+ .4byte 12, 0 @ STATUS_SPRITE_BLINKER
+ .4byte 13, 0 @ STATUS_SPRITE_CROSS_EYED
+ .4byte 14, 0 @ STATUS_SPRITE_EYEDROPS
+ .4byte 15, 0 @ STATUS_SPRITE_MUZZLED
+ .4byte 9, 7 @ STATUS_SPRITE_GRUDGE
+ .4byte 14, 4 @ STATUS_SPRITE_EXPOSED
+ .4byte 16, 4 @ STATUS_SPRITE_SLEEP
+ .4byte 10, 3 @ STATUS_SPRITE_STAT_DOWN
+ .4byte 4, 0 @ STATUS_SPRITE_FROZEN
.global gUnknown_80D3564
gUnknown_80D3564: @ 80D3564
diff --git a/data/data_80F4278.s b/data/data_80F4278.s
index 7ad38cb..036c63a 100644
--- a/data/data_80F4278.s
+++ b/data/data_80F4278.s
@@ -1,3 +1,4 @@
+#include "constants/status.h"
.section .rodata
.global gUnknown_80F42D0
@@ -1628,72 +1629,124 @@ gUnknown_80F6604: @ 80F6604
gUnknown_80F6624: @ 80F6624
.incbin "baserom.gba", 0xF6624, 0x78
- .global gUnknown_80F669C
-gUnknown_80F669C: @ 80F669C
- .incbin "baserom.gba", 0xF669C, 0x18
-
- .global gUnknown_80F66B4
-gUnknown_80F66B4: @ 80F66B4
- .incbin "baserom.gba", 0xF66B4, 0x14
-
- .global gUnknown_80F66C8
-gUnknown_80F66C8: @ 80F66C8
- .incbin "baserom.gba", 0xF66C8, 0x20
-
- .global gUnknown_80F66E8
-gUnknown_80F66E8: @ 80F66E8
- .incbin "baserom.gba", 0xF66E8, 0x20
-
- .global gUnknown_80F6708
-gUnknown_80F6708: @ 80F6708
- .incbin "baserom.gba", 0xF6708, 0x34
-
- .global gUnknown_80F673C
-gUnknown_80F673C: @ 80F673C
- .incbin "baserom.gba", 0xF673C, 0x3C
-
- .global gUnknown_80F6778
-gUnknown_80F6778: @ 80F6778
- .incbin "baserom.gba", 0xF6778, 0x10
-
- .global gUnknown_80F6788
-gUnknown_80F6788: @ 80F6788
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80F6794
-gUnknown_80F6794: @ 80F6794
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x01, 0x00
- .byte 0x00, 0x00, 0x02, 0x00
- .byte 0x00, 0x00, 0x04, 0x00
- .byte 0x00, 0x00, 0x08, 0x00
-
- .global gUnknown_80F67A8
-gUnknown_80F67A8: @ 80F67A8
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80F67B4
-gUnknown_80F67B4: @ 80F67B4
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
-
- .global gUnknown_80F67C4
-gUnknown_80F67C4: @ 80F67C4
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x10, 0x00
- .byte 0x00, 0x00, 0x20, 0x00
- .byte 0x00, 0x00, 0x40, 0x00
-
- .global gUnknown_80F67D4
-gUnknown_80F67D4: @ 80F67D4
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x80, 0x00
+ .global gStatusSpriteMasks_SleepStatus
+gStatusSpriteMasks_SleepStatus: @ 80F669C
+ .4byte 0 @ SLEEP_STATUS_NONE
+ .4byte STATUS_SPRITE_SLEEP @ SLEEP_STATUS_SLEEP
+ .4byte STATUS_SPRITE_SLEEPLESS @ SLEEP_STATUS_SLEEPLESS
+ .4byte STATUS_SPRITE_SLEEP @ SLEEP_STATUS_NIGHTMARE
+ .4byte 0 @ SLEEP_STATUS_YAWNING
+ .4byte STATUS_SPRITE_SLEEP @ SLEEP_STATUS_NAPPING
+
+ .global gStatusSpriteMasks_NonVolatileStatus
+gStatusSpriteMasks_NonVolatileStatus: @ 80F66B4
+ .4byte 0 @ NON_VOLATILE_STATUS_NONE
+ .4byte STATUS_SPRITE_BURNED @ NON_VOLATILE_STATUS_BURNED
+ .4byte STATUS_SPRITE_POISONED @ NON_VOLATILE_STATUS_POISONED
+ .4byte STATUS_SPRITE_BADLY_POISONED @ NON_VOLATILE_STATUS_BADLY_POISONED
+ .4byte 0 @ NON_VOLATILE_STATUS_PARALYZED
+
+ .global gStatusSpriteMasks_ImmobilizeStatus
+gStatusSpriteMasks_ImmobilizeStatus: @ 80F66C8
+ .4byte 0 @ IMMOBILIZE_STATUS_NONE
+ .4byte STATUS_SPRITE_FROZEN @ IMMOBILIZE_STATUS_FROZEN
+ .4byte 0 @ IMMOBILIZE_STATUS_IMMOBILIZED
+ .4byte 0 @ IMMOBILIZE_STATUS_WRAPPED_AROUND_FOE
+ .4byte 0 @ IMMOBILIZE_STATUS_WRAPPED_BY_FOE
+ .4byte 0 @ IMMOBILIZE_STATUS_INGRAIN
+ .4byte 0 @ IMMOBILIZE_STATUS_PETRIFIED
+ .4byte 0 @ IMMOBILIZE_STATUS_SQUEEZED
+
+ .global gStatusSpriteMasks_VolatileStatus
+gStatusSpriteMasks_VolatileStatus: @ 80F66E8
+ .4byte 0 @ VOLATILE_STATUS_NONE
+ .4byte 0 @ VOLATILE_STATUS_CRINGING
+ .4byte STATUS_SPRITE_CONFUSED @ VOLATILE_STATUS_CONFUSED
+ .4byte 0 @ VOLATILE_STATUS_PAUSED
+ .4byte STATUS_SPRITE_COWERING @ VOLATILE_STATUS_COWERING
+ .4byte STATUS_SPRITE_TAUNTED @ VOLATILE_STATUS_TAUNTED
+ .4byte STATUS_SPRITE_ENCORE @ VOLATILE_STATUS_ENCORE
+ .4byte 0 @ VOLATILE_STATUS_INFATUATED
+
+ .global gStatusSpriteMasks_ChargingStatus
+gStatusSpriteMasks_ChargingStatus: @ 80F6708
+ .4byte 0 @ CHARGING_STATUS_NONE
+ .4byte 0 @ CHARGING_STATUS_BIDE
+ .4byte 0 @ CHARGING_STATUS_SOLARBEAM
+ .4byte 0 @ CHARGING_STATUS_SKY_ATTACK
+ .4byte 0 @ CHARGING_STATUS_RAZOR_WIND
+ .4byte 0 @ CHARGING_STATUS_FOCUS_PUNCH
+ .4byte 0 @ CHARGING_STATUS_SKULL_BASH
+ .4byte 0 @ CHARGING_STATUS_FLY
+ .4byte 0 @ CHARGING_STATUS_BOUNCE
+ .4byte 0 @ CHARGING_STATUS_DIVE
+ .4byte 0 @ CHARGING_STATUS_DIG
+ .4byte 0 @ CHARGING_STATUS_CHARGE
+ .4byte 0 @ CHARGING_STATUS_RAGE
+
+ .global gStatusSpriteMasks_ProtectionStatus
+gStatusSpriteMasks_ProtectionStatus: @ 80F673C
+ .4byte 0 @ PROTECTION_STATUS_NONE
+ .4byte STATUS_SPRITE_SHIELD_BLUE @ PROTECTION_STATUS_REFLECT
+ .4byte STATUS_SPRITE_SHIELD_RED @ PROTECTION_STATUS_SAFEGUARD
+ .4byte STATUS_SPRITE_SHIELD_YELLOW @ PROTECTION_STATUS_LIGHT_SCREEN
+ .4byte STATUS_SPRITE_SHIELD_BLUE @ PROTECTION_STATUS_COUNTER
+ .4byte STATUS_SPRITE_SHIELD_YELLOW @ PROTECTION_STATUS_MAGIC_COAT
+ .4byte 0 @ PROTECTION_STATUS_WISH
+ .4byte STATUS_SPRITE_SHIELD_GREEN @ PROTECTION_STATUS_PROTECT
+ .4byte STATUS_SPRITE_SHIELD_RED @ PROTECTION_STATUS_MIRROR_COAT
+ .4byte STATUS_SPRITE_ENDURE @ PROTECTION_STATUS_ENDURE
+ .4byte STATUS_SPRITE_SHIELD_BLUE @ PROTECTION_STATUS_MINI_COUNTER
+ .4byte STATUS_SPRITE_SHIELD_GREEN @ PROTECTION_STATUS_MIRROR_MOVE
+ .4byte 0 @ PROTECTION_STATUS_CONVERSION_2
+ .4byte STATUS_SPRITE_SHIELD_GREEN @ PROTECTION_STATUS_VITAL_THROW
+ .4byte STATUS_SPRITE_SHIELD_BLUE @ PROTECTION_STATUS_MIST
+
+ .global gStatusSpriteMasks_WaitingStatus
+gStatusSpriteMasks_WaitingStatus: @ 80F6778
+ .4byte 0 @ WAITING_STATUS_NONE
+ .4byte STATUS_SPRITE_CURSED @ WAITING_STATUS_CURSED
+ .4byte 0 @ WAITING_STATUS_DECOY
+ .4byte STATUS_SPRITE_SNATCH @ WAITING_STATUS_SNATCH
+
+ .global gStatusSpriteMasks_LinkedStatus
+gStatusSpriteMasks_LinkedStatus: @ 80F6788
+ .4byte 0 @ LINKED_STATUS_NONE
+ .4byte 0 @ LINKED_STATUS_LEECH_SEED
+ .4byte 0 @ LINKED_STATUS_DESTINY_BOND
+
+ .global gStatusSpriteMasks_MoveStatus
+gStatusSpriteMasks_MoveStatus: @ 80F6794
+ .4byte 0 @ MOVE_STATUS_NONE
+ .4byte STATUS_SPRITE_SURE_SHOT @ MOVE_STATUS_SURE_SHOT
+ .4byte STATUS_SPRITE_WHIFFER @ MOVE_STATUS_WHIFFER
+ .4byte STATUS_SPRITE_SET_DAMAGE @ MOVE_STATUS_SET_DAMAGE
+ .4byte STATUS_SPRITE_FOCUS_ENERGY @ MOVE_STATUS_FOCUS_ENERGY
+
+ .global gStatusSpriteMasks_ItemStatus
+gStatusSpriteMasks_ItemStatus: @ 80F67A8
+ .4byte 0 @ ITEM_STATUS_NONE
+ .4byte 0 @ ITEM_STATUS_LONG_TOSS
+ .4byte 0 @ ITEM_STATUS_PIERCE
+
+ .global gStatusSpriteMasks_TransformStatus
+gStatusSpriteMasks_TransformStatus: @ 80F67B4
+ .4byte 0 @ TRANSFORM_STATUS_NONE
+ .4byte 0 @ TRANSFORM_STATUS_INVISIBLE
+ .4byte 0 @ TRANSFORM_STATUS_TRANSFORMED
+ .4byte 0 @ TRANSFORM_STATUS_MOBILE
+
+ .global gStatusSpriteMasks_EyesightStatus
+gStatusSpriteMasks_EyesightStatus: @ 80F67C4
+ .4byte 0 @ EYESIGHT_STATUS_NONE
+ .4byte STATUS_SPRITE_BLINKER @ EYESIGHT_STATUS_BLINKER
+ .4byte STATUS_SPRITE_CROSS_EYED @ EYESIGHT_STATUS_CROSS_EYED
+ .4byte STATUS_SPRITE_EYEDROPS @ EYESIGHT_STATUS_EYEDROPS
+
+ .global gStatusSpriteMasks_MuzzledStatus
+gStatusSpriteMasks_MuzzledStatus: @ 80F67D4
+ .4byte 0 @ MUZZLED_STATUS_NONE
+ .4byte STATUS_SPRITE_MUZZLED @ MUZZLED_STATUS_MUZZLED
.global gUnknown_80F67DC
gUnknown_80F67DC: @ 80F67DC
diff --git a/graphics/status/blinker.png b/graphics/status/blinker.png
new file mode 100644
index 0000000..3cf6415
--- /dev/null
+++ b/graphics/status/blinker.png
Binary files differ
diff --git a/graphics/status/burned.png b/graphics/status/burned.png
new file mode 100644
index 0000000..523fa83
--- /dev/null
+++ b/graphics/status/burned.png
Binary files differ
diff --git a/graphics/status/confused.png b/graphics/status/confused.png
new file mode 100644
index 0000000..709a251
--- /dev/null
+++ b/graphics/status/confused.png
Binary files differ
diff --git a/graphics/status/cross_eyed.png b/graphics/status/cross_eyed.png
new file mode 100644
index 0000000..761e2f2
--- /dev/null
+++ b/graphics/status/cross_eyed.png
Binary files differ
diff --git a/graphics/status/eyedrops.png b/graphics/status/eyedrops.png
new file mode 100644
index 0000000..a5e4f11
--- /dev/null
+++ b/graphics/status/eyedrops.png
Binary files differ
diff --git a/graphics/status/frozen.png b/graphics/status/frozen.png
new file mode 100644
index 0000000..ecb9871
--- /dev/null
+++ b/graphics/status/frozen.png
Binary files differ
diff --git a/graphics/status/lowhp.png b/graphics/status/lowhp.png
new file mode 100644
index 0000000..6b053ac
--- /dev/null
+++ b/graphics/status/lowhp.png
Binary files differ
diff --git a/graphics/status/muzzled.png b/graphics/status/muzzled.png
new file mode 100644
index 0000000..2968297
--- /dev/null
+++ b/graphics/status/muzzled.png
Binary files differ
diff --git a/graphics/status/poisoned.png b/graphics/status/poisoned.png
new file mode 100644
index 0000000..f0de13a
--- /dev/null
+++ b/graphics/status/poisoned.png
Binary files differ
diff --git a/graphics/status/shield.png b/graphics/status/shield.png
new file mode 100644
index 0000000..d464e9e
--- /dev/null
+++ b/graphics/status/shield.png
Binary files differ
diff --git a/graphics/status/sleep.png b/graphics/status/sleep.png
new file mode 100644
index 0000000..1424dc5
--- /dev/null
+++ b/graphics/status/sleep.png
Binary files differ
diff --git a/graphics/status/sleepless.png b/graphics/status/sleepless.png
new file mode 100644
index 0000000..22235a6
--- /dev/null
+++ b/graphics/status/sleepless.png
Binary files differ
diff --git a/graphics/status/statdown.png b/graphics/status/statdown.png
new file mode 100644
index 0000000..3e495ae
--- /dev/null
+++ b/graphics/status/statdown.png
Binary files differ
diff --git a/graphics/status/sword.png b/graphics/status/sword.png
new file mode 100644
index 0000000..0507994
--- /dev/null
+++ b/graphics/status/sword.png
Binary files differ
diff --git a/graphics/status/taunted.png b/graphics/status/taunted.png
new file mode 100644
index 0000000..6d0a16a
--- /dev/null
+++ b/graphics/status/taunted.png
Binary files differ
diff --git a/graphics/status/whiffer.png b/graphics/status/whiffer.png
new file mode 100644
index 0000000..595a0d2
--- /dev/null
+++ b/graphics/status/whiffer.png
Binary files differ
diff --git a/include/constants/status.h b/include/constants/status.h
index 229171f..19b860b 100644
--- a/include/constants/status.h
+++ b/include/constants/status.h
@@ -8,11 +8,13 @@
#define SLEEP_STATUS_YAWNING 4
#define SLEEP_STATUS_NAPPING 5
+#define NON_VOLATILE_STATUS_NONE 0
#define NON_VOLATILE_STATUS_BURNED 1
#define NON_VOLATILE_STATUS_POISONED 2
#define NON_VOLATILE_STATUS_BADLY_POISONED 3
#define NON_VOLATILE_STATUS_PARALYZED 4
+#define IMMOBILIZE_STATUS_NONE 0
#define IMMOBILIZE_STATUS_FROZEN 1
#define IMMOBILIZE_STATUS_IMMOBILIZED 2
#define IMMOBILIZE_STATUS_WRAPPED_AROUND_FOE 3
@@ -21,68 +23,109 @@
#define IMMOBILIZE_STATUS_PETRIFIED 6
#define IMMOBILIZE_STATUS_SQUEEZED 7
-#define CHARGING_STATUS_NONE 0x0
-#define CHARGING_STATUS_BIDE 0x1
-#define CHARGING_STATUS_SOLARBEAM 0x2
-#define CHARGING_STATUS_SKY_ATTACK 0x3
-#define CHARGING_STATUS_RAZOR_WIND 0x4
-#define CHARGING_STATUS_FOCUS_PUNCH 0x5
-#define CHARGING_STATUS_SKULL_BASH 0x6
-#define CHARGING_STATUS_FLY 0x7
-#define CHARGING_STATUS_BOUNCE 0x8
-#define CHARGING_STATUS_DIVE 0x9
-#define CHARGING_STATUS_DIG 0xA
-#define CHARGING_STATUS_CHARGE 0xB
-#define CHARGING_STATUS_RAGE 0xC
-
-#define PROTECTION_STATUS_REFLECT 0x1
-#define PROTECTION_STATUS_SAFEGUARD 0x2
-#define PROTECTION_STATUS_LIGHT_SCREEN 0x3
-#define PROTECTION_STATUS_COUNTER 0x4
-#define PROTECTION_STATUS_MAGIC_COAT 0x5
-#define PROTECTION_STATUS_WISH 0x6
-#define PROTECTION_STATUS_PROTECT 0x7
-#define PROTECTION_STATUS_MIRROR_COAT 0x8
-#define PROTECTION_STATUS_ENDURE 0x9
-#define PROTECTION_STATUS_MINI_COUNTER 0xA
-#define PROTECTION_STATUS_MIRROR_MOVE 0xB
-#define PROTECTION_STATUS_CONVERSION_2 0xC
-#define PROTECTION_STATUS_VITAL_THROW 0xD
-#define PROTECTION_STATUS_MIST 0xE
+#define VOLATILE_STATUS_NONE 0
+#define VOLATILE_STATUS_CRINGING 1
+#define VOLATILE_STATUS_CONFUSED 2
+#define VOLATILE_STATUS_PAUSED 3
+#define VOLATILE_STATUS_COWERING 4
+#define VOLATILE_STATUS_TAUNTED 5
+#define VOLATILE_STATUS_ENCORE 6
+#define VOLATILE_STATUS_INFATUATED 7
+
+#define CHARGING_STATUS_NONE 0
+#define CHARGING_STATUS_BIDE 1
+#define CHARGING_STATUS_SOLARBEAM 2
+#define CHARGING_STATUS_SKY_ATTACK 3
+#define CHARGING_STATUS_RAZOR_WIND 4
+#define CHARGING_STATUS_FOCUS_PUNCH 5
+#define CHARGING_STATUS_SKULL_BASH 6
+#define CHARGING_STATUS_FLY 7
+#define CHARGING_STATUS_BOUNCE 8
+#define CHARGING_STATUS_DIVE 9
+#define CHARGING_STATUS_DIG 10
+#define CHARGING_STATUS_CHARGE 11
+#define CHARGING_STATUS_RAGE 12
+
+#define PROTECTION_STATUS_NONE 0
+#define PROTECTION_STATUS_REFLECT 1
+#define PROTECTION_STATUS_SAFEGUARD 2
+#define PROTECTION_STATUS_LIGHT_SCREEN 3
+#define PROTECTION_STATUS_COUNTER 4
+#define PROTECTION_STATUS_MAGIC_COAT 5
+#define PROTECTION_STATUS_WISH 6
+#define PROTECTION_STATUS_PROTECT 7
+#define PROTECTION_STATUS_MIRROR_COAT 8
+#define PROTECTION_STATUS_ENDURE 9
+#define PROTECTION_STATUS_MINI_COUNTER 10
+#define PROTECTION_STATUS_MIRROR_MOVE 11
+#define PROTECTION_STATUS_CONVERSION_2 12
+#define PROTECTION_STATUS_VITAL_THROW 13
+#define PROTECTION_STATUS_MIST 14
+#define WAITING_STATUS_NONE 0
#define WAITING_STATUS_CURSED 1
#define WAITING_STATUS_DECOY 2
#define WAITING_STATUS_SNATCH 3
+#define LINKED_STATUS_NONE 0
#define LINKED_STATUS_LEECH_SEED 1
#define LINKED_STATUS_DESTINY_BOND 2
+#define MOVE_STATUS_NONE 0
#define MOVE_STATUS_SURE_SHOT 1
#define MOVE_STATUS_WHIFFER 2
#define MOVE_STATUS_SET_DAMAGE 3
#define MOVE_STATUS_FOCUS_ENERGY 4
+#define ITEM_STATUS_NONE 0
#define ITEM_STATUS_LONG_TOSS 1
#define ITEM_STATUS_PIERCE 2
+#define TRANSFORM_STATUS_NONE 0
#define TRANSFORM_STATUS_INVISIBLE 1
#define TRANSFORM_STATUS_TRANSFORMED 2
#define TRANSFORM_STATUS_MOBILE 3
+#define EYESIGHT_STATUS_NONE 0
#define EYESIGHT_STATUS_BLINKER 1
#define EYESIGHT_STATUS_CROSS_EYED 2
#define EYESIGHT_STATUS_EYEDROPS 3
-#define VOLATILE_STATUS_CRINGING 1
-#define VOLATILE_STATUS_CONFUSED 2
-#define VOLATILE_STATUS_PAUSED 3
-#define VOLATILE_STATUS_COWERING 4
-#define VOLATILE_STATUS_TAUNTED 5
-#define VOLATILE_STATUS_ENCORE 6
-#define VOLATILE_STATUS_INFATUATED 7
+#define MUZZLED_STATUS_NONE 0
+#define MUZZLED_STATUS_MUZZLED 1
#define TARGETING_DECOY_NONE 0
#define TARGETING_DECOY_TEAM 1
#define TARGETING_DECOY_WILD 2
+#define STATUS_SPRITE_SLEEPLESS (1 << 0)
+#define STATUS_SPRITE_BURNED (1 << 1)
+#define STATUS_SPRITE_POISONED (1 << 2)
+#define STATUS_SPRITE_BADLY_POISONED (1 << 3)
+#define STATUS_SPRITE_CONFUSED (1 << 4)
+#define STATUS_SPRITE_COWERING (1 << 5)
+#define STATUS_SPRITE_TAUNTED (1 << 6)
+#define STATUS_SPRITE_ENCORE (1 << 7)
+#define STATUS_SPRITE_SHIELD_BLUE (1 << 8) // REFLECT, COUNTER, MINI_COUNTER, MIST
+#define STATUS_SPRITE_SHIELD_RED (1 << 9) // SAFEGUARD, MIRROR_COAT
+#define STATUS_SPRITE_SHIELD_YELLOW (1 << 10) // LIGHT_SCREEN, MAGIC_COAT
+#define STATUS_SPRITE_SHIELD_GREEN (1 << 11) // PROTECT, MIRRO_MOVE, VITAL_THROW
+#define STATUS_SPRITE_ENDURE (1 << 12)
+#define STATUS_SPRITE_LOWHP (1 << 13)
+#define STATUS_SPRITE_CURSED (1 << 14)
+#define STATUS_SPRITE_SNATCH (1 << 15)
+#define STATUS_SPRITE_SURE_SHOT (1 << 16)
+#define STATUS_SPRITE_WHIFFER (1 << 17)
+#define STATUS_SPRITE_SET_DAMAGE (1 << 18)
+#define STATUS_SPRITE_FOCUS_ENERGY (1 << 19)
+#define STATUS_SPRITE_BLINKER (1 << 20)
+#define STATUS_SPRITE_CROSS_EYED (1 << 21)
+#define STATUS_SPRITE_EYEDROPS (1 << 22)
+#define STATUS_SPRITE_MUZZLED (1 << 23)
+#define STATUS_SPRITE_GRUDGE (1 << 24)
+#define STATUS_SPRITE_EXPOSED (1 << 25)
+#define STATUS_SPRITE_SLEEP (1 << 26)
+#define STATUS_SPRITE_STAT_DOWN (1 << 27)
+#define STATUS_SPRITE_FROZEN (1 << 28)
+
#endif
diff --git a/include/dungeon_entity.h b/include/dungeon_entity.h
index 25291e4..b894a2f 100644
--- a/include/dungeon_entity.h
+++ b/include/dungeon_entity.h
@@ -215,7 +215,9 @@ struct DungeonEntityData
/* 0x1FA */ u8 mobileTurnTimer; // When a Pokémon can pass through walls in a hallway, this counts up to 200 before the Pokémon turns in a random direction.
u8 fill1FB;
/* 0x1FC */ u16 expGainedInTurn; // Used to accumulate experience when multiple enemies are defeated in one turn.
- u8 fill1FE[0x208 - 0x1FE];
+ u8 fill1FE[0x200 - 0x1FE];
+ /* 0x200 */ u32 statusSprites;
+ u32 unk204;
};
// Used for Pokémon, items, and traps.
diff --git a/include/dungeon_global_data.h b/include/dungeon_global_data.h
index 5cb0c8a..1d0a971 100644
--- a/include/dungeon_global_data.h
+++ b/include/dungeon_global_data.h
@@ -80,7 +80,11 @@ struct DungeonGlobalData
/* 0x1358C */ struct DungeonEntity *wildPokemon[DUNGEON_MAX_WILD_POKEMON];
/* 0x135CC */ struct DungeonEntity *allPokemon[DUNGEON_MAX_POKEMON]; // Contains both team and wild Pokémon
/* 0x1361C */ struct DungeonEntity *clientPokemon[2]; // Not sure how large this array is.
- u8 fill13624[0x181F8 - 0x13624];
+ u8 fill13624[0x181E8 - 0x13624];
+ /* 0x181E8 */ struct Position posScreenWorld;
+ /* 0x181EC */ struct Position prevPosScreenWorld;
+ /* 0x181F0 */ struct Position posScreenPixel;
+ /* 0x181F4 */ struct Position prevPosScreenPixel;
/* 0x181F8 */ struct DungeonEntity *leader; // Pointer to the team leader.
u32 unk181FC;
u32 unk18200;
diff --git a/include/dungeon_pokemon_sprites.h b/include/dungeon_pokemon_sprites.h
new file mode 100644
index 0000000..50595ea
--- /dev/null
+++ b/include/dungeon_pokemon_sprites.h
@@ -0,0 +1,39 @@
+#ifndef GUARD_DUNGEON_POKEMON_SPRITES_H
+#define GUARD_DUNGEON_POKEMON_SPRITES_H
+
+#include "map.h"
+
+struct DungeonPokemonStatusSprite
+{
+ u32 status;
+ u32 frame;
+};
+
+struct DungeonPokemonSprite
+{
+ /* 0x0000 */ u8 exists;
+ /* 0x0004 */ u32 id;
+ /* 0x0008 */ u16 species; // Or sprite ID?
+ /* 0x000A */ u16 unkA;
+ /* 0x000C */ u32 status;
+ /* 0x0010 */ u8 visible;
+ /* 0x0011 */ u8 unk11;
+ /* 0x0014 */ struct Position pos;
+ /* 0x0018 */ struct Position statusOffsets[2];
+ /* 0x0020 */ u32 unk20;
+ /* 0x0024 */ u32 unk24;
+ /* 0x0028 */ struct DungeonPokemonStatusSprite statusSprites[2];
+ /* 0x0038 */ u8 unk38;
+ /* 0x003C */ u16 unk3C;
+ /* 0x003E */ u16 unk3E;
+}
+
+struct DungeonPokemonSprites
+{
+ u32 frame;
+ struct DungeonPokemonSprites sprites[22];
+};
+
+extern struct DungeonPokemonSprites *gDungeonPokemonSprites;
+
+#endif
diff --git a/sym_ewram2.txt b/sym_ewram2.txt
index add077c..c23cc46 100644
--- a/sym_ewram2.txt
+++ b/sym_ewram2.txt
@@ -146,7 +146,7 @@ gUnknown_203B0D0 = .; /* 203B0D0 */
gUnknown_203B0D4 = .; /* 203B0D4 */
. += 0x4;
-gUnknown_203B0D8 = .; /* 203B0D8 */
+gDungeonPokemonSprites = .; /* 203B0D8 */
. += 0x4;
gUnknown_203B0DC = .; /* 203B0DC */