mirror of
https://github.com/pret/pmd-red.git
synced 2026-03-21 17:46:39 -05:00
start splitting dungeon menu files
This commit is contained in:
parent
208d9308fb
commit
7ad89f101d
|
|
@ -6,66 +6,7 @@
|
|||
.text
|
||||
|
||||
|
||||
thumb_func_start sub_80637BC
|
||||
sub_80637BC:
|
||||
push {r4,r5,lr}
|
||||
adds r4, r0, 0
|
||||
adds r5, r2, 0
|
||||
ldr r0, _080637E0
|
||||
lsls r1, 2
|
||||
adds r1, r0
|
||||
ldrh r1, [r1]
|
||||
adds r0, r4, 0
|
||||
bl SetMonsterActionFields
|
||||
strb r5, [r4, 0x4]
|
||||
ldr r0, _080637E4
|
||||
ldr r0, [r0]
|
||||
strb r0, [r4, 0xC]
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080637E0: .4byte gUnknown_202EE44
|
||||
_080637E4: .4byte gUnknown_202F2D8
|
||||
thumb_func_end sub_80637BC
|
||||
|
||||
thumb_func_start sub_80637E8
|
||||
sub_80637E8:
|
||||
push {lr}
|
||||
adds r3, r0, 0
|
||||
ldr r0, _08063828
|
||||
ldr r1, [r0]
|
||||
ldrb r0, [r3, 0x4]
|
||||
lsls r0, 2
|
||||
ldr r2, _0806382C
|
||||
adds r1, r2
|
||||
adds r1, r0
|
||||
ldr r0, [r1]
|
||||
ldr r0, [r0, 0x70]
|
||||
ldrb r1, [r3, 0xC]
|
||||
lsls r1, 3
|
||||
adds r1, r0, r1
|
||||
ldr r2, _08063830
|
||||
adds r2, r1
|
||||
mov r12, r2
|
||||
ldrb r2, [r2]
|
||||
movs r1, 0x2
|
||||
orrs r1, r2
|
||||
mov r2, r12
|
||||
strb r1, [r2]
|
||||
movs r1, 0x8C
|
||||
lsls r1, 1
|
||||
adds r0, r1
|
||||
ldrb r1, [r3, 0xC]
|
||||
movs r2, 0x4
|
||||
bl sub_8063834
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08063828: .4byte gDungeon
|
||||
_0806382C: .4byte 0x0001357c
|
||||
_08063830: .4byte 0x00000119
|
||||
thumb_func_end sub_80637E8
|
||||
|
||||
thumb_func_start sub_8063834
|
||||
sub_8063834:
|
||||
|
|
@ -1115,7 +1056,7 @@ _08064058:
|
|||
_0806406E:
|
||||
movs r1, 0x18
|
||||
ldrsh r0, [r4, r1]
|
||||
bl sub_8044F3C
|
||||
bl CanSubMenuItemBeChosen
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08064098
|
||||
|
|
@ -1488,7 +1429,7 @@ _08064340:
|
|||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08064350: .4byte gUnknown_202EE6C
|
||||
_08064350: .4byte gDungeonSubMenuItemsCount
|
||||
_08064354: .4byte gUnknown_202F2D8
|
||||
thumb_func_end sub_8064310
|
||||
|
||||
|
|
@ -1682,7 +1623,7 @@ _080644CC: .4byte gRealInputs
|
|||
_080644D0:
|
||||
movs r2, 0x18
|
||||
ldrsh r0, [r5, r2]
|
||||
bl sub_8044F3C
|
||||
bl CanSubMenuItemBeChosen
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806450C
|
||||
|
|
@ -1820,7 +1761,7 @@ sub_80645D4:
|
|||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080645F4: .4byte gUnknown_202EE6C
|
||||
_080645F4: .4byte gDungeonSubMenuItemsCount
|
||||
thumb_func_end sub_80645D4
|
||||
|
||||
thumb_func_start sub_80645F8
|
||||
|
|
@ -2209,7 +2150,7 @@ _08064910: .4byte gRealInputs
|
|||
_08064914:
|
||||
movs r2, 0x18
|
||||
ldrsh r0, [r5, r2]
|
||||
bl sub_8044F3C
|
||||
bl CanSubMenuItemBeChosen
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08064950
|
||||
|
|
@ -2353,7 +2294,7 @@ sub_8064A18:
|
|||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08064A38: .4byte gUnknown_202EE6C
|
||||
_08064A38: .4byte gDungeonSubMenuItemsCount
|
||||
thumb_func_end sub_8064A18
|
||||
|
||||
thumb_func_start sub_8064A3C
|
||||
|
|
|
|||
16
include/dungeon_main.h
Normal file
16
include/dungeon_main.h
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
#ifndef GUARD_DUNGEON_MAIN_H
|
||||
#define GUARD_DUNGEON_MAIN_H
|
||||
|
||||
#include "structs/str_text.h"
|
||||
|
||||
void DungeonHandlePlayerInput(void);
|
||||
void sub_805E804(void);
|
||||
void sub_805EE30(void);
|
||||
void sub_805EFB4(Entity *a0, bool8 a1);
|
||||
void sub_805F02C(void);
|
||||
ActionContainer *GetLeaderActionContainer(void);
|
||||
u16 GetLeaderActionId(void);
|
||||
bool8 sub_805FBE8(u8 *a0);
|
||||
void CreateDungeonMenuSubWindow(Window *mainWindow, s32 subWindowX);
|
||||
|
||||
#endif
|
||||
|
|
@ -226,7 +226,8 @@ SECTIONS {
|
|||
src/move_actions.o(.text);
|
||||
src/status_actions.o(.text);
|
||||
src/move_checks.o(.text);
|
||||
src/code_805D8C8_1.o(.text);
|
||||
src/dungeon_main.o(.text);
|
||||
src/code_805D8C8_2.o(.text);
|
||||
asm/code_805D8C8.o(.text);
|
||||
src/code_8066D04.o(.text);
|
||||
src/code_805D8C8.o(.text);
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ typedef struct unkStr_80F7C54
|
|||
|
||||
EWRAM_DATA unkStruct_202EE44 gUnknown_202EE44[10] = {0};
|
||||
|
||||
extern s32 gUnknown_202EE6C;
|
||||
extern s32 gDungeonSubMenuItemsCount;
|
||||
|
||||
extern const ItemText gActions[];
|
||||
extern u16 gUnknown_80F6964[NUM_ITEM_CATEGORIES];
|
||||
|
|
@ -159,7 +159,7 @@ void sub_8044E24(Entity *entity,int index,u32 unused)
|
|||
}
|
||||
|
||||
// Similar to sub_8044BA8
|
||||
u8 *sub_8044EC8(s32 param_1)
|
||||
u8 *GetDungeonSubMenuItemString(s32 param_1)
|
||||
{
|
||||
u16 uVar1;
|
||||
u32 uVar3;
|
||||
|
|
@ -185,7 +185,7 @@ u8 *sub_8044EC8(s32 param_1)
|
|||
}
|
||||
}
|
||||
|
||||
bool8 sub_8044F3C(s32 param_1)
|
||||
bool8 CanSubMenuItemBeChosen(s32 param_1)
|
||||
{
|
||||
if(param_1 < 0)
|
||||
return FALSE;
|
||||
|
|
@ -197,17 +197,17 @@ void sub_8044F5C(u16 param_1, u8 param_2)
|
|||
{
|
||||
int index;
|
||||
|
||||
if (gUnknown_202EE6C < 10) {
|
||||
for(index = 0; index < gUnknown_202EE6C; index++)
|
||||
if (gDungeonSubMenuItemsCount < 10) {
|
||||
for(index = 0; index < gDungeonSubMenuItemsCount; index++)
|
||||
{
|
||||
if (gUnknown_202EE44[index].unk0 == param_1) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
gUnknown_202EE44[gUnknown_202EE6C].unk0 = param_1;
|
||||
gUnknown_202EE44[gUnknown_202EE6C].unk2 = param_2;
|
||||
gUnknown_202EE44[gUnknown_202EE6C].unk3 = TRUE;
|
||||
gUnknown_202EE6C++;
|
||||
gUnknown_202EE44[gDungeonSubMenuItemsCount].unk0 = param_1;
|
||||
gUnknown_202EE44[gDungeonSubMenuItemsCount].unk2 = param_2;
|
||||
gUnknown_202EE44[gDungeonSubMenuItemsCount].unk3 = TRUE;
|
||||
gDungeonSubMenuItemsCount++;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -215,7 +215,7 @@ s32 sub_8044FB4(u16 param_1)
|
|||
{
|
||||
int index;
|
||||
|
||||
for(index = 0; index < gUnknown_202EE6C; index++)
|
||||
for(index = 0; index < gDungeonSubMenuItemsCount; index++)
|
||||
{
|
||||
if (gUnknown_202EE44[index].unk0 == param_1) {
|
||||
return index;
|
||||
|
|
@ -228,7 +228,7 @@ void sub_8044FF0(u16 param_1)
|
|||
{
|
||||
int index;
|
||||
|
||||
for(index = 0; index < gUnknown_202EE6C; index++)
|
||||
for(index = 0; index < gDungeonSubMenuItemsCount; index++)
|
||||
{
|
||||
if (gUnknown_202EE44[index].unk0 == param_1) {
|
||||
gUnknown_202EE44[index].unk3 = FALSE;
|
||||
|
|
@ -269,8 +269,8 @@ void sub_8045064(void)
|
|||
unkStruct_202EE44 *jPtr;
|
||||
unkStruct_202EE44 temp;
|
||||
|
||||
for (i = 0; i < gUnknown_202EE6C; i++) {
|
||||
for (j = i + 1; j < gUnknown_202EE6C; j++) {
|
||||
for (i = 0; i < gDungeonSubMenuItemsCount; i++) {
|
||||
for (j = i + 1; j < gDungeonSubMenuItemsCount; j++) {
|
||||
iPtr = &gUnknown_202EE44[i];
|
||||
jPtr = &gUnknown_202EE44[j];
|
||||
if ((s32)gUnknown_80F7C54[iPtr->unk0].unk0 > (s32)gUnknown_80F7C54[jPtr->unk0].unk0) {
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -76,7 +76,7 @@ extern const u8 *const gMonCringing;
|
|||
extern const u8 *const gMonParalyzed;
|
||||
extern const u8 *const gUnknown_80FC690;
|
||||
|
||||
extern s32 gUnknown_202EE6C;
|
||||
extern s32 gDungeonSubMenuItemsCount;
|
||||
extern u32 gUnknown_202F208;
|
||||
|
||||
extern void sub_8071DA4(Entity *);
|
||||
|
|
@ -901,7 +901,7 @@ extern void sub_80684C4(void);
|
|||
void sub_8045064(void);
|
||||
extern void PlayDungeonCursorSE(u8 param_1);
|
||||
extern void sub_8068344(void);
|
||||
bool8 sub_8044F3C(s32 param_1);
|
||||
bool8 CanSubMenuItemBeChosen(s32 param_1);
|
||||
void sub_8068310(s32 a0, PokemonStruct1 **a1);
|
||||
void sub_8067F00(u8 a0, PokemonStruct1 **a1, s32 a2, s32 a3, s32 a4);
|
||||
extern void DungeonShowWindows(Windows *a0, u8 a1);
|
||||
|
|
@ -1124,7 +1124,7 @@ void sub_8067A80(u8 a0, s32 a1, s32 a2, PokemonStruct1 **a3)
|
|||
|
||||
r10 = gDungeonMenu.menuIndex;
|
||||
arrId = gUnknown_202F30C + r10;
|
||||
gUnknown_202EE6C = 0;
|
||||
gDungeonSubMenuItemsCount = 0;
|
||||
sub_8044F5C(0x29, 0);
|
||||
sub_8044F5C(0x2A, 0);
|
||||
sub_8044F5C(0x40, 0);
|
||||
|
|
@ -1158,7 +1158,7 @@ void sub_8067A80(u8 a0, s32 a1, s32 a2, PokemonStruct1 **a3)
|
|||
}
|
||||
|
||||
if ((gRealInputs.pressed & A_BUTTON) || gDungeonMenu.unk28.a_button) {
|
||||
if (sub_8044F3C(gDungeonMenu.menuIndex)) {
|
||||
if (CanSubMenuItemBeChosen(gDungeonMenu.menuIndex)) {
|
||||
PlayDungeonConfirmationSE();
|
||||
r7 = 1;
|
||||
break;
|
||||
|
|
|
|||
1748
src/dungeon_main.c
Normal file
1748
src/dungeon_main.c
Normal file
File diff suppressed because it is too large
Load Diff
|
|
@ -136,7 +136,7 @@ gUnknown_202EE3A: /* 202EE3A (sub_8060E38 - sub_8065DBC) */
|
|||
|
||||
gUnknown_202EE44: /* 202EE44 (sub_8044EC8 - sub_80647F0) */
|
||||
.space 0x28
|
||||
gUnknown_202EE6C: /* 202EE6C (sub_8044F5C - sub_8067A80) */
|
||||
gDungeonSubMenuItemsCount: /* 202EE6C (sub_8044F5C - sub_8067A80) */
|
||||
.space 0x4
|
||||
|
||||
gUnknown_202EE70: /* 202EE70 (sub_804513C - sub_80828E0) */
|
||||
|
|
@ -148,7 +148,8 @@ gUnknown_202EE76: /* 202EE76 (sub_804513C - sub_8082A08) */
|
|||
.include "src/dungeon_generation.o"
|
||||
.include "src/dungeon_message.o"
|
||||
.include "src/dungeon_move.o"
|
||||
.include "src/code_805D8C8_1.o"
|
||||
.include "src/dungeon_main.o"
|
||||
.include "src/code_805D8C8_2.o"
|
||||
|
||||
gUnknown_202F268: /* 202F268 (sub_8062500) */
|
||||
.space 0x8
|
||||
|
|
|
|||
|
|
@ -114,7 +114,8 @@
|
|||
.include "src/dungeon_map_access.o"
|
||||
.include "src/dungeon_message.o"
|
||||
.include "src/dungeon_move.o"
|
||||
.include "src/code_805D8C8_1.o"
|
||||
.include "src/dungeon_main.o"
|
||||
.include "src/code_805D8C8_2.o"
|
||||
.include "src/dungeon_ai_items.o"
|
||||
.include "src/code_807CD9C.o"
|
||||
.include "src/dungeon_leader.o"
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user