summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDiegoisawesome <diego@domoreaweso.me>2018-12-23 01:26:38 -0600
committerDiegoisawesome <diego@domoreaweso.me>2018-12-23 01:26:38 -0600
commita5c09bfec631c6437bd81c92d3878e7cdb1c8859 (patch)
tree021fa4d4cb90371553df30fe0c8ebb651d3c0fc7 /src
parenta39783a637533814430fe4fcda5ad144839b8c12 (diff)
S'more trade
Diffstat (limited to 'src')
-rw-r--r--src/trade.c96
1 files changed, 95 insertions, 1 deletions
diff --git a/src/trade.c b/src/trade.c
index 212074513..c9a9db607 100644
--- a/src/trade.c
+++ b/src/trade.c
@@ -4,6 +4,7 @@
#include "bg.h"
#include "cable_club.h"
#include "data2.h"
+#include "daycare.h"
#include "event_data.h"
#include "gpu_regs.h"
#include "graphics.h"
@@ -65,7 +66,7 @@ extern struct {
u8 unk_A8;
u8 unk_A9[11];
u8 filler_B4[0x8F0-0xB4];
- u8 tilemapBuffer[0x800];
+ u16 tilemapBuffer[0x400]; // 8F0
} *gUnknown_0203229C;
extern u8 *gUnknown_02032184;
extern u8 *gUnknown_02032188[14];
@@ -94,6 +95,8 @@ extern const u8 gUnknown_0832DF99[][2];
extern const u8 gText_EmptyString7[];
extern const u8 gText_NewLine3[];
extern const u8 gText_FourQuestionMarks[];
+extern const u8 gUnknown_0832DE3E[][6][2];
+extern const u8 gUnknown_0832DE56[][6][2];
bool32 sub_8077260(void);
void sub_80773D0(void);
@@ -2509,3 +2512,94 @@ void sub_8079B84(u8 a0, u8 a1, u8 *a2)
PutWindowTilemap(a1);
CopyWindowToVram(a1, 3);
}
+
+void sub_8079BE0(u8 a0)
+{
+ u8 i;
+ u8 sp[20];
+ u8 sp14[32];
+ struct Pokemon *mons = a0 == 0 ? gPlayerParty : gEnemyParty;
+
+ for (i = 0; i < gUnknown_0203229C->unk_36[a0]; i++)
+ {
+ GetMonData(&mons[i], MON_DATA_NICKNAME, sp);
+ StringCopy10(sp14, sp);
+ sub_8079B84(a0, i, sp14);
+ }
+}
+
+void sub_8079C4C(u8 a0, u8 a1, u8 a2, u8 a3, u8 a4, u8 a5)
+{
+ u8 r6;
+ u32 r2;
+ u8 gender;
+ u8 name[12];
+
+ CopyToBgTilemapBufferRect_ChangePalette(1, gUnknown_08DDD704, a4, a5, 6, 3, 0);
+ CopyBgTilemapBufferToVram(1);
+
+ if (a0 == 0)
+ {
+ r6 = GetMonData(&gPlayerParty[a1], MON_DATA_LEVEL, NULL);
+ }
+ else
+ {
+ r6 = GetMonData(&gEnemyParty[a1], MON_DATA_LEVEL, NULL);
+ }
+
+ if (gUnknown_0203229C->unk_51[a0][a1] == 0)
+ {
+ if (r6 / 10 != 0)
+ {
+ gUnknown_0203229C->tilemapBuffer[a2 + (a3 * 32)] = (r6 / 10) + 0x60;
+ }
+ gUnknown_0203229C->tilemapBuffer[a2 + (a3 * 32) + 1] = (r6 % 10) + 0x70;
+ }
+ else
+ {
+ gUnknown_0203229C->tilemapBuffer[a2 + (a3 * 32) - 32] = gUnknown_0203229C->tilemapBuffer[a2 + (a3 * 32) - 33];
+ gUnknown_0203229C->tilemapBuffer[a2 + (a3 * 32) - 31] = gUnknown_0203229C->tilemapBuffer[a2 + (a3 * 32) - 36] | 0x400;
+ }
+
+ if (gUnknown_0203229C->unk_51[a0][a1] != 0)
+ {
+ r2 = 0x480;
+ }
+ else
+ {
+ if (a0 == 0)
+ {
+ gender = GetMonGender(&gPlayerParty[a1]);
+ GetMonData(&gPlayerParty[a1], MON_DATA_NICKNAME, name);
+ }
+ else
+ {
+ gender = GetMonGender(&gEnemyParty[a1]);
+ GetMonData(&gEnemyParty[a1], MON_DATA_NICKNAME, name);
+ }
+
+ switch (gender)
+ {
+ case MON_MALE:
+ r2 = !NameHasGenderSymbol(name, MON_MALE) ? 0x84 : 0x83;
+ break;
+ case MON_FEMALE:
+ r2 = !NameHasGenderSymbol(name, MON_FEMALE) ? 0x85 : 0x83;
+ break;
+ default:
+ r2 = 0x83;
+ break;
+ }
+ }
+ gUnknown_0203229C->tilemapBuffer[(a3 - 1) * 32 + a2 + 1] = r2;
+}
+
+void sub_8079E44(u8 a0)
+{
+ int i;
+
+ for (i = 0; i < gUnknown_0203229C->unk_36[a0]; i++)
+ {
+ sub_8079C4C(a0, i, gUnknown_0832DE3E[a0][i][0], gUnknown_0832DE3E[a0][i][1], gUnknown_0832DE56[a0][i][0], gUnknown_0832DE56[a0][i][1]);
+ }
+}