mirror of
https://github.com/pret/pokefirered.git
synced 2026-05-09 04:23:14 -05:00
field_specials through sub_80CBFA0
This commit is contained in:
parent
54d6414654
commit
db3be6ef2e
|
|
@ -5,257 +5,6 @@
|
|||
|
||||
.text
|
||||
|
||||
thumb_func_start ContextNpcGetTextColor
|
||||
ContextNpcGetTextColor: @ 80CBE00
|
||||
push {lr}
|
||||
ldr r0, _080CBE18 @ =gSpecialVar_TextColor
|
||||
ldrh r0, [r0]
|
||||
cmp r0, 0xFF
|
||||
bne _080CBE44
|
||||
ldr r1, _080CBE1C @ =gSelectedEventObject
|
||||
ldrb r0, [r1]
|
||||
cmp r0, 0
|
||||
bne _080CBE20
|
||||
movs r0, 0x3
|
||||
b _080CBE48
|
||||
.align 2, 0
|
||||
_080CBE18: .4byte gSpecialVar_TextColor
|
||||
_080CBE1C: .4byte gSelectedEventObject
|
||||
_080CBE20:
|
||||
ldr r2, _080CBE4C @ =gMapObjects
|
||||
ldrb r1, [r1]
|
||||
lsls r0, r1, 3
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
adds r0, r2
|
||||
ldrb r0, [r0, 0x5]
|
||||
cmp r0, 0xEF
|
||||
bls _080CBE40
|
||||
adds r0, 0x10
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl VarGetFieldObjectGraphicsId
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
_080CBE40:
|
||||
bl GetColorFromTextColorTable
|
||||
_080CBE44:
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
_080CBE48:
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_080CBE4C: .4byte gMapObjects
|
||||
thumb_func_end ContextNpcGetTextColor
|
||||
|
||||
thumb_func_start sub_80CBE50
|
||||
sub_80CBE50: @ 80CBE50
|
||||
push {r4-r6,lr}
|
||||
sub sp, 0x4
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
movs r1, 0x64
|
||||
muls r1, r0
|
||||
ldr r0, _080CBEA4 @ =gPlayerParty
|
||||
adds r5, r1, r0
|
||||
ldr r6, _080CBEA8 @ =gStringVar1
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x2
|
||||
adds r2, r6, 0
|
||||
bl GetMonData
|
||||
mov r4, sp
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x3
|
||||
mov r2, sp
|
||||
bl GetMonData
|
||||
strb r0, [r4]
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x2
|
||||
bne _080CBEB0
|
||||
adds r0, r5, 0
|
||||
movs r1, 0xB
|
||||
movs r2, 0
|
||||
bl GetMonData
|
||||
movs r1, 0xB
|
||||
muls r0, r1
|
||||
ldr r1, _080CBEAC @ =gSpeciesNames
|
||||
adds r0, r1
|
||||
adds r1, r6, 0
|
||||
bl StringCompare
|
||||
cmp r0, 0
|
||||
bne _080CBEB0
|
||||
movs r0, 0
|
||||
b _080CBEB2
|
||||
.align 2, 0
|
||||
_080CBEA4: .4byte gPlayerParty
|
||||
_080CBEA8: .4byte gStringVar1
|
||||
_080CBEAC: .4byte gSpeciesNames
|
||||
_080CBEB0:
|
||||
movs r0, 0x1
|
||||
_080CBEB2:
|
||||
add sp, 0x4
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80CBE50
|
||||
|
||||
thumb_func_start sub_80CBEBC
|
||||
sub_80CBEBC: @ 80CBEBC
|
||||
push {lr}
|
||||
bl GetLeadMonIndex
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl sub_80CBE50
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80CBEBC
|
||||
|
||||
thumb_func_start TV_PrintIntToStringVar
|
||||
TV_PrintIntToStringVar: @ 80CBED4
|
||||
push {r4,r5,lr}
|
||||
adds r4, r0, 0
|
||||
adds r5, r1, 0
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
adds r0, r5, 0
|
||||
bl CountDigits
|
||||
adds r3, r0, 0
|
||||
ldr r0, _080CBF00 @ =gUnknown_83F5AF8
|
||||
lsls r4, 2
|
||||
adds r4, r0
|
||||
ldr r0, [r4]
|
||||
lsls r3, 24
|
||||
lsrs r3, 24
|
||||
adds r1, r5, 0
|
||||
movs r2, 0
|
||||
bl ConvertIntToDecimalStringN
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080CBF00: .4byte gUnknown_83F5AF8
|
||||
thumb_func_end TV_PrintIntToStringVar
|
||||
|
||||
thumb_func_start CountDigits
|
||||
CountDigits: @ 80CBF04
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
movs r1, 0xA
|
||||
bl __divsi3
|
||||
cmp r0, 0
|
||||
beq _080CBF90
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x64
|
||||
bl __divsi3
|
||||
cmp r0, 0
|
||||
bne _080CBF22
|
||||
movs r0, 0x2
|
||||
b _080CBF9A
|
||||
_080CBF22:
|
||||
movs r1, 0xFA
|
||||
lsls r1, 2
|
||||
adds r0, r4, 0
|
||||
bl __divsi3
|
||||
cmp r0, 0
|
||||
bne _080CBF34
|
||||
movs r0, 0x3
|
||||
b _080CBF9A
|
||||
_080CBF34:
|
||||
ldr r1, _080CBF44 @ =0x00002710
|
||||
adds r0, r4, 0
|
||||
bl __divsi3
|
||||
cmp r0, 0
|
||||
bne _080CBF48
|
||||
movs r0, 0x4
|
||||
b _080CBF9A
|
||||
.align 2, 0
|
||||
_080CBF44: .4byte 0x00002710
|
||||
_080CBF48:
|
||||
ldr r1, _080CBF58 @ =0x000186a0
|
||||
adds r0, r4, 0
|
||||
bl __divsi3
|
||||
cmp r0, 0
|
||||
bne _080CBF5C
|
||||
movs r0, 0x5
|
||||
b _080CBF9A
|
||||
.align 2, 0
|
||||
_080CBF58: .4byte 0x000186a0
|
||||
_080CBF5C:
|
||||
ldr r1, _080CBF6C @ =0x000f4240
|
||||
adds r0, r4, 0
|
||||
bl __divsi3
|
||||
cmp r0, 0
|
||||
bne _080CBF70
|
||||
movs r0, 0x6
|
||||
b _080CBF9A
|
||||
.align 2, 0
|
||||
_080CBF6C: .4byte 0x000f4240
|
||||
_080CBF70:
|
||||
ldr r1, _080CBF80 @ =0x00989680
|
||||
adds r0, r4, 0
|
||||
bl __divsi3
|
||||
cmp r0, 0
|
||||
bne _080CBF84
|
||||
movs r0, 0x7
|
||||
b _080CBF9A
|
||||
.align 2, 0
|
||||
_080CBF80: .4byte 0x00989680
|
||||
_080CBF84:
|
||||
ldr r1, _080CBF94 @ =0x05f5e100
|
||||
adds r0, r4, 0
|
||||
bl __divsi3
|
||||
cmp r0, 0
|
||||
beq _080CBF98
|
||||
_080CBF90:
|
||||
movs r0, 0x1
|
||||
b _080CBF9A
|
||||
.align 2, 0
|
||||
_080CBF94: .4byte 0x05f5e100
|
||||
_080CBF98:
|
||||
movs r0, 0x8
|
||||
_080CBF9A:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end CountDigits
|
||||
|
||||
thumb_func_start sub_80CBFA0
|
||||
sub_80CBFA0: @ 80CBFA0
|
||||
push {r4,lr}
|
||||
ldr r0, _080CBFC8 @ =gSpecialVar_0x8004
|
||||
ldrh r1, [r0]
|
||||
movs r0, 0x64
|
||||
muls r0, r1
|
||||
ldr r1, _080CBFCC @ =gPlayerParty
|
||||
adds r0, r1
|
||||
ldr r4, _080CBFD0 @ =gStringVar1
|
||||
movs r1, 0x2
|
||||
adds r2, r4, 0
|
||||
bl GetMonData
|
||||
ldr r0, _080CBFD4 @ =gStringVar3
|
||||
adds r1, r4, 0
|
||||
bl StringCompare
|
||||
cmp r0, 0
|
||||
beq _080CBFD8
|
||||
movs r0, 0x1
|
||||
b _080CBFDA
|
||||
.align 2, 0
|
||||
_080CBFC8: .4byte gSpecialVar_0x8004
|
||||
_080CBFCC: .4byte gPlayerParty
|
||||
_080CBFD0: .4byte gStringVar1
|
||||
_080CBFD4: .4byte gStringVar3
|
||||
_080CBFD8:
|
||||
movs r0, 0
|
||||
_080CBFDA:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80CBFA0
|
||||
|
||||
thumb_func_start ChangeBoxPokemonNickname
|
||||
ChangeBoxPokemonNickname: @ 80CBFE0
|
||||
push {r4-r6,lr}
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ gSpecials:: @ 815FD60
|
|||
def_special nullsub_75
|
||||
def_special nullsub_75
|
||||
def_special nullsub_75
|
||||
def_special sub_80CBEBC
|
||||
def_special Special_HasLeadMonBeenRenamed
|
||||
def_special nullsub_75
|
||||
def_special nullsub_75
|
||||
def_special nullsub_75
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ enum HiddenItemAttr
|
|||
};
|
||||
|
||||
u8 GetLeadMonIndex(void);
|
||||
u8 CountDigits(u16 number);
|
||||
s32 CountDigits(s32 number);
|
||||
void TV_PrintIntToStringVar(u8, int);
|
||||
u16 ScrSpecial_GetStarter(void);
|
||||
void sub_80CCB68(void);
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@
|
|||
#include "window.h"
|
||||
#include "text_window.h"
|
||||
#include "menu.h"
|
||||
#include "dynamic_placeholder_text_util.h"
|
||||
#include "new_menu_helpers.h"
|
||||
#include "constants/songs.h"
|
||||
#include "constants/species.h"
|
||||
|
|
@ -79,6 +80,7 @@ extern const u16 sElevatorWindowMetatilesGoingUp[3][3];
|
|||
extern const u16 sElevatorWindowMetatilesGoingDown[3][3];
|
||||
extern const u8 sElevatorAnimationDuration[9];
|
||||
extern const u8 sElevatorWindowAnimDuration[9];
|
||||
extern u8 *const gUnknown_83F5AF8[3];
|
||||
|
||||
void Special_ShowDiploma(void)
|
||||
{
|
||||
|
|
@ -1275,3 +1277,76 @@ void sub_80CBDE8(void)
|
|||
gSelectedEventObject = 0;
|
||||
gSpecialVar_TextColor = 0xFF;
|
||||
}
|
||||
|
||||
u8 ContextNpcGetTextColor(void)
|
||||
{
|
||||
u8 gfxId;
|
||||
if (gSpecialVar_TextColor != 0xFF)
|
||||
return gSpecialVar_TextColor;
|
||||
else if (gSelectedEventObject == 0)
|
||||
return 3;
|
||||
else
|
||||
{
|
||||
gfxId = gMapObjects[gSelectedEventObject].graphicsId;
|
||||
if (gfxId >= MAP_OBJ_GFX_VAR_0)
|
||||
gfxId = VarGetFieldObjectGraphicsId(gfxId - MAP_OBJ_GFX_VAR_0);
|
||||
return GetColorFromTextColorTable(gfxId);
|
||||
}
|
||||
}
|
||||
|
||||
static bool8 HasMonBeenRenamed(u8 idx)
|
||||
{
|
||||
struct Pokemon * pokemon = &gPlayerParty[idx];
|
||||
u8 language;
|
||||
GetMonData(pokemon, MON_DATA_NICKNAME, gStringVar1);
|
||||
language = GetMonData(pokemon, MON_DATA_LANGUAGE, &language);
|
||||
if (language != LANGUAGE_ENGLISH)
|
||||
return TRUE;
|
||||
else if (StringCompare(gSpeciesNames[GetMonData(pokemon, MON_DATA_SPECIES, NULL)], gStringVar1) != 0)
|
||||
return TRUE;
|
||||
else
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 Special_HasLeadMonBeenRenamed(void)
|
||||
{
|
||||
return HasMonBeenRenamed(GetLeadMonIndex());
|
||||
}
|
||||
|
||||
void TV_PrintIntToStringVar(u8 varidx, s32 number)
|
||||
{
|
||||
s32 n = CountDigits(number);
|
||||
ConvertIntToDecimalStringN(gUnknown_83F5AF8[varidx], number, STR_CONV_MODE_LEFT_ALIGN, n);
|
||||
}
|
||||
|
||||
s32 CountDigits(s32 number)
|
||||
{
|
||||
if (number / 10 == 0)
|
||||
return 1;
|
||||
else if (number / 100 == 0)
|
||||
return 2;
|
||||
else if (number / 1000 == 0)
|
||||
return 3;
|
||||
else if (number / 10000 == 0)
|
||||
return 4;
|
||||
else if (number / 100000 == 0)
|
||||
return 5;
|
||||
else if (number / 1000000 == 0)
|
||||
return 6;
|
||||
else if (number / 10000000 == 0)
|
||||
return 7;
|
||||
else if (number / 100000000 == 0)
|
||||
return 8;
|
||||
else
|
||||
return 1;
|
||||
}
|
||||
|
||||
bool8 sub_80CBFA0(void)
|
||||
{
|
||||
struct Pokemon * pokemon = &gPlayerParty[gSpecialVar_0x8004];
|
||||
GetMonData(pokemon, MON_DATA_NICKNAME, gStringVar1);
|
||||
if (StringCompare(gStringVar3, gStringVar1) == 0)
|
||||
return FALSE;
|
||||
else
|
||||
return TRUE;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user