mirror of
https://github.com/pret/pokefirered.git
synced 2026-05-11 22:45:18 -05:00
1084 lines
37 KiB
C
1084 lines
37 KiB
C
#include "global.h"
|
|
#include "berry.h"
|
|
#include "text.h"
|
|
#include "constants/items.h"
|
|
|
|
static const u8 sBerryDescriptionPart1_Cheri[] = _("とても かわいい はなが さく.");
|
|
static const u8 sBerryDescriptionPart2_Cheri[] = _("まっかな みは とても からい.");
|
|
static const u8 sBerryDescriptionPart1_Chesto[] = _("そとの かわの ぶぶんも なかみも すべてが");
|
|
static const u8 sBerryDescriptionPart2_Chesto[] = _("かたい. どこを たべても しぶい.");
|
|
static const u8 sBerryDescriptionPart1_Pecha[] = _("とても あまくて おいしい.");
|
|
static const u8 sBerryDescriptionPart2_Pecha[] = _("やわらかいので はこぶときは ちゅうい.");
|
|
static const u8 sBerryDescriptionPart1_Rawst[] = _("はっぱの ぶぶんが ながく まるまっていると");
|
|
static const u8 sBerryDescriptionPart2_Rawst[] = _("みが とても にがく なるらしい.");
|
|
static const u8 sBerryDescriptionPart1_Aspear[] = _("かたい みの なかには すいぶんが とても");
|
|
static const u8 sBerryDescriptionPart2_Aspear[] = _("おおく ふくまれている. かなり すっぱい.");
|
|
static const u8 sBerryDescriptionPart1_Leppa[] = _("クラボなどに くらべて すこし そだつのが");
|
|
static const u8 sBerryDescriptionPart2_Leppa[] = _("おそい. みが ちいさいほど おいしい.");
|
|
static const u8 sBerryDescriptionPart1_Oran[] = _("いろいろな あじが まざった ふしぎな み.");
|
|
static const u8 sBerryDescriptionPart2_Oran[] = _("みを つけるのに はんにち かかる.");
|
|
static const u8 sBerryDescriptionPart1_Persim[] = _("たいようが だいすき. ひに あたると");
|
|
static const u8 sBerryDescriptionPart2_Persim[] = _("どんどん いろが あざやかに なる.");
|
|
static const u8 sBerryDescriptionPart1_Lum[] = _("そだつのに じかんが かかるが たいせつに");
|
|
static const u8 sBerryDescriptionPart2_Lum[] = _("そだてると みが 2つ つくことも ある.");
|
|
static const u8 sBerryDescriptionPart1_Sitrus[] = _("オレンとは きょうだいの ような そんざい.");
|
|
static const u8 sBerryDescriptionPart2_Sitrus[] = _("おおきくて あじも ととのっている.");
|
|
static const u8 sBerryDescriptionPart1_Figy[] = _("たべられた あとのような かたちの なかには");
|
|
static const u8 sBerryDescriptionPart2_Figy[] = _("からい せいぶんが つまっている.");
|
|
static const u8 sBerryDescriptionPart1_Wiki[] = _("まわりに ついている イボイボは ポケモンが");
|
|
static const u8 sBerryDescriptionPart2_Wiki[] = _("もちやすいように できたと いわれている.");
|
|
static const u8 sBerryDescriptionPart1_Mago[] = _("おおきく なれば なるほど みが まがる.");
|
|
static const u8 sBerryDescriptionPart2_Mago[] = _("まがるほど あまくて おいしい.");
|
|
static const u8 sBerryDescriptionPart1_Aguav[] = _("ちいさい サイズの はなで しかも ひかりを");
|
|
static const u8 sBerryDescriptionPart2_Aguav[] = _("ひつようと しない めずらしい きのみ.");
|
|
static const u8 sBerryDescriptionPart1_Iapapa[] = _("とても おおきな すっぱい きのみ.");
|
|
static const u8 sBerryDescriptionPart2_Iapapa[] = _("そだてるには みじかくても 1にち かかる.");
|
|
static const u8 sBerryDescriptionPart1_Razz[] = _("あかい みは たべると ちょっぴり からい.");
|
|
static const u8 sBerryDescriptionPart2_Razz[] = _("そだつのが はやく 4じかんで みを つける");
|
|
static const u8 sBerryDescriptionPart1_Bluk[] = _("そとがわは あおいいろだが たべると");
|
|
static const u8 sBerryDescriptionPart2_Bluk[] = _("くちの なかが まっくろに なる.");
|
|
static const u8 sBerryDescriptionPart1_Nanab[] = _("せかいで 7ばんめに はっけん されたので");
|
|
static const u8 sBerryDescriptionPart2_Nanab[] = _("ナナという せつが ゆうりょく. あまい.");
|
|
static const u8 sBerryDescriptionPart1_Wepear[] = _("ちいさな しろい はなが さく. にがさと");
|
|
static const u8 sBerryDescriptionPart2_Wepear[] = _("すっぱさが まざりあった びみょうな あじ.");
|
|
static const u8 sBerryDescriptionPart1_Pinap[] = _("かぜに よわく さむさにも よわい.");
|
|
static const u8 sBerryDescriptionPart2_Pinap[] = _("みの なかが からく そとがわが すっぱい.");
|
|
static const u8 sBerryDescriptionPart1_Pomeg[] = _("どんなに みずを あげても えいようが");
|
|
static const u8 sBerryDescriptionPart2_Pomeg[] = _("あっても 6つの み しか つけない.");
|
|
static const u8 sBerryDescriptionPart1_Kelpsy[] = _("ねっこの ような かたちの めずらしい");
|
|
static const u8 sBerryDescriptionPart2_Kelpsy[] = _("しゅるい. とても おおきな はなが さく.");
|
|
static const u8 sBerryDescriptionPart1_Qualot[] = _("みずが だいすき. ずっと あめが ふる");
|
|
static const u8 sBerryDescriptionPart2_Qualot[] = _("ばしょでも しっかりと そだつ.");
|
|
static const u8 sBerryDescriptionPart1_Hondew[] = _("とても こうかで なかなか めに することが");
|
|
static const u8 sBerryDescriptionPart2_Hondew[] = _("できない きのみ. とても おいしい.");
|
|
static const u8 sBerryDescriptionPart1_Grepa[] = _("やわらかさと まるい かたちからは");
|
|
static const u8 sBerryDescriptionPart2_Grepa[] = _("そうぞうが できないほど すっぱい.");
|
|
static const u8 sBerryDescriptionPart1_Tamato[] = _("くちびるが まがって しまうほど からい.");
|
|
static const u8 sBerryDescriptionPart2_Tamato[] = _("そだてるにも じかんが かかる.");
|
|
static const u8 sBerryDescriptionPart1_Cornn[] = _("おおむかしから はえていた. たくさん");
|
|
static const u8 sBerryDescriptionPart2_Cornn[] = _("うえないと みが つかないときも ある.");
|
|
static const u8 sBerryDescriptionPart1_Magost[] = _("とても あじの バランスが よいと");
|
|
static const u8 sBerryDescriptionPart2_Magost[] = _("ひょうばんの きのみ.");
|
|
static const u8 sBerryDescriptionPart1_Rabuta[] = _("たくさんの けが はえている めずらしい");
|
|
static const u8 sBerryDescriptionPart2_Rabuta[] = _("しゅるい. かなり にがい.");
|
|
static const u8 sBerryDescriptionPart1_Nomel[] = _("かなり すっぱい. 1くち たべると");
|
|
static const u8 sBerryDescriptionPart2_Nomel[] = _("3にちかん ほかの あじが しなくなる.");
|
|
static const u8 sBerryDescriptionPart1_Spelon[] = _("まっかになった みは とてつもなく からい.");
|
|
static const u8 sBerryDescriptionPart2_Spelon[] = _("イボからも からい せいぶんが でている.");
|
|
static const u8 sBerryDescriptionPart1_Pamtre[] = _("どこからともなく うみを ただよってくる.");
|
|
static const u8 sBerryDescriptionPart2_Pamtre[] = _("せかいの どこかで そだっている らしい.");
|
|
static const u8 sBerryDescriptionPart1_Watmel[] = _("とても おおきく 50センチを こえるものも");
|
|
static const u8 sBerryDescriptionPart2_Watmel[] = _("はっけん された. ものすごく あまい.");
|
|
static const u8 sBerryDescriptionPart1_Durin[] = _("みただけで にがい. あまりにも にがいので");
|
|
static const u8 sBerryDescriptionPart2_Durin[] = _("そのままで たべたひとは だれもいない.");
|
|
static const u8 sBerryDescriptionPart1_Belue[] = _("つるつるとして おいしそうだが とてつもなく");
|
|
static const u8 sBerryDescriptionPart2_Belue[] = _("すっぱい. そだてるにも じかんが かかる.");
|
|
static const u8 sBerryDescriptionPart1_Liechi[] = _("なぞのタネ. チイラのみには うみの");
|
|
static const u8 sBerryDescriptionPart2_Liechi[] = _("ちからが やどるという うわさが ある.");
|
|
static const u8 sBerryDescriptionPart1_Ganlon[] = _("なぞのタネ. リュガのみには りくの");
|
|
static const u8 sBerryDescriptionPart2_Ganlon[] = _("ちからが やどるという うわさが ある.");
|
|
static const u8 sBerryDescriptionPart1_Salac[] = _("なぞのタネ. カムラのみには そらの");
|
|
static const u8 sBerryDescriptionPart2_Salac[] = _("ちからが やどるという うわさが ある.");
|
|
static const u8 sBerryDescriptionPart1_Petaya[] = _("なぞのタネ. ヤタピのみには すべての");
|
|
static const u8 sBerryDescriptionPart2_Petaya[] = _("いきものの ちからが やどると いわれている");
|
|
static const u8 sBerryDescriptionPart1_Apicot[] = _("ふしぎな ふしぎな きのみ. なにが");
|
|
static const u8 sBerryDescriptionPart2_Apicot[] = _("おこるのか なにが できるのか わからない.");
|
|
static const u8 sBerryDescriptionPart1_Lansat[] = _("でんせつのみ と いわれている. この みを");
|
|
static const u8 sBerryDescriptionPart2_Lansat[] = _("もつと とても しあわせに なるらしい.");
|
|
static const u8 sBerryDescriptionPart1_Starf[] = _("あまりにも ちからが つよすぎるため");
|
|
static const u8 sBerryDescriptionPart2_Starf[] = _("せかいの はてに すてた まぼろしのみ.");
|
|
static const u8 sBerryDescriptionPart1_Enigma[] = _("しょうたい ふめいの きのみ.");
|
|
static const u8 sBerryDescriptionPart2_Enigma[] = _("ほしの ちからを もっている らしい.");
|
|
|
|
const struct Berry gBerries[] = {
|
|
[ITEM_CHERI_BERRY - FIRST_BERRY_INDEX] =
|
|
{
|
|
.name = _("CHERI"),
|
|
.firmness = BERRY_FIRMNESS_SOFT,
|
|
.size = 20,
|
|
.maxYield = 3,
|
|
.minYield = 2,
|
|
.description1 = sBerryDescriptionPart1_Cheri,
|
|
.description2 = sBerryDescriptionPart2_Cheri,
|
|
.stageDuration = 3,
|
|
.spicy = 10,
|
|
.dry = 0,
|
|
.sweet = 0,
|
|
.bitter = 0,
|
|
.sour = 0,
|
|
.smoothness = 25
|
|
},
|
|
|
|
[ITEM_CHESTO_BERRY - FIRST_BERRY_INDEX] =
|
|
{
|
|
.name = _("CHESTO"),
|
|
.firmness = BERRY_FIRMNESS_SUPER_HARD,
|
|
.size = 80,
|
|
.maxYield = 3,
|
|
.minYield = 2,
|
|
.description1 = sBerryDescriptionPart1_Chesto,
|
|
.description2 = sBerryDescriptionPart2_Chesto,
|
|
.stageDuration = 3,
|
|
.spicy = 0,
|
|
.dry = 10,
|
|
.sweet = 0,
|
|
.bitter = 0,
|
|
.sour = 0,
|
|
.smoothness = 25
|
|
},
|
|
|
|
[ITEM_PECHA_BERRY - FIRST_BERRY_INDEX] =
|
|
{
|
|
.name = _("PECHA"),
|
|
.firmness = BERRY_FIRMNESS_VERY_SOFT,
|
|
.size = 40,
|
|
.maxYield = 3,
|
|
.minYield = 2,
|
|
.description1 = sBerryDescriptionPart1_Pecha,
|
|
.description2 = sBerryDescriptionPart2_Pecha,
|
|
.stageDuration = 3,
|
|
.spicy = 0,
|
|
.dry = 0,
|
|
.sweet = 10,
|
|
.bitter = 0,
|
|
.sour = 0,
|
|
.smoothness = 25
|
|
},
|
|
|
|
[ITEM_RAWST_BERRY - FIRST_BERRY_INDEX] =
|
|
{
|
|
.name = _("RAWST"),
|
|
.firmness = BERRY_FIRMNESS_HARD,
|
|
.size = 32,
|
|
.maxYield = 3,
|
|
.minYield = 2,
|
|
.description1 = sBerryDescriptionPart1_Rawst,
|
|
.description2 = sBerryDescriptionPart2_Rawst,
|
|
.stageDuration = 3,
|
|
.spicy = 0,
|
|
.dry = 0,
|
|
.sweet = 0,
|
|
.bitter = 10,
|
|
.sour = 0,
|
|
.smoothness = 25
|
|
},
|
|
|
|
[ITEM_ASPEAR_BERRY - FIRST_BERRY_INDEX] =
|
|
{
|
|
.name = _("ASPEAR"),
|
|
.firmness = BERRY_FIRMNESS_SUPER_HARD,
|
|
.size = 50,
|
|
.maxYield = 3,
|
|
.minYield = 2,
|
|
.description1 = sBerryDescriptionPart1_Aspear,
|
|
.description2 = sBerryDescriptionPart2_Aspear,
|
|
.stageDuration = 3,
|
|
.spicy = 0,
|
|
.dry = 0,
|
|
.sweet = 0,
|
|
.bitter = 0,
|
|
.sour = 10,
|
|
.smoothness = 25
|
|
},
|
|
|
|
[ITEM_LEPPA_BERRY - FIRST_BERRY_INDEX] =
|
|
{
|
|
.name = _("LEPPA"),
|
|
.firmness = BERRY_FIRMNESS_VERY_HARD,
|
|
.size = 28,
|
|
.maxYield = 3,
|
|
.minYield = 2,
|
|
.description1 = sBerryDescriptionPart1_Leppa,
|
|
.description2 = sBerryDescriptionPart2_Leppa,
|
|
.stageDuration = 4,
|
|
.spicy = 10,
|
|
.dry = 0,
|
|
.sweet = 10,
|
|
.bitter = 10,
|
|
.sour = 10,
|
|
.smoothness = 20
|
|
},
|
|
|
|
[ITEM_ORAN_BERRY - FIRST_BERRY_INDEX] =
|
|
{
|
|
.name = _("ORAN"),
|
|
.firmness = BERRY_FIRMNESS_SUPER_HARD,
|
|
.size = 35,
|
|
.maxYield = 3,
|
|
.minYield = 2,
|
|
.description1 = sBerryDescriptionPart1_Oran,
|
|
.description2 = sBerryDescriptionPart2_Oran,
|
|
.stageDuration = 3,
|
|
.spicy = 10,
|
|
.dry = 10,
|
|
.sweet = 10,
|
|
.bitter = 10,
|
|
.sour = 10,
|
|
.smoothness = 20
|
|
},
|
|
|
|
[ITEM_PERSIM_BERRY - FIRST_BERRY_INDEX] =
|
|
{
|
|
.name = _("PERSIM"),
|
|
.firmness = BERRY_FIRMNESS_HARD,
|
|
.size = 47,
|
|
.maxYield = 3,
|
|
.minYield = 2,
|
|
.description1 = sBerryDescriptionPart1_Persim,
|
|
.description2 = sBerryDescriptionPart2_Persim,
|
|
.stageDuration = 3,
|
|
.spicy = 10,
|
|
.dry = 10,
|
|
.sweet = 10,
|
|
.bitter = 10,
|
|
.sour = 10,
|
|
.smoothness = 20
|
|
},
|
|
|
|
[ITEM_LUM_BERRY - FIRST_BERRY_INDEX] =
|
|
{
|
|
.name = _("LUM"),
|
|
.firmness = BERRY_FIRMNESS_SUPER_HARD,
|
|
.size = 34,
|
|
.maxYield = 2,
|
|
.minYield = 1,
|
|
.description1 = sBerryDescriptionPart1_Lum,
|
|
.description2 = sBerryDescriptionPart2_Lum,
|
|
.stageDuration = 12,
|
|
.spicy = 10,
|
|
.dry = 10,
|
|
.sweet = 10,
|
|
.bitter = 10,
|
|
.sour = 10,
|
|
.smoothness = 20
|
|
},
|
|
|
|
[ITEM_SITRUS_BERRY - FIRST_BERRY_INDEX] =
|
|
{
|
|
.name = _("SITRUS"),
|
|
.firmness = BERRY_FIRMNESS_VERY_HARD,
|
|
.size = 95,
|
|
.maxYield = 3,
|
|
.minYield = 2,
|
|
.description1 = sBerryDescriptionPart1_Sitrus,
|
|
.description2 = sBerryDescriptionPart2_Sitrus,
|
|
.stageDuration = 6,
|
|
.spicy = 10,
|
|
.dry = 10,
|
|
.sweet = 10,
|
|
.bitter = 10,
|
|
.sour = 10,
|
|
.smoothness = 20
|
|
},
|
|
|
|
[ITEM_FIGY_BERRY - FIRST_BERRY_INDEX] =
|
|
{
|
|
.name = _("FIGY"),
|
|
.firmness = BERRY_FIRMNESS_SOFT,
|
|
.size = 100,
|
|
.maxYield = 3,
|
|
.minYield = 2,
|
|
.description1 = sBerryDescriptionPart1_Figy,
|
|
.description2 = sBerryDescriptionPart2_Figy,
|
|
.stageDuration = 6,
|
|
.spicy = 10,
|
|
.dry = 0,
|
|
.sweet = 0,
|
|
.bitter = 0,
|
|
.sour = 0,
|
|
.smoothness = 25
|
|
},
|
|
|
|
[ITEM_WIKI_BERRY - FIRST_BERRY_INDEX] =
|
|
{
|
|
.name = _("WIKI"),
|
|
.firmness = BERRY_FIRMNESS_HARD,
|
|
.size = 115,
|
|
.maxYield = 3,
|
|
.minYield = 2,
|
|
.description1 = sBerryDescriptionPart1_Wiki,
|
|
.description2 = sBerryDescriptionPart2_Wiki,
|
|
.stageDuration = 6,
|
|
.spicy = 0,
|
|
.dry = 10,
|
|
.sweet = 0,
|
|
.bitter = 0,
|
|
.sour = 0,
|
|
.smoothness = 25
|
|
},
|
|
|
|
[ITEM_MAGO_BERRY - FIRST_BERRY_INDEX] =
|
|
{
|
|
.name = _("MAGO"),
|
|
.firmness = BERRY_FIRMNESS_HARD,
|
|
.size = 126,
|
|
.maxYield = 3,
|
|
.minYield = 2,
|
|
.description1 = sBerryDescriptionPart1_Mago,
|
|
.description2 = sBerryDescriptionPart2_Mago,
|
|
.stageDuration = 6,
|
|
.spicy = 0,
|
|
.dry = 0,
|
|
.sweet = 10,
|
|
.bitter = 0,
|
|
.sour = 0,
|
|
.smoothness = 25
|
|
},
|
|
|
|
[ITEM_AGUAV_BERRY - FIRST_BERRY_INDEX] =
|
|
{
|
|
.name = _("AGUAV"),
|
|
.firmness = BERRY_FIRMNESS_SUPER_HARD,
|
|
.size = 64,
|
|
.maxYield = 3,
|
|
.minYield = 2,
|
|
.description1 = sBerryDescriptionPart1_Aguav,
|
|
.description2 = sBerryDescriptionPart2_Aguav,
|
|
.stageDuration = 6,
|
|
.spicy = 0,
|
|
.dry = 0,
|
|
.sweet = 0,
|
|
.bitter = 10,
|
|
.sour = 0,
|
|
.smoothness = 25
|
|
},
|
|
|
|
[ITEM_IAPAPA_BERRY - FIRST_BERRY_INDEX] =
|
|
{
|
|
.name = _("IAPAPA"),
|
|
.firmness = BERRY_FIRMNESS_SOFT,
|
|
.size = 223,
|
|
.maxYield = 3,
|
|
.minYield = 2,
|
|
.description1 = sBerryDescriptionPart1_Iapapa,
|
|
.description2 = sBerryDescriptionPart2_Iapapa,
|
|
.stageDuration = 6,
|
|
.spicy = 0,
|
|
.dry = 0,
|
|
.sweet = 0,
|
|
.bitter = 0,
|
|
.sour = 10,
|
|
.smoothness = 25
|
|
},
|
|
|
|
[ITEM_RAZZ_BERRY - FIRST_BERRY_INDEX] =
|
|
{
|
|
.name = _("RAZZ"),
|
|
.firmness = BERRY_FIRMNESS_VERY_HARD,
|
|
.size = 120,
|
|
.maxYield = 6,
|
|
.minYield = 3,
|
|
.description1 = sBerryDescriptionPart1_Razz,
|
|
.description2 = sBerryDescriptionPart2_Razz,
|
|
.stageDuration = 1,
|
|
.spicy = 10,
|
|
.dry = 10,
|
|
.sweet = 0,
|
|
.bitter = 0,
|
|
.sour = 0,
|
|
.smoothness = 20
|
|
},
|
|
|
|
[ITEM_BLUK_BERRY - FIRST_BERRY_INDEX] =
|
|
{
|
|
.name = _("BLUK"),
|
|
.firmness = BERRY_FIRMNESS_SOFT,
|
|
.size = 108,
|
|
.maxYield = 6,
|
|
.minYield = 3,
|
|
.description1 = sBerryDescriptionPart1_Bluk,
|
|
.description2 = sBerryDescriptionPart2_Bluk,
|
|
.stageDuration = 1,
|
|
.spicy = 0,
|
|
.dry = 10,
|
|
.sweet = 10,
|
|
.bitter = 0,
|
|
.sour = 0,
|
|
.smoothness = 20
|
|
},
|
|
|
|
[ITEM_NANAB_BERRY - FIRST_BERRY_INDEX] =
|
|
{
|
|
.name = _("NANAB"),
|
|
.firmness = BERRY_FIRMNESS_VERY_HARD,
|
|
.size = 77,
|
|
.maxYield = 6,
|
|
.minYield = 3,
|
|
.description1 = sBerryDescriptionPart1_Nanab,
|
|
.description2 = sBerryDescriptionPart2_Nanab,
|
|
.stageDuration = 1,
|
|
.spicy = 0,
|
|
.dry = 0,
|
|
.sweet = 10,
|
|
.bitter = 10,
|
|
.sour = 0,
|
|
.smoothness = 20
|
|
},
|
|
|
|
[ITEM_WEPEAR_BERRY - FIRST_BERRY_INDEX] =
|
|
{
|
|
.name = _("WEPEAR"),
|
|
.firmness = BERRY_FIRMNESS_SUPER_HARD,
|
|
.size = 74,
|
|
.maxYield = 6,
|
|
.minYield = 3,
|
|
.description1 = sBerryDescriptionPart1_Wepear,
|
|
.description2 = sBerryDescriptionPart2_Wepear,
|
|
.stageDuration = 1,
|
|
.spicy = 0,
|
|
.dry = 0,
|
|
.sweet = 0,
|
|
.bitter = 10,
|
|
.sour = 10,
|
|
.smoothness = 20
|
|
},
|
|
|
|
[ITEM_PINAP_BERRY - FIRST_BERRY_INDEX] =
|
|
{
|
|
.name = _("PINAP"),
|
|
.firmness = BERRY_FIRMNESS_HARD,
|
|
.size = 80,
|
|
.maxYield = 6,
|
|
.minYield = 3,
|
|
.description1 = sBerryDescriptionPart1_Pinap,
|
|
.description2 = sBerryDescriptionPart2_Pinap,
|
|
.stageDuration = 1,
|
|
.spicy = 10,
|
|
.dry = 0,
|
|
.sweet = 0,
|
|
.bitter = 0,
|
|
.sour = 10,
|
|
.smoothness = 20
|
|
},
|
|
|
|
[ITEM_POMEG_BERRY - FIRST_BERRY_INDEX] =
|
|
{
|
|
.name = _("POMEG"),
|
|
.firmness = BERRY_FIRMNESS_VERY_HARD,
|
|
.size = 135,
|
|
.maxYield = 6,
|
|
.minYield = 2,
|
|
.description1 = sBerryDescriptionPart1_Pomeg,
|
|
.description2 = sBerryDescriptionPart2_Pomeg,
|
|
.stageDuration = 3,
|
|
.spicy = 10,
|
|
.dry = 0,
|
|
.sweet = 10,
|
|
.bitter = 10,
|
|
.sour = 0,
|
|
.smoothness = 20
|
|
},
|
|
|
|
[ITEM_KELPSY_BERRY - FIRST_BERRY_INDEX] =
|
|
{
|
|
.name = _("KELPSY"),
|
|
.firmness = BERRY_FIRMNESS_HARD,
|
|
.size = 150,
|
|
.maxYield = 6,
|
|
.minYield = 2,
|
|
.description1 = sBerryDescriptionPart1_Kelpsy,
|
|
.description2 = sBerryDescriptionPart2_Kelpsy,
|
|
.stageDuration = 3,
|
|
.spicy = 0,
|
|
.dry = 10,
|
|
.sweet = 0,
|
|
.bitter = 10,
|
|
.sour = 10,
|
|
.smoothness = 20
|
|
},
|
|
|
|
[ITEM_QUALOT_BERRY - FIRST_BERRY_INDEX] =
|
|
{
|
|
.name = _("QUALOT"),
|
|
.firmness = BERRY_FIRMNESS_HARD,
|
|
.size = 110,
|
|
.maxYield = 6,
|
|
.minYield = 2,
|
|
.description1 = sBerryDescriptionPart1_Qualot,
|
|
.description2 = sBerryDescriptionPart2_Qualot,
|
|
.stageDuration = 3,
|
|
.spicy = 10,
|
|
.dry = 0,
|
|
.sweet = 10,
|
|
.bitter = 0,
|
|
.sour = 10,
|
|
.smoothness = 20
|
|
},
|
|
|
|
[ITEM_HONDEW_BERRY - FIRST_BERRY_INDEX] =
|
|
{
|
|
.name = _("HONDEW"),
|
|
.firmness = BERRY_FIRMNESS_HARD,
|
|
.size = 162,
|
|
.maxYield = 6,
|
|
.minYield = 2,
|
|
.description1 = sBerryDescriptionPart1_Hondew,
|
|
.description2 = sBerryDescriptionPart2_Hondew,
|
|
.stageDuration = 3,
|
|
.spicy = 10,
|
|
.dry = 10,
|
|
.sweet = 0,
|
|
.bitter = 10,
|
|
.sour = 0,
|
|
.smoothness = 20
|
|
},
|
|
|
|
[ITEM_GREPA_BERRY - FIRST_BERRY_INDEX] =
|
|
{
|
|
.name = _("GREPA"),
|
|
.firmness = BERRY_FIRMNESS_SOFT,
|
|
.size = 149,
|
|
.maxYield = 6,
|
|
.minYield = 2,
|
|
.description1 = sBerryDescriptionPart1_Grepa,
|
|
.description2 = sBerryDescriptionPart2_Grepa,
|
|
.stageDuration = 3,
|
|
.spicy = 0,
|
|
.dry = 10,
|
|
.sweet = 10,
|
|
.bitter = 0,
|
|
.sour = 10,
|
|
.smoothness = 20
|
|
},
|
|
|
|
[ITEM_TAMATO_BERRY - FIRST_BERRY_INDEX] =
|
|
{
|
|
.name = _("TAMATO"),
|
|
.firmness = BERRY_FIRMNESS_SOFT,
|
|
.size = 200,
|
|
.maxYield = 4,
|
|
.minYield = 2,
|
|
.description1 = sBerryDescriptionPart1_Tamato,
|
|
.description2 = sBerryDescriptionPart2_Tamato,
|
|
.stageDuration = 6,
|
|
.spicy = 20,
|
|
.dry = 10,
|
|
.sweet = 0,
|
|
.bitter = 0,
|
|
.sour = 0,
|
|
.smoothness = 30
|
|
},
|
|
|
|
[ITEM_CORNN_BERRY - FIRST_BERRY_INDEX] =
|
|
{
|
|
.name = _("CORNN"),
|
|
.firmness = BERRY_FIRMNESS_HARD,
|
|
.size = 75,
|
|
.maxYield = 4,
|
|
.minYield = 2,
|
|
.description1 = sBerryDescriptionPart1_Cornn,
|
|
.description2 = sBerryDescriptionPart2_Cornn,
|
|
.stageDuration = 6,
|
|
.spicy = 0,
|
|
.dry = 20,
|
|
.sweet = 10,
|
|
.bitter = 0,
|
|
.sour = 0,
|
|
.smoothness = 30
|
|
},
|
|
|
|
[ITEM_MAGOST_BERRY - FIRST_BERRY_INDEX] =
|
|
{
|
|
.name = _("MAGOST"),
|
|
.firmness = BERRY_FIRMNESS_HARD,
|
|
.size = 140,
|
|
.maxYield = 4,
|
|
.minYield = 2,
|
|
.description1 = sBerryDescriptionPart1_Magost,
|
|
.description2 = sBerryDescriptionPart2_Magost,
|
|
.stageDuration = 6,
|
|
.spicy = 0,
|
|
.dry = 0,
|
|
.sweet = 20,
|
|
.bitter = 10,
|
|
.sour = 0,
|
|
.smoothness = 30
|
|
},
|
|
|
|
[ITEM_RABUTA_BERRY - FIRST_BERRY_INDEX] =
|
|
{
|
|
.name = _("RABUTA"),
|
|
.firmness = BERRY_FIRMNESS_SOFT,
|
|
.size = 226,
|
|
.maxYield = 4,
|
|
.minYield = 2,
|
|
.description1 = sBerryDescriptionPart1_Rabuta,
|
|
.description2 = sBerryDescriptionPart2_Rabuta,
|
|
.stageDuration = 6,
|
|
.spicy = 0,
|
|
.dry = 0,
|
|
.sweet = 0,
|
|
.bitter = 20,
|
|
.sour = 10,
|
|
.smoothness = 30
|
|
},
|
|
|
|
[ITEM_NOMEL_BERRY - FIRST_BERRY_INDEX] =
|
|
{
|
|
.name = _("NOMEL"),
|
|
.firmness = BERRY_FIRMNESS_SUPER_HARD,
|
|
.size = 285,
|
|
.maxYield = 4,
|
|
.minYield = 2,
|
|
.description1 = sBerryDescriptionPart1_Nomel,
|
|
.description2 = sBerryDescriptionPart2_Nomel,
|
|
.stageDuration = 6,
|
|
.spicy = 10,
|
|
.dry = 0,
|
|
.sweet = 0,
|
|
.bitter = 0,
|
|
.sour = 20,
|
|
.smoothness = 30
|
|
},
|
|
|
|
[ITEM_SPELON_BERRY - FIRST_BERRY_INDEX] =
|
|
{
|
|
.name = _("SPELON"),
|
|
.firmness = BERRY_FIRMNESS_SOFT,
|
|
.size = 133,
|
|
.maxYield = 2,
|
|
.minYield = 1,
|
|
.description1 = sBerryDescriptionPart1_Spelon,
|
|
.description2 = sBerryDescriptionPart2_Spelon,
|
|
.stageDuration = 18,
|
|
.spicy = 40,
|
|
.dry = 10,
|
|
.sweet = 0,
|
|
.bitter = 0,
|
|
.sour = 0,
|
|
.smoothness = 70
|
|
},
|
|
|
|
[ITEM_PAMTRE_BERRY - FIRST_BERRY_INDEX] =
|
|
{
|
|
.name = _("PAMTRE"),
|
|
.firmness = BERRY_FIRMNESS_VERY_SOFT,
|
|
.size = 244,
|
|
.maxYield = 2,
|
|
.minYield = 1,
|
|
.description1 = sBerryDescriptionPart1_Pamtre,
|
|
.description2 = sBerryDescriptionPart2_Pamtre,
|
|
.stageDuration = 18,
|
|
.spicy = 0,
|
|
.dry = 40,
|
|
.sweet = 10,
|
|
.bitter = 0,
|
|
.sour = 0,
|
|
.smoothness = 70
|
|
},
|
|
|
|
[ITEM_WATMEL_BERRY - FIRST_BERRY_INDEX] =
|
|
{
|
|
.name = _("WATMEL"),
|
|
.firmness = BERRY_FIRMNESS_SOFT,
|
|
.size = 250,
|
|
.maxYield = 2,
|
|
.minYield = 1,
|
|
.description1 = sBerryDescriptionPart1_Watmel,
|
|
.description2 = sBerryDescriptionPart2_Watmel,
|
|
.stageDuration = 18,
|
|
.spicy = 0,
|
|
.dry = 0,
|
|
.sweet = 40,
|
|
.bitter = 10,
|
|
.sour = 0,
|
|
.smoothness = 70
|
|
},
|
|
|
|
[ITEM_DURIN_BERRY - FIRST_BERRY_INDEX] =
|
|
{
|
|
.name = _("DURIN"),
|
|
.firmness = BERRY_FIRMNESS_HARD,
|
|
.size = 280,
|
|
.maxYield = 2,
|
|
.minYield = 1,
|
|
.description1 = sBerryDescriptionPart1_Durin,
|
|
.description2 = sBerryDescriptionPart2_Durin,
|
|
.stageDuration = 18,
|
|
.spicy = 0,
|
|
.dry = 0,
|
|
.sweet = 0,
|
|
.bitter = 40,
|
|
.sour = 10,
|
|
.smoothness = 70
|
|
},
|
|
|
|
[ITEM_BELUE_BERRY - FIRST_BERRY_INDEX] =
|
|
{
|
|
.name = _("BELUE"),
|
|
.firmness = BERRY_FIRMNESS_VERY_SOFT,
|
|
.size = 300,
|
|
.maxYield = 2,
|
|
.minYield = 1,
|
|
.description1 = sBerryDescriptionPart1_Belue,
|
|
.description2 = sBerryDescriptionPart2_Belue,
|
|
.stageDuration = 18,
|
|
.spicy = 10,
|
|
.dry = 0,
|
|
.sweet = 0,
|
|
.bitter = 0,
|
|
.sour = 40,
|
|
.smoothness = 70
|
|
},
|
|
|
|
[ITEM_LIECHI_BERRY - FIRST_BERRY_INDEX] =
|
|
{
|
|
.name = _("LIECHI"),
|
|
.firmness = BERRY_FIRMNESS_VERY_HARD,
|
|
.size = 111,
|
|
.maxYield = 2,
|
|
.minYield = 1,
|
|
.description1 = sBerryDescriptionPart1_Liechi,
|
|
.description2 = sBerryDescriptionPart2_Liechi,
|
|
.stageDuration = 24,
|
|
.spicy = 40,
|
|
.dry = 0,
|
|
.sweet = 40,
|
|
.bitter = 0,
|
|
.sour = 10,
|
|
.smoothness = 80
|
|
},
|
|
|
|
[ITEM_GANLON_BERRY - FIRST_BERRY_INDEX] =
|
|
{
|
|
.name = _("GANLON"),
|
|
.firmness = BERRY_FIRMNESS_VERY_HARD,
|
|
.size = 33,
|
|
.maxYield = 2,
|
|
.minYield = 1,
|
|
.description1 = sBerryDescriptionPart1_Ganlon,
|
|
.description2 = sBerryDescriptionPart2_Ganlon,
|
|
.stageDuration = 24,
|
|
.spicy = 0,
|
|
.dry = 40,
|
|
.sweet = 0,
|
|
.bitter = 40,
|
|
.sour = 0,
|
|
.smoothness = 80
|
|
},
|
|
|
|
[ITEM_SALAC_BERRY - FIRST_BERRY_INDEX] =
|
|
{
|
|
.name = _("SALAC"),
|
|
.firmness = BERRY_FIRMNESS_VERY_HARD,
|
|
.size = 95,
|
|
.maxYield = 2,
|
|
.minYield = 1,
|
|
.description1 = sBerryDescriptionPart1_Salac,
|
|
.description2 = sBerryDescriptionPart2_Salac,
|
|
.stageDuration = 24,
|
|
.spicy = 0,
|
|
.dry = 0,
|
|
.sweet = 40,
|
|
.bitter = 0,
|
|
.sour = 40,
|
|
.smoothness = 80
|
|
},
|
|
|
|
[ITEM_PETAYA_BERRY - FIRST_BERRY_INDEX] =
|
|
{
|
|
.name = _("PETAYA"),
|
|
.firmness = BERRY_FIRMNESS_VERY_HARD,
|
|
.size = 237,
|
|
.maxYield = 2,
|
|
.minYield = 1,
|
|
.description1 = sBerryDescriptionPart1_Petaya,
|
|
.description2 = sBerryDescriptionPart2_Petaya,
|
|
.stageDuration = 24,
|
|
.spicy = 40,
|
|
.dry = 0,
|
|
.sweet = 0,
|
|
.bitter = 40,
|
|
.sour = 0,
|
|
.smoothness = 80
|
|
},
|
|
|
|
[ITEM_APICOT_BERRY - FIRST_BERRY_INDEX] =
|
|
{
|
|
.name = _("APICOT"),
|
|
.firmness = BERRY_FIRMNESS_HARD,
|
|
.size = 75,
|
|
.maxYield = 2,
|
|
.minYield = 1,
|
|
.description1 = sBerryDescriptionPart1_Apicot,
|
|
.description2 = sBerryDescriptionPart2_Apicot,
|
|
.stageDuration = 24,
|
|
.spicy = 0,
|
|
.dry = 40,
|
|
.sweet = 0,
|
|
.bitter = 0,
|
|
.sour = 40,
|
|
.smoothness = 80
|
|
},
|
|
|
|
[ITEM_LANSAT_BERRY - FIRST_BERRY_INDEX] =
|
|
{
|
|
.name = _("LANSAT"),
|
|
.firmness = BERRY_FIRMNESS_SOFT,
|
|
.size = 97,
|
|
.maxYield = 2,
|
|
.minYield = 1,
|
|
.description1 = sBerryDescriptionPart1_Lansat,
|
|
.description2 = sBerryDescriptionPart2_Lansat,
|
|
.stageDuration = 24,
|
|
.spicy = 10,
|
|
.dry = 10,
|
|
.sweet = 10,
|
|
.bitter = 10,
|
|
.sour = 10,
|
|
.smoothness = 30
|
|
},
|
|
|
|
[ITEM_STARF_BERRY - FIRST_BERRY_INDEX] =
|
|
{
|
|
.name = _("STARF"),
|
|
.firmness = BERRY_FIRMNESS_SUPER_HARD,
|
|
.size = 153,
|
|
.maxYield = 2,
|
|
.minYield = 1,
|
|
.description1 = sBerryDescriptionPart1_Starf,
|
|
.description2 = sBerryDescriptionPart2_Starf,
|
|
.stageDuration = 24,
|
|
.spicy = 10,
|
|
.dry = 10,
|
|
.sweet = 10,
|
|
.bitter = 10,
|
|
.sour = 10,
|
|
.smoothness = 30
|
|
},
|
|
|
|
[ITEM_ENIGMA_BERRY - FIRST_BERRY_INDEX] =
|
|
{
|
|
.name = _("ENIGMA"),
|
|
.firmness = BERRY_FIRMNESS_UNKNOWN,
|
|
.size = 0,
|
|
.maxYield = 2,
|
|
.minYield = 1,
|
|
.description1 = sBerryDescriptionPart1_Enigma,
|
|
.description2 = sBerryDescriptionPart2_Enigma,
|
|
.stageDuration = 24,
|
|
.spicy = 40,
|
|
.dry = 40,
|
|
.sweet = 40,
|
|
.bitter = 40,
|
|
.sour = 40,
|
|
.smoothness = 40
|
|
},
|
|
|
|
};
|
|
|
|
const struct BerryCrushStats gBerryCrushStats[] = {
|
|
{ 50, 20},
|
|
{ 50, 20},
|
|
{ 50, 20},
|
|
{ 50, 20},
|
|
{ 50, 20},
|
|
{ 50, 30},
|
|
{ 50, 30},
|
|
{ 50, 30},
|
|
{ 50, 30},
|
|
{ 50, 30},
|
|
{ 60, 50},
|
|
{ 60, 50},
|
|
{ 60, 50},
|
|
{ 60, 50},
|
|
{ 60, 50},
|
|
{ 80, 70},
|
|
{ 80, 70},
|
|
{ 80, 70},
|
|
{ 80, 70},
|
|
{ 80, 70},
|
|
{100, 100},
|
|
{100, 100},
|
|
{100, 100},
|
|
{100, 100},
|
|
{100, 100},
|
|
{130, 150},
|
|
{130, 150},
|
|
{130, 150},
|
|
{130, 150},
|
|
{130, 150},
|
|
{160, 250},
|
|
{160, 250},
|
|
{160, 250},
|
|
{160, 250},
|
|
{160, 250},
|
|
{180, 500},
|
|
{180, 500},
|
|
{180, 500},
|
|
{180, 500},
|
|
{180, 500},
|
|
{200, 750},
|
|
{200, 750},
|
|
{150, 200}
|
|
};
|
|
|
|
// Leftover from R/S
|
|
const struct BerryTree gBlankBerryTree = {};
|
|
|
|
#define ENIGMA_BERRY_STRUCT ({ \
|
|
const struct Berry2 * berries = (const struct Berry2 *)gBerries; \
|
|
berries[ITEM_ENIGMA_BERRY - FIRST_BERRY_INDEX]; \
|
|
})
|
|
|
|
void sub_809C718(void)
|
|
{
|
|
s32 i;
|
|
|
|
gSaveBlock1Ptr->enigmaBerry.berry = ENIGMA_BERRY_STRUCT;
|
|
for (i = 0; i < 18; i++)
|
|
gSaveBlock1Ptr->enigmaBerry.itemEffect[i] = 0;
|
|
gSaveBlock1Ptr->enigmaBerry.holdEffect = 0;
|
|
gSaveBlock1Ptr->enigmaBerry.holdEffectParam = 0;
|
|
gSaveBlock1Ptr->enigmaBerry.checksum = GetEnigmaBerryChecksum(&gSaveBlock1Ptr->enigmaBerry);
|
|
}
|
|
|
|
void sub_809C794(void)
|
|
{
|
|
CpuFill16(0, &gSaveBlock1Ptr->enigmaBerry, sizeof(gSaveBlock1Ptr->enigmaBerry));
|
|
sub_809C718();
|
|
}
|
|
|
|
#ifdef NONMATCHING
|
|
void SetEnigmaBerry(u8 * berry)
|
|
{
|
|
struct EnigmaBerry * enigmaBerry;
|
|
|
|
sub_809C794();
|
|
|
|
{
|
|
const struct Berry2 * src = (const struct Berry2 *)berry;
|
|
struct Berry2 * dest = &gSaveBlock1Ptr->enigmaBerry.berry;
|
|
*dest = *src;
|
|
}
|
|
|
|
enigmaBerry = &gSaveBlock1Ptr->enigmaBerry;
|
|
{
|
|
s32 i = 0;
|
|
u8 * dest = gSaveBlock1Ptr->enigmaBerry.itemEffect;
|
|
const u8 * src = berry + 0x516;
|
|
|
|
for (i = 0; i < 18; i++) dest[i] = src[i];
|
|
}
|
|
enigmaBerry->holdEffect = berry[0x528];
|
|
enigmaBerry->holdEffectParam = berry[0x529];
|
|
enigmaBerry->checksum = GetEnigmaBerryChecksum(enigmaBerry);
|
|
}
|
|
#else
|
|
NAKED
|
|
void SetEnigmaBerry(u8 * berry)
|
|
{
|
|
asm_unified("\tpush {r4-r7,lr}\n"
|
|
"\tadds r4, r0, 0\n"
|
|
"\tbl sub_809C794\n"
|
|
"\tadds r5, r4, 0\n"
|
|
"\tldr r0, _0809C824 @ =gSaveBlock1Ptr\n"
|
|
"\tldr r2, [r0]\n"
|
|
"\tldr r0, _0809C828 @ =0x000030ec\n"
|
|
"\tadds r4, r2, r0\n"
|
|
"\tadds r1, r4, 0\n"
|
|
"\tadds r0, r5, 0\n"
|
|
"\tldm r0!, {r3,r6,r7}\n"
|
|
"\tstm r1!, {r3,r6,r7}\n"
|
|
"\tldm r0!, {r3,r6,r7}\n"
|
|
"\tstm r1!, {r3,r6,r7}\n"
|
|
"\tldr r0, [r0]\n"
|
|
"\tstr r0, [r1]\n"
|
|
"\tmovs r3, 0\n"
|
|
"\tldr r0, _0809C82C @ =0x00003108\n"
|
|
"\tadds r6, r2, r0\n"
|
|
"\tldr r1, _0809C830 @ =0x00000516\n"
|
|
"\tadds r2, r5, r1\n"
|
|
"_0809C7F0:\n"
|
|
"\tadds r0, r6, r3\n"
|
|
"\tadds r1, r2, r3\n"
|
|
"\tldrb r1, [r1]\n"
|
|
"\tstrb r1, [r0]\n"
|
|
"\tadds r3, 0x1\n"
|
|
"\tcmp r3, 0x11\n"
|
|
"\tble _0809C7F0\n"
|
|
"\tmovs r3, 0xA5\n"
|
|
"\tlsls r3, 3\n"
|
|
"\tadds r0, r5, r3\n"
|
|
"\tldrb r0, [r0]\n"
|
|
"\tadds r1, r4, 0\n"
|
|
"\tadds r1, 0x2E\n"
|
|
"\tstrb r0, [r1]\n"
|
|
"\tldr r6, _0809C834 @ =0x00000529\n"
|
|
"\tadds r0, r5, r6\n"
|
|
"\tldrb r0, [r0]\n"
|
|
"\tadds r1, 0x1\n"
|
|
"\tstrb r0, [r1]\n"
|
|
"\tadds r0, r4, 0\n"
|
|
"\tbl GetEnigmaBerryChecksum\n"
|
|
"\tstr r0, [r4, 0x30]\n"
|
|
"\tpop {r4-r7}\n"
|
|
"\tpop {r0}\n"
|
|
"\tbx r0\n"
|
|
"\t.align 2, 0\n"
|
|
"_0809C824: .4byte gSaveBlock1Ptr\n"
|
|
"_0809C828: .4byte 0x000030ec\n"
|
|
"_0809C82C: .4byte 0x00003108\n"
|
|
"_0809C830: .4byte 0x00000516\n"
|
|
"_0809C834: .4byte 0x00000529");
|
|
}
|
|
#endif
|
|
|
|
u32 GetEnigmaBerryChecksum(struct EnigmaBerry * enigmaBerry)
|
|
{
|
|
const u8 * src = (const u8 *)enigmaBerry;
|
|
u32 result = 0;
|
|
u32 i;
|
|
|
|
for (i = 0; i < offsetof(struct EnigmaBerry, checksum); i++)
|
|
result += src[i];
|
|
|
|
return result;
|
|
}
|
|
|
|
bool32 IsEnigmaBerryValid(void)
|
|
{
|
|
if (gSaveBlock1Ptr->enigmaBerry.berry.stageDuration == 0)
|
|
return FALSE;
|
|
if (gSaveBlock1Ptr->enigmaBerry.berry.maxYield == 0)
|
|
return FALSE;
|
|
if (GetEnigmaBerryChecksum(&gSaveBlock1Ptr->enigmaBerry) != gSaveBlock1Ptr->enigmaBerry.checksum)
|
|
return FALSE;
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
const struct Berry * GetBerryInfo(u8 berryIdx)
|
|
{
|
|
if (berryIdx == ITEM_TO_BERRY(ITEM_ENIGMA_BERRY) && IsEnigmaBerryValid())
|
|
return (struct Berry *)&gSaveBlock1Ptr->enigmaBerry.berry;
|
|
|
|
if (berryIdx == 0 || berryIdx > ITEM_TO_BERRY(ITEM_ENIGMA_BERRY))
|
|
berryIdx = 1;
|
|
|
|
return &gBerries[berryIdx - 1];
|
|
}
|
|
|
|
u8 ItemIdToBerryType(u16 itemId)
|
|
{
|
|
if (itemId - FIRST_BERRY_INDEX < 0 || itemId - FIRST_BERRY_INDEX > ITEM_ENIGMA_BERRY - FIRST_BERRY_INDEX)
|
|
return 1;
|
|
|
|
return ITEM_TO_BERRY(itemId);
|
|
}
|
|
|
|
u16 BerryTypeToItemId(u16 berryType)
|
|
{
|
|
if (berryType - 1 < 0 || berryType - 1 > ITEM_ENIGMA_BERRY - FIRST_BERRY_INDEX)
|
|
return FIRST_BERRY_INDEX;
|
|
|
|
return berryType + FIRST_BERRY_INDEX - 1;
|
|
}
|
|
|
|
void GetBerryNameByBerryType(u8 berryType, u8 * dest)
|
|
{
|
|
const struct Berry * berry = GetBerryInfo(berryType);
|
|
memcpy(dest, berry->name, 6);
|
|
dest[6] = EOS;
|
|
}
|