mirror of
https://github.com/pret/pmd-red.git
synced 2026-06-20 11:31:54 -05:00
more decomp work
This commit is contained in:
parent
debc2723b3
commit
ea36235ecd
|
|
@ -5,405 +5,6 @@
|
|||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8023420
|
||||
sub_8023420:
|
||||
push {r4,r5,lr}
|
||||
ldr r4, _080234A8
|
||||
ldr r0, [r4]
|
||||
movs r1, 0xFE
|
||||
lsls r1, 2
|
||||
adds r0, r1
|
||||
movs r2, 0
|
||||
movs r1, 0x1
|
||||
strb r1, [r0]
|
||||
ldr r0, [r4]
|
||||
ldr r1, _080234AC
|
||||
adds r0, r1
|
||||
strb r2, [r0]
|
||||
ldr r0, [r4]
|
||||
adds r1, 0x1
|
||||
adds r0, r1
|
||||
movs r1, 0xC
|
||||
strb r1, [r0]
|
||||
ldr r0, [r4]
|
||||
ldr r1, _080234B0
|
||||
adds r0, r1
|
||||
strb r2, [r0]
|
||||
ldr r0, [r4]
|
||||
ldr r2, _080234B4
|
||||
adds r0, r2
|
||||
movs r1, 0
|
||||
ldrsh r0, [r0, r1]
|
||||
movs r1, 0xC
|
||||
bl sub_80095E4
|
||||
adds r0, 0x2
|
||||
ldr r3, [r4]
|
||||
movs r2, 0xE4
|
||||
lsls r2, 2
|
||||
adds r5, r3, r2
|
||||
ldr r2, [r5]
|
||||
lsls r1, r2, 1
|
||||
adds r1, r2
|
||||
lsls r1, 3
|
||||
adds r1, r3, r1
|
||||
ldr r2, _080234B8
|
||||
adds r1, r2
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
strh r0, [r1]
|
||||
ldr r2, [r5]
|
||||
lsls r1, r2, 1
|
||||
adds r1, r2
|
||||
lsls r1, 3
|
||||
adds r3, r1
|
||||
movs r1, 0xEA
|
||||
lsls r1, 2
|
||||
adds r3, r1
|
||||
strh r0, [r3]
|
||||
bl ResetUnusedInputStruct
|
||||
ldr r0, [r4]
|
||||
movs r2, 0xE6
|
||||
lsls r2, 2
|
||||
adds r0, r2
|
||||
movs r1, 0x1
|
||||
movs r2, 0x1
|
||||
bl sub_800641C
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080234A8: .4byte gUnknown_3001B5C
|
||||
_080234AC: .4byte 0x000003f9
|
||||
_080234B0: .4byte 0x000003fb
|
||||
_080234B4: .4byte 0x00000376
|
||||
_080234B8: .4byte 0x000003a6
|
||||
thumb_func_end sub_8023420
|
||||
|
||||
thumb_func_start sub_80234BC
|
||||
sub_80234BC:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
sub sp, 0x178
|
||||
ldr r5, _0802368C
|
||||
ldr r0, [r5]
|
||||
movs r4, 0xE4
|
||||
lsls r4, 2
|
||||
adds r0, r4
|
||||
ldr r0, [r0]
|
||||
bl sub_8008C54
|
||||
ldr r0, [r5]
|
||||
adds r0, r4
|
||||
ldr r0, [r0]
|
||||
bl sub_80073B8
|
||||
ldr r2, _08023690
|
||||
ldr r0, [r5]
|
||||
adds r0, r4
|
||||
ldr r3, [r0]
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
movs r0, 0xA
|
||||
movs r1, 0
|
||||
bl xxx_call_draw_string
|
||||
ldr r3, [r5]
|
||||
ldr r1, _08023694
|
||||
adds r0, r3, r1
|
||||
ldrb r0, [r0]
|
||||
lsls r0, 3
|
||||
adds r0, 0x4
|
||||
ldr r2, _08023698
|
||||
adds r1, r3, r2
|
||||
movs r6, 0
|
||||
ldrsh r2, [r1, r6]
|
||||
adds r2, 0x1
|
||||
movs r1, 0x7
|
||||
str r1, [sp]
|
||||
adds r3, r4
|
||||
ldr r1, [r3]
|
||||
str r1, [sp, 0x4]
|
||||
movs r1, 0
|
||||
movs r3, 0x2
|
||||
bl sub_8012BC4
|
||||
movs r0, 0
|
||||
mov r10, r0
|
||||
ldr r0, [r5]
|
||||
ldr r1, _0802369C
|
||||
adds r0, r1
|
||||
movs r2, 0
|
||||
ldrsh r0, [r0, r2]
|
||||
cmp r10, r0
|
||||
blt _08023532
|
||||
b _0802366C
|
||||
_08023532:
|
||||
ldr r3, _0802368C
|
||||
ldr r0, [r3]
|
||||
movs r6, 0xD7
|
||||
lsls r6, 2
|
||||
adds r0, r6
|
||||
mov r1, r10
|
||||
bl sub_8013800
|
||||
mov r8, r0
|
||||
ldr r0, _0802368C
|
||||
ldr r1, [r0]
|
||||
ldr r2, _08023698
|
||||
adds r0, r1, r2
|
||||
movs r3, 0
|
||||
ldrsh r2, [r0, r3]
|
||||
adds r6, 0x1C
|
||||
adds r0, r1, r6
|
||||
movs r3, 0
|
||||
ldrsh r0, [r0, r3]
|
||||
muls r0, r2
|
||||
add r0, r10
|
||||
lsls r0, 1
|
||||
adds r1, 0xC
|
||||
adds r1, r0
|
||||
movs r6, 0
|
||||
ldrsh r5, [r1, r6]
|
||||
adds r0, r5, 0
|
||||
bl GetFriendArea
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
add r4, sp, 0x16C
|
||||
adds r1, r4, 0
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl sub_8092638
|
||||
movs r7, 0x7
|
||||
ldrb r0, [r4, 0x4]
|
||||
cmp r0, 0
|
||||
beq _08023594
|
||||
adds r0, r5, 0
|
||||
bl HasRecruitedMon
|
||||
lsls r0, 24
|
||||
movs r7, 0x4
|
||||
cmp r0, 0
|
||||
beq _08023594
|
||||
movs r7, 0x5
|
||||
_08023594:
|
||||
adds r0, r5, 0
|
||||
movs r1, 0
|
||||
bl GetDexInternalNo
|
||||
lsls r0, 16
|
||||
asrs r4, r0, 16
|
||||
adds r0, r4, 0
|
||||
movs r1, 0xA
|
||||
bl __modsi3
|
||||
adds r2, r0, 0
|
||||
adds r2, 0x30
|
||||
lsls r2, 24
|
||||
lsrs r2, 24
|
||||
ldr r6, _0802368C
|
||||
ldr r0, [r6]
|
||||
movs r1, 0xE4
|
||||
lsls r1, 2
|
||||
mov r9, r1
|
||||
add r0, r9
|
||||
ldr r0, [r0]
|
||||
str r0, [sp]
|
||||
movs r0, 0x14
|
||||
mov r1, r8
|
||||
adds r3, r7, 0
|
||||
bl sub_8012C60
|
||||
cmp r4, 0x9
|
||||
ble _08023628
|
||||
adds r0, r4, 0
|
||||
movs r1, 0xA
|
||||
bl __divsi3
|
||||
adds r4, r0, 0
|
||||
movs r1, 0xA
|
||||
bl __modsi3
|
||||
adds r2, r0, 0
|
||||
adds r2, 0x30
|
||||
lsls r2, 24
|
||||
lsrs r2, 24
|
||||
ldr r0, [r6]
|
||||
movs r3, 0xE4
|
||||
lsls r3, 2
|
||||
adds r0, r3
|
||||
ldr r0, [r0]
|
||||
str r0, [sp]
|
||||
movs r0, 0xD
|
||||
mov r1, r8
|
||||
adds r3, r7, 0
|
||||
bl sub_8012C60
|
||||
cmp r4, 0x9
|
||||
ble _08023628
|
||||
adds r0, r4, 0
|
||||
movs r1, 0xA
|
||||
bl __divsi3
|
||||
movs r1, 0xA
|
||||
bl __modsi3
|
||||
adds r2, r0, 0
|
||||
adds r2, 0x30
|
||||
lsls r2, 24
|
||||
lsrs r2, 24
|
||||
ldr r0, [r6]
|
||||
add r0, r9
|
||||
ldr r0, [r0]
|
||||
str r0, [sp]
|
||||
movs r0, 0x6
|
||||
mov r1, r8
|
||||
adds r3, r7, 0
|
||||
bl sub_8012C60
|
||||
_08023628:
|
||||
add r4, sp, 0x108
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl sub_808D930
|
||||
add r0, sp, 0x8
|
||||
ldr r1, _080236A0
|
||||
adds r2, r7, 0
|
||||
adds r3, r4, 0
|
||||
bl sprintfStatic
|
||||
ldr r6, _0802368C
|
||||
ldr r0, [r6]
|
||||
movs r1, 0xE4
|
||||
lsls r1, 2
|
||||
adds r0, r1
|
||||
ldr r3, [r0]
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
movs r0, 0x24
|
||||
mov r1, r8
|
||||
add r2, sp, 0x8
|
||||
bl xxx_call_draw_string
|
||||
movs r2, 0x1
|
||||
add r10, r2
|
||||
ldr r0, [r6]
|
||||
ldr r3, _0802369C
|
||||
adds r0, r3
|
||||
movs r6, 0
|
||||
ldrsh r0, [r0, r6]
|
||||
cmp r10, r0
|
||||
bge _0802366C
|
||||
b _08023532
|
||||
_0802366C:
|
||||
ldr r0, _0802368C
|
||||
ldr r0, [r0]
|
||||
movs r1, 0xE4
|
||||
lsls r1, 2
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
bl sub_80073E0
|
||||
add sp, 0x178
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0802368C: .4byte gUnknown_3001B5C
|
||||
_08023690: .4byte gUnknown_80DC934
|
||||
_08023694: .4byte 0x000003fa
|
||||
_08023698: .4byte 0x0000037a
|
||||
_0802369C: .4byte 0x00000376
|
||||
_080236A0: .4byte gUnknown_80DC93C
|
||||
thumb_func_end sub_80234BC
|
||||
|
||||
thumb_func_start sub_80236A4
|
||||
sub_80236A4:
|
||||
push {r4,r5,lr}
|
||||
ldr r0, _080236FC
|
||||
ldr r1, [r0]
|
||||
movs r0, 0
|
||||
str r0, [r1, 0x8]
|
||||
movs r5, 0
|
||||
_080236B0:
|
||||
lsls r0, r5, 16
|
||||
asrs r4, r0, 16
|
||||
adds r0, r4, 0
|
||||
bl sub_8098134
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080236E2
|
||||
adds r0, r4, 0
|
||||
bl GetBaseSpeciesNoUnown
|
||||
lsls r0, 16
|
||||
asrs r0, 16
|
||||
cmp r4, r0
|
||||
bne _080236E2
|
||||
ldr r0, _080236FC
|
||||
ldr r3, [r0]
|
||||
ldr r1, [r3, 0x8]
|
||||
lsls r2, r1, 1
|
||||
adds r0, r3, 0
|
||||
adds r0, 0xC
|
||||
adds r0, r2
|
||||
strh r5, [r0]
|
||||
adds r1, 0x1
|
||||
str r1, [r3, 0x8]
|
||||
_080236E2:
|
||||
adds r5, 0x1
|
||||
ldr r0, _08023700
|
||||
cmp r5, r0
|
||||
ble _080236B0
|
||||
bl sub_8023730
|
||||
ldr r0, _080236FC
|
||||
ldr r0, [r0]
|
||||
ldr r0, [r0, 0x8]
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_080236FC: .4byte gUnknown_3001B5C
|
||||
_08023700: .4byte 0x000001a7
|
||||
thumb_func_end sub_80236A4
|
||||
|
||||
thumb_func_start sub_8023704
|
||||
sub_8023704:
|
||||
push {r4,lr}
|
||||
movs r4, 0
|
||||
_08023708:
|
||||
lsls r0, r4, 16
|
||||
asrs r0, 16
|
||||
bl sub_8098134
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0802371A
|
||||
movs r0, 0
|
||||
b _08023724
|
||||
_0802371A:
|
||||
adds r4, 0x1
|
||||
ldr r0, _0802372C
|
||||
cmp r4, r0
|
||||
ble _08023708
|
||||
movs r0, 0x1
|
||||
_08023724:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_0802372C: .4byte 0x000001a7
|
||||
thumb_func_end sub_8023704
|
||||
|
||||
thumb_func_start sub_8023730
|
||||
sub_8023730:
|
||||
push {lr}
|
||||
ldr r0, _08023744
|
||||
ldr r0, [r0]
|
||||
ldr r0, [r0, 0x4]
|
||||
cmp r0, 0x1
|
||||
beq _08023748
|
||||
cmp r0, 0x2
|
||||
beq _0802374E
|
||||
b _08023752
|
||||
.align 2, 0
|
||||
_08023744: .4byte gUnknown_3001B5C
|
||||
_08023748:
|
||||
bl sub_8023758
|
||||
b _08023752
|
||||
_0802374E:
|
||||
bl sub_80237E0
|
||||
_08023752:
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8023730
|
||||
|
||||
thumb_func_start sub_8023758
|
||||
sub_8023758:
|
||||
push {r4-r7,lr}
|
||||
|
|
|
|||
|
|
@ -1,123 +0,0 @@
|
|||
#include "asm/constants/gba_constants.inc"
|
||||
#include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_80973A8
|
||||
sub_80973A8:
|
||||
push {r4-r6,lr}
|
||||
lsls r0, 16
|
||||
asrs r0, 16
|
||||
lsls r1, 24
|
||||
lsrs r6, r1, 24
|
||||
cmp r0, 0xD
|
||||
beq _080973EE
|
||||
lsls r5, r0, 16
|
||||
cmp r6, 0
|
||||
beq _080973E2
|
||||
bl sub_80A26B8
|
||||
lsls r0, 16
|
||||
asrs r4, r0, 16
|
||||
lsrs r2, r5, 16
|
||||
movs r0, 0
|
||||
movs r1, 0x2B
|
||||
movs r3, 0
|
||||
bl sub_800199C
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
cmp r4, r0
|
||||
beq _080973E2
|
||||
movs r0, 0
|
||||
movs r1, 0x12
|
||||
adds r2, r4, 0
|
||||
bl sub_80018D8
|
||||
_080973E2:
|
||||
lsrs r2, r5, 16
|
||||
movs r0, 0
|
||||
movs r1, 0x2C
|
||||
adds r3, r6, 0
|
||||
bl sub_800199C
|
||||
_080973EE:
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_80973A8
|
||||
|
||||
thumb_func_start sub_80973F4
|
||||
sub_80973F4:
|
||||
push {lr}
|
||||
lsls r0, 16
|
||||
asrs r0, 16
|
||||
cmp r0, 0xD
|
||||
bne _08097402
|
||||
movs r0, 0
|
||||
b _08097414
|
||||
_08097402:
|
||||
lsls r2, r0, 16
|
||||
lsrs r2, 16
|
||||
movs r0, 0
|
||||
movs r1, 0x2D
|
||||
bl sub_8001784
|
||||
cmp r0, 0
|
||||
beq _08097414
|
||||
movs r0, 0x1
|
||||
_08097414:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80973F4
|
||||
|
||||
thumb_func_start sub_8097418
|
||||
sub_8097418:
|
||||
push {r4-r7,lr}
|
||||
lsls r0, 16
|
||||
asrs r5, r0, 16
|
||||
lsls r1, 24
|
||||
lsrs r7, r1, 24
|
||||
cmp r5, 0xD
|
||||
beq _08097470
|
||||
lsls r6, r5, 16
|
||||
cmp r7, 0
|
||||
beq _08097464
|
||||
lsrs r2, r6, 16
|
||||
movs r0, 0
|
||||
movs r1, 0x2C
|
||||
movs r3, 0
|
||||
bl sub_800199C
|
||||
cmp r5, 0x1E
|
||||
bgt _08097464
|
||||
lsls r0, r5, 3
|
||||
ldr r1, _08097478
|
||||
adds r4, r0, r1
|
||||
ldrb r0, [r4, 0x4]
|
||||
cmp r0, 0xFF
|
||||
beq _0809744C
|
||||
bl sub_8097FA8
|
||||
_0809744C:
|
||||
ldrb r0, [r4, 0x5]
|
||||
cmp r0, 0xFF
|
||||
beq _08097456
|
||||
bl sub_8097FA8
|
||||
_08097456:
|
||||
cmp r5, 0x9
|
||||
bne _08097460
|
||||
movs r0, 0x1F
|
||||
bl sub_8097FA8
|
||||
_08097460:
|
||||
bl sub_8097FF8
|
||||
_08097464:
|
||||
lsrs r2, r6, 16
|
||||
movs r0, 0
|
||||
movs r1, 0x2D
|
||||
adds r3, r7, 0
|
||||
bl sub_800199C
|
||||
_08097470:
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08097478: .4byte gStoryMissionText
|
||||
thumb_func_end sub_8097418
|
||||
|
||||
.align 2,0
|
||||
|
|
@ -3,6 +3,9 @@
|
|||
|
||||
#define NUM_DUNGEON_MAZE (NUM_DUNGEONS - DUNGEON_NORMAL_MAZE_2)
|
||||
|
||||
// Not sure why I need to +1 the difference...
|
||||
#define NUM_BASIC_DUNGEON_MAZE (DUNGEON_STEEL_MAZE - DUNGEON_NORMAL_MAZE_2) + 1
|
||||
|
||||
enum DungeonID
|
||||
{
|
||||
DUNGEON_TINY_WOODS = 0,
|
||||
|
|
|
|||
|
|
@ -209,7 +209,7 @@ bool8 CanMove(s16 index);
|
|||
u8 GetChanceAsleep(s16 index);
|
||||
u32 GetWeight(s16 index);
|
||||
u32 GetSize(s16 index);
|
||||
u8 GetFriendArea(s16 index);
|
||||
u8 GetFriendArea(s32 index);
|
||||
u16 GetBaseHP(s16 index);
|
||||
bool8 IsToolboxEnabled(s16 index);
|
||||
u8 GetUnk12(s16 index);
|
||||
|
|
@ -218,7 +218,7 @@ u16 GetBaseOffensiveStat(s16 index, u32 r1);
|
|||
u16 GetBaseDefensiveStat(s16 index, u32 r1);
|
||||
u8 GetPokemonType(s32 index, u32 typeIndex);
|
||||
u8 GetPokemonAbility(s16 index, u32 abilityIndex);
|
||||
s16 GetDexInternalNo(s16 index, u32 r1);
|
||||
s16 GetDexInternalNo(s32 index, u32 r1);
|
||||
s16 GetRecruitRate(s16 index);
|
||||
s16 GetAlphabetParentNo(s16 index, s32 r1);
|
||||
s16 GetInternalNo(s16 index);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
#ifndef GUARD_POKEMON_3_H
|
||||
#define GUARD_POKEMON_3_H
|
||||
|
||||
s16 GetBaseSpeciesNoUnown(s16 index);
|
||||
bool8 TacticsTargetLeader(u8 tactic);
|
||||
bool8 HasIQForSkill(s32 pokeIQ, u8 IQSkillIndex);
|
||||
void SetIQSkill(u8 *param_1, u32 skillIndex);
|
||||
|
|
|
|||
|
|
@ -307,8 +307,6 @@ SECTIONS {
|
|||
src/code_80958E8_1.o(.text);
|
||||
asm/code_8096AF8.o(.text);
|
||||
src/code_80972F4.o(.text);
|
||||
asm/code_8097318.o(.text);
|
||||
src/code_809747C.o(.text);
|
||||
src/code_8097670.o(.text);
|
||||
asm/code_8097670.o(.text);
|
||||
src/code_8097DD0.o(.text);
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
#include "memory.h"
|
||||
#include "menu.h"
|
||||
#include "pokemon.h"
|
||||
#include "pokemon_3.h"
|
||||
#include "team_inventory.h"
|
||||
#include "text.h"
|
||||
#include "input.h"
|
||||
|
|
@ -42,6 +43,10 @@ extern u16 gUnknown_203B29E;
|
|||
extern struct UnkTextStruct2 gUnknown_80DC91C;
|
||||
extern struct UnkTextStruct2 gUnknown_80DC904;
|
||||
|
||||
void sub_8023758(void);
|
||||
void sub_80237E0(void);
|
||||
extern bool8 sub_8098134(s32);
|
||||
extern void sub_8023730(void);
|
||||
extern u8 sub_8023704(u8);
|
||||
extern void sub_8013818(void *, u32, u32, u32);
|
||||
extern void sub_8013984(u8 *);
|
||||
|
|
@ -408,3 +413,192 @@ void sub_80233A0(void)
|
|||
gUnknown_3001B5C = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
NAKED
|
||||
void sub_8023420(void)
|
||||
{
|
||||
asm_unified(
|
||||
"\tpush {r4,r5,lr}\n"
|
||||
"\tldr r4, _080234A8\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tmovs r1, 0xFE\n"
|
||||
"\tlsls r1, 2\n"
|
||||
"\tadds r0, r1\n"
|
||||
"\tmovs r2, 0\n"
|
||||
"\tmovs r1, 0x1\n"
|
||||
"\tstrb r1, [r0]\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tldr r1, _080234AC\n"
|
||||
"\tadds r0, r1\n"
|
||||
"\tstrb r2, [r0]\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r1, 0x1\n"
|
||||
"\tadds r0, r1\n"
|
||||
"\tmovs r1, 0xC\n"
|
||||
"\tstrb r1, [r0]\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tldr r1, _080234B0\n"
|
||||
"\tadds r0, r1\n"
|
||||
"\tstrb r2, [r0]\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tldr r2, _080234B4\n"
|
||||
"\tadds r0, r2\n"
|
||||
"\tmovs r1, 0\n"
|
||||
"\tldrsh r0, [r0, r1]\n"
|
||||
"\tmovs r1, 0xC\n"
|
||||
"\tbl sub_80095E4\n"
|
||||
"\tadds r0, 0x2\n"
|
||||
"\tldr r3, [r4]\n"
|
||||
"\tmovs r2, 0xE4\n"
|
||||
"\tlsls r2, 2\n"
|
||||
"\tadds r5, r3, r2\n"
|
||||
"\tldr r2, [r5]\n"
|
||||
"\tlsls r1, r2, 1\n"
|
||||
"\tadds r1, r2\n"
|
||||
"\tlsls r1, 3\n"
|
||||
"\tadds r1, r3, r1\n"
|
||||
"\tldr r2, _080234B8\n"
|
||||
"\tadds r1, r2\n"
|
||||
"\tlsls r0, 16\n"
|
||||
"\tlsrs r0, 16\n"
|
||||
"\tstrh r0, [r1]\n"
|
||||
"\tldr r2, [r5]\n"
|
||||
"\tlsls r1, r2, 1\n"
|
||||
"\tadds r1, r2\n"
|
||||
"\tlsls r1, 3\n"
|
||||
"\tadds r3, r1\n"
|
||||
"\tmovs r1, 0xEA\n"
|
||||
"\tlsls r1, 2\n"
|
||||
"\tadds r3, r1\n"
|
||||
"\tstrh r0, [r3]\n"
|
||||
"\tbl ResetUnusedInputStruct\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tmovs r2, 0xE6\n"
|
||||
"\tlsls r2, 2\n"
|
||||
"\tadds r0, r2\n"
|
||||
"\tmovs r1, 0x1\n"
|
||||
"\tmovs r2, 0x1\n"
|
||||
"\tbl sub_800641C\n"
|
||||
"\tpop {r4,r5}\n"
|
||||
"\tpop {r0}\n"
|
||||
"\tbx r0\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_080234A8: .4byte gUnknown_3001B5C\n"
|
||||
"_080234AC: .4byte 0x000003f9\n"
|
||||
"_080234B0: .4byte 0x000003fb\n"
|
||||
"_080234B4: .4byte 0x00000376\n"
|
||||
"_080234B8: .4byte 0x000003a6");
|
||||
}
|
||||
|
||||
extern u8 gUnknown_80DC934[];
|
||||
|
||||
struct unkStruct_8092638
|
||||
{
|
||||
u32 unk0;
|
||||
u8 unk4;
|
||||
u32 unk5;
|
||||
};
|
||||
extern void sub_8092638(u8,struct unkStruct_8092638 *, u32, u32);
|
||||
extern void xxx_call_draw_string(u32, u32, const u8 *, u32, u32);
|
||||
extern void sub_8008C54(u32);
|
||||
extern void sub_80073B8(u32);
|
||||
extern void sub_80073E0(u32);
|
||||
void sub_808D930(u8 *buffer, s32 index);
|
||||
extern s32 sub_8013800(void *, u32);
|
||||
bool8 HasRecruitedMon(s16 species_);
|
||||
extern u8 gUnknown_80DC93C[];
|
||||
void sprintfStatic(char *buffer, const char *text, ...);
|
||||
|
||||
void sub_80234BC(void)
|
||||
{
|
||||
u8 cVar2;
|
||||
u32 y;
|
||||
s32 uVar3;
|
||||
s32 iVar4;
|
||||
s32 species;
|
||||
u32 color;
|
||||
s32 index;
|
||||
u8 buffer2 [256];
|
||||
u8 buffer1 [100];
|
||||
struct unkStruct_8092638 auStack_2c;
|
||||
|
||||
sub_8008C54(gUnknown_3001B5C->unk390);
|
||||
sub_80073B8(gUnknown_3001B5C->unk390);
|
||||
xxx_call_draw_string(10,0,gUnknown_80DC934,gUnknown_3001B5C->unk390,0); // Pokemon
|
||||
sub_8012BC4(gUnknown_3001B5C->unk3F8[2] * 8 + 4,0,
|
||||
gUnknown_3001B5C->unk37A + 1,2,7,gUnknown_3001B5C->unk390);
|
||||
for(index = 0; index < gUnknown_3001B5C->unk376; index++)
|
||||
{
|
||||
y = sub_8013800(&gUnknown_3001B5C->unk35C,index);
|
||||
species = gUnknown_3001B5C->unkC[(gUnknown_3001B5C->unk37A * gUnknown_3001B5C->unk378 + index)];
|
||||
sub_8092638(GetFriendArea(species),&auStack_2c,0,0);
|
||||
color = 7;
|
||||
if (auStack_2c.unk4 != 0) {
|
||||
color = HasRecruitedMon(species) ? 5 : 4;
|
||||
}
|
||||
iVar4 = GetDexInternalNo(species,0);
|
||||
cVar2 = (iVar4 % 10) + 0x30;
|
||||
sub_8012C60(0x14,y,cVar2,color,gUnknown_3001B5C->unk390);
|
||||
if (9 < iVar4) {
|
||||
iVar4 /= 10;
|
||||
cVar2 = (iVar4 % 10) + 0x30;
|
||||
sub_8012C60(0xd,y,cVar2,color,gUnknown_3001B5C->unk390);
|
||||
if (9 < iVar4) {
|
||||
uVar3 = iVar4 / 10;
|
||||
cVar2 = (uVar3 % 10) + 0x30;
|
||||
sub_8012C60(6,y,cVar2,color,gUnknown_3001B5C->unk390);
|
||||
}
|
||||
}
|
||||
sub_808D930(buffer1,species);
|
||||
sprintfStatic(buffer2,gUnknown_80DC93C,color,buffer1); // {COLOR_2}%c%s
|
||||
xxx_call_draw_string(0x24,y,buffer2,gUnknown_3001B5C->unk390,0);
|
||||
}
|
||||
sub_80073E0(gUnknown_3001B5C->unk390);
|
||||
}
|
||||
|
||||
u32 sub_80236A4(void)
|
||||
{
|
||||
s16 index_s32;
|
||||
int index;
|
||||
s32 temp;
|
||||
|
||||
gUnknown_3001B5C->unk8 = 0;
|
||||
for(index = 0; index < 0x1a8; index++)
|
||||
{
|
||||
index_s32 = index;
|
||||
if ((sub_8098134(index_s32)) &&
|
||||
(index_s32 == GetBaseSpeciesNoUnown(index_s32))) {
|
||||
temp = gUnknown_3001B5C->unk8;
|
||||
gUnknown_3001B5C->unkC[gUnknown_3001B5C->unk8] = index;
|
||||
gUnknown_3001B5C->unk8 = temp + 1;
|
||||
}
|
||||
}
|
||||
sub_8023730();
|
||||
return gUnknown_3001B5C->unk8;
|
||||
}
|
||||
|
||||
bool8 sub_8023704(u8 unused)
|
||||
{
|
||||
s32 index;
|
||||
|
||||
for(index = 0; index < 0x1a8; index++)
|
||||
{
|
||||
if (sub_8098134((s16)index))
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void sub_8023730(void)
|
||||
{
|
||||
switch(gUnknown_3001B5C->unk4)
|
||||
{
|
||||
case 1:
|
||||
sub_8023758();
|
||||
break;
|
||||
case 2:
|
||||
sub_80237E0();
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,17 +1,44 @@
|
|||
#include "global.h"
|
||||
#include "constants/dungeon.h"
|
||||
#include "pokemon.h"
|
||||
#include "wonder_mail.h"
|
||||
#include "code_80958E8.h"
|
||||
#include "dungeon.h"
|
||||
|
||||
struct MissionText
|
||||
{
|
||||
u8 *text;
|
||||
u8 unk4;
|
||||
u8 unk5;
|
||||
u8 unk6;
|
||||
u8 unk7;
|
||||
};
|
||||
extern struct MissionText gStoryMissionText[];
|
||||
extern const char gFinalScenarioText[];
|
||||
extern const char gMeetNinetalesText[];
|
||||
extern const char gAvoidCaptureText[];
|
||||
extern const u8 gUnknown_8109CC0[];
|
||||
extern const u8 gDummyScenarioText[];
|
||||
extern u8 sub_80A270C();
|
||||
|
||||
extern void sub_8097FA8(u32);
|
||||
extern void sub_8097FF8(void);
|
||||
extern u8 sub_80A2728(s16);
|
||||
extern bool8 sub_8001D08(u32, u32 ,s32);
|
||||
extern u32 sub_8001784(u32, u32, u16);
|
||||
extern void sub_800199C(u8, u8, u16, s32);
|
||||
extern bool8 sub_80023E4(u32);
|
||||
|
||||
void SaveWonderMail(struct unkStruct_8094924 *a, struct WonderMail *b);
|
||||
void RestoreWonderMail(struct unkStruct_8094924 *a, struct WonderMail *b);
|
||||
extern s32 sub_8096EB0(struct WonderMail *);
|
||||
extern void SaveDungeonLocation(struct unkStruct_8094924*, struct DungeonLocation*);
|
||||
extern void RestoreDungeonLocation(struct unkStruct_8094924*, struct DungeonLocation*);
|
||||
extern void sub_80015C0(u32, u32);
|
||||
extern void sub_80015C0(u8, u8);
|
||||
extern u32 sub_8001784(u32, u32, u16);
|
||||
extern void GeneratePelipperJobs(void);
|
||||
extern void sub_800199C(u32, s32, u32, s32);
|
||||
s16 sub_80A26B8(s16);
|
||||
extern void sub_80018D8(u8, u8, u32);
|
||||
|
||||
bool8 sub_8096F50(struct WonderMail *mail)
|
||||
{
|
||||
|
|
@ -221,3 +248,228 @@ bool32 sub_8097384(s16 param_1)
|
|||
}
|
||||
return iVar1;
|
||||
}
|
||||
|
||||
void sub_80973A8(s16 param_1,u32 param_2)
|
||||
{
|
||||
s32 sVar1;
|
||||
s32 param_1_s32 = param_1;
|
||||
u8 param_2_u32 = param_2;
|
||||
|
||||
if (param_1_s32 != 0xd) {
|
||||
if (param_2_u32 != 0) {
|
||||
sVar1 = sub_80A26B8(param_1);
|
||||
sub_800199C(0,0x2b,param_1_s32,0);
|
||||
if (sVar1 != -1) {
|
||||
sub_80018D8(0,0x12,sVar1);
|
||||
}
|
||||
}
|
||||
sub_800199C(0,0x2c,param_1_s32,param_2_u32);
|
||||
}
|
||||
}
|
||||
|
||||
s32 sub_80973F4(s32 param_1)
|
||||
{
|
||||
s32 iVar1;
|
||||
s16 param_1_u16 = param_1;
|
||||
|
||||
if (param_1_u16 == 0xd) {
|
||||
iVar1 = 0;
|
||||
}
|
||||
else {
|
||||
s32 param_1_s32 = param_1_u16;
|
||||
u16 param_1_temp = param_1_s32;
|
||||
iVar1 = sub_8001784(0,0x2d,param_1_temp);
|
||||
if (iVar1 != 0) {
|
||||
iVar1 = 1;
|
||||
}
|
||||
}
|
||||
return iVar1;
|
||||
}
|
||||
|
||||
void sub_8097418(s16 index,u32 param_2)
|
||||
{
|
||||
int index_s32 = index;
|
||||
u8 param_2_u8 = param_2;
|
||||
if (index_s32 != 0xd) {
|
||||
if ((param_2_u8 != 0) && (sub_800199C(0,0x2c,index_s32,0), index_s32 < 0x1f)) {
|
||||
struct MissionText *mt = &gStoryMissionText[index_s32];
|
||||
if (mt->unk4 != 0xFF) {
|
||||
sub_8097FA8(mt->unk4);
|
||||
}
|
||||
if (mt->unk5 != 0xFF) {
|
||||
sub_8097FA8(mt->unk5);
|
||||
}
|
||||
if (index_s32 == 9) {
|
||||
sub_8097FA8(0x1f);
|
||||
}
|
||||
sub_8097FF8();
|
||||
}
|
||||
sub_800199C(0,0x2d,index_s32,param_2_u8);
|
||||
}
|
||||
}
|
||||
|
||||
const u8 *sub_809747C(s16 index)
|
||||
{
|
||||
if(index == 0xD)
|
||||
{
|
||||
return gDummyScenarioText;
|
||||
}
|
||||
else
|
||||
{
|
||||
return GetDungeonName1(sub_80A270C(index));
|
||||
}
|
||||
}
|
||||
|
||||
const u8 *sub_80974A0(s16 index)
|
||||
{
|
||||
if(index == 0xD)
|
||||
{
|
||||
return gDummyScenarioText;
|
||||
}
|
||||
else
|
||||
{
|
||||
return GetDungeonName1(sub_80A270C(index));
|
||||
}
|
||||
}
|
||||
|
||||
const u8 *GetCurrentMissionText(s16 index)
|
||||
{
|
||||
if(index < 0x1F)
|
||||
{
|
||||
struct MissionText *mt = &gStoryMissionText[index];
|
||||
return mt->text;
|
||||
}
|
||||
else
|
||||
{
|
||||
return gUnknown_8109CC0;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80974E8(void)
|
||||
{
|
||||
sub_80015C0(0, 0x2E);
|
||||
sub_80015C0(0, 0x2F);
|
||||
}
|
||||
|
||||
void nullsub_208(void)
|
||||
{
|
||||
}
|
||||
|
||||
bool8 sub_8097504(s16 mazeIndex)
|
||||
{
|
||||
s32 mazeIndex_s32;
|
||||
|
||||
#ifndef NONMATCHING
|
||||
register s32 mazeIndex_s32_1 asm("r1");
|
||||
#else
|
||||
s32 mazeIndex_s32_1;
|
||||
#endif
|
||||
s32 uVar3;
|
||||
|
||||
mazeIndex_s32 = mazeIndex;
|
||||
mazeIndex_s32_1 = mazeIndex_s32;
|
||||
|
||||
if(mazeIndex_s32 < 17)
|
||||
{
|
||||
switch(mazeIndex_s32) {
|
||||
case 2:
|
||||
case 10:
|
||||
case 11:
|
||||
case 12:
|
||||
uVar3 = 14;
|
||||
break;
|
||||
case 0:
|
||||
case 1:
|
||||
case 5:
|
||||
case 7:
|
||||
case 9:
|
||||
case 14:
|
||||
uVar3 = 15;
|
||||
break;
|
||||
case 3:
|
||||
case 4:
|
||||
case 6:
|
||||
case 8:
|
||||
return TRUE;
|
||||
case 13:
|
||||
uVar3 = 6;
|
||||
break;
|
||||
default:
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (mazeIndex_s32_1 > 22) return FALSE;
|
||||
if (mazeIndex_s32_1 == 22) return FALSE;
|
||||
if (mazeIndex_s32_1 == 21) return FALSE;
|
||||
uVar3 = 6;
|
||||
}
|
||||
|
||||
if (!sub_80023E4(uVar3)) {
|
||||
return FALSE;
|
||||
}
|
||||
else {
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: this should probably be bool8 but can't get a match just yet
|
||||
bool32 IsMazeCompleted(s16 mazeIndex)
|
||||
{
|
||||
bool32 mazeCompletion;
|
||||
|
||||
mazeCompletion = sub_8001784(0, 0x2e, mazeIndex);
|
||||
if (mazeCompletion) {
|
||||
mazeCompletion = TRUE;
|
||||
}
|
||||
return mazeCompletion;
|
||||
}
|
||||
|
||||
void sub_80975A8(s16 param_1,u8 param_2)
|
||||
{
|
||||
u16 param_1_u16 = param_1;
|
||||
sub_800199C(0,0x2e,param_1_u16,param_2);
|
||||
}
|
||||
|
||||
const u8 *sub_80975C4(s16 index)
|
||||
{
|
||||
return GetDungeonName1(sub_80A2728(index));
|
||||
}
|
||||
|
||||
const char *sub_80975DC(u32 r0)
|
||||
{
|
||||
// TODO: slight hack but matches
|
||||
r0 <<= 16;
|
||||
if((0xffe90000 + r0) >> 16 < 2)
|
||||
if(sub_8001D08(0x3, 0xE, -1))
|
||||
return gMeetNinetalesText;
|
||||
else
|
||||
return gAvoidCaptureText;
|
||||
else
|
||||
return gFinalScenarioText;
|
||||
}
|
||||
|
||||
bool8 HasCompletedAllMazes(void)
|
||||
{
|
||||
s32 index;
|
||||
for(index = 0; index < NUM_BASIC_DUNGEON_MAZE; index++)
|
||||
{
|
||||
if(!(bool8)IsMazeCompleted(index))
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 sub_8097640(void)
|
||||
{
|
||||
if(sub_8001784(0, 0x2E, 0x1F) == 0 && HasCompletedAllMazes())
|
||||
{
|
||||
sub_800199C(0, 0x2E, 0x1F, 1);
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,193 +0,0 @@
|
|||
#include "global.h"
|
||||
#include "dungeon.h"
|
||||
|
||||
|
||||
struct MissionText
|
||||
{
|
||||
u8 *text;
|
||||
u8 unk4;
|
||||
u8 unk5;
|
||||
u8 unk6;
|
||||
u8 unk7;
|
||||
};
|
||||
|
||||
extern struct MissionText gStoryMissionText[];
|
||||
extern const u8 gUnknown_8109CC0[];
|
||||
extern const u8 gDummyScenarioText[];
|
||||
extern const char gFinalScenarioText[];
|
||||
extern const char gMeetNinetalesText[];
|
||||
extern const char gAvoidCaptureText[];
|
||||
|
||||
extern u8 sub_80A270C();
|
||||
extern void sub_80015C0(u8, u8);
|
||||
extern u8 sub_80A2728(s16);
|
||||
extern bool8 sub_8001D08(u32, u32 ,s32);
|
||||
extern u32 sub_8001784(u32, u32, u16);
|
||||
extern void sub_800199C(u32, u32, u32, u32);
|
||||
extern bool8 sub_80023E4(u32);
|
||||
|
||||
const u8 *sub_809747C(s16 index)
|
||||
{
|
||||
if(index == 0xD)
|
||||
{
|
||||
return gDummyScenarioText;
|
||||
}
|
||||
else
|
||||
{
|
||||
return GetDungeonName1(sub_80A270C(index));
|
||||
}
|
||||
}
|
||||
|
||||
const u8 *sub_80974A0(s16 index)
|
||||
{
|
||||
if(index == 0xD)
|
||||
{
|
||||
return gDummyScenarioText;
|
||||
}
|
||||
else
|
||||
{
|
||||
return GetDungeonName1(sub_80A270C(index));
|
||||
}
|
||||
}
|
||||
|
||||
const u8 *GetCurrentMissionText(s16 index)
|
||||
{
|
||||
if(index < 0x1F)
|
||||
{
|
||||
struct MissionText *mt = &gStoryMissionText[index];
|
||||
return mt->text;
|
||||
}
|
||||
else
|
||||
{
|
||||
return gUnknown_8109CC0;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80974E8(void)
|
||||
{
|
||||
sub_80015C0(0, 0x2E);
|
||||
sub_80015C0(0, 0x2F);
|
||||
}
|
||||
|
||||
void nullsub_208(void)
|
||||
{
|
||||
}
|
||||
|
||||
bool8 sub_8097504(s16 mazeIndex)
|
||||
{
|
||||
s32 mazeIndex_s32;
|
||||
|
||||
#ifndef NONMATCHING
|
||||
register s32 mazeIndex_s32_1 asm("r1");
|
||||
#else
|
||||
s32 mazeIndex_s32_1;
|
||||
#endif
|
||||
s32 uVar3;
|
||||
|
||||
mazeIndex_s32 = mazeIndex;
|
||||
mazeIndex_s32_1 = mazeIndex_s32;
|
||||
|
||||
if(mazeIndex_s32 < 17)
|
||||
{
|
||||
switch(mazeIndex_s32) {
|
||||
case 2:
|
||||
case 10:
|
||||
case 11:
|
||||
case 12:
|
||||
uVar3 = 14;
|
||||
break;
|
||||
case 0:
|
||||
case 1:
|
||||
case 5:
|
||||
case 7:
|
||||
case 9:
|
||||
case 14:
|
||||
uVar3 = 15;
|
||||
break;
|
||||
case 3:
|
||||
case 4:
|
||||
case 6:
|
||||
case 8:
|
||||
return TRUE;
|
||||
case 13:
|
||||
uVar3 = 6;
|
||||
break;
|
||||
default:
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (mazeIndex_s32_1 > 22) return FALSE;
|
||||
if (mazeIndex_s32_1 == 22) return FALSE;
|
||||
if (mazeIndex_s32_1 == 21) return FALSE;
|
||||
uVar3 = 6;
|
||||
}
|
||||
|
||||
if (!sub_80023E4(uVar3)) {
|
||||
return FALSE;
|
||||
}
|
||||
else {
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: this should probably be bool8 but can't get a match just yet
|
||||
bool32 IsMazeCompleted(s16 mazeIndex)
|
||||
{
|
||||
bool32 mazeCompletion;
|
||||
|
||||
mazeCompletion = sub_8001784(0, 0x2e, mazeIndex);
|
||||
if (mazeCompletion) {
|
||||
mazeCompletion = TRUE;
|
||||
}
|
||||
return mazeCompletion;
|
||||
}
|
||||
|
||||
void sub_80975A8(s16 param_1,u8 param_2)
|
||||
{
|
||||
u16 param_1_u16 = param_1;
|
||||
sub_800199C(0,0x2e,param_1_u16,param_2);
|
||||
}
|
||||
|
||||
const u8 *sub_80975C4(s16 index)
|
||||
{
|
||||
return GetDungeonName1(sub_80A2728(index));
|
||||
}
|
||||
|
||||
const char *sub_80975DC(u32 r0)
|
||||
{
|
||||
// TODO: slight hack but matches
|
||||
r0 <<= 16;
|
||||
if((0xffe90000 + r0) >> 16 < 2)
|
||||
if(sub_8001D08(0x3, 0xE, -1))
|
||||
return gMeetNinetalesText;
|
||||
else
|
||||
return gAvoidCaptureText;
|
||||
else
|
||||
return gFinalScenarioText;
|
||||
}
|
||||
|
||||
bool8 HasCompletedAllMazes(void)
|
||||
{
|
||||
s32 index;
|
||||
for(index = 0; index < 17; index++)
|
||||
{
|
||||
if(!(bool8)IsMazeCompleted(index))
|
||||
return FALSE;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 sub_8097640(void)
|
||||
{
|
||||
if(sub_8001784(0, 0x2E, 0x1F) == 0 && HasCompletedAllMazes())
|
||||
{
|
||||
sub_800199C(0, 0x2E, 0x1F, 1);
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
|
@ -192,7 +192,7 @@ s32 GetBaseSpecies(s16 index) {
|
|||
return index;
|
||||
}
|
||||
|
||||
s32 GetBaseSpeciesNoUnown(s16 index) {
|
||||
s16 GetBaseSpeciesNoUnown(s16 index) {
|
||||
register s32 a1_ asm("r2") = index;
|
||||
if (index == MONSTER_CASTFORM_SNOWY) {
|
||||
return MONSTER_CASTFORM;
|
||||
|
|
|
|||
|
|
@ -246,20 +246,21 @@ void CopyCyanMonsterNametoBuffer(u8 *buffer, s16 index)
|
|||
sprintfStatic(buffer, gUnknown_8107608, gMonsterParameters[new_index].species); // {COLOR_2 CYAN}%s{END_COLOR_TEXT_2}
|
||||
}
|
||||
|
||||
void sub_808D930(u8 *buffer, s16 index)
|
||||
void sub_808D930(u8 *buffer, s32 index)
|
||||
{
|
||||
char *unownString;
|
||||
s32 unownIndex;
|
||||
const char *preload;
|
||||
s16 index_s16 = index;
|
||||
|
||||
if (GetBaseSpecies(index) == MONSTER_UNOWN) {
|
||||
if (GetBaseSpecies(index_s16) == MONSTER_UNOWN) {
|
||||
preload = gUnknown_8107630; // %s%c
|
||||
unownString = GetMonSpecies(MONSTER_UNOWN);
|
||||
unownIndex = GetUnownIndex(index);
|
||||
unownIndex = GetUnownIndex(index_s16);
|
||||
sprintfStatic(buffer,preload,unownString,gUnownLetters[unownIndex]); // ABCDEFGHIJKLMNOPQRSTUVWXYZ!?
|
||||
}
|
||||
else {
|
||||
sprintfStatic(buffer,gUnknown_8107638, gMonsterParameters[index].species); // %s
|
||||
sprintfStatic(buffer,gUnknown_8107638, gMonsterParameters[index_s16].species); // %s
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -376,9 +377,10 @@ u32 GetSize(s16 index)
|
|||
return gMonsterParameters[index].size;
|
||||
}
|
||||
|
||||
u8 GetFriendArea(s16 index)
|
||||
u8 GetFriendArea(s32 index)
|
||||
{
|
||||
return gMonsterParameters[index].friendArea;
|
||||
s16 index_s32 = index;
|
||||
return gMonsterParameters[index_s32].friendArea;
|
||||
}
|
||||
|
||||
u16 GetBaseHP(s16 index)
|
||||
|
|
@ -422,9 +424,10 @@ u8 GetPokemonAbility(s16 index, u32 abilityIndex)
|
|||
return gMonsterParameters[index].abilities[abilityIndex];
|
||||
}
|
||||
|
||||
s16 GetDexInternalNo(s16 index, u32 r1)
|
||||
s16 GetDexInternalNo(s32 index, u32 r1)
|
||||
{
|
||||
return gMonsterParameters[index].dexInternal[r1];
|
||||
s16 index_s16 = index;
|
||||
return gMonsterParameters[index_s16].dexInternal[r1];
|
||||
}
|
||||
|
||||
s16 GetRecruitRate(s16 index)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user