match sub_806E100

This commit is contained in:
Seth Barberee 2024-06-12 10:59:02 -07:00
parent 149018635e
commit ab0c556a9b
3 changed files with 226 additions and 655 deletions

View File

@ -2120,658 +2120,4 @@ _0806E0F0:
bx r1
thumb_func_end sub_806D528
thumb_func_start sub_806E100
sub_806E100:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x28
adds r6, r0, 0
mov r8, r1
str r2, [sp, 0x18]
lsls r3, 24
lsrs r7, r3, 24
movs r0, 0
mov r9, r0
movs r1, 0
str r1, [sp, 0x20]
mov r2, r8
ldr r2, [r2, 0x70]
str r2, [sp, 0x24]
ldr r3, [sp, 0x18]
ldr r3, [r3, 0x70]
mov r10, r3
adds r0, r6, 0
movs r1, 0x1
bl sub_800A020
mov r0, r9
ldr r4, [sp, 0x48]
strb r0, [r4, 0xD]
strb r0, [r4, 0xE]
movs r1, 0
str r1, [sp, 0x1C]
ldr r0, [sp, 0x18]
bl EntityExists
lsls r0, 24
cmp r0, 0
bne _0806E14E
movs r0, 0x1
b _0806E61A
_0806E14E:
cmp r7, 0x1
beq _0806E156
cmp r7, 0x7
bne _0806E15A
_0806E156:
movs r2, 0x1
str r2, [sp, 0x20]
_0806E15A:
ldr r0, [sp, 0x18]
movs r1, 0x35
bl HasAbility
lsls r0, 24
cmp r0, 0
beq _0806E170
cmp r7, 0
beq _0806E170
movs r3, 0x1
str r3, [sp, 0x1C]
_0806E170:
movs r0, 0x2
ldr r4, [sp, 0x48]
str r0, [r4, 0x8]
movs r5, 0
add r0, sp, 0x10
mov r9, r0
b _0806E1F2
_0806E17E:
mov r1, r10
adds r1, 0x5C
ldr r2, [sp, 0x20]
cmp r2, 0
beq _0806E1B4
adds r0, r1, r5
ldrb r0, [r0]
cmp r0, 0xE
bne _0806E1B4
mov r0, r10
adds r0, 0xF5
ldrb r0, [r0]
cmp r0, 0
bne _0806E1B4
movs r4, 0
ldr r0, _0806E1AC
ldr r0, [r0]
ldr r3, _0806E1B0
adds r1, r0, r3
movs r0, 0x1
strb r0, [r1]
b _0806E1CA
.align 2, 0
_0806E1AC: .4byte gDungeon
_0806E1B0: .4byte 0x00000179
_0806E1B4:
ldr r2, _0806E4E4
adds r0, r1, r5
ldrb r1, [r0]
lsls r1, 1
lsls r0, r7, 3
adds r0, r7
lsls r0, 2
adds r1, r0
adds r1, r2
movs r0, 0
ldrsh r4, [r1, r0]
_0806E1CA:
cmp r4, 0x2
beq _0806E1DC
lsls r0, r4, 2
add r0, sp
ldr r2, [r0]
adds r0, r6, 0
adds r1, r6, 0
bl sub_800A34C
_0806E1DC:
lsls r0, r5, 2
add r0, r9
str r4, [r0]
ldr r0, _0806E4E8
ldr r0, [r0]
movs r1, 0x9E
lsls r1, 1
adds r0, r1
adds r0, r5
strb r4, [r0]
adds r5, 0x1
_0806E1F2:
cmp r5, 0x1
bgt _0806E20E
mov r1, sp
ldr r0, _0806E4EC
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldr r0, [r0]
str r0, [r1]
adds r0, r6, 0
bl sub_800A2A0
lsls r0, 24
cmp r0, 0
beq _0806E17E
_0806E20E:
ldr r2, _0806E4F0
mov r1, r9
ldr r0, [r1, 0x4]
lsls r0, 2
ldr r1, [sp, 0x10]
lsls r1, 4
adds r0, r1
adds r0, r2
ldr r0, [r0]
ldr r2, [sp, 0x48]
str r0, [r2, 0x8]
movs r3, 0x1
mov r9, r3
cmp r0, 0x3
beq _0806E240
movs r4, 0
mov r9, r4
ldr r0, [sp, 0x1C]
cmp r0, 0
beq _0806E240
ldr r0, _0806E4F4
ldr r1, [r0, 0x4]
ldr r0, [r0]
str r0, [r6]
str r1, [r6, 0x4]
_0806E240:
cmp r7, 0x2
beq _0806E248
cmp r7, 0x6
bne _0806E26C
_0806E248:
ldr r0, [sp, 0x18]
movs r1, 0x2
bl HasAbility
lsls r0, 24
cmp r0, 0
beq _0806E26C
ldr r0, _0806E4E8
ldr r0, [r0]
ldr r2, _0806E4F8
adds r1, r0, r2
movs r0, 0x1
strb r0, [r1]
ldr r2, _0806E4FC
adds r0, r6, 0
adds r1, r6, 0
bl sub_800A34C
_0806E26C:
cmp r7, 0x2
bne _0806E2A0
ldr r0, [sp, 0x18]
bl GetFlashFireStatus
lsls r0, 24
cmp r0, 0
beq _0806E2A0
ldr r0, _0806E4E8
ldr r0, [r0]
movs r3, 0xB7
lsls r3, 1
adds r0, r3
movs r4, 0
movs r5, 0x1
strb r5, [r0]
adds r0, r6, 0
movs r1, 0
bl sub_800A020
ldr r0, [sp, 0x48]
str r4, [r0, 0x8]
strb r4, [r0, 0xD]
strb r5, [r0, 0xE]
movs r1, 0
mov r9, r1
_0806E2A0:
cmp r7, 0x9
bne _0806E2D2
ldr r0, [sp, 0x18]
movs r1, 0x37
bl HasAbility
lsls r0, 24
cmp r0, 0
beq _0806E2D2
ldr r0, _0806E4E8
ldr r0, [r0]
ldr r2, _0806E500
adds r0, r2
movs r4, 0
movs r5, 0x1
strb r5, [r0]
adds r0, r6, 0
movs r1, 0
bl sub_800A020
ldr r3, [sp, 0x48]
str r4, [r3, 0x8]
strb r4, [r3, 0xD]
strb r5, [r3, 0xE]
mov r9, r4
_0806E2D2:
cmp r7, 0x3
bne _0806E340
mov r0, r8
movs r1, 0x10
bl HasAbility
lsls r0, 24
cmp r0, 0
beq _0806E340
movs r4, 0
ldr r0, [sp, 0x24]
movs r2, 0x10
ldrsh r1, [r0, r2]
cmp r1, 0
bge _0806E2F2
adds r1, 0x3
_0806E2F2:
asrs r1, 2
ldr r3, [sp, 0x24]
movs r2, 0xE
ldrsh r0, [r3, r2]
cmp r1, r0
blt _0806E300
movs r4, 0x1
_0806E300:
ldr r0, [sp, 0x24]
movs r1, 0x80
adds r2, r4, 0
bl SetVisualFlags
lsls r0, 24
lsrs r5, r0, 24
cmp r4, 0
beq _0806E32A
ldr r0, _0806E4E8
ldr r0, [r0]
movs r3, 0xB8
lsls r3, 1
adds r0, r3
movs r1, 0x1
strb r1, [r0]
ldr r2, _0806E504
adds r0, r6, 0
adds r1, r6, 0
bl sub_800A34C
_0806E32A:
cmp r5, 0
beq _0806E340
mov r0, r8
bl sub_80428EC
ldr r0, _0806E508
ldr r2, [r0]
mov r0, r8
ldr r1, [sp, 0x18]
bl sub_80522F4
_0806E340:
cmp r7, 0x4
bne _0806E3AC
mov r0, r8
movs r1, 0x1A
bl HasAbility
lsls r0, 24
cmp r0, 0
beq _0806E3AC
movs r4, 0
ldr r0, [sp, 0x24]
movs r2, 0x10
ldrsh r1, [r0, r2]
cmp r1, 0
bge _0806E360
adds r1, 0x3
_0806E360:
asrs r1, 2
ldr r3, [sp, 0x24]
movs r2, 0xE
ldrsh r0, [r3, r2]
cmp r1, r0
blt _0806E36E
movs r4, 0x1
_0806E36E:
ldr r0, [sp, 0x24]
movs r1, 0x2
adds r2, r4, 0
bl SetVisualFlags
lsls r0, 24
lsrs r5, r0, 24
cmp r4, 0
beq _0806E396
ldr r0, _0806E4E8
ldr r0, [r0]
ldr r3, _0806E50C
adds r1, r0, r3
movs r0, 0x1
strb r0, [r1]
ldr r2, _0806E504
adds r0, r6, 0
adds r1, r6, 0
bl sub_800A34C
_0806E396:
cmp r5, 0
beq _0806E3AC
mov r0, r8
bl sub_80428D8
ldr r0, _0806E510
ldr r2, [r0]
mov r0, r8
ldr r1, [sp, 0x18]
bl sub_80522F4
_0806E3AC:
cmp r7, 0xC
bne _0806E41A
mov r0, r8
movs r1, 0x43
bl HasAbility
lsls r0, 24
cmp r0, 0
beq _0806E41A
movs r4, 0
ldr r0, [sp, 0x24]
movs r2, 0x10
ldrsh r1, [r0, r2]
cmp r1, 0
bge _0806E3CC
adds r1, 0x3
_0806E3CC:
asrs r1, 2
ldr r3, [sp, 0x24]
movs r2, 0xE
ldrsh r0, [r3, r2]
cmp r1, r0
blt _0806E3DA
movs r4, 0x1
_0806E3DA:
ldr r0, [sp, 0x24]
movs r1, 0x10
adds r2, r4, 0
bl SetVisualFlags
lsls r0, 24
lsrs r5, r0, 24
cmp r4, 0
beq _0806E404
ldr r0, _0806E4E8
ldr r0, [r0]
movs r3, 0xB9
lsls r3, 1
adds r1, r0, r3
movs r0, 0x1
strb r0, [r1]
ldr r2, _0806E504
adds r0, r6, 0
adds r1, r6, 0
bl sub_800A34C
_0806E404:
cmp r5, 0
beq _0806E41A
mov r0, r8
bl sub_8042978
ldr r0, _0806E514
ldr r2, [r0]
mov r0, r8
ldr r1, [sp, 0x18]
bl sub_80522F4
_0806E41A:
cmp r7, 0x2
bne _0806E486
mov r0, r8
movs r1, 0x46
bl HasAbility
lsls r0, 24
cmp r0, 0
beq _0806E486
movs r4, 0
ldr r0, [sp, 0x24]
movs r2, 0x10
ldrsh r1, [r0, r2]
cmp r1, 0
bge _0806E43A
adds r1, 0x3
_0806E43A:
asrs r1, 2
ldr r3, [sp, 0x24]
movs r2, 0xE
ldrsh r0, [r3, r2]
cmp r1, r0
blt _0806E448
movs r4, 0x1
_0806E448:
ldr r0, [sp, 0x24]
movs r1, 0x20
adds r2, r4, 0
bl SetVisualFlags
lsls r0, 24
lsrs r5, r0, 24
cmp r4, 0
beq _0806E470
ldr r0, _0806E4E8
ldr r0, [r0]
ldr r3, _0806E518
adds r1, r0, r3
movs r0, 0x1
strb r0, [r1]
ldr r2, _0806E504
adds r0, r6, 0
adds r1, r6, 0
bl sub_800A34C
_0806E470:
cmp r5, 0
beq _0806E486
mov r0, r8
bl sub_804298C
ldr r0, _0806E51C
ldr r2, [r0]
mov r0, r8
ldr r1, [sp, 0x18]
bl sub_80522F4
_0806E486:
adds r0, r6, 0
bl sub_800A2A0
lsls r0, 24
cmp r0, 0
bne _0806E4B8
mov r0, r8
adds r1, r7, 0
bl MonsterIsType
lsls r0, 24
cmp r0, 0
beq _0806E4B8
ldr r0, _0806E4E8
ldr r0, [r0]
movs r4, 0xBA
lsls r4, 1
adds r0, r4
movs r1, 0x1
strb r1, [r0]
ldr r2, _0806E520
adds r0, r6, 0
adds r1, r6, 0
bl sub_800A34C
_0806E4B8:
mov r0, r8
bl GetApparentWeather
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x1
bne _0806E53E
cmp r7, 0x2
bne _0806E524
ldr r0, _0806E4E8
ldr r0, [r0]
movs r1, 0xB6
lsls r1, 1
adds r0, r1
strb r4, [r0]
ldr r2, _0806E520
adds r0, r6, 0
adds r1, r6, 0
bl sub_800A34C
b _0806E53E
.align 2, 0
_0806E4E4: .4byte gTypeEffectivenessChart
_0806E4E8: .4byte gDungeon
_0806E4EC: .4byte gUnknown_8106F54
_0806E4F0: .4byte gUnknown_80F54B4
_0806E4F4: .4byte gUnknown_8106EFC
_0806E4F8: .4byte 0x0000016d
_0806E4FC: .4byte gUnknown_8106F1C
_0806E500: .4byte 0x0000016f
_0806E504: .4byte gUnknown_8106F0C
_0806E508: .4byte gUnknown_80FEDA8
_0806E50C: .4byte 0x00000171
_0806E510: .4byte gUnknown_80FED88
_0806E514: .4byte gUnknown_80FEDC8
_0806E518: .4byte 0x00000173
_0806E51C: .4byte gUnknown_80FEDE8
_0806E520: .4byte gUnknown_8106F14
_0806E524:
cmp r7, 0x3
bne _0806E53E
ldr r0, _0806E560
ldr r0, [r0]
movs r2, 0xB6
lsls r2, 1
adds r0, r2
strb r4, [r0]
ldr r2, _0806E564
adds r0, r6, 0
adds r1, r6, 0
bl sub_800A34C
_0806E53E:
cmp r4, 0x4
bne _0806E586
cmp r7, 0x2
bne _0806E56C
ldr r0, _0806E560
ldr r0, [r0]
ldr r3, _0806E568
adds r1, r0, r3
movs r0, 0x1
strb r0, [r1]
ldr r2, _0806E564
adds r0, r6, 0
adds r1, r6, 0
bl sub_800A34C
b _0806E586
.align 2, 0
_0806E560: .4byte gDungeon
_0806E564: .4byte gUnknown_8106F1C
_0806E568: .4byte 0x0000016b
_0806E56C:
cmp r7, 0x3
bne _0806E586
ldr r0, _0806E62C
ldr r0, [r0]
ldr r2, _0806E630
adds r1, r0, r2
movs r0, 0x1
strb r0, [r1]
ldr r2, _0806E634
adds r0, r6, 0
adds r1, r6, 0
bl sub_800A34C
_0806E586:
cmp r4, 0x3
bne _0806E5A6
cmp r7, 0x1
beq _0806E5A6
ldr r2, _0806E638
adds r0, r6, 0
adds r1, r6, 0
bl sub_800A34C
ldr r0, _0806E62C
ldr r0, [r0]
movs r3, 0xB5
lsls r3, 1
adds r1, r0, r3
movs r0, 0x1
strb r0, [r1]
_0806E5A6:
ldr r0, _0806E62C
ldr r1, [r0]
ldr r2, _0806E63C
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0
bne _0806E5B8
cmp r4, 0x6
bne _0806E5CE
_0806E5B8:
cmp r7, 0x5
bne _0806E5CE
ldr r3, _0806E640
adds r1, r3
movs r0, 0x1
strb r0, [r1]
ldr r2, _0806E644
adds r0, r6, 0
adds r1, r6, 0
bl sub_800A34C
_0806E5CE:
ldr r0, _0806E62C
ldr r1, [r0]
ldr r4, _0806E648
adds r0, r1, r4
ldrb r0, [r0]
cmp r0, 0
beq _0806E5F4
cmp r7, 0x2
bne _0806E5F4
movs r0, 0xBB
lsls r0, 1
adds r1, r0
movs r0, 0x1
strb r0, [r1]
ldr r2, _0806E644
adds r0, r6, 0
adds r1, r6, 0
bl sub_800A34C
_0806E5F4:
cmp r7, 0x5
bne _0806E618
ldr r0, [sp, 0x24]
adds r0, 0xC0
ldrb r0, [r0]
cmp r0, 0xB
bne _0806E618
ldr r0, _0806E62C
ldr r0, [r0]
ldr r2, _0806E64C
adds r1, r0, r2
movs r0, 0x1
strb r0, [r1]
ldr r2, _0806E650
adds r0, r6, 0
adds r1, r6, 0
bl sub_800A34C
_0806E618:
mov r0, r9
_0806E61A:
add sp, 0x28
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0806E62C: .4byte gDungeon
_0806E630: .4byte 0x0000016b
_0806E634: .4byte gUnknown_8106F14
_0806E638: .4byte gUnknown_8106F64
_0806E63C: .4byte 0x0000e277
_0806E640: .4byte 0x00000175
_0806E644: .4byte gUnknown_8106F1C
_0806E648: .4byte 0x0000e278
_0806E64C: .4byte 0x00000177
_0806E650: .4byte gUnknown_8106F0C
thumb_func_end sub_806E100
.align 2, 0

