mirror of
https://github.com/pret/pmd-red.git
synced 2026-07-19 01:11:30 -05:00
decomp a few more funcs
This commit is contained in:
parent
0ca46d7254
commit
f6decdd027
|
|
@ -2873,446 +2873,4 @@ _08041758:
|
|||
bx r1
|
||||
thumb_func_end sub_80416E0
|
||||
|
||||
thumb_func_start sub_8041764
|
||||
sub_8041764:
|
||||
push {r4,r5,lr}
|
||||
adds r5, r0, 0
|
||||
lsls r4, r1, 24
|
||||
lsrs r4, 24
|
||||
ldr r0, [r5]
|
||||
bl sub_800EE5C
|
||||
bl sub_800EF64
|
||||
cmp r4, 0
|
||||
beq _08041780
|
||||
movs r0, 0x42
|
||||
bl sub_803E46C
|
||||
_08041780:
|
||||
adds r0, r5, 0
|
||||
bl sub_800E890
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8041764
|
||||
|
||||
thumb_func_start sub_804178C
|
||||
sub_804178C:
|
||||
push {r4-r7,lr}
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
movs r4, 0
|
||||
ldr r0, _080417B0
|
||||
ldr r0, [r0]
|
||||
ldr r1, _080417B4
|
||||
adds r0, r1
|
||||
str r4, [r0]
|
||||
adds r0, r5, 0
|
||||
bl sub_800E9FC
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080417E0
|
||||
ldr r6, _080417B8
|
||||
b _080417C4
|
||||
.align 2, 0
|
||||
_080417B0: .4byte gDungeonGlobalData
|
||||
_080417B4: .4byte 0x00018204
|
||||
_080417B8: .4byte 0x000003e7
|
||||
_080417BC:
|
||||
movs r0, 0x4A
|
||||
bl sub_803E46C
|
||||
adds r4, 0x1
|
||||
_080417C4:
|
||||
cmp r4, r6
|
||||
bgt _080417D4
|
||||
adds r0, r5, 0
|
||||
bl sub_800E9FC
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _080417BC
|
||||
_080417D4:
|
||||
movs r0, 0x4A
|
||||
bl sub_803E46C
|
||||
movs r0, 0x4A
|
||||
bl sub_803E46C
|
||||
_080417E0:
|
||||
movs r0, 0xFA
|
||||
lsls r0, 2
|
||||
cmp r4, r0
|
||||
beq _080417EC
|
||||
cmp r5, 0
|
||||
beq _080417F0
|
||||
_080417EC:
|
||||
bl sub_800DBBC
|
||||
_080417F0:
|
||||
ldr r2, _08041824
|
||||
ldr r0, [r2]
|
||||
cmp r0, 0x1E
|
||||
bgt _08041860
|
||||
ldr r1, _08041828
|
||||
ldrb r7, [r1]
|
||||
movs r0, 0x1
|
||||
strb r0, [r1]
|
||||
movs r4, 0
|
||||
adds r5, r2, 0
|
||||
ldr r6, _0804182C
|
||||
_08041806:
|
||||
ldr r0, [r5]
|
||||
cmp r0, 0x1E
|
||||
bgt _08041838
|
||||
adds r0, 0x4
|
||||
str r0, [r5]
|
||||
ldr r1, _08041830
|
||||
ldrh r2, [r1]
|
||||
movs r3, 0
|
||||
ldrsh r0, [r1, r3]
|
||||
cmp r0, r6
|
||||
beq _0804183C
|
||||
ldr r3, _08041834
|
||||
adds r0, r2, r3
|
||||
strh r0, [r1]
|
||||
b _0804183C
|
||||
.align 2, 0
|
||||
_08041824: .4byte gUnknown_202EDC8
|
||||
_08041828: .4byte gUnknown_203B40D
|
||||
_0804182C: .4byte 0x00000808
|
||||
_08041830: .4byte gUnknown_2026E4E
|
||||
_08041834: .4byte 0xfffffeff
|
||||
_08041838:
|
||||
movs r0, 0x1F
|
||||
str r0, [r5]
|
||||
_0804183C:
|
||||
bl sub_803EA10
|
||||
movs r0, 0x4A
|
||||
bl sub_803E46C
|
||||
ldr r0, [r5]
|
||||
cmp r0, 0x1F
|
||||
beq _08041854
|
||||
adds r4, 0x1
|
||||
ldr r0, _0804186C
|
||||
cmp r4, r0
|
||||
ble _08041806
|
||||
_08041854:
|
||||
ldr r0, _08041870
|
||||
ldr r2, _08041874
|
||||
adds r1, r2, 0
|
||||
strh r1, [r0]
|
||||
ldr r0, _08041878
|
||||
strb r7, [r0]
|
||||
_08041860:
|
||||
bl sub_8042E98
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0804186C: .4byte 0x000003e7
|
||||
_08041870: .4byte gUnknown_2026E4E
|
||||
_08041874: .4byte 0x00000808
|
||||
_08041878: .4byte gUnknown_203B40D
|
||||
thumb_func_end sub_804178C
|
||||
|
||||
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 EntityGetStatusSprites
|
||||
|
||||
thumb_func_start sub_8041888
|
||||
sub_8041888:
|
||||
push {r4-r6,lr}
|
||||
lsls r0, 24
|
||||
lsrs r6, r0, 24
|
||||
movs r5, 0
|
||||
_08041890:
|
||||
ldr r0, _080418CC
|
||||
ldr r0, [r0]
|
||||
lsls r1, r5, 2
|
||||
ldr r2, _080418D0
|
||||
adds r0, r2
|
||||
adds r0, r1
|
||||
ldr r4, [r0]
|
||||
adds r0, r4, 0
|
||||
bl EntityExists
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080418C0
|
||||
ldr r1, [r4, 0x70]
|
||||
cmp r6, 0
|
||||
beq _080418BA
|
||||
movs r0, 0xA6
|
||||
lsls r0, 1
|
||||
adds r1, r0
|
||||
movs r0, 0x1
|
||||
strb r0, [r1]
|
||||
_080418BA:
|
||||
adds r0, r4, 0
|
||||
bl DungeonEntityUpdateStatusSprites
|
||||
_080418C0:
|
||||
adds r5, 0x1
|
||||
cmp r5, 0x13
|
||||
ble _08041890
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080418CC: .4byte gDungeonGlobalData
|
||||
_080418D0: .4byte 0x000135cc
|
||||
thumb_func_end sub_8041888
|
||||
|
||||
thumb_func_start DungeonEntityUpdateStatusSprites
|
||||
DungeonEntityUpdateStatusSprites:
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
bl EntityExists
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _080418E4
|
||||
b _08041A8C
|
||||
_080418E4:
|
||||
ldr r2, [r4, 0x70]
|
||||
movs r3, 0
|
||||
movs r1, 0x1
|
||||
movs r4, 0x2
|
||||
ldrsh r0, [r2, r4]
|
||||
cmp r0, 0xB9
|
||||
bne _08041902
|
||||
adds r0, r2, 0
|
||||
adds r0, 0xA9
|
||||
ldrb r0, [r0]
|
||||
movs r1, 0x7F
|
||||
eors r0, r1
|
||||
negs r1, r0
|
||||
orrs r1, r0
|
||||
lsrs r1, 31
|
||||
_08041902:
|
||||
cmp r1, 0
|
||||
beq _08041914
|
||||
ldr r1, _08041A94
|
||||
adds r0, r2, 0
|
||||
adds r0, 0xA8
|
||||
ldrb r0, [r0]
|
||||
lsls r0, 2
|
||||
adds r0, r1
|
||||
ldr r3, [r0]
|
||||
_08041914:
|
||||
ldr r1, _08041A98
|
||||
adds r0, r2, 0
|
||||
adds r0, 0xAC
|
||||
ldrb r0, [r0]
|
||||
lsls r0, 2
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
orrs r3, r0
|
||||
ldr r1, _08041A9C
|
||||
adds r0, r2, 0
|
||||
adds r0, 0xB0
|
||||
ldrb r0, [r0]
|
||||
lsls r0, 2
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
orrs r3, r0
|
||||
ldr r1, _08041AA0
|
||||
adds r0, r2, 0
|
||||
adds r0, 0xBC
|
||||
ldrb r0, [r0]
|
||||
lsls r0, 2
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
orrs r3, r0
|
||||
ldr r1, _08041AA4
|
||||
adds r0, r2, 0
|
||||
adds r0, 0xC0
|
||||
ldrb r0, [r0]
|
||||
lsls r0, 2
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
orrs r3, r0
|
||||
ldr r1, _08041AA8
|
||||
adds r0, r2, 0
|
||||
adds r0, 0xC4
|
||||
ldrb r0, [r0]
|
||||
lsls r0, 2
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
orrs r3, r0
|
||||
ldr r1, _08041AAC
|
||||
adds r0, r2, 0
|
||||
adds r0, 0xC8
|
||||
ldrb r0, [r0]
|
||||
lsls r0, 2
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
orrs r3, r0
|
||||
ldr r1, _08041AB0
|
||||
adds r0, r2, 0
|
||||
adds r0, 0xD0
|
||||
ldrb r0, [r0]
|
||||
lsls r0, 2
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
orrs r3, r0
|
||||
ldr r1, _08041AB4
|
||||
adds r0, r2, 0
|
||||
adds r0, 0xDC
|
||||
ldrb r0, [r0]
|
||||
lsls r0, 2
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
orrs r3, r0
|
||||
ldr r1, _08041AB8
|
||||
adds r0, r2, 0
|
||||
adds r0, 0xE0
|
||||
ldrb r0, [r0]
|
||||
lsls r0, 2
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
orrs r3, r0
|
||||
ldr r1, _08041ABC
|
||||
adds r0, r2, 0
|
||||
adds r0, 0xE4
|
||||
ldrb r0, [r0]
|
||||
lsls r0, 2
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
orrs r3, r0
|
||||
ldr r1, _08041AC0
|
||||
adds r0, r2, 0
|
||||
adds r0, 0xE8
|
||||
ldrb r0, [r0]
|
||||
lsls r0, 2
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
orrs r3, r0
|
||||
ldr r1, _08041AC4
|
||||
adds r0, r2, 0
|
||||
adds r0, 0xEC
|
||||
ldrb r0, [r0]
|
||||
lsls r0, 2
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
orrs r3, r0
|
||||
adds r0, r2, 0
|
||||
adds r0, 0xF4
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _080419E4
|
||||
movs r0, 0x80
|
||||
lsls r0, 17
|
||||
orrs r3, r0
|
||||
_080419E4:
|
||||
adds r0, r2, 0
|
||||
adds r0, 0xF5
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _080419F4
|
||||
movs r0, 0x80
|
||||
lsls r0, 18
|
||||
orrs r3, r0
|
||||
_080419F4:
|
||||
ldrb r0, [r2, 0x6]
|
||||
cmp r0, 0
|
||||
bne _08041A14
|
||||
movs r0, 0x10
|
||||
ldrsh r1, [r2, r0]
|
||||
cmp r1, 0
|
||||
bge _08041A04
|
||||
adds r1, 0x3
|
||||
_08041A04:
|
||||
asrs r1, 2
|
||||
movs r4, 0xE
|
||||
ldrsh r0, [r2, r4]
|
||||
cmp r1, r0
|
||||
ble _08041A14
|
||||
movs r0, 0x80
|
||||
lsls r0, 6
|
||||
orrs r3, r0
|
||||
_08041A14:
|
||||
ldr r0, _08041AC8
|
||||
ldr r0, [r0]
|
||||
ldr r1, _08041ACC
|
||||
adds r0, r1
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _08041A36
|
||||
adds r0, r2, 0
|
||||
adds r0, 0x60
|
||||
ldrb r1, [r0]
|
||||
movs r0, 0x1
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08041A36
|
||||
movs r0, 0x80
|
||||
lsls r0, 6
|
||||
orrs r3, r0
|
||||
_08041A36:
|
||||
ldr r0, [r2, 0x2C]
|
||||
cmp r0, 0xFF
|
||||
ble _08041A7E
|
||||
ldr r0, [r2, 0x30]
|
||||
cmp r0, 0xFF
|
||||
ble _08041A7E
|
||||
ldr r0, [r2, 0x34]
|
||||
cmp r0, 0xFF
|
||||
ble _08041A7E
|
||||
ldr r0, [r2, 0x38]
|
||||
cmp r0, 0xFF
|
||||
ble _08041A7E
|
||||
movs r4, 0x1C
|
||||
ldrsh r0, [r2, r4]
|
||||
cmp r0, 0x9
|
||||
ble _08041A7E
|
||||
movs r1, 0x1E
|
||||
ldrsh r0, [r2, r1]
|
||||
cmp r0, 0x9
|
||||
ble _08041A7E
|
||||
movs r4, 0x20
|
||||
ldrsh r0, [r2, r4]
|
||||
cmp r0, 0x9
|
||||
ble _08041A7E
|
||||
movs r1, 0x22
|
||||
ldrsh r0, [r2, r1]
|
||||
cmp r0, 0x9
|
||||
ble _08041A7E
|
||||
movs r4, 0x24
|
||||
ldrsh r0, [r2, r4]
|
||||
cmp r0, 0x9
|
||||
ble _08041A7E
|
||||
movs r1, 0x26
|
||||
ldrsh r0, [r2, r1]
|
||||
cmp r0, 0x9
|
||||
bgt _08041A84
|
||||
_08041A7E:
|
||||
movs r0, 0x80
|
||||
lsls r0, 20
|
||||
orrs r3, r0
|
||||
_08041A84:
|
||||
movs r4, 0x80
|
||||
lsls r4, 2
|
||||
adds r0, r2, r4
|
||||
str r3, [r0]
|
||||
_08041A8C:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_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 DungeonEntityUpdateStatusSprites
|
||||
|
||||
.align 2,0
|
||||
|
|
|
|||
|
|
@ -199,7 +199,9 @@ struct DungeonEntityData
|
|||
/* 0x148 */ bool8 attacking;
|
||||
/* 0x149 */ u8 unk149;
|
||||
/* 0x14A */ u8 unk14A;
|
||||
u8 fill14B[0x14E - 0x14B];
|
||||
/* 0x14B */ u8 unk14B;
|
||||
/* 0x14C */ u8 unk14C;
|
||||
/* 0x14D */ u8 unk14D;
|
||||
/* 0x14E */ u16 visualFlags;
|
||||
/* 0x150 */ u16 previousVisualFlags;
|
||||
/* 0x152 */ u8 unk152;
|
||||
|
|
|
|||
|
|
@ -1,9 +1,12 @@
|
|||
#include "global.h"
|
||||
#include "constants/direction.h"
|
||||
#include "constants/status.h"
|
||||
#include "constants/type.h"
|
||||
#include "dungeon_entity.h"
|
||||
#include "dungeon_global_data.h"
|
||||
#include "dungeon_pokemon_attributes.h"
|
||||
#include "dungeon_util.h"
|
||||
#include "item.h"
|
||||
|
||||
struct unkStruct_80420E8
|
||||
{
|
||||
|
|
@ -12,6 +15,20 @@ struct unkStruct_80420E8
|
|||
u32 unk8;
|
||||
};
|
||||
|
||||
extern u32 gStatusSpriteMasks_SleepStatus[];
|
||||
extern u32 gStatusSpriteMasks_NonVolatileStatus[];
|
||||
extern u32 gStatusSpriteMasks_ImmobilizeStatus[];
|
||||
extern u32 gStatusSpriteMasks_VolatileStatus[];
|
||||
extern u32 gStatusSpriteMasks_ChargingStatus[];
|
||||
extern u32 gStatusSpriteMasks_ProtectionStatus[];
|
||||
extern u32 gStatusSpriteMasks_WaitingStatus[];
|
||||
extern u32 gStatusSpriteMasks_LinkedStatus[];
|
||||
extern u32 gStatusSpriteMasks_MoveStatus[];
|
||||
extern u32 gStatusSpriteMasks_ItemStatus[];
|
||||
extern u32 gStatusSpriteMasks_TransformStatus[];
|
||||
extern u32 gStatusSpriteMasks_EyesightStatus[];
|
||||
extern u32 gStatusSpriteMasks_MuzzledStatus[];
|
||||
|
||||
|
||||
extern void sub_803ED30(u8, struct DungeonEntity *pokemon, u8, u8);
|
||||
extern void sub_804151C(struct DungeonEntity *pokemon, u32 r1, u8 r2);
|
||||
|
|
@ -25,8 +42,170 @@ extern void sub_8041550(struct DungeonEntity *pokemon, u32, u32, u32, u32, u32);
|
|||
|
||||
|
||||
void sub_80421C0(struct DungeonEntity *pokemon, u16 r1);
|
||||
void DungeonEntityUpdateStatusSprites(struct DungeonEntity *entity);
|
||||
|
||||
|
||||
extern s32 gUnknown_202EDC8;
|
||||
extern u8 gUnknown_203B40D;
|
||||
extern s16 gUnknown_2026E4E;
|
||||
|
||||
extern u8 sub_800E9FC(u8);
|
||||
extern void sub_800DBBC(void);
|
||||
extern void sub_803EA10(void);
|
||||
extern void sub_8042E98(void);
|
||||
extern void sub_803E46C(u32);
|
||||
extern void sub_800EE5C(u32);
|
||||
extern u32 sub_800E890(u32 *);
|
||||
extern void sub_800EF64(void);
|
||||
|
||||
u32 sub_8041764(u32 *param_1, u8 param_2)
|
||||
{
|
||||
sub_800EE5C(*param_1);
|
||||
sub_800EF64();
|
||||
if(param_2)
|
||||
sub_803E46C(0x42);
|
||||
return sub_800E890(param_1);
|
||||
}
|
||||
|
||||
void sub_804178C(u8 param_1)
|
||||
{
|
||||
u32 temp;
|
||||
s32 counter;
|
||||
|
||||
counter = 0;
|
||||
gDungeonGlobalData->unk18204 = 0;
|
||||
if (sub_800E9FC(param_1) != 0) {
|
||||
while ((counter < 1000 && (sub_800E9FC(param_1) != 0))) {
|
||||
sub_803E46C(0x4a);
|
||||
counter++;
|
||||
}
|
||||
sub_803E46C(0x4a);
|
||||
sub_803E46C(0x4a);
|
||||
}
|
||||
if ((counter == 1000) || (param_1 != 0)) {
|
||||
sub_800DBBC();
|
||||
}
|
||||
if (gUnknown_202EDC8 < 0x1f) {
|
||||
temp = gUnknown_203B40D;
|
||||
gUnknown_203B40D = 1;
|
||||
for(counter = 0; counter < 1000; counter++)
|
||||
{
|
||||
if (gUnknown_202EDC8 < 0x1f) {
|
||||
gUnknown_202EDC8 += 4;
|
||||
if (gUnknown_2026E4E != 0x808) {
|
||||
gUnknown_2026E4E -= 0x101;
|
||||
}
|
||||
}
|
||||
else {
|
||||
gUnknown_202EDC8 = 0x1f;
|
||||
}
|
||||
sub_803EA10();
|
||||
sub_803E46C(0x4a);
|
||||
if(gUnknown_202EDC8 == 0x1f) break;
|
||||
};
|
||||
gUnknown_2026E4E = 0x808;
|
||||
gUnknown_203B40D = temp;
|
||||
}
|
||||
sub_8042E98();
|
||||
}
|
||||
|
||||
u32 EntityGetStatusSprites(struct DungeonEntity *entity)
|
||||
{
|
||||
return entity->entityData->statusSprites;
|
||||
}
|
||||
|
||||
void sub_8041888(u8 param_1)
|
||||
{
|
||||
s32 index;
|
||||
struct DungeonEntity *entity;
|
||||
struct DungeonEntityData *entityData;
|
||||
for(index = 0; index < DUNGEON_MAX_POKEMON; index++)
|
||||
{
|
||||
entity = gDungeonGlobalData->allPokemon[index];
|
||||
if(EntityExists(entity))
|
||||
{
|
||||
entityData = entity->entityData;
|
||||
if(param_1)
|
||||
{
|
||||
entityData->unk14C = 1;
|
||||
}
|
||||
DungeonEntityUpdateStatusSprites(entity);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void DungeonEntityUpdateStatusSprites(struct DungeonEntity *entity)
|
||||
{
|
||||
bool32 flag;
|
||||
s32 HP;
|
||||
struct DungeonEntityData *entityData;
|
||||
u32 spriteStatus;
|
||||
u8 temp;
|
||||
|
||||
if (EntityExists(entity)) {
|
||||
entityData = entity->entityData;
|
||||
spriteStatus = 0;
|
||||
flag = TRUE;
|
||||
|
||||
if (entityData->entityID == 0xb9) {
|
||||
// NOTE: clean this up sometime
|
||||
temp = entityData->sleepStatusTurnsLeft;
|
||||
flag = 0x7f;
|
||||
temp ^= flag;
|
||||
flag = (temp) != 0;
|
||||
}
|
||||
if (flag) {
|
||||
spriteStatus = gStatusSpriteMasks_SleepStatus[entityData->sleepStatus];
|
||||
}
|
||||
spriteStatus = spriteStatus |
|
||||
gStatusSpriteMasks_NonVolatileStatus[entityData->nonVolatileStatus] |
|
||||
gStatusSpriteMasks_ImmobilizeStatus[entityData->immobilizeStatus] |
|
||||
gStatusSpriteMasks_VolatileStatus[entityData->volatileStatus] |
|
||||
gStatusSpriteMasks_ChargingStatus[entityData->chargingStatus] |
|
||||
gStatusSpriteMasks_ProtectionStatus[entityData->protectionStatus] |
|
||||
gStatusSpriteMasks_WaitingStatus[entityData->waitingStatus] |
|
||||
gStatusSpriteMasks_LinkedStatus[entityData->linkedStatus] |
|
||||
gStatusSpriteMasks_MoveStatus[entityData->moveStatus] |
|
||||
gStatusSpriteMasks_ItemStatus[entityData->itemStatus] |
|
||||
gStatusSpriteMasks_TransformStatus[entityData->transformStatus] |
|
||||
gStatusSpriteMasks_EyesightStatus[entityData->eyesightStatus] |
|
||||
gStatusSpriteMasks_MuzzledStatus[entityData->muzzledStatus];
|
||||
|
||||
if (entityData->grudgeStatus) {
|
||||
spriteStatus = spriteStatus | STATUS_SPRITE_GRUDGE;
|
||||
}
|
||||
if (entityData->exposedStatus) {
|
||||
spriteStatus = spriteStatus | STATUS_SPRITE_EXPOSED;
|
||||
}
|
||||
if (!entityData->isEnemy) {
|
||||
HP = entityData->maxHP;
|
||||
if (HP < 0) {
|
||||
HP += 3;
|
||||
}
|
||||
HP >>= 2;
|
||||
if (HP > entityData->HP) {
|
||||
spriteStatus = spriteStatus | STATUS_SPRITE_LOWHP;
|
||||
}
|
||||
}
|
||||
if ((gDungeonGlobalData->itemHoldersIdentified) && (entityData->heldItem.itemFlags & ITEM_FLAG_EXISTS)) {
|
||||
spriteStatus = spriteStatus | STATUS_SPRITE_LOWHP;
|
||||
}
|
||||
if ( (entityData->attackMultipliers[0] < DEFAULT_STAT_MULTIPLIER) ||
|
||||
(entityData->attackMultipliers[1] < DEFAULT_STAT_MULTIPLIER) ||
|
||||
(entityData->defenseMultipliers[0] < DEFAULT_STAT_MULTIPLIER) ||
|
||||
(entityData->defenseMultipliers[1] < DEFAULT_STAT_MULTIPLIER) ||
|
||||
(entityData->attackStages[0] < DEFAULT_STAT_STAGE) ||
|
||||
(entityData->attackStages[1] < DEFAULT_STAT_STAGE) ||
|
||||
(entityData->defenseStages[0] < DEFAULT_STAT_STAGE) ||
|
||||
(entityData->defenseStages[1] < DEFAULT_STAT_STAGE) ||
|
||||
(entityData->accuracyStages[0]) < DEFAULT_STAT_STAGE ||
|
||||
(entityData->accuracyStages[1] < DEFAULT_STAT_STAGE)) {
|
||||
spriteStatus = spriteStatus | STATUS_SPRITE_STAT_DOWN;
|
||||
}
|
||||
entityData->statusSprites = spriteStatus;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8041AD0(struct DungeonEntity *pokemon)
|
||||
{
|
||||
sub_804151C(pokemon, 0xA2 << 1, 1);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user