mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2024-12-26 03:34:15 +01:00
through sub_8017E00
This commit is contained in:
parent
8fc51b0459
commit
bf4a73a67c
216
asm/union_room.s
216
asm/union_room.s
@ -5,222 +5,6 @@
|
|||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
||||||
thumb_func_start sub_8017CF8
|
|
||||||
sub_8017CF8: @ 8017CF8
|
|
||||||
lsls r0, 5
|
|
||||||
adds r0, r1
|
|
||||||
ldrb r0, [r0, 0xB]
|
|
||||||
lsls r0, 31
|
|
||||||
lsrs r0, 31
|
|
||||||
bx lr
|
|
||||||
thumb_func_end sub_8017CF8
|
|
||||||
|
|
||||||
thumb_func_start sub_8017D04
|
|
||||||
sub_8017D04: @ 8017D04
|
|
||||||
push {r4-r6,lr}
|
|
||||||
adds r5, r0, 0
|
|
||||||
movs r0, 0xCE
|
|
||||||
lsls r0, 1
|
|
||||||
cmp r1, r0
|
|
||||||
bne _08017D44
|
|
||||||
movs r4, 0
|
|
||||||
b _08017D2E
|
|
||||||
_08017D14:
|
|
||||||
movs r0, 0x64
|
|
||||||
muls r0, r4
|
|
||||||
ldr r1, =gPlayerParty
|
|
||||||
adds r0, r1
|
|
||||||
movs r1, 0x41
|
|
||||||
bl GetMonData
|
|
||||||
adds r1, r0, 0
|
|
||||||
movs r0, 0xCE
|
|
||||||
lsls r0, 1
|
|
||||||
cmp r1, r0
|
|
||||||
beq _08017D74
|
|
||||||
adds r4, 0x1
|
|
||||||
_08017D2E:
|
|
||||||
ldr r0, =gPlayerPartyCount
|
|
||||||
ldrb r0, [r0]
|
|
||||||
cmp r4, r0
|
|
||||||
blt _08017D14
|
|
||||||
movs r0, 0x2
|
|
||||||
b _08017D90
|
|
||||||
.pool
|
|
||||||
_08017D44:
|
|
||||||
movs r4, 0
|
|
||||||
ldr r0, =gPlayerPartyCount
|
|
||||||
ldrb r0, [r0]
|
|
||||||
cmp r4, r0
|
|
||||||
bge _08017D8E
|
|
||||||
ldr r6, =gBaseStats
|
|
||||||
_08017D50:
|
|
||||||
movs r0, 0x64
|
|
||||||
muls r0, r4
|
|
||||||
ldr r1, =gPlayerParty
|
|
||||||
adds r0, r1
|
|
||||||
movs r1, 0x41
|
|
||||||
bl GetMonData
|
|
||||||
adds r1, r0, 0
|
|
||||||
lsls r0, r1, 3
|
|
||||||
subs r0, r1
|
|
||||||
lsls r0, 2
|
|
||||||
adds r1, r0, r6
|
|
||||||
ldrb r0, [r1, 0x6]
|
|
||||||
cmp r0, r5
|
|
||||||
beq _08017D74
|
|
||||||
ldrb r0, [r1, 0x7]
|
|
||||||
cmp r0, r5
|
|
||||||
bne _08017D84
|
|
||||||
_08017D74:
|
|
||||||
movs r0, 0
|
|
||||||
b _08017D90
|
|
||||||
.pool
|
|
||||||
_08017D84:
|
|
||||||
adds r4, 0x1
|
|
||||||
ldr r0, =gPlayerPartyCount
|
|
||||||
ldrb r0, [r0]
|
|
||||||
cmp r4, r0
|
|
||||||
blt _08017D50
|
|
||||||
_08017D8E:
|
|
||||||
movs r0, 0x1
|
|
||||||
_08017D90:
|
|
||||||
pop {r4-r6}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
.pool
|
|
||||||
thumb_func_end sub_8017D04
|
|
||||||
|
|
||||||
thumb_func_start sub_8017D9C
|
|
||||||
sub_8017D9C: @ 8017D9C
|
|
||||||
push {lr}
|
|
||||||
adds r3, r0, 0
|
|
||||||
cmp r1, 0x44
|
|
||||||
beq _08017DD8
|
|
||||||
cmp r1, 0x44
|
|
||||||
bgt _08017DAE
|
|
||||||
cmp r1, 0x41
|
|
||||||
beq _08017DB8
|
|
||||||
b _08017DF6
|
|
||||||
_08017DAE:
|
|
||||||
cmp r1, 0x45
|
|
||||||
beq _08017DC8
|
|
||||||
cmp r1, 0x48
|
|
||||||
beq _08017DE8
|
|
||||||
b _08017DF6
|
|
||||||
_08017DB8:
|
|
||||||
ldr r0, =gUnknown_082EEA68
|
|
||||||
lsls r1, r2, 2
|
|
||||||
adds r1, r0
|
|
||||||
ldr r1, [r1]
|
|
||||||
b _08017DDA
|
|
||||||
.pool
|
|
||||||
_08017DC8:
|
|
||||||
ldr r0, =gUnknown_082EED3C
|
|
||||||
lsls r1, r2, 2
|
|
||||||
adds r1, r0
|
|
||||||
ldr r1, [r1]
|
|
||||||
b _08017DDA
|
|
||||||
.pool
|
|
||||||
_08017DD8:
|
|
||||||
ldr r1, =gUnknown_082EF7B0
|
|
||||||
_08017DDA:
|
|
||||||
adds r0, r3, 0
|
|
||||||
bl StringExpandPlaceholders
|
|
||||||
b _08017DF6
|
|
||||||
.pool
|
|
||||||
_08017DE8:
|
|
||||||
ldr r0, =gUnknown_082EEB08
|
|
||||||
lsls r1, r2, 2
|
|
||||||
adds r1, r0
|
|
||||||
ldr r1, [r1]
|
|
||||||
adds r0, r3, 0
|
|
||||||
bl StringExpandPlaceholders
|
|
||||||
_08017DF6:
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.pool
|
|
||||||
thumb_func_end sub_8017D9C
|
|
||||||
|
|
||||||
thumb_func_start sub_8017E00
|
|
||||||
sub_8017E00: @ 8017E00
|
|
||||||
push {r4-r6,lr}
|
|
||||||
adds r5, r0, 0
|
|
||||||
lsls r1, 24
|
|
||||||
lsrs r4, r1, 24
|
|
||||||
adds r6, r4, 0
|
|
||||||
bl GetMultiplayerId
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r3, r0, 24
|
|
||||||
ldr r2, =gLinkPlayers
|
|
||||||
movs r0, 0x1
|
|
||||||
adds r1, r3, 0
|
|
||||||
eors r1, r0
|
|
||||||
lsls r0, r1, 3
|
|
||||||
subs r0, r1
|
|
||||||
lsls r0, 2
|
|
||||||
adds r0, r2
|
|
||||||
ldrb r0, [r0, 0x13]
|
|
||||||
cmp r4, 0x44
|
|
||||||
beq _08017E54
|
|
||||||
cmp r4, 0x44
|
|
||||||
bgt _08017E38
|
|
||||||
cmp r4, 0x41
|
|
||||||
beq _08017E3E
|
|
||||||
b _08017E94
|
|
||||||
.pool
|
|
||||||
_08017E38:
|
|
||||||
cmp r6, 0x45
|
|
||||||
beq _08017E78
|
|
||||||
b _08017E94
|
|
||||||
_08017E3E:
|
|
||||||
ldr r2, =gUnknown_082EE984
|
|
||||||
lsls r1, r0, 1
|
|
||||||
adds r1, r0
|
|
||||||
lsls r1, 2
|
|
||||||
lsls r0, r3, 1
|
|
||||||
adds r0, r3
|
|
||||||
lsls r0, 3
|
|
||||||
adds r1, r0
|
|
||||||
b _08017E66
|
|
||||||
.pool
|
|
||||||
_08017E54:
|
|
||||||
ldr r2, =gUnknown_082EE984
|
|
||||||
lsls r1, r0, 1
|
|
||||||
adds r1, r0
|
|
||||||
lsls r1, 2
|
|
||||||
lsls r0, r3, 1
|
|
||||||
adds r0, r3
|
|
||||||
lsls r0, 3
|
|
||||||
adds r1, r0
|
|
||||||
adds r2, 0x8
|
|
||||||
_08017E66:
|
|
||||||
adds r1, r2
|
|
||||||
ldr r1, [r1]
|
|
||||||
adds r0, r5, 0
|
|
||||||
bl StringCopy
|
|
||||||
b _08017E94
|
|
||||||
.pool
|
|
||||||
_08017E78:
|
|
||||||
ldr r2, =gUnknown_082EE984
|
|
||||||
lsls r1, r0, 1
|
|
||||||
adds r1, r0
|
|
||||||
lsls r1, 2
|
|
||||||
lsls r0, r3, 1
|
|
||||||
adds r0, r3
|
|
||||||
lsls r0, 3
|
|
||||||
adds r1, r0
|
|
||||||
adds r2, 0x4
|
|
||||||
adds r1, r2
|
|
||||||
ldr r1, [r1]
|
|
||||||
adds r0, r5, 0
|
|
||||||
bl StringCopy
|
|
||||||
_08017E94:
|
|
||||||
pop {r4-r6}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.pool
|
|
||||||
thumb_func_end sub_8017E00
|
|
||||||
|
|
||||||
thumb_func_start sub_8017EA0
|
thumb_func_start sub_8017EA0
|
||||||
sub_8017EA0: @ 8017EA0
|
sub_8017EA0: @ 8017EA0
|
||||||
push {r4-r7,lr}
|
push {r4-r7,lr}
|
||||||
|
109
src/union_room.c
109
src/union_room.c
@ -129,7 +129,7 @@ s32 sub_8017CB0(struct UnkStruct_x20 * arg, s32 arg1);
|
|||||||
bool32 sub_8018024(void);
|
bool32 sub_8018024(void);
|
||||||
u32 sub_8017984(s32 arg0);
|
u32 sub_8017984(s32 arg0);
|
||||||
void sub_8018220(u8 *unused, struct UnkStruct_URoom *arg1, bool8 arg2);
|
void sub_8018220(u8 *unused, struct UnkStruct_URoom *arg1, bool8 arg2);
|
||||||
void sub_8017D9C(u8 *dst, u32 arg1, u32 playerGender);
|
void sub_8017D9C(u8 *dst, s32 arg1, u32 playerGender);
|
||||||
u32 sub_80179AC(struct UnkStruct_x20 *arg0);
|
u32 sub_80179AC(struct UnkStruct_x20 *arg0);
|
||||||
void sub_8017E00(u8 *dst, u8 arg1);
|
void sub_8017E00(u8 *dst, u8 arg1);
|
||||||
void sub_8019F04(u8 *spriteIds);
|
void sub_8019F04(u8 *spriteIds);
|
||||||
@ -423,23 +423,27 @@ ALIGNED(4) const u8 gUnknown_082EE92C[] = _("The trade will be started.{PAUSE 60
|
|||||||
ALIGNED(4) const u8 gUnknown_082EE94C[] = _("The battle will be started.{PAUSE 60}");
|
ALIGNED(4) const u8 gUnknown_082EE94C[] = _("The battle will be started.{PAUSE 60}");
|
||||||
ALIGNED(4) const u8 gUnknown_082EE96C[] = _("Entering the chat…{PAUSE 60}");
|
ALIGNED(4) const u8 gUnknown_082EE96C[] = _("Entering the chat…{PAUSE 60}");
|
||||||
|
|
||||||
const u8 *const gUnknown_082EE984[][3] = {
|
const u8 *const gUnknown_082EE984[][2][3] = {
|
||||||
{
|
{
|
||||||
gUnknown_082EE94C,
|
{
|
||||||
gUnknown_082EE96C,
|
gUnknown_082EE94C,
|
||||||
gUnknown_082EE92C
|
gUnknown_082EE96C,
|
||||||
|
gUnknown_082EE92C
|
||||||
|
}, {
|
||||||
|
gUnknown_082EE94C,
|
||||||
|
gUnknown_082EE96C,
|
||||||
|
gUnknown_082EE92C
|
||||||
|
}
|
||||||
}, {
|
}, {
|
||||||
gUnknown_082EE94C,
|
{
|
||||||
gUnknown_082EE96C,
|
gUnknown_082EE880,
|
||||||
gUnknown_082EE92C
|
gUnknown_082EE8B8,
|
||||||
}, {
|
gUnknown_082EE92C
|
||||||
gUnknown_082EE880,
|
}, {
|
||||||
gUnknown_082EE8B8,
|
gUnknown_082EE8D4,
|
||||||
gUnknown_082EE92C
|
gUnknown_082EE904,
|
||||||
}, {
|
gUnknown_082EE92C
|
||||||
gUnknown_082EE8D4,
|
}
|
||||||
gUnknown_082EE904,
|
|
||||||
gUnknown_082EE92C
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -5016,3 +5020,76 @@ s32 sub_8017CB0(struct UnkStruct_x20 * arg, s32 arg1)
|
|||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
s32 sub_8017CF8(s32 arg1, struct UnkStruct_Main0 *arg0)
|
||||||
|
{
|
||||||
|
return arg0->arr[arg1].unk.field_0.playerGender;
|
||||||
|
}
|
||||||
|
|
||||||
|
s32 sub_8017D04(u32 type, u32 species)
|
||||||
|
{
|
||||||
|
s32 i;
|
||||||
|
|
||||||
|
if (species == SPECIES_EGG)
|
||||||
|
{
|
||||||
|
for (i = 0; i < gPlayerPartyCount; i++)
|
||||||
|
{
|
||||||
|
species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2);
|
||||||
|
if (species == SPECIES_EGG)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for (i = 0; i < gPlayerPartyCount; i++)
|
||||||
|
{
|
||||||
|
species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2);
|
||||||
|
if (gBaseStats[species].type1 == type || gBaseStats[species].type2 == type)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_8017D9C(u8 *dst, s32 arg1, u32 playerGender)
|
||||||
|
{
|
||||||
|
switch (arg1)
|
||||||
|
{
|
||||||
|
case 0x41:
|
||||||
|
StringExpandPlaceholders(dst, gUnknown_082EEA68[playerGender]);
|
||||||
|
break;
|
||||||
|
case 0x45:
|
||||||
|
StringExpandPlaceholders(dst, gUnknown_082EED3C[playerGender]);
|
||||||
|
break;
|
||||||
|
case 0x44:
|
||||||
|
StringExpandPlaceholders(dst, gUnknown_082EF7B0);
|
||||||
|
break;
|
||||||
|
case 0x48:
|
||||||
|
StringExpandPlaceholders(dst, gUnknown_082EEB08[playerGender]);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_8017E00(u8 *dst, u8 arg1)
|
||||||
|
{
|
||||||
|
u8 mpId = GetMultiplayerId();
|
||||||
|
u8 gender = gLinkPlayers[mpId ^ 1].gender;
|
||||||
|
|
||||||
|
switch (arg1)
|
||||||
|
{
|
||||||
|
case 0x41:
|
||||||
|
StringCopy(dst, gUnknown_082EE984[mpId][gender][0]);
|
||||||
|
break;
|
||||||
|
case 0x44:
|
||||||
|
StringCopy(dst, gUnknown_082EE984[mpId][gender][2]);
|
||||||
|
break;
|
||||||
|
case 0x45:
|
||||||
|
StringCopy(dst, gUnknown_082EE984[mpId][gender][1]);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user