summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2017-09-02 18:35:33 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2017-09-02 18:35:33 -0400
commit01b88dba1f0a7f28c8d047e711affeaa14c257d4 (patch)
treec1282144a75f82e7f706265a3f276657d35174f6
parent99b65c1b5e8b4f75ca50cb21ecf84b20eff944ae (diff)
sub_804A2B4; change `struct Window->config` to const
-rw-r--r--asm/trade.s63
-rw-r--r--include/rom_8077ABC.h1
-rw-r--r--include/text.h4
-rw-r--r--ld_script.txt2
-rw-r--r--src/text.c4
-rw-r--r--src/trade.c164
6 files changed, 127 insertions, 111 deletions
diff --git a/asm/trade.s b/asm/trade.s
index 2512e7802..1c31dced3 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -493,68 +493,7 @@ _0804A2AC: .4byte gUnknown_0820C3D1
_0804A2B0: .4byte gUnknown_03004824
thumb_func_end sub_8049ED4
- thumb_func_start sub_804A2B4
-sub_804A2B4: @ 804A2B4
- push {r4,r5,lr}
- sub sp, 0xC
- adds r5, r0, 0
- lsls r1, 24
- lsls r2, 24
- lsrs r2, 24
- cmp r1, 0
- bne _0804A2F4
- movs r0, 0x64
- adds r4, r2, 0
- muls r4, r0
- ldr r0, _0804A2F0 @ =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- adds r0, r5, 0
- mov r1, sp
- bl StringCopy10
- adds r0, r4, 0
- bl GetMonGender
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- b _0804A31E
- .align 2, 0
-_0804A2F0: .4byte gPlayerParty
-_0804A2F4:
- movs r0, 0x64
- adds r4, r2, 0
- muls r4, r0
- ldr r0, _0804A334 @ =gEnemyParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- adds r0, r5, 0
- mov r1, sp
- bl StringCopy10
- adds r0, r4, 0
- bl GetMonGender
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
-_0804A31E:
- ldr r0, _0804A338 @ =gWindowConfig_81E7294
- adds r1, r5, 0
- bl GetStringWidthGivenWindowConfig
- lsls r0, 24
- lsrs r0, 24
- add sp, 0xC
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0804A334: .4byte gEnemyParty
-_0804A338: .4byte gWindowConfig_81E7294
- thumb_func_end sub_804A2B4
+ .section .text.sub_804A33C
thumb_func_start sub_804A33C
sub_804A33C: @ 804A33C
diff --git a/include/rom_8077ABC.h b/include/rom_8077ABC.h
index 11e94e1f5..34ad7b432 100644
--- a/include/rom_8077ABC.h
+++ b/include/rom_8077ABC.h
@@ -55,5 +55,6 @@ void sub_807A784(u8 taskId);
void sub_807A850(struct Task *task, u8 taskId);
void sub_807A8D4(struct Sprite *sprite);
void sub_807A960(struct Sprite *sprite);
+void sub_8078A34(struct Sprite *sprite);
#endif // GUARD_ROM_8077ABC_H
diff --git a/include/text.h b/include/text.h
index d0c9f0d9d..6b2efc7ae 100644
--- a/include/text.h
+++ b/include/text.h
@@ -125,7 +125,7 @@ struct Window
/*0x20*/ const u8 *text;
/*0x24*/ u8 *tileData;
/*0x28*/ u16 *tilemap;
- /*0x2C*/ struct WindowConfig *config;
+ /*0x2C*/ const struct WindowConfig *config;
};
extern vu16 *const gBGControlRegs[];
@@ -246,7 +246,7 @@ u8 sub_8004DB0(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8 l
u8 sub_8004E24(struct Window *win);
void sub_8004E28(struct Window *win, u8 *foreground, u8 *background, u8 *shadow);
void sub_8004E3C(struct WindowConfig *winConfig, u8 *tileData, const u8 *text);
-u8 GetStringWidthGivenWindowConfig(struct WindowConfig *winConfig, const u8 *s);
+u8 GetStringWidthGivenWindowConfig(const struct WindowConfig *winConfig, const u8 *s);
void ConvertInternationalString(u8 *s, u8 language);
void StripExtCtrlCodes(u8 *str);
s32 StringCompareWithoutExtCtrlCodes(const u8 *str1, const u8 *str2);
diff --git a/ld_script.txt b/ld_script.txt
index 98af35582..170ee9cca 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -80,6 +80,8 @@ SECTIONS {
src/load_save.o(.text);
src/trade.o(.text);
asm/trade.o(.text);
+ src/trade.o(.text.sub_804A2B4);
+ asm/trade.o(.text.sub_804A33C);
src/trade.o(.text.sub_804A96C);
asm/trade.o(.text.sub_804A9F4);
src/trade.o(.text.sub_804DAD4);
diff --git a/src/text.c b/src/text.c
index b27084b86..1dc81df0c 100644
--- a/src/text.c
+++ b/src/text.c
@@ -1943,7 +1943,7 @@ void InitWindowFromConfig(struct Window *win, const struct WindowConfig *winConf
void InitWindow(struct Window *win, const u8 *text, u16 tileDataStartOffset, u8 left, u8 top)
{
- struct WindowConfig *winConfig = win->config;
+ const struct WindowConfig *winConfig = win->config;
win->textMode = winConfig->textMode;
win->fontNum = winConfig->fontNum;
win->language = GAME_LANGUAGE;
@@ -3653,7 +3653,7 @@ void sub_8004E3C(struct WindowConfig *winConfig, u8 *tileData, const u8 *text)
sub_8002F44(&sTempWindow);
}
-u8 GetStringWidthGivenWindowConfig(struct WindowConfig *winConfig, const u8 *s)
+u8 GetStringWidthGivenWindowConfig(const struct WindowConfig *winConfig, const u8 *s)
{
sTempWindow.config = winConfig;
InitWindow(&sTempWindow, s, 0, 0, 0);
diff --git a/src/trade.c b/src/trade.c
index 9d28ec8a5..302d323d3 100644
--- a/src/trade.c
+++ b/src/trade.c
@@ -23,6 +23,7 @@
#include "pokemon_summary_screen.h"
#include "rom4.h"
#include "trade.h"
+#include "rom_8077ABC.h"
#ifdef ENGLISH
#define sub_804A96C_alt sub_804A96C
@@ -53,13 +54,6 @@ struct UnkStructC {
};
struct UnkStructD {
- /*0x00*/ u8 pad00[0x10];
- /*0x10*/ u8 var10;
- /*0x11*/ u8 pad11[1];
- /*0x12*/ u16 var12[1];
-};
-
-struct UnkStructE {
/*0x00*/ u8 filler_00[8];
/*0x08*/ void *vramAddr;
/*0x0c*/ u8 filler_0c[4];
@@ -71,12 +65,10 @@ struct TradeEwramSubstruct {
/*0x0000*/ u8 unk_0000;
/*0x0001*/ u8 unk_0001;
/*0x0004*/ struct Window window;
- /*0x0034*/ u8 playerPartyIcons[6];
- /*0x003a*/ u8 friendPartyIcons[6];
+ /*0x0034*/ u8 partyIcons[2][6];
/*0x0040*/ u8 tradeMenuCursorSpriteIdx;
/*0x0041*/ u8 tradeMenuCursorPosition;
- /*0x0042*/ u8 playerPartyCount;
- /*0x0043*/ u8 friendPartyCount;
+ /*0x0042*/ u8 partyCounts[2];
/*0x0044*/ u8 tradeMenuOptionsActive[13];
/*0x0051*/ u8 unk_0051[6];
/*0x0056*/ u8 filler_0057[30];
@@ -100,7 +92,7 @@ struct TradeEwramSubstruct {
/*0x00b4*/ u8 unk_00b4;
/*0x00b5*/ u8 unk_00b5[7];
/*0x00bc*/ u8 filler_00bc[12];
- /*0x00c8*/ struct UnkStructE unk_00c8;
+ /*0x00c8*/ struct UnkStructD unk_00c8;
/*0x08dc*/ u8 filler_04dc[0x724];
};
@@ -123,7 +115,7 @@ static void sub_8047EC0(void);
/*static*/ void sub_804ACD8(const u8 *, u8 *, u8);
static void nullsub_5(u8, u8);
/*static*/ void sub_804AA88(void);
-/*static*/ void sub_804A964(struct UnkStructE *, void *);
+/*static*/ void sub_804A964(struct UnkStructD *, void *);
static void sub_80489F4(void);
/*static*/ void sub_804AA0C(u8);
static bool8 sub_8048D44(void);
@@ -137,13 +129,13 @@ static void sub_8048B0C(u8);
/*static*/ void sub_804AF10(void);
static void sub_80494D8(void);
static void sub_8048AB4(void);
-/*static*/ void sub_804A940(struct UnkStructE *);
+/*static*/ void sub_804A940(struct UnkStructD *);
/*static*/ void sub_804B41C(void);
static void sub_8049DE0(void);
/*static*/ void sub_804AB30(void);
/*static*/ void sub_8049ED4(u8);
/*static*/ void sub_804A6DC(u8);
-/*static*/ void sub_804A938(struct UnkStructE *);
+/*static*/ void sub_804A938(struct UnkStructD *);
/*static*/ u8 sub_804A9F4(void);
/*static*/ u8 sub_804AA00(void);
static void sub_8049E9C(u8);
@@ -151,6 +143,7 @@ static void sub_8049E9C(u8);
/*static*/ void sub_804A80C(void);
static u8 sub_80499F0(const u8 *, u8, u8);
/*static*/ void sub_804A840(u8);
+/*static*/ u8 sub_804A2B4(u8 *, u8, u8);
extern u8 gUnknown_020297D8[2];
extern u8 *gUnknown_020296CC[13];
@@ -751,22 +744,22 @@ static void sub_8047EC0(void)
CalculateEnemyPartyCount();
FillWindowRect_DefaultPalette(&gUnknown_03004824->window, 0, 0, 0, 29, 19);
REG_DISPCNT = 0;
- gUnknown_03004824->playerPartyCount = gPlayerPartyCount;
- gUnknown_03004824->friendPartyCount = gEnemyPartyCount;
- for (i = 0; i < gUnknown_03004824->playerPartyCount; i ++)
- gUnknown_03004824->playerPartyIcons[i] = CreateMonIcon(GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2), sub_809D62C, gTradeMonSpriteCoords[i][0] * 8 + 14, gTradeMonSpriteCoords[i][1] * 8 - 12, TRUE, GetMonData(&gPlayerParty[i], MON_DATA_PERSONALITY));
- for (i = 0; i < gUnknown_03004824->friendPartyCount; i ++)
- gUnknown_03004824->friendPartyIcons[i] = CreateMonIcon(GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2, NULL), sub_809D62C, gTradeMonSpriteCoords[6 + i][0] * 8 + 14, gTradeMonSpriteCoords[6 + i][1] * 8 - 12, TRUE, GetMonData(&gEnemyParty[i], MON_DATA_PERSONALITY));
+ gUnknown_03004824->partyCounts[0] = gPlayerPartyCount;
+ gUnknown_03004824->partyCounts[1] = gEnemyPartyCount;
+ for (i = 0; i < gUnknown_03004824->partyCounts[0]; i ++)
+ gUnknown_03004824->partyIcons[0][i] = CreateMonIcon(GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2), sub_809D62C, gTradeMonSpriteCoords[i][0] * 8 + 14, gTradeMonSpriteCoords[i][1] * 8 - 12, TRUE, GetMonData(&gPlayerParty[i], MON_DATA_PERSONALITY));
+ for (i = 0; i < gUnknown_03004824->partyCounts[1]; i ++)
+ gUnknown_03004824->partyIcons[1][i] = CreateMonIcon(GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2, NULL), sub_809D62C, gTradeMonSpriteCoords[6 + i][0] * 8 + 14, gTradeMonSpriteCoords[6 + i][1] * 8 - 12, TRUE, GetMonData(&gEnemyParty[i], MON_DATA_PERSONALITY));
nullsub_5(2, 0);
gMain.state ++;
break;
case 7:
LoadHeldItemIconGraphics();
- CreateHeldItemIcons(&gUnknown_03004824->playerPartyCount, gUnknown_03004824->playerPartyIcons, 0);
+ CreateHeldItemIcons(&gUnknown_03004824->partyCounts[0], gUnknown_03004824->partyIcons[0], 0);
gMain.state ++;
break;
case 8:
- CreateHeldItemIcons(&gUnknown_03004824->playerPartyCount, gUnknown_03004824->playerPartyIcons, 1);
+ CreateHeldItemIcons(&gUnknown_03004824->partyCounts[0], gUnknown_03004824->partyIcons[0], 1);
gMain.state ++;
break;
case 9:
@@ -899,24 +892,24 @@ void sub_80484F4(void)
case 6:
CalculateEnemyPartyCount();
REG_DISPCNT = 0;
- gUnknown_03004824->playerPartyCount = gPlayerPartyCount;
- gUnknown_03004824->friendPartyCount = gEnemyPartyCount;
+ gUnknown_03004824->partyCounts[0] = gPlayerPartyCount;
+ gUnknown_03004824->partyCounts[1] = gEnemyPartyCount;
sub_804A41C(0);
sub_804A41C(1);
- for (i = 0; i < gUnknown_03004824->playerPartyCount; i ++)
- gUnknown_03004824->playerPartyIcons[i] = CreateMonIcon(GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2, NULL), sub_809D62C, gTradeMonSpriteCoords[i][0] * 8 + 14, gTradeMonSpriteCoords[i][1] * 8 - 12, TRUE, GetMonData(&gPlayerParty[i], MON_DATA_PERSONALITY));
- for (i = 0; i < gUnknown_03004824->friendPartyCount; i ++)
- gUnknown_03004824->friendPartyIcons[i] = CreateMonIcon(GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2, NULL), sub_809D62C, gTradeMonSpriteCoords[6 + i][0] * 8 + 14, gTradeMonSpriteCoords[6 + i][1] * 8 - 12, TRUE, GetMonData(&gEnemyParty[i], MON_DATA_PERSONALITY));
+ for (i = 0; i < gUnknown_03004824->partyCounts[0]; i ++)
+ gUnknown_03004824->partyIcons[0][i] = CreateMonIcon(GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2, NULL), sub_809D62C, gTradeMonSpriteCoords[i][0] * 8 + 14, gTradeMonSpriteCoords[i][1] * 8 - 12, TRUE, GetMonData(&gPlayerParty[i], MON_DATA_PERSONALITY));
+ for (i = 0; i < gUnknown_03004824->partyCounts[1]; i ++)
+ gUnknown_03004824->partyIcons[1][i] = CreateMonIcon(GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2, NULL), sub_809D62C, gTradeMonSpriteCoords[6 + i][0] * 8 + 14, gTradeMonSpriteCoords[6 + i][1] * 8 - 12, TRUE, GetMonData(&gEnemyParty[i], MON_DATA_PERSONALITY));
nullsub_5(2, 0);
gMain.state ++;
break;
case 7:
LoadHeldItemIconGraphics();
- CreateHeldItemIcons(&gUnknown_03004824->playerPartyCount, gUnknown_03004824->playerPartyIcons, 0);
+ CreateHeldItemIcons(&gUnknown_03004824->partyCounts[0], gUnknown_03004824->partyIcons[0], 0);
gMain.state ++;
break;
case 8:
- CreateHeldItemIcons(&gUnknown_03004824->playerPartyCount, gUnknown_03004824->playerPartyIcons, 1);
+ CreateHeldItemIcons(&gUnknown_03004824->partyCounts[0], gUnknown_03004824->partyIcons[0], 1);
gMain.state ++;
break;
case 9:
@@ -1271,18 +1264,18 @@ static void sub_8048C70(void)
int i;
for (i = 0; i < PARTY_SIZE; i ++)
{
- if (i < gUnknown_03004824->playerPartyCount)
+ if (i < gUnknown_03004824->partyCounts[0])
{
- gSprites[gUnknown_03004824->playerPartyIcons[i]].invisible = FALSE;
+ gSprites[gUnknown_03004824->partyIcons[0][i]].invisible = FALSE;
gUnknown_03004824->tradeMenuOptionsActive[i] = TRUE;
}
else
{
gUnknown_03004824->tradeMenuOptionsActive[i] = FALSE;
}
- if (i < gUnknown_03004824->friendPartyCount)
+ if (i < gUnknown_03004824->partyCounts[1])
{
- gSprites[gUnknown_03004824->friendPartyIcons[i]].invisible = FALSE;
+ gSprites[gUnknown_03004824->partyIcons[1][i]].invisible = FALSE;
gUnknown_03004824->tradeMenuOptionsActive[i + 6] = TRUE;
}
else
@@ -1742,7 +1735,7 @@ static void sub_8049860(void)
BeginNormalPaletteFade(-1, 0, 0, 16, 0);
gUnknown_03004824->unk_007b = 2;
}
- else if (sub_80499F0(gUnknown_03004824->unk_0051, gUnknown_03004824->playerPartyCount, gUnknown_03004824->tradeMenuCursorPosition) == 0)
+ else if (sub_80499F0(gUnknown_03004824->unk_0051, gUnknown_03004824->partyCounts[0], gUnknown_03004824->tradeMenuCursorPosition) == 0)
{
sub_804AADC(3, 2);
gUnknown_03004824->unk_007b = 8;
@@ -1775,11 +1768,11 @@ static void sub_804997C(void)
{
if (gUnknown_03004824->tradeMenuCursorPosition < PARTY_SIZE)
{
- ShowPokemonSummaryScreen(gPlayerParty, gUnknown_03004824->tradeMenuCursorPosition, gUnknown_03004824->playerPartyCount - 1, sub_80484F4, 4);
+ ShowPokemonSummaryScreen(gPlayerParty, gUnknown_03004824->tradeMenuCursorPosition, gUnknown_03004824->partyCounts[0] - 1, sub_80484F4, 4);
}
else
{
- ShowPokemonSummaryScreen(gEnemyParty, gUnknown_03004824->tradeMenuCursorPosition - 6, gUnknown_03004824->friendPartyCount - 1, sub_80484F4, 4);
+ ShowPokemonSummaryScreen(gEnemyParty, gUnknown_03004824->tradeMenuCursorPosition - 6, gUnknown_03004824->partyCounts[1] - 1, sub_80484F4, 4);
}
}
}
@@ -1802,11 +1795,11 @@ static void sub_8049A20(void)
{
u8 unk_0051[12];
int i;
- for (i = 0; i < gUnknown_03004824->playerPartyCount; i ++)
+ for (i = 0; i < gUnknown_03004824->partyCounts[0]; i ++)
{
unk_0051[i] = gUnknown_03004824->unk_0051[i];
}
- if (sub_80499F0(unk_0051, gUnknown_03004824->playerPartyCount, gUnknown_03004824->tradeMenuCursorPosition) == 0)
+ if (sub_80499F0(unk_0051, gUnknown_03004824->partyCounts[0], gUnknown_03004824->tradeMenuCursorPosition) == 0)
{
sub_804AADC(3, 2);
gUnknown_03004824->linkData[0] = 0xbbcc;
@@ -2024,9 +2017,90 @@ static void sub_8049E9C(u8 a0)
}
}
+//static void sub_8049ED4(u8 a0)
+//{
+// struct Pokemon pokemon;
+// u8 i;
+// u8 temp0 = gUnknown_03004824->unk_0082[a0];
+// u8 sp_plus_6c = temp0 < PARTY_SIZE ? 1 : 0;
+// u8 r8 = temp0 % 6;
+// u8 stringLength;
+// u8 string[12];
+//
+// switch (gUnknown_03004824->unk_0080[a0])
+// {
+// case 1:
+// for (i = 0; i < gUnknown_03004824->partyCounts[a0]; i ++)
+// {
+// gSprites[gUnknown_03004824->partyIcons[sp_plus_6c][i]].invisible = TRUE;
+// }
+// gSprites[gUnknown_03004824->partyIcons[sp_plus_6c][r8]].invisible = FALSE;
+// gSprites[gUnknown_03004824->partyIcons[sp_plus_6c][r8]].data0 = 20;
+// gSprites[gUnknown_03004824->partyIcons[sp_plus_6c][r8]].data2 = (gTradeMonSpriteCoords[sp_plus_6c][0] + gTradeMonSpriteCoords[sp_plus_6c][1]) / 2 * 8 + 14;
+// gSprites[gUnknown_03004824->partyIcons[sp_plus_6c][r8]].data4 = gTradeMonSpriteCoords[sp_plus_6c][1] * 8 - 12;
+// oamt_set_x3A_32(&gSprites[gUnknown_03004824->partyIcons[sp_plus_6c][r8]], sub_809D62C);
+// gUnknown_03004824->unk_0080[a0] ++;
+// sub_8078A34(&gSprites[gUnknown_03004824->partyIcons[sp_plus_6c][r8]]);
+// HandleDestroyMenuCursors();
+// FillWindowRect_DefaultPalette(&gUnknown_03004824->window, 0, gUnknown_0820C330[sp_plus_6c][1], 0, gUnknown_0820C330[sp_plus_6c][1], 19);
+// sub_804A96C_alt(&gUnknown_03004824->unk_00c8, 15 * sp_plus_6c, 0, gTradePartyBoxTilemap, 15, 17, 0);
+// if (sp_plus_6c == 0)
+// {
+// sub_804A80C();
+// }
+// break;
+// case 2:
+// if (gSprites[gUnknown_03004824->partyIcons[sp_plus_6c][r8]].callback == sub_809D62C)
+// {
+// gUnknown_03004824->unk_0080[a0] = 3;
+// }
+// break;
+// case 3:
+// sub_804A96C_alt(&gUnknown_03004824->unk_00c8, 15 * sp_plus_6c, 0, gTradePartyBoxTilemap, 15, 11, 0);
+// gSprites[gUnknown_03004824->partyIcons[sp_plus_6c][r8]].pos1.x = (gTradeMonSpriteCoords[sp_plus_6c][0] + gTradeMonSpriteCoords[sp_plus_6c][1]) / 2 * 8 + 14;
+// gSprites[gUnknown_03004824->partyIcons[sp_plus_6c][r8]].pos1.y = gTradeMonSpriteCoords[sp_plus_6c][1] * 8 - 12;
+// gSprites[gUnknown_03004824->partyIcons[sp_plus_6c][r8]].pos2.x = 0;
+// gSprites[gUnknown_03004824->partyIcons[sp_plus_6c][r8]].pos2.y = 0;
+// stringLength = sub_804A2B4(&pokemon, sp_plus_6c, r8);
+// string[0] = 0xFC;
+// string[1] = 0x06;
+// string[2] = 0x04;
+// string[3] = 0xFC;
+// string[4] = 0x11;
+// string[5] = (64 - stringLength + (stringLength > 64 ? 1 : 0)) / 2;
+// sub_8003460(&gUnknown_03004824->window, string, sp_plus_6c * 192 + gUnknown_03004824->unk_007a, gUnknown_0820C334[sp_plus_6c][0], gUnknown_0820C334[sp_plus_6c][1]);
+// sub_804A33C()
+// break;
+// case 4:
+// break;
+// }
+//}
+
+asm(".section .text.sub_804A2B4");
+
+u8 sub_804A2B4(u8 *a0, u8 whichParty, u8 whichPokemon)
+{
+ u8 string[11];
+ if (whichParty == 0)
+ {
+ GetMonData(&gPlayerParty[whichPokemon], MON_DATA_NICKNAME, string);
+ StringCopy10(a0, string);
+ GetMonGender(&gPlayerParty[whichPokemon]);
+ GetMonData(&gPlayerParty[whichPokemon], MON_DATA_LEVEL);
+ }
+ else
+ {
+ GetMonData(&gEnemyParty[whichPokemon], MON_DATA_NICKNAME, string);
+ StringCopy10(a0, string);
+ GetMonGender(&gEnemyParty[whichPokemon]);
+ GetMonData(&gEnemyParty[whichPokemon], MON_DATA_LEVEL);
+ }
+ return GetStringWidthGivenWindowConfig(&gWindowConfig_81E7294, a0);
+}
+
asm(".section .text.sub_804A96C");
-/*static*/ void sub_804A96C(struct UnkStructD *arg0, u8 left, u8 top, u16 *tilemap, u8 width, u8 height, u16 sp8) {
+/*static*/ void sub_804A96C(struct UnkStructD *arg0, u8 left, u8 top, const u16 *tilemap, u8 width, u8 height, u16 sp8) {
int y, x;
for (y = 0; y < height; y++)
@@ -2034,20 +2108,20 @@ asm(".section .text.sub_804A96C");
for (x = 0; x < width; x++)
{
- arg0->var12[(top * 32 + left) + y * 32 + x] = tilemap[width * y + x] | sp8;
+ arg0->unk_12[(top * 32 + left) + y * 32 + x] = tilemap[width * y + x] | sp8;
}
}
#if ENGLISH
- arg0->var10 = 1;
+ arg0->unk_10 = 1;
#endif
}
#if GERMAN
-void sub_804A96C_alt(struct UnkStructD *arg0, u8 left, u8 top, u16 *tilemap, u8 width, u8 height, u16 sp8) {
+void sub_804A96C_alt(struct UnkStructD *arg0, u8 left, u8 top, const u16 *tilemap, u8 width, u8 height, u16 sp8) {
sub_804A96C(arg0, left, top, tilemap, width, height, sp8);
- arg0->var10 = 1;
+ arg0->unk_10 = 1;
}
#endif