mirror of
https://github.com/pret/pmd-red.git
synced 2026-08-03 09:10:20 -05:00
sub_8040150
This commit is contained in:
parent
91d397caea
commit
7e2702c699
|
|
@ -5,100 +5,6 @@
|
|||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8040150
|
||||
sub_8040150:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r9
|
||||
mov r6, r8
|
||||
push {r6,r7}
|
||||
sub sp, 0x4
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
mov r9, r0
|
||||
movs r0, 0
|
||||
ldr r2, _080401EC
|
||||
_08040164:
|
||||
movs r4, 0
|
||||
lsls r1, r0, 3
|
||||
adds r3, r0, 0x1
|
||||
mov r8, r3
|
||||
subs r1, r0
|
||||
lsls r0, r1, 7
|
||||
ldr r3, _080401F0
|
||||
adds r6, r0, r3
|
||||
lsls r5, r1, 2
|
||||
_08040176:
|
||||
ldr r0, [r2]
|
||||
adds r0, r6
|
||||
lsls r1, r4, 5
|
||||
adds r0, r1
|
||||
movs r1, 0x20
|
||||
str r2, [sp]
|
||||
bl CpuClear
|
||||
ldr r2, [sp]
|
||||
ldr r0, [r2]
|
||||
adds r1, r4, r5
|
||||
ldr r3, _080401F4
|
||||
adds r0, r3
|
||||
adds r0, r1
|
||||
movs r7, 0
|
||||
strb r7, [r0]
|
||||
adds r4, 0x1
|
||||
cmp r4, 0x1B
|
||||
ble _08040176
|
||||
mov r0, r8
|
||||
cmp r0, 0xF
|
||||
ble _08040164
|
||||
mov r0, r9
|
||||
cmp r0, 0
|
||||
bne _080401B0
|
||||
ldr r1, _080401F8
|
||||
movs r0, 0x64
|
||||
strh r0, [r1]
|
||||
strh r0, [r1, 0x2]
|
||||
_080401B0:
|
||||
ldr r3, _080401EC
|
||||
ldr r0, [r3]
|
||||
ldr r2, _080401FC
|
||||
adds r1, r0, r2
|
||||
str r7, [r1]
|
||||
ldr r1, _08040200
|
||||
adds r0, r1
|
||||
movs r2, 0x1
|
||||
strb r2, [r0]
|
||||
ldr r0, [r3]
|
||||
ldr r3, _08040204
|
||||
adds r0, r3
|
||||
strb r7, [r0]
|
||||
ldr r0, _08040208
|
||||
strb r2, [r0]
|
||||
ldr r1, _0804020C
|
||||
ldr r0, _08040210
|
||||
str r0, [r1]
|
||||
ldr r0, _08040214
|
||||
strb r2, [r0]
|
||||
bl sub_8040238
|
||||
add sp, 0x4
|
||||
pop {r3,r4}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080401EC: .4byte gDungeon
|
||||
_080401F0: .4byte 0x0001822c
|
||||
_080401F4: .4byte 0x0001ba2c
|
||||
_080401F8: .4byte gUnknown_203B410
|
||||
_080401FC: .4byte 0x0001bdcc
|
||||
_08040200: .4byte 0x0001bdd0
|
||||
_08040204: .4byte 0x0001bdd2
|
||||
_08040208: .4byte gUnknown_202EE00
|
||||
_0804020C: .4byte gUnknown_202EE08
|
||||
_08040210: .4byte 0x06001700
|
||||
_08040214: .4byte gUnknown_202EE01
|
||||
thumb_func_end sub_8040150
|
||||
|
||||
thumb_func_start sub_8040218
|
||||
sub_8040218:
|
||||
push {lr}
|
||||
|
|
|
|||
|
|
@ -332,6 +332,25 @@ typedef struct unkDungeon57C
|
|||
#define UNK12A18_ARR_COUNT 29
|
||||
#define UNK12A18_ARR_COUNT_2 9
|
||||
|
||||
struct UnkDungeonGlobal_1822C_Sub
|
||||
{
|
||||
u8 fill0[0x20];
|
||||
};
|
||||
|
||||
#define UNK1822C_ARR_COUNT 16
|
||||
#define UNK1822C_ARR_COUNT_2 28
|
||||
|
||||
struct UnkDungeonGlobal_1822C
|
||||
{
|
||||
struct UnkDungeonGlobal_1822C_Sub unk1822C[UNK1822C_ARR_COUNT][UNK1822C_ARR_COUNT_2];
|
||||
u8 unk1BA2C[UNK1822C_ARR_COUNT][UNK1822C_ARR_COUNT_2];
|
||||
u8 fillUnk[0x1e0];
|
||||
s32 unk1BDCC;
|
||||
u8 unk1BDD0;
|
||||
u8 fill1BDD1;
|
||||
u8 unk1BDD2;
|
||||
};
|
||||
|
||||
// size: 0x1CEDC
|
||||
typedef struct Dungeon
|
||||
{
|
||||
|
|
@ -447,8 +466,8 @@ typedef struct Dungeon
|
|||
/* 0x17B44 */ OpenedFile *sprites[MONSTER_MAX];
|
||||
/* 0x181E4 */ OpenedFile *paletFile;
|
||||
/* 0x181E8 */ UnkDungeonGlobal_unk181E8_sub unk181e8;
|
||||
u8 fill18220[0x1BDD4 - 0x1822C];
|
||||
struct UnkStructDungeon1BDD4 unk1BDD4;
|
||||
/* 0x1822C */ struct UnkDungeonGlobal_1822C unk1822C;
|
||||
/* 0x1BDD4 */ struct UnkStructDungeon1BDD4 unk1BDD4;
|
||||
/* 0x1BE14 */ struct MessageLogString messageLogStrings[MESSAGE_LOG_STRINGS_COUNT];
|
||||
/* 0x1C570 */ DungeonLocation unk1C570;
|
||||
/* 0x1C574 */ FloorProperties unk1C574;
|
||||
|
|
|
|||
|
|
@ -9,6 +9,8 @@
|
|||
#include "dungeon_music.h"
|
||||
#include "file_system.h"
|
||||
#include "play_time.h"
|
||||
#include "cpu.h"
|
||||
#include "dungeon.h"
|
||||
|
||||
extern s32 gUnknown_80F6568[];
|
||||
extern u8 gUnknown_202EE01;
|
||||
|
|
@ -81,3 +83,34 @@ void sub_8040130(void)
|
|||
{
|
||||
gUnknown_202EE04 = OpenFileAndGetFileDataPtr(&gUnknown_80F6604, &gDungeonFileArchive);
|
||||
}
|
||||
|
||||
extern DungeonPos gUnknown_203B410;
|
||||
extern u8 gUnknown_202EE00;
|
||||
extern void *gUnknown_202EE08;
|
||||
|
||||
void sub_8040238(void);
|
||||
|
||||
void sub_8040150(bool8 a0)
|
||||
{
|
||||
s32 i, j;
|
||||
|
||||
for (i = 0; i < UNK1822C_ARR_COUNT; i++) {
|
||||
for (j = 0; j < UNK1822C_ARR_COUNT_2; j++) {
|
||||
CpuClear(&gDungeon->unk1822C.unk1822C[i][j], sizeof(struct UnkDungeonGlobal_1822C_Sub));
|
||||
gDungeon->unk1822C.unk1BA2C[i][j] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (!a0) {
|
||||
gUnknown_203B410.x = 100;
|
||||
gUnknown_203B410.y = 100;
|
||||
}
|
||||
|
||||
gDungeon->unk1822C.unk1BDCC = 0;
|
||||
gDungeon->unk1822C.unk1BDD0 = 1;
|
||||
gDungeon->unk1822C.unk1BDD2 = 0;
|
||||
gUnknown_202EE00 = 1;
|
||||
gUnknown_202EE08 = (void *) VRAM + 0x1700;
|
||||
gUnknown_202EE01 = 1;
|
||||
sub_8040238();
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user