View File

@ -87,7 +87,12 @@ typedef struct Dungeon
u8 fill14[0xB8 - 0x14];
Entity *unkB8;
Entity *unkBC;
u8 fillC0[0x16D - 0xC0];
u8 fillC0[0x13C - 0xC0];
u8 unk13C[2];
u8 fill13E[0x16A - 0x13E];
u8 unk16A;
u8 unk16B;
u8 unk16C;
u8 unk16D;
u8 fill16E[0x179 - 0x16E];
/* 0x179 */ bool8 pokemonExposed; // True if a Pokémon on the floor has the Exposed status.

View File

@ -13,6 +13,226 @@
u32 gTypeEffectivenessMultipliers[] = {0, 1, 2, 4};
struct unkStruct_806D010
{
s32 unk0;
u32 unk4;
u32 unk8;
u8 unkC;
u8 unkD;
u8 unkE;
u8 unkF;
};
struct dumb_struct
{
u32 *unk0[4];
};
extern struct dumb_struct gUnknown_8106F54;
extern u32 gUnknown_8106F0C;
extern u32 gUnknown_8106F1C;
extern u32 gUnknown_8106F14;
extern u32 gUnknown_8106F64;
extern u32 gUnknown_8106EFC[2];
extern u8 *gUnknown_80FEDE8[];
extern u8 *gUnknown_80FEDC8[];
extern u8 *gUnknown_80FEDA8[];
extern u8 *gUnknown_80FED88[];
extern s32 gUnknown_80F54B4[2][4];
void sub_80522F4(Entity *, Entity *, u8 *);
void sub_80428D8(Entity *);
void sub_8042978(Entity *);
void sub_804298C(Entity *);
u8 sub_800A2A0(s32 *);
void sub_800A34C(s32 *, s32 *, s32 *);
void sub_800A020(s32 *, u32);
void sub_80428EC(Entity *);
bool8 sub_806E100(s32 *param_1, Entity *pokemon, Entity *target, u8 type, struct unkStruct_806D010 *param_5)
{
bool8 bVar1;
bool8 bVar2;
bool8 bVar3;
bool8 bVar5;
char cVar3;
char cVar4;
char cVar5;
char cVar6;
bool8 bVar4;
EntityInfo *targetInfo;
s32 effectiveness;
s32 index;
struct dumb_struct local_48;
s32 local_38 [2];
s32 local_2c;
s32 local_28;
EntityInfo *pokemonInfo;
u8 weather;
s32 temp;
bVar4 = FALSE;
local_28 = FALSE;
pokemonInfo = pokemon->info;
targetInfo = target->info;
sub_800A020(param_1,1);
param_5->unkD = 0;
param_5->unkE = 0;
local_2c = FALSE;
if (!EntityExists(target)) {
return TRUE;
}
else {
if ((type == TYPE_NORMAL) || (type == TYPE_FIGHTING)) {
local_28 = TRUE;
}
if ((HasAbility(target, ABILITY_WONDER_GUARD)) && (type != TYPE_NONE)) {
local_2c = TRUE;
}
param_5->unk8 = 2;
for (index = 0; index < 2; index++) {
local_48 = gUnknown_8106F54;
if (sub_800A2A0(param_1) != '\0') break;
if (((local_28) && (targetInfo->types[index] == TYPE_GHOST)) && (targetInfo->exposed == FALSE)) {
effectiveness = EFFECTIVENESS_IMMUNE;
gDungeon->pokemonExposed = TRUE;
}
else {
effectiveness = gTypeEffectivenessChart[type][targetInfo->types[index]];
}
if (effectiveness != EFFECTIVENESS_NEUTRAL) {
sub_800A34C(param_1,param_1,local_48.unk0[effectiveness]);
}
local_38[index] = effectiveness;
gDungeon->unk13C[index] = effectiveness;
}
param_5->unk8 = gUnknown_80F54B4[local_38[0]][local_38[1]];
bVar4 = TRUE;
if ((param_5->unk8 != 3) && (bVar4 = FALSE, local_2c != 0)) {
temp = gUnknown_8106EFC[1];
param_1[0] = gUnknown_8106EFC[0];
param_1[1] = temp;
}
if (((type == TYPE_FIRE) || (type == TYPE_ICE)) && (HasAbility(target,ABILITY_THICK_FAT))) {
gDungeon->unk16D = TRUE;
sub_800A34C(param_1,param_1,&gUnknown_8106F1C);
}
if ((type == TYPE_FIRE) && (GetFlashFireStatus(target) != '\0')) {
gDungeon->fill16E[0] = TRUE;
sub_800A020(param_1,0);
param_5->unk8 = 0;
param_5->unkD = 0;
param_5->unkE = 1;
bVar4 = '\0';
}
if ((type == TYPE_GROUND) && (HasAbility(target, ABILITY_LEVITATE))) {
gDungeon->fill16E[1] = TRUE;
sub_800A020(param_1,0);
param_5->unk8 = 0;
param_5->unkD = 0;
param_5->unkE = 1;
bVar4 = '\0';
}
if ((type == TYPE_WATER) && (HasAbility(pokemon, ABILITY_TORRENT))) {
bVar1 = pokemonInfo->maxHPStat / 4 >= pokemonInfo->HP;
cVar3 = SetVisualFlags(pokemonInfo,0x80,bVar1);
if (bVar1) {
gDungeon->fill16E[2] = TRUE;
sub_800A34C(param_1,param_1,&gUnknown_8106F0C);
}
if (cVar3 != '\0') {
sub_80428EC(pokemon);
sub_80522F4(pokemon,target,*gUnknown_80FEDA8);
}
}
if ((type == TYPE_GRASS) && (HasAbility(pokemon, ABILITY_OVERGROW))) {
bVar2 = pokemonInfo->maxHPStat / 4 >= pokemonInfo->HP;
cVar4 = SetVisualFlags(pokemonInfo,2,bVar2);
if (bVar2) {
gDungeon->fill16E[3] = TRUE;
sub_800A34C(param_1,param_1,&gUnknown_8106F0C);
}
if (cVar4 != '\0') {
sub_80428D8(pokemon);
sub_80522F4(pokemon,target,*gUnknown_80FED88);
}
}
if ((type == TYPE_BUG) && (HasAbility(pokemon, ABILITY_SWARM))) {
bVar3 = pokemonInfo->maxHPStat / 4 >= pokemonInfo->HP;
cVar5 = SetVisualFlags(pokemonInfo,0x10,bVar3);
if (bVar3) {
gDungeon->fill16E[4] = TRUE;
sub_800A34C(param_1,param_1,&gUnknown_8106F0C);
}
if (cVar5 != '\0') {
sub_8042978(pokemon);
sub_80522F4(pokemon,target,*gUnknown_80FEDC8);
}
}
if ((type == TYPE_FIRE) && (HasAbility(pokemon, ABILITY_BLAZE))) {
bVar5 = pokemonInfo->maxHPStat / 4 >= pokemonInfo->HP;
cVar6 = SetVisualFlags(pokemonInfo,0x20,bVar5);
if (bVar5) {
gDungeon->fill16E[5] = TRUE;
sub_800A34C(param_1,param_1,&gUnknown_8106F0C);
}
if (cVar6 != '\0') {
sub_804298C(pokemon);
sub_80522F4(pokemon,target,*gUnknown_80FEDE8);
}
}
if ((sub_800A2A0(param_1) == '\0') && (MonsterIsType(pokemon, type))) {
gDungeon->fill16E[6] = TRUE;
sub_800A34C(param_1,param_1,&gUnknown_8106F14);
}
weather = GetApparentWeather(pokemon);
if (weather == WEATHER_SUNNY) {
if (type == TYPE_FIRE) {
gDungeon->unk16C = TRUE;
sub_800A34C(param_1,param_1,&gUnknown_8106F14);
}
else if (type == TYPE_WATER) {
gDungeon->unk16C = TRUE;
sub_800A34C(param_1,param_1,&gUnknown_8106F1C);
}
}
if (weather == WEATHER_RAIN) {
if (type == TYPE_FIRE) {
gDungeon->unk16B = TRUE;
sub_800A34C(param_1,param_1,&gUnknown_8106F1C);
}
else if (type == TYPE_WATER) {
gDungeon->unk16B = TRUE;
sub_800A34C(param_1,param_1,&gUnknown_8106F14);
}
}
if ((weather == WEATHER_CLOUDY) && (type != TYPE_NORMAL)) {
sub_800A34C(param_1,param_1,&gUnknown_8106F64);
gDungeon->unk16A = TRUE;
}
if (((gDungeon->mudSportTurns != 0) || (weather == WEATHER_FOG)) && (type == TYPE_ELECTRIC)) {
gDungeon->fill16E[7] = TRUE;
sub_800A34C(param_1,param_1,&gUnknown_8106F1C);
}
if ((gDungeon->waterSportTurns != 0) && (type == TYPE_FIRE)) {
gDungeon->fill16E[8] = TRUE;
sub_800A34C(param_1,param_1,&gUnknown_8106F1C);
}
if ((type == TYPE_ELECTRIC) && (pokemonInfo->charging.chargingStatus == STATUS_CHARGING)) {
gDungeon->fill16E[9] = TRUE;
sub_800A34C(param_1,param_1,&gUnknown_8106F0C);
}
}
return bVar4;
}
s32 WeightWeakTypePicker(Entity *user, Entity *target, u8 moveType)
{
s32 weight = 1;