mirror of
https://github.com/pret/pmd-red.git
synced 2026-06-16 05:30:20 -05:00
125 lines
2.4 KiB
C
125 lines
2.4 KiB
C
#include "global.h"
|
|
#include "code_8085E98.h"
|
|
#include "code_800E9A8.h"
|
|
#include "code_803E46C.h"
|
|
#include "dungeon_util.h"
|
|
#include "items.h"
|
|
#include "code_800DAC0.h"
|
|
|
|
#include "structs/sprite_oam.h"
|
|
#include "structs/str_dungeon.h"
|
|
|
|
extern const unkStruct_2039DB0 gUnknown_8107374;
|
|
|
|
|
|
void sub_800EF64(void);
|
|
void sub_800EE5C(s32);
|
|
void sub_8085F44(s32);
|
|
bool8 sub_800E90C(DungeonPos *);
|
|
void sub_8088EE8(void);
|
|
void sub_8088848(void);
|
|
void sub_808A718(void);
|
|
|
|
|
|
void sub_8085E98(void)
|
|
{
|
|
gDungeon->unk181e8.unk18215 = 0;
|
|
}
|
|
|
|
void sub_8085EB0(void)
|
|
{
|
|
gDungeon->unk181e8.unk18215 = 1;
|
|
}
|
|
|
|
u32 sub_8085EC8(s16 param_1,u32 param_2,u32 param_3,DungeonPos *param_4,
|
|
bool32 param_5)
|
|
{
|
|
u32 uVar1;
|
|
unkStruct_80416E0 local_40;
|
|
unkStruct_2039DB0 stack1C;
|
|
|
|
bool8 param_5_bool8;
|
|
s32 param_1_s32 = param_1;
|
|
|
|
|
|
param_5_bool8 = param_5;
|
|
|
|
sub_800EE5C(param_1_s32);
|
|
sub_800EF64();
|
|
sub_803E46C(0x46);
|
|
local_40.unk0 = param_1;
|
|
local_40.unk4 = param_2;
|
|
local_40.dir = param_3;
|
|
local_40.x = param_4->x;
|
|
local_40.y = param_4->y;
|
|
local_40.unk10 = 0;
|
|
local_40.unk12 = 0;
|
|
local_40.unk18 = 0xffff;
|
|
stack1C = gUnknown_8107374;
|
|
|
|
uVar1 = sub_800E890(&local_40);
|
|
if (param_5_bool8) {
|
|
sub_8085F44(uVar1);
|
|
uVar1 = -1;
|
|
}
|
|
return uVar1;
|
|
}
|
|
|
|
void sub_8085F44(s32 param_1)
|
|
{
|
|
while (sub_800E9A8(param_1)) {
|
|
sub_800E90C(&gDungeon->unk181e8.cameraPixelPos);
|
|
sub_803E46C(0x46);
|
|
}
|
|
}
|
|
|
|
void sub_8085F78(void)
|
|
{
|
|
switch(gDungeon->unk3A0D) {
|
|
case 0x12:
|
|
case 0x13:
|
|
case 0x14:
|
|
sub_8088848();
|
|
break;
|
|
case 0x15:
|
|
sub_8088EE8();
|
|
break;
|
|
case 0x29:
|
|
case 0x2A:
|
|
sub_808A718();
|
|
break;
|
|
|
|
case 0:
|
|
case 0x3C:
|
|
default:
|
|
break;
|
|
}
|
|
return;
|
|
}
|
|
|
|
bool8 sub_80860A8(u8 id)
|
|
{
|
|
|
|
Item *item;
|
|
EntityInfo *info;
|
|
Entity *entity;
|
|
int index;
|
|
|
|
|
|
for(index = 0; index < INVENTORY_SIZE; index++)
|
|
{
|
|
item = &gTeamInventoryRef->teamItems[index];
|
|
if((item->flags & 1) != 0)
|
|
{
|
|
if((item->id) == id) return TRUE;
|
|
}
|
|
}
|
|
|
|
for(index = 0; index < MAX_TEAM_MEMBERS; index++)
|
|
{
|
|
entity = gDungeon->teamPokemon[index];
|
|
if (((EntityIsValid(entity)) && (info = GetEntInfo(entity), ((info->heldItem).flags & 1))) && ((info->heldItem).id == id)) return TRUE;
|
|
}
|
|
return FALSE;
|
|
}
|