summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/item_use.s4
-rw-r--r--asm/pokeblock.s88
-rw-r--r--data/graphics.s10
-rw-r--r--data/pokeblock.s51
-rw-r--r--data/strings.s28
-rw-r--r--include/graphics.h5
-rw-r--r--include/pokeblock.h8
-rw-r--r--include/rom6.h2
-rw-r--r--include/strings.h42
-rw-r--r--ld_script.txt1
-rw-r--r--src/berry_blender.c2
-rw-r--r--src/lilycove_lady.c2
-rw-r--r--src/pokeblock.c200
-rw-r--r--src/pokeblock_feed.c10
-rw-r--r--src/pokemon_3.c12
-rw-r--r--src/safari_zone.c2
16 files changed, 329 insertions, 138 deletions
diff --git a/asm/item_use.s b/asm/item_use.s
index 172080b16..378ed09f1 100644
--- a/asm/item_use.s
+++ b/asm/item_use.s
@@ -1497,7 +1497,7 @@ sub_80FDBEC: @ 80FDBEC
push {lr}
ldr r1, =bag_menu_mail_related
movs r0, 0
- bl sub_81357FC
+ bl OpenPokeblockCase
pop {r0}
bx r0
.pool
@@ -1517,7 +1517,7 @@ sub_80FDC00: @ 80FDC00
bl overworld_free_bg_tilemaps
ldr r1, =c2_exit_to_overworld_2_switch
movs r0, 0
- bl sub_81357FC
+ bl OpenPokeblockCase
adds r0, r4, 0
bl DestroyTask
_080FDC24:
diff --git a/asm/pokeblock.s b/asm/pokeblock.s
index 3b5e50ac3..c5273a731 100644
--- a/asm/pokeblock.s
+++ b/asm/pokeblock.s
@@ -5,8 +5,8 @@
.text
- thumb_func_start sub_81357FC
-sub_81357FC: @ 81357FC
+ thumb_func_start OpenPokeblockCase
+OpenPokeblockCase: @ 81357FC
push {r4-r6,lr}
adds r4, r0, 0
adds r6, r1, 0
@@ -53,7 +53,7 @@ _08135864:
_0813586A:
ldr r0, =0x00000804
adds r1, r5, r0
- ldr r0, =gUnknown_085B269B
+ ldr r0, =sActionsInBattle
str r0, [r1]
ldr r4, =0x00000808
adds r1, r5, r4
@@ -63,7 +63,7 @@ _0813586A:
_08135888:
ldr r1, =0x00000804
adds r0, r5, r1
- ldr r1, =gUnknown_085B269D
+ ldr r1, =sActionsOnPokeblockFeeder
str r1, [r0]
ldr r4, =0x00000808
adds r0, r5, r4
@@ -73,7 +73,7 @@ _08135888:
_081358A4:
ldr r0, =0x00000804
adds r1, r5, r0
- ldr r0, =gUnknown_085B269F
+ ldr r0, =sActionsWhenGivingToLady
str r0, [r1]
ldr r4, =0x00000808
adds r1, r5, r4
@@ -85,7 +85,7 @@ _081358C0:
ldr r1, [r0]
ldr r0, =0x00000804
adds r2, r1, r0
- ldr r0, =gUnknown_085B2698
+ ldr r0, =sActionsOnField
str r0, [r2]
ldr r4, =0x00000808
adds r1, r4
@@ -99,14 +99,14 @@ _081358D4:
pop {r0}
bx r0
.pool
- thumb_func_end sub_81357FC
+ thumb_func_end OpenPokeblockCase
thumb_func_start sub_81358F4
sub_81358F4: @ 81358F4
push {lr}
ldr r1, =SetCB2ToReshowScreenAfterMenu2
movs r0, 0x1
- bl sub_81357FC
+ bl OpenPokeblockCase
pop {r0}
bx r0
.pool
@@ -117,7 +117,7 @@ sub_8135908: @ 8135908
push {lr}
ldr r1, =c2_exit_to_overworld_2_switch
movs r0, 0x2
- bl sub_81357FC
+ bl OpenPokeblockCase
pop {r0}
bx r0
.pool
@@ -491,7 +491,7 @@ _08135C98:
lsrs r0, 24
cmp r0, 0x1
beq _08135D18
- ldr r0, =gMenuPokeblockDevice_Gfx
+ ldr r0, =gMenuPokeblock_Tilemap
ldr r4, =gUnknown_0203AB50
ldr r1, [r4]
bl LZDecompressWram
@@ -593,7 +593,7 @@ sub_8135D7C: @ 8135D7C
movs r4, 0
str r4, [sp]
str r4, [sp, 0x4]
- ldr r3, =gUnknown_085B271C
+ ldr r3, =sTextColorInPokeblockMenu
str r3, [sp, 0x8]
str r4, [sp, 0xC]
str r1, [sp, 0x10]
@@ -1407,7 +1407,7 @@ CreatePokeblockCaseSprite: @ 8136444
adds r3, r2, 0
lsls r3, 24
lsrs r3, 24
- ldr r0, =gUnknown_085B2704
+ ldr r0, =sSpriteTemplate_PokeblockCase
lsls r4, 16
asrs r4, 16
lsls r5, 16
@@ -1449,7 +1449,7 @@ _0813648E:
movs r1, 0x1
orrs r0, r1
strb r0, [r4, 0x1]
- ldr r0, =gUnknown_085B26F0
+ ldr r0, =sSpriteAffineAnimTable_85B26F0
str r0, [r4, 0x10]
adds r0, r4, 0
bl InitSpriteAffineAnim
@@ -1996,7 +1996,7 @@ _0813696A:
ldr r4, =0x00000808
adds r1, r3, r4
ldrb r1, [r1]
- ldr r2, =gUnknown_085B2668
+ ldr r2, =sPokeblockMenuActions
mov r12, r2
ldr r2, =0x00000804
adds r3, r2
@@ -2050,12 +2050,12 @@ sub_81369E0: @ 81369E0
movs r0, 0x5
bl PlaySE
adds r0, r5, 0
- bl sub_8136DE8
+ bl PokeblockAction_Cancel
b _08136A3C
_08136A18:
movs r0, 0x5
bl PlaySE
- ldr r1, =gUnknown_085B2668
+ ldr r1, =sPokeblockMenuActions
ldr r0, =gUnknown_0203AB50
ldr r0, [r0]
ldr r2, =0x00000804
@@ -2076,8 +2076,8 @@ _08136A3C:
.pool
thumb_func_end sub_81369E0
- thumb_func_start sub_8136A50
-sub_8136A50: @ 8136A50
+ thumb_func_start PokeblockAction_UseOnField
+PokeblockAction_UseOnField: @ 8136A50
push {lr}
lsls r0, 24
lsrs r0, 24
@@ -2092,7 +2092,7 @@ sub_8136A50: @ 8136A50
pop {r0}
bx r0
.pool
- thumb_func_end sub_8136A50
+ thumb_func_end PokeblockAction_UseOnField
thumb_func_start sub_8136A74
sub_8136A74: @ 8136A74
@@ -2118,14 +2118,14 @@ sub_8136AA0: @ 8136AA0
ldr r0, =gUnknown_0203AB48
ldr r1, [r0]
movs r0, 0
- bl sub_81357FC
+ bl OpenPokeblockCase
pop {r0}
bx r0
.pool
thumb_func_end sub_8136AA0
- thumb_func_start sub_8136AB4
-sub_8136AB4: @ 8136AB4
+ thumb_func_start PokeblockAction_Toss
+PokeblockAction_Toss: @ 8136AB4
push {r4,r5,lr}
sub sp, 0x10
adds r4, r0, 0
@@ -2177,7 +2177,7 @@ sub_8136AB4: @ 8136AB4
pop {r0}
bx r0
.pool
- thumb_func_end sub_8136AB4
+ thumb_func_end PokeblockAction_Toss
thumb_func_start sub_8136B48
sub_8136B48: @ 8136B48
@@ -2192,7 +2192,7 @@ sub_8136B48: @ 8136B48
str r2, [sp, 0x4]
movs r2, 0xE
str r2, [sp, 0x8]
- ldr r2, =gUnknown_085B26A4
+ ldr r2, =sTossYesNoFuncTable
str r2, [sp, 0xC]
movs r2, 0x1
movs r3, 0
@@ -2203,8 +2203,8 @@ sub_8136B48: @ 8136B48
.pool
thumb_func_end sub_8136B48
- thumb_func_start sub_8136B78
-sub_8136B78: @ 8136B78
+ thumb_func_start TossPokeblockChoice_Yes
+TossPokeblockChoice_Yes: @ 8136B78
push {r4,r5,lr}
sub sp, 0x10
adds r4, r0, 0
@@ -2233,7 +2233,7 @@ sub_8136B78: @ 8136B78
pop {r0}
bx r0
.pool
- thumb_func_end sub_8136B78
+ thumb_func_end TossPokeblockChoice_Yes
thumb_func_start sub_8136BC0
sub_8136BC0: @ 8136BC0
@@ -2283,7 +2283,7 @@ sub_8136BC0: @ 8136BC0
movs r0, 0x1
bl schedule_bg_copy_tilemap_to_vram
adds r0, r7, 0
- bl sub_8136C54
+ bl TossPokeblockChoice_No
_08136C36:
pop {r4-r7}
pop {r0}
@@ -2291,8 +2291,8 @@ _08136C36:
.pool
thumb_func_end sub_8136BC0
- thumb_func_start sub_8136C54
-sub_8136C54: @ 8136C54
+ thumb_func_start TossPokeblockChoice_No
+TossPokeblockChoice_No: @ 8136C54
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
@@ -2314,10 +2314,10 @@ sub_8136C54: @ 8136C54
pop {r0}
bx r0
.pool
- thumb_func_end sub_8136C54
+ thumb_func_end TossPokeblockChoice_No
- thumb_func_start sub_8136C8C
-sub_8136C8C: @ 8136C8C
+ thumb_func_start PokeblockAction_UseInBattle
+PokeblockAction_UseInBattle: @ 8136C8C
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -2385,10 +2385,10 @@ _08136D1A:
pop {r4-r7}
pop {r0}
bx r0
- thumb_func_end sub_8136C8C
+ thumb_func_end PokeblockAction_UseInBattle
- thumb_func_start sub_8136D2C
-sub_8136D2C: @ 8136D2C
+ thumb_func_start PokeblockAction_UseOnPokeblockFeeder
+PokeblockAction_UseOnPokeblockFeeder: @ 8136D2C
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 24
@@ -2424,10 +2424,10 @@ sub_8136D2C: @ 8136D2C
pop {r0}
bx r0
.pool
- thumb_func_end sub_8136D2C
+ thumb_func_end PokeblockAction_UseOnPokeblockFeeder
- thumb_func_start sub_8136D90
-sub_8136D90: @ 8136D90
+ thumb_func_start PokeblockAction_GiveToContestLady
+PokeblockAction_GiveToContestLady: @ 8136D90
push {r4-r6,lr}
adds r4, r0, 0
lsls r4, 24
@@ -2459,10 +2459,10 @@ sub_8136D90: @ 8136D90
pop {r0}
bx r0
.pool
- thumb_func_end sub_8136D90
+ thumb_func_end PokeblockAction_GiveToContestLady
- thumb_func_start sub_8136DE8
-sub_8136DE8: @ 8136DE8
+ thumb_func_start PokeblockAction_Cancel
+PokeblockAction_Cancel: @ 8136DE8
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
@@ -2485,7 +2485,7 @@ sub_8136DE8: @ 8136DE8
pop {r0}
bx r0
.pool
- thumb_func_end sub_8136DE8
+ thumb_func_end PokeblockAction_Cancel
thumb_func_start sub_8136E20
sub_8136E20: @ 8136E20
@@ -2815,7 +2815,7 @@ sub_8137068: @ 8137068
ldr r7, =gPokeblockNames
_08137074:
lsls r1, r4, 3
- ldr r0, =gUnknown_085B2720
+ ldr r0, =sFavoritePokeblocksTable
adds r1, r0
adds r0, r5, 0
bl PokeblockGetGain
diff --git a/data/graphics.s b/data/graphics.s
index 60787a2c5..60a56a0ac 100644
--- a/data/graphics.s
+++ b/data/graphics.s
@@ -884,9 +884,15 @@ gMenuPokeblock_Gfx:: @ 8D9B2B4
.incbin "baserom.gba", 0xd9b2b4, 0x1bc
gMenuPokeblock_Pal:: @ 8D9B470
- .incbin "baserom.gba", 0xd9b470, 0x358
+ .incbin "baserom.gba", 0xd9b470, 0x70
+
+gMenuPokeblockDevice_Gfx:: @ 8D9B4E0
+ .incbin "baserom.gba", 0xd9b4e0, 0x2c0
+
+gMenuPokeblockDevice_Pal:: @ 8D9B7A0
+ .incbin "baserom.gba", 0xd9b7a0, 0x28
-gMenuPokeblockDevice_Gfx:: @ 8D9B7C8
+gMenuPokeblock_Tilemap:: @ 8D9B7C8
.incbin "baserom.gba", 0xd9b7c8, 0x148
.align 2
diff --git a/data/pokeblock.s b/data/pokeblock.s
deleted file mode 100644
index 179d5ea60..000000000
--- a/data/pokeblock.s
+++ /dev/null
@@ -1,51 +0,0 @@
-@ the fourth big chunk of data
-
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
-gPokeblockFlavorCompatibilityTable:: @ 85B25A0
- .incbin "baserom.gba", 0x5b25a0, 0x80
-
-gUnknown_085B2620:: @ 85B2620
- .incbin "baserom.gba", 0x5b2620, 0xc
-
-gPokeblockNames:: @ 85B262C
- .incbin "baserom.gba", 0x5b262c, 0x3c
-
-gUnknown_085B2668:: @ 85B2668
- .incbin "baserom.gba", 0x5b2668, 0x30
-
-gUnknown_085B2698:: @ 85B2698
- .incbin "baserom.gba", 0x5b2698, 0x3
-
-gUnknown_085B269B:: @ 85B269B
- .incbin "baserom.gba", 0x5b269b, 0x2
-
-gUnknown_085B269D:: @ 85B269D
- .incbin "baserom.gba", 0x5b269d, 0x2
-
-gUnknown_085B269F:: @ 85B269F
- .incbin "baserom.gba", 0x5b269f, 0x5
-
-gUnknown_085B26A4:: @ 85B26A4
- .incbin "baserom.gba", 0x5b26a4, 0x4c
-
-gUnknown_085B26F0:: @ 85B26F0
- .incbin "baserom.gba", 0x5b26f0, 0x4
-
-gPokeblockCase_SpriteSheet:: @ 85B26F4
- .incbin "baserom.gba", 0x5b26f4, 0x8
-
-gPokeblockCase_SpritePal:: @ 85B26FC
- .incbin "baserom.gba", 0x5b26fc, 0x8
-
-gUnknown_085B2704:: @ 85B2704
- .incbin "baserom.gba", 0x5b2704, 0x18
-
-gUnknown_085B271C:: @ 85B271C
- .incbin "baserom.gba", 0x5b271c, 0x4
-
-gUnknown_085B2720:: @ 85B2720
- .incbin "baserom.gba", 0x5b2720, 0x28
diff --git a/data/strings.s b/data/strings.s
index 1eb65f494..977cf51a3 100644
--- a/data/strings.s
+++ b/data/strings.s
@@ -832,46 +832,46 @@ gText_UnkF908Var1Var2:: @ 85E9263
gText_BerryTag:: @ 85E926B
.string "BERRY TAG$"
-gUnknown_085E9275:: @ 85E9275
+gText_RedPokeblock:: @ 85E9275
.string "RED {POKEBLOCK}$"
-gUnknown_085E927F:: @ 85E927F
+gText_BluePokeblock:: @ 85E927F
.string "BLUE {POKEBLOCK}$"
-gUnknown_085E928A:: @ 85E928A
+gText_PinkPokeblock:: @ 85E928A
.string "PINK {POKEBLOCK}$"
-gUnknown_085E9295:: @ 85E9295
+gText_GreenPokeblock:: @ 85E9295
.string "GREEN {POKEBLOCK}$"
-gUnknown_085E92A1:: @ 85E92A1
+gText_YellowPokeblock:: @ 85E92A1
.string "YELLOW {POKEBLOCK}$"
-gUnknown_085E92AE:: @ 85E92AE
+gText_PurplePokeblock:: @ 85E92AE
.string "PURPLE {POKEBLOCK}$"
-gUnknown_085E92BB:: @ 85E92BB
+gText_IndigoPokeblock:: @ 85E92BB
.string "INDIGO {POKEBLOCK}$"
-gUnknown_085E92C8:: @ 85E92C8
+gText_BrownPokeblock:: @ 85E92C8
.string "BROWN {POKEBLOCK}$"
-gUnknown_085E92D4:: @ 85E92D4
+gText_LiteBluePokeblock:: @ 85E92D4
.string "LITEBLUE {POKEBLOCK}$"
-gUnknown_085E92E3:: @ 85E92E3
+gText_OlivePokeblock:: @ 85E92E3
.string "OLIVE {POKEBLOCK}$"
-gUnknown_085E92EF:: @ 85E92EF
+gText_GrayPokeblock:: @ 85E92EF
.string "GRAY {POKEBLOCK}$"
-gUnknown_085E92FA:: @ 85E92FA
+gText_BlackPokeblock:: @ 85E92FA
.string "BLACK {POKEBLOCK}$"
-gUnknown_085E9306:: @ 85E9306
+gText_WhitePokeblock:: @ 85E9306
.string "WHITE {POKEBLOCK}$"
-gUnknown_085E9312:: @ 85E9312
+gText_GoldPokeblock:: @ 85E9312
.string "GOLD {POKEBLOCK}$"
gText_Spicy:: @ 85E931D
diff --git a/include/graphics.h b/include/graphics.h
index ed0bfb108..24448308d 100644
--- a/include/graphics.h
+++ b/include/graphics.h
@@ -29,6 +29,11 @@ extern const u8 gInterfacePal_PremierBall[];
extern const u8 gOpenPokeballGfx[];
// pokeblock
+extern const u8 gMenuPokeblock_Gfx[];
+extern const u8 gMenuPokeblock_Pal[];
+extern const u8 gMenuPokeblock_Tilemap[];
+extern const u8 gMenuPokeblockDevice_Gfx[];
+extern const u8 gMenuPokeblockDevice_Pal[];
extern const u8 gPokeblockRed_Pal[];
extern const u8 gPokeblockBlue_Pal[];
extern const u8 gPokeblockPink_Pal[];
diff --git a/include/pokeblock.h b/include/pokeblock.h
index 058c0815e..5d691df22 100644
--- a/include/pokeblock.h
+++ b/include/pokeblock.h
@@ -1,7 +1,8 @@
#ifndef GUARD_POKEBLOCK_H
#define GUARD_POKEBLOCK_H
-#define TAG_POKEBLOCK_GFX 0x39E2
+#define GFX_TAG_POKEBLOCK 14818
+#define GFX_TAG_POKEBLOCK_CASE 14800
enum
{
@@ -34,6 +35,11 @@ void ChooseMonToGivePokeblock(struct Pokeblock *pokeblock, void (*callback)(void
void CB2_PreparePokeblockFeedScene(void);
// pokeblock
+extern const s8 gPokeblockFlavorCompatibilityTable[];
+extern const u8 *const gPokeblockNames[];
+extern const struct CompressedSpriteSheet gPokeblockCase_SpriteSheet;
+extern const struct CompressedSpritePalette gPokeblockCase_SpritePal;
+
u8 CreatePokeblockCaseSprite(s16 x, s16 y, u8 subpriority);
u8 GetPokeblockData(const struct Pokeblock *pokeblock, u8 dataId);
void ClearPokeblocks(void);
diff --git a/include/rom6.h b/include/rom6.h
index b4a972794..3804f27d1 100644
--- a/include/rom6.h
+++ b/include/rom6.h
@@ -1,7 +1,7 @@
#ifndef GUARD_ROM6_H
#define GUARD_ROM6_H
-void sub_81357FC(u8, void(void));
+void OpenPokeblockCase(u8, void(void));
u8 GetLeadMonIndex(void);
u8 GetSSTidalLocation(u8 *grp, u8 *num, s16 *x, s16 *y);
void sub_813BADC(bool8);
diff --git a/include/strings.h b/include/strings.h
index d9e5921a1..6a379ee19 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -1,45 +1,50 @@
#ifndef GUARD_STRINGS_H
#define GUARD_STRINGS_H
-// Exported type declarations
-
-// Exported RAM declarations
-
-// Exported ROM declarations
-
extern const u8 gText_FromSpace[];
+
extern const u8 gText_Lv50[];
extern const u8 gText_OpenLevel[];
+
extern const u8 gText_Mom[];
extern const u8 gText_Dad[];
+
extern const u8 gText_Cool[];
extern const u8 gText_Beauty[];
extern const u8 gText_Cute[];
extern const u8 gText_Smart[];
extern const u8 gText_Tough[];
+
extern const u8 gText_Single[];
extern const u8 gText_Double[];
+
extern const u8 gText_Spicy2[];
extern const u8 gText_Dry2[];
extern const u8 gText_Sweet2[];
extern const u8 gText_Bitter2[];
extern const u8 gText_Sour2[];
+
extern const u8 gText_Excellent[];
extern const u8 gText_VeryGood[];
extern const u8 gText_Good[];
extern const u8 gText_SoSo[];
extern const u8 gText_Bad[];
extern const u8 gText_TheWorst[];
+
extern const u8 gText_Slots[];
extern const u8 gText_Roulette[];
extern const u8 gText_Jackpot[];
+
extern const u8 gText_First[];
extern const u8 gText_Second[];
extern const u8 gText_Third[];
+
extern const u8 gText_NoDecorations[];
extern const u8 gText_NoDecorationsInUse[];
+
extern const u8 gText_Exit[];
extern const u8 gText_Cancel[];
+
extern const u8 gText_Color161Shadow161[];
extern const u8 gText_GoBackPrevMenu[];
extern const u8 gText_CantPlaceInRoom[];
@@ -56,12 +61,14 @@ extern const u8 gText_NoDecorationHere[];
extern const u8 gText_DecorationWillBeDiscarded[];
extern const u8 gText_CantThrowAwayInUse[];
extern const u8 gText_DecorationThrownAway[];
+
extern const u8 gText_Desk[];
extern const u8 gText_Chair[];
extern const u8 gText_Plant[];
extern const u8 gText_Ornament[];
extern const u8 gText_Mat[];
extern const u8 gText_Poster[];
+
extern const u8 gText_PutOutSelectedDecorItem[];
extern const u8 gText_StoreChosenDecorInPC[];
extern const u8 gText_ThrowAwayUnwantedDecors[];
@@ -84,8 +91,31 @@ extern const u8 gText_RegisteredDataDeleted[];
extern const u8 gUnknown_085EA79D[];
extern const u8 gText_PkmnFainted3[];
extern const u8 gText_Coins[];
+
extern const u8 gText_Var1AteTheVar2[];
extern const u8 gText_Var1HappilyAteVar2[];
extern const u8 gText_Var1DisdainfullyAteVar2[];
+extern const u8 gText_RedPokeblock[];
+extern const u8 gText_BluePokeblock[];
+extern const u8 gText_PinkPokeblock[];
+extern const u8 gText_GreenPokeblock[];
+extern const u8 gText_YellowPokeblock[];
+extern const u8 gText_PurplePokeblock[];
+extern const u8 gText_IndigoPokeblock[];
+extern const u8 gText_BrownPokeblock[];
+extern const u8 gText_LiteBluePokeblock[];
+extern const u8 gText_OlivePokeblock[];
+extern const u8 gText_GrayPokeblock[];
+extern const u8 gText_BlackPokeblock[];
+extern const u8 gText_WhitePokeblock[];
+extern const u8 gText_GoldPokeblock[];
+
+extern const u8 gMenuText_Use[];
+extern const u8 gMenuText_Toss[];
+extern const u8 gMenuText_Give[];
+extern const u8 gMenuText_Give2[];
+
+extern const u8 gText_Cancel2[];
+
#endif //GUARD_STRINGS_H
diff --git a/ld_script.txt b/ld_script.txt
index e14999887..7cf793391 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -427,7 +427,6 @@ SECTIONS {
data/starter_choose.o(.rodata);
data/data4c.o(.rodata);
src/pokeblock.o(.rodata);
- data/pokeblock.o(.rodata);
data/data4d.o(.rodata);
src/battle_controller_link_partner.o(.rodata);
src/battle_message.o(.rodata);
diff --git a/src/berry_blender.c b/src/berry_blender.c
index 7c90391fa..aed7814d8 100644
--- a/src/berry_blender.c
+++ b/src/berry_blender.c
@@ -132,8 +132,6 @@ extern u8 gInGameOpponentsNo;
extern u8 gUnknown_020322D5;
extern u8 gResultsWindowId;
-extern const u8 * const gPokeblockNames[];
-
// graphics
extern const u8 gBerryBlenderArrowTiles[];
extern const u8 gBerryBlenderStartTiles[];
diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c
index e18733e37..a85cf8945 100644
--- a/src/lilycove_lady.c
+++ b/src/lilycove_lady.c
@@ -1079,7 +1079,7 @@ void sub_818E914(void)
void sub_818E92C(void)
{
- sub_81357FC(3, c2_exit_to_overworld_2_switch);
+ OpenPokeblockCase(3, c2_exit_to_overworld_2_switch);
}
void sub_818E940(void)
diff --git a/src/pokeblock.c b/src/pokeblock.c
index 023b7c3e7..4c8a9504f 100644
--- a/src/pokeblock.c
+++ b/src/pokeblock.c
@@ -1,4 +1,204 @@
#include "global.h"
#include "pokeblock.h"
+#include "bg.h"
+#include "strings.h"
+#include "text.h"
+#include "menu.h"
+#include "task.h"
+#include "menu_helpers.h"
+#include "pokemon.h"
+#include "graphics.h"
+enum
+{
+ PKBL_USE_ON_FIELD,
+ PKBL_TOSS,
+ PKBL_CANCEL,
+ PKBL_USE_IN_BATTLE,
+ PKBL_USE_ON_FEEDER,
+ PKBL_GIVE_TO_LADY
+};
+// this file's functions
+void PokeblockAction_UseOnField(u8 taskId);
+void PokeblockAction_Toss(u8 taskId);
+void PokeblockAction_Cancel(u8 taskId);
+void PokeblockAction_UseInBattle(u8 taskId);
+void PokeblockAction_UseOnPokeblockFeeder(u8 taskId);
+void PokeblockAction_GiveToContestLady(u8 taskId);
+void TossPokeblockChoice_Yes(u8 taskId);
+void TossPokeblockChoice_No(u8 taskId);
+
+// const rom data
+const s8 gPokeblockFlavorCompatibilityTable[] =
+{
+ // Cool, Beauty, Cute, Smart, Tough
+ 0, 0, 0, 0, 0, // Hardy
+ 1, 0, 0, 0, -1, // Lonely
+ 1, 0, -1, 0, 0, // Brave
+ 1, -1, 0, 0, 0, // Adamant
+ 1, 0, 0, -1, 0, // Naughty
+ -1, 0, 0, 0, 1, // Bold
+ 0, 0, 0, 0, 0, // Docile
+ 0, 0, -1, 0, 1, // Relaxed
+ 0, -1, 0, 0, 1, // Impish
+ 0, 0, 0, -1, 1, // Lax
+ -1, 0, 1, 0, 0, // Timid
+ 0, 0, 1, 0, -1, // Hasty
+ 0, 0, 0, 0, 0, // Serious
+ 0, -1, 1, 0, 0, // Jolly
+ 0, 0, 1, -1, 0, // Naive
+ -1, 1, 0, 0, 0, // Modest
+ 0, 1, 0, 0, -1, // Mild
+ 0, 1, -1, 0, 0, // Quiet
+ 0, 0, 0, 0, 0, // Bashful
+ 0, 1, 0, -1, 0, // Rash
+ -1, 0, 0, 1, 0, // Calm
+ 0, 0, 0, 1, -1, // Gentle
+ 0, 0, -1, 1, 0, // Sassy
+ 0, -1, 0, 1, 0, // Careful
+ 0, 0, 0, 0, 0 // Quirky
+};
+
+const struct BgTemplate gUnknown_085B2620[] =
+{
+ {
+ .bg = 0,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 31,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 1,
+ .baseTile = 0
+ },
+ {
+ .bg = 1,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 30,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 0,
+ .baseTile = 0
+ },
+ {
+ .bg = 2,
+ .charBaseIndex = 3,
+ .mapBaseIndex = 29,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 2,
+ .baseTile = 0
+ }
+};
+
+const u8 *const gPokeblockNames[] =
+{
+ NULL,
+ gText_RedPokeblock,
+ gText_BluePokeblock,
+ gText_PinkPokeblock,
+ gText_GreenPokeblock,
+ gText_YellowPokeblock,
+ gText_PurplePokeblock,
+ gText_IndigoPokeblock,
+ gText_BrownPokeblock,
+ gText_LiteBluePokeblock,
+ gText_OlivePokeblock,
+ gText_GrayPokeblock,
+ gText_BlackPokeblock,
+ gText_WhitePokeblock,
+ gText_GoldPokeblock
+};
+
+const struct MenuAction sPokeblockMenuActions[] =
+{
+ {gMenuText_Use, PokeblockAction_UseOnField},
+ {gMenuText_Toss, PokeblockAction_Toss},
+ {gText_Cancel2, PokeblockAction_Cancel},
+ {gMenuText_Use, PokeblockAction_UseInBattle},
+ {gMenuText_Use, PokeblockAction_UseOnPokeblockFeeder},
+ {gMenuText_Give2, PokeblockAction_GiveToContestLady},
+};
+
+const u8 sActionsOnField[] = {PKBL_USE_ON_FIELD, PKBL_TOSS, PKBL_CANCEL};
+const u8 sActionsInBattle[] = {PKBL_USE_IN_BATTLE, PKBL_CANCEL};
+const u8 sActionsOnPokeblockFeeder[] = {PKBL_USE_ON_FEEDER, PKBL_CANCEL};
+const u8 sActionsWhenGivingToLady[] = {PKBL_GIVE_TO_LADY, PKBL_CANCEL};
+
+const struct YesNoFuncTable sTossYesNoFuncTable = {TossPokeblockChoice_Yes, TossPokeblockChoice_No};
+
+static const u8 sContestStatsMonData[] = {MON_DATA_COOL, MON_DATA_BEAUTY, MON_DATA_CUTE, MON_DATA_SMART, MON_DATA_TOUGH};
+
+static const struct OamData sOamData_PokeblockCase =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 0,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 3,
+ .tileNum = 0,
+ .priority = 2,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+static const union AnimCmd sSpriteAnim_PokeblockCase[] =
+{
+ ANIMCMD_FRAME(0, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd *const sSpriteAnimTable_PokeblockCase[] =
+{
+ sSpriteAnim_PokeblockCase
+};
+
+static const union AffineAnimCmd gSpriteAffineAnim_85B26C8[] =
+{
+ AFFINEANIMCMD_FRAME(0, 0, -2, 2),
+ AFFINEANIMCMD_FRAME(0, 0, 2, 4),
+ AFFINEANIMCMD_FRAME(0, 0, -2, 4),
+ AFFINEANIMCMD_FRAME(0, 0, 2, 2),
+ AFFINEANIMCMD_END
+};
+
+const union AffineAnimCmd *const sSpriteAffineAnimTable_85B26F0[] =
+{
+ gSpriteAffineAnim_85B26C8
+};
+
+const struct CompressedSpriteSheet gPokeblockCase_SpriteSheet =
+{
+ gMenuPokeblockDevice_Gfx, 0x800, GFX_TAG_POKEBLOCK_CASE
+};
+
+const struct CompressedSpritePalette gPokeblockCase_SpritePal =
+{
+ gMenuPokeblockDevice_Pal, GFX_TAG_POKEBLOCK_CASE
+};
+
+const struct SpriteTemplate sSpriteTemplate_PokeblockCase =
+{
+ GFX_TAG_POKEBLOCK_CASE,
+ GFX_TAG_POKEBLOCK_CASE,
+ &sOamData_PokeblockCase,
+ sSpriteAnimTable_PokeblockCase,
+ NULL,
+ gDummySpriteAffineAnimTable,
+ SpriteCallbackDummy
+};
+
+const struct TextColor sTextColorInPokeblockMenu = {0, 2, 3};
+
+const struct Pokeblock sFavoritePokeblocksTable[] =
+{
+ { PBLOCK_CLR_RED, 20, 0, 0, 0, 0, 20},
+ { PBLOCK_CLR_BLUE, 0, 20, 0, 0, 0, 20},
+ { PBLOCK_CLR_PINK, 0, 0, 20, 0, 0, 20},
+ { PBLOCK_CLR_GREEN, 0, 0, 0, 20, 0, 20},
+ { PBLOCK_CLR_YELLOW, 0, 0, 0, 0, 20, 20}
+};
diff --git a/src/pokeblock_feed.c b/src/pokeblock_feed.c
index 58a8667fd..ec5f3074f 100644
--- a/src/pokeblock_feed.c
+++ b/src/pokeblock_feed.c
@@ -56,8 +56,6 @@ extern struct SpriteTemplate gUnknown_0202499C;
extern const u8 gBattleTerrainPalette_Frontier[];
extern const u8 gBattleTerrainTiles_Building[];
extern const u8 gUnknown_08D9BA44[];
-extern const struct CompressedSpriteSheet gPokeblockCase_SpriteSheet;
-extern const struct CompressedSpritePalette gPokeblockCase_SpritePal;
extern const struct CompressedSpriteSheet gMonFrontPicTable[];
extern const u16 gUnknown_0860F074[];
@@ -508,13 +506,13 @@ static const union AffineAnimCmd *const sThrownPokeblockAffineAnimTable[] =
static const struct CompressedSpriteSheet sPokeblock_SpriteSheet =
{
- gPokeblock_Gfx, 0x20, TAG_POKEBLOCK_GFX
+ gPokeblock_Gfx, 0x20, GFX_TAG_POKEBLOCK
};
static const struct SpriteTemplate sThrownPokeblockSpriteTemplate =
{
- .tileTag = TAG_POKEBLOCK_GFX,
- .paletteTag = TAG_POKEBLOCK_GFX,
+ .tileTag = GFX_TAG_POKEBLOCK,
+ .paletteTag = GFX_TAG_POKEBLOCK,
.oam = &sThrownPokeblockOamData,
.anims = sThrownPokeblockAnimTable,
.images = NULL,
@@ -721,7 +719,7 @@ static void SetPokeblockSpritePal(u8 pokeblockCaseId)
{
u8 colorId = GetPokeblockData(&gSaveBlock1Ptr->pokeblocks[pokeblockCaseId], PBLOCK_COLOR);
sPokeblockSpritePal.data = sPokeblocksPals[colorId - 1];
- sPokeblockSpritePal.tag = TAG_POKEBLOCK_GFX;
+ sPokeblockSpritePal.tag = GFX_TAG_POKEBLOCK;
}
// defines for task data fields
diff --git a/src/pokemon_3.c b/src/pokemon_3.c
index b89b00e8e..634923777 100644
--- a/src/pokemon_3.c
+++ b/src/pokemon_3.c
@@ -22,6 +22,7 @@
#include "abilities.h"
#include "pokemon_animation.h"
#include "pokedex.h"
+#include "pokeblock.h"
extern struct BattlePokemon gBattleMons[4];
extern struct BattleEnigmaBerry gEnigmaBerries[4];
@@ -59,7 +60,6 @@ extern const u8 gText_PkmnsXPreventsSwitching[];
extern const struct CompressedSpritePalette gMonPaletteTable[];
extern const struct CompressedSpritePalette gMonShinyPaletteTable[];
extern const u16 gHMMoves[];
-extern const s8 gPokeblockFlavorCompatibilityTable[];
extern const u8 gMonAnimationDelayTable[];
extern const u8 gMonFrontAnimIdsTable[];
@@ -1297,21 +1297,21 @@ bool8 IsPokeSpriteNotFlipped(u16 species)
return gBaseStats[species].noFlip;
}
-s8 GetMonFlavorRelation(struct Pokemon *mon, u8 a2)
+s8 GetMonFlavorRelation(struct Pokemon *mon, u8 flavour)
{
u8 nature = GetNature(mon);
- return gPokeblockFlavorCompatibilityTable[nature * 5 + a2];
+ return gPokeblockFlavorCompatibilityTable[nature * 5 + flavour];
}
-s8 GetFlavorRelationByPersonality(u32 personality, u8 a2)
+s8 GetFlavorRelationByPersonality(u32 personality, u8 flavour)
{
u8 nature = GetNatureFromPersonality(personality);
- return gPokeblockFlavorCompatibilityTable[nature * 5 + a2];
+ return gPokeblockFlavorCompatibilityTable[nature * 5 + flavour];
}
bool8 IsTradedMon(struct Pokemon *mon)
{
- u8 otName[8];
+ u8 otName[OT_NAME_LENGTH + 1];
u32 otId;
GetMonData(mon, MON_DATA_OT_NAME, otName);
otId = GetMonData(mon, MON_DATA_OT_ID, 0);
diff --git a/src/safari_zone.c b/src/safari_zone.c
index d3d40af28..53027b57e 100644
--- a/src/safari_zone.c
+++ b/src/safari_zone.c
@@ -5,6 +5,7 @@
#include "main.h"
#include "battle.h"
#include "string_util.h"
+#include "pokeblock.h"
struct PokeblockFeeder
{
@@ -24,7 +25,6 @@ extern u8 EventScript_2A4B8A[];
extern u8 EventScript_2A4B6F[];
extern u8 EventScript_2A4B4C[];
extern u8 EventScript_2A4B9B[];
-extern const u8* const gPokeblockNames[];
extern void sub_80EE44C(u8, u8);
extern void IncrementGameStat(u8 index);