mirror of
https://github.com/pret/pmd-red.git
synced 2026-09-10 01:55:51 -05:00
more decomp
This commit is contained in:
@@ -2974,173 +2974,4 @@ _0806860C: .4byte 0x00000fff
|
||||
_08068610: .4byte 0x000001ff
|
||||
thumb_func_end sub_80684C4
|
||||
|
||||
thumb_func_start sub_8068614
|
||||
sub_8068614:
|
||||
push {lr}
|
||||
ldr r0, _0806862C
|
||||
ldr r1, _08068630
|
||||
bl OpenFileAndGetFileDataPtr
|
||||
ldr r1, _08068634
|
||||
ldr r1, [r1]
|
||||
ldr r2, _08068638
|
||||
adds r1, r2
|
||||
str r0, [r1]
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0806862C: .4byte gUnknown_8106E98
|
||||
_08068630: .4byte gMonsterFileArchive
|
||||
_08068634: .4byte gDungeon
|
||||
_08068638: .4byte 0x000181e4
|
||||
thumb_func_end sub_8068614
|
||||
|
||||
thumb_func_start sub_806863C
|
||||
sub_806863C:
|
||||
push {lr}
|
||||
ldr r0, _08068650
|
||||
ldr r0, [r0]
|
||||
ldr r1, _08068654
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
bl CloseFile
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08068650: .4byte gDungeon
|
||||
_08068654: .4byte 0x000181e4
|
||||
thumb_func_end sub_806863C
|
||||
|
||||
thumb_func_start LoadDungeonPokemonSprites
|
||||
LoadDungeonPokemonSprites:
|
||||
push {r4-r6,lr}
|
||||
movs r4, 0
|
||||
ldr r6, _08068740
|
||||
ldr r5, _08068744
|
||||
ldr r3, _08068748
|
||||
movs r2, 0
|
||||
_08068664:
|
||||
ldr r0, [r5]
|
||||
lsls r1, r4, 2
|
||||
adds r0, r3
|
||||
adds r0, r1
|
||||
str r2, [r0]
|
||||
adds r4, 0x1
|
||||
cmp r4, r6
|
||||
ble _08068664
|
||||
ldr r0, _0806874C
|
||||
movs r1, 0x1
|
||||
bl LoadPokemonSprite
|
||||
movs r4, 0
|
||||
ldr r1, _08068744
|
||||
ldr r0, [r1]
|
||||
ldr r2, _08068750
|
||||
adds r0, r2
|
||||
ldr r0, [r0]
|
||||
cmp r4, r0
|
||||
bge _080686B2
|
||||
adds r6, r1, 0
|
||||
ldr r5, _08068754
|
||||
_08068690:
|
||||
ldr r0, [r6]
|
||||
adds r0, r5
|
||||
bl ExtractSpeciesIndex
|
||||
lsls r0, 16
|
||||
asrs r0, 16
|
||||
movs r1, 0x1
|
||||
bl LoadPokemonSprite
|
||||
adds r5, 0x8
|
||||
adds r4, 0x1
|
||||
ldr r0, [r6]
|
||||
ldr r1, _08068750
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
cmp r4, r0
|
||||
blt _08068690
|
||||
_080686B2:
|
||||
ldr r0, _08068744
|
||||
ldr r0, [r0]
|
||||
movs r2, 0xD1
|
||||
lsls r2, 3
|
||||
adds r1, r0, r2
|
||||
movs r2, 0
|
||||
ldrsh r0, [r1, r2]
|
||||
cmp r0, 0
|
||||
beq _080686CA
|
||||
movs r1, 0x1
|
||||
bl LoadPokemonSprite
|
||||
_080686CA:
|
||||
movs r4, 0
|
||||
ldr r6, _08068758
|
||||
movs r5, 0x1
|
||||
_080686D0:
|
||||
movs r0, 0x64
|
||||
muls r0, r4
|
||||
ldr r1, _0806875C
|
||||
adds r0, r1
|
||||
ldr r1, [r6]
|
||||
adds r1, r0
|
||||
ldrh r2, [r1]
|
||||
adds r0, r5, 0
|
||||
ands r0, r2
|
||||
cmp r0, 0
|
||||
beq _080686F8
|
||||
lsrs r0, r2, 1
|
||||
ands r0, r5
|
||||
cmp r0, 0
|
||||
beq _080686F8
|
||||
movs r2, 0xE
|
||||
ldrsh r0, [r1, r2]
|
||||
movs r1, 0
|
||||
bl LoadPokemonSprite
|
||||
_080686F8:
|
||||
adds r4, 0x1
|
||||
cmp r4, 0x3
|
||||
ble _080686D0
|
||||
ldr r0, _08068744
|
||||
ldr r0, [r0]
|
||||
ldr r1, _08068760
|
||||
adds r0, r1
|
||||
movs r2, 0
|
||||
ldrsh r0, [r0, r2]
|
||||
cmp r0, 0x31
|
||||
bne _08068738
|
||||
movs r4, 0
|
||||
ldr r5, _08068758
|
||||
_08068712:
|
||||
movs r0, 0x58
|
||||
muls r0, r4
|
||||
ldr r1, _08068764
|
||||
adds r0, r1
|
||||
ldr r1, [r5]
|
||||
adds r2, r1, r0
|
||||
ldrb r1, [r2]
|
||||
movs r0, 0x1
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08068732
|
||||
movs r1, 0x8
|
||||
ldrsh r0, [r2, r1]
|
||||
movs r1, 0x1
|
||||
bl LoadPokemonSprite
|
||||
_08068732:
|
||||
adds r4, 0x1
|
||||
cmp r4, 0x3
|
||||
ble _08068712
|
||||
_08068738:
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08068740: .4byte 0x000001a7
|
||||
_08068744: .4byte gDungeon
|
||||
_08068748: .4byte 0x00017b44
|
||||
_0806874C: .4byte 0x000001a5
|
||||
_08068750: .4byte 0x000037e4
|
||||
_08068754: .4byte 0x0000343c
|
||||
_08068758: .4byte gRecruitedPokemonRef
|
||||
_0806875C: .4byte 0x00008df8
|
||||
_08068760: .4byte 0x00003a14
|
||||
_08068764: .4byte 0x00008f88
|
||||
thumb_func_end LoadDungeonPokemonSprites
|
||||
|
||||
.align 2,0
|
||||
|
||||
@@ -26,6 +26,7 @@ void sub_800DAC0(u32);
|
||||
void sub_800DB7C(void);
|
||||
void sub_800DBBC(void);
|
||||
bool8 sub_800E90C(DungeonPos *);
|
||||
void sub_800E8AC(s32 a0, DungeonPos *a1, DungeonPos *a2, s32 a3, struct unkStruct_203B0CC_sub_2 *a4);
|
||||
void sub_800E8AC(s32 a0, DungeonPos *a1, DungeonPos *a2, s32 a3, unkStruct_2039DB0 *a4);
|
||||
|
||||
|
||||
#endif // GUARD_CODE_800DAC0_H
|
||||
|
||||
@@ -1,15 +1,10 @@
|
||||
#ifndef GUARD_CODE_800E9A8_H
|
||||
#define GUARD_CODE_800E9A8_H
|
||||
|
||||
#include "structs/axdata.h"
|
||||
#include "structs/sprite_oam.h"
|
||||
#include "structs/str_position.h"
|
||||
|
||||
struct unkStruct_203B0CC_sub_2
|
||||
{
|
||||
u32 unk0;
|
||||
u32 unk4;
|
||||
u32 unk8;
|
||||
};
|
||||
|
||||
struct unkStruct_203B0CC_sub
|
||||
{
|
||||
// size: 0xD0
|
||||
@@ -23,17 +18,20 @@ struct unkStruct_203B0CC_sub
|
||||
DungeonPos unk1c;
|
||||
s32 unk20;
|
||||
s32 unk24;
|
||||
struct unkStruct_203B0CC_sub_2 unk28;
|
||||
unkStruct_2039DB0 spriteMasks;
|
||||
u32 unk34;
|
||||
u32 effectID;
|
||||
u8 fill3C[0x4C - 0x3C];
|
||||
s32 paletteNum;
|
||||
u8 fill40[0x4C - 0x40];
|
||||
u32 unk4C;
|
||||
s32 unk50;
|
||||
u8 unk54;
|
||||
u8 fill55[0xB8 - 0x55];
|
||||
u8 fill55[0x58 - 0x55];
|
||||
struct axObject unk58;
|
||||
u8 fillA4[0xB8 - 0xA4];
|
||||
u32 unkB8;
|
||||
u8 fillBC[0xCC - 0xBC];
|
||||
u32 unkCC;
|
||||
s16 unkCC[2]; // NOTE: might be DungeonPos
|
||||
};
|
||||
|
||||
struct unkStruct_203B0CC
|
||||
|
||||
@@ -5,6 +5,9 @@
|
||||
|
||||
void CloseAllSpriteFiles(void);
|
||||
|
||||
void OpenDungeonPaletteFile(void);
|
||||
void CloseDungeonPaletteFile(void);
|
||||
void LoadDungeonPokemonSprites(void);
|
||||
void sub_8068768(void);
|
||||
void sub_80687AC(void);
|
||||
OpenedFile *GetSpriteData(s32 _species);
|
||||
|
||||
@@ -55,7 +55,7 @@ u32 sub_800E890(unkStruct_80416E0 *param_1)
|
||||
return sub_800E208(7, (void*)¶m_1->unk0);
|
||||
}
|
||||
|
||||
void sub_800E8AC(s32 a0, DungeonPos *a1, DungeonPos *a2, s32 a3, struct unkStruct_203B0CC_sub_2 *a4)
|
||||
void sub_800E8AC(s32 a0, DungeonPos *a1, DungeonPos *a2, s32 a3, unkStruct_2039DB0 *a4)
|
||||
{
|
||||
s32 index;
|
||||
struct unkStruct_203B0CC_sub *ptr;
|
||||
@@ -68,7 +68,7 @@ void sub_800E8AC(s32 a0, DungeonPos *a1, DungeonPos *a2, s32 a3, struct unkStruc
|
||||
if(a1 != NULL) ptr->unk18 = *a1;
|
||||
if(a2 != NULL) ptr->unk1c = *a2;
|
||||
if(a3 != 0xFFFF) ptr->unk24 = a3;
|
||||
if(a4 != NULL) ptr->unk28 = *a4;
|
||||
if(a4 != NULL) ptr->spriteMasks = *a4;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -99,7 +99,7 @@ void sub_800EB24(s32 param_1, DungeonPos *param_2, DungeonPos *param_3, s32 r5,
|
||||
if (idx != -1) {
|
||||
struct unkStruct_203B0CC_sub *curStruct;
|
||||
curStruct = &gUnknown_203B0CC->unk0[idx];
|
||||
if (curStruct->unkCC == 0) {
|
||||
if (curStruct->unkCC[0] == 0 && curStruct->unkCC[1] == 0) {
|
||||
curStruct->unk18 = *param_2;
|
||||
}
|
||||
|
||||
|
||||
@@ -265,7 +265,6 @@ extern void sub_8040124(void);
|
||||
extern void sub_803E830(void);
|
||||
extern void sub_803E214(void);
|
||||
extern void nullsub_56(void);
|
||||
extern void sub_806863C(void);
|
||||
extern void sub_8040218(void);
|
||||
extern void sub_8047104(void);
|
||||
extern void sub_8068F28(void);
|
||||
@@ -282,7 +281,6 @@ extern void sub_803E02C(void);
|
||||
extern void sub_80847D4(void);
|
||||
extern void sub_8043D60(void);
|
||||
extern void sub_806890C(void);
|
||||
extern void sub_8068614(void);
|
||||
extern void sub_80840A4(void);
|
||||
extern void sub_803E178(void);
|
||||
extern void sub_80848F0(void);
|
||||
@@ -327,7 +325,6 @@ extern bool8 sub_8044B28(void);
|
||||
extern bool8 sub_8083C24(void);
|
||||
extern bool8 sub_8083C88(u8 param_1);
|
||||
extern bool8 sub_8043ED0(bool8);
|
||||
extern void LoadDungeonPokemonSprites(void);
|
||||
extern void ShowDungeonNameBanner(void);
|
||||
extern void sub_803EAF0(u32, u32);
|
||||
extern void sub_806A914(bool8 a0, bool8 a1, bool8 showRunAwayEffect);
|
||||
@@ -487,7 +484,7 @@ void xxx_dungeon_8042F6C(struct UnkStruct_xxx_dungeon_8042F6C *r8)
|
||||
}
|
||||
}
|
||||
|
||||
sub_8068614();
|
||||
OpenDungeonPaletteFile();
|
||||
if (!r6 && gDungeon->unk644.unk34 == 1) {
|
||||
if (sub_8099394(&sp)) {
|
||||
unkStruct_203B480 *mailStr = GetMailatIndex(sp);
|
||||
@@ -914,7 +911,7 @@ void xxx_dungeon_8042F6C(struct UnkStruct_xxx_dungeon_8042F6C *r8)
|
||||
}
|
||||
}
|
||||
|
||||
sub_806863C();
|
||||
CloseDungeonPaletteFile();
|
||||
sub_803E214();
|
||||
nullsub_56();
|
||||
sub_8040218();
|
||||
|
||||
@@ -2,19 +2,67 @@
|
||||
#include "code_805D8C8.h"
|
||||
#include "structs/str_dungeon.h"
|
||||
#include "dungeon_util.h"
|
||||
#include "dungeon_util_1.h"
|
||||
#include "file_system.h"
|
||||
#include "pokemon.h"
|
||||
#include "pokemon_3.h"
|
||||
|
||||
// monster_sbin.s
|
||||
extern const struct FileArchive gMonsterFileArchive;
|
||||
// data_8106A4C.s
|
||||
extern const u8 gUnknown_8106EA0[]; // ax%03d
|
||||
|
||||
extern const u8 gUnknown_8106E98[]; // palet
|
||||
// ???
|
||||
extern s32 sprintf(char *, const char *, ...);
|
||||
|
||||
static void EnsureCastformLoaded(void);
|
||||
static void EnsureDeoxysLoaded(void);
|
||||
|
||||
void OpenDungeonPaletteFile(void)
|
||||
{
|
||||
gDungeon->paletFile = OpenFileAndGetFileDataPtr(gUnknown_8106E98, &gMonsterFileArchive);
|
||||
}
|
||||
|
||||
void CloseDungeonPaletteFile(void)
|
||||
{
|
||||
CloseFile(gDungeon->paletFile);
|
||||
}
|
||||
|
||||
void LoadDungeonPokemonSprites(void)
|
||||
{
|
||||
s32 index;
|
||||
|
||||
for(index = 0; index < 0x1A8; index++)
|
||||
{
|
||||
gDungeon->sprites[index] = NULL;
|
||||
}
|
||||
LoadPokemonSprite(MONSTER_DECOY, TRUE);
|
||||
for(index = 0; index < gDungeon->unk37E4; index++)
|
||||
{
|
||||
LoadPokemonSprite(ExtractSpeciesIndex(&gDungeon->unk343C[index]), TRUE);
|
||||
}
|
||||
if(gDungeon->unk644.unk44)
|
||||
{
|
||||
LoadPokemonSprite(gDungeon->unk644.unk44, TRUE);
|
||||
}
|
||||
for(index = 0; index < 4; index++)
|
||||
{
|
||||
PokemonStruct2 *ptr = &gRecruitedPokemonRef->pokemon2[index];
|
||||
if(PokemonFlag1Struct2(ptr))
|
||||
if(PokemonFlag2Struct2(ptr))
|
||||
LoadPokemonSprite(ptr->speciesNum, FALSE);
|
||||
}
|
||||
if(gDungeon->fixedRoomNumber == 0x31)
|
||||
{
|
||||
for(index = 0; index < MAX_TEAM_MEMBERS; index++)
|
||||
{
|
||||
PokemonStruct1 *ptr = &gRecruitedPokemonRef->team[index];
|
||||
if(PokemonFlag1(ptr))
|
||||
LoadPokemonSprite(ptr->speciesNum, TRUE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8068768(void)
|
||||
{
|
||||
Entity *entity;
|
||||
|
||||
Reference in New Issue
Block a user