mirror of
https://github.com/pret/pmd-red.git
synced 2026-04-25 07:28:17 -05:00
more decomp work and ram setup
This commit is contained in:
parent
099b4e3bc3
commit
6c5433950a
|
|
@ -1,266 +0,0 @@
|
|||
#include "asm/constants/gba_constants.inc"
|
||||
#include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8031D70
|
||||
sub_8031D70:
|
||||
push {r4-r6,lr}
|
||||
adds r6, r0, 0
|
||||
adds r4, r1, 0
|
||||
ldr r5, _08031DC4
|
||||
movs r0, 0x7C
|
||||
movs r1, 0x8
|
||||
bl MemoryAlloc
|
||||
str r0, [r5]
|
||||
stm r0!, {r6}
|
||||
bl sub_801317C
|
||||
ldr r0, [r5]
|
||||
str r4, [r0, 0x10]
|
||||
lsls r1, r4, 1
|
||||
adds r1, r4
|
||||
lsls r1, 3
|
||||
adds r1, 0x18
|
||||
adds r1, r0, r1
|
||||
str r1, [r0, 0x14]
|
||||
adds r0, 0x18
|
||||
bl sub_8006518
|
||||
ldr r1, [r5]
|
||||
ldr r2, [r1, 0x10]
|
||||
lsls r0, r2, 1
|
||||
adds r0, r2
|
||||
lsls r0, 3
|
||||
adds r1, r0
|
||||
adds r1, 0x18
|
||||
ldr r0, _08031DC8
|
||||
ldm r0!, {r2-r4}
|
||||
stm r1!, {r2-r4}
|
||||
ldm r0!, {r2-r4}
|
||||
stm r1!, {r2-r4}
|
||||
bl sub_8031E00
|
||||
movs r0, 0x1
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08031DC4: .4byte gUnknown_203B334
|
||||
_08031DC8: .4byte gUnknown_80E1FC4
|
||||
thumb_func_end sub_8031D70
|
||||
|
||||
thumb_func_start sub_8031DCC
|
||||
sub_8031DCC:
|
||||
push {lr}
|
||||
ldr r0, _08031DEC
|
||||
ldr r1, [r0]
|
||||
adds r0, r1, 0x4
|
||||
ldr r1, [r1, 0x10]
|
||||
bl sub_8012A64
|
||||
cmp r0, 0x1
|
||||
beq _08031DF0
|
||||
cmp r0, 0x2
|
||||
bne _08031DFA
|
||||
movs r0, 0x1
|
||||
bl PlayMenuSoundEffect
|
||||
movs r0, 0x2
|
||||
b _08031DFC
|
||||
.align 2, 0
|
||||
_08031DEC: .4byte gUnknown_203B334
|
||||
_08031DF0:
|
||||
movs r0, 0
|
||||
bl PlayMenuSoundEffect
|
||||
movs r0, 0x3
|
||||
b _08031DFC
|
||||
_08031DFA:
|
||||
movs r0, 0
|
||||
_08031DFC:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8031DCC
|
||||
|
||||
thumb_func_start sub_8031E00
|
||||
sub_8031E00:
|
||||
push {lr}
|
||||
bl sub_8031E58
|
||||
bl sub_8031E74
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8031E00
|
||||
|
||||
thumb_func_start sub_8031E10
|
||||
sub_8031E10:
|
||||
push {r4,r5,lr}
|
||||
ldr r4, _08031E50
|
||||
ldr r2, [r4]
|
||||
cmp r2, 0
|
||||
beq _08031E4A
|
||||
ldr r0, [r2, 0x10]
|
||||
lsls r1, r0, 1
|
||||
adds r1, r0
|
||||
lsls r1, 3
|
||||
adds r1, r2, r1
|
||||
adds r1, 0x18
|
||||
ldr r0, _08031E54
|
||||
ldm r0!, {r2,r3,r5}
|
||||
stm r1!, {r2,r3,r5}
|
||||
ldm r0!, {r2,r3,r5}
|
||||
stm r1!, {r2,r3,r5}
|
||||
bl ResetUnusedInputStruct
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x18
|
||||
movs r1, 0x1
|
||||
movs r2, 0x1
|
||||
bl sub_800641C
|
||||
ldr r0, [r4]
|
||||
bl MemoryFree
|
||||
movs r0, 0
|
||||
str r0, [r4]
|
||||
_08031E4A:
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08031E50: .4byte gUnknown_203B334
|
||||
_08031E54: .4byte gUnknown_80E1FA8
|
||||
thumb_func_end sub_8031E10
|
||||
|
||||
thumb_func_start sub_8031E58
|
||||
sub_8031E58:
|
||||
push {lr}
|
||||
bl ResetUnusedInputStruct
|
||||
ldr r0, _08031E70
|
||||
ldr r0, [r0]
|
||||
adds r0, 0x18
|
||||
movs r1, 0x1
|
||||
movs r2, 0x1
|
||||
bl sub_800641C
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08031E70: .4byte gUnknown_203B334
|
||||
thumb_func_end sub_8031E58
|
||||
|
||||
thumb_func_start sub_8031E74
|
||||
sub_8031E74:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
sub sp, 0x3C
|
||||
ldr r3, _08031EC0
|
||||
ldr r5, _08031EC4
|
||||
ldr r2, [r5]
|
||||
ldr r1, [r2]
|
||||
lsls r0, r1, 1
|
||||
adds r0, r1
|
||||
lsls r0, 4
|
||||
ldr r4, [r3]
|
||||
adds r4, r0
|
||||
ldr r0, [r2, 0x10]
|
||||
bl sub_80073B8
|
||||
ldr r2, _08031EC8
|
||||
ldr r0, [r5]
|
||||
ldr r3, [r0, 0x10]
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
movs r0, 0x14
|
||||
movs r1, 0
|
||||
bl xxx_call_draw_string
|
||||
add r0, sp, 0x4
|
||||
adds r1, r4, 0
|
||||
bl sub_803D2C0
|
||||
movs r7, 0
|
||||
mov r8, r5
|
||||
_08031EB2:
|
||||
cmp r7, 0x4
|
||||
ble _08031ED0
|
||||
cmp r7, 0xC
|
||||
bgt _08031ECC
|
||||
movs r6, 0x6
|
||||
movs r5, 0x16
|
||||
b _08031F00
|
||||
.align 2, 0
|
||||
_08031EC0: .4byte gUnknown_203B480
|
||||
_08031EC4: .4byte gUnknown_203B334
|
||||
_08031EC8: .4byte gUnknown_80E1FDC
|
||||
_08031ECC:
|
||||
cmp r7, 0x11
|
||||
bgt _08031ED6
|
||||
_08031ED0:
|
||||
movs r6, 0x7
|
||||
movs r5, 0x15
|
||||
b _08031F00
|
||||
_08031ED6:
|
||||
cmp r7, 0x16
|
||||
ble _08031EE8
|
||||
cmp r7, 0x1E
|
||||
bgt _08031EE4
|
||||
movs r6, 0x6
|
||||
movs r5, 0x25
|
||||
b _08031F00
|
||||
_08031EE4:
|
||||
cmp r7, 0x23
|
||||
bgt _08031EEE
|
||||
_08031EE8:
|
||||
movs r6, 0x7
|
||||
movs r5, 0x24
|
||||
b _08031F00
|
||||
_08031EEE:
|
||||
cmp r7, 0x28
|
||||
ble _08031EFC
|
||||
cmp r7, 0x30
|
||||
bgt _08031EFC
|
||||
movs r6, 0x6
|
||||
movs r5, 0x34
|
||||
b _08031F00
|
||||
_08031EFC:
|
||||
movs r6, 0x7
|
||||
movs r5, 0x33
|
||||
_08031F00:
|
||||
adds r0, r7, 0
|
||||
movs r1, 0x12
|
||||
bl __modsi3
|
||||
movs r1, 0xB
|
||||
adds r4, r0, 0
|
||||
muls r4, r1
|
||||
adds r4, 0x6
|
||||
mov r0, sp
|
||||
adds r0, r7
|
||||
adds r0, 0x4
|
||||
ldrb r2, [r0]
|
||||
mov r1, r8
|
||||
ldr r0, [r1]
|
||||
ldr r0, [r0, 0x10]
|
||||
str r0, [sp]
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
adds r3, r6, 0
|
||||
bl sub_8012C60
|
||||
mov r1, r8
|
||||
ldr r0, [r1]
|
||||
ldr r0, [r0, 0x10]
|
||||
adds r2, r5, 0
|
||||
adds r2, 0xA
|
||||
movs r1, 0x5
|
||||
str r1, [sp]
|
||||
adds r1, r4, 0
|
||||
movs r3, 0xA
|
||||
bl sub_80078A4
|
||||
adds r7, 0x1
|
||||
cmp r7, 0x35
|
||||
ble _08031EB2
|
||||
ldr r0, _08031F5C
|
||||
ldr r0, [r0]
|
||||
ldr r0, [r0, 0x10]
|
||||
bl sub_80073E0
|
||||
add sp, 0x3C
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08031F5C: .4byte gUnknown_203B334
|
||||
thumb_func_end sub_8031E74
|
||||
|
||||
.align 2,0
|
||||
|
|
@ -5347,200 +5347,4 @@ _0806CC08: .4byte 0x000001ff
|
|||
_0806CC0C: .4byte 0x00000fff
|
||||
thumb_func_end sub_806C51C
|
||||
|
||||
thumb_func_start sub_806CC10
|
||||
sub_806CC10:
|
||||
push {r4,r5,lr}
|
||||
movs r5, 0
|
||||
_0806CC14:
|
||||
ldr r0, _0806CC68
|
||||
ldr r0, [r0]
|
||||
lsls r1, r5, 2
|
||||
ldr r2, _0806CC6C
|
||||
adds r0, r2
|
||||
adds r0, r1
|
||||
ldr r4, [r0]
|
||||
adds r0, r4, 0
|
||||
bl EntityExists
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806CC5C
|
||||
ldr r2, [r4, 0x70]
|
||||
movs r1, 0xB3
|
||||
lsls r1, 1
|
||||
adds r0, r2, r1
|
||||
ldrb r1, [r0]
|
||||
cmp r1, 0
|
||||
beq _0806CC5C
|
||||
subs r1, 0x1
|
||||
strb r1, [r0]
|
||||
movs r0, 0x1
|
||||
ands r1, r0
|
||||
cmp r1, 0
|
||||
bne _0806CC5C
|
||||
adds r0, r2, 0
|
||||
adds r0, 0x46
|
||||
ldrb r2, [r0]
|
||||
subs r2, 0x1
|
||||
movs r0, 0x7
|
||||
ands r2, r0
|
||||
adds r0, r4, 0
|
||||
movs r1, 0
|
||||
bl sub_806CDD4
|
||||
_0806CC5C:
|
||||
adds r5, 0x1
|
||||
cmp r5, 0x13
|
||||
ble _0806CC14
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0806CC68: .4byte gDungeon
|
||||
_0806CC6C: .4byte 0x000135cc
|
||||
thumb_func_end sub_806CC10
|
||||
|
||||
thumb_func_start sub_806CC70
|
||||
sub_806CC70:
|
||||
push {r4,r5,lr}
|
||||
movs r5, 0
|
||||
_0806CC74:
|
||||
ldr r0, _0806CCAC
|
||||
ldr r0, [r0]
|
||||
lsls r1, r5, 2
|
||||
ldr r2, _0806CCB0
|
||||
adds r0, r2
|
||||
adds r0, r1
|
||||
ldr r4, [r0]
|
||||
adds r0, r4, 0
|
||||
bl EntityExists
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806CCA0
|
||||
adds r0, r4, 0
|
||||
bl sub_806CEBC
|
||||
adds r1, r0, 0
|
||||
lsls r1, 24
|
||||
lsrs r1, 24
|
||||
adds r0, r4, 0
|
||||
bl sub_806CCB4
|
||||
_0806CCA0:
|
||||
adds r5, 0x1
|
||||
cmp r5, 0x13
|
||||
ble _0806CC74
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0806CCAC: .4byte gDungeon
|
||||
_0806CCB0: .4byte 0x000135cc
|
||||
thumb_func_end sub_806CC70
|
||||
|
||||
thumb_func_start sub_806CCB4
|
||||
sub_806CCB4:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r9
|
||||
mov r6, r8
|
||||
push {r6,r7}
|
||||
sub sp, 0xC
|
||||
adds r5, r0, 0
|
||||
lsls r1, 24
|
||||
lsrs r4, r1, 24
|
||||
ldr r7, [r5, 0x70]
|
||||
ldr r0, _0806CD40
|
||||
ldr r0, [r0]
|
||||
ldr r2, _0806CD44
|
||||
adds r1, r0, r2
|
||||
ldrb r6, [r1]
|
||||
ldr r3, _0806CD48
|
||||
adds r0, r3
|
||||
ldr r0, [r0]
|
||||
cmp r5, r0
|
||||
bne _0806CCDC
|
||||
movs r6, 0
|
||||
_0806CCDC:
|
||||
adds r0, r5, 0
|
||||
adds r0, 0x6B
|
||||
movs r3, 0
|
||||
strb r4, [r0]
|
||||
adds r2, r5, 0
|
||||
adds r2, 0x6A
|
||||
strb r4, [r2]
|
||||
adds r4, r7, 0
|
||||
adds r4, 0x46
|
||||
ldrb r0, [r4]
|
||||
adds r1, r5, 0
|
||||
adds r1, 0x6D
|
||||
strb r0, [r1]
|
||||
ldrb r0, [r4]
|
||||
subs r1, 0x1
|
||||
strb r0, [r1]
|
||||
adds r0, r5, 0
|
||||
adds r0, 0x6F
|
||||
strb r3, [r0]
|
||||
subs r0, 0x7
|
||||
movs r3, 0
|
||||
ldrsh r4, [r0, r3]
|
||||
mov r9, r4
|
||||
adds r0, r7, 0
|
||||
adds r0, 0xC8
|
||||
ldrb r0, [r0]
|
||||
adds r7, r2, 0
|
||||
mov r8, r1
|
||||
cmp r0, 0x2
|
||||
beq _0806CD4C
|
||||
cmp r6, 0
|
||||
bne _0806CD4C
|
||||
bl Rand32Bit
|
||||
movs r4, 0x3
|
||||
ands r4, r0
|
||||
adds r0, r5, 0
|
||||
adds r0, 0x28
|
||||
ldr r1, [r5, 0x64]
|
||||
ldrb r2, [r7]
|
||||
mov r7, r8
|
||||
ldrb r3, [r7]
|
||||
mov r7, r9
|
||||
str r7, [sp]
|
||||
str r4, [sp, 0x4]
|
||||
str r6, [sp, 0x8]
|
||||
bl sub_80053AC
|
||||
b _0806CD76
|
||||
.align 2, 0
|
||||
_0806CD40: .4byte gDungeon
|
||||
_0806CD44: .4byte 0x00018210
|
||||
_0806CD48: .4byte 0x000181f8
|
||||
_0806CD4C:
|
||||
ldr r0, _0806CD8C
|
||||
bl sub_80687D0
|
||||
adds r4, r0, 0
|
||||
bl Rand32Bit
|
||||
movs r1, 0x3
|
||||
ands r1, r0
|
||||
adds r0, r5, 0
|
||||
adds r0, 0x28
|
||||
ldrb r2, [r7]
|
||||
mov r6, r8
|
||||
ldrb r3, [r6]
|
||||
mov r7, r9
|
||||
str r7, [sp]
|
||||
str r1, [sp, 0x4]
|
||||
movs r1, 0
|
||||
str r1, [sp, 0x8]
|
||||
adds r1, r4, 0
|
||||
bl sub_80053AC
|
||||
_0806CD76:
|
||||
adds r1, r5, 0
|
||||
adds r1, 0x6E
|
||||
movs r0, 0
|
||||
strb r0, [r1]
|
||||
add sp, 0xC
|
||||
pop {r3,r4}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0806CD8C: .4byte 0x000001a5
|
||||
thumb_func_end sub_806CCB4
|
||||
|
||||
.align 2,0
|
||||
|
|
|
|||
|
|
@ -1,31 +0,0 @@
|
|||
.section .rodata
|
||||
|
||||
.global gUnknown_80E1FA8
|
||||
gUnknown_80E1FA8: @ 80E1FA8
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x03, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.global gUnkData_80E1FC0
|
||||
gUnkData_80E1FC0:
|
||||
.byte 0x01, 0x00, 0x0A, 0x00
|
||||
|
||||
.global gUnknown_80E1FC4
|
||||
gUnknown_80E1FC4: @ 80E1FC4
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x06, 0x00, 0x00, 0x00
|
||||
.byte 0x02, 0x00, 0x02, 0x00
|
||||
.byte 0x1a, 0x00, 0x0a, 0x00
|
||||
.byte 0x0a, 0x00, 0x00, 0x00
|
||||
|
||||
.4byte gUnkData_80E1FC0
|
||||
|
||||
.global gUnknown_80E1FDC
|
||||
gUnknown_80E1FDC: @ 80E1FDC
|
||||
.string "Password\0"
|
||||
.align 2,0
|
||||
.string "pksdir0\0"
|
||||
.align 2,0
|
||||
|
|
@ -294,7 +294,7 @@ struct Entity
|
|||
/* 0x54 */ u16 spriteGlobalIndex;
|
||||
u8 fill56[0x64 - 0x56];
|
||||
u32 unk64;
|
||||
u16 unk68;
|
||||
s16 unk68;
|
||||
/* 0x6A */ u8 unk6A;
|
||||
/* 0x6A */ u8 unk6B;
|
||||
/* 0x6C */ u8 direction;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
#include "menu.h"
|
||||
|
||||
void sub_8012BC4(u32 x, u32 y, s32 n, s32 len, u32 param_5, u32 param_6);
|
||||
void sub_8012C60(u32 x, u32 y, u32 param_3, u32 param_4, u32 param_5);
|
||||
void sub_8012BC4(u32 x, u32 y, s32 n, s32 len, u32 color, u32 param_6);
|
||||
void sub_8012C60(u32 x, u32 y, u32 param_3, u32 color, u32 param_5);
|
||||
void sub_8012CAC(struct UnkTextStruct2 *param_1, const struct MenuItem *param_2);
|
||||
void sub_8012D08(struct UnkTextStruct2 *param_1, s32 param_2);
|
||||
void sub_8012D34(struct UnkTextStruct2 *param_1, s32 param_2);
|
||||
|
|
|
|||
|
|
@ -149,7 +149,7 @@ SECTIONS {
|
|||
src/wonder_mail_5.o(.text);
|
||||
src/wonder_mail_6.o(.text);
|
||||
src/post_office_guide.o(.text);
|
||||
asm/code_8031D70.o(.text);
|
||||
src/code_8031D70.o(.text);
|
||||
src/adventure_log.o(.text);
|
||||
src/friend_rescue.o(.text);
|
||||
asm/friend_rescue.o(.text);
|
||||
|
|
@ -431,7 +431,7 @@ SECTIONS {
|
|||
src/wonder_mail_5.o(.rodata);
|
||||
src/wonder_mail_6.o(.rodata);
|
||||
src/post_office_guide.o(.rodata);
|
||||
data/data_80E1F30.o(.rodata);
|
||||
src/code_8031D70.o(.rodata);
|
||||
src/adventure_log.o(.rodata);
|
||||
data/data_80E2068.o(.rodata);
|
||||
src/main_menu.o(.rodata);
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
#include "gba/defines.h"
|
||||
#include "global.h"
|
||||
|
||||
IWRAM_DATA u32 gUnknown_3004000 = {0};
|
||||
|
|
|
|||
184
src/code_8031D70.c
Normal file
184
src/code_8031D70.c
Normal file
|
|
@ -0,0 +1,184 @@
|
|||
#include "global.h"
|
||||
#include "constants/wonder_mail.h"
|
||||
#include "constants/colors.h"
|
||||
#include "input.h"
|
||||
#include "memory.h"
|
||||
#include "text.h"
|
||||
#include "dungeon_global_data.h"
|
||||
#include "pokemon.h"
|
||||
#include "code_8094F88.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
struct unkStruct_203B334
|
||||
{
|
||||
// size: 0x7C
|
||||
u32 mailIndex;
|
||||
u32 unk4;
|
||||
u8 fill8[0x10 - 0x8];
|
||||
u32 unk10;
|
||||
struct UnkTextStruct2 *unk14;
|
||||
struct UnkTextStruct2 unk18[4];
|
||||
u8 unk78[4];
|
||||
};
|
||||
|
||||
EWRAM_DATA_2 struct unkStruct_203B334 *gUnknown_203B334 = {0};
|
||||
extern struct unkStruct_203B480 *gUnknown_203B480;
|
||||
|
||||
const struct UnkTextStruct2 gUnknown_80E1FA8 = {
|
||||
0, 0, 0, 0,
|
||||
3,
|
||||
0x0, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0,
|
||||
0x0, 0,
|
||||
NULL
|
||||
};
|
||||
|
||||
const u8 gUnkData_80E1FC0[4] = {0x01, 0x00, 0x0A, 0x00};
|
||||
const struct UnkTextStruct2 gUnknown_80E1FC4 = {
|
||||
0, 0, 0, 0,
|
||||
6,
|
||||
0x2, 0x0, 0x2, 0x0,
|
||||
0x1A, 0xA,
|
||||
0xA, 0,
|
||||
gUnkData_80E1FC0
|
||||
};
|
||||
|
||||
ALIGNED(4) const u8 gUnknown_80E1FDC[] = "Password";
|
||||
ALIGNED(4) static const u8 fill0[] = "pksdir0";
|
||||
|
||||
extern void xxx_call_draw_string(s32, s32, const u8 *, s32, s32);
|
||||
extern void sub_8008C54(u32);
|
||||
extern void sub_80073B8(u32);
|
||||
extern void sub_80073E0(u32);
|
||||
extern void sub_80078A4(u32, u32, u32, u32, u32);
|
||||
extern void sub_803D2C0(u8 *, struct unkStruct_203B480 *);
|
||||
extern void sub_801317C(u32 *);
|
||||
extern u32 sub_8012A64(u32 *, u32);
|
||||
extern void PlayMenuSoundEffect(u32);
|
||||
|
||||
void sub_8031E00(void);
|
||||
void sub_8031E58(void);
|
||||
void DrawSOSPasswordScreen(void);
|
||||
|
||||
bool8 sub_8031D70(u32 mailIndex, s32 param_2)
|
||||
{
|
||||
gUnknown_203B334 = MemoryAlloc(sizeof(struct unkStruct_203B334),8);
|
||||
gUnknown_203B334->mailIndex = mailIndex;
|
||||
sub_801317C(&gUnknown_203B334->unk4);
|
||||
gUnknown_203B334->unk10 = param_2;
|
||||
gUnknown_203B334->unk14 = &gUnknown_203B334->unk18[param_2];
|
||||
sub_8006518(gUnknown_203B334->unk18);
|
||||
gUnknown_203B334->unk18[gUnknown_203B334->unk10] = gUnknown_80E1FC4;
|
||||
sub_8031E00();
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
u32 sub_8031DCC(void)
|
||||
{
|
||||
switch(sub_8012A64(&gUnknown_203B334->unk4, gUnknown_203B334->unk10))
|
||||
{
|
||||
case 2:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
case 1:
|
||||
PlayMenuSoundEffect(0);
|
||||
return 3;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8031E00(void)
|
||||
{
|
||||
sub_8031E58();
|
||||
DrawSOSPasswordScreen();
|
||||
}
|
||||
|
||||
void sub_8031E10(void)
|
||||
{
|
||||
if(gUnknown_203B334)
|
||||
{
|
||||
gUnknown_203B334->unk18[gUnknown_203B334->unk10] = gUnknown_80E1FA8;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B334->unk18, 1, 1);
|
||||
MemoryFree(gUnknown_203B334);
|
||||
gUnknown_203B334 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8031E58(void)
|
||||
{
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B334->unk18, 1, 1);
|
||||
}
|
||||
|
||||
void DrawSOSPasswordScreen(void)
|
||||
{
|
||||
int rowIndex;
|
||||
u32 x;
|
||||
u32 y;
|
||||
u32 color;
|
||||
s32 index;
|
||||
u8 buffer [PASSWORD_BUFFER_SIZE + 2];
|
||||
struct unkStruct_203B480 *mail;
|
||||
|
||||
mail = &gUnknown_203B480[gUnknown_203B334->mailIndex];
|
||||
sub_80073B8(gUnknown_203B334->unk10);
|
||||
xxx_call_draw_string(0x14,0,gUnknown_80E1FDC,gUnknown_203B334->unk10,0); // Password
|
||||
sub_803D2C0(buffer, mail);
|
||||
for(index = 0; index < PASSWORD_BUFFER_SIZE; index++)
|
||||
{
|
||||
if (index < 5) {
|
||||
color = COLOR_WHITE_2;
|
||||
y = 0x15;
|
||||
}
|
||||
else if (index < 0xd) {
|
||||
color = COLOR_YELLOW;
|
||||
y = 0x16;
|
||||
}
|
||||
else if (index < 0x12)
|
||||
{
|
||||
color = COLOR_WHITE_2;
|
||||
y = 0x15;
|
||||
}
|
||||
else if (index < 0x17) {
|
||||
color = COLOR_WHITE_2;
|
||||
y = 0x24;
|
||||
}
|
||||
else if (index < 0x1f) {
|
||||
color = COLOR_YELLOW;
|
||||
y = 0x25;
|
||||
}
|
||||
else if (index < 0x24)
|
||||
{
|
||||
color = COLOR_WHITE_2;
|
||||
y = 0x24;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(index > 0x28)
|
||||
{
|
||||
if(index < 0x31)
|
||||
{
|
||||
color = COLOR_YELLOW;
|
||||
y = 0x34;
|
||||
}
|
||||
else
|
||||
{
|
||||
color = COLOR_WHITE_2;
|
||||
y = 0x33;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
color = COLOR_WHITE_2;
|
||||
y = 0x33;
|
||||
}
|
||||
}
|
||||
rowIndex = index % 0x12;
|
||||
x = rowIndex * 0xb + 6;
|
||||
sub_8012C60(x,y,buffer[index],color,gUnknown_203B334->unk10); // Draw character
|
||||
sub_80078A4(gUnknown_203B334->unk10,x,y + 0xA,10,COLOR_CYAN); // Draw underscore beneath character
|
||||
}
|
||||
sub_80073E0(gUnknown_203B334->unk10);
|
||||
}
|
||||
|
|
@ -6,16 +6,77 @@
|
|||
#include "dungeon_util.h"
|
||||
#include "pokemon.h"
|
||||
#include "tile_types.h"
|
||||
#include "random.h"
|
||||
|
||||
extern u8 sub_806CEBC(struct Entity *);
|
||||
extern void sub_806CCB4(struct Entity *, u8);
|
||||
extern void sub_803E46C(u32);
|
||||
extern bool8 sub_808DA44(s32 a1_, u32 a2_);
|
||||
extern u32 sub_806CF98(struct Entity *);
|
||||
extern u32 sub_80687D0(s16);
|
||||
void sub_80053AC(u8 *, s32, u32, u32, u32, u32, u8);
|
||||
void sub_806CDD4(struct Entity *, u8, u32);
|
||||
|
||||
extern const u8 gUnknown_8106EEF[];
|
||||
extern const u8 gDungeonWaterType[];
|
||||
|
||||
void sub_806CC10(void)
|
||||
{
|
||||
struct EntityInfo *entityInfo;
|
||||
struct Entity *entity;
|
||||
s32 index;
|
||||
|
||||
for(index = 0; index < DUNGEON_MAX_POKEMON; index++)
|
||||
{
|
||||
entity = gDungeon->allPokemon[index];
|
||||
if (EntityExists(entity)) {
|
||||
entityInfo = entity->info;
|
||||
|
||||
if ((entityInfo->unk166 != 0) && (entityInfo->unk166--, (entityInfo->unk166 & 1) == 0)) {
|
||||
sub_806CDD4(entity,0, (entityInfo->action.direction - 1) & 7);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_806CC70(void)
|
||||
{
|
||||
s32 index;
|
||||
struct Entity *entity;
|
||||
for(index = 0; index < DUNGEON_MAX_POKEMON; index++)
|
||||
{
|
||||
entity = gDungeon->allPokemon[index];
|
||||
if(EntityExists(entity))
|
||||
sub_806CCB4(entity, sub_806CEBC(entity));
|
||||
}
|
||||
}
|
||||
|
||||
void sub_806CCB4(struct Entity *entity, u8 param_2)
|
||||
{
|
||||
s32 sVar1;
|
||||
bool8 flag;
|
||||
struct EntityInfo *info;
|
||||
|
||||
info = entity->info;
|
||||
flag = gDungeon->hallucinating;
|
||||
if (entity == gDungeon->cameraTarget) {
|
||||
flag = FALSE;
|
||||
}
|
||||
entity->unk6B = param_2;
|
||||
entity->unk6A = param_2;
|
||||
entity->direction2 = info->action.direction;
|
||||
entity->direction = info->action.direction;
|
||||
entity->unk6F = 0;
|
||||
sVar1 = entity->unk68;
|
||||
if ((info->waitingStatus != STATUS_DECOY) && (!flag)) {
|
||||
sub_80053AC(entity->fill28,entity->unk64,entity->unk6A,entity->direction,sVar1,Rand32Bit() & 3,0);
|
||||
}
|
||||
else {
|
||||
sub_80053AC(entity->fill28,sub_80687D0(0x1a5),entity->unk6A,entity->direction,sVar1,Rand32Bit() & 3,0);
|
||||
}
|
||||
entity->unk6E = 0;
|
||||
}
|
||||
|
||||
void sub_806CD90(void)
|
||||
{
|
||||
s32 index;
|
||||
|
|
@ -28,22 +89,22 @@ void sub_806CD90(void)
|
|||
}
|
||||
}
|
||||
|
||||
void sub_806CDD4(struct Entity *r0, u8 r1, u32 r2)
|
||||
void sub_806CDD4(struct Entity *entity, u8 r1, u32 r2)
|
||||
{
|
||||
if(GetEntityType(r0) == ENTITY_MONSTER)
|
||||
if(GetEntityType(entity) == ENTITY_MONSTER)
|
||||
{
|
||||
r0->unk6A = r1;
|
||||
if(r2 < NUM_DIRECTIONS) r0->direction = r2;
|
||||
entity->unk6A = r1;
|
||||
if(r2 < NUM_DIRECTIONS) entity->direction = r2;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_806CDFC(struct Entity *r0, u8 r1, u32 r2)
|
||||
void sub_806CDFC(struct Entity *entity, u8 r1, u32 r2)
|
||||
{
|
||||
if(GetEntityType(r0) == ENTITY_MONSTER)
|
||||
if(GetEntityType(entity) == ENTITY_MONSTER)
|
||||
{
|
||||
if(r0->unk6B == r1)
|
||||
if(entity->unk6B == r1)
|
||||
{
|
||||
if(r0->direction2 == r2)
|
||||
if(entity->direction2 == r2)
|
||||
return;
|
||||
else
|
||||
goto change_dir;
|
||||
|
|
@ -51,57 +112,57 @@ void sub_806CDFC(struct Entity *r0, u8 r1, u32 r2)
|
|||
else
|
||||
{
|
||||
change_dir:
|
||||
sub_806CDD4(r0, r1, r2);
|
||||
sub_806CDD4(entity, r1, r2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_806CE34(struct Entity *r0, u32 newDir)
|
||||
void sub_806CE34(struct Entity *entity, u32 newDir)
|
||||
{
|
||||
if(GetEntityType(r0) == ENTITY_MONSTER)
|
||||
if(GetEntityType(entity) == ENTITY_MONSTER)
|
||||
{
|
||||
r0->unk6A = sub_806CEBC(r0);
|
||||
entity->unk6A = sub_806CEBC(entity);
|
||||
if(newDir < NUM_DIRECTIONS)
|
||||
{
|
||||
r0->info->action.direction = newDir & DIRECTION_MASK;
|
||||
r0->direction = newDir & DIRECTION_MASK;
|
||||
entity->info->action.direction = newDir & DIRECTION_MASK;
|
||||
entity->direction = newDir & DIRECTION_MASK;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_806CE68(struct Entity *r0, u32 newDir)
|
||||
void sub_806CE68(struct Entity *entity, u32 newDir)
|
||||
{
|
||||
if(GetEntityType(r0) == ENTITY_MONSTER)
|
||||
if(GetEntityType(entity) == ENTITY_MONSTER)
|
||||
{
|
||||
r0->unk6A = sub_806CEBC(r0);
|
||||
entity->unk6A = sub_806CEBC(entity);
|
||||
if(newDir < NUM_DIRECTIONS)
|
||||
{
|
||||
r0->direction = newDir;
|
||||
entity->direction = newDir;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_806CE94(struct Entity *r0, u32 newDir)
|
||||
void sub_806CE94(struct Entity *entity, u32 newDir)
|
||||
{
|
||||
if(GetEntityType(r0) == ENTITY_MONSTER)
|
||||
if(GetEntityType(entity) == ENTITY_MONSTER)
|
||||
{
|
||||
r0->unk6A = 6;
|
||||
entity->unk6A = 6;
|
||||
if(newDir < NUM_DIRECTIONS)
|
||||
{
|
||||
r0->direction = newDir;
|
||||
entity->direction = newDir;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
u8 sub_806CEBC(struct Entity *param_1)
|
||||
u8 sub_806CEBC(struct Entity *entity)
|
||||
{
|
||||
u8 sleep;
|
||||
struct EntityInfo * entityInfo1;
|
||||
struct EntityInfo * entityInfo2;
|
||||
|
||||
// NOTE: copy needed to match
|
||||
entityInfo1 = param_1->info;
|
||||
entityInfo2 = param_1->info;
|
||||
entityInfo1 = entity->info;
|
||||
entityInfo2 = entity->info;
|
||||
sleep = entityInfo1->sleep;
|
||||
|
||||
if ((sleep == STATUS_SLEEP) || (sleep == STATUS_NAPPING) || (sleep == STATUS_NIGHTMARE)) {
|
||||
|
|
@ -117,57 +178,57 @@ u8 sub_806CEBC(struct Entity *param_1)
|
|||
return 0x7;
|
||||
}
|
||||
|
||||
void sub_806CEFC(struct Entity *param_1, u32 newDir)
|
||||
void sub_806CEFC(struct Entity *entity, u32 newDir)
|
||||
{
|
||||
param_1->info->action.direction = newDir & DIRECTION_MASK;
|
||||
sub_806CE68(param_1, (newDir & DIRECTION_MASK));
|
||||
entity->info->action.direction = newDir & DIRECTION_MASK;
|
||||
sub_806CE68(entity, (newDir & DIRECTION_MASK));
|
||||
}
|
||||
|
||||
void sub_806CF18(struct Entity *param_1)
|
||||
void sub_806CF18(struct Entity *entity)
|
||||
{
|
||||
s32 index;
|
||||
struct EntityInfo *entityInfo;
|
||||
|
||||
if (EntityExists(param_1)) {
|
||||
entityInfo = param_1->info;
|
||||
if (EntityExists(entity)) {
|
||||
entityInfo = entity->info;
|
||||
for (index = 0; index < 100; index++) {
|
||||
sub_803E46C(0x21);
|
||||
if (!sub_808DA44(entityInfo->apparentID, param_1->unk6B)) {
|
||||
if (!sub_808DA44(entityInfo->apparentID, entity->unk6B)) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
u8 sub_806CF54(struct Entity *param_1)
|
||||
u8 sub_806CF54(struct Entity *entity)
|
||||
{
|
||||
return param_1->info->unk204;
|
||||
return entity->info->unk204;
|
||||
}
|
||||
|
||||
void sub_806CF60(void)
|
||||
{
|
||||
struct Entity *uVar2;
|
||||
struct Entity *entity;
|
||||
s32 index;
|
||||
|
||||
for(index = 0; index < DUNGEON_MAX_POKEMON; index++)
|
||||
{
|
||||
uVar2 = gDungeon->allPokemon[index];
|
||||
if (EntityExists(uVar2)) {
|
||||
sub_806CF98(uVar2);
|
||||
entity = gDungeon->allPokemon[index];
|
||||
if (EntityExists(entity)) {
|
||||
sub_806CF98(entity);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
u32 sub_806CF98(struct Entity *param_1)
|
||||
u32 sub_806CF98(struct Entity *entity)
|
||||
{
|
||||
struct Tile *mapTile;
|
||||
u32 uVar3;
|
||||
u16 terrainType;
|
||||
struct EntityInfo *entityInfo;
|
||||
|
||||
mapTile = GetTileAtEntitySafe(param_1);
|
||||
mapTile = GetTileAtEntitySafe(entity);
|
||||
terrainType = mapTile->terrainType & (TERRAIN_TYPE_NORMAL | TERRAIN_TYPE_SECONDARY);
|
||||
entityInfo = param_1->info;
|
||||
entityInfo = entity->info;
|
||||
uVar3 = GetShadowSize(entityInfo->apparentID);
|
||||
if (terrainType == (TERRAIN_TYPE_NORMAL | TERRAIN_TYPE_SECONDARY)) {
|
||||
return 6;
|
||||
|
|
|
|||
|
|
@ -8,15 +8,15 @@
|
|||
#include "save.h"
|
||||
#include "text_util.h"
|
||||
|
||||
extern struct unkStruct_203B480 gUnknown_2038C88;
|
||||
extern struct unkStruct_203B480 *gUnknown_203B480;
|
||||
extern struct unkStruct_203B484 gUnknown_2039288;
|
||||
extern struct unkStruct_203B484 *gUnknown_203B484;
|
||||
extern struct unkStruct_203B48C gUnknown_20393C0;
|
||||
extern struct unkStruct_203B48C *gUnknown_203B48C;
|
||||
extern u32 *gUnknown_203B488;
|
||||
extern u32 gUnknown_20392E8;
|
||||
EWRAM_DATA_2 struct unkStruct_203B480 *gUnknown_203B480 = {0};
|
||||
EWRAM_DATA_2 struct unkStruct_203B484 *gUnknown_203B484 = {0};
|
||||
EWRAM_DATA_2 u32 *gUnknown_203B488 = {0};
|
||||
EWRAM_DATA_2 struct unkStruct_203B48C *gUnknown_203B48C = {0};
|
||||
|
||||
extern struct unkStruct_203B480 gUnknown_2038C88;
|
||||
extern struct unkStruct_203B484 gUnknown_2039288;
|
||||
extern u32 gUnknown_20392E8;
|
||||
extern struct unkStruct_203B48C gUnknown_20393C0;
|
||||
|
||||
extern void SaveDungeonLocation(struct unkStruct_8094924*, struct DungeonLocation*);
|
||||
extern void RestoreDungeonLocation(struct unkStruct_8094924*, struct DungeonLocation*);
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ extern void ResetPelipperBoardSlot(u8);
|
|||
extern void ResetJobSlot(u8);
|
||||
extern bool8 ValidateWonderMail(struct WonderMail *);
|
||||
|
||||
extern struct unkStruct_203B490 *gUnknown_203B490;
|
||||
EWRAM_DATA_2 struct unkStruct_203B490 *gUnknown_203B490 = {0};
|
||||
extern struct unkStruct_203B490 gUnknown_2039448;
|
||||
|
||||
void LoadMailInfo(void)
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
struct unkStruct_203B494
|
||||
{
|
||||
// size: 0xC8?
|
||||
// size: 0xC4
|
||||
u32 unk0; // 32 bit bitfield, I think
|
||||
s32 numAdventures;
|
||||
s32 unk8;
|
||||
|
|
@ -18,8 +18,8 @@ struct unkStruct_203B494
|
|||
s32 unkC0;
|
||||
};
|
||||
|
||||
extern struct unkStruct_203B494 *gUnknown_203B494;
|
||||
extern struct unkStruct_203B494 gUnknown_2039778;
|
||||
EWRAM_DATA_2 struct unkStruct_203B494 *gUnknown_203B494 = {0};
|
||||
EWRAM_DATA struct unkStruct_203B494 gUnknown_2039778 = {0};
|
||||
extern const u8 *gAdventureLogText[];
|
||||
s16 GetBaseSpeciesNoUnown(s16 index);
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
#include "text_util.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
extern struct DebugMenu *gUnknown_203B3EC;
|
||||
EWRAM_DATA_2 struct DebugMenu *gUnknown_203B3EC = {0};
|
||||
|
||||
const struct UnkTextStruct2 gUnknown_80E7D40 =
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
#include "gba/defines.h"
|
||||
#include "global.h"
|
||||
#include "game_options.h"
|
||||
#include "code_8092334.h"
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ struct unkStruct_203B4B8
|
|||
u32 unk0;
|
||||
};
|
||||
|
||||
extern struct unkStruct_203B4B8 gUnknown_203B4B8;
|
||||
EWRAM_DATA_2 struct unkStruct_203B4B8 gUnknown_203B4B8 = {0};
|
||||
extern struct DebugLocation gUnknown_8118798;
|
||||
extern struct unkStruct_80A77D0 *sub_80A77D0(s16 r0, struct DebugLocation *r1);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
#include "global.h"
|
||||
#include "constants/colors.h"
|
||||
#include "file_system.h"
|
||||
#include "item.h"
|
||||
#include "moves.h"
|
||||
|
|
@ -703,7 +704,7 @@ u32 sub_80913E0(struct Item* slot, u32 a2, struct subStruct_203B240 ** a3)
|
|||
u32 result;
|
||||
|
||||
InitPokemonMove(buffer8, move);
|
||||
sub_80078A4(a2, 4, 82, 200, 7);
|
||||
sub_80078A4(a2, 4, 82, 200, COLOR_WHITE_2);
|
||||
xxx_format_and_draw(4, 84, gPtrTypeText, a2, 0);
|
||||
moves_data = GetMoveType(buffer8);
|
||||
typestring = GetUnformattedTypeString(moves_data);
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
#include "gba/defines.h"
|
||||
#include "global.h"
|
||||
#include "constants/bg_music.h"
|
||||
#include "constants/colors.h"
|
||||
|
|
|
|||
|
|
@ -7,22 +7,7 @@
|
|||
#include "wonder_mail.h"
|
||||
#include "menu_input.h"
|
||||
|
||||
|
||||
extern u8 *gUnknown_80D4990[];
|
||||
extern u8 *gUnknown_80D4970[];
|
||||
|
||||
extern bool8 IsMailinJobSlot(struct WonderMail *mail);
|
||||
|
||||
void sub_802E578(void);
|
||||
void HandleMailActionMenu(void);
|
||||
void HandleMailboxMenu(void);
|
||||
void nullsub_133(void);
|
||||
void sub_802E0A0(void);
|
||||
void sub_802E1AC(void);
|
||||
void sub_802E73C(void);
|
||||
void sub_802E758(void);
|
||||
void sub_802E774(void);
|
||||
void sub_802E7D0(void);
|
||||
EWRAM_DATA_2 struct unkStruct_203B304 *gUnknown_203B304 = {0};
|
||||
|
||||
const struct UnkTextStruct2 gUnknown_80E0284 =
|
||||
{
|
||||
|
|
@ -73,11 +58,24 @@ const u8 gMailAccepted[] = "Accepted";
|
|||
const u8 gUnknown_80E0324[] = "/";
|
||||
static const u8 mailbox_fill[] = "pksdir0";
|
||||
|
||||
extern struct unkStruct_203B304 *gUnknown_203B304;
|
||||
extern u8 *gUnknown_80D4990[];
|
||||
extern u8 *gUnknown_80D4970[];
|
||||
|
||||
extern bool8 IsMailinJobSlot(struct WonderMail *mail);
|
||||
|
||||
void sub_802E578(void);
|
||||
void HandleMailActionMenu(void);
|
||||
void HandleMailboxMenu(void);
|
||||
void nullsub_133(void);
|
||||
void sub_802E0A0(void);
|
||||
void sub_802E1AC(void);
|
||||
void sub_802E73C(void);
|
||||
void sub_802E758(void);
|
||||
void sub_802E774(void);
|
||||
void sub_802E7D0(void);
|
||||
extern void sub_802E088(u32);
|
||||
extern void CreateMailboxMenu(void);
|
||||
extern void CreateMailActionMenu(void);
|
||||
|
||||
extern void sub_802BD14(u32, u32, u32);
|
||||
extern void sub_802BE94(u32);
|
||||
extern void CreateMailMenu(void);
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ extern void xxx_call_draw_char(u32, u32, u32, u32, u32);
|
|||
|
||||
const u32 gDefaultMenuTextColors[] = { COLOR_WHITE_2, COLOR_RED, COLOR_RED };
|
||||
|
||||
void sub_8012BC4(u32 x, u32 y, s32 n, s32 len, u32 param_5, u32 param_6)
|
||||
void sub_8012BC4(u32 x, u32 y, s32 n, s32 len, u32 color, u32 param_6)
|
||||
{
|
||||
s32 iVar1;
|
||||
u32 uVar2;
|
||||
|
|
@ -74,7 +74,7 @@ void sub_8012BC4(u32 x, u32 y, s32 n, s32 len, u32 param_5, u32 param_6)
|
|||
uVar2 = ReturnIntFromChar2(iVar1 + 0x30);
|
||||
iVar3 = GetCharacter(uVar2);
|
||||
total_x += iVar3->unk6;
|
||||
xxx_call_draw_char(x - total_x,y,uVar2,param_5,param_6);
|
||||
xxx_call_draw_char(x - total_x,y,uVar2,color,param_6);
|
||||
counter++;
|
||||
if (counter >= len) {
|
||||
break;
|
||||
|
|
@ -83,7 +83,7 @@ void sub_8012BC4(u32 x, u32 y, s32 n, s32 len, u32 param_5, u32 param_6)
|
|||
}
|
||||
}
|
||||
|
||||
void sub_8012C60(u32 x,u32 y,u32 param_3,u32 param_4,u32 param_5)
|
||||
void sub_8012C60(u32 x,u32 y,u32 param_3,u32 color,u32 param_5)
|
||||
{
|
||||
u32 add_x;
|
||||
struct unkChar *iVar3;
|
||||
|
|
@ -97,7 +97,7 @@ void sub_8012C60(u32 x,u32 y,u32 param_3,u32 param_4,u32 param_5)
|
|||
else {
|
||||
add_x = 0;
|
||||
}
|
||||
xxx_call_draw_char(x + add_x,y,uVar2,param_4,param_5);
|
||||
xxx_call_draw_char(x + add_x,y,uVar2,color,param_5);
|
||||
}
|
||||
|
||||
void sub_8012CAC(struct UnkTextStruct2 *param_1, const struct MenuItem *param_2)
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@
|
|||
#include "code_809447C.h"
|
||||
#include "text_util.h"
|
||||
|
||||
#include "constants/colors.h"
|
||||
#include "constants/monster.h"
|
||||
#include "file_system.h"
|
||||
#include "code_800D090.h"
|
||||
|
|
@ -1451,7 +1452,7 @@ void unk_MovePrintData(struct Move* move, int y) {
|
|||
s32 power;
|
||||
const char* text;
|
||||
|
||||
sub_80078A4(y, 4, 72, 200, 7);
|
||||
sub_80078A4(y, 4, 72, 200, COLOR_WHITE_2);
|
||||
sub_8092D54(gAvailablePokemonNames, move);
|
||||
xxx_format_and_draw(4, 74, gUnknown_810CF00, y, 0);
|
||||
xxx_format_and_draw(4, 86, gPtrTypeText, y, 0);
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
#include "global.h"
|
||||
#include "constants/input.h"
|
||||
#include "constants/colors.h"
|
||||
#include "input.h"
|
||||
#include "memory.h"
|
||||
#include "text.h"
|
||||
|
|
@ -662,17 +663,17 @@ void CreateOptionsMenu(void)
|
|||
case WINDOW_COLOR_BLUE:
|
||||
length = sub_8008ED0(gWindowBGBlueString);
|
||||
sub_80078A4(gUnknown_203B260->unk44,gUnknown_203B260->optionsMenu->windowColor * 0x28 + 0x50,
|
||||
y + 0xA,length,7);
|
||||
y + 0xA,length,COLOR_WHITE_2);
|
||||
break;
|
||||
case WINDOW_COLOR_RED:
|
||||
length = sub_8008ED0(gWindowBGRedString);
|
||||
sub_80078A4(gUnknown_203B260->unk44,gUnknown_203B260->optionsMenu->windowColor * 0x28 + 0x50,
|
||||
y + 0xA,length,7);
|
||||
y + 0xA,length,COLOR_WHITE_2);
|
||||
break;
|
||||
case WINDOW_COLOR_GREEN:
|
||||
length = sub_8008ED0(gWindowBGGreenString);
|
||||
sub_80078A4(gUnknown_203B260->unk44,gUnknown_203B260->optionsMenu->windowColor * 0x28 + 0x50,
|
||||
y + 0xA,length,7);
|
||||
y + 0xA,length,COLOR_WHITE_2);
|
||||
break;
|
||||
}
|
||||
sub_80073E0(gUnknown_203B260->unk44);
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
#include "gba/defines.h"
|
||||
#include "global.h"
|
||||
#include "constants/dungeon.h"
|
||||
#include "item.h"
|
||||
|
|
|
|||
|
|
@ -620,7 +620,7 @@ void sub_808DFDC(s32 a1, struct PokemonStruct2* a2)
|
|||
}
|
||||
}
|
||||
|
||||
void GetPokemonLevelData(struct LevelData* a1, s16 _id, s32 a3)
|
||||
void GetPokemonLevelData(struct LevelData* a1, s16 _id, s32 level)
|
||||
{
|
||||
u8 buffer[12];
|
||||
s32 id = _id;
|
||||
|
|
@ -636,11 +636,11 @@ void GetPokemonLevelData(struct LevelData* a1, s16 _id, s32 a3)
|
|||
DecompressATFile((char*)gLevelCurrentData, 0, file);
|
||||
CloseFile(file);
|
||||
}
|
||||
a3 -= 1;
|
||||
if ( a3 < 0 )
|
||||
a3 = 0;
|
||||
level -= 1;
|
||||
if ( level < 0 )
|
||||
level = 0;
|
||||
|
||||
*a1 = gLevelCurrentData[a3];
|
||||
*a1 = gLevelCurrentData[level];
|
||||
}
|
||||
|
||||
u8* DecompressMoveID(u8* a1, u16* moveID)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
#include "gba/defines.h"
|
||||
#include "global.h"
|
||||
#include "input.h"
|
||||
#include "menu.h"
|
||||
|
|
|
|||
|
|
@ -118,7 +118,7 @@ struct unkStruct_203B3E8
|
|||
bool8 wonderMailAccepted;
|
||||
};
|
||||
|
||||
EWRAM_DATA struct unkStruct_203B3E8 *gUnknown_203B3E8;
|
||||
EWRAM_DATA_2 struct unkStruct_203B3E8 *gUnknown_203B3E8 = {0};
|
||||
|
||||
extern u32 sub_80144A4(s32 *);
|
||||
extern u32 sub_8011C1C(void);
|
||||
|
|
|
|||
|
|
@ -829,9 +829,8 @@ gUnknown_20393C0: /* 20393C0 */
|
|||
gUnknown_2039448: /* 2039448 */
|
||||
.space 0x330
|
||||
|
||||
gUnknown_2039778: /* 2039778 */
|
||||
.space 0xC8
|
||||
|
||||
.include "src/code_8097670.o"
|
||||
.space 0x4
|
||||
.include "src/exclusive_pokemon.o"
|
||||
.space 0x4
|
||||
|
||||
|
|
|
|||
|
|
@ -341,9 +341,7 @@ gUnknown_203B2FC: /* 203B2FC */
|
|||
gUnknown_203B300: /* 203B300 */
|
||||
.space 0x4
|
||||
|
||||
gUnknown_203B304: /* 203B304 */
|
||||
.space 0x4
|
||||
|
||||
.include "src/mailbox.o"
|
||||
.include "src/pelipper_board.o"
|
||||
|
||||
gUnknown_203B30C: /* 203B30C */
|
||||
|
|
@ -371,10 +369,7 @@ gUnknown_203B328: /* 203B328 */
|
|||
.space 0x4
|
||||
|
||||
.include "src/post_office_guide.o"
|
||||
|
||||
gUnknown_203B334: /* 203B334 */
|
||||
.space 0x4
|
||||
|
||||
.include "src/code_8031D70.o"
|
||||
.include "src/adventure_log.o"
|
||||
.include "src/friend_rescue.o"
|
||||
|
||||
|
|
@ -398,14 +393,9 @@ gUnknown_203B364: /* 203B364 */
|
|||
.space 0x4
|
||||
|
||||
.include "src/rescue_password_menu.o"
|
||||
|
||||
.include "src/load_screen.o"
|
||||
|
||||
gUnknown_203B3E8: /* 203B3E8 */
|
||||
.space 0x4
|
||||
|
||||
gUnknown_203B3EC: /* 203B3EC */
|
||||
.space 0x4
|
||||
.include "src/wonder_mail_main_menu.o"
|
||||
.include "src/debug_menu.o"
|
||||
|
||||
gUnknown_203B3F0: /* 203B3F0 */
|
||||
.space 0x4
|
||||
|
|
@ -484,27 +474,10 @@ gUnknown_203B474: /* 203B474 */
|
|||
.space 0x8
|
||||
|
||||
.include "src/play_time.o"
|
||||
|
||||
gUnknown_203B480: /* 203B480 */
|
||||
.space 0x4
|
||||
|
||||
gUnknown_203B484: /* 203B484 */
|
||||
.space 0x4
|
||||
|
||||
gUnknown_203B488: /* 203B488 */
|
||||
.space 0x4
|
||||
|
||||
gUnknown_203B48C: /* 203B48C */
|
||||
.space 0x4
|
||||
|
||||
gUnknown_203B490: /* 203B490 */
|
||||
.space 0x4
|
||||
|
||||
gUnknown_203B494: /* 203B494 */
|
||||
.space 0x4
|
||||
|
||||
.include "src/code_8094F88.o"
|
||||
.include "src/code_80958E8.o"
|
||||
.include "src/code_8097670.o"
|
||||
.include "src/exclusive_pokemon.o"
|
||||
|
||||
.include "src/ground_main.o"
|
||||
.space 0x2
|
||||
|
||||
|
|
@ -520,5 +493,4 @@ gUnknown_203B4B0: /* 203B4B0 */
|
|||
gUnknown_203B4B4: /* 203B4B4 */
|
||||
.space 0x4
|
||||
|
||||
gUnknown_203B4B8: /* 203B4B8 */
|
||||
.space 0x4
|
||||
.include "src/ground_link.o"
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user