diff options
author | Diegoisawesome <diego@domoreaweso.me> | 2018-12-29 13:50:24 -0600 |
---|---|---|
committer | Diegoisawesome <diego@domoreaweso.me> | 2018-12-29 13:50:24 -0600 |
commit | c22a12d8d68fa22941e3b945ca3f9037d3f1a5fb (patch) | |
tree | 165bc0cbe52b454051e1e8e11fabf34d48122382 /src | |
parent | 2fb9f490fbf961ff737c897c025ce1f5a54b2639 (diff) |
trade source done
Diffstat (limited to 'src')
-rw-r--r-- | src/trade.c | 150 |
1 files changed, 150 insertions, 0 deletions
diff --git a/src/trade.c b/src/trade.c index dedd29c12..49d8b49b4 100644 --- a/src/trade.c +++ b/src/trade.c @@ -5271,3 +5271,153 @@ void c3_0805465C(u8 taskId) DestroyTask(taskId); } } + +void sub_807F39C(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + + if (data[0] == 0) + { + gUnknown_020322A0->unk_FB = 80; + gUnknown_020322A0->unk_FD = 160; + SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_OBJ); + SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG0 | + WININ_WIN0_BG1 | + WININ_WIN0_OBJ); + } + + SetGpuReg(REG_OFFSET_WIN0H, WIN_RANGE2(gUnknown_020322A0->unk_FB, gUnknown_020322A0->unk_FD)); + SetGpuReg(REG_OFFSET_WIN0V, WIN_RANGE2(gUnknown_020322A0->unk_FC, gUnknown_020322A0->unk_FE)); + + if (gUnknown_020322A0->unk_FB != 120) + { + data[0]++; + gUnknown_020322A0->unk_FB += 5; + gUnknown_020322A0->unk_FD -= 5; + + if (gUnknown_020322A0->unk_FB >= 116) + BlendPalettes(0x8, 0, RGB_WHITEALPHA); + } + else + { + ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); + DestroyTask(taskId); + } +} + +void sub_807F464(void) +{ + switch (gMain.state) + { + case 0: + gMain.state = 1; + StringExpandPlaceholders(gStringVar4, gText_CommunicationStandby5); + sub_807F1A8(0, gStringVar4, 0); + break; + case 1: + sub_8077288(0); + gMain.state = 2; + gUnknown_020322A0->unk_64 = 0; + break; + case 2: + if (IsLinkTaskFinished()) + { + gMain.state = 3; + StringExpandPlaceholders(gStringVar4, gText_SavingDontTurnOffPower); + sub_807F1A8(0, gStringVar4, 0); + IncrementGameStat(GAME_STAT_POKEMON_TRADES); + sub_8153380(); + gUnknown_020322A0->unk_64 = 0; + } + break; + case 3: + if (++gUnknown_020322A0->unk_64 == 5) + { + gMain.state = 4; + } + break; + case 4: + if (sub_81533AC()) + { + gMain.state = 5; + } + else + { + gUnknown_020322A0->unk_64 = 0; + gMain.state = 3; + } + break; + case 5: + sub_81533E0(); + gMain.state = 6; + gUnknown_020322A0->unk_64 = 0; + break; + case 6: + if (++gUnknown_020322A0->unk_64 > 10) + { + if (GetMultiplayerId() == 0) + { + gUnknown_020322A0->unk_64 = Random() % 30; + } + else + { + gUnknown_020322A0->unk_64 = 0; + } + gMain.state = 7; + } + break; + case 7: + if (gUnknown_020322A0->unk_64 == 0) + { + sub_8077288(1); + gMain.state = 8; + } + else + { + gUnknown_020322A0->unk_64--; + } + break; + case 8: + if (IsLinkTaskFinished()) + { + sub_8153408(); + gMain.state = 9; + } + break; + case 9: + if (++gUnknown_020322A0->unk_64 > 60) + { + gMain.state++; + sub_8077288(2); + } + break; + case 10: + if (IsLinkTaskFinished()) + { + FadeOutBGM(3); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK); + gMain.state = 11; + } + break; + case 11: + if (!gPaletteFade.active && IsBGMStopped() == TRUE) + { + sub_8077288(3); + gMain.state = 12; + } + break; + case 12: + if (IsLinkTaskFinished()) + { + gSoftResetDisabled = FALSE; + SetMainCallback2(c2_080543C4); + } + break; + } + + if (!HasLinkErrorOccurred()) + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); +} |