diff options
104 files changed, 25391 insertions, 29006 deletions
diff --git a/.travis.yml b/.travis.yml index 3db6ab6fc..56bea002d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -55,5 +55,6 @@ matrix: script: - ./build_tools.sh - make -j2 compare_ruby_de + - make -j2 compare_sapphire_de allow_failures: - env: _="Formatting" @@ -26,7 +26,7 @@ RAMSCRGEN := tools/ramscrgen/ramscrgen REVISION := 0 -VERSIONS := ruby sapphire ruby_rev1 sapphire_rev1 ruby_rev2 sapphire_rev2 ruby_de +VERSIONS := ruby sapphire ruby_rev1 sapphire_rev1 ruby_rev2 sapphire_rev2 ruby_de sapphire_de # Clear the default suffixes. .SUFFIXES: @@ -178,3 +178,4 @@ $(eval $(call VERSION_RULES,sapphire,SAPPHIRE,0,ENGLISH)) $(eval $(call VERSION_RULES,sapphire_rev1,SAPPHIRE,1,ENGLISH)) $(eval $(call VERSION_RULES,sapphire_rev2,SAPPHIRE,2,ENGLISH)) $(eval $(call VERSION_RULES,ruby_de,RUBY,0,GERMAN)) +$(eval $(call VERSION_RULES,sapphire_de,SAPPHIRE,0,GERMAN)) diff --git a/asm-de/battle_message.s b/asm-de/battle_message.s index dda69ce44..2f671a766 100644 --- a/asm-de/battle_message.s +++ b/asm-de/battle_message.s @@ -1561,11 +1561,11 @@ _08de121754: lsls r1, r0, 2 adds r1, r0 lsls r1, 3 - ldr r0, _08de121764 @ =0x081fd47c + ldr r0, _08de121764 @ =gTrainers+4 adds r4, r1, r0 b _081219E6 .align 2, 0 -_08de121764: .4byte 0x081fd47c +_08de121764: .4byte gTrainers+4 _08121830: lsls r0, r7, 3 subs r0, r7 diff --git a/asm-de/easy_chat.s b/asm-de/easy_chat.s index 54cf8808c..2f6c28fdb 100644 --- a/asm-de/easy_chat.s +++ b/asm-de/easy_chat.s @@ -4212,7 +4212,7 @@ _080E812C: mov r2, r8 strb r2, [r0] adds r0, 0x1 - ldr r1, _080E81A4 @ =0x083e7686 + ldr r1, _080E81A4 @ =gBerryMasterWifePhrases + 0x2 adds r4, r1 ldrh r1, [r4] movs r2, 0 @@ -4246,7 +4246,7 @@ _080E818A: _080E8198: .4byte 0x0200b19a _080E819C: .4byte 0xffff5e66 _080E81A0: .4byte gBerryMasterWifePhrases -_080E81A4: .4byte 0x083e7686 +_080E81A4: .4byte gBerryMasterWifePhrases + 0x2 _080E81A8: lsls r0, r4, 16 lsrs r5, r0, 16 @@ -10801,105 +10801,4 @@ _080EB45A: bx r1 thumb_func_end de_sub_80EB748 - thumb_func_start sub_80EB3FC -sub_80EB3FC: @ 80EB4B4 - push {r4-r7,lr} - adds r5, r0, 0 - lsls r6, r1, 16 - lsrs r4, r6, 16 - adds r7, r4, 0 - adds r0, r4, 0 - bl sub_80EB37C - lsls r0, 24 - cmp r0, 0 - beq _080EB4D8 - ldr r1, _080EB4D4 @ =gOtherText_ThreeQuestions - adds r0, r5, 0 - bl StringCopy - b _080EB55E - .align 2, 0 -_080EB4D4: .4byte gOtherText_ThreeQuestions -_080EB4D8: - ldr r0, _080EB4F4 @ =0x0000ffff - cmp r4, r0 - beq _080EB558 - lsrs r1, r6, 25 - ldr r2, _080EB4F8 @ =0x000001ff - ands r2, r7 - cmp r1, 0x13 - bgt _080EB4FC - cmp r1, 0x12 - bge _080EB510 - cmp r1, 0 - beq _080EB500 - b _080EB520 - .align 2, 0 -_080EB4F4: .4byte 0x0000ffff -_080EB4F8: .4byte 0x000001ff -_080EB4FC: - cmp r1, 0x15 - bne _080EB520 -_080EB500: - movs r0, 0xB - adds r1, r2, 0 - muls r1, r0 - ldr r0, _080EB50C @ =gSpeciesNames - adds r1, r0 - b _080EB550 - .align 2, 0 -_080EB50C: .4byte gSpeciesNames -_080EB510: - movs r0, 0xD - adds r1, r2, 0 - muls r1, r0 - ldr r0, _080EB51C @ =gMoveNames - adds r1, r0 - b _080EB550 - .align 2, 0 -_080EB51C: .4byte gMoveNames -_080EB520: - ldr r0, _080EB564 @ =gEasyChatGroupWords - lsls r1, 2 - adds r1, r0 - ldr r1, [r1] - subs r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - ldr r0, _080EB568 @ =0x0000ffff - cmp r2, r0 - beq _080EB550 - adds r3, r0, 0 -_080EB536: - ldrb r0, [r1] - adds r1, 0x1 - subs r2, 0x1 - cmp r0, 0xFF - beq _080EB548 -_080EB540: - ldrb r0, [r1] - adds r1, 0x1 - cmp r0, 0xFF - bne _080EB540 -_080EB548: - lsls r0, r2, 16 - lsrs r2, r0, 16 - cmp r2, r3 - bne _080EB536 -_080EB550: - adds r0, r5, 0 - bl StringCopy - adds r5, r0, 0 -_080EB558: - movs r0, 0xFF - strb r0, [r5] - adds r0, r5, 0 -_080EB55E: - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080EB564: .4byte gEasyChatGroupWords -_080EB568: .4byte 0x0000ffff - thumb_func_end sub_80EB3FC - .align 2, 0 @ Don't pad with nop. diff --git a/asm/crt0.s b/asm/crt0.s index 121b11744..049392be9 100644 --- a/asm/crt0.s +++ b/asm/crt0.s @@ -1,4 +1,6 @@ .include "constants/gba_constants.inc" + .include "constants/misc_constants.inc" + .include "constants/version.inc" .syntax unified @@ -47,10 +49,15 @@ GPIOPortReadEnable: @ 80000C8 .4byte 0xFFFFFFFF .4byte 0xFFFFFFFF .4byte 0xFFFFFFFF - .4byte 2 - .4byte 5 + .4byte GAME_VERSION + .4byte GAME_LANGUAGE + .ifdef SAPPHIRE + .ascii "pokemon sapphire version" + .space 8 + .else .ascii "pokemon ruby version" .space 12 + .endif .4byte gMonFrontPicTable .4byte gMonBackPicTable .4byte gMonPaletteTable diff --git a/asm/easy_chat.s b/asm/easy_chat.s index c34212a24..6b85e1e76 100644 --- a/asm/easy_chat.s +++ b/asm/easy_chat.s @@ -10730,105 +10730,4 @@ _080EB3F6: bx r1 thumb_func_end sub_80EB37C - thumb_func_start sub_80EB3FC -sub_80EB3FC: @ 80EB3FC - push {r4-r7,lr} - adds r5, r0, 0 - lsls r6, r1, 16 - lsrs r4, r6, 16 - adds r7, r4, 0 - adds r0, r4, 0 - bl sub_80EB37C - lsls r0, 24 - cmp r0, 0 - beq _080EB420 - ldr r1, _080EB41C @ =gOtherText_ThreeQuestions - adds r0, r5, 0 - bl StringCopy - b _080EB4A6 - .align 2, 0 -_080EB41C: .4byte gOtherText_ThreeQuestions -_080EB420: - ldr r0, _080EB43C @ =0x0000ffff - cmp r4, r0 - beq _080EB4A0 - lsrs r1, r6, 25 - ldr r2, _080EB440 @ =0x000001ff - ands r2, r7 - cmp r1, 0x13 - bgt _080EB444 - cmp r1, 0x12 - bge _080EB458 - cmp r1, 0 - beq _080EB448 - b _080EB468 - .align 2, 0 -_080EB43C: .4byte 0x0000ffff -_080EB440: .4byte 0x000001ff -_080EB444: - cmp r1, 0x15 - bne _080EB468 -_080EB448: - movs r0, 0xB - adds r1, r2, 0 - muls r1, r0 - ldr r0, _080EB454 @ =gSpeciesNames - adds r1, r0 - b _080EB498 - .align 2, 0 -_080EB454: .4byte gSpeciesNames -_080EB458: - movs r0, 0xD - adds r1, r2, 0 - muls r1, r0 - ldr r0, _080EB464 @ =gMoveNames - adds r1, r0 - b _080EB498 - .align 2, 0 -_080EB464: .4byte gMoveNames -_080EB468: - ldr r0, _080EB4AC @ =gEasyChatGroupWords - lsls r1, 2 - adds r1, r0 - ldr r1, [r1] - subs r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - ldr r0, _080EB4B0 @ =0x0000ffff - cmp r2, r0 - beq _080EB498 - adds r3, r0, 0 -_080EB47E: - ldrb r0, [r1] - adds r1, 0x1 - subs r2, 0x1 - cmp r0, 0xFF - beq _080EB490 -_080EB488: - ldrb r0, [r1] - adds r1, 0x1 - cmp r0, 0xFF - bne _080EB488 -_080EB490: - lsls r0, r2, 16 - lsrs r2, r0, 16 - cmp r2, r3 - bne _080EB47E -_080EB498: - adds r0, r5, 0 - bl StringCopy - adds r5, r0, 0 -_080EB4A0: - movs r0, 0xFF - strb r0, [r5] - adds r0, r5, 0 -_080EB4A6: - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080EB4AC: .4byte gEasyChatGroupWords -_080EB4B0: .4byte 0x0000ffff - thumb_func_end sub_80EB3FC - .align 2, 0 @ Don't pad with nop. diff --git a/asm/item_menu.s b/asm/item_menu.s deleted file mode 100644 index 17e399160..000000000 --- a/asm/item_menu.s +++ /dev/null @@ -1,9873 +0,0 @@ - .include "constants/gba_constants.inc" - .include "constants/species_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_80A3118 -sub_80A3118: @ 80A3118 - push {lr} - bl AnimateSprites - bl BuildOamBuffer - bl RunTasks - bl sub_80A740C - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_80A3118 - - thumb_func_start sub_80A3134 -sub_80A3134: @ 80A3134 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - ldr r1, _080A3168 @ =gBGTilemapBuffers + 0x800 - ldr r2, _080A316C @ =0x06002000 - ldr r0, _080A3170 @ =0x040000d4 - str r1, [r0] - str r2, [r0, 0x4] - ldr r3, _080A3174 @ =0x80000400 - str r3, [r0, 0x8] - ldr r2, [r0, 0x8] - movs r2, 0x80 - lsls r2, 4 - adds r1, r2 - ldr r2, _080A3178 @ =0x06006000 - str r1, [r0] - str r2, [r0, 0x4] - str r3, [r0, 0x8] - ldr r0, [r0, 0x8] - pop {r0} - bx r0 - .align 2, 0 -_080A3168: .4byte gBGTilemapBuffers + 0x800 -_080A316C: .4byte 0x06002000 -_080A3170: .4byte 0x040000d4 -_080A3174: .4byte 0x80000400 -_080A3178: .4byte 0x06006000 - thumb_func_end sub_80A3134 - - thumb_func_start sub_80A317C -sub_80A317C: @ 80A317C - push {r4,r5,lr} - sub sp, 0x4 - ldr r0, _080A3198 @ =gMain - ldr r1, _080A319C @ =0x0000043c - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x10 - bls _080A318E - b _080A34A8 -_080A318E: - lsls r0, 2 - ldr r1, _080A31A0 @ =_080A31A4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080A3198: .4byte gMain -_080A319C: .4byte 0x0000043c -_080A31A0: .4byte _080A31A4 - .align 2, 0 -_080A31A4: - .4byte _080A31E8 - .4byte _080A31F2 - .4byte _080A3208 - .4byte _080A320E - .4byte _080A3228 - .4byte _080A324C - .4byte _080A3252 - .4byte _080A3270 - .4byte _080A327C - .4byte _080A3298 - .4byte _080A32A4 - .4byte _080A3328 - .4byte _080A338C - .4byte _080A33F4 - .4byte _080A3404 - .4byte _080A345C - .4byte _080A347C -_080A31E8: - bl sub_80F9438 - bl sub_80A34E8 - b _080A3464 -_080A31F2: - bl remove_some_task - ldr r1, _080A3200 @ =gMain - ldr r0, _080A3204 @ =0x0000043c - adds r1, r0 - b _080A346A - .align 2, 0 -_080A3200: .4byte gMain -_080A3204: .4byte 0x0000043c -_080A3208: - bl gpu_pal_allocator_reset__manage_upper_four - b _080A3464 -_080A320E: - bl sub_80F9020 - ldr r0, _080A3220 @ =0x02000000 - ldr r1, _080A3224 @ =0x0001ffff - adds r0, r1 - movs r1, 0 - strb r1, [r0] - b _080A3464 - .align 2, 0 -_080A3220: .4byte 0x02000000 -_080A3224: .4byte 0x0001ffff -_080A3228: - bl ResetPaletteFade - ldr r2, _080A3240 @ =gPaletteFade - ldrb r0, [r2, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2, 0x8] - ldr r1, _080A3244 @ =gMain - ldr r0, _080A3248 @ =0x0000043c - adds r1, r0 - b _080A346A - .align 2, 0 -_080A3240: .4byte gPaletteFade -_080A3244: .4byte gMain -_080A3248: .4byte 0x0000043c -_080A324C: - bl ResetSpriteData - b _080A3464 -_080A3252: - bl sub_80A3520 - lsls r0, 24 - cmp r0, 0 - bne _080A325E - b _080A34A8 -_080A325E: - ldr r1, _080A3268 @ =gMain - ldr r0, _080A326C @ =0x0000043c - adds r1, r0 - b _080A346A - .align 2, 0 -_080A3268: .4byte gMain -_080A326C: .4byte 0x0000043c -_080A3270: - ldr r0, _080A3278 @ =gWindowConfig_81E6DFC - bl SetUpWindowConfig - b _080A3464 - .align 2, 0 -_080A3278: .4byte gWindowConfig_81E6DFC -_080A327C: - ldr r0, _080A328C @ =gWindowConfig_81E6DFC - bl MultistepInitMenuWindowBegin - ldr r1, _080A3290 @ =gMain - ldr r0, _080A3294 @ =0x0000043c - adds r1, r0 - b _080A346A - .align 2, 0 -_080A328C: .4byte gWindowConfig_81E6DFC -_080A3290: .4byte gMain -_080A3294: .4byte 0x0000043c -_080A3298: - bl MultistepInitMenuWindowContinue - cmp r0, 0 - bne _080A32A2 - b _080A34A8 -_080A32A2: - b _080A3464 -_080A32A4: - bl sub_80F944C - bl LoadScrollIndicatorPalette - movs r0, 0 - movs r1, 0xAC - movs r2, 0xC - bl CreateVerticalScrollIndicators - movs r0, 0x1 - movs r1, 0xAC - movs r2, 0x94 - bl CreateVerticalScrollIndicators - movs r0, 0x2 - movs r1, 0x1C - movs r2, 0x58 - bl CreateVerticalScrollIndicators - movs r0, 0x3 - movs r1, 0x64 - movs r2, 0x58 - bl CreateVerticalScrollIndicators - movs r0, 0 - movs r1, 0x2 - bl sub_80F9988 - movs r0, 0x1 - movs r1, 0x2 - bl sub_80F9988 - movs r0, 0x2 - movs r1, 0x2 - bl sub_80F9988 - movs r0, 0x3 - movs r1, 0x2 - bl sub_80F9988 - ldr r0, _080A331C @ =gUnknown_03000701 - ldrb r0, [r0] - subs r0, 0x4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _080A3312 - movs r0, 0x2 - movs r1, 0x1 - bl sub_80F979C - movs r0, 0x3 - movs r1, 0x1 - bl sub_80F979C -_080A3312: - ldr r1, _080A3320 @ =gMain - ldr r0, _080A3324 @ =0x0000043c - adds r1, r0 - b _080A346A - .align 2, 0 -_080A331C: .4byte gUnknown_03000701 -_080A3320: .4byte gMain -_080A3324: .4byte 0x0000043c -_080A3328: - ldr r1, _080A3378 @ =gUnknown_0203855A - movs r0, 0x10 - strb r0, [r1] - ldr r4, _080A337C @ =gBGTilemapBuffers + 0x1000 - ldr r5, _080A3380 @ =gUnknown_02038559 - ldrb r1, [r5] - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_80A39B8 - ldrb r1, [r5] - adds r0, r4, 0 - bl sub_80A3AC0 - bl sub_80A3D08 - ldr r4, _080A3384 @ =gBagPockets - ldr r0, [r4, 0x10] - ldr r1, [r4, 0x14] - bl sub_80A3C34 - ldr r0, [r4, 0x18] - ldr r1, [r4, 0x1C] - bl sub_80A3C34 - bl sub_80A3D40 - ldr r1, _080A3388 @ =gUnknown_03005D24 - movs r0, 0 - ldrsb r0, [r5, r0] - lsls r0, 3 - adds r0, r4 - ldr r0, [r0] - str r0, [r1] - bl sub_80A362C - b _080A3464 - .align 2, 0 -_080A3378: .4byte gUnknown_0203855A -_080A337C: .4byte gBGTilemapBuffers + 0x1000 -_080A3380: .4byte gUnknown_02038559 -_080A3384: .4byte gBagPockets -_080A3388: .4byte gUnknown_03005D24 -_080A338C: - ldr r0, _080A33D4 @ =0x0000ffff - movs r1, 0 - movs r2, 0x7 - bl sub_80A48E8 - ldr r1, _080A33D8 @ =gUnknown_03005D10 - ldr r4, _080A33DC @ =gUnknown_02038559 - movs r0, 0 - ldrsb r0, [r4, r0] - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x1] - ldrb r0, [r0] - adds r1, r0 - ldr r0, _080A33E0 @ =gUnknown_03005D24 - ldr r0, [r0] - lsls r1, 2 - adds r1, r0 - movs r2, 0 - ldrsh r0, [r1, r2] - bl ItemListMenu_InitDescription - bl ItemListMenu_InitMenu - ldr r1, _080A33E4 @ =gUnknown_0203855B - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r1] - ldr r1, _080A33E8 @ =gUnknown_0203855C - movs r0, 0 - strb r0, [r1] - ldr r1, _080A33EC @ =gMain - ldr r0, _080A33F0 @ =0x0000043c - adds r1, r0 - b _080A346A - .align 2, 0 -_080A33D4: .4byte 0x0000ffff -_080A33D8: .4byte gUnknown_03005D10 -_080A33DC: .4byte gUnknown_02038559 -_080A33E0: .4byte gUnknown_03005D24 -_080A33E4: .4byte gUnknown_0203855B -_080A33E8: .4byte gUnknown_0203855C -_080A33EC: .4byte gMain -_080A33F0: .4byte 0x0000043c -_080A33F4: - bl CreateBagSprite - movs r0, 0 - bl CreateBagPokeballSprite - bl sub_80A3740 - b _080A3464 -_080A3404: - ldr r3, _080A3444 @ =0x04000208 - ldrh r2, [r3] - movs r0, 0 - strh r0, [r3] - ldr r4, _080A3448 @ =0x04000200 - ldrh r0, [r4] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r2, _080A344C @ =REG_DISPSTAT - ldrh r0, [r2] - movs r1, 0x8 - orrs r0, r1 - strh r0, [r2] - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r2, _080A3450 @ =gPaletteFade - ldrb r1, [r2, 0x8] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2, 0x8] - ldr r1, _080A3454 @ =gMain - ldr r0, _080A3458 @ =0x0000043c - adds r1, r0 - b _080A346A - .align 2, 0 -_080A3444: .4byte 0x04000208 -_080A3448: .4byte 0x04000200 -_080A344C: .4byte REG_DISPSTAT -_080A3450: .4byte gPaletteFade -_080A3454: .4byte gMain -_080A3458: .4byte 0x0000043c -_080A345C: - bl sub_8055870 - cmp r0, 0x1 - beq _080A34A8 -_080A3464: - ldr r1, _080A3474 @ =gMain - ldr r2, _080A3478 @ =0x0000043c - adds r1, r2 -_080A346A: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _080A34A8 - .align 2, 0 -_080A3474: .4byte gMain -_080A3478: .4byte 0x0000043c -_080A347C: - ldr r0, _080A34A0 @ =sub_80A3134 - bl SetVBlankCallback - ldr r0, _080A34A4 @ =sub_80A3118 - bl SetMainCallback2 - bl sub_80A751C - bl sub_80A7630 - bl sub_80A770C - bl sub_80A7828 - bl sub_80A78B8 - movs r0, 0x1 - b _080A34AA - .align 2, 0 -_080A34A0: .4byte sub_80A3134 -_080A34A4: .4byte sub_80A3118 -_080A34A8: - movs r0, 0 -_080A34AA: - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80A317C - - thumb_func_start sub_80A34B4 -sub_80A34B4: @ 80A34B4 - push {lr} -_080A34B6: - bl sub_80A317C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080A34D2 - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A34B6 - movs r0, 0 - b _080A34DE -_080A34D2: - ldr r1, _080A34E4 @ =gUnknown_03000700 - movs r0, 0 - strb r0, [r1] - bl ResetTasks - movs r0, 0x1 -_080A34DE: - pop {r1} - bx r1 - .align 2, 0 -_080A34E4: .4byte gUnknown_03000700 - thumb_func_end sub_80A34B4 - - thumb_func_start sub_80A34E8 -sub_80A34E8: @ 80A34E8 - push {lr} - bl sub_80F9368 - ldr r1, _080A3514 @ =REG_BG2CNT - ldr r2, _080A3518 @ =0x00000c06 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0x2 - ldr r2, _080A351C @ =0x00000405 - adds r0, r2, 0 - strh r0, [r1] - subs r1, 0xA - movs r2, 0xBA - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x50 - movs r0, 0 - strh r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080A3514: .4byte REG_BG2CNT -_080A3518: .4byte 0x00000c06 -_080A351C: .4byte 0x00000405 - thumb_func_end sub_80A34E8 - - thumb_func_start sub_80A3520 -sub_80A3520: @ 80A3520 - push {lr} - ldr r0, _080A353C @ =0x02000000 - ldr r1, _080A3540 @ =0x0001ffff - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x4 - bls _080A3530 - b _080A3624 -_080A3530: - lsls r0, 2 - ldr r1, _080A3544 @ =_080A3548 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080A353C: .4byte 0x02000000 -_080A3540: .4byte 0x0001ffff -_080A3544: .4byte _080A3548 - .align 2, 0 -_080A3548: - .4byte _080A355C - .4byte _080A3570 - .4byte _080A3588 - .4byte _080A35C0 - .4byte _080A3604 -_080A355C: - ldr r0, _080A3568 @ =gBagScreen_Gfx - ldr r1, _080A356C @ =0x06004000 - bl LZDecompressVram - b _080A35EA - .align 2, 0 -_080A3568: .4byte gBagScreen_Gfx -_080A356C: .4byte 0x06004000 -_080A3570: - ldr r0, _080A3580 @ =gUnknown_08E77004 - ldr r1, _080A3584 @ =gBGTilemapBuffers + 0x1000 - movs r2, 0x80 - lsls r2, 3 - bl CpuSet - b _080A35EA - .align 2, 0 -_080A3580: .4byte gUnknown_08E77004 -_080A3584: .4byte gBGTilemapBuffers + 0x1000 -_080A3588: - ldr r0, _080A35A4 @ =gSaveBlock2 - ldrb r0, [r0, 0x8] - cmp r0, 0 - beq _080A3598 - ldr r0, _080A35A8 @ =gUnknown_03000701 - ldrb r0, [r0] - cmp r0, 0x7 - bne _080A35B0 -_080A3598: - ldr r0, _080A35AC @ =gBagScreenMale_Pal - movs r1, 0 - movs r2, 0x40 - bl LoadCompressedPalette - b _080A35EA - .align 2, 0 -_080A35A4: .4byte gSaveBlock2 -_080A35A8: .4byte gUnknown_03000701 -_080A35AC: .4byte gBagScreenMale_Pal -_080A35B0: - ldr r0, _080A35BC @ =gBagScreenFemale_Pal - movs r1, 0 - movs r2, 0x40 - bl LoadCompressedPalette - b _080A35EA - .align 2, 0 -_080A35BC: .4byte gBagScreenFemale_Pal -_080A35C0: - ldr r0, _080A35D8 @ =gSaveBlock2 - ldrb r0, [r0, 0x8] - cmp r0, 0 - beq _080A35D0 - ldr r0, _080A35DC @ =gUnknown_03000701 - ldrb r0, [r0] - cmp r0, 0x7 - bne _080A35E4 -_080A35D0: - ldr r0, _080A35E0 @ =gUnknown_083C1CC8 - bl LoadCompressedObjectPic - b _080A35EA - .align 2, 0 -_080A35D8: .4byte gSaveBlock2 -_080A35DC: .4byte gUnknown_03000701 -_080A35E0: .4byte gUnknown_083C1CC8 -_080A35E4: - ldr r0, _080A35F8 @ =gUnknown_083C1CD0 - bl LoadCompressedObjectPic -_080A35EA: - ldr r1, _080A35FC @ =0x02000000 - ldr r0, _080A3600 @ =0x0001ffff - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _080A3624 - .align 2, 0 -_080A35F8: .4byte gUnknown_083C1CD0 -_080A35FC: .4byte 0x02000000 -_080A3600: .4byte 0x0001ffff -_080A3604: - ldr r0, _080A3618 @ =gUnknown_083C1CD8 - bl LoadCompressedObjectPalette - ldr r0, _080A361C @ =0x02000000 - ldr r1, _080A3620 @ =0x0001ffff - adds r0, r1 - movs r1, 0 - strb r1, [r0] - movs r0, 0x1 - b _080A3626 - .align 2, 0 -_080A3618: .4byte gUnknown_083C1CD8 -_080A361C: .4byte 0x02000000 -_080A3620: .4byte 0x0001ffff -_080A3624: - movs r0, 0 -_080A3626: - pop {r1} - bx r1 - thumb_func_end sub_80A3520 - - thumb_func_start sub_80A362C -sub_80A362C: @ 80A362C - push {r4-r6,lr} - movs r4, 0 - ldr r6, _080A3648 @ =gUnknown_03000701 - ldr r5, _080A364C @ =gUnknown_03005D10 -_080A3634: - ldrb r0, [r6] - cmp r0, 0x5 - bne _080A3650 - lsls r1, r4, 2 - adds r0, r1, r5 - ldrb r0, [r0, 0x2] - subs r0, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - b _080A3656 - .align 2, 0 -_080A3648: .4byte gUnknown_03000701 -_080A364C: .4byte gUnknown_03005D10 -_080A3650: - lsls r1, r4, 2 - adds r0, r1, r5 - ldrb r3, [r0, 0x2] -_080A3656: - adds r1, r5 - ldrb r0, [r1, 0x1] - cmp r0, 0 - beq _080A366C - ldrb r2, [r1, 0x3] - adds r0, r2 - cmp r0, r3 - ble _080A3674 - subs r0, r3, r2 - strb r0, [r1, 0x1] - b _080A3674 -_080A366C: - ldrb r0, [r1] - cmp r0, r3 - bls _080A3674 - strb r3, [r1] -_080A3674: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x4 - bls _080A3634 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80A362C - - thumb_func_start sub_80A3684 -sub_80A3684: @ 80A3684 - push {r4,lr} - movs r2, 0 - ldr r4, _080A36B0 @ =gUnknown_02038559 - ldr r3, _080A36B4 @ =gUnknown_03005D10 - movs r1, 0 -_080A368E: - lsls r0, r2, 2 - adds r0, r3 - strb r1, [r0] - strb r1, [r0, 0x1] - strb r1, [r0, 0x2] - strb r1, [r0, 0x3] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x4 - bls _080A368E - movs r0, 0 - strb r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A36B0: .4byte gUnknown_02038559 -_080A36B4: .4byte gUnknown_03005D10 - thumb_func_end sub_80A3684 - - thumb_func_start sub_80A36B8 -sub_80A36B8: @ 80A36B8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - ldr r0, [sp, 0x18] - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r2, 24 - lsls r3, 24 - lsrs r3, 24 - mov r12, r3 - lsls r0, 24 - lsrs r0, 24 - lsrs r2, 24 - adds r0, r2, r0 - cmp r2, r0 - bgt _080A370A - adds r7, r0, 0 -_080A36DE: - mov r1, r8 - mov r3, r12 - adds r0, r1, r3 - adds r4, r2, 0x1 - cmp r1, r0 - bgt _080A3702 - lsls r3, r2, 5 - movs r5, 0 - adds r2, r0, 0 -_080A36F0: - adds r0, r1, r3 - lsls r0, 1 - adds r0, r6 - strh r5, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, r2 - ble _080A36F0 -_080A3702: - lsls r0, r4, 16 - lsrs r2, r0, 16 - cmp r2, r7 - ble _080A36DE -_080A370A: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A36B8 - - thumb_func_start ClearBag -ClearBag: @ 80A3714 - push {r4,r5,lr} - movs r4, 0 - ldr r5, _080A373C @ =gBagPockets -_080A371A: - lsls r1, r4, 3 - adds r1, r5 - ldr r0, [r1] - ldrb r1, [r1, 0x4] - bl ClearItemSlots - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x4 - bls _080A371A - bl sub_80A3684 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A373C: .4byte gBagPockets - thumb_func_end ClearBag - - thumb_func_start sub_80A3740 -sub_80A3740: @ 80A3740 - push {lr} - sub sp, 0x4 - ldr r1, _080A376C @ =gUnknown_083C1704 - mov r0, sp - movs r2, 0x4 - bl memcpy - mov r0, sp - adds r0, 0x2 - movs r1, 0xD1 - movs r2, 0x2 - bl LoadPalette - mov r0, sp - movs r1, 0xD8 - movs r2, 0x2 - bl LoadPalette - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080A376C: .4byte gUnknown_083C1704 - thumb_func_end sub_80A3740 - - thumb_func_start sub_80A3770 -sub_80A3770: @ 80A3770 - push {lr} - ldr r0, _080A379C @ =gUnknown_03000701 - ldrb r0, [r0] - cmp r0, 0 - bne _080A37B6 - ldr r3, _080A37A0 @ =gUnknown_03000704 - ldr r2, _080A37A4 @ =gUnknown_02038559 - movs r1, 0 - ldrsb r1, [r2, r1] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 1 - ldr r1, _080A37A8 @ =gUnknown_083C1690 - adds r0, r1 - str r0, [r3] - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r0, 0x3 - beq _080A37B0 - ldr r1, _080A37AC @ =gUnknown_02038564 - movs r0, 0x4 - b _080A37B4 - .align 2, 0 -_080A379C: .4byte gUnknown_03000701 -_080A37A0: .4byte gUnknown_03000704 -_080A37A4: .4byte gUnknown_02038559 -_080A37A8: .4byte gUnknown_083C1690 -_080A37AC: .4byte gUnknown_02038564 -_080A37B0: - ldr r1, _080A37BC @ =gUnknown_02038564 - movs r0, 0x6 -_080A37B4: - strb r0, [r1] -_080A37B6: - pop {r0} - bx r0 - .align 2, 0 -_080A37BC: .4byte gUnknown_02038564 - thumb_func_end sub_80A3770 - - thumb_func_start sub_80A37C0 -sub_80A37C0: @ 80A37C0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A37F0 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _080A37F4 @ =sub_80A50C8 - str r0, [r1] - movs r0, 0 - bl StartVerticalScrollIndicators - movs r0, 0x1 - bl StartVerticalScrollIndicators - movs r0, 0x2 - bl StartVerticalScrollIndicators - movs r0, 0x3 - bl StartVerticalScrollIndicators - pop {r0} - bx r0 - .align 2, 0 -_080A37F0: .4byte gTasks -_080A37F4: .4byte sub_80A50C8 - thumb_func_end sub_80A37C0 - - thumb_func_start sub_80A37F8 -sub_80A37F8: @ 80A37F8 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r6, _080A3854 @ =gUnknown_0203855A - ldrb r5, [r6] - cmp r5, 0xF - bhi _080A3868 - adds r0, r5, 0x1 - strb r0, [r6] - ldr r4, _080A3858 @ =gBGTilemapBuffers + 0x1000 - ldrb r2, [r6] - adds r0, r4, 0 - adds r1, r5, 0 - movs r3, 0x4F - bl sub_80A396C - ldr r0, _080A385C @ =gUnknown_02038559 - ldrb r1, [r0] - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - ldrb r2, [r6] - lsrs r2, 1 - ldr r3, _080A3860 @ =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r3 - movs r3, 0x12 - ldrsb r3, [r0, r3] - adds r0, r4, 0 - bl sub_80A39E4 - ldr r4, _080A3864 @ =gUnknown_02038558 - movs r0, 0x1 - strb r0, [r4] - lsrs r1, r5, 1 - ldrb r2, [r6] - lsrs r2, 1 - subs r2, 0x1 - adds r0, r7, 0 - bl sub_80A48E8 - movs r0, 0 - strb r0, [r4] - b _080A3932 - .align 2, 0 -_080A3854: .4byte gUnknown_0203855A -_080A3858: .4byte gBGTilemapBuffers + 0x1000 -_080A385C: .4byte gUnknown_02038559 -_080A3860: .4byte gTasks -_080A3864: .4byte gUnknown_02038558 -_080A3868: - ldr r0, _080A38A0 @ =gLinkOpen - ldrb r0, [r0] - cmp r0, 0x1 - bne _080A38B4 - ldr r1, _080A38A4 @ =gUnknown_03005D10 - ldr r0, _080A38A8 @ =gUnknown_02038559 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x1] - ldrb r0, [r0] - adds r1, r0 - ldr r0, _080A38AC @ =gUnknown_03005D24 - ldr r0, [r0] - lsls r1, 2 - adds r1, r0 - movs r2, 0 - ldrsh r0, [r1, r2] - ldr r4, _080A38B0 @ =gUnknown_02038562 - ldrb r1, [r4] - bl ItemListMenu_ChangeDescription - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _080A38F2 - .align 2, 0 -_080A38A0: .4byte gLinkOpen -_080A38A4: .4byte gUnknown_03005D10 -_080A38A8: .4byte gUnknown_02038559 -_080A38AC: .4byte gUnknown_03005D24 -_080A38B0: .4byte gUnknown_02038562 -_080A38B4: - ldr r1, _080A3938 @ =gUnknown_02038562 - ldrb r0, [r1] - cmp r0, 0x2 - bhi _080A38F2 - ldr r5, _080A393C @ =gUnknown_03005D10 - adds r4, r1, 0 -_080A38C0: - ldr r0, _080A3940 @ =gUnknown_02038559 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r0, 0x1] - ldrb r0, [r0] - adds r1, r0 - ldr r0, _080A3944 @ =gUnknown_03005D24 - ldr r0, [r0] - lsls r1, 2 - adds r1, r0 - movs r2, 0 - ldrsh r0, [r1, r2] - ldrb r1, [r4] - bl ItemListMenu_ChangeDescription - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bls _080A38C0 -_080A38F2: - ldr r0, _080A3938 @ =gUnknown_02038562 - ldrb r0, [r0] - cmp r0, 0x3 - bne _080A3932 - ldr r1, _080A3948 @ =gUnknown_0203855A - movs r0, 0x10 - strb r0, [r1] - ldr r1, _080A394C @ =gUnknown_0203855B - ldr r0, _080A3940 @ =gUnknown_02038559 - ldrb r0, [r0] - adds r0, 0x1 - strb r0, [r1] - ldr r0, _080A3950 @ =sub_80A4F68 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl sub_80A37C0 - adds r0, r7, 0 - bl DestroyTask - bl ItemListMenu_InitMenu - movs r0, 0x2 - movs r1, 0 - bl sub_80F979C - movs r0, 0x3 - movs r1, 0 - bl sub_80F979C -_080A3932: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A3938: .4byte gUnknown_02038562 -_080A393C: .4byte gUnknown_03005D10 -_080A3940: .4byte gUnknown_02038559 -_080A3944: .4byte gUnknown_03005D24 -_080A3948: .4byte gUnknown_0203855A -_080A394C: .4byte gUnknown_0203855B -_080A3950: .4byte sub_80A4F68 - thumb_func_end sub_80A37F8 - - thumb_func_start sub_80A3954 -sub_80A3954: @ 80A3954 - push {lr} - adds r1, r0, 0 - ldr r0, _080A3968 @ =gUnknown_08E77004 - movs r2, 0x80 - lsls r2, 3 - bl CpuSet - pop {r0} - bx r0 - .align 2, 0 -_080A3968: .4byte gUnknown_08E77004 - thumb_func_end sub_80A3954 - - thumb_func_start sub_80A396C -sub_80A396C: @ 80A396C - push {r4-r7,lr} - lsls r1, 24 - lsrs r5, r1, 24 - adds r4, r5, 0 - lsls r2, 24 - lsrs r7, r2, 24 - lsls r3, 24 - lsrs r6, r3, 24 - adds r1, r4, 0x2 - lsls r1, 6 - adds r1, 0x1C - adds r2, r0, r1 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r7, r4 - bls _080A39B2 -_080A398E: - movs r1, 0 - adds r3, r5, 0x1 - adds r4, r2, 0 - adds r4, 0x40 -_080A3996: - lsls r0, r1, 1 - adds r0, r2 - strh r6, [r0] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0xE - bls _080A3996 - adds r2, r4, 0 - adds r1, r5, 0 - lsls r0, r3, 24 - lsrs r5, r0, 24 - cmp r7, r1 - bhi _080A398E -_080A39B2: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A396C - - thumb_func_start sub_80A39B8 -sub_80A39B8: @ 80A39B8 - push {lr} - sub sp, 0x10 - lsls r1, 25 - lsrs r1, 24 - ldr r3, _080A39E0 @ =gUnknown_08E96EC8 - movs r2, 0 - str r2, [sp] - str r1, [sp, 0x4] - movs r1, 0x8 - str r1, [sp, 0x8] - movs r1, 0x2 - str r1, [sp, 0xC] - movs r1, 0x4 - movs r2, 0xA - bl sub_809D104 - add sp, 0x10 - pop {r0} - bx r0 - .align 2, 0 -_080A39E0: .4byte gUnknown_08E96EC8 - thumb_func_end sub_80A39B8 - - thumb_func_start sub_80A39E4 -sub_80A39E4: @ 80A39E4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - mov r8, r0 - lsls r1, 24 - lsrs r1, 24 - adds r4, r1, 0 - lsls r2, 24 - lsrs r6, r2, 24 - adds r5, r6, 0 - lsls r2, r1, 1 - mov r9, r2 - lsls r3, 24 - asrs r3, 24 - movs r0, 0x1 - negs r0, r0 - cmp r3, r0 - bne _080A3A5C - adds r0, r1, 0x1 - lsls r7, r0, 1 - cmp r1, 0x5 - bne _080A3A18 - movs r7, 0x2 -_080A3A18: - ldr r0, _080A3A58 @ =gUnknown_08E96EC8 - mov r10, r0 - movs r4, 0x8 - subs r4, r6 - lsls r4, 16 - lsrs r4, 16 - str r4, [sp] - str r2, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0x2 - mov r9, r0 - str r0, [sp, 0xC] - mov r0, r8 - movs r1, 0x4 - movs r2, 0xA - mov r3, r10 - bl sub_809D104 - adds r1, r6, 0x4 - movs r0, 0 - str r0, [sp] - str r7, [sp, 0x4] - str r4, [sp, 0x8] - mov r0, r9 - str r0, [sp, 0xC] - mov r0, r8 - movs r2, 0xA - mov r3, r10 - bl sub_809D104 - b _080A3AAA - .align 2, 0 -_080A3A58: .4byte gUnknown_08E96EC8 -_080A3A5C: - cmp r3, 0x1 - bne _080A3AAA - subs r0, r4, 0x1 - lsls r0, 17 - lsrs r7, r0, 16 - cmp r4, 0x1 - bne _080A3A6C - movs r7, 0xA -_080A3A6C: - ldr r6, _080A3ABC @ =gUnknown_08E96EC8 - str r5, [sp] - str r7, [sp, 0x4] - movs r0, 0x8 - subs r0, r5 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x8] - movs r4, 0x2 - str r4, [sp, 0xC] - mov r0, r8 - movs r1, 0x4 - movs r2, 0xA - adds r3, r6, 0 - bl sub_809D104 - movs r1, 0xC - subs r1, r5 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0 - str r0, [sp] - mov r0, r9 - str r0, [sp, 0x4] - str r5, [sp, 0x8] - str r4, [sp, 0xC] - mov r0, r8 - movs r2, 0xA - adds r3, r6, 0 - bl sub_809D104 -_080A3AAA: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A3ABC: .4byte gUnknown_08E96EC8 - thumb_func_end sub_80A39E4 - - thumb_func_start sub_80A3AC0 -sub_80A3AC0: @ 80A3AC0 - push {r4-r6,lr} - adds r3, r0, 0 - lsls r1, 24 - lsrs r4, r1, 24 - movs r2, 0 - ldr r1, _080A3AE4 @ =0x0000024a - ldr r0, _080A3AE8 @ =0x0000107d - adds r6, r0, 0 - subs r0, 0x1 - adds r5, r0, 0 -_080A3AD4: - cmp r2, r4 - bne _080A3AEC - lsls r0, r2, 1 - adds r0, r3 - adds r0, r1 - strh r6, [r0] - b _080A3AF4 - .align 2, 0 -_080A3AE4: .4byte 0x0000024a -_080A3AE8: .4byte 0x0000107d -_080A3AEC: - lsls r0, r2, 1 - adds r0, r3 - adds r0, r1 - strh r5, [r0] -_080A3AF4: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x4 - bls _080A3AD4 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80A3AC0 - - thumb_func_start sub_80A3B04 -sub_80A3B04: @ 80A3B04 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r4, _080A3BA4 @ =gUnknown_02038559 - ldrb r0, [r4] - lsls r1, 24 - asrs r6, r1, 24 - adds r0, r6, r0 - strb r0, [r4] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x4 - ble _080A3B20 - movs r0, 0 - strb r0, [r4] -_080A3B20: - movs r0, 0 - ldrsb r0, [r4, r0] - cmp r0, 0 - bge _080A3B2C - movs r0, 0x4 - strb r0, [r4] -_080A3B2C: - bl sub_80A76A0 - bl sub_80A7590 - ldr r2, _080A3BA8 @ =gUnknown_03005D24 - ldr r1, _080A3BAC @ =gBagPockets - movs r0, 0 - ldrsb r0, [r4, r0] - lsls r0, 3 - adds r0, r1 - ldr r0, [r0] - str r0, [r2] - ldrb r0, [r4] - bl sub_80A3D24 - ldr r0, _080A3BB0 @ =gUnknown_0203855A - movs r4, 0 - strb r4, [r0] - adds r0, r5, 0 - bl sub_80A3954 - adds r0, r5, 0 - movs r1, 0 - movs r2, 0x10 - movs r3, 0x3 - bl sub_80A396C - adds r0, r5, 0 - movs r1, 0 - bl sub_80A39B8 - ldr r1, _080A3BB4 @ =gUnknown_0203855B - movs r0, 0x6 - strb r0, [r1] - ldr r0, _080A3BB8 @ =gUnknown_02038562 - strb r4, [r0] - ldr r4, _080A3BBC @ =sub_80A37F8 - adds r0, r4, 0 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - bne _080A3B90 - adds r0, r4, 0 - movs r1, 0x8 - bl CreateTask - lsls r0, 24 - lsrs r2, r0, 24 -_080A3B90: - ldr r1, _080A3BC0 @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - strh r6, [r0, 0x12] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A3BA4: .4byte gUnknown_02038559 -_080A3BA8: .4byte gUnknown_03005D24 -_080A3BAC: .4byte gBagPockets -_080A3BB0: .4byte gUnknown_0203855A -_080A3BB4: .4byte gUnknown_0203855B -_080A3BB8: .4byte gUnknown_02038562 -_080A3BBC: .4byte sub_80A37F8 -_080A3BC0: .4byte gTasks - thumb_func_end sub_80A3B04 - - thumb_func_start swap32 -swap32: @ 80A3BC4 - ldr r3, [r0] - ldr r2, [r1] - str r2, [r0] - str r3, [r1] - bx lr - thumb_func_end swap32 - - thumb_func_start sub_80A3BD0 -sub_80A3BD0: @ 80A3BD0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r7, r1, 0 - adds r6, r0, 0 - movs r3, 0 - b _080A3C1A -_080A3BE0: - adds r0, r3, 0x1 - lsls r1, r0, 16 - lsrs r4, r1, 16 - lsls r1, r2, 24 - lsrs r1, 24 - mov r8, r0 - cmp r4, r1 - bcs _080A3C14 - lsls r0, r3, 2 - adds r5, r0, r6 - adds r2, r1, 0 -_080A3BF6: - ldrh r0, [r5, 0x2] - cmp r0, 0 - bne _080A3C0A - lsls r1, r4, 2 - adds r1, r6 - adds r0, r5, 0 - str r2, [sp] - bl swap32 - ldr r2, [sp] -_080A3C0A: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r2 - bcc _080A3BF6 -_080A3C14: - mov r1, r8 - lsls r0, r1, 16 - lsrs r3, r0, 16 -_080A3C1A: - adds r2, r7, 0 - lsls r0, r2, 24 - lsrs r0, 24 - subs r0, 0x1 - cmp r3, r0 - blt _080A3BE0 - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A3BD0 - - thumb_func_start sub_80A3C34 -sub_80A3C34: @ 80A3C34 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r7, r1, 0 - adds r6, r0, 0 - adds r2, r7, 0 - lsls r0, r2, 24 - movs r3, 0 - cmp r0, 0 - beq _080A3C9C -_080A3C4A: - adds r0, r3, 0x1 - lsls r1, r0, 16 - lsrs r4, r1, 16 - lsls r1, r2, 24 - lsrs r1, 24 - mov r8, r0 - cmp r4, r1 - bcs _080A3C8C - lsls r0, r3, 2 - adds r5, r0, r6 - adds r2, r1, 0 -_080A3C60: - ldrh r0, [r5, 0x2] - cmp r0, 0 - beq _080A3C82 - lsls r0, r4, 2 - adds r1, r0, r6 - ldrh r0, [r1, 0x2] - cmp r0, 0 - beq _080A3C82 - ldrh r0, [r5] - ldrh r3, [r1] - cmp r0, r3 - bls _080A3C82 - adds r0, r5, 0 - str r2, [sp] - bl swap32 - ldr r2, [sp] -_080A3C82: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r2 - bcc _080A3C60 -_080A3C8C: - mov r1, r8 - lsls r0, r1, 16 - lsrs r3, r0, 16 - adds r2, r7, 0 - lsls r0, r2, 24 - lsrs r0, 24 - cmp r3, r0 - bcc _080A3C4A -_080A3C9C: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A3C34 - - thumb_func_start sub_80A3CA8 -sub_80A3CA8: @ 80A3CA8 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _080A3D00 @ =gUnknown_03005D10 - lsls r0, r6, 2 - adds r3, r0, r1 - movs r0, 0 - strb r0, [r3, 0x2] - movs r4, 0 - ldr r0, _080A3D04 @ =gBagPockets - lsls r2, r6, 3 - adds r1, r2, r0 - mov r12, r0 - ldrb r1, [r1, 0x4] - cmp r4, r1 - bcs _080A3CEC - mov r7, r12 - adds r5, r3, 0 -_080A3CCC: - adds r3, r2, r7 - ldr r0, [r3] - lsls r1, r4, 2 - adds r1, r0 - ldrh r0, [r1, 0x2] - cmp r0, 0 - beq _080A3CE0 - ldrb r0, [r5, 0x2] - adds r0, 0x1 - strb r0, [r5, 0x2] -_080A3CE0: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldrb r3, [r3, 0x4] - cmp r4, r3 - bcc _080A3CCC -_080A3CEC: - lsls r0, r6, 3 - add r0, r12 - ldr r1, [r0, 0x4] - ldr r0, [r0] - bl sub_80A3BD0 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A3D00: .4byte gUnknown_03005D10 -_080A3D04: .4byte gBagPockets - thumb_func_end sub_80A3CA8 - - thumb_func_start sub_80A3D08 -sub_80A3D08: @ 80A3D08 - push {r4,lr} - movs r4, 0 -_080A3D0C: - adds r0, r4, 0 - bl sub_80A3CA8 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x4 - bls _080A3D0C - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A3D08 - - thumb_func_start sub_80A3D24 -sub_80A3D24: @ 80A3D24 - push {lr} - lsls r0, 24 - ldr r1, _080A3D3C @ =gUnknown_03005D10 - lsrs r0, 22 - adds r1, r0, r1 - ldrb r0, [r1, 0x2] - cmp r0, 0x6 - bls _080A3D36 - movs r0, 0x7 -_080A3D36: - strb r0, [r1, 0x3] - pop {r0} - bx r0 - .align 2, 0 -_080A3D3C: .4byte gUnknown_03005D10 - thumb_func_end sub_80A3D24 - - thumb_func_start sub_80A3D40 -sub_80A3D40: @ 80A3D40 - push {r4,lr} - movs r4, 0 -_080A3D44: - adds r0, r4, 0 - bl sub_80A3D24 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x4 - bls _080A3D44 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A3D40 - - thumb_func_start sub_80A3D5C -sub_80A3D5C: @ 80A3D5C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080A3DF4 @ =gUnknown_03005D10 - mov r9, r1 - ldr r2, _080A3DF8 @ =gUnknown_02038559 - mov r8, r2 - movs r1, 0 - ldrsb r1, [r2, r1] - lsls r1, 2 - add r1, r9 - ldrb r2, [r1, 0x1] - ldrb r1, [r1] - adds r2, r1 - ldr r7, _080A3DFC @ =gUnknown_03005D24 - ldr r1, [r7] - lsls r6, r2, 2 - adds r3, r6, r1 - ldr r2, _080A3E00 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldrh r0, [r3, 0x2] - ldrh r1, [r1, 0xA] - subs r0, r1 - strh r0, [r3, 0x2] - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - bne _080A3DE0 - ldr r0, _080A3E04 @ =gSaveBlock1 - ldr r1, _080A3E08 @ =0x00000496 - adds r5, r0, r1 - ldrh r0, [r5] - ldrh r3, [r3] - cmp r0, r3 - bne _080A3DB4 - bl sub_80A40D0 - strh r4, [r5] -_080A3DB4: - ldr r0, [r7] - adds r0, r6, r0 - strh r4, [r0] - mov r2, r8 - movs r0, 0 - ldrsb r0, [r2, r0] - lsls r0, 2 - mov r3, r9 - adds r2, r0, r3 - ldrb r1, [r2, 0x1] - adds r0, r1, 0x7 - ldrb r3, [r2, 0x2] - cmp r0, r3 - bne _080A3DD8 - cmp r1, 0 - beq _080A3DD8 - subs r0, r1, 0x1 - strb r0, [r2, 0x1] -_080A3DD8: - ldr r0, _080A3DF8 @ =gUnknown_02038559 - ldrb r0, [r0] - bl sub_80A3CA8 -_080A3DE0: - ldr r0, _080A3DF8 @ =gUnknown_02038559 - ldrb r0, [r0] - bl sub_80A3D24 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A3DF4: .4byte gUnknown_03005D10 -_080A3DF8: .4byte gUnknown_02038559 -_080A3DFC: .4byte gUnknown_03005D24 -_080A3E00: .4byte gTasks -_080A3E04: .4byte gSaveBlock1 -_080A3E08: .4byte 0x00000496 - thumb_func_end sub_80A3D5C - - thumb_func_start sub_80A3E0C -sub_80A3E0C: @ 80A3E0C - push {lr} - ldr r3, _080A3E60 @ =gUnknown_03005D10 - ldr r2, _080A3E64 @ =gUnknown_02038559 - movs r0, 0 - ldrsb r0, [r2, r0] - lsls r0, 2 - adds r0, r3 - ldrb r1, [r0, 0x1] - ldrb r0, [r0] - adds r1, r0 - ldr r0, _080A3E68 @ =gUnknown_03005D24 - ldr r0, [r0] - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1, 0x2] - cmp r0, 0 - bne _080A3E52 - strh r0, [r1] - movs r0, 0 - ldrsb r0, [r2, r0] - lsls r0, 2 - adds r2, r0, r3 - ldrb r1, [r2, 0x1] - adds r0, r1, 0x7 - ldrb r3, [r2, 0x2] - cmp r0, r3 - bne _080A3E4A - cmp r1, 0 - beq _080A3E4A - subs r0, r1, 0x1 - strb r0, [r2, 0x1] -_080A3E4A: - ldr r0, _080A3E64 @ =gUnknown_02038559 - ldrb r0, [r0] - bl sub_80A3CA8 -_080A3E52: - ldr r0, _080A3E64 @ =gUnknown_02038559 - ldrb r0, [r0] - bl sub_80A3D24 - pop {r0} - bx r0 - .align 2, 0 -_080A3E60: .4byte gUnknown_03005D10 -_080A3E64: .4byte gUnknown_02038559 -_080A3E68: .4byte gUnknown_03005D24 - thumb_func_end sub_80A3E0C - - thumb_func_start nullsub_16 -nullsub_16: @ 80A3E6C - bx lr - thumb_func_end nullsub_16 - - thumb_func_start sub_80A3E70 -sub_80A3E70: @ 80A3E70 - lsls r0, 24 - lsls r1, 24 - ldr r2, _080A3E8C @ =gUnknown_03005D24 - ldr r2, [r2] - lsrs r0, 22 - adds r0, r2 - ldr r3, [r0] - lsrs r1, 22 - adds r1, r2 - ldr r2, [r1] - str r2, [r0] - str r3, [r1] - bx lr - .align 2, 0 -_080A3E8C: .4byte gUnknown_03005D24 - thumb_func_end sub_80A3E70 - - thumb_func_start sub_80A3E90 -sub_80A3E90: @ 80A3E90 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x5 - bl PlaySE - bl nullsub_16 - ldr r0, _080A3EE8 @ =gTasks - lsls r5, r4, 2 - adds r5, r4 - lsls r5, 3 - adds r5, r0 - ldrb r0, [r5, 0x1C] - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - ldr r3, _080A3EEC @ =gUnknown_03005D10 - ldr r1, _080A3EF0 @ =gUnknown_02038559 - movs r2, 0 - ldrsb r2, [r1, r2] - lsls r2, 2 - adds r2, r3 - ldrb r1, [r2, 0x1] - ldrb r2, [r2] - adds r1, r2 - lsls r1, 24 - lsrs r1, 24 - bl sub_80A3E70 - movs r0, 0 - strh r0, [r5, 0x1C] - bl sub_80A763C - movs r0, 0 - bl sub_80A7528 - bl ItemListMenu_InitMenu - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A3EE8: .4byte gTasks -_080A3EEC: .4byte gUnknown_03005D10 -_080A3EF0: .4byte gUnknown_02038559 - thumb_func_end sub_80A3E90 - - thumb_func_start sub_80A3EF4 -sub_80A3EF4: @ 80A3EF4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x5 - bl PlaySE - bl nullsub_16 - ldr r0, _080A3F44 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r2, _080A3F48 @ =gUnknown_03005D10 - ldr r0, _080A3F4C @ =gUnknown_02038559 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - mvns r0, r0 - ldrb r2, [r1, 0x1C] - adds r0, r2 - lsls r0, 24 - lsrs r2, r0, 24 - movs r0, 0 - strh r0, [r1, 0x1C] - cmp r2, 0x7 - bhi _080A3F38 - adds r0, r4, 0 - adds r1, r2, 0 - bl sub_80A48E8 -_080A3F38: - movs r0, 0 - bl sub_80A7528 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A3F44: .4byte gTasks -_080A3F48: .4byte gUnknown_03005D10 -_080A3F4C: .4byte gUnknown_02038559 - thumb_func_end sub_80A3EF4 - - thumb_func_start sub_80A3F50 -sub_80A3F50: @ 80A3F50 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080A3F94 @ =gTasks - lsls r3, r0, 2 - adds r3, r0 - lsls r3, 3 - adds r3, r1 - ldr r5, _080A3F98 @ =gUnknown_03005D10 - ldr r4, _080A3F9C @ =gUnknown_02038559 - movs r1, 0 - ldrsb r1, [r4, r1] - lsls r1, 2 - adds r1, r5 - ldrb r2, [r1, 0x1] - ldrb r1, [r1] - adds r2, r1 - adds r2, 0x1 - strh r2, [r3, 0x1C] - movs r1, 0 - ldrsb r1, [r4, r1] - lsls r1, 2 - adds r1, r5 - ldrb r2, [r1] - adds r1, r2, 0 - bl sub_80A48E8 - movs r0, 0x1 - bl sub_80A7528 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A3F94: .4byte gTasks -_080A3F98: .4byte gUnknown_03005D10 -_080A3F9C: .4byte gUnknown_02038559 - thumb_func_end sub_80A3F50 - - thumb_func_start sub_80A3FA0 -sub_80A3FA0: @ 80A3FA0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r0, 0 - ldr r0, [sp, 0x18] - ldr r4, [sp, 0x1C] - lsls r1, 24 - lsrs r5, r1, 24 - lsls r2, 24 - lsls r3, 24 - lsrs r3, 24 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 16 - lsrs r6, r4, 16 - lsrs r2, 24 - adds r0, r2, r0 - cmp r2, r0 - bge _080A3FFC - mov r8, r5 - adds r4, r5, r3 - mov r12, r0 -_080A3FCC: - adds r0, r5, 0 - lsls r3, r2, 16 - cmp r8, r4 - bge _080A3FEE - asrs r2, r3, 11 -_080A3FD6: - lsls r1, r0, 16 - asrs r1, 16 - adds r0, r1, r2 - lsls r0, 1 - adds r0, r7 - strh r6, [r0] - adds r1, 0x1 - lsls r1, 16 - lsrs r0, r1, 16 - asrs r1, 16 - cmp r1, r4 - blt _080A3FD6 -_080A3FEE: - movs r1, 0x80 - lsls r1, 9 - adds r0, r3, r1 - lsrs r2, r0, 16 - asrs r0, 16 - cmp r0, r12 - blt _080A3FCC -_080A3FFC: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A3FA0 - - thumb_func_start sub_80A4008 -sub_80A4008: @ 80A4008 - push {r4,lr} - sub sp, 0x8 - ldr r4, [sp, 0x10] - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - lsls r4, 24 - lsrs r4, 24 - str r4, [sp] - movs r4, 0x1 - str r4, [sp, 0x4] - bl sub_80A3FA0 - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A4008 - - thumb_func_start sub_80A4030 -sub_80A4030: @ 80A4030 - ldr r1, _080A4058 @ =gBGTilemapBuffers + 0x1000 + 0xB4 - lsls r0, 7 - adds r1, r0, r1 - movs r0, 0x5A - strh r0, [r1] - movs r0, 0x5B - strh r0, [r1, 0x2] - movs r0, 0x5C - strh r0, [r1, 0x4] - adds r2, r1, 0 - adds r2, 0x40 - movs r0, 0x6A - strh r0, [r2] - adds r2, 0x2 - movs r0, 0x6B - strh r0, [r2] - adds r1, 0x44 - movs r0, 0x6C - strh r0, [r1] - bx lr - .align 2, 0 -_080A4058: .4byte gBGTilemapBuffers + 0x1000 + 0xB4 - thumb_func_end sub_80A4030 - - thumb_func_start sub_80A405C -sub_80A405C: @ 80A405C - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r2, _080A40A8 @ =gBGTilemapBuffers + 0x1000 + 0xB4 - movs r0, 0 - adds r4, r2, 0 - movs r1, 0x4F -_080A406A: - strh r1, [r2] - strh r1, [r2, 0x2] - strh r1, [r2, 0x4] - adds r2, 0x40 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xF - bls _080A406A - lsls r0, r3, 7 - adds r2, r0, r4 - movs r0, 0x5A - strh r0, [r2] - movs r0, 0x5B - strh r0, [r2, 0x2] - movs r0, 0x5C - strh r0, [r2, 0x4] - adds r1, r2, 0 - adds r1, 0x40 - movs r0, 0x6A - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x6B - strh r0, [r1] - adds r1, 0x2 - movs r0, 0x6C - strh r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A40A8: .4byte gBGTilemapBuffers + 0x1000 + 0xB4 - thumb_func_end sub_80A405C - - thumb_func_start sub_80A40AC -sub_80A40AC: @ 80A40AC - lsls r0, 24 - ldr r1, _080A40CC @ =gBGTilemapBuffers + 0x1000 + 0xB4 - lsrs r0, 17 - adds r1, r0, r1 - movs r2, 0x4F - strh r2, [r1] - strh r2, [r1, 0x2] - strh r2, [r1, 0x4] - adds r0, r1, 0 - adds r0, 0x40 - strh r2, [r0] - adds r0, 0x2 - strh r2, [r0] - adds r1, 0x44 - strh r2, [r1] - bx lr - .align 2, 0 -_080A40CC: .4byte gBGTilemapBuffers + 0x1000 + 0xB4 - thumb_func_end sub_80A40AC - - thumb_func_start sub_80A40D0 -sub_80A40D0: @ 80A40D0 - push {r4-r7,lr} - movs r4, 0 - ldr r2, _080A4114 @ =gUnknown_03005D10 - ldr r3, _080A4118 @ =gUnknown_02038559 - movs r0, 0 - ldrsb r0, [r3, r0] - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x1] - adds r7, r2, 0 - adds r6, r3, 0 - ldrb r0, [r0, 0x2] - cmp r1, r0 - beq _080A4136 - ldr r5, _080A411C @ =gSaveBlock1 + 0x496 -_080A40EE: - movs r0, 0 - ldrsb r0, [r6, r0] - lsls r0, 2 - adds r3, r0, r7 - ldrb r2, [r3, 0x1] - adds r1, r2, r4 - ldr r0, _080A4120 @ =gUnknown_03005D24 - ldr r0, [r0] - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1] - ldrh r1, [r5] - cmp r0, r1 - bne _080A4124 - adds r0, r4, 0 - bl sub_80A40AC - b _080A4136 - .align 2, 0 -_080A4114: .4byte gUnknown_03005D10 -_080A4118: .4byte gUnknown_02038559 -_080A411C: .4byte gSaveBlock1 + 0x496 -_080A4120: .4byte gUnknown_03005D24 -_080A4124: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x7 - bhi _080A4136 - adds r0, r2, r4 - ldrb r3, [r3, 0x2] - cmp r0, r3 - bne _080A40EE -_080A4136: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A40D0 - - thumb_func_start sub_80A413C -sub_80A413C: @ 80A413C - push {lr} - bl sub_80A40D0 - ldr r1, _080A415C @ =gUnknown_03005D10 - ldr r0, _080A4160 @ =gUnknown_02038559 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0] - bl sub_80A405C - pop {r0} - bx r0 - .align 2, 0 -_080A415C: .4byte gUnknown_03005D10 -_080A4160: .4byte gUnknown_02038559 - thumb_func_end sub_80A413C - - thumb_func_start sub_80A4164 -sub_80A4164: @ 80A4164 - push {r4,lr} - lsls r1, 16 - lsrs r1, 16 - lsls r3, 24 - lsrs r3, 24 - movs r4, 0xB9 - strb r4, [r0] - adds r0, 0x1 - movs r4, 0xFC - strb r4, [r0] - movs r4, 0x14 - strb r4, [r0, 0x1] - movs r4, 0x6 - strb r4, [r0, 0x2] - adds r0, 0x3 - bl ConvertIntToDecimalStringN - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A4164 - - thumb_func_start sub_80A418C -sub_80A418C: @ 80A418C - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - adds r4, r0, 0 - mov r9, r1 - adds r5, r2, 0 - adds r6, r3, 0 - ldr r3, [sp, 0x18] - lsls r4, 16 - lsrs r4, 16 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - lsls r3, 24 - lsrs r3, 24 - ldr r0, _080A41D0 @ =gStringVar1 - mov r8, r0 - adds r1, r4, 0 - mov r2, r9 - bl sub_80A4164 - mov r0, r8 - adds r1, r5, 0 - adds r2, r6, 0 - bl MenuPrint - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A41D0: .4byte gStringVar1 - thumb_func_end sub_80A418C - - thumb_func_start sub_80A41D4 -sub_80A41D4: @ 80A41D4 - push {lr} - bl sub_80A763C - pop {r0} - bx r0 - thumb_func_end sub_80A41D4 - - thumb_func_start sub_80A41E0 -sub_80A41E0: @ 80A41E0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r7, r0, 0 - mov r9, r2 - adds r5, r3, 0 - ldr r4, [sp, 0x1C] - lsls r1, 16 - lsrs r1, 16 - lsls r5, 16 - lsrs r5, 16 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0xFC - mov r8, r0 - strb r0, [r7] - movs r6, 0x13 - strb r6, [r7, 0x1] - movs r0, 0x8 - strb r0, [r7, 0x2] - adds r7, 0x3 - adds r0, r7, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - mov r1, r8 - strb r1, [r0] - strb r6, [r0, 0x1] - movs r1, 0x18 - strb r1, [r0, 0x2] - adds r7, r0, 0x3 - adds r4, 0x1 - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 1 - movs r2, 0x78 - subs r2, r0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r7, 0 - mov r1, r9 - movs r3, 0 - bl sub_8072C74 - movs r1, 0xB9 - strb r1, [r0] - adds r7, r0, 0x1 - adds r0, r7, 0 - adds r1, r5, 0 - movs r2, 0x78 - movs r3, 0x1 - bl sub_8072C14 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A41E0 - - thumb_func_start sub_80A425C -sub_80A425C: @ 80A425C - push {r4,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r2, 24 - lsrs r2, 24 - ldr r3, _080A42A4 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r3 - movs r0, 0x1C - ldrsh r1, [r1, r0] - ldr r3, _080A42A8 @ =gUnknown_03005D10 - ldr r0, _080A42AC @ =gUnknown_02038559 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x1] - subs r1, r0 - subs r1, 0x1 - cmp r1, r2 - bne _080A429C - movs r0, 0xFC - strb r0, [r4] - movs r0, 0x1 - strb r0, [r4, 0x1] - movs r0, 0x2 - strb r0, [r4, 0x2] - adds r4, 0x3 -_080A429C: - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080A42A4: .4byte gTasks -_080A42A8: .4byte gUnknown_03005D10 -_080A42AC: .4byte gUnknown_02038559 - thumb_func_end sub_80A425C - - thumb_func_start sub_80A42B0 -sub_80A42B0: @ 80A42B0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r1, 0 - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0 - ldr r0, _080A4344 @ =gUnknown_02038540 - mov r8, r0 - ldr r1, _080A4348 @ =gUnknown_03005D10 - ldr r0, _080A434C @ =gUnknown_02038559 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x1] - adds r1, r6 - ldrb r0, [r0, 0x2] - cmp r1, r0 - bgt _080A4370 - cmp r1, r0 - bne _080A4374 - ldr r0, _080A4350 @ =gUnknown_03000701 - ldrb r0, [r0] - cmp r0, 0x5 - beq _080A4370 - lsls r0, r6, 25 - movs r1, 0x80 - lsls r1, 18 - adds r0, r1 - lsrs r5, r0, 24 - ldr r4, _080A4354 @ =gStringVar1 - ldr r1, _080A4358 @ =gOtherText_CloseBag - adds r0, r4, 0 - movs r2, 0x78 - movs r3, 0 - bl sub_8072C74 - adds r0, r4, 0 - movs r1, 0xE - adds r2, r5, 0 - bl MenuPrint - lsls r0, r5, 6 - ldr r1, _080A435C @ =gBGTilemapBuffers + 0x1000 + 0x1C - adds r0, r1 - movs r2, 0x4F - strh r2, [r0] - strh r2, [r0, 0x2] - adds r1, r0, 0 - adds r1, 0x40 - strh r2, [r1] - adds r0, 0x42 - strh r2, [r0] - cmp r6, 0x7 - beq _080A4370 - cmp r7, 0x1 - bne _080A432E - mov r1, r8 - ldrb r0, [r1, 0x2] - cmp r0, 0 - bne _080A4332 -_080A432E: - cmp r7, 0x2 - bne _080A4360 -_080A4332: - adds r1, r5, 0x2 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0xE - movs r2, 0x1D - movs r3, 0xD - bl MenuFillWindowRectWithBlankTile - b _080A4370 - .align 2, 0 -_080A4344: .4byte gUnknown_02038540 -_080A4348: .4byte gUnknown_03005D10 -_080A434C: .4byte gUnknown_02038559 -_080A4350: .4byte gUnknown_03000701 -_080A4354: .4byte gStringVar1 -_080A4358: .4byte gOtherText_CloseBag -_080A435C: .4byte gBGTilemapBuffers + 0x1000 + 0x1C -_080A4360: - adds r1, r5, 0x2 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0xE - movs r2, 0x1D - movs r3, 0x11 - bl MenuFillWindowRectWithBlankTile -_080A4370: - movs r0, 0x1 - b _080A4376 -_080A4374: - movs r0, 0 -_080A4376: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80A42B0 - - thumb_func_start sub_80A4380 -sub_80A4380: @ 80A4380 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - str r2, [sp] - mov r10, r3 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - lsls r1, 24 - lsrs r7, r1, 24 - ldr r0, _080A43A0 @ =gUnknown_03005D24 - mov r8, r0 - b _080A441A - .align 2, 0 -_080A43A0: .4byte gUnknown_03005D24 -_080A43A4: - ldr r1, _080A4440 @ =gUnknown_03005D10 - ldr r0, _080A4444 @ =gUnknown_02038559 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r1 - ldrb r4, [r0, 0x1] - adds r4, r7, r4 - lsls r4, 24 - lsrs r4, 24 - lsls r5, r7, 25 - movs r1, 0x80 - lsls r1, 18 - adds r5, r1 - lsrs r5, 24 - ldr r6, _080A4448 @ =gStringVar1 - mov r1, r9 - lsls r0, r1, 24 - lsrs r0, 24 - adds r1, r6, 0 - adds r2, r7, 0 - bl sub_80A425C - adds r6, r0, 0 - mov r1, r8 - ldr r0, [r1] - lsls r4, 2 - adds r0, r4, r0 - ldrh r0, [r0] - bl ItemId_GetItem - adds r1, r0, 0 - adds r0, r6, 0 - movs r2, 0x66 - movs r3, 0 - bl sub_8072C74 - adds r6, r0, 0 - movs r0, 0xB9 - strb r0, [r6] - adds r6, 0x1 - mov r1, r8 - ldr r0, [r1] - adds r4, r0 - ldrh r1, [r4, 0x2] - adds r0, r6, 0 - movs r2, 0x78 - movs r3, 0x1 - bl sub_8072C14 - ldr r0, _080A4448 @ =gStringVar1 - movs r1, 0xE - adds r2, r5, 0 - bl MenuPrint - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 -_080A441A: - ldr r0, [sp] - cmp r7, r0 - bgt _080A4430 - adds r0, r7, 0 - mov r1, r10 - bl sub_80A42B0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A43A4 -_080A4430: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A4440: .4byte gUnknown_03005D10 -_080A4444: .4byte gUnknown_02038559 -_080A4448: .4byte gStringVar1 - thumb_func_end sub_80A4380 - - thumb_func_start sub_80A444C -sub_80A444C: @ 80A444C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - str r2, [sp] - str r3, [sp, 0x4] - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - lsls r1, 24 - lsrs r6, r1, 24 - ldr r0, _080A446C @ =gSaveBlock1 + 0x496 - mov r9, r0 - b _080A4520 - .align 2, 0 -_080A446C: .4byte gSaveBlock1 + 0x496 -_080A4470: - ldr r1, _080A44E8 @ =gUnknown_03005D10 - ldr r0, _080A44EC @ =gUnknown_02038559 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r1 - ldrb r4, [r0, 0x1] - adds r4, r6, r4 - lsls r4, 24 - lsrs r4, 24 - lsls r5, r6, 25 - movs r1, 0x80 - lsls r1, 18 - adds r5, r1 - lsrs r5, 24 - ldr r7, _080A44F0 @ =gStringVar1 - mov r2, r10 - lsls r0, r2, 24 - lsrs r0, 24 - adds r1, r7, 0 - adds r2, r6, 0 - bl sub_80A425C - adds r7, r0, 0 - ldr r0, _080A44F4 @ =gUnknown_03005D24 - mov r8, r0 - ldr r0, [r0] - lsls r4, 2 - adds r0, r4, r0 - ldrh r0, [r0] - bl ItemId_GetItem - adds r1, r0, 0 - adds r0, r7, 0 -.ifdef ENGLISH - movs r2, 0x60 -.else - movs r2, 0x63 -.endif - movs r3, 0 - bl sub_8072C74 - ldr r0, _080A44F0 @ =gStringVar1 - movs r1, 0xE - adds r2, r5, 0 - bl MenuPrint - ldr r0, _080A44F8 @ =gUnknown_02038558 - ldrb r0, [r0] - cmp r0, 0 - beq _080A44FC - mov r1, r8 - ldr r0, [r1] - adds r0, r4, r0 - ldrh r0, [r0] - mov r2, r9 - ldrh r2, [r2] - cmp r0, r2 - bne _080A451A - adds r0, r6, 0 - bl sub_80A4030 - b _080A451A - .align 2, 0 -_080A44E8: .4byte gUnknown_03005D10 -_080A44EC: .4byte gUnknown_02038559 -_080A44F0: .4byte gStringVar1 -_080A44F4: .4byte gUnknown_03005D24 -_080A44F8: .4byte gUnknown_02038558 -_080A44FC: - mov r1, r8 - ldr r0, [r1] - adds r0, r4, r0 - ldrh r0, [r0] - mov r2, r9 - ldrh r2, [r2] - cmp r0, r2 - bne _080A4514 - adds r0, r6, 0 - bl sub_80A405C - b _080A451A -_080A4514: - adds r0, r6, 0 - bl sub_80A40AC -_080A451A: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_080A4520: - ldr r0, [sp] - cmp r6, r0 - bgt _080A4536 - adds r0, r6, 0 - ldr r1, [sp, 0x4] - bl sub_80A42B0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A4470 -_080A4536: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A444C - - thumb_func_start sub_80A4548 -sub_80A4548: @ 80A4548 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - str r2, [sp, 0x8] - str r3, [sp, 0xC] - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x4] - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - ldr r0, _080A456C @ =gBGTilemapBuffers + 0x1000 - mov r9, r0 - b _080A46C2 - .align 2, 0 -_080A456C: .4byte gBGTilemapBuffers + 0x1000 -_080A4570: - ldr r1, _080A461C @ =gUnknown_03005D10 - ldr r0, _080A4620 @ =gUnknown_02038559 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r1 - ldrb r4, [r0, 0x1] - add r4, r8 - lsls r4, 24 - lsrs r4, 24 - mov r1, r8 - lsls r0, r1, 25 - movs r3, 0x80 - lsls r3, 18 - adds r0, r3 - lsrs r0, 24 - str r0, [sp, 0x10] - lsls r0, 5 - adds r0, 0xE - adds r5, r0, 0 - ldr r6, _080A4624 @ =gStringVar1 - ldr r1, [sp, 0x4] - lsls r0, r1, 24 - lsrs r0, 24 - adds r1, r6, 0 - mov r2, r8 - bl sub_80A425C - adds r6, r0, 0 - ldr r3, _080A4628 @ =gUnknown_03005D24 - mov r10, r3 - ldr r0, [r3] - lsls r7, r4, 2 - adds r3, r7, r0 - ldrh r1, [r3] - movs r0, 0xA9 - lsls r0, 1 - cmp r1, r0 - bhi _080A4634 - lsls r0, r5, 1 - add r0, r9 - movs r1, 0x59 - strh r1, [r0] - adds r0, r5, 0x1 - lsls r0, 1 - add r0, r9 - movs r2, 0x4F - strh r2, [r0] - adds r0, r5, 0 - adds r0, 0x20 - lsls r0, 1 - add r0, r9 - movs r1, 0x69 - strh r1, [r0] - adds r0, r5, 0 - adds r0, 0x21 - lsls r0, 1 - add r0, r9 - strh r2, [r0] - ldrh r0, [r3] - bl ItemIdToBattleMoveId - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xD - adds r2, r0, 0 - muls r2, r1 - ldr r0, _080A462C @ =gMoveNames - adds r2, r0 - mov r1, r10 - ldr r0, [r1] - adds r0, r7, r0 - ldr r3, _080A4630 @ =0xfffffee0 - adds r1, r3, 0 - ldrh r3, [r0] - adds r1, r3 - lsls r1, 16 - lsrs r1, 16 - ldrh r3, [r0, 0x2] - movs r0, 0x2 - str r0, [sp] - adds r0, r6, 0 - bl sub_80A41E0 - b _080A46AE - .align 2, 0 -_080A461C: .4byte gUnknown_03005D10 -_080A4620: .4byte gUnknown_02038559 -_080A4624: .4byte gStringVar1 -_080A4628: .4byte gUnknown_03005D24 -_080A462C: .4byte gMoveNames -_080A4630: .4byte 0xfffffee0 -_080A4634: - lsls r0, r5, 1 - add r0, r9 - ldr r1, _080A46EC @ =0x0000105d - strh r1, [r0] - adds r0, r5, 0x1 - lsls r0, 1 - add r0, r9 - adds r1, 0x1 - strh r1, [r0] - adds r0, r5, 0 - adds r0, 0x20 - lsls r0, 1 - add r0, r9 - adds r1, 0xF - strh r1, [r0] - adds r0, r5, 0 - adds r0, 0x21 - lsls r0, 1 - add r0, r9 - adds r1, 0x1 - strh r1, [r0] - movs r0, 0xFC - strb r0, [r6] - movs r4, 0x13 - strb r4, [r6, 0x1] - movs r0, 0x11 - strb r0, [r6, 0x2] - adds r6, 0x3 - mov r1, r10 - ldr r0, [r1] - adds r0, r7, r0 - ldrh r1, [r0] - ldr r3, _080A46F0 @ =0xfffffeae - adds r1, r3 - adds r0, r6, 0 - bl ConvertIntToDecimalString - adds r6, r0, 0 - movs r0, 0xFC - strb r0, [r6] - strb r4, [r6, 0x1] - movs r0, 0x18 - strb r0, [r6, 0x2] - adds r6, 0x3 - mov r1, r10 - ldr r0, [r1] - adds r0, r7, r0 - ldrh r0, [r0] - bl ItemIdToBattleMoveId - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xD - muls r1, r0 - ldr r0, _080A46F4 @ =gMoveNames - adds r1, r0 - adds r0, r6, 0 - movs r2, 0x78 - movs r3, 0 - bl sub_8072C74 -_080A46AE: - ldr r0, _080A46F8 @ =gStringVar1 - movs r1, 0xE - ldr r2, [sp, 0x10] - bl MenuPrint - mov r0, r8 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 -_080A46C2: - ldr r3, [sp, 0x8] - cmp r8, r3 - bgt _080A46DA - mov r0, r8 - ldr r1, [sp, 0xC] - bl sub_80A42B0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080A46DA - b _080A4570 -_080A46DA: - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A46EC: .4byte 0x0000105d -_080A46F0: .4byte 0xfffffeae -_080A46F4: .4byte gMoveNames -_080A46F8: .4byte gStringVar1 - thumb_func_end sub_80A4548 - - thumb_func_start sub_80A46FC -sub_80A46FC: @ 80A46FC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - str r2, [sp, 0x8] - str r3, [sp, 0xC] - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x4] - lsls r1, 24 - lsrs r6, r1, 24 - ldr r0, _080A4724 @ =gBGTilemapBuffers + 0x1000 - mov r10, r0 - ldr r1, _080A4728 @ =gStringVar2 - mov r9, r1 - ldr r0, _080A472C @ =gUnknown_03005D24 - mov r8, r0 - b _080A47B4 - .align 2, 0 -_080A4724: .4byte gBGTilemapBuffers + 0x1000 -_080A4728: .4byte gStringVar2 -_080A472C: .4byte gUnknown_03005D24 -_080A4730: - ldr r1, _080A47DC @ =gUnknown_03005D10 - ldr r0, _080A47E0 @ =gUnknown_02038559 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r1 - ldrb r4, [r0, 0x1] - adds r4, r6, r4 - lsls r4, 24 - lsrs r4, 24 - lsls r5, r6, 25 - movs r1, 0x80 - lsls r1, 18 - adds r5, r1 - lsrs r5, 24 - lsls r0, r5, 5 - adds r0, 0xE - lsls r1, r0, 1 - add r1, r10 - movs r2, 0x59 - strh r2, [r1] - adds r0, 0x20 - lsls r0, 1 - add r0, r10 - movs r1, 0x69 - strh r1, [r0] - ldr r7, _080A47E4 @ =gStringVar1 - ldr r1, [sp, 0x4] - lsls r0, r1, 24 - lsrs r0, 24 - adds r1, r7, 0 - adds r2, r6, 0 - bl sub_80A425C - adds r7, r0, 0 - mov r1, r8 - ldr r0, [r1] - lsls r4, 2 - adds r0, r4, r0 - ldrh r0, [r0] - mov r1, r9 - bl CopyItemName - mov r1, r8 - ldr r0, [r1] - adds r4, r0 - ldrh r1, [r4] - subs r1, 0x84 - lsls r1, 16 - lsrs r1, 16 - ldrh r3, [r4, 0x2] - movs r0, 0x3 - str r0, [sp] - adds r0, r7, 0 - mov r2, r9 - bl sub_80A41E0 - ldr r0, _080A47E4 @ =gStringVar1 - movs r1, 0xE - adds r2, r5, 0 - bl MenuPrint - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_080A47B4: - ldr r0, [sp, 0x8] - cmp r6, r0 - bgt _080A47CA - adds r0, r6, 0 - ldr r1, [sp, 0xC] - bl sub_80A42B0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A4730 -_080A47CA: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A47DC: .4byte gUnknown_03005D10 -_080A47E0: .4byte gUnknown_02038559 -_080A47E4: .4byte gStringVar1 - thumb_func_end sub_80A46FC - - thumb_func_start sub_80A47E8 -sub_80A47E8: @ 80A47E8 - push {r4,r5,lr} - adds r4, r1, 0 - adds r5, r2, 0 - lsls r0, 16 - lsrs r2, r0, 16 - ldr r0, _080A4808 @ =gUnknown_02038559 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x4 - bhi _080A4852 - lsls r0, 2 - ldr r1, _080A480C @ =_080A4810 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080A4808: .4byte gUnknown_02038559 -_080A480C: .4byte _080A4810 - .align 2, 0 -_080A4810: - .4byte _080A4824 - .4byte _080A4824 - .4byte _080A483C - .4byte _080A4848 - .4byte _080A4830 -_080A4824: - adds r0, r2, 0 - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_80A4380 - b _080A4852 -_080A4830: - adds r0, r2, 0 - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_80A444C - b _080A4852 -_080A483C: - adds r0, r2, 0 - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_80A4548 - b _080A4852 -_080A4848: - adds r0, r2, 0 - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_80A46FC -_080A4852: - ldr r1, _080A4870 @ =gUnknown_03005D10 - ldr r0, _080A4874 @ =gUnknown_02038559 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x1] - cmp r0, 0 - beq _080A4878 - movs r0, 0 - movs r1, 0 - bl sub_80F979C - b _080A4880 - .align 2, 0 -_080A4870: .4byte gUnknown_03005D10 -_080A4874: .4byte gUnknown_02038559 -_080A4878: - movs r0, 0 - movs r1, 0x1 - bl sub_80F979C -_080A4880: - ldr r0, _080A48A4 @ =gUnknown_03000701 - ldrb r0, [r0] - cmp r0, 0x5 - beq _080A48B0 - ldr r1, _080A48A8 @ =gUnknown_03005D10 - ldr r0, _080A48AC @ =gUnknown_02038559 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x1] - adds r1, 0x8 - ldrb r0, [r0, 0x2] - adds r0, 0x1 - cmp r1, r0 - blt _080A48C6 - b _080A48D8 - .align 2, 0 -_080A48A4: .4byte gUnknown_03000701 -_080A48A8: .4byte gUnknown_03005D10 -_080A48AC: .4byte gUnknown_02038559 -_080A48B0: - ldr r2, _080A48D0 @ =gUnknown_03005D10 - ldr r0, _080A48D4 @ =gUnknown_02038559 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1, 0x1] - adds r0, 0x8 - ldrb r1, [r1, 0x2] - cmp r0, r1 - bge _080A48D8 -_080A48C6: - movs r0, 0x1 - movs r1, 0 - bl sub_80F979C - b _080A48E0 - .align 2, 0 -_080A48D0: .4byte gUnknown_03005D10 -_080A48D4: .4byte gUnknown_02038559 -_080A48D8: - movs r0, 0x1 - movs r1, 0x1 - bl sub_80F979C -_080A48E0: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A47E8 - - thumb_func_start sub_80A48E8 -sub_80A48E8: @ 80A48E8 - push {lr} - lsls r0, 16 - lsrs r0, 16 - movs r3, 0 - bl sub_80A47E8 - pop {r0} - bx r0 - thumb_func_end sub_80A48E8 - - thumb_func_start sub_80A48F8 -sub_80A48F8: @ 80A48F8 - push {lr} - lsls r0, 16 - lsrs r0, 16 - movs r1, 0 - movs r2, 0x5 - movs r3, 0x2 - bl sub_80A47E8 - pop {r0} - bx r0 - thumb_func_end sub_80A48F8 - - thumb_func_start ItemListMenu_InitDescription -ItemListMenu_InitDescription: @ 80A490C - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 16 - lsrs r3, r0, 16 - ldr r1, _080A4960 @ =gUnknown_03005D10 - ldr r0, _080A4964 @ =gUnknown_02038559 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x1] - ldrb r2, [r0] - adds r1, r2 - ldrb r0, [r0, 0x2] - cmp r1, r0 - bne _080A4974 - ldr r0, _080A4968 @ =gOtherText_ReturnTo - movs r4, 0x1 - str r4, [sp] - movs r1, 0x4 - movs r2, 0x68 - movs r3, 0x68 - bl sub_8072A18 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080A496C @ =gUnknown_0840E740 - ldr r0, _080A4970 @ =gUnknown_03000701 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - str r4, [sp] - movs r1, 0x4 - movs r2, 0x78 - movs r3, 0x68 - bl sub_8072A18 - adds r0, r5, r0 - b _080A4988 - .align 2, 0 -_080A4960: .4byte gUnknown_03005D10 -_080A4964: .4byte gUnknown_02038559 -_080A4968: .4byte gOtherText_ReturnTo -_080A496C: .4byte gUnknown_0840E740 -_080A4970: .4byte gUnknown_03000701 -_080A4974: - adds r0, r3, 0 - bl ItemId_GetDescription - movs r1, 0x1 - str r1, [sp] - movs r1, 0x4 - movs r2, 0x68 - movs r3, 0x68 - bl sub_8072A18 -_080A4988: - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bhi _080A49A4 - lsls r1, r5, 25 - movs r0, 0xD0 - lsls r0, 20 - adds r1, r0 - lsrs r1, 24 - movs r0, 0 - movs r2, 0xD - movs r3, 0x14 - bl MenuZeroFillWindowRect -_080A49A4: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end ItemListMenu_InitDescription - - thumb_func_start ItemListMenu_ChangeDescription -ItemListMenu_ChangeDescription: @ 80A49AC - push {r4,r5,lr} - sub sp, 0x64 - adds r4, r1, 0 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r1, _080A49E8 @ =gUnknown_03005D10 - ldr r0, _080A49EC @ =gUnknown_02038559 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x1] - ldrb r2, [r0] - adds r1, r2 - ldrb r0, [r0, 0x2] - cmp r1, r0 - bne _080A4A18 - cmp r4, 0 - bne _080A49F4 - movs r0, 0 - movs r1, 0xD - movs r2, 0xD - movs r3, 0x14 - bl MenuZeroFillWindowRect - ldr r0, _080A49F0 @ =gOtherText_ReturnTo - movs r1, 0x4 - movs r2, 0x68 - b _080A4A08 - .align 2, 0 -_080A49E8: .4byte gUnknown_03005D10 -_080A49EC: .4byte gUnknown_02038559 -_080A49F0: .4byte gOtherText_ReturnTo -_080A49F4: - cmp r4, 0x1 - bne _080A4A4C - ldr r1, _080A4A10 @ =gUnknown_0840E740 - ldr r0, _080A4A14 @ =gUnknown_03000701 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x4 - movs r2, 0x78 -_080A4A08: - movs r3, 0 - bl MenuPrint_PixelCoords - b _080A4A4C - .align 2, 0 -_080A4A10: .4byte gUnknown_0840E740 -_080A4A14: .4byte gUnknown_03000701 -_080A4A18: - cmp r4, 0 - bne _080A4A28 - movs r0, 0 - movs r1, 0xD - movs r2, 0xD - movs r3, 0x14 - bl MenuZeroFillWindowRect -_080A4A28: - lsls r1, r5, 16 - asrs r1, 16 - mov r0, sp - adds r2, r4, 0 - bl ItemId_CopyDescription - cmp r0, 0 - beq _080A4A4C - lsls r2, r4, 20 - movs r0, 0xD0 - lsls r0, 15 - adds r2, r0 - lsrs r2, 16 - mov r0, sp - movs r1, 0x4 - movs r3, 0 - bl MenuPrint_PixelCoords -_080A4A4C: - add sp, 0x64 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end ItemListMenu_ChangeDescription - - thumb_func_start sub_80A4A54 -sub_80A4A54: @ 80A4A54 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r2, 0x1 - adds r2, r1, 0 - adds r1, r5, 0 -_080A4A5E: - ldrb r3, [r2] - adds r0, r3, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _080A4A8A - subs r4, 0x1 - cmp r4, 0 - bne _080A4A78 - movs r0, 0xFF - strb r0, [r1] - movs r0, 0x1 - b _080A4A92 -_080A4A78: - lsls r0, r3, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _080A4A84 - movs r0, 0 - b _080A4A92 -_080A4A84: - adds r1, r5, 0 - adds r2, 0x1 - b _080A4A5E -_080A4A8A: - strb r3, [r1] - adds r2, 0x1 - adds r1, 0x1 - b _080A4A5E -_080A4A92: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80A4A54 - - thumb_func_start sub_80A4A98 -sub_80A4A98: @ 80A4A98 - push {r4,r5,lr} - sub sp, 0x64 - adds r5, r0, 0 - adds r4, r1, 0 - cmp r4, 0 - bne _080A4AB0 - movs r0, 0 - movs r1, 0xD - movs r2, 0xD - movs r3, 0x14 - bl MenuZeroFillWindowRect -_080A4AB0: - mov r0, sp - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_80A4A54 - cmp r0, 0 - beq _080A4AD2 - lsls r2, r4, 20 - movs r0, 0xD0 - lsls r0, 15 - adds r2, r0 - lsrs r2, 16 - mov r0, sp - movs r1, 0x4 - movs r3, 0 - bl MenuPrint_PixelCoords -_080A4AD2: - add sp, 0x64 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A4A98 - - thumb_func_start sub_80A4ADC -sub_80A4ADC: @ 80A4ADC - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A4B0C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0x1C - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080A4AFA - movs r0, 0 - bl sub_80A7528 -_080A4AFA: - movs r0, 0x5 - bl PlaySE - ldr r1, _080A4B10 @ =gUnknown_0203855C - movs r0, 0x1 - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080A4B0C: .4byte gTasks -_080A4B10: .4byte gUnknown_0203855C - thumb_func_end sub_80A4ADC - - thumb_func_start sub_80A4B14 -sub_80A4B14: @ 80A4B14 - push {r4,lr} - adds r4, r1, 0 - lsls r0, 24 - lsls r4, 24 - lsrs r4, 24 - ldr r2, _080A4B50 @ =gUnknown_03005D10 - ldr r1, _080A4B54 @ =gUnknown_02038559 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - lsls r1, 2 - adds r1, r2 - lsrs r0, 24 - ldrb r2, [r1, 0x1] - adds r0, r2 - strb r0, [r1, 0x1] - movs r0, 0 - bl MoveMenuCursor - bl sub_80A73C0 - bl sub_80A763C - adds r0, r4, 0 - bl sub_80A4ADC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A4B50: .4byte gUnknown_03005D10 -_080A4B54: .4byte gUnknown_02038559 - thumb_func_end sub_80A4B14 - - thumb_func_start sub_80A4B58 -sub_80A4B58: @ 80A4B58 - push {r4,lr} - adds r4, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, 24 - asrs r0, 24 - bl MoveMenuCursor - ldr r2, _080A4B88 @ =gUnknown_03005D10 - ldr r1, _080A4B8C @ =gUnknown_02038559 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - lsls r1, 2 - adds r1, r2 - strb r0, [r1] - bl sub_80A73C0 - adds r0, r4, 0 - bl sub_80A4ADC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A4B88: .4byte gUnknown_03005D10 -_080A4B8C: .4byte gUnknown_02038559 - thumb_func_end sub_80A4B58 - - thumb_func_start sub_80A4B90 -sub_80A4B90: @ 80A4B90 - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - movs r0, 0x6 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - beq _080A4BBC - ldr r0, _080A4BB4 @ =0x00000103 - cmp r4, r0 - beq _080A4BAE - adds r0, 0xD - cmp r4, r0 - bne _080A4BBC -_080A4BAE: - ldr r0, _080A4BB8 @ =gOtherText_Walk - b _080A4BE6 - .align 2, 0 -_080A4BB4: .4byte 0x00000103 -_080A4BB8: .4byte gOtherText_Walk -_080A4BBC: - adds r0, r4, 0 - bl ItemIsMail - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080A4BE4 - ldr r1, _080A4BDC @ =gUnknown_083C1640 - ldr r0, _080A4BE0 @ =gUnknown_03000704 - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, 3 - adds r0, r1 - ldr r0, [r0] - b _080A4BE6 - .align 2, 0 -_080A4BDC: .4byte gUnknown_083C1640 -_080A4BE0: .4byte gUnknown_03000704 -_080A4BE4: - ldr r0, _080A4BEC @ =gOtherText_Check -_080A4BE6: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080A4BEC: .4byte gOtherText_Check - thumb_func_end sub_80A4B90 - - thumb_func_start sub_80A4BF0 -sub_80A4BF0: @ 80A4BF0 - push {r4-r7,lr} - sub sp, 0x8 - adds r5, r0, 0 - ldr r7, _080A4C38 @ =gUnknown_02038564 - ldrb r4, [r7] - cmp r4, 0x4 - beq _080A4C00 - b _080A4CF8 -_080A4C00: - movs r0, 0 - movs r1, 0x7 - movs r2, 0xD - movs r3, 0xC - bl MenuDrawTextWindow - str r4, [sp] - adds r0, r5, 0 - movs r1, 0x1 - movs r2, 0x8 - movs r3, 0xC - bl sub_80A4008 - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A4C40 - ldr r0, _080A4C3C @ =gUnknown_03000701 - ldrb r0, [r0] - cmp r0, 0x5 - bne _080A4C40 - movs r0, 0x1 - movs r1, 0 - bl sub_80A7834 - b _080A4CA0 - .align 2, 0 -_080A4C38: .4byte gUnknown_02038564 -_080A4C3C: .4byte gUnknown_03000701 -_080A4C40: - movs r6, 0 - ldr r0, _080A4C5C @ =gUnknown_02038564 - ldrb r0, [r0] - cmp r6, r0 - bcs _080A4CA0 - ldr r4, _080A4C60 @ =gUnknown_083C1640 -_080A4C4C: - cmp r6, 0 - bne _080A4C68 - ldr r0, _080A4C64 @ =gScriptItemId - ldrh r0, [r0] - bl sub_80A4B90 - adds r3, r0, 0 - b _080A4C76 - .align 2, 0 -_080A4C5C: .4byte gUnknown_02038564 -_080A4C60: .4byte gUnknown_083C1640 -_080A4C64: .4byte gScriptItemId -_080A4C68: - ldr r0, _080A4CC4 @ =gUnknown_03000704 - ldr r0, [r0] - adds r0, r6 - ldrb r0, [r0] - lsls r0, 3 - adds r0, r4 - ldr r3, [r0] -_080A4C76: - lsrs r0, r6, 1 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 1 - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - movs r2, 0x1 - ands r2, r6 - lsls r2, 1 - adds r2, 0x8 - adds r0, r3, 0 - bl MenuPrint - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _080A4CC8 @ =gUnknown_02038564 - ldrb r0, [r0] - cmp r6, r0 - bcc _080A4C4C -_080A4CA0: - ldr r0, _080A4CCC @ =gUnknown_03000701 - ldrb r0, [r0] - cmp r0, 0x5 - bne _080A4CD4 - ldr r0, _080A4CC8 @ =gUnknown_02038564 - ldrb r3, [r0] - ldr r0, _080A4CD0 @ =gUnknown_03000700 - ldrb r0, [r0] - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0x8 - bl InitMenu - b _080A4CEA - .align 2, 0 -_080A4CC4: .4byte gUnknown_03000704 -_080A4CC8: .4byte gUnknown_02038564 -_080A4CCC: .4byte gUnknown_03000701 -_080A4CD0: .4byte gUnknown_03000700 -_080A4CD4: - ldr r0, _080A4CF4 @ =gUnknown_02038564 - ldrb r3, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0x8 - bl InitMenu -_080A4CEA: - movs r0, 0x2F - bl sub_8072DCC - b _080A4D8A - .align 2, 0 -_080A4CF4: .4byte gUnknown_02038564 -_080A4CF8: - movs r0, 0 - movs r1, 0x5 - movs r2, 0xD - movs r3, 0xC - bl MenuDrawTextWindow - movs r0, 0x6 - str r0, [sp] - adds r0, r5, 0 - movs r1, 0x1 - movs r2, 0x6 - movs r3, 0xC - bl sub_80A4008 - movs r6, 0 - ldrb r7, [r7] - cmp r6, r7 - bcs _080A4D6E - ldr r7, _080A4D98 @ =gUnknown_083C1640 -_080A4D1E: - ldr r0, _080A4D9C @ =gUnknown_03000704 - ldr r0, [r0] - adds r0, r6 - ldrb r0, [r0] - lsls r0, 3 - adds r0, r7 - ldr r5, [r0] - adds r0, r6, 0 - movs r1, 0x3 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 1 - adds r4, r0 - lsls r4, 1 - adds r4, 0x1 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - movs r1, 0x3 - bl __umodsi3 - adds r2, r0, 0 - lsls r2, 25 - movs r0, 0xC0 - lsls r0, 19 - adds r2, r0 - lsrs r2, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl MenuPrint - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _080A4DA0 @ =gUnknown_02038564 - ldrb r0, [r0] - cmp r6, r0 - bcc _080A4D1E -_080A4D6E: - ldr r0, _080A4DA0 @ =gUnknown_02038564 - ldrb r3, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0x6 - bl InitMenu - movs r0, 0x2F - bl sub_8072DCC -_080A4D8A: - movs r0, 0x2 - bl sub_80A7528 - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A4D98: .4byte gUnknown_083C1640 -_080A4D9C: .4byte gUnknown_03000704 -_080A4DA0: .4byte gUnknown_02038564 - thumb_func_end sub_80A4BF0 - - thumb_func_start sub_80A4DA4 -sub_80A4DA4: @ 80A4DA4 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - bl sub_80A73FC - movs r0, 0x6 - str r0, [sp] - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x6 - movs r3, 0xD - bl sub_80A36B8 - movs r0, 0 - movs r1, 0x5 - movs r2, 0xD - movs r3, 0xC - bl MenuZeroFillWindowRect - bl sub_80A7590 - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A4DA4 - - thumb_func_start sub_80A4DD8 -sub_80A4DD8: @ 80A4DD8 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0x4 - adds r4, r1, 0 - adds r1, r2, 0 - adds r6, r3, 0 - ldr r5, [sp, 0x20] - ldr r2, [sp, 0x24] - lsls r0, 24 - lsrs r0, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r6, 24 - lsrs r6, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r2, 24 - lsrs r2, 24 - mov r10, r2 - ldr r3, _080A4E84 @ =gTasks - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - adds r2, r3 - movs r0, 0x1 - strh r0, [r2, 0xA] - adds r0, r4, 0x2 - mov r9, r0 - strh r0, [r2, 0xC] - adds r0, r1, 0x1 - mov r8, r0 - strh r0, [r2, 0xE] - adds r2, r4, r6 - lsls r2, 24 - lsrs r2, 24 - adds r3, r1, r5 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - bl MenuDrawTextWindow - ldr r0, _080A4E88 @ =gBGTilemapBuffers + 0x800 - adds r4, 0x1 - lsls r4, 24 - lsrs r4, 24 - mov r1, r8 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - subs r6, 0x1 - lsls r6, 24 - lsrs r6, 24 - subs r5, 0x1 - lsls r5, 24 - lsrs r5, 24 - str r5, [sp] - adds r1, r4, 0 - mov r2, r8 - adds r3, r6, 0 - bl sub_80A4008 - mov r2, r9 - lsls r2, 24 - lsrs r2, 24 - mov r9, r2 - mov r0, r10 - str r0, [sp] - movs r0, 0x1 - movs r1, 0x1 - mov r3, r8 - bl sub_80A418C - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A4E84: .4byte gTasks -_080A4E88: .4byte gBGTilemapBuffers + 0x800 - thumb_func_end sub_80A4DD8 - - thumb_func_start sub_80A4E8C -sub_80A4E8C: @ 80A4E8C - push {r4-r6,lr} - adds r4, r0, 0 - adds r6, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r6, 24 - lsrs r6, 24 - movs r0, 0x5 - bl PlaySE - movs r0, 0 - movs r1, 0x1 - bl sub_80F979C - movs r0, 0x1 - movs r1, 0x1 - bl sub_80F979C - movs r0, 0x2 - movs r1, 0x1 - bl sub_80F979C - movs r0, 0x3 - movs r1, 0x1 - bl sub_80F979C - movs r0, 0 - bl PauseVerticalScrollIndicator - movs r0, 0x1 - bl PauseVerticalScrollIndicator - movs r0, 0x2 - bl PauseVerticalScrollIndicator - movs r0, 0x3 - bl PauseVerticalScrollIndicator - ldr r5, _080A4F04 @ =gBGTilemapBuffers + 0x1000 - lsls r4, 24 - asrs r4, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80A3B04 - ldr r0, _080A4F08 @ =gUnknown_02038559 - ldrb r1, [r0] - adds r0, r5, 0 - bl sub_80A3AC0 - bl sub_80A3770 - bl sub_80A7C64 - adds r0, r6, 0 - bl CreateBagPokeballSprite - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A4F04: .4byte gBGTilemapBuffers + 0x1000 -_080A4F08: .4byte gUnknown_02038559 - thumb_func_end sub_80A4E8C - - thumb_func_start sub_80A4F0C -sub_80A4F0C: @ 80A4F0C - push {r4,lr} - ldr r0, _080A4F38 @ =gUnknown_03000701 - ldrb r0, [r0] - subs r0, 0x4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _080A4F60 - ldr r4, _080A4F3C @ =gMain - ldrh r0, [r4, 0x2E] - cmp r0, 0x10 - beq _080A4F30 - bl sub_80F9284 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _080A4F40 -_080A4F30: - movs r0, 0x1 - movs r1, 0x2 - b _080A4F58 - .align 2, 0 -_080A4F38: .4byte gUnknown_03000701 -_080A4F3C: .4byte gMain -_080A4F40: - ldrh r0, [r4, 0x2E] - cmp r0, 0x20 - beq _080A4F52 - bl sub_80F9284 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A4F60 -_080A4F52: - movs r0, 0x1 - negs r0, r0 - movs r1, 0x1 -_080A4F58: - bl sub_80A4E8C - movs r0, 0x1 - b _080A4F62 -_080A4F60: - movs r0, 0 -_080A4F62: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80A4F0C - - thumb_func_start sub_80A4F68 -sub_80A4F68: @ 80A4F68 - push {lr} - bl sub_80A4F0C - pop {r0} - bx r0 - thumb_func_end sub_80A4F68 - - thumb_func_start sub_80A4F74 -sub_80A4F74: @ 80A4F74 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r2, r4, 0 - movs r5, 0 - ldr r0, _080A4FAC @ =gMain - ldrh r0, [r0, 0x30] - movs r1, 0xF0 - ands r1, r0 - cmp r1, 0x40 - bne _080A4FE8 - ldr r1, _080A4FB0 @ =gUnknown_03005D10 - ldr r0, _080A4FB4 @ =gUnknown_02038559 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, 0 - beq _080A4FB8 - movs r0, 0x1 - negs r0, r0 - adds r1, r4, 0 - bl sub_80A4B58 - b _080A4FC8 - .align 2, 0 -_080A4FAC: .4byte gMain -_080A4FB0: .4byte gUnknown_03005D10 -_080A4FB4: .4byte gUnknown_02038559 -_080A4FB8: - ldrb r0, [r1, 0x1] - cmp r0, 0 - beq _080A4FC8 - movs r0, 0x1 - negs r0, r0 - adds r1, r4, 0 - bl sub_80A4B14 -_080A4FC8: - ldr r0, _080A4FE0 @ =gLinkOpen - ldrb r0, [r0] - cmp r0, 0x1 - bne _080A50AE - ldr r1, _080A4FE4 @ =gMain - ldrh r0, [r1, 0x32] - cmp r0, 0x5 - bne _080A50AE - movs r0, 0xB - strh r0, [r1, 0x32] - b _080A50AE - .align 2, 0 -_080A4FE0: .4byte gLinkOpen -_080A4FE4: .4byte gMain -_080A4FE8: - cmp r1, 0x80 - bne _080A5088 - ldr r0, _080A5020 @ =gUnknown_03000701 - ldrb r0, [r0] - cmp r0, 0x5 - beq _080A502C - ldr r1, _080A5024 @ =gUnknown_03005D10 - ldr r0, _080A5028 @ =gUnknown_02038559 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r2, r0, r1 - ldrb r0, [r2] - ldrb r1, [r2, 0x3] - cmp r0, r1 - bne _080A504E - ldrb r0, [r2, 0x1] - ldrb r1, [r2] - adds r0, r1 - ldrb r2, [r2, 0x2] - cmp r0, r2 - beq _080A5068 - movs r0, 0x1 - adds r1, r4, 0 - bl sub_80A4B14 - b _080A5068 - .align 2, 0 -_080A5020: .4byte gUnknown_03000701 -_080A5024: .4byte gUnknown_03005D10 -_080A5028: .4byte gUnknown_02038559 -_080A502C: - ldr r1, _080A5058 @ =gUnknown_03005D10 - ldr r0, _080A505C @ =gUnknown_02038559 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r2, r0, r1 - ldrb r1, [r2, 0x1] - ldrb r3, [r2] - adds r1, r3 - ldrb r0, [r2, 0x2] - subs r0, 0x1 - cmp r1, r0 - beq _080A5068 - ldrb r2, [r2, 0x3] - cmp r3, r2 - beq _080A5060 -_080A504E: - movs r0, 0x1 - adds r1, r4, 0 - bl sub_80A4B58 - b _080A5068 - .align 2, 0 -_080A5058: .4byte gUnknown_03005D10 -_080A505C: .4byte gUnknown_02038559 -_080A5060: - movs r0, 0x1 - adds r1, r4, 0 - bl sub_80A4B14 -_080A5068: - movs r5, 0x1 - ldr r0, _080A5080 @ =gLinkOpen - ldrb r0, [r0] - cmp r0, 0x1 - bne _080A50C0 - ldr r1, _080A5084 @ =gMain - ldrh r0, [r1, 0x32] - cmp r0, 0x5 - bne _080A50C0 - movs r0, 0xB - strh r0, [r1, 0x32] - b _080A50C0 - .align 2, 0 -_080A5080: .4byte gLinkOpen -_080A5084: .4byte gMain -_080A5088: - ldr r0, _080A50B4 @ =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r4, r1, r0 - movs r1, 0x1C - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080A50BC - bl sub_80A4F0C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A50BC - bl sub_80A73F0 - ldr r0, _080A50B8 @ =sub_80A4F68 - str r0, [r4] -_080A50AE: - movs r5, 0x1 - b _080A50C0 - .align 2, 0 -_080A50B4: .4byte gTasks -_080A50B8: .4byte sub_80A4F68 -_080A50BC: - bl sub_80A73C0 -_080A50C0: - adds r0, r5, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80A4F74 - - thumb_func_start sub_80A50C8 -sub_80A50C8: @ 80A50C8 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080A5148 @ =gTasks + 0x8 - adds r5, r0, r1 - ldr r0, _080A514C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080A50E6 - b _080A52BC -_080A50E6: - adds r0, r4, 0 - bl sub_80A4F74 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A50F6 - b _080A526A -_080A50F6: - ldr r2, _080A5150 @ =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080A5190 - ldr r3, _080A5154 @ =gUnknown_02038559 - ldrb r0, [r3] - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _080A5190 - ldr r0, _080A5158 @ =gUnknown_03000701 - ldrb r0, [r0] - cmp r0, 0x1 - bhi _080A5190 - movs r1, 0x14 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080A5160 - ldr r1, _080A515C @ =gUnknown_03005D10 - movs r0, 0 - ldrsb r0, [r3, r0] - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x1] - ldrb r2, [r0] - adds r1, r2 - ldrb r0, [r0, 0x2] - cmp r1, r0 - bne _080A5138 - b _080A526A -_080A5138: - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_80A3F50 - b _080A526A - .align 2, 0 -_080A5148: .4byte gTasks + 0x8 -_080A514C: .4byte gPaletteFade -_080A5150: .4byte gMain -_080A5154: .4byte gUnknown_02038559 -_080A5158: .4byte gUnknown_03000701 -_080A515C: .4byte gUnknown_03005D10 -_080A5160: - ldr r1, _080A5184 @ =gUnknown_03005D10 - movs r0, 0 - ldrsb r0, [r3, r0] - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x1] - ldrb r2, [r0] - adds r1, r2 - ldrb r0, [r0, 0x2] - cmp r1, r0 - beq _080A5188 - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_80A3E90 - b _080A526A - .align 2, 0 -_080A5184: .4byte gUnknown_03005D10 -_080A5188: - adds r0, r4, 0 - bl sub_80A3EF4 - b _080A526A -_080A5190: - ldrh r2, [r2, 0x2E] - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - beq _080A5272 - ldr r7, _080A51D4 @ =gUnknown_03005D10 - ldr r6, _080A51D8 @ =gUnknown_02038559 - movs r0, 0 - ldrsb r0, [r6, r0] - lsls r0, 2 - adds r0, r7 - ldrb r1, [r0, 0x1] - ldrb r2, [r0] - adds r1, r2 - ldrb r0, [r0, 0x2] - cmp r1, r0 - bne _080A51F0 - movs r0, 0x14 - ldrsh r1, [r5, r0] - cmp r1, 0 - bne _080A51E8 - ldr r0, _080A51DC @ =gScriptItemId - strh r1, [r0] - ldr r1, _080A51E0 @ =gUnknown_083C16BC - ldr r0, _080A51E4 @ =gUnknown_03000701 - ldrb r0, [r0] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - b _080A526A - .align 2, 0 -_080A51D4: .4byte gUnknown_03005D10 -_080A51D8: .4byte gUnknown_02038559 -_080A51DC: .4byte gScriptItemId -_080A51E0: .4byte gUnknown_083C16BC -_080A51E4: .4byte gUnknown_03000701 -_080A51E8: - adds r0, r4, 0 - bl sub_80A3EF4 - b _080A526A -_080A51F0: - movs r1, 0x14 - ldrsh r0, [r5, r1] - cmp r0, 0 - bne _080A5264 - movs r0, 0x5 - bl PlaySE - ldr r2, _080A5250 @ =gUnknown_02038560 - movs r1, 0 - ldrsb r1, [r6, r1] - lsls r1, 2 - adds r1, r7 - ldrb r0, [r1] - ldrb r1, [r1, 0x1] - adds r0, r1 - strb r0, [r2] - ldr r3, _080A5254 @ =gScriptItemId - ldrb r0, [r2] - ldr r1, _080A5258 @ =gUnknown_03005D24 - ldr r1, [r1] - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r3] - ldr r1, _080A525C @ =gUnknown_083C16BC - ldr r0, _080A5260 @ =gUnknown_03000701 - ldrb r0, [r0] - lsls r0, 3 - adds r0, r1 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - movs r0, 0 - bl sub_80F98A4 - movs r0, 0x1 - bl sub_80F98A4 - movs r0, 0x2 - bl sub_80F98A4 - movs r0, 0x3 - bl sub_80F98A4 - bl sub_80A797C - b _080A526A - .align 2, 0 -_080A5250: .4byte gUnknown_02038560 -_080A5254: .4byte gScriptItemId -_080A5258: .4byte gUnknown_03005D24 -_080A525C: .4byte gUnknown_083C16BC -_080A5260: .4byte gUnknown_03000701 -_080A5264: - adds r0, r4, 0 - bl sub_80A3E90 -_080A526A: - adds r0, r4, 0 - bl sub_808B5B4 - b _080A52BC -_080A5272: - movs r0, 0x2 - ands r0, r2 - cmp r0, 0 - beq _080A52BC - movs r0, 0x14 - ldrsh r1, [r5, r0] - cmp r1, 0 - bne _080A52B0 - ldr r2, _080A52A4 @ =gUnknown_03000701 - ldrb r0, [r2] - cmp r0, 0x5 - beq _080A52B6 - ldr r0, _080A52A8 @ =gScriptItemId - strh r1, [r0] - ldr r1, _080A52AC @ =gUnknown_083C16BC - ldrb r0, [r2] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - b _080A52B6 - .align 2, 0 -_080A52A4: .4byte gUnknown_03000701 -_080A52A8: .4byte gScriptItemId -_080A52AC: .4byte gUnknown_083C16BC -_080A52B0: - adds r0, r4, 0 - bl sub_80A3EF4 -_080A52B6: - adds r0, r4, 0 - bl sub_808B5B4 -_080A52BC: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A50C8 - - thumb_func_start sub_80A52C4 -sub_80A52C4: @ 80A52C4 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r3, r1, 16 - adds r4, r3, 0 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080A52F4 @ =gTasks + 0x8 - adds r1, r0 - ldr r0, _080A52F8 @ =gMain - ldrh r0, [r0, 0x30] - movs r2, 0xF0 - ands r2, r0 - cmp r2, 0x40 - bne _080A52FC - movs r2, 0x2 - ldrsh r0, [r1, r2] - cmp r0, r3 - beq _080A533E - ldrh r0, [r1, 0x2] - adds r0, 0x1 - b _080A5340 - .align 2, 0 -_080A52F4: .4byte gTasks + 0x8 -_080A52F8: .4byte gMain -_080A52FC: - cmp r2, 0x80 - bne _080A5312 - ldrh r2, [r1, 0x2] - movs r4, 0x2 - ldrsh r0, [r1, r4] - cmp r0, 0x1 - beq _080A530E - subs r0, r2, 0x1 - b _080A5340 -_080A530E: - strh r3, [r1, 0x2] - b _080A5342 -_080A5312: - cmp r2, 0x10 - bne _080A532A - movs r2, 0x2 - ldrsh r0, [r1, r2] - adds r0, 0xA - cmp r0, r3 - bge _080A5326 - ldrh r0, [r1, 0x2] - adds r0, 0xA - b _080A5340 -_080A5326: - strh r4, [r1, 0x2] - b _080A5342 -_080A532A: - cmp r2, 0x20 - bne _080A5346 - ldrh r2, [r1, 0x2] - movs r3, 0x2 - ldrsh r0, [r1, r3] - cmp r0, 0xA - ble _080A533E - adds r0, r2, 0 - subs r0, 0xA - b _080A5340 -_080A533E: - movs r0, 0x1 -_080A5340: - strh r0, [r1, 0x2] -_080A5342: - movs r0, 0x1 - b _080A5348 -_080A5346: - movs r0, 0 -_080A5348: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80A52C4 - - thumb_func_start sub_80A5350 -sub_80A5350: @ 80A5350 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r2, _080A539C @ =gTasks + 0x8 - adds r4, r1, r2 - ldr r1, _080A53A0 @ =gUnknown_02038560 - ldrb r1, [r1] - ldr r2, _080A53A4 @ =gUnknown_03005D24 - ldr r2, [r2] - lsls r1, 2 - adds r1, r2 - ldrh r1, [r1, 0x2] - bl sub_80A52C4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A53C0 - ldr r0, _080A53A8 @ =gUnknown_02038559 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x3 - bne _080A53AC - ldrh r0, [r4, 0x2] - ldrb r2, [r4, 0x4] - ldrb r3, [r4, 0x6] - movs r1, 0x3 - str r1, [sp] - movs r1, 0x1 - bl sub_80A418C - b _080A53BC - .align 2, 0 -_080A539C: .4byte gTasks + 0x8 -_080A53A0: .4byte gUnknown_02038560 -_080A53A4: .4byte gUnknown_03005D24 -_080A53A8: .4byte gUnknown_02038559 -_080A53AC: - ldrh r0, [r4, 0x2] - ldrb r2, [r4, 0x4] - ldrb r3, [r4, 0x6] - movs r1, 0x2 - str r1, [sp] - movs r1, 0x1 - bl sub_80A418C -_080A53BC: - movs r0, 0x1 - b _080A53C2 -_080A53C0: - movs r0, 0 -_080A53C2: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80A5350 - - thumb_func_start sub_80A53CC -sub_80A53CC: @ 80A53CC - push {lr} - bl sub_80A34B4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A53EA - bl sub_80A3770 - ldr r0, _080A53F0 @ =sub_80A50C8 - movs r1, 0 - bl CreateTask - ldr r1, _080A53F4 @ =gUnknown_02038563 - strb r0, [r1] -_080A53EA: - pop {r0} - bx r0 - .align 2, 0 -_080A53F0: .4byte sub_80A50C8 -_080A53F4: .4byte gUnknown_02038563 - thumb_func_end sub_80A53CC - - thumb_func_start sub_80A53F8 -sub_80A53F8: @ 80A53F8 - push {lr} - ldr r0, _080A540C @ =gUnknown_03000701 - movs r1, 0 - strb r1, [r0] - ldr r0, _080A5410 @ =sub_80A53CC - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080A540C: .4byte gUnknown_03000701 -_080A5410: .4byte sub_80A53CC - thumb_func_end sub_80A53F8 - - thumb_func_start sub_80A5414 -sub_80A5414: @ 80A5414 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r5, 0 - bl sub_80A78A0 - cmp r0, 0 - bne _080A5426 - b _080A5552 -_080A5426: - ldr r2, _080A5460 @ =gMain - ldrh r0, [r2, 0x30] - movs r1, 0xF0 - ands r1, r0 - cmp r1, 0x40 - bne _080A546C - ldr r4, _080A5464 @ =gUnknown_03000700 - ldrb r1, [r4] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080A5440 - b _080A5552 -_080A5440: - ldrb r1, [r4] - ldr r0, _080A5468 @ =gUnknown_03000704 - ldr r0, [r0] - adds r1, r0 - subs r1, 0x1 - ldrb r0, [r1] - cmp r0, 0x8 - bne _080A5452 - b _080A5552 -_080A5452: - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - b _080A54EE - .align 2, 0 -_080A5460: .4byte gMain -_080A5464: .4byte gUnknown_03000700 -_080A5468: .4byte gUnknown_03000704 -_080A546C: - cmp r1, 0x80 - bne _080A549C - ldr r4, _080A5494 @ =gUnknown_03000700 - ldrb r1, [r4] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080A5552 - ldrb r1, [r4] - ldr r0, _080A5498 @ =gUnknown_03000704 - ldr r0, [r0] - adds r1, r0 - ldrb r0, [r1, 0x1] - cmp r0, 0x8 - beq _080A5552 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - b _080A54EE - .align 2, 0 -_080A5494: .4byte gUnknown_03000700 -_080A5498: .4byte gUnknown_03000704 -_080A549C: - cmp r1, 0x20 - bne _080A54CC - ldr r4, _080A54C4 @ =gUnknown_03000700 - ldrb r0, [r4] - cmp r0, 0x1 - bls _080A5552 - adds r1, r0, 0 - ldr r0, _080A54C8 @ =gUnknown_03000704 - ldr r0, [r0] - adds r1, r0 - subs r1, 0x2 - ldrb r0, [r1] - cmp r0, 0x8 - beq _080A5552 - movs r0, 0x5 - bl PlaySE - movs r0, 0x2 - negs r0, r0 - b _080A54EE - .align 2, 0 -_080A54C4: .4byte gUnknown_03000700 -_080A54C8: .4byte gUnknown_03000704 -_080A54CC: - cmp r1, 0x10 - bne _080A5500 - ldr r4, _080A54F8 @ =gUnknown_03000700 - ldrb r0, [r4] - cmp r0, 0x1 - bhi _080A5552 - adds r1, r0, 0 - ldr r0, _080A54FC @ =gUnknown_03000704 - ldr r0, [r0] - adds r1, r0 - ldrb r0, [r1, 0x2] - cmp r0, 0x8 - beq _080A5552 - movs r0, 0x5 - bl PlaySE - movs r0, 0x2 -_080A54EE: - bl MoveMenuCursor3 - strb r0, [r4] - b _080A5552 - .align 2, 0 -_080A54F8: .4byte gUnknown_03000700 -_080A54FC: .4byte gUnknown_03000704 -_080A5500: - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080A5590 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080A5552 - ldr r1, _080A5570 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - strh r5, [r0, 0x1C] - ldr r1, _080A5574 @ =gUnknown_03005D10 - ldr r0, _080A5578 @ =gUnknown_02038559 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0] - adds r0, r4, 0 - adds r1, r2, 0 - bl sub_80A48E8 - ldr r0, _080A557C @ =gBGTilemapBuffers + 0x800 - bl sub_80A4DA4 - ldr r1, _080A5580 @ =gUnknown_083C1640 - ldr r0, _080A5584 @ =gUnknown_03000704 - ldr r0, [r0] - ldrb r0, [r0, 0x3] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r5, [r0] - adds r0, r4, 0 - bl _call_via_r5 -_080A5552: - cmp r5, 0 - bne _080A55FA - ldr r0, _080A5588 @ =gUnknown_03000701 - ldrb r0, [r0] - cmp r0, 0x5 - bne _080A55E0 - ldr r0, _080A558C @ =gUnknown_03000700 - ldrb r0, [r0] - cmp r0, 0 - bne _080A55D4 - movs r0, 0xC - bl sub_8072DDC - b _080A55FA - .align 2, 0 -_080A5570: .4byte gTasks -_080A5574: .4byte gUnknown_03005D10 -_080A5578: .4byte gUnknown_02038559 -_080A557C: .4byte gBGTilemapBuffers + 0x800 -_080A5580: .4byte gUnknown_083C1640 -_080A5584: .4byte gUnknown_03000704 -_080A5588: .4byte gUnknown_03000701 -_080A558C: .4byte gUnknown_03000700 -_080A5590: - ldr r1, _080A55C0 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - strh r5, [r0, 0x1C] - ldr r0, _080A55C4 @ =gBGTilemapBuffers + 0x800 - bl sub_80A4DA4 - ldr r1, _080A55C8 @ =gUnknown_083C1640 - ldr r0, _080A55CC @ =gUnknown_03000700 - ldrb r2, [r0] - ldr r0, _080A55D0 @ =gUnknown_03000704 - ldr r0, [r0] - adds r0, r2 - ldrb r0, [r0] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r5, [r0] - adds r0, r4, 0 - bl _call_via_r5 - b _080A5552 - .align 2, 0 -_080A55C0: .4byte gTasks -_080A55C4: .4byte gBGTilemapBuffers + 0x800 -_080A55C8: .4byte gUnknown_083C1640 -_080A55CC: .4byte gUnknown_03000700 -_080A55D0: .4byte gUnknown_03000704 -_080A55D4: - cmp r0, 0x1 - bls _080A55E8 - movs r0, 0x30 - bl sub_8072DCC - b _080A55FA -_080A55E0: - ldr r0, _080A55F0 @ =gUnknown_03000700 - ldrb r0, [r0] - cmp r0, 0x1 - bhi _080A55F4 -_080A55E8: - movs r0, 0x2F - bl sub_8072DCC - b _080A55FA - .align 2, 0 -_080A55F0: .4byte gUnknown_03000700 -_080A55F4: - movs r0, 0x30 - bl sub_8072DCC -_080A55FA: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A5414 - - thumb_func_start sub_80A5600 -sub_80A5600: @ 80A5600 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r5, 0 - ldr r2, _080A563C @ =gMain - ldrh r0, [r2, 0x30] - movs r1, 0xF0 - ands r1, r0 - cmp r1, 0x40 - bne _080A5648 - ldr r4, _080A5640 @ =gUnknown_03000700 - ldrb r0, [r4] - cmp r0, 0 - bne _080A561E - b _080A5736 -_080A561E: - adds r1, r0, 0 - ldr r0, _080A5644 @ =gUnknown_03000704 - ldr r0, [r0] - adds r1, r0 - subs r1, 0x1 - ldrb r0, [r1] - cmp r0, 0x8 - bne _080A5630 - b _080A5736 -_080A5630: - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - b _080A56D2 - .align 2, 0 -_080A563C: .4byte gMain -_080A5640: .4byte gUnknown_03000700 -_080A5644: .4byte gUnknown_03000704 -_080A5648: - cmp r1, 0x80 - bne _080A5680 - ldr r4, _080A5674 @ =gUnknown_03000700 - ldrb r1, [r4] - ldr r0, _080A5678 @ =gUnknown_02038564 - ldrb r0, [r0] - subs r0, 0x1 - cmp r1, r0 - beq _080A5736 - cmp r1, 0x2 - beq _080A5736 - ldr r0, _080A567C @ =gUnknown_03000704 - ldr r0, [r0] - adds r0, r1, r0 - ldrb r0, [r0, 0x1] - cmp r0, 0x8 - beq _080A5736 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - b _080A56D2 - .align 2, 0 -_080A5674: .4byte gUnknown_03000700 -_080A5678: .4byte gUnknown_02038564 -_080A567C: .4byte gUnknown_03000704 -_080A5680: - cmp r1, 0x20 - bne _080A56B0 - ldr r4, _080A56A8 @ =gUnknown_03000700 - ldrb r0, [r4] - cmp r0, 0x2 - bls _080A5736 - adds r1, r0, 0 - ldr r0, _080A56AC @ =gUnknown_03000704 - ldr r0, [r0] - adds r1, r0 - subs r1, 0x3 - ldrb r0, [r1] - cmp r0, 0x8 - beq _080A5736 - movs r0, 0x5 - bl PlaySE - movs r0, 0x3 - negs r0, r0 - b _080A56D2 - .align 2, 0 -_080A56A8: .4byte gUnknown_03000700 -_080A56AC: .4byte gUnknown_03000704 -_080A56B0: - cmp r1, 0x10 - bne _080A56E4 - ldr r4, _080A56DC @ =gUnknown_03000700 - ldrb r0, [r4] - cmp r0, 0x2 - bhi _080A5736 - adds r1, r0, 0 - ldr r0, _080A56E0 @ =gUnknown_03000704 - ldr r0, [r0] - adds r1, r0 - ldrb r0, [r1, 0x3] - cmp r0, 0x8 - beq _080A5736 - movs r0, 0x5 - bl PlaySE - movs r0, 0x3 -_080A56D2: - bl MoveMenuCursor3 - strb r0, [r4] - b _080A5736 - .align 2, 0 -_080A56DC: .4byte gUnknown_03000700 -_080A56E0: .4byte gUnknown_03000704 -_080A56E4: - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080A5768 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080A5736 - ldr r1, _080A574C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - strh r5, [r0, 0x1C] - ldr r1, _080A5750 @ =gUnknown_03005D10 - ldr r0, _080A5754 @ =gUnknown_02038559 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0] - adds r0, r4, 0 - adds r1, r2, 0 - bl sub_80A48E8 - ldr r0, _080A5758 @ =gBGTilemapBuffers + 0x800 - bl sub_80A4DA4 - ldr r1, _080A575C @ =gUnknown_083C1640 - ldr r0, _080A5760 @ =gUnknown_03000704 - ldr r0, [r0] - ldrb r0, [r0, 0x5] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r5, [r0] - adds r0, r4, 0 - bl _call_via_r5 -_080A5736: - cmp r5, 0 - bne _080A57BE - ldr r0, _080A5764 @ =gUnknown_03000700 - ldrb r0, [r0] - cmp r0, 0 - bne _080A57AC - movs r0, 0xC - bl sub_8072DDC - b _080A57BE - .align 2, 0 -_080A574C: .4byte gTasks -_080A5750: .4byte gUnknown_03005D10 -_080A5754: .4byte gUnknown_02038559 -_080A5758: .4byte gBGTilemapBuffers + 0x800 -_080A575C: .4byte gUnknown_083C1640 -_080A5760: .4byte gUnknown_03000704 -_080A5764: .4byte gUnknown_03000700 -_080A5768: - ldr r1, _080A5798 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - strh r5, [r0, 0x1C] - ldr r0, _080A579C @ =gBGTilemapBuffers + 0x800 - bl sub_80A4DA4 - ldr r1, _080A57A0 @ =gUnknown_083C1640 - ldr r0, _080A57A4 @ =gUnknown_03000700 - ldrb r2, [r0] - ldr r0, _080A57A8 @ =gUnknown_03000704 - ldr r0, [r0] - adds r0, r2 - ldrb r0, [r0] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r5, [r0] - adds r0, r4, 0 - bl _call_via_r5 - b _080A5736 - .align 2, 0 -_080A5798: .4byte gTasks -_080A579C: .4byte gBGTilemapBuffers + 0x800 -_080A57A0: .4byte gUnknown_083C1640 -_080A57A4: .4byte gUnknown_03000700 -_080A57A8: .4byte gUnknown_03000704 -_080A57AC: - cmp r0, 0x2 - bhi _080A57B8 - movs r0, 0x2F - bl sub_8072DCC - b _080A57BE -_080A57B8: - movs r0, 0x30 - bl sub_8072DCC -_080A57BE: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A5600 - - thumb_func_start sub_80A57C4 -sub_80A57C4: @ 80A57C4 - push {r4-r6,lr} - sub sp, 0x8 - ldr r5, _080A57EC @ =gUnknown_03000704 - ldr r0, _080A57F0 @ =gUnknown_02038559 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r1, 1 - ldr r4, _080A57F4 @ =gUnknown_083C16AE - adds r1, r4 - str r1, [r5] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x4 - bne _080A57FC - ldr r1, _080A57F8 @ =gUnknown_02038564 - movs r0, 0x1 - strb r0, [r1] - movs r5, 0x9 - b _080A582C - .align 2, 0 -_080A57EC: .4byte gUnknown_03000704 -_080A57F0: .4byte gUnknown_02038559 -_080A57F4: .4byte gUnknown_083C16AE -_080A57F8: .4byte gUnknown_02038564 -_080A57FC: - ldr r0, _080A581C @ =gScriptItemId - ldrh r0, [r0] - bl sub_80F92F4 - lsls r0, 24 - cmp r0, 0 - bne _080A5824 - adds r0, r4, 0 - adds r0, 0x8 - str r0, [r5] - ldr r1, _080A5820 @ =gUnknown_02038564 - movs r0, 0x1 - strb r0, [r1] - movs r5, 0x9 - b _080A582C - .align 2, 0 -_080A581C: .4byte gScriptItemId -_080A5820: .4byte gUnknown_02038564 -_080A5824: - ldr r1, _080A5880 @ =gUnknown_02038564 - movs r0, 0x2 - strb r0, [r1] - movs r5, 0x7 -_080A582C: - adds r6, r1, 0 - ldr r0, _080A5884 @ =gBGTilemapBuffers + 0x800 - adds r4, r5, 0x1 - ldrb r1, [r6] - lsls r1, 25 - lsrs r1, 24 - str r1, [sp] - movs r1, 0x7 - adds r2, r4, 0 - movs r3, 0x6 - bl sub_80A4008 - ldrb r3, [r6] - lsls r3, 1 - adds r3, 0x1 - adds r3, r5, r3 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x6 - adds r1, r5, 0 - movs r2, 0xD - bl MenuDrawTextWindow - movs r0, 0 - adds r1, r5, 0 - bl sub_80A7834 - ldrb r3, [r6] - movs r0, 0 - str r0, [sp] - movs r0, 0x6 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x7 - adds r2, r4, 0 - bl InitMenu - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A5880: .4byte gUnknown_02038564 -_080A5884: .4byte gBGTilemapBuffers + 0x800 - thumb_func_end sub_80A57C4 - - thumb_func_start sub_80A5888 -sub_80A5888: @ 80A5888 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - bl sub_80A78A0 - cmp r0, 0 - beq _080A5988 - ldr r2, _080A58B8 @ =gMain - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080A58C0 - ldr r4, _080A58BC @ =gUnknown_03000700 - ldrb r0, [r4] - cmp r0, 0 - beq _080A5988 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - b _080A58E2 - .align 2, 0 -_080A58B8: .4byte gMain -_080A58BC: .4byte gUnknown_03000700 -_080A58C0: - movs r0, 0x80 - ands r0, r1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0 - beq _080A58F4 - ldr r4, _080A58EC @ =gUnknown_03000700 - ldrb r1, [r4] - ldr r0, _080A58F0 @ =gUnknown_02038564 - ldrb r0, [r0] - subs r0, 0x1 - cmp r1, r0 - beq _080A5988 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 -_080A58E2: - bl MoveMenuCursor - strb r0, [r4] - b _080A5988 - .align 2, 0 -_080A58EC: .4byte gUnknown_03000700 -_080A58F0: .4byte gUnknown_02038564 -_080A58F4: - ldrh r1, [r2, 0x2E] - movs r2, 0x1 - ands r2, r1 - cmp r2, 0 - beq _080A5964 - ldr r1, _080A5948 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - strh r3, [r0, 0x1C] - ldr r1, _080A594C @ =gUnknown_03005D10 - ldr r0, _080A5950 @ =gUnknown_02038559 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0] - adds r0, r4, 0 - adds r1, r2, 0 - bl sub_80A48E8 - ldr r0, _080A5954 @ =gBGTilemapBuffers + 0x800 - bl sub_80A4DA4 - ldr r1, _080A5958 @ =gUnknown_083C1640 - ldr r0, _080A595C @ =gUnknown_03000700 - ldrb r2, [r0] - ldr r0, _080A5960 @ =gUnknown_03000704 - ldr r0, [r0] - adds r0, r2 - ldrb r0, [r0] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - b _080A5988 - .align 2, 0 -_080A5948: .4byte gTasks -_080A594C: .4byte gUnknown_03005D10 -_080A5950: .4byte gUnknown_02038559 -_080A5954: .4byte gBGTilemapBuffers + 0x800 -_080A5958: .4byte gUnknown_083C1640 -_080A595C: .4byte gUnknown_03000700 -_080A5960: .4byte gUnknown_03000704 -_080A5964: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080A5988 - ldr r1, _080A5990 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - strh r2, [r0, 0x1C] - ldr r0, _080A5994 @ =gBGTilemapBuffers + 0x800 - bl sub_80A4DA4 - ldr r0, _080A5998 @ =gUnknown_083C1640 - ldr r1, [r0, 0x14] - adds r0, r5, 0 - bl _call_via_r1 -_080A5988: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A5990: .4byte gTasks -_080A5994: .4byte gBGTilemapBuffers + 0x800 -_080A5998: .4byte gUnknown_083C1640 - thumb_func_end sub_80A5888 - - thumb_func_start sub_80A599C -sub_80A599C: @ 80A599C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A59C4 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r3, _080A59C8 @ =sub_805469C - lsrs r2, r3, 16 - movs r4, 0 - strh r2, [r1, 0x18] - strh r3, [r1, 0x1A] - ldr r1, _080A59CC @ =gLastFieldPokeMenuOpened - strb r4, [r1] - bl sub_80A5AE4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A59C4: .4byte gTasks -_080A59C8: .4byte sub_805469C -_080A59CC: .4byte gLastFieldPokeMenuOpened - thumb_func_end sub_80A599C - - thumb_func_start sub_80A59D0 -sub_80A59D0: @ 80A59D0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _080A5A3C @ =gUnknown_03000700 - movs r0, 0 - strb r0, [r1] - ldr r7, _080A5A40 @ =gUnknown_03000701 - ldrb r0, [r7] - cmp r0, 0x5 - bne _080A59E8 - movs r0, 0x1 - strb r0, [r1] -_080A59E8: - ldr r1, _080A5A44 @ =gTasks - lsls r4, r5, 2 - adds r0, r4, r5 - lsls r0, 3 - adds r6, r0, r1 - ldr r3, _080A5A48 @ =gUnknown_03005D10 - ldr r2, _080A5A4C @ =gUnknown_02038559 - movs r0, 0 - ldrsb r0, [r2, r0] - lsls r0, 2 - adds r0, r3 - ldrb r1, [r0, 0x1] - ldrb r0, [r0] - adds r1, r0 - adds r1, 0x1 - strh r1, [r6, 0x1C] - movs r0, 0 - ldrsb r0, [r2, r0] - lsls r0, 2 - adds r0, r3 - ldrb r2, [r0] - adds r0, r5, 0 - adds r1, r2, 0 - bl sub_80A48E8 - bl sub_80A73FC - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A5A54 - ldrb r0, [r7] - cmp r0, 0x5 - beq _080A5A54 - bl sub_80A57C4 - ldr r0, _080A5A50 @ =sub_80A5888 - str r0, [r6] - b _080A5A9C - .align 2, 0 -_080A5A3C: .4byte gUnknown_03000700 -_080A5A40: .4byte gUnknown_03000701 -_080A5A44: .4byte gTasks -_080A5A48: .4byte gUnknown_03005D10 -_080A5A4C: .4byte gUnknown_02038559 -_080A5A50: .4byte sub_80A5888 -_080A5A54: - ldr r0, _080A5A7C @ =gBGTilemapBuffers + 0x800 - bl sub_80A4BF0 - ldr r0, _080A5A80 @ =gUnknown_02038559 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x3 - bne _080A5A6E - ldr r0, _080A5A84 @ =gUnknown_03000701 - ldrb r0, [r0] - cmp r0, 0x5 - bne _080A5A90 -_080A5A6E: - ldr r0, _080A5A88 @ =gTasks - adds r1, r4, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _080A5A8C @ =sub_80A5414 - b _080A5A9A - .align 2, 0 -_080A5A7C: .4byte gBGTilemapBuffers + 0x800 -_080A5A80: .4byte gUnknown_02038559 -_080A5A84: .4byte gUnknown_03000701 -_080A5A88: .4byte gTasks -_080A5A8C: .4byte sub_80A5414 -_080A5A90: - ldr r0, _080A5AA4 @ =gTasks - adds r1, r4, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _080A5AA8 @ =sub_80A5600 -_080A5A9A: - str r0, [r1] -_080A5A9C: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A5AA4: .4byte gTasks -_080A5AA8: .4byte sub_80A5600 - thumb_func_end sub_80A59D0 - - thumb_func_start sub_80A5AAC -sub_80A5AAC: @ 80A5AAC - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _080A5ADC @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080A5AE0 @ =HandleItemMenuPaletteFade - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A5ADC: .4byte gTasks -_080A5AE0: .4byte HandleItemMenuPaletteFade - thumb_func_end sub_80A5AAC - - thumb_func_start sub_80A5AE4 -sub_80A5AE4: @ 80A5AE4 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_80A5AAC - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A5AE4 - - thumb_func_start HandleItemMenuPaletteFade -HandleItemMenuPaletteFade: @ 80A5B00 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _080A5B38 @ =gTasks + 0x8 - adds r2, r0, r1 - ldr r0, _080A5B3C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080A5B32 - ldrh r0, [r2, 0x10] - lsls r0, 16 - ldrh r1, [r2, 0x12] - orrs r0, r1 - bl SetMainCallback2 - bl gpu_pal_allocator_reset__manage_upper_four - adds r0, r4, 0 - bl DestroyTask -_080A5B32: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A5B38: .4byte gTasks + 0x8 -_080A5B3C: .4byte gPaletteFade - thumb_func_end HandleItemMenuPaletteFade - - thumb_func_start sub_80A5B40 -sub_80A5B40: @ 80A5B40 - push {lr} -_080A5B42: - bl sub_80A317C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A5B68 - bl ResetTasks - ldr r0, _080A5B60 @ =sub_80A50C8 - movs r1, 0 - bl CreateTask - ldr r1, _080A5B64 @ =gUnknown_02038563 - strb r0, [r1] - b _080A5B74 - .align 2, 0 -_080A5B60: .4byte sub_80A50C8 -_080A5B64: .4byte gUnknown_02038563 -_080A5B68: - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A5B42 -_080A5B74: - pop {r0} - bx r0 - thumb_func_end sub_80A5B40 - - thumb_func_start sub_80A5B78 -sub_80A5B78: @ 80A5B78 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r5, _080A5BB0 @ =gScriptItemId - ldrh r0, [r5] - bl ItemId_GetFieldFunc - cmp r0, 0 - beq _080A5BF2 - movs r0, 0x5 - bl PlaySE - bl CalculatePlayerPartyCount - lsls r0, 24 - cmp r0, 0 - bne _080A5BB4 - ldrh r0, [r5] - bl ItemId_GetType - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A5BB4 - adds r0, r4, 0 - bl sub_80A5BF8 - b _080A5BF2 - .align 2, 0 -_080A5BB0: .4byte gScriptItemId -_080A5BB4: - ldr r1, _080A5BE0 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0xC] - ldr r0, _080A5BE4 @ =gUnknown_02038559 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x3 - beq _080A5BEC - ldr r0, _080A5BE8 @ =gScriptItemId - ldrh r0, [r0] - bl ItemId_GetFieldFunc - adds r1, r0, 0 - adds r0, r4, 0 - bl _call_via_r1 - b _080A5BF2 - .align 2, 0 -_080A5BE0: .4byte gTasks -_080A5BE4: .4byte gUnknown_02038559 -_080A5BE8: .4byte gScriptItemId -_080A5BEC: - adds r0, r4, 0 - bl sub_80C9C7C -_080A5BF2: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A5B78 - - thumb_func_start sub_80A5BF8 -sub_80A5BF8: @ 80A5BF8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_80A73FC - bl sub_80A7590 - ldr r1, _080A5C1C @ =gOtherText_NoPokemon - ldr r2, _080A5C20 @ =CleanUpItemMenuMessage - adds r0, r4, 0 - movs r3, 0x1 - bl DisplayCannotUseItemMessage - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A5C1C: .4byte gOtherText_NoPokemon -_080A5C20: .4byte CleanUpItemMenuMessage - thumb_func_end sub_80A5BF8 - - thumb_func_start sub_80A5C24 -sub_80A5C24: @ 80A5C24 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - bl sub_80A7528 - adds r0, r4, 0 - bl sub_80A41D4 - bl ItemListMenu_InitMenu - adds r0, r4, 0 - bl sub_80A37C0 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A5C24 - - thumb_func_start CleanUpItemMenuMessage -CleanUpItemMenuMessage: @ 80A5C48 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080A5C90 @ =gBGTilemapBuffers + 0x800 - movs r1, 0x1F - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x1F - bl sub_80A36B8 - movs r0, 0x7 - movs r1, 0x7 - movs r2, 0xD - movs r3, 0xC - bl MenuZeroFillWindowRect - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r1, _080A5C94 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080A5C98 @ =sub_80A5C24 - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A5C90: .4byte gBGTilemapBuffers + 0x800 -_080A5C94: .4byte gTasks -_080A5C98: .4byte sub_80A5C24 - thumb_func_end CleanUpItemMenuMessage - - thumb_func_start CleanUpOverworldMessage -CleanUpOverworldMessage: @ 80A5C9C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - movs r1, 0xD - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - adds r0, r4, 0 - bl DestroyTask - bl sub_8064E2C - bl ScriptContext2_Disable - pop {r4} - pop {r0} - bx r0 - thumb_func_end CleanUpOverworldMessage - - thumb_func_start ExecuteItemUseFromBlackPalette -ExecuteItemUseFromBlackPalette: @ 80A5CC4 - push {lr} - bl pal_fill_black - ldr r0, _080A5CD8 @ =Task_CallItemUseOnFieldCallback - movs r1, 0x8 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080A5CD8: .4byte Task_CallItemUseOnFieldCallback - thumb_func_end ExecuteItemUseFromBlackPalette - - thumb_func_start Task_CallItemUseOnFieldCallback -Task_CallItemUseOnFieldCallback: @ 80A5CDC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_807D770 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A5CF8 - ldr r0, _080A5D00 @ =gUnknown_03005D00 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 -_080A5CF8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A5D00: .4byte gUnknown_03005D00 - thumb_func_end Task_CallItemUseOnFieldCallback - - thumb_func_start sub_80A5D04 -sub_80A5D04: @ 80A5D04 - push {lr} -_080A5D06: - bl sub_80A317C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A5D28 - ldr r0, _080A5D20 @ =sub_80A50C8 - movs r1, 0 - bl CreateTask - ldr r1, _080A5D24 @ =gUnknown_02038563 - strb r0, [r1] - b _080A5D34 - .align 2, 0 -_080A5D20: .4byte sub_80A50C8 -_080A5D24: .4byte gUnknown_02038563 -_080A5D28: - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A5D06 -_080A5D34: - pop {r0} - bx r0 - thumb_func_end sub_80A5D04 - - thumb_func_start sub_80A5D38 -sub_80A5D38: @ 80A5D38 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _080A5D70 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0xA] - ldr r0, _080A5D74 @ =gBGTilemapBuffers + 0x800 - bl sub_80A4DA4 - movs r0, 0 - bl sub_80A7528 - adds r0, r4, 0 - bl sub_80A41D4 - bl ItemListMenu_InitMenu - adds r0, r4, 0 - bl sub_80A37C0 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A5D70: .4byte gTasks -_080A5D74: .4byte gBGTilemapBuffers + 0x800 - thumb_func_end sub_80A5D38 - - thumb_func_start sub_80A5D78 -sub_80A5D78: @ 80A5D78 - push {lr} - sub sp, 0x4 - ldr r0, _080A5D9C @ =gBGTilemapBuffers + 0x800 - movs r1, 0x4 - str r1, [sp] - movs r1, 0x8 - movs r2, 0x8 - movs r3, 0x5 - bl sub_80A4008 - movs r0, 0x7 - movs r1, 0x7 - movs r2, 0x1 - bl DisplayYesNoMenu - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080A5D9C: .4byte gBGTilemapBuffers + 0x800 - thumb_func_end sub_80A5D78 - - thumb_func_start sub_80A5DA0 -sub_80A5DA0: @ 80A5DA0 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - lsrs r4, r1, 16 - ldr r1, _080A5DC4 @ =gStringVar1 - bl CopyItemName - cmp r4, 0x63 - bls _080A5DCC - ldr r0, _080A5DC8 @ =gStringVar2 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - b _080A5DD8 - .align 2, 0 -_080A5DC4: .4byte gStringVar1 -_080A5DC8: .4byte gStringVar2 -_080A5DCC: - ldr r0, _080A5DF0 @ =gStringVar2 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x2 - bl ConvertIntToDecimalStringN -_080A5DD8: - ldr r0, _080A5DF4 @ =gBGTilemapBuffers + 0x800 - bl sub_80A4DA4 - movs r0, 0x5 - bl sub_80A7528 - bl sub_80A5D78 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A5DF0: .4byte gStringVar2 -_080A5DF4: .4byte gBGTilemapBuffers + 0x800 - thumb_func_end sub_80A5DA0 - - thumb_func_start sub_80A5DF8 -sub_80A5DF8: @ 80A5DF8 - push {lr} - ldr r0, _080A5E18 @ =gBGTilemapBuffers + 0x800 - bl sub_80A4DA4 - movs r0, 0x7 - movs r1, 0x6 - movs r2, 0xB - movs r3, 0xD - bl MenuZeroFillWindowRect - movs r0, 0x4 - bl sub_80A7528 - pop {r0} - bx r0 - .align 2, 0 -_080A5E18: .4byte gBGTilemapBuffers + 0x800 - thumb_func_end sub_80A5DF8 - - thumb_func_start sub_80A5E1C -sub_80A5E1C: @ 80A5E1C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A5E58 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080A5E36 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080A5E50 -_080A5E36: - ldr r0, _080A5E5C @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0 - strh r0, [r1, 0x1C] - adds r0, r4, 0 - bl sub_80A41D4 - adds r0, r4, 0 - bl sub_80A5D38 -_080A5E50: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A5E58: .4byte gMain -_080A5E5C: .4byte gTasks - thumb_func_end sub_80A5E1C - - thumb_func_start sub_80A5E60 -sub_80A5E60: @ 80A5E60 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_80A5DF8 - adds r0, r4, 0 - bl sub_80A3D5C - ldr r1, _080A5E88 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080A5E8C @ =sub_80A5E1C - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A5E88: .4byte gTasks -_080A5E8C: .4byte sub_80A5E1C - thumb_func_end sub_80A5E60 - - thumb_func_start sub_80A5E90 -sub_80A5E90: @ 80A5E90 - push {lr} - lsls r0, 24 - lsrs r0, 24 - bl sub_80A5D38 - pop {r0} - bx r0 - thumb_func_end sub_80A5E90 - - thumb_func_start sub_80A5EA0 -sub_80A5EA0: @ 80A5EA0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - adds r0, r4, 0 - bl sub_80A5350 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080A5F0C - ldr r0, _080A5EE8 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080A5EF8 - movs r0, 0x5 - bl PlaySE - ldr r0, _080A5EEC @ =gScriptItemId - ldrh r0, [r0] - ldr r2, _080A5EF0 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r2 - ldrh r1, [r1, 0xA] - bl sub_80A5DA0 - ldr r1, _080A5EF4 @ =gUnknown_083C16F4 - adds r0, r4, 0 - bl DoYesNoFuncWithChoice - b _080A5F0C - .align 2, 0 -_080A5EE8: .4byte gMain -_080A5EEC: .4byte gScriptItemId -_080A5EF0: .4byte gTasks -_080A5EF4: .4byte gUnknown_083C16F4 -_080A5EF8: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080A5F0C - movs r0, 0x5 - bl PlaySE - adds r0, r5, 0 - bl sub_80A5D38 -_080A5F0C: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80A5EA0 - - thumb_func_start sub_80A5F14 -sub_80A5F14: @ 80A5F14 - push {r4,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0x5 - bl PlaySE - ldr r1, _080A5F58 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080A5F5C @ =sub_80A5EA0 - str r1, [r0] - movs r0, 0x3 - bl sub_80A7528 - ldr r0, _080A5F60 @ =gUnknown_02038559 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x3 - bne _080A5F64 - movs r0, 0x3 - str r0, [sp] - str r0, [sp, 0x4] - adds r0, r4, 0 - movs r1, 0x6 - movs r2, 0x9 - movs r3, 0x7 - bl sub_80A4DD8 - b _080A5F78 - .align 2, 0 -_080A5F58: .4byte gTasks -_080A5F5C: .4byte sub_80A5EA0 -_080A5F60: .4byte gUnknown_02038559 -_080A5F64: - movs r0, 0x3 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - adds r0, r4, 0 - movs r1, 0x7 - movs r2, 0x9 - movs r3, 0x6 - bl sub_80A4DD8 -_080A5F78: - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A5F14 - - thumb_func_start sub_80A5F80 -sub_80A5F80: @ 80A5F80 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x5 - bl PlaySE - movs r0, 0 - bl sub_80A7528 - adds r0, r4, 0 - bl sub_80A41D4 - bl ItemListMenu_InitMenu - adds r0, r4, 0 - bl sub_80A37C0 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A5F80 - - thumb_func_start sub_80A5FAC -sub_80A5FAC: @ 80A5FAC - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r0, 0x5 - bl PlaySE - ldr r0, _080A5FD0 @ =gSaveBlock1 - ldr r1, _080A5FD4 @ =0x00000496 - adds r4, r0, r1 - ldr r5, _080A5FD8 @ =gScriptItemId - ldrh r0, [r4] - ldrh r1, [r5] - cmp r0, r1 - bne _080A5FDC - bl sub_80A40D0 - movs r0, 0 - b _080A5FE2 - .align 2, 0 -_080A5FD0: .4byte gSaveBlock1 -_080A5FD4: .4byte 0x00000496 -_080A5FD8: .4byte gScriptItemId -_080A5FDC: - bl sub_80A413C - ldrh r0, [r5] -_080A5FE2: - strh r0, [r4] - movs r0, 0 - bl sub_80A7528 - adds r0, r6, 0 - bl sub_80A41D4 - bl ItemListMenu_InitMenu - adds r0, r6, 0 - bl sub_80A37C0 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80A5FAC - - thumb_func_start sub_80A6000 -sub_80A6000: @ 80A6000 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0 - bl sub_80A7528 - adds r0, r4, 0 - bl sub_80A41D4 - bl ItemListMenu_InitMenu - adds r0, r4, 0 - bl sub_80A37C0 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A6000 - - thumb_func_start sub_80A6024 -sub_80A6024: @ 80A6024 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A606C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080A6062 - ldr r0, _080A6070 @ =gBGTilemapBuffers + 0x800 - movs r1, 0x1F - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x1F - bl sub_80A36B8 - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r1, _080A6074 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080A6078 @ =sub_80A6000 - str r1, [r0] -_080A6062: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A606C: .4byte gMain -_080A6070: .4byte gBGTilemapBuffers + 0x800 -_080A6074: .4byte gTasks -_080A6078: .4byte sub_80A6000 - thumb_func_end sub_80A6024 - - thumb_func_start DisplayCannotBeHeldMessage -DisplayCannotBeHeldMessage: @ 80A607C - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_80A73FC - ldr r0, _080A60B4 @ =gScriptItemId - ldrh r0, [r0] - ldr r1, _080A60B8 @ =gStringVar1 - bl CopyItemName - ldr r5, _080A60BC @ =gStringVar4 - ldr r1, _080A60C0 @ =gOtherText_CantBeHeld - adds r0, r5, 0 - bl StringExpandPlaceholders - bl sub_80A7590 - ldr r2, _080A60C4 @ =sub_80A6024 - adds r0, r4, 0 - adds r1, r5, 0 - movs r3, 0x1 - bl DisplayCannotUseItemMessage - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A60B4: .4byte gScriptItemId -_080A60B8: .4byte gStringVar1 -_080A60BC: .4byte gStringVar4 -_080A60C0: .4byte gOtherText_CantBeHeld -_080A60C4: .4byte sub_80A6024 - thumb_func_end DisplayCannotBeHeldMessage - - thumb_func_start ItemMenu_Give -ItemMenu_Give: @ 80A60C8 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - adds r6, r4, 0 - movs r0, 0x5 - bl PlaySE - ldr r5, _080A60FC @ =gScriptItemId - ldrh r0, [r5] - bl sub_80F931C - lsls r0, 24 - cmp r0, 0 - bne _080A6108 - bl sub_80A73FC - bl sub_80A7590 - ldr r1, _080A6100 @ =gOtherText_CantWriteMail - ldr r2, _080A6104 @ =sub_80A6024 - adds r0, r4, 0 - movs r3, 0x1 - bl DisplayCannotUseItemMessage - b _080A616E - .align 2, 0 -_080A60FC: .4byte gScriptItemId -_080A6100: .4byte gOtherText_CantWriteMail -_080A6104: .4byte sub_80A6024 -_080A6108: - ldrh r0, [r5] - bl ItemId_GetImportance - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _080A6168 - bl CalculatePlayerPartyCount - lsls r0, 24 - cmp r0, 0 - bne _080A6128 - adds r0, r4, 0 - bl sub_80A5BF8 - b _080A616E -_080A6128: - ldr r1, _080A6158 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r2, _080A615C @ =sub_808B020 - lsrs r1, r2, 16 - strh r1, [r0, 0x18] - strh r2, [r0, 0x1A] - ldr r1, _080A6160 @ =HandleItemMenuPaletteFade - str r1, [r0] - ldr r1, _080A6164 @ =gUnknown_02038561 - movs r0, 0x1 - strb r0, [r1] - movs r0, 0x1 - negs r0, r0 - str r5, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _080A616E - .align 2, 0 -_080A6158: .4byte gTasks -_080A615C: .4byte sub_808B020 -_080A6160: .4byte HandleItemMenuPaletteFade -_080A6164: .4byte gUnknown_02038561 -_080A6168: - adds r0, r6, 0 - bl DisplayCannotBeHeldMessage -_080A616E: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end ItemMenu_Give - - thumb_func_start sub_80A6178 -sub_80A6178: @ 80A6178 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_80A5AE4 - ldr r1, _080A61A0 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r2, _080A61A4 @ =BerryTagScreen_814625C - lsrs r1, r2, 16 - strh r1, [r0, 0x18] - strh r2, [r0, 0x1A] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A61A0: .4byte gTasks -_080A61A4: .4byte BerryTagScreen_814625C - thumb_func_end sub_80A6178 - - thumb_func_start sub_80A61A8 -sub_80A61A8: @ 80A61A8 - push {lr} - bl sub_80A34B4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A61C2 - ldr r0, _080A61C8 @ =sub_80A50C8 - movs r1, 0 - bl CreateTask - ldr r1, _080A61CC @ =gUnknown_02038563 - strb r0, [r1] -_080A61C2: - pop {r0} - bx r0 - .align 2, 0 -_080A61C8: .4byte sub_80A50C8 -_080A61CC: .4byte gUnknown_02038563 - thumb_func_end sub_80A61A8 - - thumb_func_start sub_80A61D0 -sub_80A61D0: @ 80A61D0 - push {lr} - ldr r0, _080A61E4 @ =gUnknown_03000701 - movs r1, 0x2 - strb r1, [r0] - ldr r0, _080A61E8 @ =sub_80A61A8 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080A61E4: .4byte gUnknown_03000701 -_080A61E8: .4byte sub_80A61A8 - thumb_func_end sub_80A61D0 - - thumb_func_start sub_80A61EC -sub_80A61EC: @ 80A61EC - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A620C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r3, _080A6210 @ =sub_808A3F8 - lsrs r2, r3, 16 - strh r2, [r1, 0x18] - strh r3, [r1, 0x1A] - bl sub_80A5AE4 - pop {r0} - bx r0 - .align 2, 0 -_080A620C: .4byte gTasks -_080A6210: .4byte sub_808A3F8 - thumb_func_end sub_80A61EC - - thumb_func_start sub_80A6214 -sub_80A6214: @ 80A6214 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080A6244 @ =gUnknown_02038559 - ldrb r0, [r0] - adds r0, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r4, _080A6248 @ =gScriptItemId - ldrh r0, [r4] - bl sub_80F931C - lsls r0, 24 - cmp r0, 0 - bne _080A6254 - bl sub_80A73FC - bl sub_80A7590 - ldr r1, _080A624C @ =gOtherText_CantWriteMail - ldr r2, _080A6250 @ =sub_80A6024 - adds r0, r5, 0 - b _080A6280 - .align 2, 0 -_080A6244: .4byte gUnknown_02038559 -_080A6248: .4byte gScriptItemId -_080A624C: .4byte gOtherText_CantWriteMail -_080A6250: .4byte sub_80A6024 -_080A6254: - ldrh r0, [r4] - bl sub_80F92F4 - lsls r0, 24 - cmp r0, 0 - bne _080A6298 - bl sub_80A73FC - ldrh r0, [r4] - ldr r1, _080A6288 @ =gStringVar1 - bl CopyItemName - ldr r4, _080A628C @ =gStringVar4 - ldr r1, _080A6290 @ =gOtherText_CantBeHeldHere - adds r0, r4, 0 - bl StringExpandPlaceholders - bl sub_80A7590 - ldr r2, _080A6294 @ =sub_80A6024 - adds r0, r5, 0 - adds r1, r4, 0 -_080A6280: - movs r3, 0x1 - bl DisplayCannotUseItemMessage - b _080A62D2 - .align 2, 0 -_080A6288: .4byte gStringVar1 -_080A628C: .4byte gStringVar4 -_080A6290: .4byte gOtherText_CantBeHeldHere -_080A6294: .4byte sub_80A6024 -_080A6298: - cmp r6, 0x5 - beq _080A62CC - ldrh r0, [r4] - bl ItemId_GetImportance - lsls r0, 24 - cmp r0, 0 - bne _080A62CC - ldr r1, _080A62C4 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r2, _080A62C8 @ =sub_808A3F8 - lsrs r1, r2, 16 - strh r1, [r0, 0x18] - strh r2, [r0, 0x1A] - adds r0, r5, 0 - bl sub_80A5AAC - b _080A62D2 - .align 2, 0 -_080A62C4: .4byte gTasks -_080A62C8: .4byte sub_808A3F8 -_080A62CC: - adds r0, r5, 0 - bl DisplayCannotBeHeldMessage -_080A62D2: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80A6214 - - thumb_func_start sub_80A62D8 -sub_80A62D8: @ 80A62D8 - push {lr} - bl sub_80A34B4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A62F2 - ldr r0, _080A62F8 @ =sub_80A50C8 - movs r1, 0 - bl CreateTask - ldr r1, _080A62FC @ =gUnknown_02038563 - strb r0, [r1] -_080A62F2: - pop {r0} - bx r0 - .align 2, 0 -_080A62F8: .4byte sub_80A50C8 -_080A62FC: .4byte gUnknown_02038563 - thumb_func_end sub_80A62D8 - - thumb_func_start sub_80A6300 -sub_80A6300: @ 80A6300 - push {lr} - ldr r0, _080A6314 @ =gUnknown_03000701 - movs r1, 0x3 - strb r1, [r0] - ldr r0, _080A6318 @ =sub_80A62D8 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080A6314: .4byte gUnknown_03000701 -_080A6318: .4byte sub_80A62D8 - thumb_func_end sub_80A6300 - - thumb_func_start sub_80A631C -sub_80A631C: @ 80A631C - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A6344 @ =gFieldCallback - ldr r1, _080A6348 @ =sub_80B3050 - str r1, [r2] - ldr r2, _080A634C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r3, _080A6350 @ =c2_exit_to_overworld_2_switch - lsrs r2, r3, 16 - strh r2, [r1, 0x18] - strh r3, [r1, 0x1A] - bl sub_80A5AE4 - pop {r0} - bx r0 - .align 2, 0 -_080A6344: .4byte gFieldCallback -_080A6348: .4byte sub_80B3050 -_080A634C: .4byte gTasks -_080A6350: .4byte c2_exit_to_overworld_2_switch - thumb_func_end sub_80A631C - - thumb_func_start sub_80A6354 -sub_80A6354: @ 80A6354 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - bl sub_80A7590 - ldr r0, _080A63C4 @ =gTasks - lsls r2, r5, 2 - adds r2, r5 - lsls r2, 3 - adds r2, r0 - ldr r4, _080A63C8 @ =gUnknown_03005D10 - ldr r3, _080A63CC @ =gUnknown_02038559 - movs r0, 0 - ldrsb r0, [r3, r0] - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0, 0x1] - ldrb r0, [r0] - adds r1, r0 - adds r1, 0x1 - strh r1, [r2, 0x1C] - movs r0, 0 - ldrsb r0, [r3, r0] - lsls r0, 2 - adds r0, r4 - ldrb r2, [r0] - adds r0, r5, 0 - adds r1, r2, 0 - bl sub_80A48E8 - bl sub_80A73FC - ldr r4, _080A63D0 @ =gScriptItemId - ldrh r0, [r4] - ldr r1, _080A63D4 @ =gStringVar2 - bl CopyItemName - ldrh r0, [r4] - bl ItemId_GetPrice - lsls r0, 16 - cmp r0, 0 - bne _080A63E4 - ldr r4, _080A63D8 @ =gStringVar4 - ldr r1, _080A63DC @ =gOtherText_CantBuyThat - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r2, _080A63E0 @ =sub_80A6444 - adds r0, r5, 0 - adds r1, r4, 0 - movs r3, 0x1 - bl DisplayCannotUseItemMessage - b _080A63FA - .align 2, 0 -_080A63C4: .4byte gTasks -_080A63C8: .4byte gUnknown_03005D10 -_080A63CC: .4byte gUnknown_02038559 -_080A63D0: .4byte gScriptItemId -_080A63D4: .4byte gStringVar2 -_080A63D8: .4byte gStringVar4 -_080A63DC: .4byte gOtherText_CantBuyThat -_080A63E0: .4byte sub_80A6444 -_080A63E4: - ldr r4, _080A6400 @ =gStringVar4 - ldr r1, _080A6404 @ =gOtherText_HowManyToSell - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r2, _080A6408 @ =sub_80A648C - adds r0, r5, 0 - adds r1, r4, 0 - movs r3, 0x1 - bl DisplayCannotUseItemMessage -_080A63FA: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A6400: .4byte gStringVar4 -_080A6404: .4byte gOtherText_HowManyToSell -_080A6408: .4byte sub_80A648C - thumb_func_end sub_80A6354 - - thumb_func_start sub_80A640C -sub_80A640C: @ 80A640C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _080A6440 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x1C] - movs r0, 0 - bl sub_80A7528 - adds r0, r4, 0 - bl sub_80A41D4 - bl ItemListMenu_InitMenu - adds r0, r4, 0 - bl sub_80A37C0 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A6440: .4byte gTasks - thumb_func_end sub_80A640C - - thumb_func_start sub_80A6444 -sub_80A6444: @ 80A6444 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080A6480 @ =gBGTilemapBuffers + 0x800 - movs r1, 0x1F - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x1F - bl sub_80A36B8 - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r1, _080A6484 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080A6488 @ =sub_80A640C - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A6480: .4byte gBGTilemapBuffers + 0x800 -_080A6484: .4byte gTasks -_080A6488: .4byte sub_80A640C - thumb_func_end sub_80A6444 - - thumb_func_start sub_80A648C -sub_80A648C: @ 80A648C - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080A64E8 @ =gTasks - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - ldr r0, _080A64EC @ =Task_BuyHowManyDialogueHandleInput - str r0, [r4] - ldr r0, _080A64F0 @ =gBGTilemapBuffers + 0x800 - movs r5, 0x2 - str r5, [sp] - movs r1, 0x1 - movs r2, 0xB - movs r3, 0xC - bl sub_80A4008 - movs r0, 0 - movs r1, 0xA - movs r2, 0xD - movs r3, 0xD - bl MenuDrawTextWindow - movs r0, 0x1 - strh r0, [r4, 0xA] - strh r0, [r4, 0xC] - movs r0, 0xB - strh r0, [r4, 0xE] - ldr r0, _080A64F4 @ =gUnknown_02038559 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x3 - bne _080A64F8 - movs r0, 0x3 - str r0, [sp] - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0xB - bl sub_80A418C - b _080A6506 - .align 2, 0 -_080A64E8: .4byte gTasks -_080A64EC: .4byte Task_BuyHowManyDialogueHandleInput -_080A64F0: .4byte gBGTilemapBuffers + 0x800 -_080A64F4: .4byte gUnknown_02038559 -_080A64F8: - str r5, [sp] - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0xB - bl sub_80A418C -_080A6506: - ldr r0, _080A651C @ =gScriptItemId - ldrh r0, [r0] - movs r1, 0x1 - bl BuyMenuDisplayMessage - bl sub_80A683C - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A651C: .4byte gScriptItemId - thumb_func_end sub_80A648C - - thumb_func_start sub_80A6520 -sub_80A6520: @ 80A6520 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A6544 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080A653E - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl BuyMenuPrintItemQuantityAndPrice -_080A653E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A6544: .4byte gMain - thumb_func_end sub_80A6520 - - thumb_func_start sub_80A6548 -sub_80A6548: @ 80A6548 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_80A48F8 - ldr r1, _080A656C @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080A6570 @ =sub_80A6520 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A656C: .4byte gTasks -_080A6570: .4byte sub_80A6520 - thumb_func_end sub_80A6548 - - thumb_func_start sub_80A6574 -sub_80A6574: @ 80A6574 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0x5F - bl PlaySE - ldr r0, _080A65A0 @ =gScriptItemId - ldrh r0, [r0] - ldr r1, _080A65A4 @ =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r1 - ldrb r1, [r4, 0xA] - bl sub_80A6870 - ldr r0, _080A65A8 @ =sub_80A6548 - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A65A0: .4byte gScriptItemId -_080A65A4: .4byte gTasks -_080A65A8: .4byte sub_80A6548 - thumb_func_end sub_80A6574 - - thumb_func_start sub_80A65AC -sub_80A65AC: @ 80A65AC - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - movs r0, 0x7 - movs r1, 0x6 - movs r2, 0xD - movs r3, 0xC - bl MenuZeroFillWindowRect - ldr r0, _080A6600 @ =gBGTilemapBuffers + 0x800 - movs r1, 0x6 - str r1, [sp] - movs r1, 0x7 - movs r2, 0x6 - movs r3, 0x6 - bl sub_80A36B8 - ldr r0, _080A6604 @ =gScriptItemId - ldrh r0, [r0] - ldr r1, _080A6608 @ =gStringVar2 - bl CopyItemName - ldr r4, _080A660C @ =gStringVar4 - ldr r1, _080A6610 @ =gOtherText_SoldItem - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r2, _080A6614 @ =sub_80A6574 - adds r0, r5, 0 - adds r1, r4, 0 - movs r3, 0x1 - bl DisplayCannotUseItemMessage - adds r0, r5, 0 - bl sub_80A3D5C - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A6600: .4byte gBGTilemapBuffers + 0x800 -_080A6604: .4byte gScriptItemId -_080A6608: .4byte gStringVar2 -_080A660C: .4byte gStringVar4 -_080A6610: .4byte gOtherText_SoldItem -_080A6614: .4byte sub_80A6574 - thumb_func_end sub_80A65AC - - thumb_func_start sub_80A6618 -sub_80A6618: @ 80A6618 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x7 - movs r1, 0x6 - movs r2, 0xD - movs r3, 0xC - bl MenuZeroFillWindowRect - ldr r0, _080A664C @ =gBGTilemapBuffers + 0x800 - movs r1, 0x6 - str r1, [sp] - movs r1, 0x7 - movs r2, 0x6 - movs r3, 0x6 - bl sub_80A36B8 - adds r0, r4, 0 - bl BuyMenuPrintItemQuantityAndPrice - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A664C: .4byte gBGTilemapBuffers + 0x800 - thumb_func_end sub_80A6618 - - thumb_func_start sub_80A6650 -sub_80A6650: @ 80A6650 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_80A5D78 - ldr r1, _080A666C @ =gUnknown_083C16FC - adds r0, r4, 0 - bl DoYesNoFuncWithChoice - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A666C: .4byte gUnknown_083C16FC - thumb_func_end sub_80A6650 - - thumb_func_start Task_BuyHowManyDialogueHandleInput -Task_BuyHowManyDialogueHandleInput: @ 80A6670 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - adds r4, r5, 0 - adds r0, r5, 0 - bl sub_80A5350 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A66B4 - movs r0, 0x6 - movs r1, 0xB - movs r2, 0xC - movs r3, 0xB - bl MenuZeroFillWindowRect - ldr r0, _080A66AC @ =gScriptItemId - ldrh r0, [r0] - ldr r2, _080A66B0 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r2 - ldrh r1, [r1, 0xA] - bl BuyMenuDisplayMessage - b _080A6758 - .align 2, 0 -_080A66AC: .4byte gScriptItemId -_080A66B0: .4byte gTasks -_080A66B4: - ldr r0, _080A6724 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080A6744 - movs r0, 0x5 - bl PlaySE - movs r0, 0 - movs r1, 0xA - movs r2, 0xD - movs r3, 0xD - bl MenuZeroFillWindowRect - ldr r0, _080A6728 @ =gBGTilemapBuffers + 0x800 - movs r1, 0x3 - str r1, [sp] - movs r1, 0 - movs r2, 0xA - movs r3, 0xD - bl sub_80A36B8 - ldr r4, _080A672C @ =gStringVar1 - ldr r0, _080A6730 @ =gScriptItemId - ldrh r0, [r0] - bl ItemId_GetPrice - lsls r0, 16 - lsrs r0, 17 - ldr r2, _080A6734 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r2 - movs r2, 0xA - ldrsh r1, [r1, r2] - muls r1, r0 - adds r0, r4, 0 - movs r2, 0 - movs r3, 0x6 - bl ConvertIntToDecimalStringN - ldr r4, _080A6738 @ =gStringVar4 - ldr r1, _080A673C @ =gOtherText_CanPay - adds r0, r4, 0 - bl StringExpandPlaceholders - ldr r2, _080A6740 @ =sub_80A6650 - adds r0, r5, 0 - adds r1, r4, 0 - movs r3, 0x1 - bl DisplayCannotUseItemMessage - b _080A6758 - .align 2, 0 -_080A6724: .4byte gMain -_080A6728: .4byte gBGTilemapBuffers + 0x800 -_080A672C: .4byte gStringVar1 -_080A6730: .4byte gScriptItemId -_080A6734: .4byte gTasks -_080A6738: .4byte gStringVar4 -_080A673C: .4byte gOtherText_CanPay -_080A6740: .4byte sub_80A6650 -_080A6744: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080A6758 - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl BuyMenuPrintItemQuantityAndPrice -_080A6758: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end Task_BuyHowManyDialogueHandleInput - - thumb_func_start sub_80A6760 -sub_80A6760: @ 80A6760 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _080A6794 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x1C] - movs r0, 0 - bl sub_80A7528 - adds r0, r4, 0 - bl sub_80A41D4 - bl ItemListMenu_InitMenu - adds r0, r4, 0 - bl sub_80A37C0 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A6794: .4byte gTasks - thumb_func_end sub_80A6760 - - thumb_func_start BuyMenuPrintItemQuantityAndPrice -BuyMenuPrintItemQuantityAndPrice: @ 80A6798 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080A67E8 @ =gBGTilemapBuffers + 0x800 - movs r1, 0x1F - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x1F - bl sub_80A36B8 - movs r0, 0 - movs r1, 0 - bl RemoveMoneyLabelObject - movs r0, 0 - movs r1, 0x4 - movs r2, 0xD - movs r3, 0xD - bl MenuZeroFillWindowRect - movs r0, 0 - movs r1, 0xE - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r1, _080A67EC @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080A67F0 @ =sub_80A6760 - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A67E8: .4byte gBGTilemapBuffers + 0x800 -_080A67EC: .4byte gTasks -_080A67F0: .4byte sub_80A6760 - thumb_func_end BuyMenuPrintItemQuantityAndPrice - - thumb_func_start BuyMenuDisplayMessage -BuyMenuDisplayMessage: @ 80A67F4 - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - adds r0, r4, 0 - bl ItemId_GetPrice - lsls r0, 16 - lsrs r0, 17 - muls r0, r5 - movs r1, 0x6 - movs r2, 0x6 - movs r3, 0xB - bl sub_80B7A94 - ldr r6, _080A6838 @ =gStringVar1 - adds r0, r4, 0 - bl ItemId_GetPrice - lsls r0, 16 - lsrs r0, 17 - adds r1, r0, 0 - muls r1, r5 - adds r0, r6, 0 - movs r2, 0 - movs r3, 0x6 - bl ConvertIntToDecimalStringN - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A6838: .4byte gStringVar1 - thumb_func_end BuyMenuDisplayMessage - - thumb_func_start sub_80A683C -sub_80A683C: @ 80A683C - push {lr} - sub sp, 0x4 - ldr r0, _080A6868 @ =gSaveBlock1 - movs r1, 0x92 - lsls r1, 3 - adds r0, r1 - ldr r0, [r0] - movs r1, 0 - movs r2, 0 - bl sub_80B7C14 - ldr r0, _080A686C @ =gBGTilemapBuffers + 0x800 - movs r1, 0x2 - str r1, [sp] - movs r1, 0x1 - movs r2, 0x1 - movs r3, 0xC - bl sub_80A4008 - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080A6868: .4byte gSaveBlock1 -_080A686C: .4byte gBGTilemapBuffers + 0x800 - thumb_func_end sub_80A683C - - thumb_func_start sub_80A6870 -sub_80A6870: @ 80A6870 - push {r4,r5,lr} - adds r4, r1, 0 - lsls r0, 16 - lsrs r0, 16 - lsls r4, 24 - lsrs r4, 24 - ldr r5, _080A68A0 @ =gSaveBlock1 + 0x490 - bl ItemId_GetPrice - lsls r0, 16 - lsrs r0, 17 - adds r1, r0, 0 - muls r1, r4 - adds r0, r5, 0 - bl sub_80B79B8 - ldr r0, [r5] - movs r1, 0 - movs r2, 0 - bl sub_80B7BEC - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A68A0: .4byte gSaveBlock1 + 0x490 - thumb_func_end sub_80A6870 - - thumb_func_start sub_80A68A4 -sub_80A68A4: @ 80A68A4 - push {lr} - bl sub_80A34B4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A68BE - ldr r0, _080A68C4 @ =sub_80A50C8 - movs r1, 0 - bl CreateTask - ldr r1, _080A68C8 @ =gUnknown_02038563 - strb r0, [r1] -_080A68BE: - pop {r0} - bx r0 - .align 2, 0 -_080A68C4: .4byte sub_80A50C8 -_080A68C8: .4byte gUnknown_02038563 - thumb_func_end sub_80A68A4 - - thumb_func_start sub_80A68CC -sub_80A68CC: @ 80A68CC - push {lr} - ldr r1, _080A68E4 @ =gUnknown_02038559 - movs r0, 0x3 - strb r0, [r1] - ldr r1, _080A68E8 @ =gUnknown_03000701 - movs r0, 0x4 - strb r0, [r1] - ldr r0, _080A68EC @ =sub_80A68A4 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080A68E4: .4byte gUnknown_02038559 -_080A68E8: .4byte gUnknown_03000701 -_080A68EC: .4byte sub_80A68A4 - thumb_func_end sub_80A68CC - - thumb_func_start sub_80A68F0 -sub_80A68F0: @ 80A68F0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A6910 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r3, _080A6914 @ =sub_80546B8 - lsrs r2, r3, 16 - strh r2, [r1, 0x18] - strh r3, [r1, 0x1A] - bl sub_80A5AE4 - pop {r0} - bx r0 - .align 2, 0 -_080A6910: .4byte gTasks -_080A6914: .4byte sub_80546B8 - thumb_func_end sub_80A68F0 - - thumb_func_start sub_80A6918 -sub_80A6918: @ 80A6918 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A6938 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r3, _080A693C @ =sub_80546B8 - lsrs r2, r3, 16 - strh r2, [r1, 0x18] - strh r3, [r1, 0x1A] - bl sub_80A5AAC - pop {r0} - bx r0 - .align 2, 0 -_080A6938: .4byte gTasks -_080A693C: .4byte sub_80546B8 - thumb_func_end sub_80A6918 - - thumb_func_start sub_80A6940 -sub_80A6940: @ 80A6940 - push {lr} -_080A6942: - bl sub_80A317C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A6968 - ldr r0, _080A6960 @ =sub_80A50C8 - movs r1, 0 - bl CreateTask - ldr r1, _080A6964 @ =gUnknown_02038563 - strb r0, [r1] - bl sub_80A699C - b _080A6974 - .align 2, 0 -_080A6960: .4byte sub_80A50C8 -_080A6964: .4byte gUnknown_02038563 -_080A6968: - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A6942 -_080A6974: - pop {r0} - bx r0 - thumb_func_end sub_80A6940 - - thumb_func_start sub_80A6978 -sub_80A6978: @ 80A6978 - push {lr} - ldr r1, _080A6990 @ =gUnknown_02038559 - movs r0, 0x3 - strb r0, [r1] - ldr r1, _080A6994 @ =gUnknown_03000701 - movs r0, 0x5 - strb r0, [r1] - ldr r0, _080A6998 @ =sub_80A6940 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080A6990: .4byte gUnknown_02038559 -_080A6994: .4byte gUnknown_03000701 -_080A6998: .4byte sub_80A6940 - thumb_func_end sub_80A6978 - - thumb_func_start sub_80A699C -sub_80A699C: @ 80A699C - ldr r1, _080A69AC @ =gUnknown_03000704 - ldr r0, _080A69B0 @ =gUnknown_083C16B8 - str r0, [r1] - ldr r1, _080A69B4 @ =gUnknown_02038564 - movs r0, 0x4 - strb r0, [r1] - bx lr - .align 2, 0 -_080A69AC: .4byte gUnknown_03000704 -_080A69B0: .4byte gUnknown_083C16B8 -_080A69B4: .4byte gUnknown_02038564 - thumb_func_end sub_80A699C - - thumb_func_start sub_80A69B8 -sub_80A69B8: @ 80A69B8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A69D8 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r3, _080A69DC @ =sub_804E990 - lsrs r2, r3, 16 - strh r2, [r1, 0x18] - strh r3, [r1, 0x1A] - bl sub_80A5AE4 - pop {r0} - bx r0 - .align 2, 0 -_080A69D8: .4byte gTasks -_080A69DC: .4byte sub_804E990 - thumb_func_end sub_80A69B8 - - thumb_func_start sub_80A69E0 -sub_80A69E0: @ 80A69E0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A6A00 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r3, _080A6A04 @ =sub_804E990 - lsrs r2, r3, 16 - strh r2, [r1, 0x18] - strh r3, [r1, 0x1A] - bl sub_80A5AAC - pop {r0} - bx r0 - .align 2, 0 -_080A6A00: .4byte gTasks -_080A6A04: .4byte sub_804E990 - thumb_func_end sub_80A69E0 - - thumb_func_start sub_80A6A08 -sub_80A6A08: @ 80A6A08 - push {lr} - bl sub_80A34B4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A6A22 - ldr r0, _080A6A28 @ =sub_80A50C8 - movs r1, 0 - bl CreateTask - ldr r1, _080A6A2C @ =gUnknown_02038563 - strb r0, [r1] -_080A6A22: - pop {r0} - bx r0 - .align 2, 0 -_080A6A28: .4byte sub_80A50C8 -_080A6A2C: .4byte gUnknown_02038563 - thumb_func_end sub_80A6A08 - - thumb_func_start sub_80A6A30 -sub_80A6A30: @ 80A6A30 - push {lr} - ldr r0, _080A6A44 @ =gUnknown_03000701 - movs r1, 0x6 - strb r1, [r0] - ldr r0, _080A6A48 @ =sub_80A6A08 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080A6A44: .4byte gUnknown_03000701 -_080A6A48: .4byte sub_80A6A08 - thumb_func_end sub_80A6A30 - - thumb_func_start sub_80A6A4C -sub_80A6A4C: @ 80A6A4C - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A6A74 @ =gFieldCallback - ldr r1, _080A6A78 @ =ItemStorage_ReturnToMenuAfterDeposit - str r1, [r2] - ldr r2, _080A6A7C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r3, _080A6A80 @ =c2_exit_to_overworld_2_switch - lsrs r2, r3, 16 - strh r2, [r1, 0x18] - strh r3, [r1, 0x1A] - bl sub_80A5AE4 - pop {r0} - bx r0 - .align 2, 0 -_080A6A74: .4byte gFieldCallback -_080A6A78: .4byte ItemStorage_ReturnToMenuAfterDeposit -_080A6A7C: .4byte gTasks -_080A6A80: .4byte c2_exit_to_overworld_2_switch - thumb_func_end sub_80A6A4C - - thumb_func_start sub_80A6A84 -sub_80A6A84: @ 80A6A84 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r6, _080A6AE8 @ =gTasks + 0x8 - adds r0, r4, r6 - mov r8, r0 - ldr r0, _080A6AEC @ =gBGTilemapBuffers + 0x800 - bl sub_80A4DA4 - ldr r0, _080A6AF0 @ =gScriptItemId - ldrh r0, [r0] - ldr r1, _080A6AF4 @ =gStringVar1 - bl CopyItemName - ldr r0, _080A6AF8 @ =gStringVar2 - mov r2, r8 - movs r3, 0x2 - ldrsh r1, [r2, r3] - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - movs r0, 0x7 - movs r1, 0x6 - movs r2, 0xB - movs r3, 0xD - bl MenuZeroFillWindowRect - movs r0, 0x7 - bl sub_80A7528 - adds r0, r5, 0 - bl sub_80A3D5C - subs r6, 0x8 - adds r4, r6 - ldr r0, _080A6AFC @ =sub_80A5E1C - str r0, [r4] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A6AE8: .4byte gTasks + 0x8 -_080A6AEC: .4byte gBGTilemapBuffers + 0x800 -_080A6AF0: .4byte gScriptItemId -_080A6AF4: .4byte gStringVar1 -_080A6AF8: .4byte gStringVar2 -_080A6AFC: .4byte sub_80A5E1C - thumb_func_end sub_80A6A84 - - thumb_func_start sub_80A6B00 -sub_80A6B00: @ 80A6B00 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080A6B54 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080A6B1A - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080A6B4C -_080A6B1A: - ldr r1, _080A6B58 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x1C] - ldr r1, _080A6B5C @ =gUnknown_03005D10 - ldr r0, _080A6B60 @ =gUnknown_02038559 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0] - adds r0, r4, 0 - adds r1, r2, 0 - bl sub_80A48E8 - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_80A5D38 -_080A6B4C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A6B54: .4byte gMain -_080A6B58: .4byte gTasks -_080A6B5C: .4byte gUnknown_03005D10 -_080A6B60: .4byte gUnknown_02038559 - thumb_func_end sub_80A6B00 - - thumb_func_start sub_80A6B64 -sub_80A6B64: @ 80A6B64 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r5, r0, 3 - ldr r6, _080A6B9C @ =gTasks + 0x8 - adds r7, r5, r6 - ldr r0, _080A6BA0 @ =gScriptItemId - mov r8, r0 - ldrh r0, [r0] - bl ItemId_GetImportance - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _080A6BA8 - adds r0, r6, 0 - subs r0, 0x8 - adds r0, r5, r0 - ldr r1, _080A6BA4 @ =sub_80A6B00 - str r1, [r0] - movs r0, 0x9 - bl sub_80A7528 - b _080A6BD2 - .align 2, 0 -_080A6B9C: .4byte gTasks + 0x8 -_080A6BA0: .4byte gScriptItemId -_080A6BA4: .4byte sub_80A6B00 -_080A6BA8: - mov r1, r8 - ldrh r0, [r1] - ldrh r1, [r7, 0x2] - bl AddPCItem - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A6BC2 - adds r0, r4, 0 - bl sub_80A6A84 - b _080A6BD2 -_080A6BC2: - adds r0, r6, 0 - subs r0, 0x8 - adds r0, r5, r0 - ldr r1, _080A6BDC @ =sub_80A6B00 - str r1, [r0] - movs r0, 0x8 - bl sub_80A7528 -_080A6BD2: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080A6BDC: .4byte sub_80A6B00 - thumb_func_end sub_80A6B64 - - thumb_func_start sub_80A6BE0 -sub_80A6BE0: @ 80A6BE0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - adds r0, r4, 0 - bl sub_80A5350 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080A6C58 - ldr r0, _080A6C18 @ =gMain - ldrh r1, [r0, 0x2E] - movs r2, 0x1 - ands r2, r1 - cmp r2, 0 - beq _080A6C20 - movs r0, 0x5 - bl PlaySE - ldr r0, _080A6C1C @ =gBGTilemapBuffers + 0x800 - bl sub_80A4DA4 - adds r0, r4, 0 - bl sub_80A6B64 - b _080A6C58 - .align 2, 0 -_080A6C18: .4byte gMain -_080A6C1C: .4byte gBGTilemapBuffers + 0x800 -_080A6C20: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080A6C58 - ldr r1, _080A6C60 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - strh r2, [r0, 0x1C] - ldr r1, _080A6C64 @ =gUnknown_03005D10 - ldr r0, _080A6C68 @ =gUnknown_02038559 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0] - adds r0, r5, 0 - adds r1, r2, 0 - bl sub_80A48E8 - movs r0, 0x5 - bl PlaySE - adds r0, r5, 0 - bl sub_80A5D38 -_080A6C58: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A6C60: .4byte gTasks -_080A6C64: .4byte gUnknown_03005D10 -_080A6C68: .4byte gUnknown_02038559 - thumb_func_end sub_80A6BE0 - - thumb_func_start sub_80A6C6C -sub_80A6C6C: @ 80A6C6C - push {r4-r6,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _080A6CE4 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r5, r0, r1 - ldr r2, _080A6CE8 @ =gUnknown_03005D10 - ldr r6, _080A6CEC @ =gUnknown_02038559 - movs r0, 0 - ldrsb r0, [r6, r0] - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x1] - ldrb r0, [r0] - adds r1, r0 - adds r1, 0x1 - strh r1, [r5, 0x1C] - movs r0, 0 - ldrsb r0, [r6, r0] - lsls r0, 2 - adds r0, r2 - ldrb r2, [r0] - adds r0, r4, 0 - adds r1, r2, 0 - bl sub_80A48E8 - bl sub_80A73FC - movs r0, 0x5 - bl PlaySE - bl sub_80A7590 - movs r0, 0 - ldrsb r0, [r6, r0] - cmp r0, 0x4 - beq _080A6D0A - ldr r0, _080A6CF0 @ =sub_80A6BE0 - str r0, [r5] - movs r0, 0x6 - bl sub_80A7528 - movs r0, 0 - ldrsb r0, [r6, r0] - cmp r0, 0x3 - bne _080A6CF4 - movs r0, 0x3 - str r0, [sp] - str r0, [sp, 0x4] - adds r0, r4, 0 - movs r1, 0x6 - movs r2, 0x9 - movs r3, 0x7 - bl sub_80A4DD8 - b _080A6D14 - .align 2, 0 -_080A6CE4: .4byte gTasks -_080A6CE8: .4byte gUnknown_03005D10 -_080A6CEC: .4byte gUnknown_02038559 -_080A6CF0: .4byte sub_80A6BE0 -_080A6CF4: - movs r0, 0x3 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - adds r0, r4, 0 - movs r1, 0x7 - movs r2, 0x9 - movs r3, 0x6 - bl sub_80A4DD8 - b _080A6D14 -_080A6D0A: - movs r0, 0x1 - strh r0, [r5, 0xA] - adds r0, r4, 0 - bl sub_80A6B64 -_080A6D14: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80A6C6C - - thumb_func_start sub_80A6D1C -sub_80A6D1C: @ 80A6D1C - push {r4,r5,lr} - bl HideMapNamePopup - ldr r0, _080A6D70 @ =gSaveBlock1 - ldr r1, _080A6D74 @ =0x00000496 - adds r4, r0, r1 - ldrh r0, [r4] - cmp r0, 0 - beq _080A6D84 - movs r1, 0x1 - bl CheckBagHasItem - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x1 - bne _080A6D80 - bl ScriptContext2_Enable - bl FreezeMapObjects - bl sub_80594C0 - bl sub_80597F4 - ldr r1, _080A6D78 @ =gScriptItemId - ldrh r0, [r4] - strh r0, [r1] - ldrh r0, [r4] - bl ItemId_GetFieldFunc - movs r1, 0x8 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A6D7C @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r5, [r1, 0xC] - b _080A6D8A - .align 2, 0 -_080A6D70: .4byte gSaveBlock1 -_080A6D74: .4byte 0x00000496 -_080A6D78: .4byte gScriptItemId -_080A6D7C: .4byte gTasks -_080A6D80: - movs r0, 0 - strh r0, [r4] -_080A6D84: - ldr r0, _080A6D94 @ =Event_NoRegisteredItem - bl ScriptContext1_SetupScript -_080A6D8A: - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080A6D94: .4byte Event_NoRegisteredItem - thumb_func_end sub_80A6D1C - - thumb_func_start sub_80A6D98 -sub_80A6D98: @ 80A6D98 - push {lr} -_080A6D9A: - bl sub_80A317C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A6DBC - ldr r0, _080A6DB4 @ =sub_80A50C8 - movs r1, 0 - bl CreateTask - ldr r1, _080A6DB8 @ =gUnknown_02038563 - strb r0, [r1] - b _080A6DC8 - .align 2, 0 -_080A6DB4: .4byte sub_80A50C8 -_080A6DB8: .4byte gUnknown_02038563 -_080A6DBC: - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A6D9A -_080A6DC8: - pop {r0} - bx r0 - thumb_func_end sub_80A6D98 - - thumb_func_start sub_80A6DCC -sub_80A6DCC: @ 80A6DCC - push {lr} - ldr r1, _080A6DE4 @ =gUnknown_03000700 - movs r0, 0 - strb r0, [r1] - ldr r1, _080A6DE8 @ =gUnknown_03000701 - movs r0, 0x1 - strb r0, [r1] - ldr r0, _080A6DEC @ =sub_80A6D98 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_080A6DE4: .4byte gUnknown_03000700 -_080A6DE8: .4byte gUnknown_03000701 -_080A6DEC: .4byte sub_80A6D98 - thumb_func_end sub_80A6DCC - - thumb_func_start sub_80A6DF0 -sub_80A6DF0: @ 80A6DF0 - push {r4-r6,lr} - sub sp, 0x8 - adds r5, r0, 0 - ldr r4, _080A6E4C @ =gUnknown_02038564 - ldrb r0, [r4] - subs r0, 0x1 - lsls r0, 25 - lsrs r6, r0, 24 - movs r1, 0x9 - subs r1, r6 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x7 - movs r2, 0xD - movs r3, 0xC - bl MenuDrawTextWindow - movs r2, 0xA - subs r2, r6 - lsls r2, 24 - lsrs r2, 24 - adds r0, r6, 0x2 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - adds r0, r5, 0 - movs r1, 0x8 - movs r3, 0x5 - bl sub_80A4008 - ldrb r0, [r4] - cmp r0, 0x1 - bne _080A6E58 - ldr r1, _080A6E50 @ =gUnknown_083C1640 - ldr r0, _080A6E54 @ =gUnknown_03000704 - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, 3 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x8 - movs r2, 0xA - bl MenuPrint - b _080A6E80 - .align 2, 0 -_080A6E4C: .4byte gUnknown_02038564 -_080A6E50: .4byte gUnknown_083C1640 -_080A6E54: .4byte gUnknown_03000704 -_080A6E58: - ldr r5, _080A6EAC @ =gUnknown_083C1640 - ldr r4, _080A6EB0 @ =gUnknown_03000704 - ldr r0, [r4] - ldrb r0, [r0] - lsls r0, 3 - adds r0, r5 - ldr r0, [r0] - movs r1, 0x8 - movs r2, 0x8 - bl MenuPrint - ldr r0, [r4] - ldrb r0, [r0, 0x1] - lsls r0, 3 - adds r0, r5 - ldr r0, [r0] - movs r1, 0x8 - movs r2, 0xA - bl MenuPrint -_080A6E80: - movs r2, 0xA - subs r2, r6 - lsls r2, 24 - lsrs r2, 24 - ldr r0, _080A6EB4 @ =gUnknown_02038564 - ldrb r3, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0x5 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x8 - bl InitMenu - movs r0, 0x2 - bl sub_80A7528 - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A6EAC: .4byte gUnknown_083C1640 -_080A6EB0: .4byte gUnknown_03000704 -_080A6EB4: .4byte gUnknown_02038564 - thumb_func_end sub_80A6DF0 - - thumb_func_start sub_80A6EB8 -sub_80A6EB8: @ 80A6EB8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - ldr r2, _080A6EE0 @ =gMain - ldrh r0, [r2, 0x30] - movs r1, 0xF0 - ands r1, r0 - cmp r1, 0x40 - bne _080A6EE8 - ldr r4, _080A6EE4 @ =gUnknown_03000700 - ldrb r0, [r4] - cmp r0, 0x1 - bne _080A6FC0 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - b _080A6F02 - .align 2, 0 -_080A6EE0: .4byte gMain -_080A6EE4: .4byte gUnknown_03000700 -_080A6EE8: - cmp r1, 0x80 - bne _080A6F14 - ldr r4, _080A6F0C @ =gUnknown_03000700 - ldrb r0, [r4] - adds r0, 0x1 - ldr r1, _080A6F10 @ =gUnknown_02038564 - ldrb r1, [r1] - cmp r0, r1 - bge _080A6FC0 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 -_080A6F02: - bl MoveMenuCursor - strb r0, [r4] - b _080A6FC0 - .align 2, 0 -_080A6F0C: .4byte gUnknown_03000700 -_080A6F10: .4byte gUnknown_02038564 -_080A6F14: - ldrh r1, [r2, 0x2E] - movs r2, 0x1 - ands r2, r1 - cmp r2, 0 - beq _080A6F84 - ldr r1, _080A6F68 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x1C] - ldr r1, _080A6F6C @ =gUnknown_03005D10 - ldr r0, _080A6F70 @ =gUnknown_02038559 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0] - adds r0, r4, 0 - adds r1, r2, 0 - bl sub_80A48E8 - ldr r0, _080A6F74 @ =gBGTilemapBuffers + 0x800 - bl sub_80A4DA4 - ldr r1, _080A6F78 @ =gUnknown_083C1640 - ldr r0, _080A6F7C @ =gUnknown_03000700 - ldrb r2, [r0] - ldr r0, _080A6F80 @ =gUnknown_03000704 - ldr r0, [r0] - adds r0, r2 - ldrb r0, [r0] - lsls r0, 3 - adds r1, 0x4 - adds r0, r1 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - b _080A6FC0 - .align 2, 0 -_080A6F68: .4byte gTasks -_080A6F6C: .4byte gUnknown_03005D10 -_080A6F70: .4byte gUnknown_02038559 -_080A6F74: .4byte gBGTilemapBuffers + 0x800 -_080A6F78: .4byte gUnknown_083C1640 -_080A6F7C: .4byte gUnknown_03000700 -_080A6F80: .4byte gUnknown_03000704 -_080A6F84: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080A6FC0 - ldr r1, _080A6FC8 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - strh r2, [r0, 0x1C] - ldr r1, _080A6FCC @ =gUnknown_03005D10 - ldr r0, _080A6FD0 @ =gUnknown_02038559 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0] - adds r0, r5, 0 - adds r1, r2, 0 - bl sub_80A48E8 - ldr r0, _080A6FD4 @ =gBGTilemapBuffers + 0x800 - bl sub_80A4DA4 - ldr r0, _080A6FD8 @ =gUnknown_083C1640 - ldr r1, [r0, 0x2C] - adds r0, r5, 0 - bl _call_via_r1 -_080A6FC0: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A6FC8: .4byte gTasks -_080A6FCC: .4byte gUnknown_03005D10 -_080A6FD0: .4byte gUnknown_02038559 -_080A6FD4: .4byte gBGTilemapBuffers + 0x800 -_080A6FD8: .4byte gUnknown_083C1640 - thumb_func_end sub_80A6EB8 - - thumb_func_start sub_80A6FDC -sub_80A6FDC: @ 80A6FDC - push {lr} - ldr r0, _080A6FF8 @ =gScriptItemId - ldrh r0, [r0] - bl ItemId_GetBattleUsage - lsls r0, 24 - cmp r0, 0 - beq _080A7008 - ldr r1, _080A6FFC @ =gUnknown_03000704 - ldr r0, _080A7000 @ =gUnknown_083C1708 - str r0, [r1] - ldr r1, _080A7004 @ =gUnknown_02038564 - movs r0, 0x2 - b _080A7012 - .align 2, 0 -_080A6FF8: .4byte gScriptItemId -_080A6FFC: .4byte gUnknown_03000704 -_080A7000: .4byte gUnknown_083C1708 -_080A7004: .4byte gUnknown_02038564 -_080A7008: - ldr r1, _080A7018 @ =gUnknown_03000704 - ldr r0, _080A701C @ =gUnknown_083C170A - str r0, [r1] - ldr r1, _080A7020 @ =gUnknown_02038564 - movs r0, 0x1 -_080A7012: - strb r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080A7018: .4byte gUnknown_03000704 -_080A701C: .4byte gUnknown_083C170A -_080A7020: .4byte gUnknown_02038564 - thumb_func_end sub_80A6FDC - - thumb_func_start sub_80A7024 -sub_80A7024: @ 80A7024 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r1, _080A707C @ =gUnknown_03000700 - movs r0, 0 - strb r0, [r1] - bl sub_80A6FDC - ldr r0, _080A7080 @ =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - ldr r3, _080A7084 @ =gUnknown_03005D10 - ldr r2, _080A7088 @ =gUnknown_02038559 - movs r0, 0 - ldrsb r0, [r2, r0] - lsls r0, 2 - adds r0, r3 - ldrb r1, [r0, 0x1] - ldrb r0, [r0] - adds r1, r0 - adds r1, 0x1 - strh r1, [r4, 0x1C] - movs r0, 0 - ldrsb r0, [r2, r0] - lsls r0, 2 - adds r0, r3 - ldrb r2, [r0] - adds r0, r5, 0 - adds r1, r2, 0 - bl sub_80A48E8 - bl sub_80A73FC - ldr r0, _080A708C @ =gBGTilemapBuffers + 0x800 - bl sub_80A6DF0 - ldr r0, _080A7090 @ =sub_80A6EB8 - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A707C: .4byte gUnknown_03000700 -_080A7080: .4byte gTasks -_080A7084: .4byte gUnknown_03005D10 -_080A7088: .4byte gUnknown_02038559 -_080A708C: .4byte gBGTilemapBuffers + 0x800 -_080A7090: .4byte sub_80A6EB8 - thumb_func_end sub_80A7024 - - thumb_func_start sub_80A7094 -sub_80A7094: @ 80A7094 - push {lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080A70CC @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, _080A70D0 @ =sub_802E424 - lsrs r0, r2, 16 - movs r3, 0 - strh r0, [r1, 0x18] - strh r2, [r1, 0x1A] - ldr r0, _080A70D4 @ =HandleItemMenuPaletteFade - str r0, [r1] - movs r0, 0x1 - negs r0, r0 - str r3, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_080A70CC: .4byte gTasks -_080A70D0: .4byte sub_802E424 -_080A70D4: .4byte HandleItemMenuPaletteFade - thumb_func_end sub_80A7094 - - thumb_func_start sub_80A70D8 -sub_80A70D8: @ 80A70D8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl sub_80A7094 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A70D8 - - thumb_func_start ItemMenu_UseInBattle -ItemMenu_UseInBattle: @ 80A70F4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, _080A7120 @ =gScriptItemId - ldrh r0, [r4] - bl ItemId_GetBattleFunc - cmp r0, 0 - beq _080A711A - movs r0, 0x5 - bl PlaySE - ldrh r0, [r4] - bl ItemId_GetBattleFunc - adds r1, r0, 0 - adds r0, r5, 0 - bl _call_via_r1 -_080A711A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A7120: .4byte gScriptItemId - thumb_func_end ItemMenu_UseInBattle - - thumb_func_start sub_80A7124 -sub_80A7124: @ 80A7124 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x5 - bl PlaySE - movs r0, 0 - bl sub_80A7528 - adds r0, r4, 0 - bl sub_80A41D4 - bl ItemListMenu_InitMenu - adds r0, r4, 0 - bl sub_80A37C0 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A7124 - - thumb_func_start sub_80A7150 -sub_80A7150: @ 80A7150 - push {r4,r5,lr} - ldr r4, _080A7158 @ =gUnknown_02038563 - ldr r5, _080A715C @ =gTasks - b _080A716C - .align 2, 0 -_080A7158: .4byte gUnknown_02038563 -_080A715C: .4byte gTasks -_080A7160: - bl sub_80F9344 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080A7190 -_080A716C: - bl sub_80A317C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080A7160 - ldr r0, _080A7198 @ =sub_80A7230 - movs r1, 0 - bl CreateTask - strb r0, [r4] - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r5 - movs r1, 0 - strh r1, [r0, 0x26] -_080A7190: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A7198: .4byte sub_80A7230 - thumb_func_end sub_80A7150 - - thumb_func_start PrepareBagForWallyTutorial -PrepareBagForWallyTutorial: @ 80A719C - push {r4,r5,lr} - ldr r0, _080A7214 @ =gUnknown_03000700 - movs r1, 0 - strb r1, [r0] - ldr r0, _080A7218 @ =gUnknown_02038559 - strb r1, [r0] - movs r1, 0 - ldr r4, _080A721C @ =0x0201e000 - ldr r5, _080A7220 @ =gSaveBlock1 + 0x560 - ldr r3, _080A7224 @ =gUnknown_03005D10 - movs r2, 0 -_080A71B2: - lsls r0, r1, 2 - adds r0, r3 - strb r2, [r0] - strb r2, [r0, 0x1] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x4 - bls _080A71B2 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x50 - bl memcpy - movs r1, 0x80 - lsls r1, 5 - adds r0, r4, r1 - adds r4, r5, 0 - adds r4, 0xA0 - adds r1, r4, 0 - movs r2, 0x40 - bl memcpy - adds r0, r5, 0 - movs r1, 0x14 - bl ClearItemSlots - adds r0, r4, 0 - movs r1, 0x10 - bl ClearItemSlots - movs r0, 0xD - movs r1, 0x1 - bl AddBagItem - movs r0, 0x4 - movs r1, 0x1 - bl AddBagItem - ldr r1, _080A7228 @ =gUnknown_03000701 - movs r0, 0x7 - strb r0, [r1] - ldr r0, _080A722C @ =sub_80A7150 - bl SetMainCallback2 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A7214: .4byte gUnknown_03000700 -_080A7218: .4byte gUnknown_02038559 -_080A721C: .4byte 0x0201e000 -_080A7220: .4byte gSaveBlock1 + 0x560 -_080A7224: .4byte gUnknown_03005D10 -_080A7228: .4byte gUnknown_03000701 -_080A722C: .4byte sub_80A7150 - thumb_func_end PrepareBagForWallyTutorial - - thumb_func_start sub_80A7230 -sub_80A7230: @ 80A7230 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r6, r0, 3 - ldr r0, _080A725C @ =gTasks + 0x8 - mov r8, r0 - adds r7, r6, r0 - movs r0, 0x1E - ldrsh r1, [r7, r0] - cmp r1, 0xCC - beq _080A727A - cmp r1, 0xCC - bgt _080A7260 - cmp r1, 0x66 - beq _080A726A - b _080A7358 - .align 2, 0 -_080A725C: .4byte gTasks + 0x8 -_080A7260: - movs r0, 0x99 - lsls r0, 1 - cmp r1, r0 - beq _080A72F4 - b _080A7358 -_080A726A: - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - movs r1, 0x2 - bl sub_80A4E8C - b _080A7358 -_080A727A: - movs r0, 0x5 - bl PlaySE - movs r0, 0x2 - bl sub_80F98A4 - movs r0, 0x3 - bl sub_80F98A4 - ldr r1, _080A72D8 @ =gScriptItemId - movs r0, 0x4 - strh r0, [r1] - ldr r1, _080A72DC @ =gUnknown_03000704 - ldr r0, _080A72E0 @ =gUnknown_083C1708 - str r0, [r1] - ldr r1, _080A72E4 @ =gUnknown_02038564 - movs r0, 0x2 - strb r0, [r1] - mov r0, r8 - adds r4, r0, r6 - ldr r3, _080A72E8 @ =gUnknown_03005D10 - ldr r2, _080A72EC @ =gUnknown_02038559 - movs r0, 0 - ldrsb r0, [r2, r0] - lsls r0, 2 - adds r0, r3 - ldrb r1, [r0, 0x1] - ldrb r0, [r0] - adds r1, r0 - adds r1, 0x1 - strh r1, [r4, 0x14] - movs r0, 0 - ldrsb r0, [r2, r0] - lsls r0, 2 - adds r0, r3 - ldrb r2, [r0] - adds r0, r5, 0 - adds r1, r2, 0 - bl sub_80A48E8 - bl sub_80A73FC - ldr r0, _080A72F0 @ =gBGTilemapBuffers + 0x800 - bl sub_80A6DF0 - b _080A7358 - .align 2, 0 -_080A72D8: .4byte gScriptItemId -_080A72DC: .4byte gUnknown_03000704 -_080A72E0: .4byte gUnknown_083C1708 -_080A72E4: .4byte gUnknown_02038564 -_080A72E8: .4byte gUnknown_03005D10 -_080A72EC: .4byte gUnknown_02038559 -_080A72F0: .4byte gBGTilemapBuffers + 0x800 -_080A72F4: - movs r0, 0x5 - bl PlaySE - ldr r0, _080A7344 @ =gBGTilemapBuffers + 0x800 - bl sub_80A4DA4 - ldr r4, _080A7348 @ =gSaveBlock1 + 0x560 - ldr r5, _080A734C @ =0x0201e000 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x50 - bl memcpy - adds r4, 0xA0 - movs r0, 0x80 - lsls r0, 5 - adds r5, r0 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x40 - bl memcpy - ldr r1, _080A7350 @ =sub_802E424 - lsrs r0, r1, 16 - strh r0, [r7, 0x10] - strh r1, [r7, 0x12] - mov r0, r8 - subs r0, 0x8 - adds r0, r6, r0 - ldr r1, _080A7354 @ =HandleItemMenuPaletteFade - str r1, [r0] - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _080A735E - .align 2, 0 -_080A7344: .4byte gBGTilemapBuffers + 0x800 -_080A7348: .4byte gSaveBlock1 + 0x560 -_080A734C: .4byte 0x0201e000 -_080A7350: .4byte sub_802E424 -_080A7354: .4byte HandleItemMenuPaletteFade -_080A7358: - ldrh r0, [r7, 0x1E] - adds r0, 0x1 - strh r0, [r7, 0x1E] -_080A735E: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A7230 - - thumb_func_start ItemListMenu_InitMenu -ItemListMenu_InitMenu: @ 80A736C - push {lr} - sub sp, 0x8 - ldr r1, _080A73B0 @ =gUnknown_03005D10 - ldr r0, _080A73B4 @ =gUnknown_02038559 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r1 - ldrb r3, [r0, 0x3] - adds r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - ldrb r0, [r0] - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - movs r1, 0xE - movs r2, 0x2 - bl InitMenu - ldr r1, _080A73B8 @ =0x0000ffff - ldr r3, _080A73BC @ =0x00002d9f - movs r0, 0xF - str r0, [sp] - movs r0, 0x10 - movs r2, 0xC - bl CreateBlendedOutlineCursor - bl sub_80A73C0 - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_080A73B0: .4byte gUnknown_03005D10 -_080A73B4: .4byte gUnknown_02038559 -_080A73B8: .4byte 0x0000ffff -_080A73BC: .4byte 0x00002d9f - thumb_func_end ItemListMenu_InitMenu - - thumb_func_start sub_80A73C0 -sub_80A73C0: @ 80A73C0 - push {lr} - ldr r1, _080A73E8 @ =gUnknown_03005D10 - ldr r0, _080A73EC @ =gUnknown_02038559 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - lsls r1, 28 - movs r0, 0x80 - lsls r0, 21 - adds r1, r0 - lsrs r1, 24 - movs r0, 0x70 - bl sub_814AD7C - pop {r0} - bx r0 - .align 2, 0 -_080A73E8: .4byte gUnknown_03005D10 -_080A73EC: .4byte gUnknown_02038559 - thumb_func_end sub_80A73C0 - - thumb_func_start sub_80A73F0 -sub_80A73F0: @ 80A73F0 - push {lr} - bl sub_814ADC8 - pop {r0} - bx r0 - thumb_func_end sub_80A73F0 - - thumb_func_start sub_80A73FC -sub_80A73FC: @ 80A73FC - push {lr} - bl HandleDestroyMenuCursors - bl sub_814AD44 - pop {r0} - bx r0 - thumb_func_end sub_80A73FC - - thumb_func_start sub_80A740C -sub_80A740C: @ 80A740C - push {lr} - bl sub_80A75E4 - bl sub_80A7768 - bl sub_80A7420 - pop {r0} - bx r0 - thumb_func_end sub_80A740C - - thumb_func_start sub_80A7420 -sub_80A7420: @ 80A7420 - push {r4,lr} - ldr r4, _080A7438 @ =gUnknown_0203853C - ldrb r0, [r4] - cmp r0, 0x2 - beq _080A743C - cmp r0, 0x3 - beq _080A7430 - b _080A7512 -_080A7430: - movs r0, 0x2 - strb r0, [r4] - b _080A7512 - .align 2, 0 -_080A7438: .4byte gUnknown_0203853C -_080A743C: - ldrb r0, [r4, 0x2] - cmp r0, 0x9 - bhi _080A74FC - lsls r0, 2 - ldr r1, _080A744C @ =_080A7450 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080A744C: .4byte _080A7450 - .align 2, 0 -_080A7450: - .4byte _080A7478 - .4byte _080A74AC - .4byte _080A74B4 - .4byte _080A74BC - .4byte _080A74C4 - .4byte _080A74CC - .4byte _080A74D4 - .4byte _080A74DC - .4byte _080A74E4 - .4byte _080A74F4 -_080A7478: - ldr r1, _080A74A0 @ =gUnknown_03005D10 - ldr r0, _080A74A4 @ =gUnknown_02038559 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x1] - ldrb r0, [r0] - adds r1, r0 - ldr r0, _080A74A8 @ =gUnknown_03005D24 - ldr r0, [r0] - lsls r1, 2 - adds r1, r0 - movs r2, 0 - ldrsh r0, [r1, r2] - ldrb r1, [r4, 0x1] - bl ItemListMenu_ChangeDescription - b _080A74FC - .align 2, 0 -_080A74A0: .4byte gUnknown_03005D10 -_080A74A4: .4byte gUnknown_02038559 -_080A74A8: .4byte gUnknown_03005D24 -_080A74AC: - ldr r0, _080A74B0 @ =gOtherText_SwitchWhichItem - b _080A74E6 - .align 2, 0 -_080A74B0: .4byte gOtherText_SwitchWhichItem -_080A74B4: - ldr r0, _080A74B8 @ =gOtherText_WhatWillYouDo2 - b _080A74E6 - .align 2, 0 -_080A74B8: .4byte gOtherText_WhatWillYouDo2 -_080A74BC: - ldr r0, _080A74C0 @ =gOtherText_HowManyToToss - b _080A74E6 - .align 2, 0 -_080A74C0: .4byte gOtherText_HowManyToToss -_080A74C4: - ldr r0, _080A74C8 @ =gOtherText_ThrewAwayItem - b _080A74E6 - .align 2, 0 -_080A74C8: .4byte gOtherText_ThrewAwayItem -_080A74CC: - ldr r0, _080A74D0 @ =gOtherText_OkayToThrowAwayPrompt - b _080A74E6 - .align 2, 0 -_080A74D0: .4byte gOtherText_OkayToThrowAwayPrompt -_080A74D4: - ldr r0, _080A74D8 @ =gOtherText_HowManyToDeposit - b _080A74E6 - .align 2, 0 -_080A74D8: .4byte gOtherText_HowManyToDeposit -_080A74DC: - ldr r0, _080A74E0 @ =gOtherText_DepositedItems - b _080A74E6 - .align 2, 0 -_080A74E0: .4byte gOtherText_DepositedItems -_080A74E4: - ldr r0, _080A74F0 @ =gOtherText_NoRoomForItems -_080A74E6: - ldrb r1, [r4, 0x1] - bl sub_80A4A98 - b _080A74FC - .align 2, 0 -_080A74F0: .4byte gOtherText_NoRoomForItems -_080A74F4: - ldr r0, _080A7518 @ =gOtherText_CantStoreSomeoneItem - ldrb r1, [r4, 0x1] - bl sub_80A4A98 -_080A74FC: - ldrb r0, [r4, 0x1] - adds r0, 0x1 - strb r0, [r4, 0x1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bne _080A7512 - movs r0, 0 - strb r0, [r4] - bl sub_80A7918 -_080A7512: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A7518: .4byte gOtherText_CantStoreSomeoneItem - thumb_func_end sub_80A7420 - - thumb_func_start sub_80A751C -sub_80A751C: @ 80A751C - ldr r1, _080A7524 @ =gUnknown_0203853C - movs r0, 0 - strb r0, [r1] - bx lr - .align 2, 0 -_080A7524: .4byte gUnknown_0203853C - thumb_func_end sub_80A751C - - thumb_func_start sub_80A7528 -sub_80A7528: @ 80A7528 - push {r4,lr} - ldr r4, _080A7544 @ =gUnknown_0203853C - movs r1, 0 - strb r1, [r4, 0x1] - strb r0, [r4, 0x2] - bl sub_80A78F4 - cmp r0, 0x1 - beq _080A755E - cmp r0, 0x1 - bgt _080A7548 - cmp r0, 0 - beq _080A754E - b _080A7566 - .align 2, 0 -_080A7544: .4byte gUnknown_0203853C -_080A7548: - cmp r0, 0x2 - beq _080A7562 - b _080A7566 -_080A754E: - movs r0, 0x2 - strb r0, [r4] -_080A7552: - bl sub_80A7420 - ldrb r0, [r4] - cmp r0, 0 - bne _080A7552 - b _080A7566 -_080A755E: - movs r0, 0x3 - b _080A7564 -_080A7562: - movs r0, 0x1 -_080A7564: - strb r0, [r4] -_080A7566: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A7528 - - thumb_func_start sub_80A756C -sub_80A756C: @ 80A756C - push {r4,lr} - ldr r4, _080A758C @ =gUnknown_0203853C - ldrb r0, [r4] - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _080A7580 - bl sub_80A7918 -_080A7580: - movs r0, 0 - strb r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A758C: .4byte gUnknown_0203853C - thumb_func_end sub_80A756C - - thumb_func_start sub_80A7590 -sub_80A7590: @ 80A7590 - push {lr} - movs r0, 0 - movs r1, 0xD - movs r2, 0xD - movs r3, 0x14 - bl MenuZeroFillWindowRect - bl sub_80A756C - pop {r0} - bx r0 - thumb_func_end sub_80A7590 - - thumb_func_start sub_80A75A8 -sub_80A75A8: @ 80A75A8 - push {lr} - ldr r1, _080A75C0 @ =gUnknown_0203853C - ldrb r0, [r1] - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _080A75BC - movs r0, 0x1 - strb r0, [r1] -_080A75BC: - pop {r0} - bx r0 - .align 2, 0 -_080A75C0: .4byte gUnknown_0203853C - thumb_func_end sub_80A75A8 - - thumb_func_start sub_80A75C4 -sub_80A75C4: @ 80A75C4 - push {lr} - ldr r1, _080A75D8 @ =gUnknown_0203853C - ldrb r0, [r1] - cmp r0, 0 - beq _080A75DC - cmp r0, 0x1 - bne _080A75E0 - movs r0, 0x3 - strb r0, [r1] - b _080A75E0 - .align 2, 0 -_080A75D8: .4byte gUnknown_0203853C -_080A75DC: - bl sub_80A7918 -_080A75E0: - pop {r0} - bx r0 - thumb_func_end sub_80A75C4 - - thumb_func_start sub_80A75E4 -sub_80A75E4: @ 80A75E4 - push {r4,r5,lr} - ldr r4, _080A7628 @ =gUnknown_02038540 - ldrb r0, [r4] - cmp r0, 0x1 - bne _080A7622 - bl sub_80A7988 - adds r5, r0, 0 - cmp r5, 0 - bne _080A7622 - ldr r0, _080A762C @ =gUnknown_02038563 - ldrb r0, [r0] - ldrb r2, [r4, 0x1] - adds r1, r2, 0 - movs r3, 0x1 - bl sub_80A47E8 - ldrb r0, [r4, 0x1] - adds r0, 0x1 - strb r0, [r4, 0x1] - ldrb r0, [r4, 0x2] - movs r1, 0x7 - cmp r0, 0 - beq _080A7616 - movs r1, 0x5 -_080A7616: - ldrb r0, [r4, 0x1] - cmp r1, r0 - bge _080A7622 - strb r5, [r4] - bl sub_80A78E8 -_080A7622: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A7628: .4byte gUnknown_02038540 -_080A762C: .4byte gUnknown_02038563 - thumb_func_end sub_80A75E4 - - thumb_func_start sub_80A7630 -sub_80A7630: @ 80A7630 - ldr r1, _080A7638 @ =gUnknown_02038540 - movs r0, 0 - strb r0, [r1] - bx lr - .align 2, 0 -_080A7638: .4byte gUnknown_02038540 - thumb_func_end sub_80A7630 - - thumb_func_start sub_80A763C -sub_80A763C: @ 80A763C - push {r4,lr} - ldr r4, _080A7650 @ =gUnknown_02038540 - bl sub_80A78C4 - adds r1, r0, 0 - cmp r1, 0 - beq _080A7654 - cmp r1, 0x1 - beq _080A7668 - b _080A7670 - .align 2, 0 -_080A7650: .4byte gUnknown_02038540 -_080A7654: - ldr r0, _080A7664 @ =gUnknown_02038563 - ldrb r0, [r0] - movs r1, 0 - movs r2, 0x7 - bl sub_80A48E8 - b _080A7670 - .align 2, 0 -_080A7664: .4byte gUnknown_02038563 -_080A7668: - movs r0, 0 - strb r1, [r4] - strb r0, [r4, 0x1] - strb r0, [r4, 0x2] -_080A7670: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A763C - - thumb_func_start sub_80A7678 -sub_80A7678: @ 80A7678 - push {r4,lr} - ldr r4, _080A7690 @ =gUnknown_02038540 - ldrb r0, [r4] - cmp r0, 0x1 - bne _080A7686 - bl sub_80A78E8 -_080A7686: - movs r0, 0 - strb r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A7690: .4byte gUnknown_02038540 - thumb_func_end sub_80A7678 - - thumb_func_start sub_80A7694 -sub_80A7694: @ 80A7694 - ldr r1, _080A769C @ =gUnknown_02038540 - movs r0, 0x1 - strb r0, [r1, 0x2] - bx lr - .align 2, 0 -_080A769C: .4byte gUnknown_02038540 - thumb_func_end sub_80A7694 - - thumb_func_start sub_80A76A0 -sub_80A76A0: @ 80A76A0 - push {lr} - movs r0, 0xE - movs r1, 0x2 - movs r2, 0x1D - movs r3, 0x12 - bl MenuZeroFillWindowRect - bl sub_80A7678 - pop {r0} - bx r0 - thumb_func_end sub_80A76A0 - - thumb_func_start sub_80A76B8 -sub_80A76B8: @ 80A76B8 - push {lr} - ldr r0, _080A76CC @ =gUnknown_02038540 - movs r1, 0 - ldrb r0, [r0] - cmp r0, 0 - bne _080A76C6 - movs r1, 0x1 -_080A76C6: - adds r0, r1, 0 - pop {r1} - bx r1 - .align 2, 0 -_080A76CC: .4byte gUnknown_02038540 - thumb_func_end sub_80A76B8 - - thumb_func_start sub_80A76D0 -sub_80A76D0: @ 80A76D0 - push {lr} - ldr r0, _080A76E4 @ =gUnknown_02038540 - movs r1, 0 - ldrb r0, [r0, 0x1] - cmp r0, 0x5 - bls _080A76DE - movs r1, 0x1 -_080A76DE: - adds r0, r1, 0 - pop {r1} - bx r1 - .align 2, 0 -_080A76E4: .4byte gUnknown_02038540 - thumb_func_end sub_80A76D0 - - thumb_func_start sub_80A76E8 -sub_80A76E8: @ 80A76E8 - push {r4,lr} - ldr r4, _080A7708 @ =gUnknown_02038544 - ldrb r0, [r4] - cmp r0, 0x1 - bne _080A7702 - ldrb r0, [r4, 0x1] - ldr r1, [r4, 0x4] - ldr r2, [r4, 0x8] - ldrh r3, [r4, 0x2] - bl DisplayItemMessageOnField - movs r0, 0 - strb r0, [r4] -_080A7702: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A7708: .4byte gUnknown_02038544 - thumb_func_end sub_80A76E8 - - thumb_func_start sub_80A770C -sub_80A770C: @ 80A770C - ldr r1, _080A7714 @ =gUnknown_02038544 - movs r0, 0 - strb r0, [r1] - bx lr - .align 2, 0 -_080A7714: .4byte gUnknown_02038544 - thumb_func_end sub_80A770C - - thumb_func_start DisplayCannotUseItemMessage -DisplayCannotUseItemMessage: @ 80A7718 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - adds r7, r1, 0 - mov r8, r2 - adds r6, r3, 0 - ldr r4, _080A7738 @ =gUnknown_02038544 - bl sub_80A7924 - cmp r0, 0 - beq _080A773C - cmp r0, 0x2 - beq _080A774E - b _080A775C - .align 2, 0 -_080A7738: .4byte gUnknown_02038544 -_080A773C: - lsls r0, r5, 24 - lsrs r0, 24 - lsls r3, r6, 16 - lsrs r3, 16 - adds r1, r7, 0 - mov r2, r8 - bl DisplayItemMessageOnField - b _080A775C -_080A774E: - movs r0, 0x1 - strb r0, [r4] - strb r5, [r4, 0x1] - str r7, [r4, 0x4] - mov r0, r8 - str r0, [r4, 0x8] - strh r6, [r4, 0x2] -_080A775C: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end DisplayCannotUseItemMessage - - thumb_func_start sub_80A7768 -sub_80A7768: @ 80A7768 - push {r4,lr} - ldr r4, _080A77A8 @ =gUnknown_02038550 - ldrb r0, [r4] - cmp r0, 0x2 - bne _080A7814 - ldrb r1, [r4, 0x1] - cmp r1, 0 - beq _080A780E - ldrb r0, [r4, 0x2] - cmp r0, 0x1 - beq _080A77B4 - ldr r2, _080A77AC @ =gUnknown_083C1640 - ldr r0, _080A77B0 @ =gUnknown_03000704 - ldr r0, [r0] - adds r0, r1, r0 - subs r0, 0x1 - ldrb r0, [r0] - lsls r0, 3 - adds r0, r2 - ldr r0, [r0] - subs r1, 0x1 - lsls r1, 1 - adds r1, 0x1 - ldrb r2, [r4, 0x3] - adds r2, r1 - lsls r2, 24 - lsrs r2, 24 - movs r1, 0x7 - bl MenuPrint - b _080A77FC - .align 2, 0 -_080A77A8: .4byte gUnknown_02038550 -_080A77AC: .4byte gUnknown_083C1640 -_080A77B0: .4byte gUnknown_03000704 -_080A77B4: - cmp r1, 0x1 - bne _080A77C8 - ldr r0, _080A77C4 @ =gScriptItemId - ldrh r0, [r0] - bl sub_80A4B90 - adds r3, r0, 0 - b _080A77DC - .align 2, 0 -_080A77C4: .4byte gScriptItemId -_080A77C8: - ldr r2, _080A781C @ =gUnknown_083C1640 - ldrb r0, [r4, 0x1] - ldr r1, _080A7820 @ =gUnknown_03000704 - ldr r1, [r1] - adds r0, r1 - subs r0, 0x1 - ldrb r0, [r0] - lsls r0, 3 - adds r0, r2 - ldr r3, [r0] -_080A77DC: - ldrb r2, [r4, 0x1] - subs r2, 0x1 - asrs r0, r2, 1 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 1 - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x1 - ands r2, r0 - lsls r2, 1 - adds r2, 0x8 - adds r0, r3, 0 - bl MenuPrint -_080A77FC: - ldr r1, _080A7824 @ =gUnknown_02038564 - ldrb r0, [r4, 0x1] - ldrb r1, [r1] - cmp r0, r1 - bne _080A780E - movs r0, 0 - strb r0, [r4] - bl sub_80A7970 -_080A780E: - ldrb r0, [r4, 0x1] - adds r0, 0x1 - strb r0, [r4, 0x1] -_080A7814: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A781C: .4byte gUnknown_083C1640 -_080A7820: .4byte gUnknown_03000704 -_080A7824: .4byte gUnknown_02038564 - thumb_func_end sub_80A7768 - - thumb_func_start sub_80A7828 -sub_80A7828: @ 80A7828 - ldr r1, _080A7830 @ =gUnknown_02038550 - movs r0, 0 - strb r0, [r1] - bx lr - .align 2, 0 -_080A7830: .4byte gUnknown_02038550 - thumb_func_end sub_80A7828 - - thumb_func_start sub_80A7834 -sub_80A7834: @ 80A7834 - push {r4-r6,lr} - adds r5, r0, 0 - adds r6, r1, 0 - ldr r4, _080A784C @ =gUnknown_02038550 - bl sub_80A7958 - cmp r0, 0x1 - beq _080A7850 - cmp r0, 0x2 - beq _080A7856 - b _080A7862 - .align 2, 0 -_080A784C: .4byte gUnknown_02038550 -_080A7850: - movs r1, 0 - movs r0, 0x2 - b _080A785A -_080A7856: - movs r1, 0 - movs r0, 0x1 -_080A785A: - strb r0, [r4] - strb r1, [r4, 0x1] - strb r5, [r4, 0x2] - strb r6, [r4, 0x3] -_080A7862: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80A7834 - - thumb_func_start sub_80A7868 -sub_80A7868: @ 80A7868 - push {lr} - ldr r1, _080A787C @ =gUnknown_02038550 - ldrb r0, [r1] - cmp r0, 0x2 - bne _080A7876 - movs r0, 0x1 - strb r0, [r1] -_080A7876: - pop {r0} - bx r0 - .align 2, 0 -_080A787C: .4byte gUnknown_02038550 - thumb_func_end sub_80A7868 - - thumb_func_start sub_80A7880 -sub_80A7880: @ 80A7880 - push {lr} - ldr r1, _080A7894 @ =gUnknown_02038550 - ldrb r0, [r1] - cmp r0, 0 - beq _080A7898 - cmp r0, 0x1 - bne _080A789C - movs r0, 0x2 - strb r0, [r1] - b _080A789C - .align 2, 0 -_080A7894: .4byte gUnknown_02038550 -_080A7898: - bl sub_80A7970 -_080A789C: - pop {r0} - bx r0 - thumb_func_end sub_80A7880 - - thumb_func_start sub_80A78A0 -sub_80A78A0: @ 80A78A0 - push {lr} - ldr r0, _080A78B4 @ =gUnknown_02038550 - movs r1, 0 - ldrb r0, [r0] - cmp r0, 0 - bne _080A78AE - movs r1, 0x1 -_080A78AE: - adds r0, r1, 0 - pop {r1} - bx r1 - .align 2, 0 -_080A78B4: .4byte gUnknown_02038550 - thumb_func_end sub_80A78A0 - - thumb_func_start sub_80A78B8 -sub_80A78B8: @ 80A78B8 - ldr r1, _080A78C0 @ =gUnknown_02038554 - movs r0, 0 - strb r0, [r1] - bx lr - .align 2, 0 -_080A78C0: .4byte gUnknown_02038554 - thumb_func_end sub_80A78B8 - - thumb_func_start sub_80A78C4 -sub_80A78C4: @ 80A78C4 - push {lr} - ldr r0, _080A78DC @ =gLinkOpen - ldrb r0, [r0] - cmp r0, 0x1 - bne _080A78E0 - bl sub_80A7868 - bl sub_80A75A8 - movs r0, 0x1 - b _080A78E2 - .align 2, 0 -_080A78DC: .4byte gLinkOpen -_080A78E0: - movs r0, 0 -_080A78E2: - pop {r1} - bx r1 - thumb_func_end sub_80A78C4 - - thumb_func_start sub_80A78E8 -sub_80A78E8: @ 80A78E8 - push {lr} - bl sub_80A7880 - pop {r0} - bx r0 - thumb_func_end sub_80A78E8 - - thumb_func_start sub_80A78F4 -sub_80A78F4: @ 80A78F4 - push {lr} - ldr r0, _080A790C @ =gLinkOpen - ldrb r0, [r0] - cmp r0, 0x1 - bne _080A7910 - bl sub_80A76B8 - movs r1, 0x2 - cmp r0, 0 - beq _080A7912 - movs r1, 0x1 - b _080A7912 - .align 2, 0 -_080A790C: .4byte gLinkOpen -_080A7910: - movs r1, 0 -_080A7912: - adds r0, r1, 0 - pop {r1} - bx r1 - thumb_func_end sub_80A78F4 - - thumb_func_start sub_80A7918 -sub_80A7918: @ 80A7918 - push {lr} - bl sub_80A76E8 - pop {r0} - bx r0 - thumb_func_end sub_80A7918 - - thumb_func_start sub_80A7924 -sub_80A7924: @ 80A7924 - push {lr} - ldr r0, _080A7948 @ =gLinkOpen - ldrb r0, [r0] - cmp r0, 0x1 - bne _080A7942 - bl sub_80A76B8 - cmp r0, 0 - bne _080A7942 - bl sub_80A76D0 - cmp r0, 0 - beq _080A794C - bl sub_80A7678 -_080A7942: - movs r0, 0 - b _080A7952 - .align 2, 0 -_080A7948: .4byte gLinkOpen -_080A794C: - bl sub_80A7694 - movs r0, 0x2 -_080A7952: - pop {r1} - bx r1 - thumb_func_end sub_80A7924 - - thumb_func_start sub_80A7958 -sub_80A7958: @ 80A7958 - push {lr} - bl sub_80A76B8 - cmp r0, 0 - beq _080A796A - bl sub_80A75A8 - movs r0, 0x1 - b _080A796C -_080A796A: - movs r0, 0x2 -_080A796C: - pop {r1} - bx r1 - thumb_func_end sub_80A7958 - - thumb_func_start sub_80A7970 -sub_80A7970: @ 80A7970 - push {lr} - bl sub_80A75C4 - pop {r0} - bx r0 - thumb_func_end sub_80A7970 - - thumb_func_start sub_80A797C -sub_80A797C: @ 80A797C - ldr r1, _080A7984 @ =gUnknown_02038554 - movs r0, 0x1 - strb r0, [r1] - bx lr - .align 2, 0 -_080A7984: .4byte gUnknown_02038554 - thumb_func_end sub_80A797C - - thumb_func_start sub_80A7988 -sub_80A7988: @ 80A7988 - ldr r1, _080A7994 @ =gUnknown_02038554 - ldrb r0, [r1] - movs r2, 0 - strb r2, [r1] - bx lr - .align 2, 0 -_080A7994: .4byte gUnknown_02038554 - thumb_func_end sub_80A7988 - - thumb_func_start sub_80A7998 -sub_80A7998: @ 80A7998 - adds r2, r0, 0 - adds r2, 0x2A - movs r1, 0 - strb r1, [r2] - strh r1, [r0, 0x2E] - strh r1, [r0, 0x30] - strh r1, [r0, 0x32] - strh r1, [r0, 0x34] - strh r1, [r0, 0x36] - ldr r1, _080A79B0 @ =sub_80A79B4 - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080A79B0: .4byte sub_80A79B4 - thumb_func_end sub_80A7998 - - thumb_func_start sub_80A79B4 -sub_80A79B4: @ 80A79B4 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _080A79E4 @ =gUnknown_0203855B - movs r1, 0 - ldrsb r1, [r0, r1] - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _080A79CC - adds r0, r4, 0 - bl sub_80A79EC -_080A79CC: - ldr r0, _080A79E8 @ =gUnknown_0203855C - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _080A79DE - adds r0, r4, 0 - bl sub_80A7A94 -_080A79DE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A79E4: .4byte gUnknown_0203855B -_080A79E8: .4byte gUnknown_0203855C - thumb_func_end sub_80A79B4 - - thumb_func_start sub_80A79EC -sub_80A79EC: @ 80A79EC - push {r4-r6,lr} - adds r2, r0, 0 - movs r0, 0x34 - ldrsh r4, [r2, r0] - cmp r4, 0 - beq _080A79FE - cmp r4, 0x1 - beq _080A7A54 - b _080A7A8A -_080A79FE: - ldr r5, _080A7A28 @ =gUnknown_0203855B - ldrb r6, [r5] - movs r0, 0 - ldrsb r0, [r5, r0] - cmp r0, 0x6 - beq _080A7A2C - adds r3, r2, 0 - adds r3, 0x3F - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r3] - adds r0, r2, 0 - adds r0, 0x2A - strb r6, [r0] - movs r1, 0x1 - negs r1, r1 - adds r0, r1, 0 - strb r0, [r5] - b _080A7A8A - .align 2, 0 -_080A7A28: .4byte gUnknown_0203855B -_080A7A2C: - adds r3, r2, 0 - adds r3, 0x3F - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r3] - adds r0, r2, 0 - adds r0, 0x2A - strb r4, [r0] - ldrh r0, [r2, 0x22] - subs r0, 0x4 - strh r0, [r2, 0x22] - movs r0, 0x4 - strh r0, [r2, 0x2E] - movs r0, 0x1 - strh r0, [r2, 0x34] - adds r0, r2, 0 - bl sub_80A7AE4 - b _080A7A8A -_080A7A54: - ldrh r4, [r2, 0x2E] - movs r0, 0x2E - ldrsh r3, [r2, r0] - cmp r3, 0 - beq _080A7A7C - ldrh r1, [r2, 0x30] - movs r3, 0x30 - ldrsh r0, [r2, r3] - cmp r0, 0 - beq _080A7A72 - ldrh r0, [r2, 0x22] - adds r0, 0x1 - strh r0, [r2, 0x22] - subs r0, r4, 0x1 - strh r0, [r2, 0x2E] -_080A7A72: - adds r0, r1, 0x1 - movs r1, 0x1 - ands r0, r1 - strh r0, [r2, 0x30] - b _080A7A8A -_080A7A7C: - ldr r1, _080A7A90 @ =gUnknown_0203855B - movs r4, 0x1 - negs r4, r4 - adds r0, r4, 0 - strb r0, [r1] - strh r3, [r2, 0x30] - strh r3, [r2, 0x34] -_080A7A8A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080A7A90: .4byte gUnknown_0203855B - thumb_func_end sub_80A79EC - - thumb_func_start sub_80A7A94 -sub_80A7A94: @ 80A7A94 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x36 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080A7AA6 - cmp r0, 0x1 - beq _080A7AC8 - b _080A7ADC -_080A7AA6: - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r4, 0x1] - ldr r0, _080A7AC4 @ =gSpriteAffineAnimTable_83C1CC4 - str r0, [r4, 0x10] - adds r0, r4, 0 - bl InitSpriteAffineAnim - movs r0, 0x1 - strh r0, [r4, 0x36] - b _080A7ADC - .align 2, 0 -_080A7AC4: .4byte gSpriteAffineAnimTable_83C1CC4 -_080A7AC8: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xC - bne _080A7ADC - adds r0, r4, 0 - bl sub_80A7AE4 -_080A7ADC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80A7A94 - - thumb_func_start sub_80A7AE4 -sub_80A7AE4: @ 80A7AE4 - push {lr} - ldr r2, _080A7B0C @ =gUnknown_0203855C - movs r1, 0 - strb r1, [r2] - ldrb r2, [r0, 0x1] - movs r1, 0x4 - negs r1, r1 - ands r1, r2 - strb r1, [r0, 0x1] - movs r1, 0 - strh r1, [r0, 0x32] - strh r1, [r0, 0x36] - ldrb r0, [r0, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - pop {r0} - bx r0 - .align 2, 0 -_080A7B0C: .4byte gUnknown_0203855C - thumb_func_end sub_80A7AE4 - - thumb_func_start CreateBagSprite -CreateBagSprite: @ 80A7B10 - push {lr} - ldr r0, _080A7B24 @ =gSpriteTemplate_83C1CE0 - movs r1, 0x3A - movs r2, 0x28 - movs r3, 0 - bl CreateSprite - pop {r0} - bx r0 - .align 2, 0 -_080A7B24: .4byte gSpriteTemplate_83C1CE0 - thumb_func_end CreateBagSprite - - thumb_func_start sub_80A7B28 -sub_80A7B28: @ 80A7B28 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0 - strh r0, [r4, 0x34] - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl sub_80A7B6C - ldr r0, _080A7B44 @ =sub_80A7B6C - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A7B44: .4byte sub_80A7B6C - thumb_func_end sub_80A7B28 - - thumb_func_start sub_80A7B48 -sub_80A7B48: @ 80A7B48 - ldrh r2, [r0, 0x38] - ldrh r1, [r0, 0x2E] - adds r1, 0x1 - movs r3, 0x1 - ands r1, r3 - subs r2, r1 - adds r1, r0, 0 - adds r1, 0x28 - strb r2, [r1] - ldrh r2, [r0, 0x3A] - ldrh r1, [r0, 0x2E] - adds r1, 0x1 - ands r1, r3 - subs r2, r1 - adds r0, 0x29 - strb r2, [r0] - bx lr - thumb_func_end sub_80A7B48 - - thumb_func_start sub_80A7B6C -sub_80A7B6C: @ 80A7B6C - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x3C - ldrsh r2, [r4, r0] - cmp r2, 0 - beq _080A7C16 - movs r1, 0x34 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080A7B86 - cmp r0, 0x1 - beq _080A7BD4 - b _080A7C16 -_080A7B86: - ldrb r0, [r4, 0x1] - movs r1, 0x4 - negs r1, r1 - ands r1, r0 - movs r0, 0x1 - orrs r1, r0 - strb r1, [r4, 0x1] - cmp r2, 0x1 - bne _080A7BA0 - ldr r0, _080A7B9C @ =gSpriteAffineAnimTable_83C1D20 - b _080A7BA2 - .align 2, 0 -_080A7B9C: .4byte gSpriteAffineAnimTable_83C1D20 -_080A7BA0: - ldr r0, _080A7BD0 @ =gSpriteAffineAnimTable_83C1D20 + 0x4 -_080A7BA2: - str r0, [r4, 0x10] - adds r0, r4, 0 - bl InitSpriteAffineAnim - movs r0, 0x1 - strh r0, [r4, 0x34] - adds r0, r4, 0 - adds r0, 0x28 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - strh r0, [r4, 0x38] - adds r0, r4, 0 - adds r0, 0x29 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - strh r0, [r4, 0x3A] - adds r0, r4, 0 - bl sub_80A7B48 - b _080A7C16 - .align 2, 0 -_080A7BD0: .4byte gSpriteAffineAnimTable_83C1D20 + 0x4 -_080A7BD4: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - movs r5, 0 - strh r0, [r4, 0x2E] - adds r0, r4, 0 - bl sub_80A7B48 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x20 - bne _080A7C16 - strh r5, [r4, 0x2E] - strh r5, [r4, 0x34] - ldrh r1, [r4, 0x38] - adds r0, r4, 0 - adds r0, 0x28 - strb r1, [r0] - ldrh r0, [r4, 0x3A] - adds r1, r4, 0 - adds r1, 0x29 - strb r0, [r1] - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x1] - ldr r0, _080A7C1C @ =SpriteCallbackDummy - str r0, [r4, 0x1C] -_080A7C16: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A7C1C: .4byte SpriteCallbackDummy - thumb_func_end sub_80A7B6C - - thumb_func_start CreateBagPokeballSprite -CreateBagPokeballSprite: @ 80A7C20 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080A7C54 @ =gUnknown_083C1D30 - bl LoadSpritePalette - ldr r0, _080A7C58 @ =gSpriteTemplate_83C1D38 - movs r1, 0x10 - movs r2, 0x58 - movs r3, 0 - bl CreateSprite - ldr r1, _080A7C5C @ =gUnknown_02038568 - strb r0, [r1] - ldr r2, _080A7C60 @ =gSprites - ldrb r1, [r1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r4, [r0, 0x3C] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080A7C54: .4byte gUnknown_083C1D30 -_080A7C58: .4byte gSpriteTemplate_83C1D38 -_080A7C5C: .4byte gUnknown_02038568 -_080A7C60: .4byte gSprites - thumb_func_end CreateBagPokeballSprite - - thumb_func_start sub_80A7C64 -sub_80A7C64: @ 80A7C64 - push {r4,r5,lr} - movs r0, 0x8 - bl FreeSpritePaletteByTag - ldr r5, _080A7C98 @ =gSprites - ldr r4, _080A7C9C @ =gUnknown_02038568 - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r0, [r0, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - bl DestroySprite - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A7C98: .4byte gSprites -_080A7C9C: .4byte gUnknown_02038568 - thumb_func_end sub_80A7C64 - - thumb_func_start sub_80A7CA0 -sub_80A7CA0: @ 80A7CA0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - adds r4, r1, 0 - movs r2, 0x80 - lsls r2, 4 - adds r0, r4, 0 - movs r1, 0 - bl memset - movs r0, 0x80 - lsls r0, 1 - adds r4, r0 - movs r7, 0 -_080A7CBE: - adds r4, 0x20 - movs r5, 0 - adds r1, r7, 0x1 - mov r8, r1 -_080A7CC6: - adds r0, r4, 0 - adds r1, r6, 0 - movs r2, 0x20 - bl memcpy - adds r4, 0x20 - adds r6, 0x20 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bls _080A7CC6 - cmp r7, 0x5 - beq _080A7CE4 - adds r4, 0x20 -_080A7CE4: - mov r1, r8 - lsls r0, r1, 24 - lsrs r7, r0, 24 - cmp r7, 0x5 - bls _080A7CBE - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80A7CA0 - - thumb_func_start sub_80A7CF8 -sub_80A7CF8: @ 80A7CF8 - push {r4,r5,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2A - bne _080A7D44 - bl IsEnigmaBerryValid - cmp r0, 0x1 - bne _080A7D44 - ldr r4, _080A7D34 @ =gSaveBlock1 + 0x317C - ldr r1, _080A7D38 @ =0x02000000 - adds r0, r4, 0 - bl sub_80A7CA0 - movs r0, 0x90 - lsls r0, 3 - adds r4, r0 - str r4, [sp] - ldr r1, _080A7D3C @ =0xffff0000 - ldr r0, [sp, 0x4] - ands r0, r1 - ldr r1, _080A7D40 @ =0x00007544 - orrs r0, r1 - str r0, [sp, 0x4] - mov r0, sp - bl LoadSpritePalette - b _080A7D72 - .align 2, 0 -_080A7D34: .4byte gSaveBlock1 + 0x317C -_080A7D38: .4byte 0x02000000 -_080A7D3C: .4byte 0xffff0000 -_080A7D40: .4byte 0x00007544 -_080A7D44: - ldr r5, _080A7D7C @ =gBerryGraphicsTable - lsls r4, 3 - adds r0, r5, 0x4 - adds r0, r4, r0 - ldr r0, [r0] - str r0, [sp] - mov r1, sp - ldr r0, _080A7D80 @ =0x00007544 - strh r0, [r1, 0x4] - mov r0, sp - bl LoadCompressedObjectPalette - adds r4, r5 - ldr r0, [r4] - ldr r4, _080A7D84 @ =0x02001000 - adds r1, r4, 0 - bl sub_800D238 - ldr r0, _080A7D88 @ =0xfffff000 - adds r1, r4, r0 - adds r0, r4, 0 - bl sub_80A7CA0 -_080A7D72: - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080A7D7C: .4byte gBerryGraphicsTable -_080A7D80: .4byte 0x00007544 -_080A7D84: .4byte 0x02001000 -_080A7D88: .4byte 0xfffff000 - thumb_func_end sub_80A7CF8 - - thumb_func_start sub_80A7D8C -sub_80A7D8C: @ 80A7D8C - push {r4,r5,lr} - adds r4, r1, 0 - adds r5, r2, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - bl sub_80A7CF8 - ldr r0, _080A7DC0 @ =gSpriteTemplate_83C1D74 - lsls r4, 16 - asrs r4, 16 - lsls r5, 16 - asrs r5, 16 - adds r1, r4, 0 - adds r2, r5, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080A7DC0: .4byte gSpriteTemplate_83C1D74 - thumb_func_end sub_80A7D8C - - thumb_func_start sub_80A7DC4 -sub_80A7DC4: @ 80A7DC4 - ldr r1, _080A7DD0 @ =gUnknown_030041B4 - ldrh r1, [r1] - negs r1, r1 - strh r1, [r0, 0x26] - bx lr - .align 2, 0 -_080A7DD0: .4byte gUnknown_030041B4 - thumb_func_end sub_80A7DC4 - - thumb_func_start sub_80A7DD4 -sub_80A7DD4: @ 80A7DD4 - push {lr} - ldr r0, _080A7DE8 @ =0x00007544 - bl FreeSpritePaletteByTag - movs r0, 0x8 - bl FreeSpritePaletteByTag - pop {r0} - bx r0 - .align 2, 0 -_080A7DE8: .4byte 0x00007544 - thumb_func_end sub_80A7DD4 - - thumb_func_start sub_80A7DEC -sub_80A7DEC: @ 80A7DEC - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - mov r8, r3 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - mov r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, _080A7E50 @ =0x00007544 - bl FreeSpritePaletteByTag - adds r0, r4, 0 - bl sub_80A7CF8 - ldr r0, _080A7E54 @ =gSpriteTemplate_83C1E04 - adds r1, r5, 0 - adds r2, r6, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - adds r4, r1, 0 - mov r0, r8 - cmp r0, 0x1 - bne _080A7E42 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080A7E58 @ =gSprites - adds r0, r1 - movs r1, 0x1 - bl StartSpriteAffineAnim -_080A7E42: - adds r0, r4, 0 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080A7E50: .4byte 0x00007544 -_080A7E54: .4byte gSpriteTemplate_83C1E04 -_080A7E58: .4byte gSprites - thumb_func_end sub_80A7DEC - - thumb_func_start sub_80A7E5C -sub_80A7E5C: @ 80A7E5C - push {lr} - adds r1, r0, 0 - ldr r0, _080A7E78 @ =gSpriteTemplate_83C1F98 - lsls r1, 16 - asrs r1, 16 - movs r2, 0x63 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .align 2, 0 -_080A7E78: .4byte gSpriteTemplate_83C1F98 - thumb_func_end sub_80A7E5C - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/menu_helpers.s b/asm/menu_helpers.s deleted file mode 100644 index 0f5caf3da..000000000 --- a/asm/menu_helpers.s +++ /dev/null @@ -1,1339 +0,0 @@ - .include "constants/gba_constants.inc" - .include "constants/species_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_80F9020 -sub_80F9020: @ 80F9020 - push {r4,r5,lr} - ldr r4, _080F9054 @ =gBGTilemapBuffers + 0x800 - movs r5, 0x80 - lsls r5, 4 - adds r0, r4, 0 - movs r1, 0 - adds r2, r5, 0 - bl memset - adds r0, r4, r5 - movs r1, 0 - adds r2, r5, 0 - bl memset - movs r0, 0x80 - lsls r0, 5 - adds r4, r0 - adds r0, r4, 0 - movs r1, 0 - adds r2, r5, 0 - bl memset - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F9054: .4byte gBGTilemapBuffers + 0x800 - thumb_func_end sub_80F9020 - - thumb_func_start sav2_get_text_speed -sav2_get_text_speed: @ 80F9058 - push {r4,r5,lr} - sub sp, 0x8 - adds r5, r0, 0 - lsls r1, 16 - lsrs r4, r1, 16 - bl MenuDisplayMessageBox - cmp r4, 0 - beq _080F907C - ldr r0, _080F908C @ =gBGTilemapBuffers + 0x800 - movs r1, 0x4 - str r1, [sp] - str r4, [sp, 0x4] - movs r1, 0x2 - movs r2, 0xF - movs r3, 0x1A - bl sub_80A3FA0 -_080F907C: - adds r0, r5, 0 - bl sub_8072044 - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F908C: .4byte gBGTilemapBuffers + 0x800 - thumb_func_end sav2_get_text_speed - - thumb_func_start sub_80F9090 -sub_80F9090: @ 80F9090 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl MenuUpdateWindowText - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080F90AC - ldr r0, _080F90B4 @ =gUnknown_0300074C - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 -_080F90AC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F90B4: .4byte gUnknown_0300074C - thumb_func_end sub_80F9090 - - thumb_func_start DisplayItemMessageOnField -DisplayItemMessageOnField: @ 80F90B8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r0, r1, 0 - adds r5, r2, 0 - adds r1, r3, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r1, 16 - lsrs r1, 16 - bl sav2_get_text_speed - ldr r0, _080F90E8 @ =gUnknown_0300074C - str r5, [r0] - ldr r1, _080F90EC @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, _080F90F0 @ =sub_80F9090 - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F90E8: .4byte gUnknown_0300074C -_080F90EC: .4byte gTasks -_080F90F0: .4byte sub_80F9090 - thumb_func_end DisplayItemMessageOnField - - thumb_func_start Task_CallYesOrNoCallback -Task_CallYesOrNoCallback: @ 80F90F4 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl ProcessMenuInputNoWrap_ - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _080F911A - cmp r1, 0 - bgt _080F9114 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _080F9130 - b _080F9140 -_080F9114: - cmp r1, 0x1 - beq _080F9130 - b _080F9140 -_080F911A: - movs r0, 0x5 - bl PlaySE - ldr r0, _080F912C @ =gUnknown_020388C4 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - b _080F9140 - .align 2, 0 -_080F912C: .4byte gUnknown_020388C4 -_080F9130: - movs r0, 0x5 - bl PlaySE - ldr r0, _080F9148 @ =gUnknown_020388C4 - ldr r1, [r0, 0x4] - adds r0, r4, 0 - bl _call_via_r1 -_080F9140: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F9148: .4byte gUnknown_020388C4 - thumb_func_end Task_CallYesOrNoCallback - - thumb_func_start DoYesNoFuncWithChoice -DoYesNoFuncWithChoice: @ 80F914C - lsls r0, 24 - lsrs r0, 24 - ldr r3, _080F916C @ =gUnknown_020388C4 - ldr r2, [r1, 0x4] - ldr r1, [r1] - str r1, [r3] - str r2, [r3, 0x4] - ldr r2, _080F9170 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _080F9174 @ =Task_CallYesOrNoCallback - str r0, [r1] - bx lr - .align 2, 0 -_080F916C: .4byte gUnknown_020388C4 -_080F9170: .4byte gTasks -_080F9174: .4byte Task_CallYesOrNoCallback - thumb_func_end DoYesNoFuncWithChoice - - thumb_func_start brm_trade_1 -brm_trade_1: @ 80F9178 - push {r4-r7,lr} - sub sp, 0x4 - adds r5, r0, 0 - lsls r1, 24 - lsrs r4, r1, 24 - lsls r2, 24 - lsrs r7, r2, 24 - lsls r3, 24 - lsrs r6, r3, 24 - ldr r1, _080F91C0 @ =gUnknown_083E5A18 - mov r0, sp - movs r2, 0x4 - bl memcpy - cmp r4, 0xFF - beq _080F91CC - mov r0, sp - strb r4, [r0, 0x2] - ldr r4, _080F91C4 @ =gStringVar4 - adds r0, r4, 0 - mov r1, sp - bl StringCopy - adds r0, r4, 0 - adds r1, r5, 0 - bl StringAppend - mov r1, sp - ldr r0, _080F91C8 @ =gMenuWindowPtr - ldr r0, [r0] - ldrb r0, [r0, 0x6] - strb r0, [r1, 0x2] - adds r0, r4, 0 - bl StringAppend - b _080F91D4 - .align 2, 0 -_080F91C0: .4byte gUnknown_083E5A18 -_080F91C4: .4byte gStringVar4 -_080F91C8: .4byte gMenuWindowPtr -_080F91CC: - ldr r0, _080F91E8 @ =gStringVar4 - adds r1, r5, 0 - bl StringCopy -_080F91D4: - ldr r0, _080F91E8 @ =gStringVar4 - adds r1, r7, 0 - adds r2, r6, 0 - bl MenuPrint - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F91E8: .4byte gStringVar4 - thumb_func_end brm_trade_1 - - thumb_func_start unref_sub_80F91EC -unref_sub_80F91EC: @ 80F91EC - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r12, r0 - adds r4, r2, 0 - adds r2, r3, 0 - ldr r0, [sp, 0x18] - ldr r3, [sp, 0x1C] - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r4, 24 - lsrs r4, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r3, 24 - lsrs r5, r3, 24 - ldr r6, _080F9234 @ =gStringVar1 - adds r0, r6, 0 - mov r1, r12 - adds r3, r4, 0 - bl ConvertIntToDecimalStringN - mov r0, r8 - cmp r0, 0xFF - beq _080F9238 - adds r0, r6, 0 - mov r1, r8 - adds r2, r7, 0 - adds r3, r5, 0 - bl brm_trade_1 - b _080F9242 - .align 2, 0 -_080F9234: .4byte gStringVar1 -_080F9238: - adds r0, r6, 0 - adds r1, r7, 0 - adds r2, r5, 0 - bl MenuPrint -_080F9242: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end unref_sub_80F91EC - - thumb_func_start unref_sub_80F924C -unref_sub_80F924C: @ 80F924C - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r6, r1, 0 - adds r4, r2, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r6, 24 - lsrs r6, 24 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _080F9280 @ =gUnknown_083E5A1C - mov r0, sp - movs r2, 0x2 - bl memcpy - mov r0, sp - adds r1, r4, 0 - adds r2, r5, 0 - adds r3, r6, 0 - bl brm_trade_1 - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080F9280: .4byte gUnknown_083E5A1C - thumb_func_end unref_sub_80F924C - - thumb_func_start sub_80F9284 -sub_80F9284: @ 80F9284 - push {lr} - ldr r0, _080F92A0 @ =gSaveBlock2 - ldrb r0, [r0, 0x13] - cmp r0, 0x1 - bne _080F92B6 - ldr r0, _080F92A4 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x80 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - beq _080F92A8 - movs r0, 0x1 - b _080F92B8 - .align 2, 0 -_080F92A0: .4byte gSaveBlock2 -_080F92A4: .4byte gMain -_080F92A8: - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _080F92B6 - movs r0, 0x2 - b _080F92B8 -_080F92B6: - movs r0, 0 -_080F92B8: - pop {r1} - bx r1 - thumb_func_end sub_80F9284 - - thumb_func_start sub_80F92BC -sub_80F92BC: @ 80F92BC - push {lr} - ldr r0, _080F92D8 @ =gSaveBlock2 - ldrb r0, [r0, 0x13] - cmp r0, 0x1 - bne _080F92EE - ldr r0, _080F92DC @ =gMain - ldrh r1, [r0, 0x30] - movs r0, 0x80 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - beq _080F92E0 - movs r0, 0x1 - b _080F92F0 - .align 2, 0 -_080F92D8: .4byte gSaveBlock2 -_080F92DC: .4byte gMain -_080F92E0: - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _080F92EE - movs r0, 0x2 - b _080F92F0 -_080F92EE: - movs r0, 0 -_080F92F0: - pop {r1} - bx r1 - thumb_func_end sub_80F92BC - - thumb_func_start sub_80F92F4 -sub_80F92F4: @ 80F92F4 - push {lr} - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xAF - bne _080F9314 - ldr r0, _080F930C @ =gSaveBlock1 - ldrh r1, [r0, 0x4] - ldr r0, _080F9310 @ =0x00001919 - cmp r1, r0 - bne _080F9314 - movs r0, 0 - b _080F9316 - .align 2, 0 -_080F930C: .4byte gSaveBlock1 -_080F9310: .4byte 0x00001919 -_080F9314: - movs r0, 0x1 -_080F9316: - pop {r1} - bx r1 - thumb_func_end sub_80F92F4 - - thumb_func_start sub_80F931C -sub_80F931C: @ 80F931C - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - bl is_c1_link_related_active - cmp r0, 0x1 - bne _080F933C - adds r0, r4, 0 - bl ItemIsMail - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080F933C - movs r0, 0 - b _080F933E -_080F933C: - movs r0, 0x1 -_080F933E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80F931C - - thumb_func_start sub_80F9344 -sub_80F9344: @ 80F9344 - push {lr} - bl is_c1_link_related_active - cmp r0, 0x1 - beq _080F9356 - ldr r0, _080F935C @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0x1 - bne _080F9360 -_080F9356: - movs r0, 0x1 - b _080F9362 - .align 2, 0 -_080F935C: .4byte gReceivedRemoteLinkPlayers -_080F9360: - movs r0, 0 -_080F9362: - pop {r1} - bx r1 - thumb_func_end sub_80F9344 - - thumb_func_start sub_80F9368 -sub_80F9368: @ 80F9368 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - movs r0, 0x80 - lsls r0, 19 - movs r1, 0 - strh r1, [r0] - adds r0, 0xE - strh r1, [r0] - subs r0, 0x2 - strh r1, [r0] - subs r0, 0x2 - strh r1, [r0] - subs r0, 0x2 - strh r1, [r0] - adds r0, 0x14 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0x6 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0x6 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - subs r0, 0x6 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - movs r3, 0xC0 - lsls r3, 19 - movs r4, 0xC0 - lsls r4, 9 - add r0, sp, 0x4 - mov r8, r0 - mov r2, sp - movs r6, 0 - ldr r1, _080F9430 @ =0x040000d4 - movs r5, 0x80 - lsls r5, 5 - ldr r7, _080F9434 @ =0x81000800 - movs r0, 0x81 - lsls r0, 24 - mov r12, r0 -_080F93C6: - strh r6, [r2] - mov r0, sp - str r0, [r1] - str r3, [r1, 0x4] - str r7, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r3, r5 - subs r4, r5 - cmp r4, r5 - bhi _080F93C6 - strh r6, [r2] - mov r2, sp - str r2, [r1] - str r3, [r1, 0x4] - lsrs r0, r4, 1 - mov r2, r12 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r0, 0xE0 - lsls r0, 19 - movs r3, 0x80 - lsls r3, 3 - movs r4, 0 - str r4, [sp, 0x4] - ldr r2, _080F9430 @ =0x040000d4 - mov r1, r8 - str r1, [r2] - str r0, [r2, 0x4] - lsrs r0, r3, 2 - movs r1, 0x85 - lsls r1, 24 - orrs r0, r1 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - movs r1, 0xA0 - lsls r1, 19 - mov r0, sp - strh r4, [r0] - str r0, [r2] - str r1, [r2, 0x4] - lsrs r3, 1 - movs r0, 0x81 - lsls r0, 24 - orrs r3, r0 - str r3, [r2, 0x8] - ldr r0, [r2, 0x8] - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080F9430: .4byte 0x040000d4 -_080F9434: .4byte 0x81000800 - thumb_func_end sub_80F9368 - - thumb_func_start sub_80F9438 -sub_80F9438: @ 80F9438 - push {lr} - movs r0, 0 - bl SetVBlankCallback - movs r0, 0 - bl SetHBlankCallback - pop {r0} - bx r0 - thumb_func_end sub_80F9438 - - thumb_func_start sub_80F944C -sub_80F944C: @ 80F944C - push {r4,lr} - movs r2, 0 - ldr r4, _080F9478 @ =gUnknown_020388C0 - movs r3, 0xFF -_080F9454: - adds r0, r2, r4 - ldrb r1, [r0] - orrs r1, r3 - strb r1, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3 - bls _080F9454 - movs r0, 0x6 - bl FreeSpritePaletteByTag - ldr r0, _080F947C @ =gUnknown_083E5968 - bl LoadSpritePalette - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F9478: .4byte gUnknown_020388C0 -_080F947C: .4byte gUnknown_083E5968 - thumb_func_end sub_80F944C - - thumb_func_start sub_80F9480 -sub_80F9480: @ 80F9480 - push {r4,lr} - adds r3, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r2, 0 - cmp r2, r1 - bcs _080F949E - movs r4, 0xFF -_080F9490: - adds r0, r3, r2 - strb r4, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, r1 - bcc _080F9490 -_080F949E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80F9480 - - thumb_func_start sub_80F94A4 -sub_80F94A4: @ 80F94A4 - push {r4,r5,lr} - adds r5, r1, 0 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r2, 16 - lsrs r1, r2, 16 - lsls r3, 16 - lsrs r2, r3, 16 - cmp r4, 0x5 - bhi _080F94E8 - ldrb r0, [r5] - cmp r0, 0xFF - bne _080F94D0 - ldr r0, _080F94F0 @ =gSpriteTemplate_83E5A00 - lsls r1, 16 - asrs r1, 16 - lsls r2, 16 - asrs r2, 16 - movs r3, 0 - bl CreateSprite - strb r0, [r5] -_080F94D0: - subs r0, r4, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080F94F4 @ =gSprites - adds r0, r1 - adds r1, r4, 0 - bl StartSpriteAnim -_080F94E8: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F94F0: .4byte gSpriteTemplate_83E5A00 -_080F94F4: .4byte gSprites - thumb_func_end sub_80F94A4 - - thumb_func_start sub_80F94F8 -sub_80F94F8: @ 80F94F8 - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4] - cmp r0, 0xFF - beq _080F9516 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080F951C @ =gSprites - adds r0, r1 - bl DestroySprite - movs r0, 0xFF - strb r0, [r4] -_080F9516: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F951C: .4byte gSprites - thumb_func_end sub_80F94F8 - - thumb_func_start sub_80F9520 -sub_80F9520: @ 80F9520 - push {r4,r5,lr} - adds r5, r0, 0 - movs r4, 0 -_080F9526: - adds r0, r5, r4 - bl sub_80F94F8 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x7 - bls _080F9526 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80F9520 - - thumb_func_start CreateVerticalScrollIndicators -CreateVerticalScrollIndicators: @ 80F953C - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 16 - lsrs r3, r1, 16 - lsls r2, 16 - lsrs r2, 16 - cmp r4, 0x3 - bls _080F9550 - b _080F9790 -_080F9550: - cmp r4, 0x1 - beq _080F95F6 - cmp r4, 0x1 - bgt _080F9564 - cmp r4, 0 - beq _080F9578 - ldr r5, _080F9560 @ =gUnknown_020388C0 - b _080F977A - .align 2, 0 -_080F9560: .4byte gUnknown_020388C0 -_080F9564: - cmp r4, 0x2 - bne _080F956A - b _080F967C -_080F956A: - cmp r4, 0x3 - bne _080F9570 - b _080F96F8 -_080F9570: - ldr r5, _080F9574 @ =gUnknown_020388C0 - b _080F977A - .align 2, 0 -_080F9574: .4byte gUnknown_020388C0 -_080F9578: - ldr r0, _080F95D8 @ =gUnknown_020388C0 - ldrb r1, [r0] - adds r5, r0, 0 - cmp r1, 0xFF - beq _080F9584 - b _080F977A -_080F9584: - ldr r0, _080F95DC @ =gSpriteTemplate_83E59D0 - lsls r1, r3, 16 - asrs r1, 16 - lsls r2, 16 - asrs r2, 16 - movs r3, 0 - bl CreateSprite - strb r0, [r5] - ldr r3, _080F95E0 @ =gSprites - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldr r1, _080F95E4 @ =0x0000ffff - strh r1, [r0, 0x32] - ldrb r0, [r5, 0x1] - cmp r0, 0xFF - beq _080F95E8 - ldrb r0, [r5] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r2, [r5, 0x1] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - movs r2, 0x26 - ldrsh r0, [r0, r2] - negs r0, r0 - strh r0, [r1, 0x26] - ldrb r0, [r5] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r2, [r5, 0x1] - b _080F9650 - .align 2, 0 -_080F95D8: .4byte gUnknown_020388C0 -_080F95DC: .4byte gSpriteTemplate_83E59D0 -_080F95E0: .4byte gSprites -_080F95E4: .4byte 0x0000ffff -_080F95E8: - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r4, [r0, 0x34] - b _080F977A -_080F95F6: - ldr r0, _080F9660 @ =gUnknown_020388C0 - ldrb r1, [r0, 0x1] - adds r5, r0, 0 - cmp r1, 0xFF - beq _080F9602 - b _080F977A -_080F9602: - ldr r0, _080F9664 @ =gSpriteTemplate_83E59D0 - lsls r1, r3, 16 - asrs r1, 16 - lsls r2, 16 - asrs r2, 16 - movs r3, 0 - bl CreateSprite - strb r0, [r5, 0x1] - ldr r3, _080F9668 @ =gSprites - ldrb r1, [r5, 0x1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r4, [r0, 0x32] - ldrb r0, [r5] - cmp r0, 0xFF - beq _080F966C - ldrb r0, [r5, 0x1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r2, [r5] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - movs r2, 0x26 - ldrsh r0, [r0, r2] - negs r0, r0 - strh r0, [r1, 0x26] - ldrb r0, [r5, 0x1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r2, [r5] -_080F9650: - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x34] - strh r0, [r1, 0x34] - b _080F977A - .align 2, 0 -_080F9660: .4byte gUnknown_020388C0 -_080F9664: .4byte gSpriteTemplate_83E59D0 -_080F9668: .4byte gSprites -_080F966C: - ldrb r0, [r5, 0x1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - movs r0, 0 - strh r0, [r1, 0x34] - b _080F977A -_080F967C: - ldr r0, _080F96E4 @ =gUnknown_020388C0 - ldrb r1, [r0, 0x2] - adds r5, r0, 0 - cmp r1, 0xFF - bne _080F977A - ldr r0, _080F96E8 @ =gSpriteTemplate_83E59E8 - lsls r1, r3, 16 - asrs r1, 16 - lsls r2, 16 - asrs r2, 16 - movs r3, 0 - bl CreateSprite - strb r0, [r5, 0x2] - ldr r3, _080F96EC @ =gSprites - ldrb r1, [r5, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldr r1, _080F96F0 @ =0x0000ffff - strh r1, [r0, 0x2E] - ldrb r0, [r5, 0x3] - cmp r0, 0xFF - beq _080F96F4 - ldrb r0, [r5, 0x2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r2, [r5, 0x3] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - movs r2, 0x24 - ldrsh r0, [r0, r2] - negs r0, r0 - strh r0, [r1, 0x24] - ldrb r0, [r5, 0x2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r2, [r5, 0x3] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x30] - b _080F9778 - .align 2, 0 -_080F96E4: .4byte gUnknown_020388C0 -_080F96E8: .4byte gSpriteTemplate_83E59E8 -_080F96EC: .4byte gSprites -_080F96F0: .4byte 0x0000ffff -_080F96F4: - ldrb r0, [r5, 0x2] - b _080F976E -_080F96F8: - ldr r0, _080F9760 @ =gUnknown_020388C0 - ldrb r1, [r0, 0x3] - adds r5, r0, 0 - cmp r1, 0xFF - bne _080F977A - ldr r0, _080F9764 @ =gSpriteTemplate_83E59E8 - lsls r1, r3, 16 - asrs r1, 16 - lsls r2, 16 - asrs r2, 16 - movs r3, 0 - bl CreateSprite - strb r0, [r5, 0x3] - ldr r3, _080F9768 @ =gSprites - ldrb r1, [r5, 0x3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0x1 - strh r1, [r0, 0x2E] - ldrb r0, [r5, 0x2] - cmp r0, 0xFF - beq _080F976C - ldrb r0, [r5, 0x3] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r2, [r5, 0x2] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - movs r2, 0x24 - ldrsh r0, [r0, r2] - negs r0, r0 - strh r0, [r1, 0x24] - ldrb r0, [r5, 0x3] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r2, [r5, 0x2] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x30] - b _080F9778 - .align 2, 0 -_080F9760: .4byte gUnknown_020388C0 -_080F9764: .4byte gSpriteTemplate_83E59E8 -_080F9768: .4byte gSprites -_080F976C: - ldrb r0, [r5, 0x3] -_080F976E: - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - movs r0, 0 -_080F9778: - strh r0, [r1, 0x30] -_080F977A: - adds r0, r4, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080F9798 @ =gSprites - adds r0, r1 - movs r1, 0x1 - ands r1, r4 - bl StartSpriteAnim -_080F9790: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080F9798: .4byte gSprites - thumb_func_end CreateVerticalScrollIndicators - - thumb_func_start sub_80F979C -sub_80F979C: @ 80F979C - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - lsrs r3, r1, 24 - cmp r2, 0x3 - bhi _080F97D4 - ldr r0, _080F97D8 @ =gUnknown_020388C0 - adds r1, r2, r0 - ldrb r0, [r1] - cmp r0, 0xFF - beq _080F97D4 - ldr r2, _080F97DC @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x3E - movs r0, 0x1 - adds r2, r3, 0 - ands r2, r0 - lsls r2, 2 - ldrb r3, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1] -_080F97D4: - pop {r0} - bx r0 - .align 2, 0 -_080F97D8: .4byte gUnknown_020388C0 -_080F97DC: .4byte gSprites - thumb_func_end sub_80F979C - - thumb_func_start DestroyVerticalScrollIndicator -DestroyVerticalScrollIndicator: @ 80F97E0 - push {r4,lr} - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x3 - bhi _080F9808 - ldr r0, _080F9810 @ =gUnknown_020388C0 - adds r4, r1, r0 - ldrb r0, [r4] - cmp r0, 0xFF - beq _080F9808 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080F9814 @ =gSprites - adds r0, r1 - bl DestroySprite - movs r0, 0xFF - strb r0, [r4] -_080F9808: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F9810: .4byte gUnknown_020388C0 -_080F9814: .4byte gSprites - thumb_func_end DestroyVerticalScrollIndicator - - thumb_func_start LoadScrollIndicatorPalette -LoadScrollIndicatorPalette: @ 80F9818 - push {lr} - ldr r0, _080F9824 @ =gUnknown_083E5968 - bl LoadSpritePalette - pop {r0} - bx r0 - .align 2, 0 -_080F9824: .4byte gUnknown_083E5968 - thumb_func_end LoadScrollIndicatorPalette - - thumb_func_start BuyMenuFreeMemory -BuyMenuFreeMemory: @ 80F9828 - push {lr} - movs r0, 0x6 - bl FreeSpritePaletteByTag - pop {r0} - bx r0 - thumb_func_end BuyMenuFreeMemory - - thumb_func_start sub_80F9834 -sub_80F9834: @ 80F9834 - push {lr} - adds r2, r0, 0 - movs r1, 0x30 - ldrsh r0, [r2, r1] - cmp r0, 0 - bne _080F9848 - ldrh r0, [r2, 0x2E] - ldrh r1, [r2, 0x24] - adds r0, r1 - strh r0, [r2, 0x24] -_080F9848: - movs r1, 0x34 - ldrsh r0, [r2, r1] - cmp r0, 0 - bne _080F9858 - ldrh r0, [r2, 0x32] - ldrh r1, [r2, 0x26] - adds r0, r1 - strh r0, [r2, 0x26] -_080F9858: - ldrh r1, [r2, 0x30] - adds r1, 0x1 - movs r3, 0 - strh r1, [r2, 0x30] - ldrh r0, [r2, 0x34] - adds r0, 0x1 - strh r0, [r2, 0x34] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x2 - ble _080F9870 - strh r3, [r2, 0x30] -_080F9870: - movs r1, 0x34 - ldrsh r0, [r2, r1] - cmp r0, 0x2 - ble _080F987A - strh r3, [r2, 0x34] -_080F987A: - movs r0, 0x24 - ldrsh r1, [r2, r0] - cmp r1, 0x8 - beq _080F988A - movs r0, 0x8 - negs r0, r0 - cmp r1, r0 - bne _080F988C -_080F988A: - strh r3, [r2, 0x24] -_080F988C: - movs r0, 0x26 - ldrsh r1, [r2, r0] - cmp r1, 0x8 - beq _080F989C - movs r0, 0x8 - negs r0, r0 - cmp r1, r0 - bne _080F98A0 -_080F989C: - movs r0, 0 - strh r0, [r2, 0x26] -_080F98A0: - pop {r0} - bx r0 - thumb_func_end sub_80F9834 - - thumb_func_start sub_80F98A4 -sub_80F98A4: @ 80F98A4 - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _080F98D0 @ =gUnknown_020388C0 - adds r3, r1, r0 - ldrb r0, [r3] - cmp r0, 0xFF - beq _080F98CA - cmp r1, 0x3 - bhi _080F98CA - ldr r2, _080F98D4 @ =gSprites - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _080F98D8 @ =SpriteCallbackDummy - str r1, [r0] -_080F98CA: - pop {r0} - bx r0 - .align 2, 0 -_080F98D0: .4byte gUnknown_020388C0 -_080F98D4: .4byte gSprites -_080F98D8: .4byte SpriteCallbackDummy - thumb_func_end sub_80F98A4 - - thumb_func_start StartVerticalScrollIndicators -StartVerticalScrollIndicators: @ 80F98DC - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _080F9908 @ =gUnknown_020388C0 - adds r3, r1, r0 - ldrb r0, [r3] - cmp r0, 0xFF - beq _080F9902 - cmp r1, 0x3 - bhi _080F9902 - ldr r2, _080F990C @ =gSprites - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _080F9910 @ =sub_80F9834 - str r1, [r0] -_080F9902: - pop {r0} - bx r0 - .align 2, 0 -_080F9908: .4byte gUnknown_020388C0 -_080F990C: .4byte gSprites -_080F9910: .4byte sub_80F9834 - thumb_func_end StartVerticalScrollIndicators - - thumb_func_start sub_80F9914 -sub_80F9914: @ 80F9914 - push {r4,lr} - lsls r0, 24 - lsrs r1, r0, 24 - ldr r0, _080F9964 @ =gUnknown_020388C0 - adds r4, r1, r0 - ldrb r0, [r4] - cmp r0, 0xFF - beq _080F995C - cmp r1, 0x3 - bhi _080F995C - ldr r3, _080F9968 @ =gSprites - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r2, 0 - strh r2, [r0, 0x24] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r2, [r0, 0x26] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r2, [r0, 0x30] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - strh r2, [r0, 0x34] -_080F995C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080F9964: .4byte gUnknown_020388C0 -_080F9968: .4byte gSprites - thumb_func_end sub_80F9914 - - thumb_func_start PauseVerticalScrollIndicator -PauseVerticalScrollIndicator: @ 80F996C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_80F98A4 - adds r0, r4, 0 - bl sub_80F9914 - pop {r4} - pop {r0} - bx r0 - thumb_func_end PauseVerticalScrollIndicator - - thumb_func_start sub_80F9988 -sub_80F9988: @ 80F9988 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - lsrs r3, r1, 24 - ldr r0, _080F99C4 @ =gUnknown_020388C0 - adds r1, r2, r0 - ldrb r0, [r1] - cmp r0, 0xFF - beq _080F99BE - cmp r2, 0x3 - bhi _080F99BE - ldr r2, _080F99C8 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0x3 - adds r2, r3, 0 - ands r2, r0 - lsls r2, 2 - ldrb r3, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0x5] -_080F99BE: - pop {r0} - bx r0 - .align 2, 0 -_080F99C4: .4byte gUnknown_020388C0 -_080F99C8: .4byte gSprites - thumb_func_end sub_80F9988 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/record_mixing.s b/asm/record_mixing.s deleted file mode 100644 index ce0121a40..000000000 --- a/asm/record_mixing.s +++ /dev/null @@ -1,543 +0,0 @@ - .include "constants/gba_constants.inc" - .include "constants/species_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_80B9C6C -sub_80B9C6C: @ 80B9C6C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x58 - str r0, [sp, 0x2C] - str r1, [sp, 0x30] - str r3, [sp, 0x38] - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x34] - bl Random - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x40] - ldr r0, _080B9DA8 @ =gLinkPlayers - ldrh r0, [r0, 0x4] - bl SeedRng - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r3, 0 - add r0, sp, 0x1C - mov r9, r0 - movs r1, 0x1D - add r1, sp - mov r10, r1 - mov r2, sp - adds r2, 0xC - str r2, [sp, 0x4C] - movs r7, 0xFF - add r4, sp, 0x8 - movs r2, 0 - mov r6, r9 - mov r5, r10 -_080B9CBC: - mov r1, sp - adds r1, r3 - adds r1, 0x4 - ldrb r0, [r1] - orrs r0, r7 - strb r0, [r1] - adds r0, r4, r3 - strb r2, [r0] - lsls r1, r3, 1 - adds r0, r6, r1 - strb r2, [r0] - adds r1, r5, r1 - strb r2, [r1] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x3 - bls _080B9CBC - movs r4, 0 - str r4, [sp, 0x3C] - movs r3, 0 - mov r1, r8 - lsls r0, r1, 16 - lsrs r1, r0, 16 - str r0, [sp, 0x50] - ldr r4, [sp, 0x30] - ldr r0, [sp, 0x34] - adds r2, r4, 0 - muls r2, r0 - str r2, [sp, 0x48] - ldr r2, [sp, 0x3C] - cmp r2, r1 - bcs _080B9D46 - mov r8, r1 -_080B9D00: - ldr r4, [sp, 0x30] - adds r0, r4, 0 - muls r0, r3 - ldr r1, [sp, 0x2C] - adds r6, r1, r0 - ldr r0, [r6, 0x70] - cmp r0, 0 - beq _080B9D3C - movs r7, 0 - cmp r7, r0 - bcs _080B9D3C - adds r4, r6, 0 - adds r4, 0x74 - mov r2, r9 - lsls r1, r3, 1 - movs r5, 0x1 -_080B9D20: - lsls r0, r7, 1 - adds r0, r4, r0 - ldrh r0, [r0] - cmp r0, 0 - bne _080B9D30 - adds r0, r7, r1 - adds r0, r2, r0 - strb r5, [r0] -_080B9D30: - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 - ldr r0, [r6, 0x70] - cmp r7, r0 - bcc _080B9D20 -_080B9D3C: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r8 - bcc _080B9D00 -_080B9D46: - movs r7, 0 - movs r3, 0 - ldr r2, [sp, 0x50] - cmp r2, 0 - beq _080B9E3E - mov r4, sp - adds r4, 0x24 - str r4, [sp, 0x44] - movs r0, 0x25 - add r0, sp - mov r8, r0 -_080B9D5C: - ldr r1, [sp, 0x30] - adds r0, r1, 0 - muls r0, r3 - ldr r2, [sp, 0x2C] - adds r6, r2, r0 - lsls r1, r3, 1 - mov r4, r9 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0x1 - beq _080B9D7C - mov r2, r10 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080B9D86 -_080B9D7C: - ldr r0, [sp, 0x3C] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x3C] -_080B9D86: - mov r4, r9 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080B9DAC - mov r2, r10 - adds r0, r2, r1 - ldrb r2, [r0] - cmp r2, 0 - bne _080B9DAC -_080B9D9A: - lsls r1, r7, 1 - ldr r4, [sp, 0x44] - adds r0, r4, r1 - strb r3, [r0] - add r1, r8 - strb r2, [r1] - b _080B9E2C - .align 2, 0 -_080B9DA8: .4byte gLinkPlayers -_080B9DAC: - mov r2, r9 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080B9DC0 - mov r4, r10 - adds r0, r4, r1 - ldrb r2, [r0] - cmp r2, 0x1 - beq _080B9D9A -_080B9DC0: - mov r2, r9 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080B9E32 - mov r4, r10 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080B9E32 - lsls r5, r7, 1 - ldr r1, [sp, 0x44] - adds r0, r1, r5 - strb r3, [r0] - adds r0, r6, 0 - str r3, [sp, 0x54] - bl sub_80B9BBC - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - adds r0, 0x38 - bl sub_80B9BBC - lsls r0, 24 - lsrs r1, r0, 24 - ldr r3, [sp, 0x54] - cmp r4, 0 - bne _080B9E0A - cmp r1, 0 - beq _080B9E0E - mov r2, r8 - adds r1, r2, r5 - movs r0, 0x1 - strb r0, [r1] - b _080B9E2C -_080B9E0A: - cmp r1, 0 - beq _080B9E26 -_080B9E0E: - str r3, [sp, 0x54] - bl Random - mov r4, r8 - adds r2, r4, r5 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - ands r0, r1 - strb r0, [r2] - ldr r3, [sp, 0x54] - b _080B9E2C -_080B9E26: - mov r2, r8 - adds r0, r2, r5 - strb r1, [r0] -_080B9E2C: - adds r0, r7, 0x1 - lsls r0, 16 - lsrs r7, r0, 16 -_080B9E32: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - ldr r4, [sp, 0x50] - cmp r0, r4 - bcc _080B9D5C -_080B9E3E: - movs r3, 0 - ldr r1, [sp, 0x48] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 3 - ldr r2, [sp, 0x2C] - adds r6, r2, r0 - ldr r1, [sp, 0x4C] -_080B9E4E: - lsls r0, r3, 2 - adds r0, r1, r0 - str r6, [r0] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x3 - bls _080B9E4E - ldr r0, [sp, 0x38] - bl sub_80B9C4C - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 24 - lsrs r1, r0, 24 - ldr r4, [sp, 0x3C] - cmp r4, 0x3 - beq _080B9E9C - cmp r4, 0x3 - bgt _080B9E82 - cmp r4, 0x2 - beq _080B9E8A - b _080B9EF0 -_080B9E82: - ldr r0, [sp, 0x3C] - cmp r0, 0x4 - beq _080B9EBC - b _080B9EF0 -_080B9E8A: - add r2, sp, 0x24 - movs r0, 0x1 - str r0, [sp] - ldr r0, [sp, 0x2C] - ldr r1, [sp, 0x30] - movs r3, 0 - bl sub_80B9BC4 - b _080B9EF0 -_080B9E9C: - ldr r0, _080B9EB8 @ =gUnknown_083D02B4 - lsls r1, 1 - adds r2, r1, r0 - ldrb r3, [r2] - adds r0, 0x1 - adds r1, r0 - ldrb r0, [r1] - add r2, sp, 0x24 - str r0, [sp] - ldr r0, [sp, 0x2C] - ldr r1, [sp, 0x30] - bl sub_80B9BC4 - b _080B9EF0 - .align 2, 0 -_080B9EB8: .4byte gUnknown_083D02B4 -_080B9EBC: - add r6, sp, 0x24 - ldr r4, _080B9F2C @ =gUnknown_083D02BA - lsls r5, r1, 2 - adds r0, r5, r4 - ldrb r3, [r0] - adds r0, r4, 0x1 - adds r0, r5, r0 - ldrb r0, [r0] - str r0, [sp] - ldr r0, [sp, 0x2C] - ldr r1, [sp, 0x30] - adds r2, r6, 0 - bl sub_80B9BC4 - adds r0, r4, 0x2 - adds r0, r5, r0 - ldrb r3, [r0] - adds r4, 0x3 - adds r5, r4 - ldrb r0, [r5] - str r0, [sp] - ldr r0, [sp, 0x2C] - ldr r1, [sp, 0x30] - adds r2, r6, 0 - bl sub_80B9BC4 -_080B9EF0: - ldr r1, [sp, 0x2C] - ldr r2, [sp, 0x48] - adds r6, r1, r2 - ldr r4, _080B9F30 @ =gSaveBlock1 - ldr r1, _080B9F34 @ =0x0000303c - adds r0, r4, r1 - adds r1, r6, 0 - movs r2, 0x38 - bl memcpy - ldr r2, _080B9F38 @ =0x00003074 - adds r4, r2 - adds r1, r6, 0 - adds r1, 0x38 - adds r0, r4, 0 - movs r2, 0x38 - bl memcpy - ldr r0, [sp, 0x40] - bl SeedRng - add sp, 0x58 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080B9F2C: .4byte gUnknown_083D02BA -_080B9F30: .4byte gSaveBlock1 -_080B9F34: .4byte 0x0000303c -_080B9F38: .4byte 0x00003074 - thumb_func_end sub_80B9C6C - - thumb_func_start sub_80B9F3C -sub_80B9F3C: @ 80B9F3C - push {r4,lr} - adds r4, r0, 0 - lsls r1, 24 - cmp r1, 0 - beq _080BA000 - ldrh r0, [r4] - cmp r0, 0 - beq _080BA000 - bl GetPocketByItemId - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - bne _080B9FC8 - ldrh r0, [r4] - movs r1, 0x1 - bl CheckBagHasItem - lsls r0, 24 - cmp r0, 0 - bne _080B9FB8 - ldrh r0, [r4] - movs r1, 0x1 - bl CheckPCHasItem - lsls r0, 24 - cmp r0, 0 - bne _080B9FB8 - ldrh r0, [r4] - movs r1, 0x1 - bl AddBagItem - lsls r0, 24 - cmp r0, 0 - beq _080B9FB8 - ldr r0, _080B9FA4 @ =0x00004001 - ldrh r1, [r4] - bl VarSet - ldr r0, _080B9FA8 @ =gStringVar1 - ldr r1, _080B9FAC @ =gLinkPlayers + 0x8 - bl StringCopy - ldrh r1, [r4] - ldr r0, _080B9FB0 @ =0x00000113 - cmp r1, r0 - bne _080BA000 - ldr r0, _080B9FB4 @ =0x00000853 - bl FlagSet - b _080BA000 - .align 2, 0 -_080B9FA4: .4byte 0x00004001 -_080B9FA8: .4byte gStringVar1 -_080B9FAC: .4byte gLinkPlayers + 0x8 -_080B9FB0: .4byte 0x00000113 -_080B9FB4: .4byte 0x00000853 -_080B9FB8: - ldr r0, _080B9FC4 @ =0x00004001 - movs r1, 0 - bl VarSet - b _080BA000 - .align 2, 0 -_080B9FC4: .4byte 0x00004001 -_080B9FC8: - ldrh r0, [r4] - movs r1, 0x1 - bl AddBagItem - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B9FF8 - ldr r0, _080B9FEC @ =0x00004001 - ldrh r1, [r4] - bl VarSet - ldr r0, _080B9FF0 @ =gStringVar1 - ldr r1, _080B9FF4 @ =gLinkPlayers + 0x8 - bl StringCopy - b _080BA000 - .align 2, 0 -_080B9FEC: .4byte 0x00004001 -_080B9FF0: .4byte gStringVar1 -_080B9FF4: .4byte gLinkPlayers + 0x8 -_080B9FF8: - ldr r0, _080BA008 @ =0x00004001 - movs r1, 0 - bl VarSet -_080BA000: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BA008: .4byte 0x00004001 - thumb_func_end sub_80B9F3C - - thumb_func_start sub_80BA00C -sub_80BA00C: @ 80BA00C - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, _080BA030 @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x5 - bhi _080BA09C - lsls r0, 2 - ldr r1, _080BA034 @ =_080BA038 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080BA030: .4byte gTasks -_080BA034: .4byte _080BA038 - .align 2, 0 -_080BA038: - .4byte _080BA086 - .4byte _080BA086 - .4byte _080BA050 - .4byte _080BA05A - .4byte _080BA074 - .4byte _080BA08E -_080BA050: - bl SetSecretBase2Field_9_AndHideBG - bl sub_8125E2C - b _080BA086 -_080BA05A: - bl sub_8125E6C - lsls r0, 24 - cmp r0, 0 - beq _080BA09C - bl ClearSecretBase2Field_9_2 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - movs r1, 0 - strh r0, [r4, 0x8] - strh r1, [r4, 0xA] - b _080BA09C -_080BA074: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - ble _080BA09C - bl sub_800832C -_080BA086: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080BA09C -_080BA08E: - ldr r0, _080BA0A4 @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _080BA09C - adds r0, r2, 0 - bl DestroyTask -_080BA09C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080BA0A4: .4byte gReceivedRemoteLinkPlayers - thumb_func_end sub_80BA00C - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom_header.inc b/asm/rom_header.inc index 43eec30bb..a852a9f23 100644 --- a/asm/rom_header.inc +++ b/asm/rom_header.inc @@ -66,8 +66,12 @@ RomHeaderChecksum: .byte 0x41 - REVISION .endif .else + .ifdef SAPPHIRE + .byte 0x56 + .else .byte 0x42 .endif + .endif RomHeaderReserved2: .space 2 diff --git a/asm/trader.s b/asm/trader.s deleted file mode 100644 index 3bda1d8dc..000000000 --- a/asm/trader.s +++ /dev/null @@ -1,656 +0,0 @@ - .include "constants/gba_constants.inc" - .include "constants/species_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_810993C -sub_810993C: @ 810993C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - ldr r0, _081099C8 @ =gSaveBlock1 + 0x2D94 - mov r9, r0 - movs r2, 0 -_0810994E: - adds r1, r2, 0x1 - lsls r0, r1, 24 - lsrs r5, r0, 24 - str r1, [sp, 0xC] - cmp r5, 0x3 - bhi _081099AC - movs r1, 0x1 - add r1, r9 - mov r8, r1 - adds r6, r1, r2 - movs r0, 0xB - mov r10, r0 - mov r0, r10 - muls r0, r2 - adds r0, 0x5 - mov r1, r9 - adds r7, r1, r0 -_08109970: - ldrb r0, [r6] - cmp r0, 0 - bne _081099A2 - adds r2, r0, 0 - mov r0, r8 - adds r1, r0, r5 - ldrb r0, [r1] - strb r0, [r6] - strb r2, [r1] - mov r0, sp - adds r1, r7, 0 - bl StringCopy - mov r4, r10 - muls r4, r5 - adds r4, 0x5 - add r4, r9 - adds r0, r7, 0 - adds r1, r4, 0 - bl StringCopy - adds r0, r4, 0 - mov r1, sp - bl StringCopy -_081099A2: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3 - bls _08109970 -_081099AC: - ldr r1, [sp, 0xC] - lsls r0, r1, 24 - lsrs r2, r0, 24 - cmp r2, 0x2 - bls _0810994E - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_081099C8: .4byte gSaveBlock1 + 0x2D94 - thumb_func_end sub_810993C - - thumb_func_start sub_81099CC -sub_81099CC: @ 81099CC - push {r4-r6,lr} - ldr r5, _08109A14 @ =gSaveBlock1 + 0x2D94 - movs r1, 0 - movs r0, 0x2 - strb r0, [r5] - adds r0, r5, 0 - adds r0, 0x31 - strb r1, [r0] - movs r4, 0 - ldr r6, _08109A18 @ =gUnknown_083F62D8 -_081099E0: - movs r0, 0xB - muls r0, r4 - adds r0, 0x5 - adds r0, r5, r0 - lsls r1, r4, 2 - adds r1, r6 - ldr r1, [r1] - bl StringCopy - adds r1, r5, 0x1 - adds r1, r4 - ldr r0, _08109A1C @ =gTraderDecorations - adds r0, r4, r0 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _081099E0 - bl sub_810993C - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08109A14: .4byte gSaveBlock1 + 0x2D94 -_08109A18: .4byte gUnknown_083F62D8 -_08109A1C: .4byte gTraderDecorations - thumb_func_end sub_81099CC - - thumb_func_start sub_8109A20 -sub_8109A20: @ 8109A20 - ldr r0, _08109A2C @ =gSaveBlock1 + 0x2D94 - adds r0, 0x31 - movs r1, 0 - strb r1, [r0] - bx lr - .align 2, 0 -_08109A2C: .4byte gSaveBlock1 + 0x2D94 - thumb_func_end sub_8109A20 - - thumb_func_start sub_8109A30 -sub_8109A30: @ 8109A30 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _08109A44 @ =0x00004020 - bl VarSet - pop {r0} - bx r0 - .align 2, 0 -_08109A44: .4byte 0x00004020 - thumb_func_end sub_8109A30 - - thumb_func_start sub_8109A48 -sub_8109A48: @ 8109A48 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - movs r6, 0x1 - movs r5, 0 - ldr r0, _08109AB8 @ =gSaveBlock1 + 0x2D94 - movs r4, 0 - adds r7, r0, 0x1 - adds r1, r7, 0 -_08109A64: - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _08109A72 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_08109A72: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _08109A64 - lsls r3, r6, 25 - movs r0, 0x80 - lsls r0, 18 - adds r3, r0 - lsrs r3, 24 - movs r0, 0 - movs r1, 0x1 - movs r2, 0xC - bl MenuDrawTextWindow - movs r4, 0 - mov r1, r9 - lsls r1, 2 - mov r8, r1 -_08109A98: - adds r1, r7, r4 - ldrb r0, [r1] - cmp r0, 0 - beq _08109ADE - cmp r0, 0x78 - bls _08109AC0 - lsls r2, r5, 25 - movs r0, 0x80 - lsls r0, 18 - adds r2, r0 - lsrs r2, 24 - ldr r0, _08109ABC @ =gOtherText_FiveQuestionsAndSlash - movs r1, 0x1 - bl MenuPrint - b _08109AD8 - .align 2, 0 -_08109AB8: .4byte gSaveBlock1 + 0x2D94 -_08109ABC: .4byte gOtherText_FiveQuestionsAndSlash -_08109AC0: - ldrb r0, [r1] - lsls r0, 5 - ldr r1, _08109B28 @ =gDecorations + 0x1 - adds r0, r1 - lsls r2, r5, 25 - movs r1, 0x80 - lsls r1, 18 - adds r2, r1 - lsrs r2, 24 - movs r1, 0x1 - bl MenuPrint -_08109AD8: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_08109ADE: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _08109A98 - ldr r0, _08109B2C @ =gOtherText_CancelNoTerminator - lsls r2, r5, 25 - movs r1, 0x80 - lsls r1, 18 - adds r2, r1 - lsrs r2, 24 - movs r1, 0x1 - bl MenuPrint - movs r0, 0 - str r0, [sp] - movs r0, 0xB - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0x1 - movs r2, 0x2 - adds r3, r6, 0 - bl InitMenu - ldr r1, _08109B30 @ =gTasks - mov r0, r8 - add r0, r9 - lsls r0, 3 - adds r0, r1 - strh r5, [r0, 0xA] - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08109B28: .4byte gDecorations + 0x1 -_08109B2C: .4byte gOtherText_CancelNoTerminator -_08109B30: .4byte gTasks - thumb_func_end sub_8109A48 - - thumb_func_start sub_8109B34 -sub_8109B34: @ 8109B34 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x78 - bls _08109B54 - ldr r1, _08109B4C @ =gSpecialVar_0x8004 - ldr r2, _08109B50 @ =0x0000ffff - adds r0, r2, 0 - strh r0, [r1] - b _08109B58 - .align 2, 0 -_08109B4C: .4byte gSpecialVar_0x8004 -_08109B50: .4byte 0x0000ffff -_08109B54: - ldr r0, _08109B78 @ =gSpecialVar_0x8004 - strh r1, [r0] -_08109B58: - bl HandleDestroyMenuCursors - movs r0, 0 - movs r1, 0x1 - movs r2, 0xC - movs r3, 0xC - bl MenuZeroFillWindowRect - adds r0, r4, 0 - bl DestroyTask - bl EnableBothScriptContexts - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08109B78: .4byte gSpecialVar_0x8004 - thumb_func_end sub_8109B34 - - thumb_func_start sub_8109B7C -sub_8109B7C: @ 8109B7C - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - ldr r6, _08109BA4 @ =gSaveBlock1 + 0x2D94 - ldr r0, _08109BA8 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08109BAC - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - negs r0, r0 - bl MoveMenuCursor - b _08109C3E - .align 2, 0 -_08109BA4: .4byte gSaveBlock1 + 0x2D94 -_08109BA8: .4byte gMain -_08109BAC: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08109BC2 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl MoveMenuCursor - b _08109C3E -_08109BC2: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08109C28 - movs r0, 0x5 - bl PlaySE - ldr r5, _08109BFC @ =gSpecialVar_0x8005 - bl GetMenuCursorPos - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - ldr r1, _08109C00 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0xA - ldrsh r0, [r0, r1] - ldrh r2, [r5] - cmp r0, r2 - bne _08109C04 - adds r0, r4, 0 - movs r1, 0 - bl sub_8109B34 - b _08109C3E - .align 2, 0 -_08109BFC: .4byte gSpecialVar_0x8005 -_08109C00: .4byte gTasks -_08109C04: - ldr r0, _08109C24 @ =gStringVar1 - movs r1, 0xB - muls r1, r2 - adds r1, 0x5 - adds r1, r6 - bl StringCopy - adds r0, r6, 0x1 - ldrh r5, [r5] - adds r0, r5 - ldrb r1, [r0] - adds r0, r4, 0 - bl sub_8109B34 - b _08109C3E - .align 2, 0 -_08109C24: .4byte gStringVar1 -_08109C28: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08109C3E - movs r0, 0x5 - bl PlaySE - adds r0, r5, 0 - movs r1, 0 - bl sub_8109B34 -_08109C3E: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8109B7C - - thumb_func_start sub_8109C44 -sub_8109C44: @ 8109C44 - ldr r0, _08109C50 @ =gSaveBlock1 + 0x2D94 - ldr r1, _08109C54 @ =gScriptResult - adds r0, 0x31 - ldrb r0, [r0] - strh r0, [r1] - bx lr - .align 2, 0 -_08109C50: .4byte gSaveBlock1 + 0x2D94 -_08109C54: .4byte gScriptResult - thumb_func_end sub_8109C44 - - thumb_func_start sub_8109C58 -sub_8109C58: @ 8109C58 - push {r4,r5,lr} - movs r4, 0 - ldr r5, _08109C70 @ =gScriptResult -_08109C5E: - adds r0, r4, 0 - bl sub_8134194 - lsls r0, 24 - cmp r0, 0 - beq _08109C74 - movs r0, 0 - strh r0, [r5] - b _08109C84 - .align 2, 0 -_08109C70: .4byte gScriptResult -_08109C74: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x7 - bls _08109C5E - ldr r1, _08109C8C @ =gScriptResult - movs r0, 0x1 - strh r0, [r1] -_08109C84: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08109C8C: .4byte gScriptResult - thumb_func_end sub_8109C58 - - thumb_func_start sub_8109C90 -sub_8109C90: @ 8109C90 - push {r4-r6,lr} - ldr r6, _08109CDC @ =gScriptResult - movs r0, 0 - strh r0, [r6] - ldr r4, _08109CE0 @ =gDecorations - ldr r5, _08109CE4 @ =gSpecialVar_0x8004 - ldrh r0, [r5] - lsls r0, 5 - adds r2, r0, r4 - ldr r0, _08109CE8 @ =gSpecialVar_0x8006 - ldrh r0, [r0] - lsls r0, 5 - adds r0, r4 - ldrb r1, [r2, 0x13] - ldrb r0, [r0, 0x13] - cmp r1, r0 - beq _08109CD6 - adds r0, r1, 0 - bl sub_8133F9C - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _08109CD6 - ldr r0, _08109CEC @ =gStringVar2 - ldrh r1, [r5] - lsls r1, 5 - adds r1, r4 - ldrb r1, [r1, 0x13] - bl sub_80FE7D4 - movs r0, 0x1 - strh r0, [r6] -_08109CD6: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08109CDC: .4byte gScriptResult -_08109CE0: .4byte gDecorations -_08109CE4: .4byte gSpecialVar_0x8004 -_08109CE8: .4byte gSpecialVar_0x8006 -_08109CEC: .4byte gStringVar2 - thumb_func_end sub_8109C90 - - thumb_func_start sub_8109CF0 -sub_8109CF0: @ 8109CF0 - push {lr} - ldr r0, _08109D00 @ =sub_80FE7A8 - movs r1, 0 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_08109D00: .4byte sub_80FE7A8 - thumb_func_end sub_8109CF0 - - thumb_func_start sub_8109D04 -sub_8109D04: @ 8109D04 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - bl HandleDestroyMenuCursors - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - movs r0, 0 - bl DestroyVerticalScrollIndicator - movs r0, 0x1 - bl DestroyVerticalScrollIndicator - ldr r0, _08109D6C @ =gUnknown_020388F7 - movs r1, 0x8 - bl sub_80F9520 - bl BuyMenuFreeMemory - bl sub_80FEFA4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08109D8C - ldr r5, _08109D70 @ =gSpecialVar_0x8006 - ldr r0, _08109D74 @ =gUnknown_020388F5 - ldrb r1, [r0] - ldr r0, _08109D78 @ =gUnknown_020388D0 - ldr r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strh r0, [r5] - ldr r0, _08109D7C @ =gStringVar3 - ldr r1, _08109D80 @ =gSpecialVar_0x8004 - ldrh r1, [r1] - lsls r1, 5 - ldr r4, _08109D84 @ =gDecorations + 0x1 - adds r1, r4 - bl StringCopy - ldr r0, _08109D88 @ =gStringVar2 - ldrh r1, [r5] - lsls r1, 5 - adds r1, r4 - bl StringCopy - b _08109D94 - .align 2, 0 -_08109D6C: .4byte gUnknown_020388F7 -_08109D70: .4byte gSpecialVar_0x8006 -_08109D74: .4byte gUnknown_020388F5 -_08109D78: .4byte gUnknown_020388D0 -_08109D7C: .4byte gStringVar3 -_08109D80: .4byte gSpecialVar_0x8004 -_08109D84: .4byte gDecorations + 0x1 -_08109D88: .4byte gStringVar2 -_08109D8C: - ldr r1, _08109DA4 @ =gSpecialVar_0x8006 - ldr r2, _08109DA8 @ =0x0000ffff - adds r0, r2, 0 - strh r0, [r1] -_08109D94: - adds r0, r6, 0 - bl DestroyTask - bl EnableBothScriptContexts - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08109DA4: .4byte gSpecialVar_0x8006 -_08109DA8: .4byte 0x0000ffff - thumb_func_end sub_8109D04 - - thumb_func_start sub_8109DAC -sub_8109DAC: @ 8109DAC - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl HandleDestroyMenuCursors - movs r0, 0 - movs r1, 0 - movs r2, 0x1D - movs r3, 0x13 - bl MenuZeroFillWindowRect - ldr r1, _08109DDC @ =gSpecialVar_0x8006 - movs r0, 0 - strh r0, [r1] - adds r0, r4, 0 - bl DestroyTask - bl EnableBothScriptContexts - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08109DDC: .4byte gSpecialVar_0x8006 - thumb_func_end sub_8109DAC - - thumb_func_start sub_8109DE0 -sub_8109DE0: @ 8109DE0 - push {r4-r6,lr} - ldr r4, _08109E20 @ =gSaveBlock1 + 0x2D94 - ldr r6, _08109E24 @ =gSpecialVar_0x8006 - ldrb r0, [r6] - bl sub_81340A8 - ldr r0, _08109E28 @ =gSpecialVar_0x8004 - ldrb r0, [r0] - bl IsThereStorageSpaceForDecoration - ldr r5, _08109E2C @ =gSpecialVar_0x8005 - ldrh r1, [r5] - movs r0, 0xB - muls r0, r1 - adds r0, 0x5 - adds r0, r4 - ldr r1, _08109E30 @ =gSaveBlock2 - bl StringCopy - adds r0, r4, 0x1 - ldrh r5, [r5] - adds r0, r5 - ldrh r1, [r6] - strb r1, [r0] - bl sub_810993C - adds r4, 0x31 - movs r0, 0x1 - strb r0, [r4] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08109E20: .4byte gSaveBlock1 + 0x2D94 -_08109E24: .4byte gSpecialVar_0x8006 -_08109E28: .4byte gSpecialVar_0x8004 -_08109E2C: .4byte gSpecialVar_0x8005 -_08109E30: .4byte gSaveBlock2 - thumb_func_end sub_8109DE0 - - thumb_func_start sub_8109E34 -sub_8109E34: @ 8109E34 - push {lr} - ldr r0, _08109E4C @ =sub_8109B7C - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - bl sub_8109A48 - pop {r0} - bx r0 - .align 2, 0 -_08109E4C: .4byte sub_8109B7C - thumb_func_end sub_8109E34 - - .align 2, 0 @ Don't pad with nop. diff --git a/constants/misc_constants.inc b/constants/misc_constants.inc index 438fed6b6..5f4330928 100644 --- a/constants/misc_constants.inc +++ b/constants/misc_constants.inc @@ -32,8 +32,14 @@ .equiv MALE, 0 .equiv FEMALE, 1 + .ifdef ENGLISH .equiv GAME_LANGUAGE, 2 - + .else + .ifdef GERMAN + .equiv GAME_LANGUAGE, 5 + .endif + .endif + .equiv ENEMY_TYPE1, 0 .equiv ENEMY_TYPE2, 1 .equiv PLAYER_TYPE1, 2 diff --git a/constants/version.inc b/constants/version.inc index 33d2804fc..c93e439f4 100644 --- a/constants/version.inc +++ b/constants/version.inc @@ -1,4 +1,10 @@ .ifdef SAPPHIRE + .equiv GAME_VERSION, 1 + .else + .equiv GAME_VERSION, 2 + .endif + + .ifdef SAPPHIRE .set BGM_EVIL_TEAM, BGM_AQA_0 .set BGM_GOOD_TEAM, BGM_MGM0 .else diff --git a/data-de/items.inc b/data-de/items.inc deleted file mode 100644 index ab23ef5a0..000000000 --- a/data-de/items.inc +++ /dev/null @@ -1,5236 +0,0 @@ - .align 2 -gItems:: @ 83C5564 - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "MEISTERBALL$", 14 - .2byte ITEM_MASTER_BALL - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_MasterBall - .byte 0 - .byte 0 - .byte POCKET_POKE_BALLS - .byte 0 - .4byte NULL - .4byte 2 - .4byte ItemUseInBattle_PokeBall - .4byte 0 - - .string "HYPERBALL$", 14 - .2byte ITEM_ULTRA_BALL - .2byte 1200 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_UltraBall - .byte 0 - .byte 0 - .byte POCKET_POKE_BALLS - .byte 1 - .4byte NULL - .4byte 2 - .4byte ItemUseInBattle_PokeBall - .4byte 1 - - .string "SUPERBALL$", 14 - .2byte ITEM_GREAT_BALL - .2byte 600 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_GreatBall - .byte 0 - .byte 0 - .byte POCKET_POKE_BALLS - .byte 2 - .4byte NULL - .4byte 2 - .4byte ItemUseInBattle_PokeBall - .4byte 2 - - .string "POKéBALL$", 14 - .2byte ITEM_POKE_BALL - .2byte 200 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_PokeBall - .byte 0 - .byte 0 - .byte POCKET_POKE_BALLS - .byte 3 - .4byte NULL - .4byte 2 - .4byte ItemUseInBattle_PokeBall - .4byte 3 - - .string "SAFARIBALL$", 14 - .2byte ITEM_SAFARI_BALL - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_SafariBall - .byte 0 - .byte 0 - .byte POCKET_POKE_BALLS - .byte 4 - .4byte NULL - .4byte 2 - .4byte ItemUseInBattle_PokeBall - .4byte 4 - - .string "NETZBALL$", 14 - .2byte ITEM_NET_BALL - .2byte 1000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_NetBall - .byte 0 - .byte 0 - .byte POCKET_POKE_BALLS - .byte 5 - .4byte NULL - .4byte 2 - .4byte ItemUseInBattle_PokeBall - .4byte 5 - - .string "TAUCHBALL$", 14 - .2byte ITEM_DIVE_BALL - .2byte 1000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_DiveBall - .byte 0 - .byte 0 - .byte POCKET_POKE_BALLS - .byte 6 - .4byte NULL - .4byte 2 - .4byte ItemUseInBattle_PokeBall - .4byte 6 - - .string "NESTBALL$", 14 - .2byte ITEM_NEST_BALL - .2byte 1000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_NestBall - .byte 0 - .byte 0 - .byte POCKET_POKE_BALLS - .byte 7 - .4byte NULL - .4byte 2 - .4byte ItemUseInBattle_PokeBall - .4byte 7 - - .string "WIEDERBALL$", 14 - .2byte ITEM_REPEAT_BALL - .2byte 1000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_RepeatBall - .byte 0 - .byte 0 - .byte POCKET_POKE_BALLS - .byte 8 - .4byte NULL - .4byte 2 - .4byte ItemUseInBattle_PokeBall - .4byte 8 - - .string "TIMERBALL$", 14 - .2byte ITEM_TIMER_BALL - .2byte 1000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TimerBall - .byte 0 - .byte 0 - .byte POCKET_POKE_BALLS - .byte 9 - .4byte NULL - .4byte 2 - .4byte ItemUseInBattle_PokeBall - .4byte 9 - - .string "LUXUSBALL$", 14 - .2byte ITEM_LUXURY_BALL - .2byte 1000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_LuxuryBall - .byte 0 - .byte 0 - .byte POCKET_POKE_BALLS - .byte 10 - .4byte NULL - .4byte 2 - .4byte ItemUseInBattle_PokeBall - .4byte 10 - - .string "PREMIERBALL$", 14 - .2byte ITEM_PREMIER_BALL - .2byte 200 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_PremierBall - .byte 0 - .byte 0 - .byte POCKET_POKE_BALLS - .byte 11 - .4byte NULL - .4byte 2 - .4byte ItemUseInBattle_PokeBall - .4byte 11 - - .string "TRANK$", 14 - .2byte ITEM_POTION - .2byte 300 @ price - .byte HOLD_EFFECT_NONE - .byte 20 - .4byte gItemDescription_Potion - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "GEGENGIFT$", 14 - .2byte ITEM_ANTIDOTE - .2byte 100 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Antidote - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "FEUERHEILER$", 14 - .2byte ITEM_BURN_HEAL - .2byte 250 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_BurnHeal - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "EISHEILER$", 14 - .2byte ITEM_ICE_HEAL - .2byte 250 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_IceHeal - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "AUFWECKER$", 14 - .2byte ITEM_AWAKENING - .2byte 250 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Awakening - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "PARA-HEILER$", 14 - .2byte ITEM_PARALYZE_HEAL - .2byte 200 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_ParalyzeHeal - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "TOP-GENESUNG$", 14 - .2byte ITEM_FULL_RESTORE - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 255 - .4byte gItemDescription_FullRestore - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "TOP-TRANK$", 14 - .2byte ITEM_MAX_POTION - .2byte 2500 @ price - .byte HOLD_EFFECT_NONE - .byte 255 - .4byte gItemDescription_MaxPotion - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "HYPERTRANK$", 14 - .2byte ITEM_HYPER_POTION - .2byte 1200 @ price - .byte HOLD_EFFECT_NONE - .byte 200 - .4byte gItemDescription_HyperPotion - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "SUPERTRANK$", 14 - .2byte ITEM_SUPER_POTION - .2byte 700 @ price - .byte HOLD_EFFECT_NONE - .byte 50 - .4byte gItemDescription_SuperPotion - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "HYPERHEILER$", 14 - .2byte ITEM_FULL_HEAL - .2byte 600 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_FullHeal - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "BELEBER$", 14 - .2byte ITEM_REVIVE - .2byte 1500 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Revive - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "TOP-BELEBER$", 14 - .2byte ITEM_MAX_REVIVE - .2byte 4000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_MaxRevive - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "TAFELWASSER$", 14 - .2byte ITEM_FRESH_WATER - .2byte 200 @ price - .byte HOLD_EFFECT_NONE - .byte 50 - .4byte gItemDescription_FreshWater - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "SPRUDEL$", 14 - .2byte ITEM_SODA_POP - .2byte 300 @ price - .byte HOLD_EFFECT_NONE - .byte 60 - .4byte gItemDescription_SodaPop - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "LIMONADE$", 14 - .2byte ITEM_LEMONADE - .2byte 350 @ price - .byte HOLD_EFFECT_NONE - .byte 80 - .4byte gItemDescription_Lemonade - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "KUHMUH-MILCH$", 14 - .2byte ITEM_MOOMOO_MILK - .2byte 500 @ price - .byte HOLD_EFFECT_NONE - .byte 100 - .4byte gItemDescription_MoomooMilk - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "ENERGIESTAUB$", 14 - .2byte ITEM_ENERGY_POWDER - .2byte 500 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_EnergyPowder - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "KRAFTWURZEL$", 14 - .2byte ITEM_ENERGY_ROOT - .2byte 800 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_EnergyRoot - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "HEILPUDER$", 14 - .2byte ITEM_HEAL_POWDER - .2byte 450 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_HealPowder - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "VITALKRAUT$", 14 - .2byte ITEM_REVIVAL_HERB - .2byte 2800 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_RevivalHerb - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "ÄTHER$", 14 - .2byte ITEM_ETHER - .2byte 1200 @ price - .byte HOLD_EFFECT_NONE - .byte 10 - .4byte gItemDescription_Ether - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_PPRecovery - .4byte 1 - .4byte ItemUseInBattle_PPRecovery - .4byte 0 - - .string "TOP-ÄTHER$", 14 - .2byte ITEM_MAX_ETHER - .2byte 2000 @ price - .byte HOLD_EFFECT_NONE - .byte 255 - .4byte gItemDescription_MaxEther - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_PPRecovery - .4byte 1 - .4byte ItemUseInBattle_PPRecovery - .4byte 0 - - .string "ELIXIER$", 14 - .2byte ITEM_ELIXIR - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 10 - .4byte gItemDescription_Elixir - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_PPRecovery - .4byte 1 - .4byte ItemUseInBattle_PPRecovery - .4byte 0 - - .string "TOP-ELIXIER$", 14 - .2byte ITEM_MAX_ELIXIR - .2byte 4500 @ price - .byte HOLD_EFFECT_NONE - .byte 255 - .4byte gItemDescription_MaxElixir - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_PPRecovery - .4byte 1 - .4byte ItemUseInBattle_PPRecovery - .4byte 0 - - .string "LAVAKEKS$", 14 - .2byte ITEM_LAVA_COOKIE - .2byte 200 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_LavaCookie - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "BLAUE FLÖTE$", 14 - .2byte ITEM_BLUE_FLUTE - .2byte 100 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_BlueFlute - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "GELBE FLÖTE$", 14 - .2byte ITEM_YELLOW_FLUTE - .2byte 200 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_YellowFlute - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "ROTE FLÖTE$", 14 - .2byte ITEM_RED_FLUTE - .2byte 300 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_RedFlute - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "SCHW. FLÖTE$", 14 - .2byte ITEM_BLACK_FLUTE - .2byte 400 @ price - .byte HOLD_EFFECT_NONE - .byte 50 - .4byte gItemDescription_BlackFlute - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_BlackWhiteFlute - .4byte 0 - .4byte NULL - .4byte 0 - - .string "WEISSE FLÖTE$", 14 - .2byte ITEM_WHITE_FLUTE - .2byte 500 @ price - .byte HOLD_EFFECT_NONE - .byte 150 - .4byte gItemDescription_WhiteFlute - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_BlackWhiteFlute - .4byte 0 - .4byte NULL - .4byte 0 - - .string "BEERENSAFT$", 14 - .2byte ITEM_BERRY_JUICE - .2byte 100 @ price - .byte HOLD_EFFECT_RESTORE_HP - .byte 20 - .4byte gItemDescription_BerryJuice - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "ZAUBERASCHE$", 14 - .2byte ITEM_SACRED_ASH - .2byte 200 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_SacredAsh - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_SacredAsh - .4byte 0 - .4byte NULL - .4byte 0 - - .string "KÜSTENSALZ$", 14 - .2byte ITEM_SHOAL_SALT - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_ShoalSalt - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "KÜSTENSCHALE$", 14 - .2byte ITEM_SHOAL_SHELL - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_ShoalShell - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "PURPURSTÜCK$", 14 - .2byte ITEM_RED_SHARD - .2byte 200 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_RedShard - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "INDIGOSTÜCK$", 14 - .2byte ITEM_BLUE_SHARD - .2byte 200 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_BlueShard - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "GELBSTÜCK$", 14 - .2byte ITEM_YELLOW_SHARD - .2byte 200 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_YellowShard - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "GRÜNSTÜCK$", 14 - .2byte ITEM_GREEN_SHARD - .2byte 200 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_GreenShard - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "KP-PLUS$", 14 - .2byte ITEM_HP_UP - .2byte 9800 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_HPUp - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 0 - .4byte NULL - .4byte 0 - - .string "PROTEIN$", 14 - .2byte ITEM_PROTEIN - .2byte 9800 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Protein - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 0 - .4byte NULL - .4byte 0 - - .string "EISEN$", 14 - .2byte ITEM_IRON - .2byte 9800 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Iron - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 0 - .4byte NULL - .4byte 0 - - .string "CARBON$", 14 - .2byte ITEM_CARBOS - .2byte 9800 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Carbos - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 0 - .4byte NULL - .4byte 0 - - .string "KALZIUM$", 14 - .2byte ITEM_CALCIUM - .2byte 9800 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Calcium - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 0 - .4byte NULL - .4byte 0 - - .string "SONDERBONBON$", 14 - .2byte ITEM_RARE_CANDY - .2byte 4800 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_RareCandy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_RareCandy - .4byte 0 - .4byte NULL - .4byte 0 - - .string "AP-PLUS$", 14 - .2byte ITEM_PP_UP - .2byte 9800 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_PPUp - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_PPUp - .4byte 0 - .4byte NULL - .4byte 0 - - .string "ZINK$", 14 - .2byte ITEM_ZINC - .2byte 9800 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Zinc - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 0 - .4byte NULL - .4byte 0 - - .string "AP-TOP$", 14 - .2byte ITEM_PP_MAX - .2byte 9800 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_PPMax - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_PPUp - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "MEGABLOCK$", 14 - .2byte ITEM_GUARD_SPEC - .2byte 700 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_GuardSpec - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 2 - .4byte ItemUseInBattle_StatIncrease - .4byte 0 - - .string "ANGRIFFPLUS$", 14 - .2byte ITEM_DIRE_HIT - .2byte 650 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_DireHit - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 2 - .4byte ItemUseInBattle_StatIncrease - .4byte 0 - - .string "X-ANGRIFF$", 14 - .2byte ITEM_X_ATTACK - .2byte 500 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_XAttack - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 2 - .4byte ItemUseInBattle_StatIncrease - .4byte 0 - - .string "X-ABWEHR$", 14 - .2byte ITEM_X_DEFEND - .2byte 550 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_XDefend - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 2 - .4byte ItemUseInBattle_StatIncrease - .4byte 0 - - .string "X-TEMPO$", 14 - .2byte ITEM_X_SPEED - .2byte 350 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_XSpeed - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 2 - .4byte ItemUseInBattle_StatIncrease - .4byte 0 - - .string "X-TREFFER$", 14 - .2byte ITEM_X_ACCURACY - .2byte 950 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_XAccuracy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 2 - .4byte ItemUseInBattle_StatIncrease - .4byte 0 - - .string "X-SPEZIAL$", 14 - .2byte ITEM_X_SPECIAL - .2byte 350 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_XSpecial - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 2 - .4byte ItemUseInBattle_StatIncrease - .4byte 0 - - .string "POKéPUPPE$", 14 - .2byte ITEM_POKE_DOLL - .2byte 1000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_PokeDoll - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 2 - .4byte ItemUseInBattle_Escape - .4byte 0 - - .string "ENECO-RUTE$", 14 - .2byte ITEM_FLUFFY_TAIL - .2byte 1000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_FluffyTail - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 2 - .4byte ItemUseInBattle_Escape - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "SUPERSCHUTZ$", 14 - .2byte ITEM_SUPER_REPEL - .2byte 500 @ price - .byte HOLD_EFFECT_NONE - .byte 200 - .4byte gItemDescription_SuperRepel - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_Repel - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TOP-SCHUTZ$", 14 - .2byte ITEM_MAX_REPEL - .2byte 700 @ price - .byte HOLD_EFFECT_NONE - .byte 250 - .4byte gItemDescription_MaxRepel - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_Repel - .4byte 0 - .4byte NULL - .4byte 0 - - .string "FLUCHTSEIL$", 14 - .2byte ITEM_ESCAPE_ROPE - .2byte 550 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_EscapeRope - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 2 - .4byte ItemUseOutOfBattle_EscapeRope - .4byte 0 - .4byte NULL - .4byte 0 - - .string "SCHUTZ$", 14 - .2byte ITEM_REPEL - .2byte 350 @ price - .byte HOLD_EFFECT_NONE - .byte 100 - .4byte gItemDescription_Repel - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_Repel - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "SONNENSTEIN$", 14 - .2byte ITEM_SUN_STONE - .2byte 2100 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_SunStone - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_EvolutionStone - .4byte 0 - .4byte NULL - .4byte 0 - - .string "MONDSTEIN$", 14 - .2byte ITEM_MOON_STONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_MoonStone - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_EvolutionStone - .4byte 0 - .4byte NULL - .4byte 0 - - .string "FEUERSTEIN$", 14 - .2byte ITEM_FIRE_STONE - .2byte 2100 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_FireStone - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_EvolutionStone - .4byte 0 - .4byte NULL - .4byte 0 - - .string "DONNERSTEIN$", 14 - .2byte ITEM_THUNDER_STONE - .2byte 2100 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_ThunderStone - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_EvolutionStone - .4byte 0 - .4byte NULL - .4byte 0 - - .string "WASSERSTEIN$", 14 - .2byte ITEM_WATER_STONE - .2byte 2100 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_WaterStone - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_EvolutionStone - .4byte 0 - .4byte NULL - .4byte 0 - - .string "BLATTSTEIN$", 14 - .2byte ITEM_LEAF_STONE - .2byte 2100 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_LeafStone - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_EvolutionStone - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "MINIPILZ$", 14 - .2byte ITEM_TINY_MUSHROOM - .2byte 500 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TinyMushroom - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "RIESENPILZ$", 14 - .2byte ITEM_BIG_MUSHROOM - .2byte 5000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_BigMushroom - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "PERLE$", 14 - .2byte ITEM_PEARL - .2byte 1400 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Pearl - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "RIESENPERLE$", 14 - .2byte ITEM_BIG_PEARL - .2byte 7500 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_BigPearl - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "STERNENSTAUB$", 14 - .2byte ITEM_STARDUST - .2byte 2000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Stardust - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "STERNENSTÜCK$", 14 - .2byte ITEM_STAR_PIECE - .2byte 9800 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_StarPiece - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "NUGGET$", 14 - .2byte ITEM_NUGGET - .2byte 10000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Nugget - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "HERZSCHUPPE$", 14 - .2byte ITEM_HEART_SCALE - .2byte 100 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_HeartScale - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "ZIGZAGBRIEF$", 14 - .2byte ITEM_ORANGE_MAIL - .2byte 50 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_OrangeMail - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 0 - .4byte ItemUseOutOfBattle_Mail - .4byte 0 - .4byte NULL - .4byte 0 - - .string "HAFENBRIEF$", 14 - .2byte ITEM_HARBOR_MAIL - .2byte 50 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_HarborMail - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 0 - .4byte ItemUseOutOfBattle_Mail - .4byte 0 - .4byte NULL - .4byte 1 - - .string "GLITZERBRIEF$", 14 - .2byte ITEM_GLITTER_MAIL - .2byte 50 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_GlitterMail - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 0 - .4byte ItemUseOutOfBattle_Mail - .4byte 0 - .4byte NULL - .4byte 2 - - .string "EILBRIEF$", 14 - .2byte ITEM_MECH_MAIL - .2byte 50 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_MechMail - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 0 - .4byte ItemUseOutOfBattle_Mail - .4byte 0 - .4byte NULL - .4byte 3 - - .string "WALDBRIEF$", 14 - .2byte ITEM_WOOD_MAIL - .2byte 50 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_WoodMail - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 0 - .4byte ItemUseOutOfBattle_Mail - .4byte 0 - .4byte NULL - .4byte 4 - - .string "WELLENBRIEF$", 14 - .2byte ITEM_WAVE_MAIL - .2byte 50 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_WaveMail - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 0 - .4byte ItemUseOutOfBattle_Mail - .4byte 0 - .4byte NULL - .4byte 5 - - .string "PERLENBRIEF$", 14 - .2byte ITEM_BEAD_MAIL - .2byte 50 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_BeadMail - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 0 - .4byte ItemUseOutOfBattle_Mail - .4byte 0 - .4byte NULL - .4byte 6 - - .string "DUNKELBRIEF$", 14 - .2byte ITEM_SHADOW_MAIL - .2byte 50 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_ShadowMail - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 0 - .4byte ItemUseOutOfBattle_Mail - .4byte 0 - .4byte NULL - .4byte 7 - - .string "TROPENBRIEF$", 14 - .2byte ITEM_TROPIC_MAIL - .2byte 50 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TropicMail - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 0 - .4byte ItemUseOutOfBattle_Mail - .4byte 0 - .4byte NULL - .4byte 8 - - .string "TRAUMBRIEF$", 14 - .2byte ITEM_DREAM_MAIL - .2byte 50 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_DreamMail - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 0 - .4byte ItemUseOutOfBattle_Mail - .4byte 0 - .4byte NULL - .4byte 9 - - .string "EDELBRIEF$", 14 - .2byte ITEM_FAB_MAIL - .2byte 50 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_FabMail - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 0 - .4byte ItemUseOutOfBattle_Mail - .4byte 0 - .4byte NULL - .4byte 10 - - .string "RETROBRIEF$", 14 - .2byte ITEM_RETRO_MAIL - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_RetroMail - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 0 - .4byte ItemUseOutOfBattle_Mail - .4byte 0 - .4byte NULL - .4byte 11 - - .string "AMRENABEERE$", 14 - .2byte ITEM_CHERI_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_CURE_PAR - .byte 0 - .4byte gItemDescription_CheriBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "MARONBEERE$", 14 - .2byte ITEM_CHESTO_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_CURE_SLP - .byte 0 - .4byte gItemDescription_ChestoBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "PIRSIFBEERE$", 14 - .2byte ITEM_PECHA_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_CURE_PSN - .byte 0 - .4byte gItemDescription_PechaBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "FRAGIABEERE$", 14 - .2byte ITEM_RAWST_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_CURE_BRN - .byte 0 - .4byte gItemDescription_RawstBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "WILBIRBEERE$", 14 - .2byte ITEM_ASPEAR_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_CURE_FRZ - .byte 0 - .4byte gItemDescription_AspearBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "JONAGOBEERE$", 14 - .2byte ITEM_LEPPA_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_RESTORE_PP - .byte 10 - .4byte gItemDescription_LeppaBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 1 - .4byte ItemUseOutOfBattle_PPRecovery - .4byte 1 - .4byte ItemUseInBattle_PPRecovery - .4byte 0 - - .string "SINELBEERE$", 14 - .2byte ITEM_ORAN_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_RESTORE_HP - .byte 10 - .4byte gItemDescription_OranBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "PERSIMBEERE$", 14 - .2byte ITEM_PERSIM_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_CURE_CONFUSION - .byte 0 - .4byte gItemDescription_PersimBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "PRUNUSBEERE$", 14 - .2byte ITEM_LUM_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_CURE_STATUS - .byte 0 - .4byte gItemDescription_LumBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "TSITRUBEERE$", 14 - .2byte ITEM_SITRUS_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_RESTORE_HP - .byte 30 - .4byte gItemDescription_SitrusBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "GIEFEBEERE$", 14 - .2byte ITEM_FIGY_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_CONFUSE_SPICY - .byte 8 - .4byte gItemDescription_FigyBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "WIKIBEERE$", 14 - .2byte ITEM_WIKI_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_CONFUSE_DRY - .byte 8 - .4byte gItemDescription_WikiBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "MAGOBEERE$", 14 - .2byte ITEM_MAGO_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_CONFUSE_SWEET - .byte 8 - .4byte gItemDescription_MagoBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "GAUVEBEERE$", 14 - .2byte ITEM_AGUAV_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_CONFUSE_BITTER - .byte 8 - .4byte gItemDescription_AguavBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "YAPABEERE$", 14 - .2byte ITEM_IAPAPA_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_CONFUSE_SOUR - .byte 8 - .4byte gItemDescription_IapapaBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "HIMMIHBEERE$", 14 - .2byte ITEM_RAZZ_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_RazzBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "MORBBEERE$", 14 - .2byte ITEM_BLUK_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_BlukBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "NANABBEERE$", 14 - .2byte ITEM_NANAB_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_NanabBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "NIRBEBEERE$", 14 - .2byte ITEM_WEPEAR_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_WepearBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "SANANABEERE$", 14 - .2byte ITEM_PINAP_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_PinapBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "GRANABEERE$", 14 - .2byte ITEM_POMEG_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_PomegBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "SETANGBEERE$", 14 - .2byte ITEM_KELPSY_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_KelpsyBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "QUALOTBEERE$", 14 - .2byte ITEM_QUALOT_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_QualotBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "HONMELBEERE$", 14 - .2byte ITEM_HONDEW_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_HondewBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "LABRUSBEERE$", 14 - .2byte ITEM_GREPA_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_GrepaBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TAMOTBEERE$", 14 - .2byte ITEM_TAMATO_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TamatoBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "SAIMBEERE$", 14 - .2byte ITEM_CORNN_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_CornnBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "MAGOSTBEERE$", 14 - .2byte ITEM_MAGOST_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_MagostBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "RABUTABEERE$", 14 - .2byte ITEM_RABUTA_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_RabutaBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TRONZIBEERE$", 14 - .2byte ITEM_NOMEL_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_NomelBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "KIWANBEERE$", 14 - .2byte ITEM_SPELON_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_SpelonBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "PALLMBEERE$", 14 - .2byte ITEM_PAMTRE_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_PamtreBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "WASMELBEERE$", 14 - .2byte ITEM_WATMEL_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_WatmelBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "DURINBEERE$", 14 - .2byte ITEM_DURIN_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_DurinBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "MYRTILBEERE$", 14 - .2byte ITEM_BELUE_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_BelueBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "LYDZIBEERE$", 14 - .2byte ITEM_LIECHI_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_ATTACK_UP - .byte 4 - .4byte gItemDescription_LiechiBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "LINGANBEERE$", 14 - .2byte ITEM_GANLON_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_DEFENSE_UP - .byte 4 - .4byte gItemDescription_GanlonBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "SALKABEERE$", 14 - .2byte ITEM_SALAC_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_SPEED_UP - .byte 4 - .4byte gItemDescription_SalacBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TAHAYBEERE$", 14 - .2byte ITEM_PETAYA_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_SP_ATTACK_UP - .byte 4 - .4byte gItemDescription_PetayaBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "APIKOBEERE$", 14 - .2byte ITEM_APICOT_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_SP_DEFENSE_UP - .byte 4 - .4byte gItemDescription_ApicotBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "LANSATBEERE$", 14 - .2byte ITEM_LANSAT_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_CRITICAL_UP - .byte 4 - .4byte gItemDescription_LansatBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "KRAMBOBEERE$", 14 - .2byte ITEM_STARF_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_RANDOM_STAT_UP - .byte 4 - .4byte gItemDescription_StarfBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "ENIGMABEERE$", 14 - .2byte ITEM_ENIGMA_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_EnigmaBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_EnigmaBerry - .4byte 1 - .4byte ItemUseInBattle_EnigmaBerry - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "BLENDPUDER$", 14 - .2byte ITEM_BRIGHT_POWDER - .2byte 10 @ price - .byte HOLD_EFFECT_EVASION_UP - .byte 10 - .4byte gItemDescription_BrightPowder - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "SCHLOHKRAUT$", 14 - .2byte ITEM_WHITE_HERB - .2byte 100 @ price - .byte HOLD_EFFECT_RESTORE_STATS - .byte 0 - .4byte gItemDescription_WhiteHerb - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "MACHOBAND$", 14 - .2byte ITEM_MACHO_BRACE - .2byte 3000 @ price - .byte HOLD_EFFECT_MACHO_BRACE - .byte 0 - .4byte gItemDescription_MachoBrace - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "EP-TEILER$", 14 - .2byte ITEM_EXP_SHARE - .2byte 3000 @ price - .byte HOLD_EFFECT_EXP_SHARE - .byte 0 - .4byte gItemDescription_ExpShare - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "FLINKKLAUE$", 14 - .2byte ITEM_QUICK_CLAW - .2byte 100 @ price - .byte HOLD_EFFECT_QUICK_CLAW - .byte 20 - .4byte gItemDescription_QuickClaw - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "SANFTGLOCKE$", 14 - .2byte ITEM_SOOTHE_BELL - .2byte 100 @ price - .byte HOLD_EFFECT_HAPPINESS_UP - .byte 0 - .4byte gItemDescription_SootheBell - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "MENTALKRAUT$", 14 - .2byte ITEM_MENTAL_HERB - .2byte 100 @ price - .byte HOLD_EFFECT_CURE_ATTRACT - .byte 0 - .4byte gItemDescription_MentalHerb - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "WAHLBAND$", 14 - .2byte ITEM_CHOICE_BAND - .2byte 100 @ price - .byte HOLD_EFFECT_CHOICE_BAND - .byte 0 - .4byte gItemDescription_ChoiceBand - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "KING-STEIN$", 14 - .2byte ITEM_KINGS_ROCK - .2byte 100 @ price - .byte HOLD_EFFECT_FLINCH - .byte 10 - .4byte gItemDescription_KingsRock - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "SILBERSTAUB$", 14 - .2byte ITEM_SILVER_POWDER - .2byte 100 @ price - .byte HOLD_EFFECT_BUG_POWER - .byte 10 - .4byte gItemDescription_SilverPowder - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "MÜNZAMULETT$", 14 - .2byte ITEM_AMULET_COIN - .2byte 100 @ price - .byte HOLD_EFFECT_DOUBLE_PRIZE - .byte 10 - .4byte gItemDescription_AmuletCoin - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "SCHUTZBAND$", 14 - .2byte ITEM_CLEANSE_TAG - .2byte 200 @ price - .byte HOLD_EFFECT_REPEL - .byte 0 - .4byte gItemDescription_CleanseTag - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "SEELENTAU$", 14 - .2byte ITEM_SOUL_DEW - .2byte 200 @ price - .byte HOLD_EFFECT_SOUL_DEW - .byte 0 - .4byte gItemDescription_SoulDew - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "ABYSSZAHN$", 14 - .2byte ITEM_DEEP_SEA_TOOTH - .2byte 200 @ price - .byte HOLD_EFFECT_DEEP_SEA_TOOTH - .byte 0 - .4byte gItemDescription_DeepSeaTooth - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "ABYSSPLATTE$", 14 - .2byte ITEM_DEEP_SEA_SCALE - .2byte 200 @ price - .byte HOLD_EFFECT_DEEP_SEA_SCALE - .byte 0 - .4byte gItemDescription_DeepSeaScale - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "RAUCHBALL$", 14 - .2byte ITEM_SMOKE_BALL - .2byte 200 @ price - .byte HOLD_EFFECT_CAN_ALWAYS_RUN - .byte 0 - .4byte gItemDescription_SmokeBall - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "EWIGSTEIN$", 14 - .2byte ITEM_EVERSTONE - .2byte 200 @ price - .byte HOLD_EFFECT_PREVENT_EVOLVE - .byte 0 - .4byte gItemDescription_Everstone - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "FOKUS-BAND$", 14 - .2byte ITEM_FOCUS_BAND - .2byte 200 @ price - .byte HOLD_EFFECT_FOCUS_BAND - .byte 10 - .4byte gItemDescription_FocusBand - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "GLÜCKS-EI$", 14 - .2byte ITEM_LUCKY_EGG - .2byte 200 @ price - .byte HOLD_EFFECT_LUCKY_EGG - .byte 0 - .4byte gItemDescription_LuckyEgg - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "SCOPE-LINSE$", 14 - .2byte ITEM_SCOPE_LENS - .2byte 200 @ price - .byte HOLD_EFFECT_SCOPE_LENS - .byte 0 - .4byte gItemDescription_ScopeLens - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "METALLMANTEL$", 14 - .2byte ITEM_METAL_COAT - .2byte 100 @ price - .byte HOLD_EFFECT_STEEL_POWER - .byte 10 - .4byte gItemDescription_MetalCoat - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "ÜBERRESTE$", 14 - .2byte ITEM_LEFTOVERS - .2byte 200 @ price - .byte HOLD_EFFECT_LEFTOVERS - .byte 10 - .4byte gItemDescription_Leftovers - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "DRACHENHAUT$", 14 - .2byte ITEM_DRAGON_SCALE - .2byte 2100 @ price - .byte HOLD_EFFECT_DRAGON_SCALE - .byte 10 - .4byte gItemDescription_DragonScale - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "KUGELBLITZ$", 14 - .2byte ITEM_LIGHT_BALL - .2byte 100 @ price - .byte HOLD_EFFECT_LIGHT_BALL - .byte 0 - .4byte gItemDescription_LightBall - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "PUDERSAND$", 14 - .2byte ITEM_SOFT_SAND - .2byte 100 @ price - .byte HOLD_EFFECT_GROUND_POWER - .byte 10 - .4byte gItemDescription_SoftSand - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "GRANITSTEIN$", 14 - .2byte ITEM_HARD_STONE - .2byte 100 @ price - .byte HOLD_EFFECT_ROCK_POWER - .byte 10 - .4byte gItemDescription_HardStone - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "WUNDERSAAT$", 14 - .2byte ITEM_MIRACLE_SEED - .2byte 100 @ price - .byte HOLD_EFFECT_GRASS_POWER - .byte 10 - .4byte gItemDescription_MiracleSeed - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "SCHATTENGLAS$", 14 - .2byte ITEM_BLACK_GLASSES - .2byte 100 @ price - .byte HOLD_EFFECT_DARK_POWER - .byte 10 - .4byte gItemDescription_BlackGlasses - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "SCHWARZGURT$", 14 - .2byte ITEM_BLACK_BELT - .2byte 100 @ price - .byte HOLD_EFFECT_FIGHTING_POWER - .byte 10 - .4byte gItemDescription_BlackBelt - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "MAGNET$", 14 - .2byte ITEM_MAGNET - .2byte 100 @ price - .byte HOLD_EFFECT_ELECTRIC_POWER - .byte 10 - .4byte gItemDescription_Magnet - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "ZAUBERWASSER$", 14 - .2byte ITEM_MYSTIC_WATER - .2byte 100 @ price - .byte HOLD_EFFECT_WATER_POWER - .byte 10 - .4byte gItemDescription_MysticWater - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "HACKATTACK$", 14 - .2byte ITEM_SHARP_BEAK - .2byte 100 @ price - .byte HOLD_EFFECT_FLYING_POWER - .byte 10 - .4byte gItemDescription_SharpBeak - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "GIFTSTICH$", 14 - .2byte ITEM_POISON_BARB - .2byte 100 @ price - .byte HOLD_EFFECT_POISON_POWER - .byte 10 - .4byte gItemDescription_PoisonBarb - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "EWIGES EIS$", 14 - .2byte ITEM_NEVER_MELT_ICE - .2byte 100 @ price - .byte HOLD_EFFECT_ICE_POWER - .byte 10 - .4byte gItemDescription_NeverMeltIce - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "BANNSTICKER$", 14 - .2byte ITEM_SPELL_TAG - .2byte 100 @ price - .byte HOLD_EFFECT_GHOST_POWER - .byte 10 - .4byte gItemDescription_SpellTag - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "KRÜMMLÖFFEL$", 14 - .2byte ITEM_TWISTED_SPOON - .2byte 100 @ price - .byte HOLD_EFFECT_PSYCHIC_POWER - .byte 10 - .4byte gItemDescription_TwistedSpoon - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "HOLZKOHLE$", 14 - .2byte ITEM_CHARCOAL - .2byte 9800 @ price - .byte HOLD_EFFECT_FIRE_POWER - .byte 10 - .4byte gItemDescription_Charcoal - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "DRACHENZAHN$", 14 - .2byte ITEM_DRAGON_FANG - .2byte 100 @ price - .byte HOLD_EFFECT_DRAGON_POWER - .byte 10 - .4byte gItemDescription_DragonFang - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "SEIDENSCHAL$", 14 - .2byte ITEM_SILK_SCARF - .2byte 100 @ price - .byte HOLD_EFFECT_NORMAL_POWER - .byte 10 - .4byte gItemDescription_SilkScarf - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "UP-GRADE$", 14 - .2byte ITEM_UP_GRADE - .2byte 2100 @ price - .byte HOLD_EFFECT_UP_GRADE - .byte 0 - .4byte gItemDescription_UpGrade - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "SEEGESANG$", 14 - .2byte ITEM_SHELL_BELL - .2byte 200 @ price - .byte HOLD_EFFECT_SHELL_BELL - .byte 8 - .4byte gItemDescription_ShellBell - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "SEERAUCH$", 14 - .2byte ITEM_SEA_INCENSE - .2byte 9600 @ price - .byte HOLD_EFFECT_WATER_POWER - .byte 5 - .4byte gItemDescription_SeaIncense - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "LAXRAUCH$", 14 - .2byte ITEM_LAX_INCENSE - .2byte 9600 @ price - .byte HOLD_EFFECT_EVASION_UP - .byte 5 - .4byte gItemDescription_LaxIncense - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "LUCKY PUNCH$", 14 - .2byte ITEM_LUCKY_PUNCH - .2byte 10 @ price - .byte HOLD_EFFECT_LUCKY_PUNCH - .byte 0 - .4byte gItemDescription_LuckyPunch - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "METALLSTAUB$", 14 - .2byte ITEM_METAL_POWDER - .2byte 10 @ price - .byte HOLD_EFFECT_METAL_POWDER - .byte 0 - .4byte gItemDescription_MetalPowder - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "KAMPFKNOCHEN$", 14 - .2byte ITEM_THICK_CLUB - .2byte 500 @ price - .byte HOLD_EFFECT_THICK_CLUB - .byte 0 - .4byte gItemDescription_ThickClub - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "LAUCHSTANGE$", 14 - .2byte ITEM_STICK - .2byte 200 @ price - .byte HOLD_EFFECT_STICK - .byte 0 - .4byte gItemDescription_Stick - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "ROTER SCHAL$", 14 - .2byte ITEM_RED_SCARF - .2byte 100 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_RedScarf - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "BLAUER SCHAL$", 14 - .2byte ITEM_BLUE_SCARF - .2byte 100 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_BlueScarf - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "ROSA SCHAL$", 14 - .2byte ITEM_PINK_SCARF - .2byte 100 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_PinkScarf - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "GRÜNER SCHAL$", 14 - .2byte ITEM_GREEN_SCARF - .2byte 100 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_GreenScarf - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "GELBER SCHAL$", 14 - .2byte ITEM_YELLOW_SCARF - .2byte 100 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_YellowScarf - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "EILRAD$", 14 - .2byte ITEM_MACH_BIKE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_MachBike - .byte 1 - .byte 1 - .byte POCKET_KEY_ITEMS - .byte 2 - .4byte ItemUseOutOfBattle_Bike - .4byte 0 - .4byte NULL - .4byte 0 - - .string "MÜNZKORB$", 14 - .2byte ITEM_COIN_CASE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_CoinCase - .byte 1 - .byte 0 - .byte POCKET_KEY_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CoinCase - .4byte 0 - .4byte NULL - .4byte 0 - - .string "DETEKTOR$", 14 - .2byte ITEM_ITEMFINDER - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Itemfinder - .byte 1 - .byte 1 - .byte POCKET_KEY_ITEMS - .byte 2 - .4byte ItemUseOutOfBattle_Itemfinder - .4byte 0 - .4byte NULL - .4byte 0 - - .string "ANGEL$", 14 - .2byte ITEM_OLD_ROD - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_OldRod - .byte 1 - .byte 1 - .byte POCKET_KEY_ITEMS - .byte 2 - .4byte ItemUseOutOfBattle_Rod - .4byte 0 - .4byte NULL - .4byte 0 - - .string "PROFIANGEL$", 14 - .2byte ITEM_GOOD_ROD - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_GoodRod - .byte 1 - .byte 1 - .byte POCKET_KEY_ITEMS - .byte 2 - .4byte ItemUseOutOfBattle_Rod - .4byte 0 - .4byte NULL - .4byte 1 - - .string "SUPERANGEL$", 14 - .2byte ITEM_SUPER_ROD - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_SuperRod - .byte 1 - .byte 1 - .byte POCKET_KEY_ITEMS - .byte 2 - .4byte ItemUseOutOfBattle_Rod - .4byte 0 - .4byte NULL - .4byte 2 - - .string "BOOTSTICKET$", 14 - .2byte ITEM_SS_TICKET - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_SSTicket - .byte 1 - .byte 0 - .byte POCKET_KEY_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "WETTB.-KARTE$", 14 - .2byte ITEM_CONTEST_PASS - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_ContestPass - .byte 1 - .byte 0 - .byte POCKET_KEY_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "WAILMERKANNE$", 14 - .2byte ITEM_WAILMER_PAIL - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_WailmerPail - .byte 1 - .byte 0 - .byte POCKET_KEY_ITEMS - .byte 2 - .4byte ItemUseOutOfBattle_WailmerPail - .4byte 0 - .4byte NULL - .4byte 0 - - .string "DEVON-WAREN$", 14 - .2byte ITEM_DEVON_GOODS - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_DevonGoods - .byte 2 - .byte 0 - .byte POCKET_KEY_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "ASCHETASCHE$", 14 - .2byte ITEM_SOOT_SACK - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_SootSack - .byte 1 - .byte 0 - .byte POCKET_KEY_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "KELLERÖFFNER$", 14 - .2byte ITEM_BASEMENT_KEY - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_BasementKey - .byte 1 - .byte 0 - .byte POCKET_KEY_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "KUNSTRAD$", 14 - .2byte ITEM_ACRO_BIKE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_AcroBike - .byte 1 - .byte 1 - .byte POCKET_KEY_ITEMS - .byte 2 - .4byte ItemUseOutOfBattle_Bike - .4byte 0 - .4byte NULL - .4byte 1 - - .string "{POKEBLOCK}BOX$", 14 - .2byte ITEM_POKEBLOCK_CASE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_PokeblockCase - .byte 1 - .byte 1 - .byte POCKET_KEY_ITEMS - .byte 3 - .4byte ItemUseOutOfBattle_PokeblockCase - .4byte 0 - .4byte NULL - .4byte 0 - - .string "BRIEF$", 14 - .2byte ITEM_LETTER - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Letter - .byte 2 - .byte 0 - .byte POCKET_KEY_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "ÄON-TICKET$", 14 - .2byte ITEM_EON_TICKET - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_EonTicket - .byte 1 - .byte 0 - .byte POCKET_KEY_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 1 - - .string "ROTE KUGEL$", 14 - .2byte ITEM_RED_ORB - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_RedOrb - .byte 2 - .byte 0 - .byte POCKET_KEY_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "BLAUE KUGEL$", 14 - .2byte ITEM_BLUE_ORB - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_BlueOrb - .byte 2 - .byte 0 - .byte POCKET_KEY_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "SCANNER$", 14 - .2byte ITEM_SCANNER - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Scanner - .byte 1 - .byte 0 - .byte POCKET_KEY_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "WÜSTENGLAS$", 14 - .2byte ITEM_GO_GOGGLES - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_GoGoggles - .byte 1 - .byte 0 - .byte POCKET_KEY_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "METEORIT$", 14 - .2byte ITEM_METEORITE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Meteorite - .byte 1 - .byte 0 - .byte POCKET_KEY_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "K1-SCHLÜSSEL$", 14 - .2byte ITEM_ROOM_1_KEY - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Room1Key - .byte 1 - .byte 0 - .byte POCKET_KEY_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "K2-SCHLÜSSEL$", 14 - .2byte ITEM_ROOM_2_KEY - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Room2Key - .byte 1 - .byte 0 - .byte POCKET_KEY_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "K4-SCHLÜSSEL$", 14 - .2byte ITEM_ROOM_4_KEY - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Room4Key - .byte 1 - .byte 0 - .byte POCKET_KEY_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "K6-SCHLÜSSEL$", 14 - .2byte ITEM_ROOM_6_KEY - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Room6Key - .byte 1 - .byte 0 - .byte POCKET_KEY_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "L.-SCHLÜSSEL$", 14 - .2byte ITEM_STORAGE_KEY - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_StorageKey - .byte 1 - .byte 0 - .byte POCKET_KEY_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "WURZELFOSSIL$", 14 - .2byte ITEM_ROOT_FOSSIL - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_RootFossil - .byte 1 - .byte 0 - .byte POCKET_KEY_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "KLAUENFOSSIL$", 14 - .2byte ITEM_CLAW_FOSSIL - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_ClawFossil - .byte 1 - .byte 0 - .byte POCKET_KEY_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "DEVON-SCOPE$", 14 - .2byte ITEM_DEVON_SCOPE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_DevonScope - .byte 1 - .byte 0 - .byte POCKET_KEY_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM01$", 14 - .2byte ITEM_TM01 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM01 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM02$", 14 - .2byte ITEM_TM02 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM02 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM03$", 14 - .2byte ITEM_TM03 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM03 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM04$", 14 - .2byte ITEM_TM04 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM04 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM05$", 14 - .2byte ITEM_TM05 - .2byte 1000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM05 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM06$", 14 - .2byte ITEM_TM06 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM06 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM07$", 14 - .2byte ITEM_TM07 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM07 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM08$", 14 - .2byte ITEM_TM08 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM08 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM09$", 14 - .2byte ITEM_TM09 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM09 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM10$", 14 - .2byte ITEM_TM10 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM10 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM11$", 14 - .2byte ITEM_TM11 - .2byte 2000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM11 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM12$", 14 - .2byte ITEM_TM12 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM12 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM13$", 14 - .2byte ITEM_TM13 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM13 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM14$", 14 - .2byte ITEM_TM14 - .2byte 5500 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM14 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM15$", 14 - .2byte ITEM_TM15 - .2byte 7500 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM15 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM16$", 14 - .2byte ITEM_TM16 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM16 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM17$", 14 - .2byte ITEM_TM17 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM17 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM18$", 14 - .2byte ITEM_TM18 - .2byte 2000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM18 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM19$", 14 - .2byte ITEM_TM19 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM19 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM20$", 14 - .2byte ITEM_TM20 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM20 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM21$", 14 - .2byte ITEM_TM21 - .2byte 1000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM21 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM22$", 14 - .2byte ITEM_TM22 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM22 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM23$", 14 - .2byte ITEM_TM23 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM23 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM24$", 14 - .2byte ITEM_TM24 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM24 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM25$", 14 - .2byte ITEM_TM25 - .2byte 5500 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM25 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM26$", 14 - .2byte ITEM_TM26 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM26 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM27$", 14 - .2byte ITEM_TM27 - .2byte 1000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM27 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM28$", 14 - .2byte ITEM_TM28 - .2byte 2000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM28 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM29$", 14 - .2byte ITEM_TM29 - .2byte 2000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM29 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM30$", 14 - .2byte ITEM_TM30 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM30 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM31$", 14 - .2byte ITEM_TM31 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM31 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM32$", 14 - .2byte ITEM_TM32 - .2byte 2000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM32 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM33$", 14 - .2byte ITEM_TM33 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM33 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM34$", 14 - .2byte ITEM_TM34 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM34 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM35$", 14 - .2byte ITEM_TM35 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM35 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM36$", 14 - .2byte ITEM_TM36 - .2byte 1000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM36 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM37$", 14 - .2byte ITEM_TM37 - .2byte 2000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM37 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM38$", 14 - .2byte ITEM_TM38 - .2byte 5500 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM38 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM39$", 14 - .2byte ITEM_TM39 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM39 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM40$", 14 - .2byte ITEM_TM40 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM40 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM41$", 14 - .2byte ITEM_TM41 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM41 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM42$", 14 - .2byte ITEM_TM42 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM42 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM43$", 14 - .2byte ITEM_TM43 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM43 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM44$", 14 - .2byte ITEM_TM44 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM44 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM45$", 14 - .2byte ITEM_TM45 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM45 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM46$", 14 - .2byte ITEM_TM46 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM46 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM47$", 14 - .2byte ITEM_TM47 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM47 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM48$", 14 - .2byte ITEM_TM48 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM48 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM49$", 14 - .2byte ITEM_TM49 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM49 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM50$", 14 - .2byte ITEM_TM50 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM50 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "VM01$", 14 - .2byte ITEM_HM01 - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_HM01 - .byte 1 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "VM02$", 14 - .2byte ITEM_HM02 - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_HM02 - .byte 1 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "VM03$", 14 - .2byte ITEM_HM03 - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_HM03 - .byte 1 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "VM04$", 14 - .2byte ITEM_HM04 - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_HM04 - .byte 1 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "VM05$", 14 - .2byte ITEM_HM05 - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_HM05 - .byte 1 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "VM06$", 14 - .2byte ITEM_HM06 - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_HM06 - .byte 1 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "VM07$", 14 - .2byte ITEM_HM07 - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_HM07 - .byte 1 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "VM08$", 14 - .2byte ITEM_HM08 - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_HM08 - .byte 1 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 diff --git a/data-de/menu_cursor.s b/data-de/menu_cursor.s index d511436c7..5f5fcd2d7 100644 --- a/data-de/menu_cursor.s +++ b/data-de/menu_cursor.s @@ -382,4 +382,6 @@ gUnknown_0842F788:: @ 842F788 .align 2 gUnknown_0842F790:: @ 842F790 .4byte 0xFFFF0000, 70 + +gUnknown_0842F798:: @ 842F798 .4byte 0xFFFF0000, 134 diff --git a/data-de/text/credits.inc b/data-de/text/credits.inc index 1d2d63161..3b6119866 100644 --- a/data-de/text/credits.inc +++ b/data-de/text/credits.inc @@ -634,7 +634,11 @@ CreditsEBU:: credits_entry 0, Text_EBU CreditsVersion:: + .ifdef SAPPHIRE + credits_entry 0, Text_Version_Sapphire + .else credits_entry 0, Text_Version_Ruby + .endif CreditsNOEProductTesting:: credits_entry 0, Category_NOEProductTesting diff --git a/data-de/text/item_descriptions.inc b/data-de/text/item_descriptions.inc deleted file mode 100644 index cde8cfdc8..000000000 --- a/data-de/text/item_descriptions.inc +++ /dev/null @@ -1,1393 +0,0 @@ -gItemDescription_MasterBall: @ 83C2028 - .string "Der beste BALL.\n" - .string "Fängt das POKéMON\n" - .string "garantiert.$" - -gItemDescription_UltraBall: @ 83C205B - .string "BALL mit hoher Er-\n" - .string "folgsquote. Besser\n" - .string "als ein SUPERBALL.$" - -gItemDescription_GreatBall: @ 83C2095 - .string "BALL mit guter Er-\n" - .string "folgsquote. Besser\n" - .string "als ein POKéBALL.$" - -gItemDescription_PokeBall: @ 83C20CC - .string "Damit fängst\n" - .string "du wilde\n" - .string "POKéMON.$" - -gItemDescription_SafariBall: @ 83C20F3 - .string "Ein BALL, der nur\n" - .string "in der SAFARI-ZONE\n" - .string "eingesetzt wird.$" - -gItemDescription_NetBall: @ 83C2128 - .string "BALL fängt POKéMON\n" - .string "des Typs WASSER\n" - .string "und KÄFER besser.$" - -gItemDescription_DiveBall: @ 83C215F - .string "BALL fängt besser\n" - .string "POKéMON auf\n" - .string "dem Meeresgrund.$" - -gItemDescription_NestBall: @ 83C2197 - .string "BALL mit höherer\n" - .string "Erfolgsquote bei\n" - .string "schwachen POKéMON.$" - -gItemDescription_RepeatBall: @ 83C21C3 - .string "BALL fängt besser\n" - .string "bereits gefangene\n" - .string "POKéMON.$" - -gItemDescription_TimerBall: @ 83C21F6 - .string "BALL wird effekti-\n" - .string "ver, je länger der\n" - .string "Kampf dauert.$" - -gItemDescription_LuxuryBall: @ 83C2228 - .string "Behaglicher BALL,\n" - .string "der POKéMON\n" - .string "freundlicher macht.$" - -gItemDescription_PremierBall: @ 83C2256 - .string "Seltener BALL, als\n" - .string "Reminiszenz an ir-\n" - .string "gendein Ereignis.$" - -gItemDescription_Potion: @ 83C2287 - .string "Füllt die KP eines\n" - .string "POKéMON um\n" - .string "20 Punkte auf.$" - -gItemDescription_Antidote: @ 83C22B2 - .string "Heilt Vergiftungen\n" - .string "bei POKéMON.$" - -gItemDescription_BurnHeal: @ 83C22CC - .string "Heilt Verbrennun-\n" - .string "gen bei POKéMON.$" - -gItemDescription_IceHeal: @ 83C22E5 - .string "Taut POKéMON\n" - .string "wieder auf.$" - -gItemDescription_Awakening: @ 83C2300 - .string "Weckt schlafendes\n" - .string "POKéMON auf.$" - -gItemDescription_ParalyzeHeal: @ 83C231C - .string "Heilt Paralyse\n" - .string "eines POKéMON.$" - -gItemDescription_FullRestore: @ 83C2337 - .string "Stellt KP und\n" - .string "Status eines\n" - .string "POKéMON wieder her.$" - -gItemDescription_MaxPotion: @ 83C2366 - .string "Füllt die KP\n" - .string "vollständig auf.$" - -gItemDescription_HyperPotion: @ 83C238A - .string "Füllt die KP eines\n" - .string "POKéMON um\n" - .string "200 Punkte auf.$" - -gItemDescription_SuperPotion: @ 83C23B6 - .string "Füllt die KP eines\n" - .string "POKéMON um\n" - .string "50 Punkte auf.$" - -gItemDescription_FullHeal: @ 83C23E1 - .string "Beseitigt alle\n" - .string "Statusprobleme\n" - .string "eines POKéMON.$" - -gItemDescription_Revive: @ 83C240F - .string "Belebt POKéMON\n" - .string "und füllt die KP zur\n" - .string "Hälfte wieder auf.$" - -gItemDescription_MaxRevive: @ 83C243B - .string "Belebt POKéMON\n" - .string "und füllt KP voll-\n" - .string "ständig wieder auf.$" - -gItemDescription_FreshWater: @ 83C2466 - .string "Ein stilles Wasser,\n" - .string "das die KP um 50\n" - .string "Punkte auffüllt.$" - -gItemDescription_SodaPop: @ 83C2495 - .string "Ein Mineralwasser,\n" - .string "das die KP um 60\n" - .string "Punkte auffüllt.$" - -gItemDescription_Lemonade: @ 83C24C7 - .string "Ein süßes Getränk,\n" - .string "das die KP um 80\n" - .string "Punkte auffüllt.$" - -gItemDescription_MoomooMilk: @ 83C24F9 - .string "Vitaminreiche Milch,\n" - .string "die die KP um 100\n" - .string "Punkte auffüllt.$" - -gItemDescription_EnergyPowder: @ 83C252B - .string "Ein bitteres Pulver,\n" - .string "das die KP um\n" - .string "50 Punkte auffüllt.$" - -gItemDescription_EnergyRoot: @ 83C255A - .string "Eine bittere Wurzel,\n" - .string "die die KP um 200\n" - .string "Punkte auffüllt.$" - -gItemDescription_HealPowder: @ 83C2588 - .string "Ein bitteres Pulver,\n" - .string "das alle Statuspro-\n" - .string "bleme heilt.$" - -gItemDescription_RevivalHerb: @ 83C25B8 - .string "Ein bitteres Kraut,\n" - .string "das besiegte\n" - .string "POKéMON belebt.$" - -gItemDescription_Ether: @ 83C25EB - .string "Füllt AP einer aus-\n" - .string "gewählten Attacke\n" - .string "um 10 Punkte auf.$" - -gItemDescription_MaxEther: @ 83C2615 - .string "Füllt AP einer aus-\n" - .string "gewählten Attacke\n" - .string "vollständig auf.$" - -gItemDescription_Elixir: @ 83C263F - .string "Füllt alle AP\n" - .string "um 10 Punkte auf.$" - -gItemDescription_MaxElixir: @ 83C2663 - .string "Füllt alle AP eines\n" - .string "POKéMON voll-\n" - .string "ständig auf.$" - -gItemDescription_LavaCookie: @ 83C268F - .string "Eine regionale Spe-\n" - .string "zialität. Heilt alle\n" - .string "Statusprobleme.$" - -gItemDescription_BlueFlute: @ 83C26C1 - .string "Eine gläserne Flöte,\n" - .string "die schlafende\n" - .string "POKéMON aufweckt.$" - -gItemDescription_YellowFlute: @ 83C26EE - .string "Eine gläserne Flöte,\n" - .string "die verwirrte\n" - .string "POKéMON heilt.$" - -gItemDescription_RedFlute: @ 83C2721 - .string "Eine gläserne Flöte,\n" - .string "die POKéMON von\n" - .string "Anziehung heilt.$" - -gItemDescription_BlackFlute: @ 83C2755 - .string "Eine gläserne Flöte,\n" - .string "die wilde\n" - .string "POKéMON abhält.$" - -gItemDescription_WhiteFlute: @ 83C2781 - .string "Eine gläserne Flöte,\n" - .string "die wilde\n" - .string "POKéMON anzieht.$" - -gItemDescription_BerryJuice: @ 83C27A8 - .string "Reiner Fruchtsaft,\n" - .string "der die KP um\n" - .string "20 Punkte auffüllt.$" - -gItemDescription_SacredAsh: @ 83C27D9 - .string "Belebt und\n" - .string "erfrischt alle\n" - .string "besiegten POKéMON.$" - -gItemDescription_ShoalSalt: @ 83C2809 - .string "Salz, das sich tief\n" - .string "in der KÜSTEN- \n" - .string "HÖHLE befand.$" - -gItemDescription_ShoalShell: @ 83C2838 - .string "Muschelschale, die\n" - .string "sich in der KÜSTEN- \n" - .string "HÖHLE befand.$" - -gItemDescription_RedShard: @ 83C2865 - .string "Scherbe eines\n" - .string "antiken Relikts\n" - .string "von geringem Wert.$" - -gItemDescription_BlueShard: @ 83C2898 - .string "Scherbe eines\n" - .string "antiken Relikts\n" - .string "von geringem Wert.$" - -gItemDescription_YellowShard: @ 83C28CB - .string "Scherbe eines\n" - .string "antiken Relikts\n" - .string "von geringem Wert.$" - -gItemDescription_GreenShard: @ 83C28FE - .string "Scherbe eines\n" - .string "antiken Relikts\n" - .string "von geringem Wert.$" - -gItemDescription_HPUp: @ 83C2931 - .string "Hebt die KP\n" - .string "eines POKéMON.$" - -gItemDescription_Protein: @ 83C294F - .string "Hebt den\n" - .string "ANGR.-Wert\n" - .string "eines POKéMON.$" - -gItemDescription_Iron: @ 83C2976 - .string "Hebt den\n" - .string "VERT.-Wert\n" - .string "eines POKéMON.$" - -gItemDescription_Carbos: @ 83C299E - .string "Hebt den\n" - .string "INIT.-Wert\n" - .string "eines POKéMON.$" - -gItemDescription_Calcium: @ 83C29C4 - .string "Hebt den\n" - .string "SP. ANGR.-Wert\n" - .string "eines POKéMON.$" - -gItemDescription_RareCandy: @ 83C29EC - .string "Hebt den Level\n" - .string "eines POKéMON\n" - .string "um eins an.$" - -gItemDescription_PPUp: @ 83C2A12 - .string "Hebt die maximale\n" - .string "Anzahl der AP\n" - .string "einer Attacke.$" - -gItemDescription_Zinc: @ 83C2A3C - .string "Hebt den\n" - .string "SP. VERT.-Wert\n" - .string "eines POKéMON.$" - -gItemDescription_PPMax: @ 83C2A64 - .string "Maximiert die\n" - .string "Anzahl der AP\n" - .string "einer Attacke.$" - -gItemDescription_GuardSpec: @ 83C2A93 - .string "Statusänderung\n" - .string "wird für einen\n" - .string "Kampf verhindert.$" - -gItemDescription_DireHit: @ 83C2AC0 - .string "Hebt die\n" - .string "Volltrefferquote\n" - .string "für einen Kampf.$" - -gItemDescription_XAttack: @ 83C2AF1 - .string "Hebt den\n" - .string "ANGR.-Wert\n" - .string "für einen Kampf.$" - -gItemDescription_XDefend: @ 83C2B1B - .string "Hebt den\n" - .string "VERT.-Wert\n" - .string "für einen Kampf.$" - -gItemDescription_XSpeed: @ 83C2B46 - .string "Hebt den\n" - .string "INIT.-Wert\n" - .string "für einen Kampf.$" - -gItemDescription_XAccuracy: @ 83C2B6F - .string "Hebt die\n" - .string "GENAUIGKEIT\n" - .string "für einen Kampf.$" - -gItemDescription_XSpecial: @ 83C2BA2 - .string "Hebt den\n" - .string "SP. ANGR.-Wert\n" - .string "für einen Kampf.$" - -gItemDescription_PokeDoll: @ 83C2BCD - .string "Ermöglicht Flucht\n" - .string "im Kampf gegen\n" - .string "wilde POKéMON.$" - -gItemDescription_FluffyTail: @ 83C2BFE - .string "Entfliehe damit\n" - .string "jedem Kampf mit ei-\n" - .string "nem wilden POKéMON.$" - -gItemDescription_SuperRepel: @ 83C2C2F - .string "Hält 200 Schritte\n" - .string "lang schwache,\n" - .string "wilde POKéMON ab.$" - -gItemDescription_MaxRepel: @ 83C2C57 - .string "Hält 250 Schritte\n" - .string "lang schwache,\n" - .string "wilde POKéMON ab.$" - -gItemDescription_EscapeRope: @ 83C2C7F - .string "Ermöglicht die\n" - .string "Flucht aus Höhlen\n" - .string "oder Ähnlichem.$" - -gItemDescription_Repel: @ 83C2CB1 - .string "Hält 100 Schritte\n" - .string "lang schwache,\n" - .string "wilde POKéMON ab.$" - -gItemDescription_SunStone: @ 83C2CD9 - .string "Löst bei bestimm-\n" - .string "ten POKéMON die\n" - .string "Entwicklung aus.$" - -gItemDescription_MoonStone: @ 83C2D02 - .string "Löst bei bestimm-\n" - .string "ten POKéMON die\n" - .string "Entwicklung aus.$" - -gItemDescription_FireStone: @ 83C2D2B - .string "Löst bei bestimm-\n" - .string "ten POKéMON die\n" - .string "Entwicklung aus.$" - -gItemDescription_ThunderStone: @ 83C2D54 - .string "Löst bei bestimm-\n" - .string "ten POKéMON die\n" - .string "Entwicklung aus.$" - -gItemDescription_WaterStone: @ 83C2D7D - .string "Löst bei bestimm-\n" - .string "ten POKéMON die\n" - .string "Entwicklung aus.$" - -gItemDescription_LeafStone: @ 83C2DA6 - .string "Löst bei bestimm-\n" - .string "ten POKéMON die\n" - .string "Entwicklung aus.$" - -gItemDescription_TinyMushroom: @ 83C2DCF - .string "Ein gemeiner\n" - .string "Pilz von \n" - .string "geringem Wert.$" - -gItemDescription_BigMushroom: @ 83C2E00 - .string "Ein seltener\n" - .string "Pilz von \n" - .string "hohem Wert.$" - -gItemDescription_Pearl: @ 83C2E31 - .string "Eine hübsche Perle\n" - .string "von geringem Wert.$" - -gItemDescription_BigPearl: @ 83C2E56 - .string "Schöne, große Per-\n" - .string "le, die einen hohen\n" - .string "Preis erzielen kann.$" - -gItemDescription_Stardust: @ 83C2E8C - .string "Schöner, roter\n" - .string "Sand, der von\n" - .string "großem Wert ist.$" - -gItemDescription_StarPiece: @ 83C2EBD - .string "Roter Edelstein,\n" - .string "der einen hohen\n" - .string "Preis erzielen kann.$" - -gItemDescription_Nugget: @ 83C2EF3 - .string "Ein Barren aus pu-\n" - .string "rem Gold, der von\n" - .string "großem Wert ist.$" - -gItemDescription_HeartScale: @ 83C2F27 - .string "Hübsche Schuppe,\n" - .string "höchst begehrt\n" - .string "bei Sammlern.$" - -gItemDescription_OrangeMail: @ 83C2F54 - .string "BRIEF (Tragen) mit \n" - .string "ZIGZACHS-\n" - .string "Aufdruck.$" - -gItemDescription_HarborMail: @ 83C2F84 - .string "BRIEF (Tragen) mit \n" - .string "WINGULL-\n" - .string "Aufdruck.$" - -gItemDescription_GlitterMail: @ 83C2FB2 - .string "BRIEF (Tragen) mit \n" - .string "PIKACHU-\n" - .string "Aufdruck.$" - -gItemDescription_MechMail: @ 83C2FE0 - .string "BRIEF (Tragen) mit \n" - .string "MAGNETILO-\n" - .string "Aufdruck.$" - -gItemDescription_WoodMail: @ 83C3010 - .string "BRIEF (Tragen) mit \n" - .string "BUMMELZ-\n" - .string "Aufdruck.$" - -gItemDescription_WaveMail: @ 83C303E - .string "BRIEF (Tragen) mit \n" - .string "WAILMER-\n" - .string "Aufdruck.$" - -gItemDescription_BeadMail: @ 83C306C - .string "BRIEF mit Abbildung\n" - .string "des POKéMON, das\n" - .string "ihn trägt.$" - -gItemDescription_ShadowMail: @ 83C309C - .string "BRIEF (Tragen) mit \n" - .string "ZWIRRLICHT-\n" - .string "Aufdruck.$" - -gItemDescription_TropicMail: @ 83C30CA - .string "BRIEF (Tragen) mit \n" - .string "BLUBELLA-\n" - .string "Aufdruck.$" - -gItemDescription_DreamMail: @ 83C30FA - .string "BRIEF mit Abbildung\n" - .string "des POKéMON, das\n" - .string "ihn trägt.$" - -gItemDescription_FabMail: @ 83C312A - .string "BRIEF (Tragen) mit \n" - .string "edlem Aufdruck.$" - -gItemDescription_RetroMail: @ 83C3159 - .string "BRIEF mit den Ab-\n" - .string "bildungen dreier\n" - .string "POKéMON-Gesichter.$" - -gItemDescription_CheriBerry: @ 83C3187 - .string "Item (Tragen) be-\n" - .string "wirkt Selbstheilung\n" - .string "bei Paralyse.$" - -gItemDescription_ChestoBerry: @ 83C31B3 - .string "Item (Tragen)\n" - .string "weckt schlafendes\n" - .string "POKéMON im Kampf.$" - -gItemDescription_PechaBerry: @ 83C31DF - .string "Item (Tragen) be-\n" - .string "wirkt Selbstheilung\n" - .string "bei Vergiftung.$" - -gItemDescription_RawstBerry: @ 83C320B - .string "Item (Tragen) be-\n" - .string "wirkt Selbstheilung\n" - .string "bei Verbrennung.$" - -gItemDescription_AspearBerry: @ 83C3234 - .string "Item (Tragen) be-\n" - .string "wirkt Selbstheilung\n" - .string "bei Frost.$" - -gItemDescription_LeppaBerry: @ 83C3261 - .string "Item (Tragen) füllt\n" - .string "AP im Kampf um\n" - .string "10 Punkte auf.$" - -gItemDescription_OranBerry: @ 83C328C - .string "Item (Tragen) füllt\n" - .string "KP im Kampf um\n" - .string "10 Punkte auf.$" - -gItemDescription_PersimBerry: @ 83C32B7 - .string "Item (Tragen) be-\n" - .string "wirkt Selbstheilung\n" - .string "bei Verwirrung.$" - -gItemDescription_LumBerry: @ 83C32E3 - .string "Item (Tragen) be-\n" - .string "wirkt Selbstheilung\n" - .string "bei Statusproblem.$" - -gItemDescription_SitrusBerry: @ 83C330C - .string "Item (Tragen) füllt\n" - .string "KP im Kampf um\n" - .string "30 Punkte auf.$" - -gItemDescription_FigyBerry: @ 83C3337 - .string "Item (Tragen) füllt\n" - .string "im Kampf KP auf, be-\n" - .string "wirkt evtl. Verwirr.$" - -gItemDescription_WikiBerry: @ 83C3365 - .string "Item (Tragen) füllt\n" - .string "KP auf, bewirkt\n" - .string "evtl. Verwirrung.$" - -gItemDescription_MagoBerry: @ 83C3393 - .string "Item (Tragen) füllt\n" - .string "KP auf, bewirkt\n" - .string "evtl. Verwirrung.$" - -gItemDescription_AguavBerry: @ 83C33C1 - .string "Item (Tragen) füllt\n" - .string "KP auf, bewirkt\n" - .string "evtl. Verwirrung.$" - -gItemDescription_IapapaBerry: @ 83C33EF - .string "Item (Tragen) füllt\n" - .string "KP auf, bewirkt\n" - .string "evtl. Verwirrung.$" - -gItemDescription_RazzBerry: @ 83C341D - .string "Säe {POKEBLOCK}-Zutat\n" - .string "in Lehmboden, damit\n" - .string "HIMMIH wächst.$" - -gItemDescription_BlukBerry: @ 83C3451 - .string "Säe {POKEBLOCK}-Zutat\n" - .string "in Lehmboden, damit\n" - .string "MORB wächst.$" - -gItemDescription_NanabBerry: @ 83C3485 - .string "Säe {POKEBLOCK}-Zutat\n" - .string "in Lehmboden, damit\n" - .string "NANAB wächst.$" - -gItemDescription_WepearBerry: @ 83C34BA - .string "Säe {POKEBLOCK}-Zutat\n" - .string "in Lehmboden, damit\n" - .string "NIRBE wächst.$" - -gItemDescription_PinapBerry: @ 83C34F0 - .string "Säe {POKEBLOCK}-Zutat\n" - .string "in Lehmboden, damit\n" - .string "SANANA wächst.$" - -gItemDescription_PomegBerry: @ 83C3525 - .string "Säe {POKEBLOCK}-Zutat\n" - .string "in Lehmboden, damit\n" - .string "GRANA wächst.$" - -gItemDescription_KelpsyBerry: @ 83C355A - .string "Säe {POKEBLOCK}-Zutat\n" - .string "in Lehmboden, damit\n" - .string "SETANG wächst.$" - -gItemDescription_QualotBerry: @ 83C3590 - .string "Säe {POKEBLOCK}-Zutat\n" - .string "in Lehmboden, damit\n" - .string "QUALOT wächst.$" - -gItemDescription_HondewBerry: @ 83C35C6 - .string "Säe {POKEBLOCK}-Zutat\n" - .string "in Lehmboden, damit\n" - .string "HONMEL wächst.$" - -gItemDescription_GrepaBerry: @ 83C35FC - .string "Säe {POKEBLOCK}-Zutat\n" - .string "in Lehmboden, damit\n" - .string "LABRUS wächst.$" - -gItemDescription_TamatoBerry: @ 83C3631 - .string "Säe {POKEBLOCK}-Zutat\n" - .string "in Lehmboden, damit\n" - .string "TAMOT wächst.$" - -gItemDescription_CornnBerry: @ 83C3667 - .string "Säe {POKEBLOCK}-Zutat\n" - .string "in Lehmboden, damit\n" - .string "SAIM wächst.$" - -gItemDescription_MagostBerry: @ 83C369C - .string "Säe {POKEBLOCK}-Zutat\n" - .string "in Lehmboden, damit\n" - .string "MAGOST wächst.$" - -gItemDescription_RabutaBerry: @ 83C36D2 - .string "Säe {POKEBLOCK}-Zutat\n" - .string "in Lehmboden, damit\n" - .string "RABUTA wächst.$" - -gItemDescription_NomelBerry: @ 83C3708 - .string "Säe {POKEBLOCK}-Zutat\n" - .string "in Lehmboden, damit\n" - .string "TRONZI wächst.$" - -gItemDescription_SpelonBerry: @ 83C373D - .string "Säe {POKEBLOCK}-Zutat\n" - .string "in Lehmboden, damit\n" - .string "KIWAN wächst.$" - -gItemDescription_PamtreBerry: @ 83C3773 - .string "Säe {POKEBLOCK}-Zutat\n" - .string "in Lehmboden, damit\n" - .string "PALLM wächst.$" - -gItemDescription_WatmelBerry: @ 83C37A9 - .string "Säe {POKEBLOCK}-Zutat\n" - .string "in Lehmboden, damit\n" - .string "WASMEL wächst.$" - -gItemDescription_DurinBerry: @ 83C37DF - .string "Säe {POKEBLOCK}-Zutat\n" - .string "in Lehmboden, damit\n" - .string "DURIN wächst.$" - -gItemDescription_BelueBerry: @ 83C3814 - .string "Säe {POKEBLOCK}-Zutat\n" - .string "in Lehmboden, damit\n" - .string "MYRTIL wächst.$" - -gItemDescription_LiechiBerry: @ 83C3849 - .string "Item (Tragen) hebt\n" - .string "ANGR.-Wert in einer\n" - .string "Notlage.$" - -gItemDescription_GanlonBerry: @ 83C3874 - .string "Item (Tragen) hebt\n" - .string "VERT.-Wert in einer\n" - .string "Notlage.$" - -gItemDescription_SalacBerry: @ 83C38A0 - .string "Item (Tragen) hebt\n" - .string "INIT.-Wert in einer\n" - .string "Notlage.$" - -gItemDescription_PetayaBerry: @ 83C38CA - .string "Item (Tragen) hebt\n" - .string "SP. ANGR.-Wert\n" - .string "in einer Notlage.$" - -gItemDescription_ApicotBerry: @ 83C38F6 - .string "Item (Tragen) hebt\n" - .string "SP. VERT.-Wert\n" - .string "in einer Notlage.$" - -gItemDescription_LansatBerry: @ 83C3922 - .string "Item (Tragen) hebt\n" - .string "Volltrefferquote\n" - .string "in einer Notlage.$" - -gItemDescription_StarfBerry: @ 83C395A - .string "Item (Tragen) hebt\n" - .string "einen Statuswert\n" - .string "in einer Notlage.$" - -gItemDescription_EnigmaBerry: @ 83C398D - .string "Säe {POKEBLOCK}-Zutat\n" - .string "in Lehmboden, damit\n" - .string "Mysterium wächst.$" - -gItemDescription_BrightPowder: @ 83C39C6 - .string "Item (Tragen)\n" - .string "senkt die Genauig-\n" - .string "keit des Gegners.$" - -gItemDescription_WhiteHerb: @ 83C39F9 - .string "Item (Tragen) hebt\n" - .string "jede Statusverän-\n" - .string "derung auf.$" - -gItemDescription_MachoBrace: @ 83C3A25 - .string "Item (Tragen) för-\n" - .string "dert Wachstum,\n" - .string "aber senkt INIT.$" - -gItemDescription_ExpShare: @ 83C3A5A - .string "Item (Tragen) teilt\n" - .string "die Kampf-EP.$" - -gItemDescription_QuickClaw: @ 83C3A8A - .string "Item (Tragen) hebt\n" - .string "die Erstschlag-\n" - .string "quote.$" - -gItemDescription_SootheBell: @ 83C3AC1 - .string "Item (Tragen) be-\n" - .string "sänftigt und för-\n" - .string "dert Sympathie.$" - -gItemDescription_MentalHerb: @ 83C3AF8 - .string "Item (Tragen) er-\n" - .string "löst POKéMON von\n" - .string "der Anziehung.$" - -gItemDescription_ChoiceBand: @ 83C3B2B - .string "Stärkt eine Atta-\n" - .string "cke. Aber nur diese\n" - .string "ist einsetzbar.$" - -gItemDescription_KingsRock: @ 83C3B5E - .string "Item (Tragen) kann\n" - .string "Gegner zurück-\n" - .string "weichen lassen.$" - -gItemDescription_SilverPowder: @ 83C3B98 - .string "Item (Tragen) ver-\n" - .string "bessert KÄFER-\n" - .string "Attacken.$" - -gItemDescription_AmuletCoin: @ 83C3BCD - .string "Doppelter Geldbe-\n" - .string "trag, wenn Träger \n" - .string "am Kampf teilnimmt.$" - -gItemDescription_CleanseTag: @ 83C3BFF - .string "Item (Tragen) kann\n" - .string "wilde POKéMON\n" - .string "abhalten.$" - -gItemDescription_SoulDew: @ 83C3C2A - .string "Item (Tragen) hebt\n" - .string "SP.ANG & SP.VER von\n" - .string "LATIOS & LATIAS.$" - -gItemDescription_DeepSeaTooth: @ 83C3C62 - .string "Item (Tragen) hebt\n" - .string "SP. ANGR. von\n" - .string "PERLU.$" - -gItemDescription_DeepSeaScale: @ 83C3C93 - .string "Item (Tragen) hebt\n" - .string "SP. VERT. von\n" - .string "PERLU.$" - -gItemDescription_SmokeBall: @ 83C3CC4 - .string "Item (Tragen) er-\n" - .string "möglicht Flucht vor\n" - .string "wilden POKéMON.$" - -gItemDescription_Everstone: @ 83C3CFE - .string "Wundersamer Stein\n" - .string "zum Tragen. Bewirkt\n" - .string "Entwicklungsstopp.$" - -gItemDescription_FocusBand: @ 83C3D36 - .string "Item (Tragen) kann\n" - .string "manchmal K.O.\n" - .string "verhindern.$" - -gItemDescription_LuckyEgg: @ 83C3D67 - .string "Item (Tragen)\n" - .string "erhöht im Kampf er-\n" - .string "haltene Extra-EP.$" - -gItemDescription_ScopeLens: @ 83C3D9D - .string "Item (Tragen)\n" - .string "erhöht die\n" - .string "Volltrefferquote.$" - -gItemDescription_MetalCoat: @ 83C3DCD - .string "Item (Tragen)\n" - .string "verstärkt STAHL-\n" - .string "Attacken.$" - -gItemDescription_Leftovers: @ 83C3E04 - .string "Item (Tragen) füllt\n" - .string "im Kampf langsam\n" - .string "KP wieder auf.$" - -gItemDescription_DragonScale: @ 83C3E36 - .string "Seltsame Haut zum\n" - .string "Tragen für POKéMON\n" - .string "des Typs DRACHEN.$" - -gItemDescription_LightBall: @ 83C3E64 - .string "Item (Tragen)\n" - .string "erhöht PIKACHUS\n" - .string "SP. ANGR.$" - -gItemDescription_SoftSand: @ 83C3E94 - .string "Item (Tragen)\n" - .string "verstärkt BODEN-\n" - .string "Attacken.$" - -gItemDescription_HardStone: @ 83C3ECC - .string "Item (Tragen)\n" - .string "verstärkt GESTEIN-\n" - .string "Attacken.$" - -gItemDescription_MiracleSeed: @ 83C3F02 - .string "Item (Tragen)\n" - .string "verstärkt PFLAN-\n" - .string "ZEN-Attacken.$" - -gItemDescription_BlackGlasses: @ 83C3F39 - .string "Item (Tragen)\n" - .string "verstärkt UNLICHT-\n" - .string "Attacken.$" - -gItemDescription_BlackBelt: @ 83C3F6F - .string "Item (Tragen)\n" - .string "verstärkt KAMPF-\n" - .string "Attacken.$" - -gItemDescription_Magnet: @ 83C3F9D - .string "Item (Tragen)\n" - .string "verstärkt ELEKTRO-\n" - .string "Attacken.$" - -gItemDescription_MysticWater: @ 83C3FCB - .string "Item (Tragen)\n" - .string "verstärkt WASSER-\n" - .string "Attacken.$" - -gItemDescription_SharpBeak: @ 83C4002 - .string "Item (Tragen)\n" - .string "verstärkt FLUG-\n" - .string "Attacken.$" - -gItemDescription_PoisonBarb: @ 83C403A - .string "Item (Tragen)\n" - .string "verstärkt GIFT-\n" - .string "Attacken.$" - -gItemDescription_NeverMeltIce: @ 83C4072 - .string "Item (Tragen)\n" - .string "verstärkt EIS-\n" - .string "Attacken.$" - -gItemDescription_SpellTag: @ 83C40A7 - .string "Item (Tragen)\n" - .string "verstärkt GEIST-\n" - .string "Attacken.$" - -gItemDescription_TwistedSpoon: @ 83C40DE - .string "Item (Tragen)\n" - .string "verstärkt PSYCHO-\n" - .string "Attacken.$" - -gItemDescription_Charcoal: @ 83C410B - .string "Item (Tragen)\n" - .string "verstärkt FEUER-\n" - .string "Attacken.$" - -gItemDescription_DragonFang: @ 83C4141 - .string "Item (Tragen)\n" - .string "verstärkt DRACHEN-\n" - .string "Attacken.$" - -gItemDescription_SilkScarf: @ 83C4179 - .string "Item (Tragen)\n" - .string "verstärkt NORMAL-\n" - .string "Attacken.$" - -gItemDescription_UpGrade: @ 83C41B1 - .string "Eine mysteriöse\n" - .string "Box der SILPH CO.$" - -gItemDescription_ShellBell: @ 83C41D2 - .string "Item (Tragen) füllt\n" - .string "im Kampf langsam \n" - .string "KP wieder auf.$" - -gItemDescription_SeaIncense: @ 83C4206 - .string "Item (Tragen)\n" - .string "verstärkt WASSER-\n" - .string "Attacken.$" - -gItemDescription_LaxIncense: @ 83C4239 - .string "Item (Tragen)\n" - .string "senkt Genauigkeit\n" - .string "des Gegners.$" - -gItemDescription_LuckyPunch: @ 83C426E - .string "Item (Tragen)\n" - .string "erhöht CHANEIRAS\n" - .string "Volltrefferquote.$" - -gItemDescription_MetalPowder: @ 83C42A3 - .string "Item (Tragen)\n" - .string "erhöht VERT.-Wert\n" - .string "von DITTO.$" - -gItemDescription_ThickClub: @ 83C42C4 - .string "Irgendeine Art\n" - .string "Knochen von\n" - .string "geringem Wert.$" - -gItemDescription_Stick: @ 83C42F1 - .string "Gemeiner Lauch,\n" - .string "der nur von\n" - .string "geringem Wert ist.$" - -gItemDescription_RedScarf: @ 83C431A - .string "Item (Tragen) hebt\n" - .string "COOL.-Wert für den\n" - .string "WETTBEWERB.$" - -gItemDescription_BlueScarf: @ 83C4344 - .string "Item (Tragen) hebt\n" - .string "SCHÖN.-Wert für den\n" - .string "WETTBEWERB.$" - -gItemDescription_PinkScarf: @ 83C4370 - .string "Item (Tragen) hebt\n" - .string "ANMUT-Wert für den\n" - .string "WETTBEWERB.$" - -gItemDescription_GreenScarf: @ 83C439A - .string "Item (Tragen) hebt\n" - .string "KLUG.-Wert für den\n" - .string "WETTBEWERB.$" - -gItemDescription_YellowScarf: @ 83C43C5 - .string "Item (Tragen) hebt\n" - .string "STÄRKE-Wert für\n" - .string "den WETTBEWERB.$" - -gItemDescription_MachBike: @ 83C43F0 - .string "Klapprad, das dop-\n" - .string "pelt so schnell ist\n" - .string "wie ein Fußgänger.$" - -gItemDescription_CoinCase: @ 83C4425 - .string "Kann bis zu 9.999\n" - .string "MÜNZEN aufnehmen.$" - -gItemDescription_Itemfinder: @ 83C444A - .string "Ein Gerät, das ver-\n" - .string "borgene Items via \n" - .string "Schallwellen ortet.$" - -gItemDescription_OldRod: @ 83C447C - .string "Damit kannst du in\n" - .string "jedem Gewässer\n" - .string "POKéMON angeln.$" - -gItemDescription_GoodRod: @ 83C44AF - .string "Eine recht gute\n" - .string "Angel zum\n" - .string "POKéMON-Fischen.$" - -gItemDescription_SuperRod: @ 83C44DF - .string "Die beste Angel,\n" - .string "um nach POKéMON\n" - .string "zu fischen.$" - -gItemDescription_SSTicket: @ 83C450F - .string "Ein Ticket zur\n" - .string "Fahrt auf\n" - .string "einer Fähre.$" - -gItemDescription_ContestPass: @ 83C453B - .string "Ausweis zur Teil-\n" - .string "nahme an POKéMON- \n" - .string "WETTBEWERBEN.$" - -gItemDescription_WailmerPail: @ 83C456C - .string "Ein Gegenstand zum\n" - .string "Gießen von Pflan-\n" - .string "zen wie BEEREN.$" - -gItemDescription_DevonGoods: @ 83C4599 - .string "Päckchen, das Ma-\n" - .string "schinenteile von\n" - .string "DEVON enthält.$" - -gItemDescription_SootSack: @ 83C45C8 - .string "Beutel zum Sammeln\n" - .string "und Aufbewahren\n" - .string "von Vulkanasche.$" - -gItemDescription_BasementKey: @ 83C45F5 - .string "Schlüssel für NEU\n" - .string "MALVENFROH unter\n" - .string "MALVENFROH CITY.$" - -gItemDescription_AcroBike: @ 83C4625 - .string "Klapprad ermög-\n" - .string "licht Sprünge und\n" - .string "Wheelies.$" - -gItemDescription_PokeblockCase: @ 83C4656 - .string "Box für {POKEBLOCK},\n" - .string "die im BEERENMIXER\n" - .string "hergestellt werden.$" - -gItemDescription_Letter: @ 83C468B - .string "Brief an TROY\n" - .string "vom PRÄSIDENTEN\n" - .string "der DEVON CORP.$" - -gItemDescription_EonTicket: @ 83C46C4 - .string "Bootsticket zu\n" - .string "einer fernen Insel\n" - .string "im Süden.$" - -gItemDescription_RedOrb: @ 83C46F9 - .string "Rot glühende Kugel,\n" - .string "die eine uralte\n" - .string "Macht bergen soll.$" - -gItemDescription_BlueOrb: @ 83C472E - .string "Blau glühende Kugel,\n" - .string "die eine uralte\n" - .string "Macht bergen soll.$" - -gItemDescription_Scanner: @ 83C4764 - .string "Ein Gerät, das\n" - .string "im SCHIFFSWRACK\n" - .string "gefunden wurde.$" - -gItemDescription_GoGoggles: @ 83C478E - .string "Schicke Brille, die\n" - .string "die Augen vor Sand-\n" - .string "stürmen schützt.$" - -gItemDescription_Meteorite: @ 83C47C6 - .string "Meteorit. Fundort:\n" - .string "METEORFÄLLE.$" - -gItemDescription_Room1Key: @ 83C47E9 - .string "Schlüssel zur Tür\n" - .string "einer Kabine auf\n" - .string "dem SCHIFFSWRACK.$" - -gItemDescription_Room2Key: @ 83C481C - .string "Schlüssel zur Tür\n" - .string "einer Kabine auf\n" - .string "dem SCHIFFSWRACK.$" - -gItemDescription_Room4Key: @ 83C484F - .string "Schlüssel zur Tür\n" - .string "einer Kabine auf\n" - .string "dem SCHIFFSWRACK.$" - -gItemDescription_Room6Key: @ 83C4882 - .string "Schlüssel zur Tür\n" - .string "einer Kabine auf\n" - .string "dem SCHIFFSWRACK.$" - -gItemDescription_StorageKey: @ 83C48B5 - .string "Schlüssel zum\n" - .string "Lagerraum auf\n" - .string "dem SCHIFFSWRACK.$" - -gItemDescription_RootFossil: @ 83C48E7 - .string "Fossil eines ural-\n" - .string "ten POKéMON, das in\n" - .string "der Tiefsee lebte.$" - -gItemDescription_ClawFossil: @ 83C491B - .string "Fossil eines ural-\n" - .string "ten POKéMON, das in\n" - .string "der Tiefsee lebte.$" - -gItemDescription_DevonScope: @ 83C494F - .string "Gerät von DEVON, \n" - .string "das unsichtbare\n" - .string "POKéMON entlarvt.$" - -gItemDescription_TM01: @ 83C4985 - .string "Stark. POKéMON er-\n" - .string "schrickt vielleicht\n" - .string "bei gegn. Attacke.$" - -gItemDescription_TM02: @ 83C49BC - .string "Gegner wird mit\n" - .string "langen, scharfen\n" - .string "Krallen attackiert.$" - -gItemDescription_TM03: @ 83C49EE - .string "Eine Ultraschall-\n" - .string "welle, die den Geg-\n" - .string "ner verwirren kann.$" - -gItemDescription_TM04: @ 83C4A1D - .string "Verstärkt SP. ANGR.\n" - .string "und SP. VERT. durch\n" - .string "Konzentration.$" - -gItemDescription_TM05: @ 83C4A4E - .string "Brüller schlägt Geg-\n" - .string "ner in die Flucht \n" - .string "und beendet Kampf.$" - -gItemDescription_TM06: @ 83C4A88 - .string "Vergiftet den Geg-\n" - .string "ner und schadet \n" - .string "ihm zunehmend.$" - -gItemDescription_TM07: @ 83C4ABD - .string "Hagelsturm schadet\n" - .string "allen POKéMON außer\n" - .string "denen des Typs EIS.$" - -gItemDescription_TM08: @ 83C4AF2 - .string "Stärkt den Körper.\n" - .string "So steigt ANGR.-\n" - .string "und VERT.-Wert.$" - -gItemDescription_TM09: @ 83C4B24 - .string "Bepflanzt den\n" - .string "Gegner mit 2 bis 5\n" - .string "Samen auf einmal.$" - -gItemDescription_TM10: @ 83C4B54 - .string "Die Stärke dieser\n" - .string "Attacke hängt vom \n" - .string "jew. POKéMON ab.$" - -gItemDescription_TM11: @ 83C4B85 - .string "Verstärkt FEUER-\n" - .string "Attacken über \n" - .string "5 Runden.$" - -gItemDescription_TM12: @ 83C4BB6 - .string "Reizt Geg. so, dass\n" - .string "er nur Angriffs-\n" - .string "attacken einsetzt.$" - -gItemDescription_TM13: @ 83C4BE7 - .string "Eisig kalter Strahl,\n" - .string "der den Gegner\n" - .string "einfrieren kann.$" - -gItemDescription_TM14: @ 83C4C17 - .string "Eis- und Schnee- \n" - .string "Attacke, die Gegner\n" - .string "einfrieren kann.$" - -gItemDescription_TM15: @ 83C4C50 - .string "Stark, muss sich\n" - .string "aber in der nächs-\n" - .string "ten Runde aufladen.$" - -gItemDescription_TM16: @ 83C4C7E - .string "Wand aus Licht, die\n" - .string "Senkung des SP.\n" - .string "ANGR. verringert.$" - -gItemDescription_TM17: @ 83C4CB2 - .string "Schützt, könnte\n" - .string "aber bei häufigem\n" - .string "Einsatz versagen.$" - -gItemDescription_TM18: @ 83C4CEA - .string "Verstärkt WASSER-\n" - .string "Attacken über\n" - .string "5 Runden.$" - -gItemDescription_TM19: @ 83C4D1C - .string "Füllt KP um die Hälf-\n" - .string "te der zugefügten\n" - .string "Schadenspunkte.$" - -gItemDescription_TM20: @ 83C4D54 - .string "Mystische Macht\n" - .string "verhindert Status-\n" - .string "veränderungen.$" - -gItemDescription_TM21: @ 83C4D87 - .string "Je unbeliebter der\n" - .string "Trainer, desto grö-\n" - .string "ßer die Wirkung.$" - -gItemDescription_TM22: @ 83C4DC1 - .string "Erst wird Sonnen-\n" - .string "licht absorbiert,\n" - .string "dann erfolgt Angr.$" - -gItemDescription_TM23: @ 83C4DFB - .string "Schlag mit harter\n" - .string "Rute. Kann gleichz.\n" - .string "VERT.-Wert senken.$" - -gItemDescription_TM24: @ 83C4E31 - .string "Starke Elektro-\n" - .string "Attacke kann\n" - .string "Paralyse bewirken.$" - -gItemDescription_TM25: @ 83C4E66 - .string "Mächtiger Donner-\n" - .string "schlag, der Paraly-\n" - .string "se bewirken kann.$" - -gItemDescription_TM26: @ 83C4E9B - .string "Starkes Beben hat\n" - .string "keinen Einfluss auf\n" - .string "fliegende Gegner.$" - -gItemDescription_TM27: @ 83C4ECD - .string "Je beliebter der\n" - .string "Trainer, desto grö-\n" - .string "ßer die Wirkung.$" - -gItemDescription_TM28: @ 83C4F07 - .string "Erst gräbt sich An-\n" - .string "greifer ein, dann\n" - .string "erfolgt Angriff.$" - -gItemDescription_TM29: @ 83C4F3E - .string "Starke PSYCHO-At-\n" - .string "tacke, die SP. VERT.\n" - .string "senken kann.$" - -gItemDescription_TM30: @ 83C4F70 - .string "Dunkler Klumpen,\n" - .string "der SP. VERT.\n" - .string "senken kann.$" - -gItemDescription_TM31: @ 83C4FA4 - .string "Zerstört Barrieren\n" - .string "wie SCHUTZSCHILD,\n" - .string "fügt Schaden zu.$" - -gItemDescription_TM32: @ 83C4FDB - .string "Virtueller Doppel-\n" - .string "gänger erhöht\n" - .string "den Flucht-Wert.$" - -gItemDescription_TM33: @ 83C500B - .string "Wand aus Licht, die\n" - .string "physische Atta-\n" - .string "cken schwächt.$" - -gItemDescription_TM34: @ 83C5042 - .string "Fügt Gegner einen\n" - .string "Stromschlag zu,\n" - .string "der nie verfehlt.$" - -gItemDescription_TM35: @ 83C507D - .string "Entfesselt Feuer-\n" - .string "strahl, der Gegner\n" - .string "verbrennen kann.$" - -gItemDescription_TM36: @ 83C50AC - .string "Bewirft Gegner mit\n" - .string "Matsch, der ihn\n" - .string "vergiften kann.$" - -gItemDescription_TM37: @ 83C50DC - .string "Sandsturm trifft\n" - .string "etliche Runden lang\n" - .string "die Kämpfenden.$" - -gItemDescription_TM38: @ 83C5115 - .string "Kraftvolle FEUER-\n" - .string "Attacke, die Gegner\n" - .string "verbrennen kann.$" - -gItemDescription_TM39: @ 83C5143 - .string "Stoppt GESTEIN-\n" - .string "Attacken. Kann\n" - .string "INIT.-Wert senken.$" - -gItemDescription_TM40: @ 83C517A - .string "Eine extrem schnel-\n" - .string "le Attacke, die\n" - .string "unausweichlich ist.$" - -gItemDescription_TM41: @ 83C51AA - .string "Blockiert gerade\n" - .string "verwendete Atta-\n" - .string "cke des Gegners.$" - -gItemDescription_TM42: @ 83C51DE - .string "Stärkt ANGR.-Wert\n" - .string "bei Gift, Brand oder\n" - .string "Paralyse.$" - -gItemDescription_TM43: @ 83C5211 - .string "Die Umgebung\n" - .string "beeinflusst die Art\n" - .string "der Attacke.$" - -gItemDescription_TM44: @ 83C5245 - .string "POKéMON schläft\n" - .string "2 Runden. Füllt KP\n" - .string "und heilt Status.$" - -gItemDescription_TM45: @ 83C527F - .string "Erschwert Angriff\n" - .string "auf Gegner des an-\n" - .string "deren Geschlechts.$" - -gItemDescription_TM46: @ 83C52B6 - .string "Beim Angriff wird\n" - .string "Item des Gegners\n" - .string "evtl. gestohlen.$" - -gItemDescription_TM47: @ 83C52E9 - .string "Den Gegner\n" - .string "treffen stählerne\n" - .string "Flügelschläge.$" - -gItemDescription_TM48: @ 83C531A - .string "Austausch der\n" - .string "Fähigkeiten bei der\n" - .string "nächsten Attacke.$" - -gItemDescription_TM49: @ 83C5354 - .string "Stiehlt die\n" - .string "Effekte der gegne-\n" - .string "rischen Attacke.$" - -gItemDescription_TM50: @ 83C538D - .string "Höchste Kraft,\n" - .string "aber senkt SP.\n" - .string "ANGR. enorm.$" - -gItemDescription_HM01: @ 83C53C4 - .string "Gegner wird mit\n" - .string "klingenscharfen\n" - .string "Krallen attackiert.$" - -gItemDescription_HM02: @ 83C53F0 - .string "PKMN fliegt hoch,\n" - .string "dann erfolgt rasan-\n" - .string "ter Luftangriff.$" - -gItemDescription_HM03: @ 83C5424 - .string "Eine riesige Flut-\n" - .string "welle ergießt sich\n" - .string "über dem Gegner.$" - -gItemDescription_HM04: @ 83C545A - .string "Den Gegner trifft \n" - .string "ein energiegelade-\n" - .string "ner Kraftschlag.$" - -gItemDescription_HM05: @ 83C5485 - .string "Ein gleißender\n" - .string "Lichtstrahl, der\n" - .string "Genau. senken kann.$" - -gItemDescription_HM06: @ 83C54BD - .string "Steinbrecherische\n" - .string "Attacke, die VERT.-\n" - .string "Wert senken kann.$" - -gItemDescription_HM07: @ 83C54F4 - .string "Mächtige Attacke,\n" - .string "die Wasserfälle\n" - .string "bezwingbar macht.$" - -gItemDescription_HM08: @ 83C552B - .string "PKMN taucht ab,\n" - .string "dann erfolgt An-\n" - .string "griff aus der Tiefe.$" - -gItemDescription_Dummy: @ 83C5562 - .string "$" diff --git a/data/berry_tag_screen.s b/data/berry_tag_screen.s deleted file mode 100644 index d1be8a9d7..000000000 --- a/data/berry_tag_screen.s +++ /dev/null @@ -1,12 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -gUnknown_0841192C:: @ 841192C - .4byte ContestStatsText_VerySoft - .4byte ContestStatsText_Soft - .4byte ContestStatsText_Hard - .4byte ContestStatsText_VeryHard - .4byte ContestStatsText_SuperHard diff --git a/data/crc16_table.inc b/data/crc16_table.inc deleted file mode 100644 index a1f8babd0..000000000 --- a/data/crc16_table.inc +++ /dev/null @@ -1,34 +0,0 @@ - .align 1 -gCrc16Table:: @ 82087DC - .2byte 0x0000, 0x1189, 0x2312, 0x329B, 0x4624, 0x57AD, 0x6536, 0x74BF - .2byte 0x8C48, 0x9DC1, 0xAF5A, 0xBED3, 0xCA6C, 0xDBE5, 0xE97E, 0xF8F7 - .2byte 0x1081, 0x0108, 0x3393, 0x221A, 0x56A5, 0x472C, 0x75B7, 0x643E - .2byte 0x9CC9, 0x8D40, 0xBFDB, 0xAE52, 0xDAED, 0xCB64, 0xF9FF, 0xE876 - .2byte 0x2102, 0x308B, 0x0210, 0x1399, 0x6726, 0x76AF, 0x4434, 0x55BD - .2byte 0xAD4A, 0xBCC3, 0x8E58, 0x9FD1, 0xEB6E, 0xFAE7, 0xC87C, 0xD9F5 - .2byte 0x3183, 0x200A, 0x1291, 0x0318, 0x77A7, 0x662E, 0x54B5, 0x453C - .2byte 0xBDCB, 0xAC42, 0x9ED9, 0x8F50, 0xFBEF, 0xEA66, 0xD8FD, 0xC974 - .2byte 0x4204, 0x538D, 0x6116, 0x709F, 0x0420, 0x15A9, 0x2732, 0x36BB - .2byte 0xCE4C, 0xDFC5, 0xED5E, 0xFCD7, 0x8868, 0x99E1, 0xAB7A, 0xBAF3 - .2byte 0x5285, 0x430C, 0x7197, 0x601E, 0x14A1, 0x0528, 0x37B3, 0x263A - .2byte 0xDECD, 0xCF44, 0xFDDF, 0xEC56, 0x98E9, 0x8960, 0xBBFB, 0xAA72 - .2byte 0x6306, 0x728F, 0x4014, 0x519D, 0x2522, 0x34AB, 0x0630, 0x17B9 - .2byte 0xEF4E, 0xFEC7, 0xCC5C, 0xDDD5, 0xA96A, 0xB8E3, 0x8A78, 0x9BF1 - .2byte 0x7387, 0x620E, 0x5095, 0x411C, 0x35A3, 0x242A, 0x16B1, 0x0738 - .2byte 0xFFCF, 0xEE46, 0xDCDD, 0xCD54, 0xB9EB, 0xA862, 0x9AF9, 0x8B70 - .2byte 0x8408, 0x9581, 0xA71A, 0xB693, 0xC22C, 0xD3A5, 0xE13E, 0xF0B7 - .2byte 0x0840, 0x19C9, 0x2B52, 0x3ADB, 0x4E64, 0x5FED, 0x6D76, 0x7CFF - .2byte 0x9489, 0x8500, 0xB79B, 0xA612, 0xD2AD, 0xC324, 0xF1BF, 0xE036 - .2byte 0x18C1, 0x0948, 0x3BD3, 0x2A5A, 0x5EE5, 0x4F6C, 0x7DF7, 0x6C7E - .2byte 0xA50A, 0xB483, 0x8618, 0x9791, 0xE32E, 0xF2A7, 0xC03C, 0xD1B5 - .2byte 0x2942, 0x38CB, 0x0A50, 0x1BD9, 0x6F66, 0x7EEF, 0x4C74, 0x5DFD - .2byte 0xB58B, 0xA402, 0x9699, 0x8710, 0xF3AF, 0xE226, 0xD0BD, 0xC134 - .2byte 0x39C3, 0x284A, 0x1AD1, 0x0B58, 0x7FE7, 0x6E6E, 0x5CF5, 0x4D7C - .2byte 0xC60C, 0xD785, 0xE51E, 0xF497, 0x8028, 0x91A1, 0xA33A, 0xB2B3 - .2byte 0x4A44, 0x5BCD, 0x6956, 0x78DF, 0x0C60, 0x1DE9, 0x2F72, 0x3EFB - .2byte 0xD68D, 0xC704, 0xF59F, 0xE416, 0x90A9, 0x8120, 0xB3BB, 0xA232 - .2byte 0x5AC5, 0x4B4C, 0x79D7, 0x685E, 0x1CE1, 0x0D68, 0x3FF3, 0x2E7A - .2byte 0xE70E, 0xF687, 0xC41C, 0xD595, 0xA12A, 0xB0A3, 0x8238, 0x93B1 - .2byte 0x6B46, 0x7ACF, 0x4854, 0x59DD, 0x2D62, 0x3CEB, 0x0E70, 0x1FF9 - .2byte 0xF78F, 0xE606, 0xD49D, 0xC514, 0xB1AB, 0xA022, 0x92B9, 0x8330 - .2byte 0x7BC7, 0x6A4E, 0x58D5, 0x495C, 0x3DE3, 0x2C6A, 0x1EF1, 0x0F78 diff --git a/data/diploma.s b/data/diploma.s deleted file mode 100644 index 508e86c63..000000000 --- a/data/diploma.s +++ /dev/null @@ -1,5 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - diff --git a/data/graphics/berries/graphics_table.inc b/data/graphics/berries/graphics_table.inc deleted file mode 100644 index 78af1c48b..000000000 --- a/data/graphics/berries/graphics_table.inc +++ /dev/null @@ -1,45 +0,0 @@ - .align 2 -gBerryGraphicsTable:: @ 83C1E1C - .4byte gBerryPic_Cheri, gBerryPalette_Cheri - .4byte gBerryPic_Chesto, gBerryPalette_Chesto - .4byte gBerryPic_Pecha, gBerryPalette_Pecha - .4byte gBerryPic_Rawst, gBerryPalette_Rawst - .4byte gBerryPic_Aspear, gBerryPalette_Aspear - .4byte gBerryPic_Leppa, gBerryPalette_Leppa - .4byte gBerryPic_Oran, gBerryPalette_Oran - .4byte gBerryPic_Persim, gBerryPalette_Persim - .4byte gBerryPic_Lum, gBerryPalette_Lum - .4byte gBerryPic_Sitrus, gBerryPalette_Sitrus - .4byte gBerryPic_Figy, gBerryPalette_Figy - .4byte gBerryPic_Wiki, gBerryPalette_Wiki - .4byte gBerryPic_Mago, gBerryPalette_Mago - .4byte gBerryPic_Aguav, gBerryPalette_Aguav - .4byte gBerryPic_Iapapa, gBerryPalette_Iapapa - .4byte gBerryPic_Razz, gBerryPalette_Razz - .4byte gBerryPic_Bluk, gBerryPalette_Bluk - .4byte gBerryPic_Nanab, gBerryPalette_Nanab - .4byte gBerryPic_Wepear, gBerryPalette_Wepear - .4byte gBerryPic_Pinap, gBerryPalette_Pinap - .4byte gBerryPic_Pomeg, gBerryPalette_Pomeg - .4byte gBerryPic_Kelpsy, gBerryPalette_Kelpsy - .4byte gBerryPic_Qualot, gBerryPalette_Qualot - .4byte gBerryPic_Hondew, gBerryPalette_Hondew - .4byte gBerryPic_Grepa, gBerryPalette_Grepa - .4byte gBerryPic_Tamato, gBerryPalette_Tamato - .4byte gBerryPic_Cornn, gBerryPalette_Cornn - .4byte gBerryPic_Magost, gBerryPalette_Magost - .4byte gBerryPic_Rabuta, gBerryPalette_Rabuta - .4byte gBerryPic_Nomel, gBerryPalette_Nomel - .4byte gBerryPic_Spelon, gBerryPalette_Spelon - .4byte gBerryPic_Pamtre, gBerryPalette_Pamtre - .4byte gBerryPic_Watmel, gBerryPalette_Watmel - .4byte gBerryPic_Durin, gBerryPalette_Durin - .4byte gBerryPic_Belue, gBerryPalette_Belue - .4byte gBerryPic_Liechi, gBerryPalette_Liechi - .4byte gBerryPic_Ganlon, gBerryPalette_Ganlon - .4byte gBerryPic_Salac, gBerryPalette_Salac - .4byte gBerryPic_Petaya, gBerryPalette_Petaya - .4byte gBerryPic_Apicot, gBerryPalette_Apicot - .4byte gBerryPic_Lansat, gBerryPalette_Lansat - .4byte gBerryPic_Starf, gBerryPalette_Starf - .4byte gBerryPic_Enigma, gBerryPalette_Enigma diff --git a/data/item.s b/data/item.s deleted file mode 100644 index 0c2aa8593..000000000 --- a/data/item.s +++ /dev/null @@ -1,10 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - -@ 83C2028 - .include "data/text/item_descriptions.inc" - -@ 83C5564 - .include "data/items.inc" diff --git a/data/item_menu.s b/data/item_menu.s deleted file mode 100644 index f66961b46..000000000 --- a/data/item_menu.s +++ /dev/null @@ -1,289 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - -@ pointer to items, capacity - .align 2 -gBagPockets:: @ 83C1618 - .4byte gSaveBlock1 + 0x560, 20 @ Items - .4byte gSaveBlock1 + 0x600, 16 @ Poké Balls - .4byte gSaveBlock1 + 0x640, 64 @ TMs & HMs - .4byte gSaveBlock1 + 0x740, 46 @ Berries - .4byte gSaveBlock1 + 0x5B0, 20 @ Key Items - - .align 2 -gUnknown_083C1640:: @ 83C1640 - .4byte OtherText_Use, sub_80A5B78 - .4byte OtherText_Toss, sub_80A5F14 - .4byte gOtherText_CancelNoTerminator, sub_80A5F80 - .4byte OtherText_Register, sub_80A5FAC - .4byte OtherText_Use, ItemMenu_UseInBattle - .4byte gOtherText_CancelNoTerminator, sub_80A7124 - .4byte OtherText_Give2, ItemMenu_Give - .4byte OtherText_CheckTag, sub_80A6178 - .4byte gOtherText_CancelWithTerminator, 0x0 - .4byte OtherText_Confirm, sub_80A69E0 - -@ 6-byte entries; format of entry is unknown -gUnknown_083C1690:: @ 83C1690 - .byte 0, 1, 6, 2, 0, 0 - .byte 6, 1, 8, 2, 0, 0 - .byte 0, 8, 6, 2, 0, 0 - .byte 7, 0, 1, 8, 6, 2 - .byte 0, 8, 3, 2, 0, 0 - -gUnknown_083C16AE:: @ 83C16AE - .byte 6, 2 - .byte 6, 2 - .byte 6, 2 - .byte 6, 2 - .byte 2, 0 - -gUnknown_083C16B8:: @ 83C16B8 - .byte 7, 9, 8, 2 - - .align 2 -gUnknown_083C16BC:: @ 83C16BC - .4byte sub_80A59D0 - .4byte sub_80A599C - .4byte sub_80A7024 - .4byte sub_80A70D8 - .4byte sub_80A6214 - .4byte sub_80A61EC - .4byte sub_80A6354 - .4byte sub_80A631C - .4byte sub_80A6918 - .4byte sub_80A68F0 - .4byte sub_80A59D0 - .4byte sub_80A69B8 - .4byte sub_80A6C6C - .4byte sub_80A6A4C - - .align 2 -gUnknown_083C16F4:: @ 83C16F4 - .4byte sub_80A5E60 - .4byte sub_80A5E90 - - .align 2 -gUnknown_083C16FC:: @ 83C16FC - .4byte sub_80A65AC - .4byte sub_80A6618 - - .align 1 -gUnknown_083C1704:: @ 83C1704 - .2byte 0x41EE, 0x7FFF - -gUnknown_083C1708:: @ 83C1708 - .byte 4, 5 - -gUnknown_083C170A:: @ 83C170A - .byte 5, 0 - - .align 2 -gPalette_83C170C:: @ 83C170C - .incbin "graphics/unknown/83C170C.gbapal" - - .align 2 -gSpriteImage_83C172C:: @ 83C172C - .incbin "graphics/unknown_sprites/83C172C.4bpp" - - .align 2 - .incbin "graphics/unused/cherry.4bpp" - - .align 2 - .incbin "graphics/unused/cherry.gbapal" - - .align 2 -gOamData_83C1C4C:: @ 83C1C4C - .2byte 0x0000 - .2byte 0xC000 - .2byte 0x7800 - - .align 2 -gSpriteAnim_83C1C54:: @ 83C1C54 - obj_image_anim_frame 0, 4 - obj_image_anim_end - - .align 2 -gSpriteAnim_83C1C5C:: @ 83C1C5C - obj_image_anim_frame 64, 4 - obj_image_anim_end - - .align 2 -gSpriteAnim_83C1C64:: @ 83C1C64 - obj_image_anim_frame 128, 4 - obj_image_anim_end - - .align 2 -gSpriteAnim_83C1C6C:: @ 83C1C6C - obj_image_anim_frame 192, 4 - obj_image_anim_end - - .align 2 -gSpriteAnim_83C1C74:: @ 83C1C74 - obj_image_anim_frame 256, 4 - obj_image_anim_end - - .align 2 -gSpriteAnim_83C1C7C:: @ 83C1C7C - obj_image_anim_frame 320, 4 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83C1C84:: @ 83C1C84 - .4byte gSpriteAnim_83C1C54 - .4byte gSpriteAnim_83C1C5C - .4byte gSpriteAnim_83C1C6C - .4byte gSpriteAnim_83C1C74 - .4byte gSpriteAnim_83C1C7C - .4byte gSpriteAnim_83C1C64 - - .align 2 -gSpriteAffineAnim_83C1C9C:: @ 83C1C9C - obj_rot_scal_anim_frame 0x0, 0x0, -2, 2 - obj_rot_scal_anim_frame 0x0, 0x0, 2, 4 - obj_rot_scal_anim_frame 0x0, 0x0, -2, 4 - obj_rot_scal_anim_frame 0x0, 0x0, 2, 2 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnimTable_83C1CC4:: @ 83C1CC4 - .4byte gSpriteAffineAnim_83C1C9C - - .align 2 -gUnknown_083C1CC8:: @ 83C1CC8 - obj_tiles gBagMaleTiles, 0x3000, 30000 - - .align 2 -gUnknown_083C1CD0:: @ 83C1CD0 - obj_tiles gBagFemaleTiles, 0x3000, 30000 - - .align 2 -gUnknown_083C1CD8:: @ 83C1CD8 - obj_pal gBagPalette, 30000 - - .align 2 -gSpriteTemplate_83C1CE0:: @ 83C1CE0 - spr_template 30000, 30000, gOamData_83C1C4C, gSpriteAnimTable_83C1C84, NULL, gSpriteAffineAnimTable_83C1CC4, sub_80A7998 - - .align 2 -gOamData_83C1CF8:: @ 83C1CF8 - .2byte 0x0000 - .2byte 0x4800 - .2byte 0x8800 - - .align 2 -gSpriteAffineAnim_83C1D00:: @ 83C1D00 - obj_rot_scal_anim_frame 0x0, 0x0, 8, 32 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnim_83C1D10:: @ 83C1D10 - obj_rot_scal_anim_frame 0x0, 0x0, -8, 32 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnimTable_83C1D20:: @ 83C1D20 - .4byte gSpriteAffineAnim_83C1D00 - .4byte gSpriteAffineAnim_83C1D10 - - .align 2 -gSpriteImageTable_83C1D28:: @ 83C1D28 - obj_frame_tiles gSpriteImage_83C172C, 0x80 - - .align 2 -gUnknown_083C1D30:: @ 83C1D30 - obj_pal gPalette_83C170C, 8 - - .align 2 -gSpriteTemplate_83C1D38:: @ 83C1D38 - spr_template 0xFFFF, 8, gOamData_83C1CF8, gSpriteAnimTable_83C1C84, gSpriteImageTable_83C1D28, gSpriteAffineAnimTable_83C1D20, sub_80A7B28 - - .align 2 -gOamData_83C1D50:: @ 83C1D50 - .2byte 0x0000 - .2byte 0xC000 - .2byte 0x7400 - - .align 2 -gOamData_83C1D58:: @ 83C1D58 - .2byte 0x0300 - .2byte 0xC000 - .2byte 0x7000 - - .align 2 -gSpriteAnim_83C1D60:: @ 83C1D60 - obj_image_anim_frame 0, 0 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83C1D68:: @ 83C1D68 - .4byte gSpriteAnim_83C1D60 - - .align 2 -gSpriteImageTable_83C1D6C:: @ 83C1D6C - obj_frame_tiles 0x02000000, 0x800 - - .align 2 -gSpriteTemplate_83C1D74:: @ 83C1D74 - spr_template 0xFFFF, 30020, gOamData_83C1D50, gSpriteAnimTable_83C1D68, gSpriteImageTable_83C1D6C, gDummySpriteAffineAnimTable, sub_80A7DC4 - - .align 2 -gSpriteAffineAnim_83C1D8C:: @ 83C1D8C - obj_rot_scal_anim_frame 0xFFFF, 0xFFFF, -3, 96 - obj_rot_scal_anim_frame 0x0, 0x0, 0, 16 - obj_rot_scal_anim_frame 0xFFFE, 0xFFFE, -1, 64 - obj_rot_scal_anim_frame 0xFFF8, 0x0, 0, 16 - obj_rot_scal_anim_frame 0x0, 0xFFF8, 0, 16 - obj_rot_scal_anim_frame 0x100, 0x100, 0, 0 - obj_rot_scal_anim_jump 0 - - .align 2 -gSpriteAffineAnim_83C1DC4:: @ 83C1DC4 - obj_rot_scal_anim_frame 0xFFFF, 0xFFFF, 3, 96 - obj_rot_scal_anim_frame 0x0, 0x0, 0, 16 - obj_rot_scal_anim_frame 0xFFFE, 0xFFFE, 1, 64 - obj_rot_scal_anim_frame 0xFFF8, 0x0, 0, 16 - obj_rot_scal_anim_frame 0x0, 0xFFF8, 0, 16 - obj_rot_scal_anim_frame 0x100, 0x100, 0, 0 - obj_rot_scal_anim_jump 0 - - .align 2 -gSpriteAffineAnimTable_83C1DFC:: @ 83C1DFC - .4byte gSpriteAffineAnim_83C1D8C - .4byte gSpriteAffineAnim_83C1DC4 - - .align 2 -gSpriteTemplate_83C1E04:: @ 83C1E04 - spr_template 0xFFFF, 30020, gOamData_83C1D58, gSpriteAnimTable_83C1D68, gSpriteImageTable_83C1D6C, gSpriteAffineAnimTable_83C1DFC, SpriteCallbackDummy - -@ 83C1E1C - .include "data/graphics/berries/graphics_table.inc" - - .align 2 -gUnknown_083C1F74:: @ 83C1F74 - obj_tiles gBerryCheckCircle_Gfx, 2048, 0x2710 - - .align 2 -gUnknown_083C1F7C:: @ 83C1F7C - obj_pal gBerryCheck_Pal, 0x2710 - - .align 2 -gOamData_83C1F84:: @ 83C1F84 - .2byte 0x0000 - .2byte 0x8000 - .2byte 0x0400 - - .align 2 -gSpriteAnim_83C1F8C:: @ 83C1F8C - obj_image_anim_frame 0, 0 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83C1F94:: @ 83C1F94 - .4byte gSpriteAnim_83C1F8C - - .align 2 -gSpriteTemplate_83C1F98:: @ 83C1F98 - spr_template 10000, 10000, gOamData_83C1F84, gSpriteAnimTable_83C1F94, NULL, gDummySpriteAffineAnimTable, sub_80A7DC4 diff --git a/data/items.inc b/data/items.inc deleted file mode 100644 index 0074a6bfa..000000000 --- a/data/items.inc +++ /dev/null @@ -1,5236 +0,0 @@ - .align 2 -gItems:: @ 83C5564 - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "MASTER BALL$", 14 - .2byte ITEM_MASTER_BALL - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_MasterBall - .byte 0 - .byte 0 - .byte POCKET_POKE_BALLS - .byte 0 - .4byte NULL - .4byte 2 - .4byte ItemUseInBattle_PokeBall - .4byte 0 - - .string "ULTRA BALL$", 14 - .2byte ITEM_ULTRA_BALL - .2byte 1200 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_UltraBall - .byte 0 - .byte 0 - .byte POCKET_POKE_BALLS - .byte 1 - .4byte NULL - .4byte 2 - .4byte ItemUseInBattle_PokeBall - .4byte 1 - - .string "GREAT BALL$", 14 - .2byte ITEM_GREAT_BALL - .2byte 600 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_GreatBall - .byte 0 - .byte 0 - .byte POCKET_POKE_BALLS - .byte 2 - .4byte NULL - .4byte 2 - .4byte ItemUseInBattle_PokeBall - .4byte 2 - - .string "POKé BALL$", 14 - .2byte ITEM_POKE_BALL - .2byte 200 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_PokeBall - .byte 0 - .byte 0 - .byte POCKET_POKE_BALLS - .byte 3 - .4byte NULL - .4byte 2 - .4byte ItemUseInBattle_PokeBall - .4byte 3 - - .string "SAFARI BALL$", 14 - .2byte ITEM_SAFARI_BALL - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_SafariBall - .byte 0 - .byte 0 - .byte POCKET_POKE_BALLS - .byte 4 - .4byte NULL - .4byte 2 - .4byte ItemUseInBattle_PokeBall - .4byte 4 - - .string "NET BALL$", 14 - .2byte ITEM_NET_BALL - .2byte 1000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_NetBall - .byte 0 - .byte 0 - .byte POCKET_POKE_BALLS - .byte 5 - .4byte NULL - .4byte 2 - .4byte ItemUseInBattle_PokeBall - .4byte 5 - - .string "DIVE BALL$", 14 - .2byte ITEM_DIVE_BALL - .2byte 1000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_DiveBall - .byte 0 - .byte 0 - .byte POCKET_POKE_BALLS - .byte 6 - .4byte NULL - .4byte 2 - .4byte ItemUseInBattle_PokeBall - .4byte 6 - - .string "NEST BALL$", 14 - .2byte ITEM_NEST_BALL - .2byte 1000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_NestBall - .byte 0 - .byte 0 - .byte POCKET_POKE_BALLS - .byte 7 - .4byte NULL - .4byte 2 - .4byte ItemUseInBattle_PokeBall - .4byte 7 - - .string "REPEAT BALL$", 14 - .2byte ITEM_REPEAT_BALL - .2byte 1000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_RepeatBall - .byte 0 - .byte 0 - .byte POCKET_POKE_BALLS - .byte 8 - .4byte NULL - .4byte 2 - .4byte ItemUseInBattle_PokeBall - .4byte 8 - - .string "TIMER BALL$", 14 - .2byte ITEM_TIMER_BALL - .2byte 1000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TimerBall - .byte 0 - .byte 0 - .byte POCKET_POKE_BALLS - .byte 9 - .4byte NULL - .4byte 2 - .4byte ItemUseInBattle_PokeBall - .4byte 9 - - .string "LUXURY BALL$", 14 - .2byte ITEM_LUXURY_BALL - .2byte 1000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_LuxuryBall - .byte 0 - .byte 0 - .byte POCKET_POKE_BALLS - .byte 10 - .4byte NULL - .4byte 2 - .4byte ItemUseInBattle_PokeBall - .4byte 10 - - .string "PREMIER BALL$", 14 - .2byte ITEM_PREMIER_BALL - .2byte 200 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_PremierBall - .byte 0 - .byte 0 - .byte POCKET_POKE_BALLS - .byte 11 - .4byte NULL - .4byte 2 - .4byte ItemUseInBattle_PokeBall - .4byte 11 - - .string "POTION$", 14 - .2byte ITEM_POTION - .2byte 300 @ price - .byte HOLD_EFFECT_NONE - .byte 20 - .4byte gItemDescription_Potion - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "ANTIDOTE$", 14 - .2byte ITEM_ANTIDOTE - .2byte 100 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Antidote - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "BURN HEAL$", 14 - .2byte ITEM_BURN_HEAL - .2byte 250 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_BurnHeal - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "ICE HEAL$", 14 - .2byte ITEM_ICE_HEAL - .2byte 250 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_IceHeal - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "AWAKENING$", 14 - .2byte ITEM_AWAKENING - .2byte 250 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Awakening - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "PARLYZ HEAL$", 14 - .2byte ITEM_PARALYZE_HEAL - .2byte 200 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_ParalyzeHeal - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "FULL RESTORE$", 14 - .2byte ITEM_FULL_RESTORE - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 255 - .4byte gItemDescription_FullRestore - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "MAX POTION$", 14 - .2byte ITEM_MAX_POTION - .2byte 2500 @ price - .byte HOLD_EFFECT_NONE - .byte 255 - .4byte gItemDescription_MaxPotion - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "HYPER POTION$", 14 - .2byte ITEM_HYPER_POTION - .2byte 1200 @ price - .byte HOLD_EFFECT_NONE - .byte 200 - .4byte gItemDescription_HyperPotion - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "SUPER POTION$", 14 - .2byte ITEM_SUPER_POTION - .2byte 700 @ price - .byte HOLD_EFFECT_NONE - .byte 50 - .4byte gItemDescription_SuperPotion - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "FULL HEAL$", 14 - .2byte ITEM_FULL_HEAL - .2byte 600 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_FullHeal - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "REVIVE$", 14 - .2byte ITEM_REVIVE - .2byte 1500 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Revive - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "MAX REVIVE$", 14 - .2byte ITEM_MAX_REVIVE - .2byte 4000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_MaxRevive - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "FRESH WATER$", 14 - .2byte ITEM_FRESH_WATER - .2byte 200 @ price - .byte HOLD_EFFECT_NONE - .byte 50 - .4byte gItemDescription_FreshWater - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "SODA POP$", 14 - .2byte ITEM_SODA_POP - .2byte 300 @ price - .byte HOLD_EFFECT_NONE - .byte 60 - .4byte gItemDescription_SodaPop - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "LEMONADE$", 14 - .2byte ITEM_LEMONADE - .2byte 350 @ price - .byte HOLD_EFFECT_NONE - .byte 80 - .4byte gItemDescription_Lemonade - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "MOOMOO MILK$", 14 - .2byte ITEM_MOOMOO_MILK - .2byte 500 @ price - .byte HOLD_EFFECT_NONE - .byte 100 - .4byte gItemDescription_MoomooMilk - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "ENERGYPOWDER$", 14 - .2byte ITEM_ENERGY_POWDER - .2byte 500 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_EnergyPowder - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "ENERGY ROOT$", 14 - .2byte ITEM_ENERGY_ROOT - .2byte 800 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_EnergyRoot - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "HEAL POWDER$", 14 - .2byte ITEM_HEAL_POWDER - .2byte 450 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_HealPowder - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "REVIVAL HERB$", 14 - .2byte ITEM_REVIVAL_HERB - .2byte 2800 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_RevivalHerb - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "ETHER$", 14 - .2byte ITEM_ETHER - .2byte 1200 @ price - .byte HOLD_EFFECT_NONE - .byte 10 - .4byte gItemDescription_Ether - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_PPRecovery - .4byte 1 - .4byte ItemUseInBattle_PPRecovery - .4byte 0 - - .string "MAX ETHER$", 14 - .2byte ITEM_MAX_ETHER - .2byte 2000 @ price - .byte HOLD_EFFECT_NONE - .byte 255 - .4byte gItemDescription_MaxEther - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_PPRecovery - .4byte 1 - .4byte ItemUseInBattle_PPRecovery - .4byte 0 - - .string "ELIXIR$", 14 - .2byte ITEM_ELIXIR - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 10 - .4byte gItemDescription_Elixir - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_PPRecovery - .4byte 1 - .4byte ItemUseInBattle_PPRecovery - .4byte 0 - - .string "MAX ELIXIR$", 14 - .2byte ITEM_MAX_ELIXIR - .2byte 4500 @ price - .byte HOLD_EFFECT_NONE - .byte 255 - .4byte gItemDescription_MaxElixir - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_PPRecovery - .4byte 1 - .4byte ItemUseInBattle_PPRecovery - .4byte 0 - - .string "LAVA COOKIE$", 14 - .2byte ITEM_LAVA_COOKIE - .2byte 200 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_LavaCookie - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "BLUE FLUTE$", 14 - .2byte ITEM_BLUE_FLUTE - .2byte 100 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_BlueFlute - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "YELLOW FLUTE$", 14 - .2byte ITEM_YELLOW_FLUTE - .2byte 200 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_YellowFlute - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "RED FLUTE$", 14 - .2byte ITEM_RED_FLUTE - .2byte 300 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_RedFlute - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "BLACK FLUTE$", 14 - .2byte ITEM_BLACK_FLUTE - .2byte 400 @ price - .byte HOLD_EFFECT_NONE - .byte 50 - .4byte gItemDescription_BlackFlute - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_BlackWhiteFlute - .4byte 0 - .4byte NULL - .4byte 0 - - .string "WHITE FLUTE$", 14 - .2byte ITEM_WHITE_FLUTE - .2byte 500 @ price - .byte HOLD_EFFECT_NONE - .byte 150 - .4byte gItemDescription_WhiteFlute - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_BlackWhiteFlute - .4byte 0 - .4byte NULL - .4byte 0 - - .string "BERRY JUICE$", 14 - .2byte ITEM_BERRY_JUICE - .2byte 100 @ price - .byte HOLD_EFFECT_RESTORE_HP - .byte 20 - .4byte gItemDescription_BerryJuice - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "SACRED ASH$", 14 - .2byte ITEM_SACRED_ASH - .2byte 200 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_SacredAsh - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_SacredAsh - .4byte 0 - .4byte NULL - .4byte 0 - - .string "SHOAL SALT$", 14 - .2byte ITEM_SHOAL_SALT - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_ShoalSalt - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "SHOAL SHELL$", 14 - .2byte ITEM_SHOAL_SHELL - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_ShoalShell - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "RED SHARD$", 14 - .2byte ITEM_RED_SHARD - .2byte 200 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_RedShard - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "BLUE SHARD$", 14 - .2byte ITEM_BLUE_SHARD - .2byte 200 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_BlueShard - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "YELLOW SHARD$", 14 - .2byte ITEM_YELLOW_SHARD - .2byte 200 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_YellowShard - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "GREEN SHARD$", 14 - .2byte ITEM_GREEN_SHARD - .2byte 200 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_GreenShard - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "HP UP$", 14 - .2byte ITEM_HP_UP - .2byte 9800 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_HPUp - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 0 - .4byte NULL - .4byte 0 - - .string "PROTEIN$", 14 - .2byte ITEM_PROTEIN - .2byte 9800 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Protein - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 0 - .4byte NULL - .4byte 0 - - .string "IRON$", 14 - .2byte ITEM_IRON - .2byte 9800 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Iron - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 0 - .4byte NULL - .4byte 0 - - .string "CARBOS$", 14 - .2byte ITEM_CARBOS - .2byte 9800 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Carbos - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 0 - .4byte NULL - .4byte 0 - - .string "CALCIUM$", 14 - .2byte ITEM_CALCIUM - .2byte 9800 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Calcium - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 0 - .4byte NULL - .4byte 0 - - .string "RARE CANDY$", 14 - .2byte ITEM_RARE_CANDY - .2byte 4800 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_RareCandy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_RareCandy - .4byte 0 - .4byte NULL - .4byte 0 - - .string "PP UP$", 14 - .2byte ITEM_PP_UP - .2byte 9800 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_PPUp - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_PPUp - .4byte 0 - .4byte NULL - .4byte 0 - - .string "ZINC$", 14 - .2byte ITEM_ZINC - .2byte 9800 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Zinc - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 0 - .4byte NULL - .4byte 0 - - .string "PP MAX$", 14 - .2byte ITEM_PP_MAX - .2byte 9800 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_PPMax - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_PPUp - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "GUARD SPEC.$", 14 - .2byte ITEM_GUARD_SPEC - .2byte 700 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_GuardSpec - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 2 - .4byte ItemUseInBattle_StatIncrease - .4byte 0 - - .string "DIRE HIT$", 14 - .2byte ITEM_DIRE_HIT - .2byte 650 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_DireHit - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 2 - .4byte ItemUseInBattle_StatIncrease - .4byte 0 - - .string "X ATTACK$", 14 - .2byte ITEM_X_ATTACK - .2byte 500 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_XAttack - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 2 - .4byte ItemUseInBattle_StatIncrease - .4byte 0 - - .string "X DEFEND$", 14 - .2byte ITEM_X_DEFEND - .2byte 550 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_XDefend - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 2 - .4byte ItemUseInBattle_StatIncrease - .4byte 0 - - .string "X SPEED$", 14 - .2byte ITEM_X_SPEED - .2byte 350 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_XSpeed - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 2 - .4byte ItemUseInBattle_StatIncrease - .4byte 0 - - .string "X ACCURACY$", 14 - .2byte ITEM_X_ACCURACY - .2byte 950 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_XAccuracy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 2 - .4byte ItemUseInBattle_StatIncrease - .4byte 0 - - .string "X SPECIAL$", 14 - .2byte ITEM_X_SPECIAL - .2byte 350 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_XSpecial - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 2 - .4byte ItemUseInBattle_StatIncrease - .4byte 0 - - .string "POKé DOLL$", 14 - .2byte ITEM_POKE_DOLL - .2byte 1000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_PokeDoll - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 2 - .4byte ItemUseInBattle_Escape - .4byte 0 - - .string "FLUFFY TAIL$", 14 - .2byte ITEM_FLUFFY_TAIL - .2byte 1000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_FluffyTail - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 2 - .4byte ItemUseInBattle_Escape - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "SUPER REPEL$", 14 - .2byte ITEM_SUPER_REPEL - .2byte 500 @ price - .byte HOLD_EFFECT_NONE - .byte 200 - .4byte gItemDescription_SuperRepel - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_Repel - .4byte 0 - .4byte NULL - .4byte 0 - - .string "MAX REPEL$", 14 - .2byte ITEM_MAX_REPEL - .2byte 700 @ price - .byte HOLD_EFFECT_NONE - .byte 250 - .4byte gItemDescription_MaxRepel - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_Repel - .4byte 0 - .4byte NULL - .4byte 0 - - .string "ESCAPE ROPE$", 14 - .2byte ITEM_ESCAPE_ROPE - .2byte 550 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_EscapeRope - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 2 - .4byte ItemUseOutOfBattle_EscapeRope - .4byte 0 - .4byte NULL - .4byte 0 - - .string "REPEL$", 14 - .2byte ITEM_REPEL - .2byte 350 @ price - .byte HOLD_EFFECT_NONE - .byte 100 - .4byte gItemDescription_Repel - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_Repel - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "SUN STONE$", 14 - .2byte ITEM_SUN_STONE - .2byte 2100 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_SunStone - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_EvolutionStone - .4byte 0 - .4byte NULL - .4byte 0 - - .string "MOON STONE$", 14 - .2byte ITEM_MOON_STONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_MoonStone - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_EvolutionStone - .4byte 0 - .4byte NULL - .4byte 0 - - .string "FIRE STONE$", 14 - .2byte ITEM_FIRE_STONE - .2byte 2100 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_FireStone - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_EvolutionStone - .4byte 0 - .4byte NULL - .4byte 0 - - .string "THUNDERSTONE$", 14 - .2byte ITEM_THUNDER_STONE - .2byte 2100 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_ThunderStone - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_EvolutionStone - .4byte 0 - .4byte NULL - .4byte 0 - - .string "WATER STONE$", 14 - .2byte ITEM_WATER_STONE - .2byte 2100 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_WaterStone - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_EvolutionStone - .4byte 0 - .4byte NULL - .4byte 0 - - .string "LEAF STONE$", 14 - .2byte ITEM_LEAF_STONE - .2byte 2100 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_LeafStone - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 1 - .4byte ItemUseOutOfBattle_EvolutionStone - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TINYMUSHROOM$", 14 - .2byte ITEM_TINY_MUSHROOM - .2byte 500 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TinyMushroom - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "BIG MUSHROOM$", 14 - .2byte ITEM_BIG_MUSHROOM - .2byte 5000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_BigMushroom - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "PEARL$", 14 - .2byte ITEM_PEARL - .2byte 1400 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Pearl - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "BIG PEARL$", 14 - .2byte ITEM_BIG_PEARL - .2byte 7500 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_BigPearl - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "STARDUST$", 14 - .2byte ITEM_STARDUST - .2byte 2000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Stardust - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "STAR PIECE$", 14 - .2byte ITEM_STAR_PIECE - .2byte 9800 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_StarPiece - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "NUGGET$", 14 - .2byte ITEM_NUGGET - .2byte 10000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Nugget - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "HEART SCALE$", 14 - .2byte ITEM_HEART_SCALE - .2byte 100 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_HeartScale - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "ORANGE MAIL$", 14 - .2byte ITEM_ORANGE_MAIL - .2byte 50 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_OrangeMail - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 0 - .4byte ItemUseOutOfBattle_Mail - .4byte 0 - .4byte NULL - .4byte 0 - - .string "HARBOR MAIL$", 14 - .2byte ITEM_HARBOR_MAIL - .2byte 50 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_HarborMail - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 0 - .4byte ItemUseOutOfBattle_Mail - .4byte 0 - .4byte NULL - .4byte 1 - - .string "GLITTER MAIL$", 14 - .2byte ITEM_GLITTER_MAIL - .2byte 50 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_GlitterMail - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 0 - .4byte ItemUseOutOfBattle_Mail - .4byte 0 - .4byte NULL - .4byte 2 - - .string "MECH MAIL$", 14 - .2byte ITEM_MECH_MAIL - .2byte 50 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_MechMail - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 0 - .4byte ItemUseOutOfBattle_Mail - .4byte 0 - .4byte NULL - .4byte 3 - - .string "WOOD MAIL$", 14 - .2byte ITEM_WOOD_MAIL - .2byte 50 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_WoodMail - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 0 - .4byte ItemUseOutOfBattle_Mail - .4byte 0 - .4byte NULL - .4byte 4 - - .string "WAVE MAIL$", 14 - .2byte ITEM_WAVE_MAIL - .2byte 50 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_WaveMail - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 0 - .4byte ItemUseOutOfBattle_Mail - .4byte 0 - .4byte NULL - .4byte 5 - - .string "BEAD MAIL$", 14 - .2byte ITEM_BEAD_MAIL - .2byte 50 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_BeadMail - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 0 - .4byte ItemUseOutOfBattle_Mail - .4byte 0 - .4byte NULL - .4byte 6 - - .string "SHADOW MAIL$", 14 - .2byte ITEM_SHADOW_MAIL - .2byte 50 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_ShadowMail - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 0 - .4byte ItemUseOutOfBattle_Mail - .4byte 0 - .4byte NULL - .4byte 7 - - .string "TROPIC MAIL$", 14 - .2byte ITEM_TROPIC_MAIL - .2byte 50 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TropicMail - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 0 - .4byte ItemUseOutOfBattle_Mail - .4byte 0 - .4byte NULL - .4byte 8 - - .string "DREAM MAIL$", 14 - .2byte ITEM_DREAM_MAIL - .2byte 50 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_DreamMail - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 0 - .4byte ItemUseOutOfBattle_Mail - .4byte 0 - .4byte NULL - .4byte 9 - - .string "FAB MAIL$", 14 - .2byte ITEM_FAB_MAIL - .2byte 50 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_FabMail - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 0 - .4byte ItemUseOutOfBattle_Mail - .4byte 0 - .4byte NULL - .4byte 10 - - .string "RETRO MAIL$", 14 - .2byte ITEM_RETRO_MAIL - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_RetroMail - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 0 - .4byte ItemUseOutOfBattle_Mail - .4byte 0 - .4byte NULL - .4byte 11 - - .string "CHERI BERRY$", 14 - .2byte ITEM_CHERI_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_CURE_PAR - .byte 0 - .4byte gItemDescription_CheriBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "CHESTO BERRY$", 14 - .2byte ITEM_CHESTO_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_CURE_SLP - .byte 0 - .4byte gItemDescription_ChestoBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "PECHA BERRY$", 14 - .2byte ITEM_PECHA_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_CURE_PSN - .byte 0 - .4byte gItemDescription_PechaBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "RAWST BERRY$", 14 - .2byte ITEM_RAWST_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_CURE_BRN - .byte 0 - .4byte gItemDescription_RawstBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "ASPEAR BERRY$", 14 - .2byte ITEM_ASPEAR_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_CURE_FRZ - .byte 0 - .4byte gItemDescription_AspearBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "LEPPA BERRY$", 14 - .2byte ITEM_LEPPA_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_RESTORE_PP - .byte 10 - .4byte gItemDescription_LeppaBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 1 - .4byte ItemUseOutOfBattle_PPRecovery - .4byte 1 - .4byte ItemUseInBattle_PPRecovery - .4byte 0 - - .string "ORAN BERRY$", 14 - .2byte ITEM_ORAN_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_RESTORE_HP - .byte 10 - .4byte gItemDescription_OranBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "PERSIM BERRY$", 14 - .2byte ITEM_PERSIM_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_CURE_CONFUSION - .byte 0 - .4byte gItemDescription_PersimBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "LUM BERRY$", 14 - .2byte ITEM_LUM_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_CURE_STATUS - .byte 0 - .4byte gItemDescription_LumBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "SITRUS BERRY$", 14 - .2byte ITEM_SITRUS_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_RESTORE_HP - .byte 30 - .4byte gItemDescription_SitrusBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 1 - .4byte ItemUseOutOfBattle_Medicine - .4byte 1 - .4byte ItemUseInBattle_Medicine - .4byte 0 - - .string "FIGY BERRY$", 14 - .2byte ITEM_FIGY_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_CONFUSE_SPICY - .byte 8 - .4byte gItemDescription_FigyBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "WIKI BERRY$", 14 - .2byte ITEM_WIKI_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_CONFUSE_DRY - .byte 8 - .4byte gItemDescription_WikiBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "MAGO BERRY$", 14 - .2byte ITEM_MAGO_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_CONFUSE_SWEET - .byte 8 - .4byte gItemDescription_MagoBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "AGUAV BERRY$", 14 - .2byte ITEM_AGUAV_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_CONFUSE_BITTER - .byte 8 - .4byte gItemDescription_AguavBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "IAPAPA BERRY$", 14 - .2byte ITEM_IAPAPA_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_CONFUSE_SOUR - .byte 8 - .4byte gItemDescription_IapapaBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "RAZZ BERRY$", 14 - .2byte ITEM_RAZZ_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_RazzBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "BLUK BERRY$", 14 - .2byte ITEM_BLUK_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_BlukBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "NANAB BERRY$", 14 - .2byte ITEM_NANAB_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_NanabBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "WEPEAR BERRY$", 14 - .2byte ITEM_WEPEAR_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_WepearBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "PINAP BERRY$", 14 - .2byte ITEM_PINAP_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_PinapBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "POMEG BERRY$", 14 - .2byte ITEM_POMEG_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_PomegBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "KELPSY BERRY$", 14 - .2byte ITEM_KELPSY_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_KelpsyBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "QUALOT BERRY$", 14 - .2byte ITEM_QUALOT_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_QualotBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "HONDEW BERRY$", 14 - .2byte ITEM_HONDEW_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_HondewBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "GREPA BERRY$", 14 - .2byte ITEM_GREPA_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_GrepaBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TAMATO BERRY$", 14 - .2byte ITEM_TAMATO_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TamatoBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "CORNN BERRY$", 14 - .2byte ITEM_CORNN_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_CornnBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "MAGOST BERRY$", 14 - .2byte ITEM_MAGOST_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_MagostBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "RABUTA BERRY$", 14 - .2byte ITEM_RABUTA_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_RabutaBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "NOMEL BERRY$", 14 - .2byte ITEM_NOMEL_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_NomelBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "SPELON BERRY$", 14 - .2byte ITEM_SPELON_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_SpelonBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "PAMTRE BERRY$", 14 - .2byte ITEM_PAMTRE_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_PamtreBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "WATMEL BERRY$", 14 - .2byte ITEM_WATMEL_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_WatmelBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "DURIN BERRY$", 14 - .2byte ITEM_DURIN_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_DurinBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "BELUE BERRY$", 14 - .2byte ITEM_BELUE_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_BelueBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "LIECHI BERRY$", 14 - .2byte ITEM_LIECHI_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_ATTACK_UP - .byte 4 - .4byte gItemDescription_LiechiBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "GANLON BERRY$", 14 - .2byte ITEM_GANLON_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_DEFENSE_UP - .byte 4 - .4byte gItemDescription_GanlonBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "SALAC BERRY$", 14 - .2byte ITEM_SALAC_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_SPEED_UP - .byte 4 - .4byte gItemDescription_SalacBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "PETAYA BERRY$", 14 - .2byte ITEM_PETAYA_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_SP_ATTACK_UP - .byte 4 - .4byte gItemDescription_PetayaBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "APICOT BERRY$", 14 - .2byte ITEM_APICOT_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_SP_DEFENSE_UP - .byte 4 - .4byte gItemDescription_ApicotBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "LANSAT BERRY$", 14 - .2byte ITEM_LANSAT_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_CRITICAL_UP - .byte 4 - .4byte gItemDescription_LansatBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "STARF BERRY$", 14 - .2byte ITEM_STARF_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_RANDOM_STAT_UP - .byte 4 - .4byte gItemDescription_StarfBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "ENIGMA BERRY$", 14 - .2byte ITEM_ENIGMA_BERRY - .2byte 20 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_EnigmaBerry - .byte 0 - .byte 0 - .byte POCKET_BERRIES - .byte 4 - .4byte ItemUseOutOfBattle_EnigmaBerry - .4byte 1 - .4byte ItemUseInBattle_EnigmaBerry - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "BRIGHTPOWDER$", 14 - .2byte ITEM_BRIGHT_POWDER - .2byte 10 @ price - .byte HOLD_EFFECT_EVASION_UP - .byte 10 - .4byte gItemDescription_BrightPowder - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "WHITE HERB$", 14 - .2byte ITEM_WHITE_HERB - .2byte 100 @ price - .byte HOLD_EFFECT_RESTORE_STATS - .byte 0 - .4byte gItemDescription_WhiteHerb - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "MACHO BRACE$", 14 - .2byte ITEM_MACHO_BRACE - .2byte 3000 @ price - .byte HOLD_EFFECT_MACHO_BRACE - .byte 0 - .4byte gItemDescription_MachoBrace - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "EXP. SHARE$", 14 - .2byte ITEM_EXP_SHARE - .2byte 3000 @ price - .byte HOLD_EFFECT_EXP_SHARE - .byte 0 - .4byte gItemDescription_ExpShare - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "QUICK CLAW$", 14 - .2byte ITEM_QUICK_CLAW - .2byte 100 @ price - .byte HOLD_EFFECT_QUICK_CLAW - .byte 20 - .4byte gItemDescription_QuickClaw - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "SOOTHE BELL$", 14 - .2byte ITEM_SOOTHE_BELL - .2byte 100 @ price - .byte HOLD_EFFECT_HAPPINESS_UP - .byte 0 - .4byte gItemDescription_SootheBell - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "MENTAL HERB$", 14 - .2byte ITEM_MENTAL_HERB - .2byte 100 @ price - .byte HOLD_EFFECT_CURE_ATTRACT - .byte 0 - .4byte gItemDescription_MentalHerb - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "CHOICE BAND$", 14 - .2byte ITEM_CHOICE_BAND - .2byte 100 @ price - .byte HOLD_EFFECT_CHOICE_BAND - .byte 0 - .4byte gItemDescription_ChoiceBand - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "KING’S ROCK$", 14 - .2byte ITEM_KINGS_ROCK - .2byte 100 @ price - .byte HOLD_EFFECT_FLINCH - .byte 10 - .4byte gItemDescription_KingsRock - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "SILVERPOWDER$", 14 - .2byte ITEM_SILVER_POWDER - .2byte 100 @ price - .byte HOLD_EFFECT_BUG_POWER - .byte 10 - .4byte gItemDescription_SilverPowder - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "AMULET COIN$", 14 - .2byte ITEM_AMULET_COIN - .2byte 100 @ price - .byte HOLD_EFFECT_DOUBLE_PRIZE - .byte 10 - .4byte gItemDescription_AmuletCoin - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "CLEANSE TAG$", 14 - .2byte ITEM_CLEANSE_TAG - .2byte 200 @ price - .byte HOLD_EFFECT_REPEL - .byte 0 - .4byte gItemDescription_CleanseTag - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "SOUL DEW$", 14 - .2byte ITEM_SOUL_DEW - .2byte 200 @ price - .byte HOLD_EFFECT_SOUL_DEW - .byte 0 - .4byte gItemDescription_SoulDew - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "DEEPSEATOOTH$", 14 - .2byte ITEM_DEEP_SEA_TOOTH - .2byte 200 @ price - .byte HOLD_EFFECT_DEEP_SEA_TOOTH - .byte 0 - .4byte gItemDescription_DeepSeaTooth - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "DEEPSEASCALE$", 14 - .2byte ITEM_DEEP_SEA_SCALE - .2byte 200 @ price - .byte HOLD_EFFECT_DEEP_SEA_SCALE - .byte 0 - .4byte gItemDescription_DeepSeaScale - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "SMOKE BALL$", 14 - .2byte ITEM_SMOKE_BALL - .2byte 200 @ price - .byte HOLD_EFFECT_CAN_ALWAYS_RUN - .byte 0 - .4byte gItemDescription_SmokeBall - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "EVERSTONE$", 14 - .2byte ITEM_EVERSTONE - .2byte 200 @ price - .byte HOLD_EFFECT_PREVENT_EVOLVE - .byte 0 - .4byte gItemDescription_Everstone - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "FOCUS BAND$", 14 - .2byte ITEM_FOCUS_BAND - .2byte 200 @ price - .byte HOLD_EFFECT_FOCUS_BAND - .byte 10 - .4byte gItemDescription_FocusBand - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "LUCKY EGG$", 14 - .2byte ITEM_LUCKY_EGG - .2byte 200 @ price - .byte HOLD_EFFECT_LUCKY_EGG - .byte 0 - .4byte gItemDescription_LuckyEgg - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "SCOPE LENS$", 14 - .2byte ITEM_SCOPE_LENS - .2byte 200 @ price - .byte HOLD_EFFECT_SCOPE_LENS - .byte 0 - .4byte gItemDescription_ScopeLens - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "METAL COAT$", 14 - .2byte ITEM_METAL_COAT - .2byte 100 @ price - .byte HOLD_EFFECT_STEEL_POWER - .byte 10 - .4byte gItemDescription_MetalCoat - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "LEFTOVERS$", 14 - .2byte ITEM_LEFTOVERS - .2byte 200 @ price - .byte HOLD_EFFECT_LEFTOVERS - .byte 10 - .4byte gItemDescription_Leftovers - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "DRAGON SCALE$", 14 - .2byte ITEM_DRAGON_SCALE - .2byte 2100 @ price - .byte HOLD_EFFECT_DRAGON_SCALE - .byte 10 - .4byte gItemDescription_DragonScale - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "LIGHT BALL$", 14 - .2byte ITEM_LIGHT_BALL - .2byte 100 @ price - .byte HOLD_EFFECT_LIGHT_BALL - .byte 0 - .4byte gItemDescription_LightBall - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "SOFT SAND$", 14 - .2byte ITEM_SOFT_SAND - .2byte 100 @ price - .byte HOLD_EFFECT_GROUND_POWER - .byte 10 - .4byte gItemDescription_SoftSand - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "HARD STONE$", 14 - .2byte ITEM_HARD_STONE - .2byte 100 @ price - .byte HOLD_EFFECT_ROCK_POWER - .byte 10 - .4byte gItemDescription_HardStone - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "MIRACLE SEED$", 14 - .2byte ITEM_MIRACLE_SEED - .2byte 100 @ price - .byte HOLD_EFFECT_GRASS_POWER - .byte 10 - .4byte gItemDescription_MiracleSeed - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "BLACKGLASSES$", 14 - .2byte ITEM_BLACK_GLASSES - .2byte 100 @ price - .byte HOLD_EFFECT_DARK_POWER - .byte 10 - .4byte gItemDescription_BlackGlasses - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "BLACK BELT$", 14 - .2byte ITEM_BLACK_BELT - .2byte 100 @ price - .byte HOLD_EFFECT_FIGHTING_POWER - .byte 10 - .4byte gItemDescription_BlackBelt - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "MAGNET$", 14 - .2byte ITEM_MAGNET - .2byte 100 @ price - .byte HOLD_EFFECT_ELECTRIC_POWER - .byte 10 - .4byte gItemDescription_Magnet - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "MYSTIC WATER$", 14 - .2byte ITEM_MYSTIC_WATER - .2byte 100 @ price - .byte HOLD_EFFECT_WATER_POWER - .byte 10 - .4byte gItemDescription_MysticWater - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "SHARP BEAK$", 14 - .2byte ITEM_SHARP_BEAK - .2byte 100 @ price - .byte HOLD_EFFECT_FLYING_POWER - .byte 10 - .4byte gItemDescription_SharpBeak - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "POISON BARB$", 14 - .2byte ITEM_POISON_BARB - .2byte 100 @ price - .byte HOLD_EFFECT_POISON_POWER - .byte 10 - .4byte gItemDescription_PoisonBarb - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "NEVERMELTICE$", 14 - .2byte ITEM_NEVER_MELT_ICE - .2byte 100 @ price - .byte HOLD_EFFECT_ICE_POWER - .byte 10 - .4byte gItemDescription_NeverMeltIce - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "SPELL TAG$", 14 - .2byte ITEM_SPELL_TAG - .2byte 100 @ price - .byte HOLD_EFFECT_GHOST_POWER - .byte 10 - .4byte gItemDescription_SpellTag - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TWISTEDSPOON$", 14 - .2byte ITEM_TWISTED_SPOON - .2byte 100 @ price - .byte HOLD_EFFECT_PSYCHIC_POWER - .byte 10 - .4byte gItemDescription_TwistedSpoon - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "CHARCOAL$", 14 - .2byte ITEM_CHARCOAL - .2byte 9800 @ price - .byte HOLD_EFFECT_FIRE_POWER - .byte 10 - .4byte gItemDescription_Charcoal - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "DRAGON FANG$", 14 - .2byte ITEM_DRAGON_FANG - .2byte 100 @ price - .byte HOLD_EFFECT_DRAGON_POWER - .byte 10 - .4byte gItemDescription_DragonFang - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "SILK SCARF$", 14 - .2byte ITEM_SILK_SCARF - .2byte 100 @ price - .byte HOLD_EFFECT_NORMAL_POWER - .byte 10 - .4byte gItemDescription_SilkScarf - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "UP-GRADE$", 14 - .2byte ITEM_UP_GRADE - .2byte 2100 @ price - .byte HOLD_EFFECT_UP_GRADE - .byte 0 - .4byte gItemDescription_UpGrade - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "SHELL BELL$", 14 - .2byte ITEM_SHELL_BELL - .2byte 200 @ price - .byte HOLD_EFFECT_SHELL_BELL - .byte 8 - .4byte gItemDescription_ShellBell - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "SEA INCENSE$", 14 - .2byte ITEM_SEA_INCENSE - .2byte 9600 @ price - .byte HOLD_EFFECT_WATER_POWER - .byte 5 - .4byte gItemDescription_SeaIncense - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "LAX INCENSE$", 14 - .2byte ITEM_LAX_INCENSE - .2byte 9600 @ price - .byte HOLD_EFFECT_EVASION_UP - .byte 5 - .4byte gItemDescription_LaxIncense - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "LUCKY PUNCH$", 14 - .2byte ITEM_LUCKY_PUNCH - .2byte 10 @ price - .byte HOLD_EFFECT_LUCKY_PUNCH - .byte 0 - .4byte gItemDescription_LuckyPunch - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "METAL POWDER$", 14 - .2byte ITEM_METAL_POWDER - .2byte 10 @ price - .byte HOLD_EFFECT_METAL_POWDER - .byte 0 - .4byte gItemDescription_MetalPowder - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "THICK CLUB$", 14 - .2byte ITEM_THICK_CLUB - .2byte 500 @ price - .byte HOLD_EFFECT_THICK_CLUB - .byte 0 - .4byte gItemDescription_ThickClub - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "STICK$", 14 - .2byte ITEM_STICK - .2byte 200 @ price - .byte HOLD_EFFECT_STICK - .byte 0 - .4byte gItemDescription_Stick - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "RED SCARF$", 14 - .2byte ITEM_RED_SCARF - .2byte 100 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_RedScarf - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "BLUE SCARF$", 14 - .2byte ITEM_BLUE_SCARF - .2byte 100 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_BlueScarf - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "PINK SCARF$", 14 - .2byte ITEM_PINK_SCARF - .2byte 100 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_PinkScarf - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "GREEN SCARF$", 14 - .2byte ITEM_GREEN_SCARF - .2byte 100 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_GreenScarf - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "YELLOW SCARF$", 14 - .2byte ITEM_YELLOW_SCARF - .2byte 100 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_YellowScarf - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "MACH BIKE$", 14 - .2byte ITEM_MACH_BIKE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_MachBike - .byte 1 - .byte 1 - .byte POCKET_KEY_ITEMS - .byte 2 - .4byte ItemUseOutOfBattle_Bike - .4byte 0 - .4byte NULL - .4byte 0 - - .string "COIN CASE$", 14 - .2byte ITEM_COIN_CASE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_CoinCase - .byte 1 - .byte 0 - .byte POCKET_KEY_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CoinCase - .4byte 0 - .4byte NULL - .4byte 0 - - .string "ITEMFINDER$", 14 - .2byte ITEM_ITEMFINDER - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Itemfinder - .byte 1 - .byte 1 - .byte POCKET_KEY_ITEMS - .byte 2 - .4byte ItemUseOutOfBattle_Itemfinder - .4byte 0 - .4byte NULL - .4byte 0 - - .string "OLD ROD$", 14 - .2byte ITEM_OLD_ROD - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_OldRod - .byte 1 - .byte 1 - .byte POCKET_KEY_ITEMS - .byte 2 - .4byte ItemUseOutOfBattle_Rod - .4byte 0 - .4byte NULL - .4byte 0 - - .string "GOOD ROD$", 14 - .2byte ITEM_GOOD_ROD - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_GoodRod - .byte 1 - .byte 1 - .byte POCKET_KEY_ITEMS - .byte 2 - .4byte ItemUseOutOfBattle_Rod - .4byte 0 - .4byte NULL - .4byte 1 - - .string "SUPER ROD$", 14 - .2byte ITEM_SUPER_ROD - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_SuperRod - .byte 1 - .byte 1 - .byte POCKET_KEY_ITEMS - .byte 2 - .4byte ItemUseOutOfBattle_Rod - .4byte 0 - .4byte NULL - .4byte 2 - - .string "S.S. TICKET$", 14 - .2byte ITEM_SS_TICKET - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_SSTicket - .byte 1 - .byte 0 - .byte POCKET_KEY_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "CONTEST PASS$", 14 - .2byte ITEM_CONTEST_PASS - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_ContestPass - .byte 1 - .byte 0 - .byte POCKET_KEY_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "WAILMER PAIL$", 14 - .2byte ITEM_WAILMER_PAIL - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_WailmerPail - .byte 1 - .byte 0 - .byte POCKET_KEY_ITEMS - .byte 2 - .4byte ItemUseOutOfBattle_WailmerPail - .4byte 0 - .4byte NULL - .4byte 0 - - .string "DEVON GOODS$", 14 - .2byte ITEM_DEVON_GOODS - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_DevonGoods - .byte 2 - .byte 0 - .byte POCKET_KEY_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "SOOT SACK$", 14 - .2byte ITEM_SOOT_SACK - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_SootSack - .byte 1 - .byte 0 - .byte POCKET_KEY_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "BASEMENT KEY$", 14 - .2byte ITEM_BASEMENT_KEY - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_BasementKey - .byte 1 - .byte 0 - .byte POCKET_KEY_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "ACRO BIKE$", 14 - .2byte ITEM_ACRO_BIKE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_AcroBike - .byte 1 - .byte 1 - .byte POCKET_KEY_ITEMS - .byte 2 - .4byte ItemUseOutOfBattle_Bike - .4byte 0 - .4byte NULL - .4byte 1 - - .string "{POKEBLOCK} CASE$", 14 - .2byte ITEM_POKEBLOCK_CASE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_PokeblockCase - .byte 1 - .byte 1 - .byte POCKET_KEY_ITEMS - .byte 3 - .4byte ItemUseOutOfBattle_PokeblockCase - .4byte 0 - .4byte NULL - .4byte 0 - - .string "LETTER$", 14 - .2byte ITEM_LETTER - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Letter - .byte 2 - .byte 0 - .byte POCKET_KEY_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "EON TICKET$", 14 - .2byte ITEM_EON_TICKET - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_EonTicket - .byte 1 - .byte 0 - .byte POCKET_KEY_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 1 - - .string "RED ORB$", 14 - .2byte ITEM_RED_ORB - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_RedOrb - .byte 2 - .byte 0 - .byte POCKET_KEY_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "BLUE ORB$", 14 - .2byte ITEM_BLUE_ORB - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_BlueOrb - .byte 2 - .byte 0 - .byte POCKET_KEY_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "SCANNER$", 14 - .2byte ITEM_SCANNER - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Scanner - .byte 1 - .byte 0 - .byte POCKET_KEY_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "GO-GOGGLES$", 14 - .2byte ITEM_GO_GOGGLES - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_GoGoggles - .byte 1 - .byte 0 - .byte POCKET_KEY_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "METEORITE$", 14 - .2byte ITEM_METEORITE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Meteorite - .byte 1 - .byte 0 - .byte POCKET_KEY_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "RM. 1 KEY$", 14 - .2byte ITEM_ROOM_1_KEY - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Room1Key - .byte 1 - .byte 0 - .byte POCKET_KEY_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "RM. 2 KEY$", 14 - .2byte ITEM_ROOM_2_KEY - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Room2Key - .byte 1 - .byte 0 - .byte POCKET_KEY_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "RM. 4 KEY$", 14 - .2byte ITEM_ROOM_4_KEY - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Room4Key - .byte 1 - .byte 0 - .byte POCKET_KEY_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "RM. 6 KEY$", 14 - .2byte ITEM_ROOM_6_KEY - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Room6Key - .byte 1 - .byte 0 - .byte POCKET_KEY_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "STORAGE KEY$", 14 - .2byte ITEM_STORAGE_KEY - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_StorageKey - .byte 1 - .byte 0 - .byte POCKET_KEY_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "ROOT FOSSIL$", 14 - .2byte ITEM_ROOT_FOSSIL - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_RootFossil - .byte 1 - .byte 0 - .byte POCKET_KEY_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "CLAW FOSSIL$", 14 - .2byte ITEM_CLAW_FOSSIL - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_ClawFossil - .byte 1 - .byte 0 - .byte POCKET_KEY_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "DEVON SCOPE$", 14 - .2byte ITEM_DEVON_SCOPE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_DevonScope - .byte 1 - .byte 0 - .byte POCKET_KEY_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM01$", 14 - .2byte ITEM_TM01 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM01 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM02$", 14 - .2byte ITEM_TM02 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM02 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM03$", 14 - .2byte ITEM_TM03 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM03 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM04$", 14 - .2byte ITEM_TM04 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM04 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM05$", 14 - .2byte ITEM_TM05 - .2byte 1000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM05 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM06$", 14 - .2byte ITEM_TM06 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM06 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM07$", 14 - .2byte ITEM_TM07 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM07 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM08$", 14 - .2byte ITEM_TM08 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM08 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM09$", 14 - .2byte ITEM_TM09 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM09 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM10$", 14 - .2byte ITEM_TM10 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM10 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM11$", 14 - .2byte ITEM_TM11 - .2byte 2000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM11 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM12$", 14 - .2byte ITEM_TM12 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM12 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM13$", 14 - .2byte ITEM_TM13 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM13 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM14$", 14 - .2byte ITEM_TM14 - .2byte 5500 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM14 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM15$", 14 - .2byte ITEM_TM15 - .2byte 7500 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM15 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM16$", 14 - .2byte ITEM_TM16 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM16 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM17$", 14 - .2byte ITEM_TM17 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM17 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM18$", 14 - .2byte ITEM_TM18 - .2byte 2000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM18 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM19$", 14 - .2byte ITEM_TM19 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM19 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM20$", 14 - .2byte ITEM_TM20 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM20 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM21$", 14 - .2byte ITEM_TM21 - .2byte 1000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM21 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM22$", 14 - .2byte ITEM_TM22 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM22 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM23$", 14 - .2byte ITEM_TM23 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM23 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM24$", 14 - .2byte ITEM_TM24 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM24 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM25$", 14 - .2byte ITEM_TM25 - .2byte 5500 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM25 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM26$", 14 - .2byte ITEM_TM26 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM26 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM27$", 14 - .2byte ITEM_TM27 - .2byte 1000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM27 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM28$", 14 - .2byte ITEM_TM28 - .2byte 2000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM28 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM29$", 14 - .2byte ITEM_TM29 - .2byte 2000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM29 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM30$", 14 - .2byte ITEM_TM30 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM30 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM31$", 14 - .2byte ITEM_TM31 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM31 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM32$", 14 - .2byte ITEM_TM32 - .2byte 2000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM32 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM33$", 14 - .2byte ITEM_TM33 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM33 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM34$", 14 - .2byte ITEM_TM34 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM34 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM35$", 14 - .2byte ITEM_TM35 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM35 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM36$", 14 - .2byte ITEM_TM36 - .2byte 1000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM36 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM37$", 14 - .2byte ITEM_TM37 - .2byte 2000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM37 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM38$", 14 - .2byte ITEM_TM38 - .2byte 5500 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM38 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM39$", 14 - .2byte ITEM_TM39 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM39 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM40$", 14 - .2byte ITEM_TM40 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM40 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM41$", 14 - .2byte ITEM_TM41 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM41 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM42$", 14 - .2byte ITEM_TM42 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM42 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM43$", 14 - .2byte ITEM_TM43 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM43 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM44$", 14 - .2byte ITEM_TM44 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM44 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM45$", 14 - .2byte ITEM_TM45 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM45 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM46$", 14 - .2byte ITEM_TM46 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM46 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM47$", 14 - .2byte ITEM_TM47 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM47 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM48$", 14 - .2byte ITEM_TM48 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM48 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM49$", 14 - .2byte ITEM_TM49 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM49 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "TM50$", 14 - .2byte ITEM_TM50 - .2byte 3000 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_TM50 - .byte 0 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "HM01$", 14 - .2byte ITEM_HM01 - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_HM01 - .byte 1 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "HM02$", 14 - .2byte ITEM_HM02 - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_HM02 - .byte 1 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "HM03$", 14 - .2byte ITEM_HM03 - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_HM03 - .byte 1 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "HM04$", 14 - .2byte ITEM_HM04 - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_HM04 - .byte 1 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "HM05$", 14 - .2byte ITEM_HM05 - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_HM05 - .byte 1 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "HM06$", 14 - .2byte ITEM_HM06 - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_HM06 - .byte 1 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "HM07$", 14 - .2byte ITEM_HM07 - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_HM07 - .byte 1 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "HM08$", 14 - .2byte ITEM_HM08 - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_HM08 - .byte 1 - .byte 0 - .byte POCKET_TM_HM - .byte 1 - .4byte ItemUseOutOfBattle_TMHM - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 - - .string "????????$", 14 - .2byte ITEM_NONE - .2byte 0 @ price - .byte HOLD_EFFECT_NONE - .byte 0 - .4byte gItemDescription_Dummy - .byte 0 - .byte 0 - .byte POCKET_ITEMS - .byte 4 - .4byte ItemUseOutOfBattle_CannotUse - .4byte 0 - .4byte NULL - .4byte 0 diff --git a/data/menu_helpers.s b/data/menu_helpers.s deleted file mode 100644 index 29d42cb4b..000000000 --- a/data/menu_helpers.s +++ /dev/null @@ -1,102 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -gSpriteImage_83E5808:: @ 83E5808 - .incbin "graphics/unknown_sprites/83E59A0/0.4bpp" - - .align 2 -gSpriteImage_83E5848:: @ 83E5848 - .incbin "graphics/unknown_sprites/83E59A0/1.4bpp" - - .align 2 -gSpriteImage_83E5888:: @ 83E5888 - .incbin "graphics/unknown_sprites/83E59B0/0.4bpp" - - .align 2 -gSpriteImage_83E58C8:: @ 83E58C8 - .incbin "graphics/unknown_sprites/83E59B0/1.4bpp" - - .align 2 -gSpriteImage_83E5908:: @ 83E5908 - .incbin "graphics/unknown_sprites/83E59C0/0.4bpp" - - .align 2 -gSpriteImage_83E5928:: @ 83E5928 - .incbin "graphics/unknown_sprites/83E59C0/1.4bpp" - - .align 2 -Palette_3E5948: @ 83E5948 - .incbin "graphics/interface/83E5948.gbapal" - - .align 2 -gUnknown_083E5968:: @ 83E5968 - obj_pal Palette_3E5948, 6 - - .align 2 -gOamData_83E5970:: @ 83E5970 - .2byte 0x0000 - .2byte 0x0000 - .2byte 0x0001 - - .align 2 -gOamData_83E5978:: @ 83E5978 - .2byte 0x4000 - .2byte 0x0000 - .2byte 0x0001 - - .align 2 -gOamData_83E5980:: @ 83E5980 - .2byte 0x8000 - .2byte 0x0000 - .2byte 0x0001 - - .align 2 -gSpriteAnim_83E5988:: @ 83E5988 - obj_image_anim_frame 0, 0 - obj_image_anim_end - - .align 2 -gSpriteAnim_83E5990:: @ 83E5990 - obj_image_anim_frame 1, 0 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83E5998:: @ 83E5998 - .4byte gSpriteAnim_83E5988 - .4byte gSpriteAnim_83E5990 - - .align 2 -gSpriteImageTable_83E59A0:: @ 83E59A0 - obj_frame_tiles gSpriteImage_83E5808, 0x40 - obj_frame_tiles gSpriteImage_83E5848, 0x40 - - .align 2 -gSpriteImageTable_83E59B0:: @ 83E59B0 - obj_frame_tiles gSpriteImage_83E5888, 0x40 - obj_frame_tiles gSpriteImage_83E58C8, 0x40 - - .align 2 -gSpriteImageTable_83E59C0:: @ 83E59C0 - obj_frame_tiles gSpriteImage_83E5908, 0x20 - obj_frame_tiles gSpriteImage_83E5928, 0x20 - - .align 2 -gSpriteTemplate_83E59D0:: @ 83E59D0 - spr_template 0xFFFF, 6, gOamData_83E5978, gSpriteAnimTable_83E5998, gSpriteImageTable_83E59A0, gDummySpriteAffineAnimTable, sub_80F9834 - - .align 2 -gSpriteTemplate_83E59E8:: @ 83E59E8 - spr_template 0xFFFF, 6, gOamData_83E5980, gSpriteAnimTable_83E5998, gSpriteImageTable_83E59B0, gDummySpriteAffineAnimTable, sub_80F9834 - - .align 2 -gSpriteTemplate_83E5A00:: @ 83E5A00 - spr_template 0xFFFF, 6, gOamData_83E5970, gSpriteAnimTable_83E5998, gSpriteImageTable_83E59C0, gDummySpriteAffineAnimTable, SpriteCallbackDummy - -gUnknown_083E5A18:: @ 83E5A18 - .string "{PALETTE 0}$" - -gUnknown_083E5A1C:: @ 83E5A1C - .string "▶$" diff --git a/data/option_menu.s b/data/option_menu.s deleted file mode 100644 index cb517cc89..000000000 --- a/data/option_menu.s +++ /dev/null @@ -1,13 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -gUnknown_0839F5FC:: @ 839F5FC - .incbin "graphics/misc/option_menu_text.gbapal" - -@ note: this is only used in the Japanese release - .align 2 -gUnknown_0839F63C:: @ 839F63C - .incbin "graphics/misc/option_menu_equals_sign.4bpp" diff --git a/data/record_mixing.s b/data/record_mixing.s deleted file mode 100644 index 8b46e1ed3..000000000 --- a/data/record_mixing.s +++ /dev/null @@ -1,68 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -recordMixingSecretBases:: @ 83D026C - @ gSaveBlock1.secretBases - .4byte gSaveBlock1 + 0x1A08 - - .align 2 -recordMixingTvShows:: @ 83D0270 - @ gSaveBlock1.tvShows - .4byte gSaveBlock1 + 0x2738 - - .align 2 -gUnknown_083D0274:: @ 83D0274 - .4byte gSaveBlock1 + 0x2ABC - - .align 2 -gUnknown_083D0278:: @ 83D0278 - .4byte gSaveBlock1 + 0x2D94 - - .align 2 -recordMixingEasyChatPairs:: @ 83D027C - @ gSaveBlock1.easyChatPairs - .4byte gSaveBlock1 + 0x2DD4 - - .align 2 -gUnknown_083D0280:: @ 83D0280 - .4byte gUnknown_02038738 - - .align 2 -gUnknown_083D0284:: @ 83D0284 - .4byte gSaveBlock2+0xA8 - -gUnknown_083D0288:: @ 83D0288 - .byte 1, 0 - -gUnknown_083D028A:: @ 83D028A - .byte 1, 2, 0 - .byte 2, 0, 1 - -gUnknown_083D0290:: @ 83D0290 - .byte 1, 0, 3, 2 - .byte 3, 0, 1, 2 - .byte 2, 0, 3, 1 - .byte 1, 3, 0, 2 - .byte 2, 3, 0, 1 - .byte 3, 2, 0, 1 - .byte 1, 2, 3, 0 - .byte 2, 3, 1, 0 - .byte 3, 2, 1, 0 - -gUnknown_083D02B4:: @ 83D02B4 - .byte 0, 1 - .byte 1, 2 - .byte 2, 0 - -gUnknown_083D02BA:: @ 83D02BA - .byte 0, 1 - .byte 2, 3 - - .byte 0, 2 - .byte 1, 3 - - .byte 0, 3 - .byte 2, 1 diff --git a/data/task.s b/data/task.s deleted file mode 100644 index e87c5b1fc..000000000 --- a/data/task.s +++ /dev/null @@ -1,7 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .string "TASK OVER\n" - .string "タスクがオーバーしました$" diff --git a/data/text/item_descriptions.inc b/data/text/item_descriptions.inc deleted file mode 100644 index 6fda439b0..000000000 --- a/data/text/item_descriptions.inc +++ /dev/null @@ -1,1393 +0,0 @@ -gItemDescription_MasterBall: @ 83C2028 - .string "The best BALL that\n" - .string "catches a POKéMON\n" - .string "without fail.$" - -gItemDescription_UltraBall: @ 83C205B - .string "A better BALL with\n" - .string "a higher catch rate\n" - .string "than a GREAT BALL.$" - -gItemDescription_GreatBall: @ 83C2095 - .string "A good BALL with a\n" - .string "higher catch rate\n" - .string "than a POKé BALL.$" - -gItemDescription_PokeBall: @ 83C20CC - .string "A tool used for\n" - .string "catching wild\n" - .string "POKéMON.$" - -gItemDescription_SafariBall: @ 83C20F3 - .string "A special BALL that\n" - .string "is used only in the\n" - .string "SAFARI ZONE.$" - -gItemDescription_NetBall: @ 83C2128 - .string "A BALL that works\n" - .string "well on WATER- and\n" - .string "BUG-type POKéMON.$" - -gItemDescription_DiveBall: @ 83C215F - .string "A BALL that works\n" - .string "better on POKéMON\n" - .string "on the ocean floor.$" - -gItemDescription_NestBall: @ 83C2197 - .string "A BALL that works\n" - .string "better on weaker\n" - .string "POKéMON.$" - -gItemDescription_RepeatBall: @ 83C21C3 - .string "A BALL that works\n" - .string "better on POKéMON\n" - .string "caught before.$" - -gItemDescription_TimerBall: @ 83C21F6 - .string "More effective as\n" - .string "more turns are\n" - .string "taken in battle.$" - -gItemDescription_LuxuryBall: @ 83C2228 - .string "A cozy BALL that\n" - .string "makes POKéMON\n" - .string "more friendly.$" - -gItemDescription_PremierBall: @ 83C2256 - .string "A rare BALL made\n" - .string "in commemoration\n" - .string "of some event.$" - -gItemDescription_Potion: @ 83C2287 - .string "Restores the HP of\n" - .string "a POKéMON by\n" - .string "20 points.$" - -gItemDescription_Antidote: @ 83C22B2 - .string "Heals a poisoned\n" - .string "POKéMON.$" - -gItemDescription_BurnHeal: @ 83C22CC - .string "Heals POKéMON\n" - .string "of a burn.$" - -gItemDescription_IceHeal: @ 83C22E5 - .string "Defrosts a frozen\n" - .string "POKéMON.$" - -gItemDescription_Awakening: @ 83C2300 - .string "Awakens a sleeping\n" - .string "POKéMON.$" - -gItemDescription_ParalyzeHeal: @ 83C231C - .string "Heals a paralyzed\n" - .string "POKéMON.$" - -gItemDescription_FullRestore: @ 83C2337 - .string "Fully restores the\n" - .string "HP and status of a\n" - .string "POKéMON.$" - -gItemDescription_MaxPotion: @ 83C2366 - .string "Fully restores the\n" - .string "HP of a POKéMON.$" - -gItemDescription_HyperPotion: @ 83C238A - .string "Restores the HP of\n" - .string "a POKéMON by\n" - .string "200 points.$" - -gItemDescription_SuperPotion: @ 83C23B6 - .string "Restores the HP of\n" - .string "a POKéMON by\n" - .string "50 points.$" - -gItemDescription_FullHeal: @ 83C23E1 - .string "Heals all the status\n" - .string "problems of one\n" - .string "POKéMON.$" - -gItemDescription_Revive: @ 83C240F - .string "Revives a fainted\n" - .string "POKéMON with half\n" - .string "its HP.$" - -gItemDescription_MaxRevive: @ 83C243B - .string "Revives a fainted\n" - .string "POKéMON with all\n" - .string "its HP.$" - -gItemDescription_FreshWater: @ 83C2466 - .string "A mineral water\n" - .string "that restores HP\n" - .string "by 50 points.$" - -gItemDescription_SodaPop: @ 83C2495 - .string "A fizzy soda drink\n" - .string "that restores HP\n" - .string "by 60 points.$" - -gItemDescription_Lemonade: @ 83C24C7 - .string "A very sweet drink\n" - .string "that restores HP\n" - .string "by 80 points.$" - -gItemDescription_MoomooMilk: @ 83C24F9 - .string "A nutritious milk\n" - .string "that restores HP\n" - .string "by 100 points.$" - -gItemDescription_EnergyPowder: @ 83C252B - .string "A bitter powder\n" - .string "that restores HP\n" - .string "by 50 points.$" - -gItemDescription_EnergyRoot: @ 83C255A - .string "A bitter root\n" - .string "that restores HP\n" - .string "by 200 points.$" - -gItemDescription_HealPowder: @ 83C2588 - .string "A bitter powder\n" - .string "that heals all\n" - .string "status problems.$" - -gItemDescription_RevivalHerb: @ 83C25B8 - .string "A very bitter herb\n" - .string "that revives a\n" - .string "fainted POKéMON.$" - -gItemDescription_Ether: @ 83C25EB - .string "Restores the PP\n" - .string "of a selected move\n" - .string "by 10.$" - -gItemDescription_MaxEther: @ 83C2615 - .string "Fully restores the\n" - .string "PP of a selected\n" - .string "move.$" - -gItemDescription_Elixir: @ 83C263F - .string "Restores the PP\n" - .string "of all moves by 10.$" - -gItemDescription_MaxElixir: @ 83C2663 - .string "Fully restores the\n" - .string "PP of a POKéMON’s\n" - .string "moves.$" - -gItemDescription_LavaCookie: @ 83C268F - .string "A local specialty\n" - .string "that heals all\n" - .string "status problems.$" - -gItemDescription_BlueFlute: @ 83C26C1 - .string "A glass flute that\n" - .string "awakens sleeping\n" - .string "POKéMON.$" - -gItemDescription_YellowFlute: @ 83C26EE - .string "A glass flute that\n" - .string "snaps POKéMON\n" - .string "out of confusion.$" - -gItemDescription_RedFlute: @ 83C2721 - .string "A glass flute that\n" - .string "snaps POKéMON\n" - .string "out of attraction.$" - -gItemDescription_BlackFlute: @ 83C2755 - .string "A glass flute that\n" - .string "keeps away wild\n" - .string "POKéMON.$" - -gItemDescription_WhiteFlute: @ 83C2781 - .string "A glass flute that\n" - .string "lures wild POKéMON.$" - -gItemDescription_BerryJuice: @ 83C27A8 - .string "A 100% pure juice\n" - .string "that restores HP\n" - .string "by 20 points.$" - -gItemDescription_SacredAsh: @ 83C27D9 - .string "Fully revives and\n" - .string "restores all\n" - .string "fainted POKéMON.$" - -gItemDescription_ShoalSalt: @ 83C2809 - .string "Salt obtained from\n" - .string "deep inside the\n" - .string "SHOAL CAVE.$" - -gItemDescription_ShoalShell: @ 83C2838 - .string "A seashell found\n" - .string "deep inside the\n" - .string "SHOAL CAVE.$" - -gItemDescription_RedShard: @ 83C2865 - .string "A shard from an\n" - .string "ancient item.\n" - .string "Can be sold cheaply.$" - -gItemDescription_BlueShard: @ 83C2898 - .string "A shard from an\n" - .string "ancient item.\n" - .string "Can be sold cheaply.$" - -gItemDescription_YellowShard: @ 83C28CB - .string "A shard from an\n" - .string "ancient item.\n" - .string "Can be sold cheaply.$" - -gItemDescription_GreenShard: @ 83C28FE - .string "A shard from an\n" - .string "ancient item.\n" - .string "Can be sold cheaply.$" - -gItemDescription_HPUp: @ 83C2931 - .string "Raises the HP of\n" - .string "one POKéMON.$" - -gItemDescription_Protein: @ 83C294F - .string "Raises the stat\n" - .string "ATTACK of one\n" - .string "POKéMON.$" - -gItemDescription_Iron: @ 83C2976 - .string "Raises the stat\n" - .string "DEFENSE of one\n" - .string "POKéMON.$" - -gItemDescription_Carbos: @ 83C299E - .string "Raises the stat\n" - .string "SPEED of one\n" - .string "POKéMON.$" - -gItemDescription_Calcium: @ 83C29C4 - .string "Raises the stat\n" - .string "SP. ATK of one\n" - .string "POKéMON.$" - -gItemDescription_RareCandy: @ 83C29EC - .string "Raises the level\n" - .string "of a POKéMON by\n" - .string "one.$" - -gItemDescription_PPUp: @ 83C2A12 - .string "Raises the maximum\n" - .string "PP of a selected\n" - .string "move.$" - -gItemDescription_Zinc: @ 83C2A3C - .string "Raises the stat\n" - .string "SP. DEF of one\n" - .string "POKéMON.$" - -gItemDescription_PPMax: @ 83C2A64 - .string "Raises the PP of a\n" - .string "move to its maximum\n" - .string "points.$" - -gItemDescription_GuardSpec: @ 83C2A93 - .string "Prevents stat\n" - .string "reduction when\n" - .string "used in battle.$" - -gItemDescription_DireHit: @ 83C2AC0 - .string "Raises the\n" - .string "critical-hit ratio\n" - .string "during one battle.$" - -gItemDescription_XAttack: @ 83C2AF1 - .string "Raises the stat\n" - .string "ATTACK during one\n" - .string "battle.$" - -gItemDescription_XDefend: @ 83C2B1B - .string "Raises the stat\n" - .string "DEFENSE during one\n" - .string "battle.$" - -gItemDescription_XSpeed: @ 83C2B46 - .string "Raises the stat\n" - .string "SPEED during one\n" - .string "battle.$" - -gItemDescription_XAccuracy: @ 83C2B6F - .string "Raises accuracy\n" - .string "of attack moves\n" - .string "during one battle.$" - -gItemDescription_XSpecial: @ 83C2BA2 - .string "Raises the stat\n" - .string "SP. ATK during one\n" - .string "battle.$" - -gItemDescription_PokeDoll: @ 83C2BCD - .string "Use to flee from\n" - .string "any battle with\n" - .string "a wild POKéMON.$" - -gItemDescription_FluffyTail: @ 83C2BFE - .string "Use to flee from\n" - .string "any battle with\n" - .string "a wild POKéMON.$" - -gItemDescription_SuperRepel: @ 83C2C2F - .string "Repels weak wild\n" - .string "POKéMON for 200\n" - .string "steps.$" - -gItemDescription_MaxRepel: @ 83C2C57 - .string "Repels weak wild\n" - .string "POKéMON for 250\n" - .string "steps.$" - -gItemDescription_EscapeRope: @ 83C2C7F - .string "Use to escape\n" - .string "instantly from a\n" - .string "cave or a dungeon.$" - -gItemDescription_Repel: @ 83C2CB1 - .string "Repels weak wild\n" - .string "POKéMON for 100\n" - .string "steps.$" - -gItemDescription_SunStone: @ 83C2CD9 - .string "Makes certain\n" - .string "species of POKéMON\n" - .string "evolve.$" - -gItemDescription_MoonStone: @ 83C2D02 - .string "Makes certain\n" - .string "species of POKéMON\n" - .string "evolve.$" - -gItemDescription_FireStone: @ 83C2D2B - .string "Makes certain\n" - .string "species of POKéMON\n" - .string "evolve.$" - -gItemDescription_ThunderStone: @ 83C2D54 - .string "Makes certain\n" - .string "species of POKéMON\n" - .string "evolve.$" - -gItemDescription_WaterStone: @ 83C2D7D - .string "Makes certain\n" - .string "species of POKéMON\n" - .string "evolve.$" - -gItemDescription_LeafStone: @ 83C2DA6 - .string "Makes certain\n" - .string "species of POKéMON\n" - .string "evolve.$" - -gItemDescription_TinyMushroom: @ 83C2DCF - .string "A plain, ordinary\n" - .string "mushroom.\n" - .string "Can be sold cheaply.$" - -gItemDescription_BigMushroom: @ 83C2E00 - .string "A rare mushroom\n" - .string "that would sell at a\n" - .string "high price.$" - -gItemDescription_Pearl: @ 83C2E31 - .string "A pretty pearl.\n" - .string "Can be sold cheaply.$" - -gItemDescription_BigPearl: @ 83C2E56 - .string "A lovely large pearl\n" - .string "that would sell at a\n" - .string "high price.$" - -gItemDescription_Stardust: @ 83C2E8C - .string "Beautiful red sand.\n" - .string "Can be sold at a\n" - .string "high price.$" - -gItemDescription_StarPiece: @ 83C2EBD - .string "A red gem shard.\n" - .string "It would sell for a\n" - .string "very high price.$" - -gItemDescription_Nugget: @ 83C2EF3 - .string "A nugget of pure\n" - .string "gold. Can be sold at\n" - .string "a high price.$" - -gItemDescription_HeartScale: @ 83C2F27 - .string "A lovely scale.\n" - .string "It is coveted by\n" - .string "collectors.$" - -gItemDescription_OrangeMail: @ 83C2F54 - .string "A ZIGZAGOON-print\n" - .string "MAIL to be held by\n" - .string "a POKéMON.$" - -gItemDescription_HarborMail: @ 83C2F84 - .string "A WINGULL-print\n" - .string "MAIL to be held by\n" - .string "a POKéMON.$" - -gItemDescription_GlitterMail: @ 83C2FB2 - .string "A PIKACHU-print\n" - .string "MAIL to be held by\n" - .string "a POKéMON.$" - -gItemDescription_MechMail: @ 83C2FE0 - .string "A MAGNEMITE-print\n" - .string "MAIL to be held by\n" - .string "a POKéMON.$" - -gItemDescription_WoodMail: @ 83C3010 - .string "A SLAKOTH-print\n" - .string "MAIL to be held by\n" - .string "a POKéMON.$" - -gItemDescription_WaveMail: @ 83C303E - .string "A WAILMER-print\n" - .string "MAIL to be held by\n" - .string "a POKéMON.$" - -gItemDescription_BeadMail: @ 83C306C - .string "MAIL featuring a\n" - .string "sketch of the\n" - .string "holding POKéMON.$" - -gItemDescription_ShadowMail: @ 83C309C - .string "A DUSKULL-print\n" - .string "MAIL to be held by\n" - .string "a POKéMON.$" - -gItemDescription_TropicMail: @ 83C30CA - .string "A BELLOSSOM-print\n" - .string "MAIL to be held by\n" - .string "a POKéMON.$" - -gItemDescription_DreamMail: @ 83C30FA - .string "MAIL featuring a\n" - .string "sketch of the\n" - .string "holding POKéMON.$" - -gItemDescription_FabMail: @ 83C312A - .string "A gorgeous-print\n" - .string "MAIL to be held\n" - .string "by a POKéMON.$" - -gItemDescription_RetroMail: @ 83C3159 - .string "MAIL featuring the\n" - .string "drawings of three\n" - .string "POKéMON.$" - -gItemDescription_CheriBerry: @ 83C3187 - .string "A hold item that\n" - .string "heals paralysis\n" - .string "in battle.$" - -gItemDescription_ChestoBerry: @ 83C31B3 - .string "A hold item that\n" - .string "awakens POKéMON\n" - .string "in battle.$" - -gItemDescription_PechaBerry: @ 83C31DF - .string "A hold item that\n" - .string "heals poisoning\n" - .string "in battle.$" - -gItemDescription_RawstBerry: @ 83C320B - .string "A hold item that\n" - .string "heals a burn in\n" - .string "battle.$" - -gItemDescription_AspearBerry: @ 83C3234 - .string "A hold item that\n" - .string "defrosts POKéMON\n" - .string "in battle.$" - -gItemDescription_LeppaBerry: @ 83C3261 - .string "A hold item that\n" - .string "restores 10 PP in\n" - .string "battle.$" - -gItemDescription_OranBerry: @ 83C328C - .string "A hold item that\n" - .string "restores 10 HP in\n" - .string "battle.$" - -gItemDescription_PersimBerry: @ 83C32B7 - .string "A hold item that\n" - .string "heals confusion\n" - .string "in battle.$" - -gItemDescription_LumBerry: @ 83C32E3 - .string "A hold item that\n" - .string "heals status in\n" - .string "battle.$" - -gItemDescription_SitrusBerry: @ 83C330C - .string "A hold item that\n" - .string "restores 30 HP in\n" - .string "battle.$" - -gItemDescription_FigyBerry: @ 83C3337 - .string "A hold item that\n" - .string "restores HP but\n" - .string "may confuse.$" - -gItemDescription_WikiBerry: @ 83C3365 - .string "A hold item that\n" - .string "restores HP but\n" - .string "may confuse.$" - -gItemDescription_MagoBerry: @ 83C3393 - .string "A hold item that\n" - .string "restores HP but\n" - .string "may confuse.$" - -gItemDescription_AguavBerry: @ 83C33C1 - .string "A hold item that\n" - .string "restores HP but\n" - .string "may confuse.$" - -gItemDescription_IapapaBerry: @ 83C33EF - .string "A hold item that\n" - .string "restores HP but\n" - .string "may confuse.$" - -gItemDescription_RazzBerry: @ 83C341D - .string "{POKEBLOCK} ingredient.\n" - .string "Plant in loamy soil\n" - .string "to grow RAZZ.$" - -gItemDescription_BlukBerry: @ 83C3451 - .string "{POKEBLOCK} ingredient.\n" - .string "Plant in loamy soil\n" - .string "to grow BLUK.$" - -gItemDescription_NanabBerry: @ 83C3485 - .string "{POKEBLOCK} ingredient.\n" - .string "Plant in loamy soil\n" - .string "to grow NANAB.$" - -gItemDescription_WepearBerry: @ 83C34BA - .string "{POKEBLOCK} ingredient.\n" - .string "Plant in loamy soil\n" - .string "to grow WEPEAR.$" - -gItemDescription_PinapBerry: @ 83C34F0 - .string "{POKEBLOCK} ingredient.\n" - .string "Plant in loamy soil\n" - .string "to grow PINAP.$" - -gItemDescription_PomegBerry: @ 83C3525 - .string "{POKEBLOCK} ingredient.\n" - .string "Plant in loamy soil\n" - .string "to grow POMEG.$" - -gItemDescription_KelpsyBerry: @ 83C355A - .string "{POKEBLOCK} ingredient.\n" - .string "Plant in loamy soil\n" - .string "to grow KELPSY.$" - -gItemDescription_QualotBerry: @ 83C3590 - .string "{POKEBLOCK} ingredient.\n" - .string "Plant in loamy soil\n" - .string "to grow QUALOT.$" - -gItemDescription_HondewBerry: @ 83C35C6 - .string "{POKEBLOCK} ingredient.\n" - .string "Plant in loamy soil\n" - .string "to grow HONDEW.$" - -gItemDescription_GrepaBerry: @ 83C35FC - .string "{POKEBLOCK} ingredient.\n" - .string "Plant in loamy soil\n" - .string "to grow GREPA.$" - -gItemDescription_TamatoBerry: @ 83C3631 - .string "{POKEBLOCK} ingredient.\n" - .string "Plant in loamy soil\n" - .string "to grow TAMATO.$" - -gItemDescription_CornnBerry: @ 83C3667 - .string "{POKEBLOCK} ingredient.\n" - .string "Plant in loamy soil\n" - .string "to grow CORNN.$" - -gItemDescription_MagostBerry: @ 83C369C - .string "{POKEBLOCK} ingredient.\n" - .string "Plant in loamy soil\n" - .string "to grow MAGOST.$" - -gItemDescription_RabutaBerry: @ 83C36D2 - .string "{POKEBLOCK} ingredient.\n" - .string "Plant in loamy soil\n" - .string "to grow RABUTA.$" - -gItemDescription_NomelBerry: @ 83C3708 - .string "{POKEBLOCK} ingredient.\n" - .string "Plant in loamy soil\n" - .string "to grow NOMEL.$" - -gItemDescription_SpelonBerry: @ 83C373D - .string "{POKEBLOCK} ingredient.\n" - .string "Plant in loamy soil\n" - .string "to grow SPELON.$" - -gItemDescription_PamtreBerry: @ 83C3773 - .string "{POKEBLOCK} ingredient.\n" - .string "Plant in loamy soil\n" - .string "to grow PAMTRE.$" - -gItemDescription_WatmelBerry: @ 83C37A9 - .string "{POKEBLOCK} ingredient.\n" - .string "Plant in loamy soil\n" - .string "to grow WATMEL.$" - -gItemDescription_DurinBerry: @ 83C37DF - .string "{POKEBLOCK} ingredient.\n" - .string "Plant in loamy soil\n" - .string "to grow DURIN.$" - -gItemDescription_BelueBerry: @ 83C3814 - .string "{POKEBLOCK} ingredient.\n" - .string "Plant in loamy soil\n" - .string "to grow BELUE.$" - -gItemDescription_LiechiBerry: @ 83C3849 - .string "A hold item that\n" - .string "raises ATTACK in\n" - .string "a pinch.$" - -gItemDescription_GanlonBerry: @ 83C3874 - .string "A hold item that\n" - .string "raises DEFENSE in\n" - .string "a pinch.$" - -gItemDescription_SalacBerry: @ 83C38A0 - .string "A hold item that\n" - .string "raises SPEED in\n" - .string "a pinch.$" - -gItemDescription_PetayaBerry: @ 83C38CA - .string "A hold item that\n" - .string "raises SP. ATK in\n" - .string "a pinch.$" - -gItemDescription_ApicotBerry: @ 83C38F6 - .string "A hold item that\n" - .string "raises SP. DEF in\n" - .string "a pinch.$" - -gItemDescription_LansatBerry: @ 83C3922 - .string "A hold item that\n" - .string "ups the critical-\n" - .string "hit rate in a pinch.$" - -gItemDescription_StarfBerry: @ 83C395A - .string "A hold item that\n" - .string "sharply boosts a\n" - .string "stat in a pinch.$" - -gItemDescription_EnigmaBerry: @ 83C398D - .string "{POKEBLOCK} ingredient.\n" - .string "Plant in loamy soil\n" - .string "to grow a mystery.$" - -gItemDescription_BrightPowder: @ 83C39C6 - .string "A hold item that\n" - .string "casts a glare to\n" - .string "reduce accuracy.$" - -gItemDescription_WhiteHerb: @ 83C39F9 - .string "A hold item that\n" - .string "restores any\n" - .string "lowered stat.$" - -gItemDescription_MachoBrace: @ 83C3A25 - .string "A hold item that\n" - .string "promotes growth,\n" - .string "but reduces SPEED.$" - -gItemDescription_ExpShare: @ 83C3A5A - .string "A hold item that\n" - .string "gets EXP. points\n" - .string "from battles.$" - -gItemDescription_QuickClaw: @ 83C3A8A - .string "A hold item that\n" - .string "occasionally allows\n" - .string "the first strike.$" - -gItemDescription_SootheBell: @ 83C3AC1 - .string "A hold item that\n" - .string "calms spirits and\n" - .string "fosters friendship.$" - -gItemDescription_MentalHerb: @ 83C3AF8 - .string "A hold item that\n" - .string "snaps POKéMON out\n" - .string "of infatuation.$" - -gItemDescription_ChoiceBand: @ 83C3B2B - .string "Raises a move’s\n" - .string "power, but permits\n" - .string "only that move.$" - -gItemDescription_KingsRock: @ 83C3B5E - .string "A hold item that\n" - .string "may cause flinching\n" - .string "when the foe is hit.$" - -gItemDescription_SilverPowder: @ 83C3B98 - .string "A hold item that\n" - .string "raises the power of\n" - .string "BUG-type moves.$" - -gItemDescription_AmuletCoin: @ 83C3BCD - .string "Doubles money in\n" - .string "battle if the holder\n" - .string "takes part.$" - -gItemDescription_CleanseTag: @ 83C3BFF - .string "A hold item that\n" - .string "helps repel wild\n" - .string "POKéMON.$" - -gItemDescription_SoulDew: @ 83C3C2A - .string "Hold item: Raises\n" - .string "SP. ATK & SP. DEF\n" - .string "of LATIOS & LATIAS.$" - -gItemDescription_DeepSeaTooth: @ 83C3C62 - .string "A hold item that\n" - .string "raises the SP. ATK\n" - .string "of CLAMPERL.$" - -gItemDescription_DeepSeaScale: @ 83C3C93 - .string "A hold item that\n" - .string "raises the SP. DEF\n" - .string "of CLAMPERL.$" - -gItemDescription_SmokeBall: @ 83C3CC4 - .string "A hold item that\n" - .string "can be used to flee\n" - .string "from a wild POKéMON.$" - -gItemDescription_Everstone: @ 83C3CFE - .string "A wondrous stone\n" - .string "& a hold item that\n" - .string "prevents evolution.$" - -gItemDescription_FocusBand: @ 83C3D36 - .string "A hold item that\n" - .string "occasionally\n" - .string "prevents fainting.$" - -gItemDescription_LuckyEgg: @ 83C3D67 - .string "A hold item that\n" - .string "boosts EXP. points\n" - .string "earned in battle.$" - -gItemDescription_ScopeLens: @ 83C3D9D - .string "A hold item that\n" - .string "raises the critical-\n" - .string "hit rate.$" - -gItemDescription_MetalCoat: @ 83C3DCD - .string "A hold item that\n" - .string "raises the power of\n" - .string "STEEL-type moves.$" - -gItemDescription_Leftovers: @ 83C3E04 - .string "A hold item that\n" - .string "gradually restores\n" - .string "HP in battle.$" - -gItemDescription_DragonScale: @ 83C3E36 - .string "A strange scale\n" - .string "held by DRAGON-\n" - .string "type POKéMON.$" - -gItemDescription_LightBall: @ 83C3E64 - .string "A hold item that\n" - .string "raises the SP. ATK\n" - .string "of PIKACHU.$" - -gItemDescription_SoftSand: @ 83C3E94 - .string "A hold item that\n" - .string "raises the power of\n" - .string "GROUND-type moves.$" - -gItemDescription_HardStone: @ 83C3ECC - .string "A hold item that\n" - .string "raises the power of\n" - .string "ROCK-type moves.$" - -gItemDescription_MiracleSeed: @ 83C3F02 - .string "A hold item that\n" - .string "raises the power of\n" - .string "GRASS-type moves.$" - -gItemDescription_BlackGlasses: @ 83C3F39 - .string "A hold item that\n" - .string "raises the power of\n" - .string "DARK-type moves.$" - -gItemDescription_BlackBelt: @ 83C3F6F - .string "A hold item that\n" - .string "boosts FIGHTING-\n" - .string "type moves.$" - -gItemDescription_Magnet: @ 83C3F9D - .string "A hold item that\n" - .string "boosts ELECTRIC-\n" - .string "type moves.$" - -gItemDescription_MysticWater: @ 83C3FCB - .string "A hold item that\n" - .string "raises the power of\n" - .string "WATER-type moves.$" - -gItemDescription_SharpBeak: @ 83C4002 - .string "A hold item that\n" - .string "raises the power of\n" - .string "FLYING-type moves.$" - -gItemDescription_PoisonBarb: @ 83C403A - .string "A hold item that\n" - .string "raises the power of\n" - .string "POISON-type moves.$" - -gItemDescription_NeverMeltIce: @ 83C4072 - .string "A hold item that\n" - .string "raises the power of\n" - .string "ICE-type moves.$" - -gItemDescription_SpellTag: @ 83C40A7 - .string "A hold item that\n" - .string "raises the power of\n" - .string "GHOST-type moves.$" - -gItemDescription_TwistedSpoon: @ 83C40DE - .string "A hold item that\n" - .string "boosts PSYCHIC-\n" - .string "type moves.$" - -gItemDescription_Charcoal: @ 83C410B - .string "A hold item that\n" - .string "raises the power of\n" - .string "FIRE-type moves.$" - -gItemDescription_DragonFang: @ 83C4141 - .string "A hold item that\n" - .string "raises the power of\n" - .string "DRAGON-type moves.$" - -gItemDescription_SilkScarf: @ 83C4179 - .string "A hold item that\n" - .string "raises the power of\n" - .string "NORMAL-type moves.$" - -gItemDescription_UpGrade: @ 83C41B1 - .string "A peculiar box made\n" - .string "by SILPH CO.$" - -gItemDescription_ShellBell: @ 83C41D2 - .string "A hold item that\n" - .string "restores HP upon\n" - .string "striking the foe.$" - -gItemDescription_SeaIncense: @ 83C4206 - .string "A hold item that\n" - .string "slightly boosts\n" - .string "WATER-type moves.$" - -gItemDescription_LaxIncense: @ 83C4239 - .string "A hold item that\n" - .string "slightly lowers the\n" - .string "foe’s accuracy.$" - -gItemDescription_LuckyPunch: @ 83C426E - .string "A hold item that\n" - .string "raises CHANSEY’s\n" - .string "critical-hit rate.$" - -gItemDescription_MetalPowder: @ 83C42A3 - .string "A hold item that\n" - .string "raises DEFENSE.$" - -gItemDescription_ThickClub: @ 83C42C4 - .string "A bone of some\n" - .string "sort. It can be sold\n" - .string "cheaply.$" - -gItemDescription_Stick: @ 83C42F1 - .string "A stick of leek.\n" - .string "It can be sold\n" - .string "cheaply.$" - -gItemDescription_RedScarf: @ 83C431A - .string "A hold item that\n" - .string "raises COOL in\n" - .string "CONTESTS.$" - -gItemDescription_BlueScarf: @ 83C4344 - .string "A hold item that\n" - .string "raises BEAUTY in\n" - .string "CONTESTS.$" - -gItemDescription_PinkScarf: @ 83C4370 - .string "A hold item that\n" - .string "raises CUTE in\n" - .string "CONTESTS.$" - -gItemDescription_GreenScarf: @ 83C439A - .string "A hold item that\n" - .string "raises SMART in\n" - .string "CONTESTS.$" - -gItemDescription_YellowScarf: @ 83C43C5 - .string "A hold item that\n" - .string "raises TOUGH in\n" - .string "CONTESTS.$" - -gItemDescription_MachBike: @ 83C43F0 - .string "A folding bicycle\n" - .string "that more than\n" - .string "doubles foot speed.$" - -gItemDescription_CoinCase: @ 83C4425 - .string "A case that holds\n" - .string "up to 9,999 COINS.$" - -gItemDescription_Itemfinder: @ 83C444A - .string "A device that\n" - .string "signals an invisible\n" - .string "item by sound.$" - -gItemDescription_OldRod: @ 83C447C - .string "Use by any body of\n" - .string "water to fish for\n" - .string "wild POKéMON.$" - -gItemDescription_GoodRod: @ 83C44AF - .string "A decent fishing\n" - .string "rod for catching\n" - .string "wild POKéMON.$" - -gItemDescription_SuperRod: @ 83C44DF - .string "The best fishing\n" - .string "rod for catching\n" - .string "wild POKéMON.$" - -gItemDescription_SSTicket: @ 83C450F - .string "The ticket required\n" - .string "for sailing on a\n" - .string "ferry.$" - -gItemDescription_ContestPass: @ 83C453B - .string "The pass required\n" - .string "for entering\n" - .string "POKéMON CONTESTS.$" - -gItemDescription_WailmerPail: @ 83C456C - .string "A tool used for\n" - .string "watering BERRIES\n" - .string "and plants.$" - -gItemDescription_DevonGoods: @ 83C4599 - .string "A package that\n" - .string "contains DEVON’s\n" - .string "machine parts.$" - -gItemDescription_SootSack: @ 83C45C8 - .string "A sack used to\n" - .string "gather and hold\n" - .string "volcanic ash.$" - -gItemDescription_BasementKey: @ 83C45F5 - .string "The key for NEW\n" - .string "MAUVILLE beneath\n" - .string "MAUVILLE CITY.$" - -gItemDescription_AcroBike: @ 83C4625 - .string "A folding bicycle\n" - .string "capable of jumps\n" - .string "and wheelies.$" - -gItemDescription_PokeblockCase: @ 83C4656 - .string "A case for holding\n" - .string "{POKEBLOCK}S made with\n" - .string "a BERRY BLENDER.$" - -gItemDescription_Letter: @ 83C468B - .string "A letter to STEVEN\n" - .string "from the PRESIDENT\n" - .string "of the DEVON CORP.$" - -gItemDescription_EonTicket: @ 83C46C4 - .string "The ticket for a\n" - .string "ferry to a distant\n" - .string "southern island.$" - -gItemDescription_RedOrb: @ 83C46F9 - .string "A red, glowing orb\n" - .string "said to contain an\n" - .string "ancient power.$" - -gItemDescription_BlueOrb: @ 83C472E - .string "A blue, glowing orb\n" - .string "said to contain an\n" - .string "ancient power.$" - -gItemDescription_Scanner: @ 83C4764 - .string "A device found\n" - .string "inside the\n" - .string "ABANDONED SHIP.$" - -gItemDescription_GoGoggles: @ 83C478E - .string "Nifty goggles that\n" - .string "protect eyes from\n" - .string "desert sandstorms.$" - -gItemDescription_Meteorite: @ 83C47C6 - .string "A meteorite found\n" - .string "at METEOR FALLS.$" - -gItemDescription_Room1Key: @ 83C47E9 - .string "A key that opens a\n" - .string "door inside the\n" - .string "ABANDONED SHIP.$" - -gItemDescription_Room2Key: @ 83C481C - .string "A key that opens a\n" - .string "door inside the\n" - .string "ABANDONED SHIP.$" - -gItemDescription_Room4Key: @ 83C484F - .string "A key that opens a\n" - .string "door inside the\n" - .string "ABANDONED SHIP.$" - -gItemDescription_Room6Key: @ 83C4882 - .string "A key that opens a\n" - .string "door inside the\n" - .string "ABANDONED SHIP.$" - -gItemDescription_StorageKey: @ 83C48B5 - .string "The key to the\n" - .string "storage inside the\n" - .string "ABANDONED SHIP.$" - -gItemDescription_RootFossil: @ 83C48E7 - .string "A fossil of an\n" - .string "ancient, seafloor-\n" - .string "dwelling POKéMON.$" - -gItemDescription_ClawFossil: @ 83C491B - .string "A fossil of an\n" - .string "ancient, seafloor-\n" - .string "dwelling POKéMON.$" - -gItemDescription_DevonScope: @ 83C494F - .string "A device by DEVON\n" - .string "that signals any\n" - .string "unseeable POKéMON.$" - -gItemDescription_TM01: @ 83C4985 - .string "Powerful, but makes\n" - .string "the user flinch if\n" - .string "hit by the foe.$" - -gItemDescription_TM02: @ 83C49BC - .string "Hooks and slashes\n" - .string "the foe with long,\n" - .string "sharp claws.$" - -gItemDescription_TM03: @ 83C49EE - .string "Generates an\n" - .string "ultrasonic wave\n" - .string "that may confuse.$" - -gItemDescription_TM04: @ 83C4A1D - .string "Raises SP. ATK and\n" - .string "SP. DEF by focusing\n" - .string "the mind.$" - -gItemDescription_TM05: @ 83C4A4E - .string "A savage roar that\n" - .string "makes the foe flee \n" - .string "to end the battle.$" - -gItemDescription_TM06: @ 83C4A88 - .string "Poisons the foe\n" - .string "with a toxin that\n" - .string "gradually worsens.$" - -gItemDescription_TM07: @ 83C4ABD - .string "Summons a hailstorm\n" - .string "that hurts all\n" - .string "types except ICE.$" - -gItemDescription_TM08: @ 83C4AF2 - .string "Bulks up the body\n" - .string "to boost both\n" - .string "ATTACK & DEFENSE.$" - -gItemDescription_TM09: @ 83C4B24 - .string "Shoots 2 to 5 seeds\n" - .string "in a row to strike\n" - .string "the foe.$" - -gItemDescription_TM10: @ 83C4B54 - .string "The attack power\n" - .string "varies among\n" - .string "different POKéMON.$" - -gItemDescription_TM11: @ 83C4B85 - .string "Raises the power of\n" - .string "FIRE-type moves\n" - .string "for 5 turns.$" - -gItemDescription_TM12: @ 83C4BB6 - .string "Enrages the foe so\n" - .string "it can only use\n" - .string "attack moves.$" - -gItemDescription_TM13: @ 83C4BE7 - .string "Fires an icy cold\n" - .string "beam that may\n" - .string "freeze the foe.$" - -gItemDescription_TM14: @ 83C4C17 - .string "A vicious snow-and-\n" - .string "wind attack that\n" - .string "may freeze the foe.$" - -gItemDescription_TM15: @ 83C4C50 - .string "Powerful, but needs\n" - .string "recharging the\n" - .string "next turn.$" - -gItemDescription_TM16: @ 83C4C7E - .string "Creates a wall of\n" - .string "light that lowers\n" - .string "SP. ATK damage.$" - -gItemDescription_TM17: @ 83C4CB2 - .string "Negates all damage,\n" - .string "but may fail if used\n" - .string "in succession.$" - -gItemDescription_TM18: @ 83C4CEA - .string "Raises the power of\n" - .string "WATER-type moves\n" - .string "for 5 turns.$" - -gItemDescription_TM19: @ 83C4D1C - .string "Recovers half the\n" - .string "HP of the damage \n" - .string "this move inflicts.$" - -gItemDescription_TM20: @ 83C4D54 - .string "Prevents status\n" - .string "abnormality with a\n" - .string "mystical power.$" - -gItemDescription_TM21: @ 83C4D87 - .string "The less the user\n" - .string "likes you, the more\n" - .string "powerful this move.$" - -gItemDescription_TM22: @ 83C4DC1 - .string "Absorbs sunlight in\n" - .string "the 1st turn, then\n" - .string "attacks next turn.$" - -gItemDescription_TM23: @ 83C4DFB - .string "Slams the foe with\n" - .string "a hard tail. It may\n" - .string "lower DEFENSE.$" - -gItemDescription_TM24: @ 83C4E31 - .string "A powerful electric\n" - .string "attack that may\n" - .string "cause paralysis.$" - -gItemDescription_TM25: @ 83C4E66 - .string "Strikes the foe\n" - .string "with a thunderbolt.\n" - .string "It may paralyze.$" - -gItemDescription_TM26: @ 83C4E9B - .string "Causes a quake\n" - .string "that has no effect\n" - .string "on flying foes.$" - -gItemDescription_TM27: @ 83C4ECD - .string "The more the user\n" - .string "likes you, the more\n" - .string "powerful this move.$" - -gItemDescription_TM28: @ 83C4F07 - .string "Digs underground\n" - .string "the 1st turn, then\n" - .string "strikes next turn.$" - -gItemDescription_TM29: @ 83C4F3E - .string "A powerful psychic\n" - .string "attack that may\n" - .string "lower SP. DEF.$" - -gItemDescription_TM30: @ 83C4F70 - .string "Hurls a dark lump\n" - .string "at the foe. It may\n" - .string "lower SP. DEF.$" - -gItemDescription_TM31: @ 83C4FA4 - .string "Destroys barriers\n" - .string "like LIGHT SCREEN\n" - .string "and causes damage.$" - -gItemDescription_TM32: @ 83C4FDB - .string "Creates illusory\n" - .string "copies to enhance\n" - .string "elusiveness.$" - -gItemDescription_TM33: @ 83C500B - .string "Creates a wall of\n" - .string "light that weakens\n" - .string "physical attacks.$" - -gItemDescription_TM34: @ 83C5042 - .string "Zaps the foe with a\n" - .string "jolt of electricity\n" - .string "that never misses.$" - -gItemDescription_TM35: @ 83C507D - .string "Looses a stream of\n" - .string "fire that may burn\n" - .string "the foe.$" - -gItemDescription_TM36: @ 83C50AC - .string "Hurls sludge at the\n" - .string "foe. It may poison\n" - .string "the foe.$" - -gItemDescription_TM37: @ 83C50DC - .string "Causes a sandstorm\n" - .string "that hits the foe\n" - .string "over several turns.$" - -gItemDescription_TM38: @ 83C5115 - .string "A powerful fire\n" - .string "attack that may\n" - .string "burn the foe.$" - -gItemDescription_TM39: @ 83C5143 - .string "Stops the foe from\n" - .string "moving with rocks.\n" - .string "May lower SPEED.$" - -gItemDescription_TM40: @ 83C517A - .string "An extremely fast\n" - .string "attack that can’t\n" - .string "be avoided.$" - -gItemDescription_TM41: @ 83C51AA - .string "Prevents the foe\n" - .string "from using the same\n" - .string "move in a row.$" - -gItemDescription_TM42: @ 83C51DE - .string "Raises ATTACK when\n" - .string "poisoned, burned,\n" - .string "or paralyzed.$" - -gItemDescription_TM43: @ 83C5211 - .string "Adds an effect to\n" - .string "attack depending\n" - .string "on the location.$" - -gItemDescription_TM44: @ 83C5245 - .string "The user sleeps for\n" - .string "2 turns to restore\n" - .string "health and status.$" - -gItemDescription_TM45: @ 83C527F - .string "Makes it tough to\n" - .string "attack a foe of the\n" - .string "opposite gender.$" - -gItemDescription_TM46: @ 83C52B6 - .string "While attacking,\n" - .string "it may steal the\n" - .string "foe’s held item.$" - -gItemDescription_TM47: @ 83C52E9 - .string "Spreads hard-edged\n" - .string "wings and slams\n" - .string "into the foe.$" - -gItemDescription_TM48: @ 83C531A - .string "Switches abilities\n" - .string "with the foe on the\n" - .string "turn this is used.$" - -gItemDescription_TM49: @ 83C5354 - .string "Steals the effects\n" - .string "of the move the foe\n" - .string "is trying to use.$" - -gItemDescription_TM50: @ 83C538D - .string "Enables full-power\n" - .string "attack, but sharply\n" - .string "lowers SP. ATK.$" - -gItemDescription_HM01: @ 83C53C4 - .string "Attacks the foe\n" - .string "with sharp blades\n" - .string "or claws.$" - -gItemDescription_HM02: @ 83C53F0 - .string "Flies up on the\n" - .string "first turn, then\n" - .string "attacks next turn.$" - -gItemDescription_HM03: @ 83C5424 - .string "Creates a huge\n" - .string "wave, then crashes\n" - .string "it down on the foe.$" - -gItemDescription_HM04: @ 83C545A - .string "Builds enormous\n" - .string "power, then slams\n" - .string "the foe.$" - -gItemDescription_HM05: @ 83C5485 - .string "Looses a powerful\n" - .string "blast of light that\n" - .string "reduces accuracy.$" - -gItemDescription_HM06: @ 83C54BD - .string "A rock-crushingly\n" - .string "tough attack that\n" - .string "may lower DEFENSE.$" - -gItemDescription_HM07: @ 83C54F4 - .string "Attacks the foe\n" - .string "with enough power\n" - .string "to climb waterfalls.$" - -gItemDescription_HM08: @ 83C552B - .string "Dives underwater\n" - .string "the 1st turn, then\n" - .string "attacks next turn.$" - -gItemDescription_Dummy: @ 83C5562 - .string "$" diff --git a/data/trader.s b/data/trader.s deleted file mode 100644 index 5029338d2..000000000 --- a/data/trader.s +++ /dev/null @@ -1,17 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -gUnknown_083F62D8:: @ 83F62D8 - .4byte SecretBaseText_Tristan - .4byte SecretBaseText_Philip - .4byte SecretBaseText_Dennis - .4byte SecretBaseText_Roberto - -gTraderDecorations:: @ 83F62E8 - .byte DECOR_DUSKULL_DOLL - .byte DECOR_BALL_CUSHION - .byte DECOR_TIRE - .byte DECOR_PRETTY_FLOWERS diff --git a/data/util.s b/data/util.s deleted file mode 100644 index 03c92a988..000000000 --- a/data/util.s +++ /dev/null @@ -1,70 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -gBitTable:: @ 820872C - .4byte 0x00000001 - .4byte 0x00000002 - .4byte 0x00000004 - .4byte 0x00000008 - .4byte 0x00000010 - .4byte 0x00000020 - .4byte 0x00000040 - .4byte 0x00000080 - .4byte 0x00000100 - .4byte 0x00000200 - .4byte 0x00000400 - .4byte 0x00000800 - .4byte 0x00001000 - .4byte 0x00002000 - .4byte 0x00004000 - .4byte 0x00008000 - .4byte 0x00010000 - .4byte 0x00020000 - .4byte 0x00040000 - .4byte 0x00080000 - .4byte 0x00100000 - .4byte 0x00200000 - .4byte 0x00400000 - .4byte 0x00800000 - .4byte 0x01000000 - .4byte 0x02000000 - .4byte 0x04000000 - .4byte 0x08000000 - .4byte 0x10000000 - .4byte 0x20000000 - .4byte 0x40000000 - .4byte 0x80000000 - - .align 2 -gInvisibleSpriteTemplate:: @ 82087AC - spr_template 0, 0, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - - .align 2 -gSpriteDimensions:: @ 82087C4 - @ square - .byte 1, 1 - .byte 2, 2 - .byte 4, 4 - .byte 8, 8 - - @ horizontal rectangle - .byte 2, 1 - .byte 4, 1 - .byte 4, 2 - .byte 8, 4 - - @ vertical rectangle - .byte 1, 2 - .byte 1, 4 - .byte 2, 4 - .byte 4, 8 - -@ 82087DC - .include "data/crc16_table.inc" - - .align 2 -gMiscBlank_Gfx:: @ 82089DC - .incbin "graphics/interface/blank.4bpp" diff --git a/graphics-de/title_screen/logo_sapphire.pal b/graphics-de/title_screen/logo_sapphire.pal new file mode 100644 index 000000000..7b74308af --- /dev/null +++ b/graphics-de/title_screen/logo_sapphire.pal @@ -0,0 +1,227 @@ +JASC-PAL +0100 +224 +0 0 0 +0 0 0 +246 222 24 +255 238 16 +255 246 24 +246 246 41 +246 246 246 +246 255 255 +255 246 246 +8 8 8 +16 8 8 +0 0 255 +246 222 32 +246 222 41 +255 238 41 +246 238 238 +255 255 16 +255 255 24 +255 255 246 +255 255 255 +246 238 32 +255 230 24 +246 230 41 +246 238 41 +255 238 49 +255 246 32 +255 246 41 +255 255 32 +255 255 41 +16 8 16 +24 16 16 +24 16 24 +24 24 16 +24 24 24 +32 24 24 +32 32 24 +24 24 32 +41 32 32 +41 41 32 +90 82 82 +222 180 16 +0 0 131 +8 8 131 +16 8 230 +16 8 238 +8 0 255 +24 0 246 +24 0 255 +24 8 246 +24 8 255 +8 16 246 +172 172 172 +189 180 189 +197 197 197 +213 213 213 +230 230 230 +246 230 24 +246 230 32 +255 238 24 +255 238 32 +246 230 49 +246 238 49 +16 16 16 +16 16 24 +32 24 32 +32 32 32 +24 24 41 +24 32 41 +32 24 41 +32 32 41 +24 32 57 +24 41 65 +32 32 57 +32 41 57 +24 41 74 +32 32 74 +0 0 115 +24 32 106 +41 32 41 +41 41 41 +49 41 49 +41 41 65 +41 32 82 +41 32 98 +41 41 82 +41 41 90 +41 32 106 +41 24 115 +41 41 115 +41 49 115 +57 49 49 +57 49 57 +57 57 49 +65 57 57 +65 57 65 +74 65 65 +74 65 74 +74 74 82 +90 82 90 +90 90 90 +106 98 98 +106 106 106 +123 98 115 +139 106 106 +180 139 57 +189 148 49 +172 131 65 +180 148 65 +205 164 32 +205 172 24 +197 164 41 +197 172 49 +123 123 123 +139 123 106 +164 123 82 +156 131 98 +172 139 82 +172 156 106 +189 172 98 +197 189 82 +213 172 24 +222 180 24 +213 189 32 +222 189 24 +230 205 24 +238 213 24 +213 180 41 +222 197 41 +213 189 49 +213 197 74 +230 213 41 +230 222 41 +213 213 65 +230 222 57 +8 8 197 +16 8 197 +32 8 205 +41 8 197 +16 8 213 +16 8 222 +24 8 213 +32 8 213 +41 8 213 +41 8 222 +49 8 213 +57 8 213 +24 0 238 +24 8 230 +32 0 230 +32 8 230 +41 0 230 +41 0 238 +41 8 230 +41 8 238 +49 0 230 +49 8 230 +57 0 238 +57 8 238 +8 8 246 +8 8 255 +16 0 246 +16 0 255 +16 8 246 +16 8 255 +32 0 246 +32 0 255 +32 8 246 +32 8 255 +41 0 246 +41 8 246 +49 0 246 +57 0 246 +8 16 131 +24 24 131 +16 24 148 +32 24 156 +41 24 131 +41 24 156 +41 41 131 +41 41 148 +16 16 180 +24 16 197 +24 24 180 +24 32 180 +41 16 172 +41 16 189 +41 24 180 +49 32 189 +8 16 222 +16 16 213 +8 24 222 +16 24 222 +24 16 238 +16 16 246 +41 16 213 +41 24 213 +57 24 213 +57 32 213 +32 16 230 +32 24 222 +57 24 222 +49 16 230 +90 65 164 +98 57 156 +98 74 156 +98 82 148 +115 82 131 +115 90 156 +123 106 148 +139 115 139 +82 49 180 +82 57 172 +98 65 172 +106 82 172 +74 32 189 +74 32 205 +82 49 189 +82 49 197 +123 131 131 +131 131 131 +139 131 131 +139 139 139 +156 131 131 +156 148 156 diff --git a/graphics-de/title_screen/pokemon_sapphire.png b/graphics-de/title_screen/pokemon_sapphire.png Binary files differnew file mode 100644 index 000000000..2e451f746 --- /dev/null +++ b/graphics-de/title_screen/pokemon_sapphire.png diff --git a/graphics-de/title_screen/sapphireversion.png b/graphics-de/title_screen/sapphireversion.png Binary files differnew file mode 100644 index 000000000..3e3c31a09 --- /dev/null +++ b/graphics-de/title_screen/sapphireversion.png diff --git a/include/battle.h b/include/battle.h index d4cb53689..d4cb53689 100755..100644 --- a/include/battle.h +++ b/include/battle.h diff --git a/include/battle_setup.h b/include/battle_setup.h index e88aefe6d..c8c463f6d 100644 --- a/include/battle_setup.h +++ b/include/battle_setup.h @@ -87,7 +87,7 @@ bool32 battle_exit_is_player_defeat(u32 a1); //void sub_80822BC(void); //void TrainerBattleLoadArgs(const struct TrainerBattleSpec *specs, u8 *data); //void battle_80801F0(void); -u8 *TrainerBattleConfigure(u8 *data); +u8 *TrainerBattleConfigure(const u8 *data); void TrainerWantsBattle(u8, u8 *); bool32 GetTrainerFlagFromScriptPointer(u8 *data); //void sub_8082524(void); diff --git a/include/decoration.h b/include/decoration.h index 7a6d8ef5a..2e72e305a 100755..100644 --- a/include/decoration.h +++ b/include/decoration.h @@ -289,16 +289,6 @@ extern u8 sub_8134194(u8); // src/decoration_inventory extern bool8 sub_81341D4(void); // src/decoration_inventory extern void sub_8134104(u8); // src/decoration_inventory extern bool8 sub_807D770(void); -extern void sub_80F944C(void); // src/menu_helpers -extern void sub_80F9480(u8 *, u8); // src/menu_helpers -extern void sub_80F94A4(u8, u8 *, u8, s16); // src/menu_helpers -extern void sub_80F94F8(u8 *); // src/menu_helpers -extern void sub_80F9520(u8 *, u8); // src/menu_helpers -extern void DestroyVerticalScrollIndicator(u8); // src/menu_helpers -extern void CreateVerticalScrollIndicators(u8, u8, u8); // src/menu_helpers -extern void LoadScrollIndicatorPalette(void); // src/menu_helpers -extern void DisplayItemMessageOnField(u8, const u8 *, TaskFunc, u16); // src/menu_helpers -extern void BuyMenuFreeMemory(void); // src/menu_helpers extern void sub_8109DAC(u8); // src/trader extern void ReshowPlayerPC(u8); // src/player_pc @@ -310,6 +300,8 @@ void sub_80FE5AC(u8); void sub_80FE604(u8); void sub_80FE728(u8); void sub_80FE758(u8); +void sub_80FE7A8(u8); +void sub_80FE7D4(u8 *, u8); void sub_80FE868(u8); void sub_80FE948(u8); void sub_80FEABC(u8, u8); @@ -317,6 +309,7 @@ void sub_80FEC94(u8); void sub_80FECB8(u8); void sub_80FECE0(u8); void sub_80FEF50(u8); +bool8 sub_80FEFA4(void); void sub_80FF394(u16, u16, u16); void sub_80FF6AC(u8); void sub_80FF960(u8); diff --git a/include/decoration_inventory.h b/include/decoration_inventory.h index afc354237..e59a23008 100644 --- a/include/decoration_inventory.h +++ b/include/decoration_inventory.h @@ -2,9 +2,11 @@ #define GUARD_DECORATION_INVENTORY_H void ClearDecorationInventories(void); +s8 sub_8133F9C(u8); u8 sub_8133FE4(u8); u8 IsThereStorageSpaceForDecoration(u8); u8 sub_8134074(u8); s8 sub_81340A8(u8); +u8 sub_8134194(u8); #endif // GUARD_DECORATION_INVENTORY_H diff --git a/include/flags.h b/include/flags.h index 0e408a833..26a129ea2 100644 --- a/include/flags.h +++ b/include/flags.h @@ -50,6 +50,7 @@ #define SYS_BRAILLE_STRENGTH 0x850 #define SYS_BRAILLE_WAIT 0x851 #define SYS_BRAILLE_FLY 0x852 +#define SYS_HAS_EON_TICKET 0x853 #define SYS_TV_LATI 0x85D diff --git a/include/global.h b/include/global.h index 0f5bcde6d..c9a092f05 100644 --- a/include/global.h +++ b/include/global.h @@ -115,11 +115,6 @@ enum BAG_KEYITEMS }; -struct TextStruct -{ - const u8 *text; -}; - struct Coords16 { s16 x; @@ -474,10 +469,20 @@ struct UnkMauvilleOldManStruct2 u8 fillerF[0x2]; }; /*size = 0x2C*/ +struct MauvilleOldManTrader +{ + u8 unk0; + u8 unk1[4]; + u8 unk5[4][11]; + u8 unk31; +}; + typedef union OldMan { struct UnkMauvilleOldManStruct oldMan1; struct UnkMauvilleOldManStruct2 oldMan2; + struct MauvilleOldManTrader trader; + u8 filler[0x40]; } OldMan; struct Unk_SB_Access_Struct1 @@ -531,7 +536,9 @@ struct GabbyAndTyData struct RecordMixing_UnknownStructSub { - u8 data[0x38]; + u32 unk0; + u8 data[0x34]; + //u8 data[0x38]; }; struct RecordMixing_UnknownStruct @@ -611,7 +618,6 @@ struct SaveBlock1 /* 0x02025734 */ /*0x2D8C*/ u8 unk2D8C[4]; /*0x2D90*/ u8 filler_2D90[0x4]; /*0x2D94*/ OldMan oldMan; - /*0x2DC0*/ u8 unk_2DC0[0x14]; /*0x2DD4*/ struct EasyChatPair easyChatPairs[5]; //Dewford trend [0] and some other stuff /*0x2DFC*/ u8 filler_2DFC[0x8]; /*0x2E04*/ SB_Struct sbStruct; diff --git a/include/graphics.h b/include/graphics.h index e448d60ce..fa6a85513 100755..100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -2435,13 +2435,119 @@ extern const u8 gMonFrontPic_UnownQuestionMark[]; extern const u8 gMonBackPic_UnownQuestionMark[]; extern const u8 gMonIcon_UnownQuestionMark[]; -// src/pokeblock.c +// data/graphics.s +extern const u8 gBagMaleTiles[]; +extern const u8 gBagFemaleTiles[]; +extern const u8 gBagPalette[]; +extern const u8 gBagScreen_Gfx[]; +extern const u8 gBagScreenMale_Pal[]; +extern const u8 gBagScreenFemale_Pal[]; +extern const u16 gUnknown_08E77004[]; +extern const u8 gBuyMenuFrame_Gfx[]; +extern const u8 gMenuMoneyPal[]; +extern const u8 gBuyMenuFrame_Tilemap[]; +extern const u8 gMenuMoneyGfx[]; extern const u8 gMenuPokeblock_Gfx[]; -extern const u8 gMenuPokeblock_Tilemap[]; extern const u8 gMenuPokeblock_Pal[]; - extern const u8 gMenuPokeblockDevice_Gfx[]; extern const u8 gMenuPokeblockDevice_Pal[]; +extern const u8 gMenuPokeblock_Tilemap[]; + +extern const u8 gBerryCheck_Gfx[]; +extern const u8 gBerryCheck_Pal[]; +extern const u8 gUnknown_08E788E4[]; +extern const u8 gUnknown_08E78A84[]; +extern const u8 gBerryCheckCircle_Gfx[]; + +// data/graphics/berries/graphics.inc +extern const u8 gBerryPic_Cheri[]; +extern const u8 gBerryPic_Oran[]; +extern const u8 gBerryPic_Pecha[]; +extern const u8 gBerryPic_Rawst[]; +extern const u8 gBerryPic_Aspear[]; +extern const u8 gBerryPic_Leppa[]; +extern const u8 gBerryPic_Chesto[]; +extern const u8 gBerryPic_Persim[]; +extern const u8 gBerryPic_Lum[]; +extern const u8 gBerryPic_Sitrus[]; +extern const u8 gBerryPic_Figy[]; +extern const u8 gBerryPic_Wiki[]; +extern const u8 gBerryPic_Mago[]; +extern const u8 gBerryPic_Aguav[]; +extern const u8 gBerryPic_Iapapa[]; +extern const u8 gBerryPic_Razz[]; +extern const u8 gBerryPic_Bluk[]; +extern const u8 gBerryPic_Nanab[]; +extern const u8 gBerryPic_Wepear[]; +extern const u8 gBerryPic_Pinap[]; +extern const u8 gBerryPic_Pomeg[]; +extern const u8 gBerryPic_Kelpsy[]; +extern const u8 gBerryPic_Qualot[]; +extern const u8 gBerryPic_Hondew[]; +extern const u8 gBerryPic_Grepa[]; +extern const u8 gBerryPic_Tamato[]; +extern const u8 gBerryPic_Cornn[]; +extern const u8 gBerryPic_Magost[]; +extern const u8 gBerryPic_Rabuta[]; +extern const u8 gBerryPic_Nomel[]; +extern const u8 gBerryPic_Spelon[]; +extern const u8 gBerryPic_Pamtre[]; +extern const u8 gBerryPic_Watmel[]; +extern const u8 gBerryPic_Durin[]; +extern const u8 gBerryPic_Belue[]; +extern const u8 gBerryPic_Liechi[]; +extern const u8 gBerryPic_Ganlon[]; +extern const u8 gBerryPic_Salac[]; +extern const u8 gBerryPic_Petaya[]; +extern const u8 gBerryPic_Apicot[]; +extern const u8 gBerryPic_Lansat[]; +extern const u8 gBerryPic_Starf[]; +extern const u8 gBerryPic_Enigma[]; +extern const u8 gBerryPalette_Cheri[]; +extern const u8 gBerryPalette_Oran[]; +extern const u8 gBerryPalette_Pecha[]; +extern const u8 gBerryPalette_Rawst[]; +extern const u8 gBerryPalette_Aspear[]; +extern const u8 gBerryPalette_Leppa[]; +extern const u8 gBerryPalette_Chesto[]; +extern const u8 gBerryPalette_Persim[]; +extern const u8 gBerryPalette_Lum[]; +extern const u8 gBerryPalette_Sitrus[]; +extern const u8 gBerryPalette_Figy[]; +extern const u8 gBerryPalette_Wiki[]; +extern const u8 gBerryPalette_Mago[]; +extern const u8 gBerryPalette_Aguav[]; +extern const u8 gBerryPalette_Iapapa[]; +extern const u8 gBerryPalette_Razz[]; +extern const u8 gBerryPalette_Bluk[]; +extern const u8 gBerryPalette_Nanab[]; +extern const u8 gBerryPalette_Wepear[]; +extern const u8 gBerryPalette_Pinap[]; +extern const u8 gBerryPalette_Pomeg[]; +extern const u8 gBerryPalette_Kelpsy[]; +extern const u8 gBerryPalette_Qualot[]; +extern const u8 gBerryPalette_Hondew[]; +extern const u8 gBerryPalette_Grepa[]; +extern const u8 gBerryPalette_Tamato[]; +extern const u8 gBerryPalette_Cornn[]; +extern const u8 gBerryPalette_Magost[]; +extern const u8 gBerryPalette_Rabuta[]; +extern const u8 gBerryPalette_Nomel[]; +extern const u8 gBerryPalette_Spelon[]; +extern const u8 gBerryPalette_Pamtre[]; +extern const u8 gBerryPalette_Watmel[]; +extern const u8 gBerryPalette_Durin[]; +extern const u8 gBerryPalette_Belue[]; +extern const u8 gBerryPalette_Liechi[]; +extern const u8 gBerryPalette_Ganlon[]; +extern const u8 gBerryPalette_Salac[]; +extern const u8 gBerryPalette_Petaya[]; +extern const u8 gBerryPalette_Apicot[]; +extern const u8 gBerryPalette_Lansat[]; +extern const u8 gBerryPalette_Starf[]; +extern const u8 gBerryPalette_Enigma[]; + +extern const u8 gUnknown_08E96EC8[]; extern const u8 gMenuTrainerCard_Gfx[]; extern const u16 gMenuTrainerCard0Star_Pal[]; diff --git a/include/item.h b/include/item.h index 47af11940..8f6cc883b 100644 --- a/include/item.h +++ b/include/item.h @@ -11,7 +11,7 @@ struct Item u16 price; u8 holdEffect; u8 holdEffectParam; - u8 *description; + const u8 *description; u8 importance; u8 unk19; u8 pocket; @@ -22,6 +22,16 @@ struct Item u8 secondaryId; }; +struct BagPocket +{ + struct ItemSlot *itemSlots; + u8 capacity; +}; + +#define NUM_BAG_POCKETS 5 + +extern const struct BagPocket gBagPockets[NUM_BAG_POCKETS]; + void CopyItemName(u16 itemId, u8 *string); bool8 IsBagPocketNonEmpty(u8 pocket); bool8 CheckBagHasItem(u16 itemId, u16 count); @@ -35,13 +45,13 @@ bool8 CheckPCHasItem(u16 itemId, u16 count); bool8 AddPCItem(u16 itemId, u16 count); void RemovePCItem(u8 index, u16 count); void SwapRegisteredBike(void); -struct Item *ItemId_GetItem(u16 itemId); +const struct Item *ItemId_GetItem(u16 itemId); u16 ItemId_GetId(u16 itemId); u16 ItemId_GetPrice(u16 itemId); u8 ItemId_GetHoldEffect(u16 itemId); u8 ItemId_GetHoldEffectParam(u16 itemId); -u8 *ItemId_GetDescription(u16 itemId); -bool8 ItemId_CopyDescription(u8 *a, u32 itemId, u32 c); +const u8 *ItemId_GetDescription(u16 itemId); +bool32 ItemId_CopyDescription(u8 *a, u32 itemId, u32 c); u8 ItemId_GetImportance(u16 itemId); u8 ItemId_GetUnknownValue(u16 itemId); u8 ItemId_GetPocket(u16 itemId); diff --git a/include/item_menu.h b/include/item_menu.h index 301836ac8..6950ed0ff 100644 --- a/include/item_menu.h +++ b/include/item_menu.h @@ -3,12 +3,12 @@ #include "string_util.h" -void sub_80A3684(void); +void ResetBagScrollPositions(void); void ClearBag(void); void sub_80A3E0C(void); -void sub_80A3FA0(u16 *, u32, u32, u32, u32, u32); +void sub_80A3FA0(u16 *a, u8 b, u8 c, u8 d, u8 e, u16 f); void sub_80A4164(u8 *, u16, enum StringConvertMode, u8); -void sub_80A418C(u16, enum StringConvertMode, int, int, int); +void sub_80A418C(u16 a, enum StringConvertMode b, u8 c, u8 d, u8 e); void sub_80A53F8(void); void HandleItemMenuPaletteFade(u8); void sub_80A5B40(void); @@ -19,11 +19,11 @@ void sub_80A5D04(void); void sub_80A6300(void); void sub_80A68CC(); void sub_80A6A30(void); -int sub_80A6D1C(void); +bool32 sub_80A6D1C(void); void sub_80A6DCC(void); void sub_80A7094(u8); -u8 sub_80A7D8C(u8 berry, int i, int i1); +u8 CreateBerrySprite(u8, s16, s16); void sub_80A7DD4(void); -u8 sub_80A7E5C(u8); +u8 sub_80A7E5C(s16); #endif // GUARD_ITEM_MENU_H diff --git a/include/item_use.h b/include/item_use.h index 61a3b4f7a..1558f7691 100644 --- a/include/item_use.h +++ b/include/item_use.h @@ -3,28 +3,51 @@ extern u16 gScriptItemId; +void ItemUseOutOfBattle_Mail(u8); +void ItemUseOutOfBattle_Bike(u8); void ItemUseOnFieldCB_Bike(u8); +void ItemUseOutOfBattle_Rod(u8); void ItemUseOnFieldCB_Rod(u8); +void ItemUseOutOfBattle_Itemfinder(u8); void ItemUseOnFieldCB_Itemfinder(u8); void RunItemfinderResults(u8); void ExitItemfinder(u8); -bool8 ItemfinderCheckForHiddenItems(struct MapEvents *events, u8 taskId); +bool8 ItemfinderCheckForHiddenItems(struct MapEvents *, u8); void sub_80C9720(u8); void sub_80C9838(u8, s16, s16); u8 GetPlayerDirectionTowardsHiddenItem(s16, s16); void SetPlayerDirectionTowardsItem(u8); void DisplayItemRespondingMessageAndExitItemfinder(u8); void RotatePlayerAndExitItemfinder(u8); +void ItemUseOutOfBattle_PokeblockCase(u8); +void ItemUseOutOfBattle_CoinCase(u8); +void ItemUseOutOfBattle_SSTicket(u8); void sub_80C9D00(u8); +void ItemUseOutOfBattle_WailmerPail(u8); void sub_80C9D74(u8); +void ItemUseOutOfBattle_Medicine(u8); +void ItemUseOutOfBattle_SacredAsh(u8); +void ItemUseOutOfBattle_PPRecovery(u8); +void ItemUseOutOfBattle_PPUp(u8); +void ItemUseOutOfBattle_RareCandy(u8); void ItemUseOutOfBattle_TMHM(u8); void sub_80C9EE4(u8); void sub_80C9F10(u8); void sub_80C9F80(u8); void sub_80C9FC0(u8); +void ItemUseOutOfBattle_Repel(u8); +void ItemUseOutOfBattle_BlackWhiteFlute(u8); void task08_080A1C44(u8); u8 sub_80CA1C8(void); +void ItemUseOutOfBattle_EscapeRope(u8); void ItemUseOutOfBattle_EvolutionStone(u8); +void ItemUseInBattle_PokeBall(u8); +void ItemUseInBattle_StatIncrease(u8); +void ItemUseInBattle_Medicine(u8); +void ItemUseInBattle_PPRecovery(u8); +void ItemUseInBattle_Escape(u8); +void ItemUseOutOfBattle_EnigmaBerry(u8); +void ItemUseInBattle_EnigmaBerry(u8); void ItemUseOutOfBattle_CannotUse(u8); #endif // GUARD_ITEM_USE_H diff --git a/include/items.h b/include/items.h index f3c506b43..69515f18e 100644 --- a/include/items.h +++ b/include/items.h @@ -1,7 +1,8 @@ #ifndef GUARD_ITEMS_H #define GUARD_ITEMS_H -enum { +enum +{ ITEM_NONE, // 0x000 ITEM_MASTER_BALL, // 0x001 ITEM_ULTRA_BALL, // 0x002 diff --git a/include/link.h b/include/link.h index f80f2bc58..367add625 100644 --- a/include/link.h +++ b/include/link.h @@ -144,6 +144,7 @@ extern u8 deUnkValue2; extern struct LinkPlayer gLinkPlayers[]; extern u16 word_3002910[]; extern bool8 gReceivedRemoteLinkPlayers; +extern bool8 gLinkOpen; void Task_DestroySelf(u8); void sub_8007270(u8); diff --git a/include/menu.h b/include/menu.h index 9b48ab79b..9b48ab79b 100755..100644 --- a/include/menu.h +++ b/include/menu.h diff --git a/include/menu_helpers.h b/include/menu_helpers.h index 1df5053e7..993d698bd 100755..100644 --- a/include/menu_helpers.h +++ b/include/menu_helpers.h @@ -9,22 +9,31 @@ struct YesNoFuncTable void (*noFunc)(u8); }; +void sub_80F9020(void); +void DisplayItemMessageOnField(u8, const u8 *, TaskFunc, u16); void DoYesNoFuncWithChoice(u8, const struct YesNoFuncTable *); void sub_80F914C(u8, const struct YesNoFuncTable *); -void DisplayItemMessageOnField(u8, const u8 *, TaskFunc, u16); +u8 sub_80F9284(void); +u8 sub_80F92BC(void); +bool8 sub_80F92F4(u16); +bool8 sub_80F931C(u16); bool8 sub_80F9344(void); -u8 sub_80F9344(void); void sub_80F9368(void); void sub_80F9438(void); void sub_80F944C(void); -void CreateVerticalScrollIndicators(u8, u8, u8); // include/decoration.h -void sub_80F979C(u32, u32); // unknown args +void sub_80F9480(u8 *, u8); +void sub_80F94A4(u8, u8 *, s16, s16); +void sub_80F94F8(u8 *); +void sub_80F9520(u8 *, u8); +void CreateVerticalScrollIndicators(u8, u16, u16); +void sub_80F979C(u8, bool8); void DestroyVerticalScrollIndicator(u8); -void BuyMenuFreeMemory(void); -void sub_80F98DC(int); -void sub_80F996C(u8); void LoadScrollIndicatorPalette(void); +void BuyMenuFreeMemory(void); void sub_80F98A4(u8); void StartVerticalScrollIndicators(u8); +void sub_80F98DC(u8); +void PauseVerticalScrollIndicator(u8); +void sub_80F9988(u8, u8); #endif // GUARD_MENU_HELPERS_H diff --git a/include/pokeblock.h b/include/pokeblock.h index 0d8e965e4..0d8e965e4 100755..100644 --- a/include/pokeblock.h +++ b/include/pokeblock.h diff --git a/include/pokemon.h b/include/pokemon.h index c69fb87e0..c69fb87e0 100755..100644 --- a/include/pokemon.h +++ b/include/pokemon.h diff --git a/include/pokenav.h b/include/pokenav.h index 70cc4135f..70cc4135f 100755..100644 --- a/include/pokenav.h +++ b/include/pokenav.h diff --git a/include/record_mixing.h b/include/record_mixing.h index 103f5ad64..ca60b04a7 100644 --- a/include/record_mixing.h +++ b/include/record_mixing.h @@ -14,8 +14,8 @@ void Task_RecordMixing_CopyReceiveBuffer(u8 taskId); void sub_80B99B4(u8 taskId); void Task_RecordMixing_ReceivePacket(u8 taskId); void Task_RecordMixing_SendPacket_SwitchToReceive(u8 taskId); -void *LoadPtrFromTaskData(u16 *ptr); -void StorePtrInTaskData(void *ptr, u16 *data); +void *LoadPtrFromTaskData(u16 *); +void StorePtrInTaskData(void *, u16 *); u8 GetMultiplayerId_(void); u16 *GetPlayerRecvBuffer(u8 player); void sub_80B9A78(void); @@ -23,12 +23,12 @@ void sub_80B9A88(u8 *a); void sub_80B9B1C(u8 *a, size_t size, u8 index); void sub_80B9B70(u8 *a, size_t size, u8 index); u8 sub_80B9BBC(u16 *a); -void sub_80B9BC4(struct RecordMixing_UnknownStruct *, size_t, u8 [][2], u8, u8); +void sub_80B9BC4(u8 *, size_t, u8[][2], u8 d, u8 e); u8 sub_80B9C4C(u8 *a); // ASM -void sub_80B9C6C(struct RecordMixing_UnknownStruct *, u32, u8, void *); -void sub_80B9F3C(void *, u8); +void sub_80B9C6C(u8 *, u32, u8, void *); +void sub_80B9F3C(u16 *, u8); void sub_80BA00C(u8); #endif // GUARD_RECORD_MIXING_H diff --git a/include/region_map.h b/include/region_map.h index 6dfa4dcf0..6dfa4dcf0 100755..100644 --- a/include/region_map.h +++ b/include/region_map.h diff --git a/include/save.h b/include/save.h index 3feaa1f3d..6c47c6f60 100644 --- a/include/save.h +++ b/include/save.h @@ -74,7 +74,7 @@ bool8 sub_8125DA8(void); u8 sub_8125DDC(void); u8 sub_8125E04(void); u8 sub_8125E2C(void); -u8 sub_8125E6C(void); +bool8 sub_8125E6C(void); u8 sub_8125EC8(u8 a1); bool8 unref_sub_8125F4C(struct UnkSaveSection *a1); u8 unref_sub_8125FA0(void); diff --git a/include/script.h b/include/script.h index 5577fcb01..e35ec7608 100644 --- a/include/script.h +++ b/include/script.h @@ -12,8 +12,8 @@ struct ScriptContext u8 mode; u8 comparisonResult; u8 (*nativePtr)(void); - u8 *scriptPtr; - u8 *stack[20]; + const u8 *scriptPtr; + const u8 *stack[20]; ScrCmdFunc *cmdTable; ScrCmdFunc *cmdTableEnd; u32 data[4]; @@ -22,12 +22,12 @@ struct ScriptContext #define ScriptReadByte(ctx) (*(ctx->scriptPtr++)) void InitScriptContext(struct ScriptContext *ctx, void *cmdTable, void *cmdTableEnd); -u8 SetupBytecodeScript(struct ScriptContext *ctx, void *ptr); +u8 SetupBytecodeScript(struct ScriptContext *ctx, const u8 *ptr); void SetupNativeScript(struct ScriptContext *ctx, void *ptr); void StopScript(struct ScriptContext *ctx); u8 RunScript(struct ScriptContext *ctx); -u8 ScriptPush(struct ScriptContext *ctx, u8 *ptr); -u8 *ScriptPop(struct ScriptContext *ctx); +u8 ScriptPush(struct ScriptContext *ctx, const u8 *ptr); +const u8 *ScriptPop(struct ScriptContext *ctx); void ScriptJump(struct ScriptContext *ctx, u8 *ptr); void ScriptCall(struct ScriptContext *ctx, u8 *ptr); void ScriptReturn(struct ScriptContext *ctx); @@ -38,10 +38,10 @@ void ScriptContext2_Disable(void); bool8 ScriptContext2_IsEnabled(void); void ScriptContext1_Init(void); bool8 ScriptContext2_RunScript(void); -void ScriptContext1_SetupScript(u8 *ptr); +void ScriptContext1_SetupScript(const u8 *ptr); void ScriptContext1_Stop(void); void EnableBothScriptContexts(void); -void ScriptContext2_RunNewScript(u8 *ptr); +void ScriptContext2_RunNewScript(const u8 *ptr); u8 *mapheader_get_tagged_pointer(u8 tag); void mapheader_run_script_by_tag(u8 tag); u8 *mapheader_get_first_match_from_tagged_ptr_list(u8 tag); diff --git a/include/script_menu.h b/include/script_menu.h index 458aad13d..cc5c442ec 100644 --- a/include/script_menu.h +++ b/include/script_menu.h @@ -7,7 +7,7 @@ struct MultichoiceListStruct u8 count; }; -extern const struct TextStruct gUnknown_083CE048[]; +extern const u8 *const gUnknown_083CE048[]; bool8 sub_80B5054(u8 left, u8 top, u8 var3, u8 var4); bool8 sub_80B50B0(u8 left, u8 top, u8 var3, u8 var4, u8 var5); diff --git a/include/songs.h b/include/songs.h index a813cc785..8cf7ee5e9 100644 --- a/include/songs.h +++ b/include/songs.h @@ -94,11 +94,11 @@ enum SE_T_KAMI2, SE_ELEBETA, /*0x5A*/ SE_HINSI, - SE_EXPMAX, - SE_TAMAKORO, - SE_TAMAKORO_E, - SE_BASABASA, - SE_REGI, + /*0x5B*/ SE_EXPMAX, + /*0x5C*/ SE_TAMAKORO, + /*0x5D*/ SE_TAMAKORO_E, + /*0x5E*/ SE_BASABASA, + /*0x5F*/ SE_REGI, SE_C_GAJI, SE_C_MAKU_U, SE_C_MAKU_D, diff --git a/include/sprite.h b/include/sprite.h index a65e71bd9..733231eb5 100644 --- a/include/sprite.h +++ b/include/sprite.h @@ -19,7 +19,7 @@ struct CompressedSpriteSheet struct SpriteFrameImage { - u8 *data; + const u8 *data; u16 size; }; diff --git a/include/strings.h b/include/strings.h index 89a78e478..fe9cfc6ba 100755..100644 --- a/include/strings.h +++ b/include/strings.h @@ -188,7 +188,7 @@ extern const u8 OtherText_TheField[]; extern const u8 OtherText_TheField2[]; extern const u8 OtherText_ThePC[]; -extern const struct TextStruct gUnknown_0840E740[]; +extern const u8 *const gUnknown_0840E740[7]; extern const u8 gOtherText_ReturnTo[]; extern const u8 gOtherText_WhatWillYouDo2[]; diff --git a/include/text.h b/include/text.h index cf413644b..99987d2c3 100644 --- a/include/text.h +++ b/include/text.h @@ -9,8 +9,9 @@ #define CHAR_ELLIPSIS 0xB0 #define CHAR_MALE 0xB5 #define CHAR_FEMALE 0xB6 -#define CHAR_COMMA 0xB8 #define CHAR_CURRENCY 0xB7 +#define CHAR_COMMA 0xB8 +#define CHAR_MULT_SIGN 0xB9 #define CHAR_SLASH 0xBA #define CHAR_A 0xBB #define CHAR_B 0xBC @@ -65,6 +66,8 @@ #define CHAR_y 0xED #define CHAR_z 0xEE #define CHAR_COLON 0xF0 +#define CHAR_PROMPT_SCROLL 0xFA // waits for button press and scrolls dialog +#define CHAR_PROMPT_CLEAR 0xFB // waits for button press and clears dialog #define EXT_CTRL_CODE_BEGIN 0xFC // extended control code #define PLACEHOLDER_BEGIN 0xFD // string placeholder #define CHAR_NEWLINE 0xFE diff --git a/include/use_pokeblock.h b/include/use_pokeblock.h index 978476d89..978476d89 100755..100644 --- a/include/use_pokeblock.h +++ b/include/use_pokeblock.h diff --git a/include/vars.h b/include/vars.h index e08f344d4..efbb462a4 100755..100644 --- a/include/vars.h +++ b/include/vars.h @@ -1,6 +1,7 @@ #ifndef GUARD_VARS_H #define GUARD_VARS_H +#define VAR_0x4000 0x4000 #define VAR_0x4001 0x4001 #define VAR_0x4002 0x4002 #define VAR_0x4003 0x4003 diff --git a/ld_script.txt b/ld_script.txt index 3b2d4fd34..0cd9e4794 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -155,7 +155,7 @@ SECTIONS { src/fldeff_cut.o(.text); src/mail_data.o(.text); src/map_name_popup.o(.text); - asm/item_menu.o(.text); + src/item_menu.o(.text); src/battle_anim_80A7E7C.o(.text); src/item.o(.text); src/matsuda_debug_menu.o(.text); @@ -168,11 +168,10 @@ SECTIONS { src/money.o(.text); asm/contest_effect.o(.text); src/record_mixing.o(.text); - asm/record_mixing.o(.text); src/sound_check_menu.o(.text); src/secret_base.o(.text); asm/secret_base.o(.text_80BC1D0); - src/tv.o(.text); + src/tv.o(.text); asm/contest_link_80C2020.o(.text); src/script_pokemon_util_80C4BF0.o(.text); src/field_poison.o(.text); @@ -195,7 +194,7 @@ SECTIONS { src/mauville_old_man.o(.text); asm/mauville_old_man.o(.text); src/mail.o(.text); - asm/menu_helpers.o(.text); + src/menu_helpers.o(.text); src/script_pokemon_util_80F99CC.o(.text); src/dewford_trend.o(.text); src/heal_location.o(.text); @@ -208,7 +207,7 @@ SECTIONS { src/slot_machine.o(.text_b); src/contest_painting.o(.text); src/battle_ai.o(.text); - asm/trader.o(.text); + src/trader.o(.text); src/starter_choose.o(.text); src/wallclock.o(.text); src/rom6.o(.text); @@ -338,7 +337,7 @@ SECTIONS { src/pokemon_data.o(.rodata); . = ALIGN(4); src/trig.o(.rodata); - data/util.o(.rodata); + src/util.o(.rodata); data/daycare.o(.rodata); data/egg_hatch.o(.rodata); data/battle_interface.o(.rodata); @@ -374,7 +373,7 @@ SECTIONS { src/rom_8077ABC.o(.rodata); data/map_events.o(.rodata); data/data_8393054.o(.rodata); - data/task.o(.rodata); + src/task.o(.rodata); data/battle_anim_807B69C.o(.rodata); src/title_screen.o(.rodata); data/field_weather.o(.rodata); @@ -387,7 +386,7 @@ SECTIONS { data/wild_encounter.o(.rodata); src/field_effect.o(.rodata); data/pokemon_menu.o(.rodata); - data/option_menu.o(.rodata); + src/option_menu.o(.rodata); src/pokedex.o(.rodata); src/trainer_card.o(.rodata); src/battle_party_menu.o(.rodata); @@ -395,9 +394,9 @@ SECTIONS { data/pokemon_icon.o(.rodata); data/pokemon_summary_screen.o(.rodata); data/fldeff_cut.o(.rodata); - data/item_menu.o(.rodata); + src/item_menu.o(.rodata); data/battle_anim_80A7E7C.o(.rodata); - data/item.o(.rodata); + src/item.o(.rodata); data/matsuda_debug_menu.o(.rodata); data/contest.o(.rodata); data/shop.o(.rodata); @@ -407,7 +406,8 @@ SECTIONS { data/naming_screen.o(.rodata); data/money.o(.rodata); data/contest_effect.o(.rodata); - data/record_mixing.o(.rodata); + src/record_mixing.o(.data); + src/record_mixing.o(.rodata); src/sound_check_menu.o(.rodata); data/secret_base.o(.rodata); data/tv.o(.rodata); @@ -425,7 +425,7 @@ SECTIONS { data/mon_markings.o(.rodata); data/mauville_old_man.o(.rodata); data/mail.o(.rodata); - data/menu_helpers.o(.rodata); + src/menu_helpers.o(.rodata); src/heal_location.o(.rodata); data/region_map.o(.rodata); data/cute_sketch.o(.rodata); @@ -433,7 +433,7 @@ SECTIONS { data/slot_machine.o(.rodata); src/contest_painting.o(.rodata); src/battle_ai.o(.rodata); - data/trader.o(.rodata); + src/trader.o(.rodata); src/starter_choose.o(.rodata); src/wallclock.o(.rodata); src/pokeblock.o(.rodata); @@ -470,7 +470,7 @@ SECTIONS { src/lottery_corner.o(.rodata); src/diploma.o(.rodata); src/strings.o(.rodata); - data/berry_tag_screen.o(.rodata); + src/berry_tag_screen.o(.rodata); src/save_failed_screen.o(.rodata); data/pokeblock_feed.o(.rodata); data/intro_credits_graphics.o(.rodata); diff --git a/sapphire_de.sha1 b/sapphire_de.sha1 new file mode 100644 index 000000000..f99533574 --- /dev/null +++ b/sapphire_de.sha1 @@ -0,0 +1 @@ +fa0bd1abe04fea17016f585454d0f1392f342a21 pokesapphire_de.gba diff --git a/src/agb_flash_mx.c b/src/agb_flash_mx.c index 01f848901..67348901f 100644 --- a/src/agb_flash_mx.c +++ b/src/agb_flash_mx.c @@ -26,7 +26,11 @@ const struct FlashSetupInfo MX29L010 = 0 // appears to be unused }, { 3, 1 }, // wait state setup data +#if defined(GERMAN) && defined(SAPPHIRE) + { { 0xBF, 0xD4 } } // ID +#else { { 0xC2, 0x09 } } // ID +#endif } }; diff --git a/src/battle_setup.c b/src/battle_setup.c index adcbe8eaa..04674e739 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -845,17 +845,17 @@ void HandleFirstBattleEnd(void) SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music); } -u32 TrainerBattleLoadArg32(u8 *ptr) +u32 TrainerBattleLoadArg32(const u8 *ptr) { return ptr[0] | (ptr[1] << 8) | (ptr[2] << 16) | (ptr[3] << 24); } -u16 TrainerBattleLoadArg16(u8 *ptr) +u16 TrainerBattleLoadArg16(const u8 *ptr) { return ptr[0] | (ptr[1] << 8); } -u8 TrainerBattleLoadArg8(u8 *ptr) +u8 TrainerBattleLoadArg8(const u8 *ptr) { return ptr[0]; } @@ -867,16 +867,16 @@ u16 trainerflag_opponent(void) bool32 battle_exit_is_player_defeat(u32 a1) { - switch (a1 - 1) + switch (a1) { - case 1: case 2: - return TRUE; - case 0: case 3: + return TRUE; + case 1: case 4: case 5: case 6: + case 7: return FALSE; } return FALSE; @@ -895,7 +895,7 @@ void sub_80822BC(void) gTrainerBattleEndScript = 0; } -void TrainerBattleLoadArgs(const struct TrainerBattleSpec *specs, u8 *data) +void TrainerBattleLoadArgs(const struct TrainerBattleSpec *specs, const u8 *data) { while (1) { @@ -923,7 +923,7 @@ void TrainerBattleLoadArgs(const struct TrainerBattleSpec *specs, u8 *data) *(u32 *)specs->ptr = 0; break; case 6: - *(u8 **)specs->ptr = data; + *(const u8 **)specs->ptr = data; return; } specs++; @@ -939,7 +939,7 @@ void battle_80801F0(void) } } -u8 *TrainerBattleConfigure(u8 *data) +u8 *TrainerBattleConfigure(const u8 *data) { sub_80822BC(); gTrainerBattleMode = TrainerBattleLoadArg8(data); diff --git a/src/berry_tag_screen.c b/src/berry_tag_screen.c index 0e81e4fec..6cbc38ecc 100644 --- a/src/berry_tag_screen.c +++ b/src/berry_tag_screen.c @@ -41,13 +41,20 @@ extern u16 gUnknown_030041B4; extern const struct CompressedSpriteSheet gUnknown_083C1F74; extern const struct CompressedSpritePalette gUnknown_083C1F7C; -extern u8 *gUnknown_0841192C[]; - extern u8 gBerryCheck_Gfx[]; extern u8 gBerryCheck_Pal[]; extern u8 gUnknown_08E788E4[]; extern u8 gUnknown_08E78A84[]; +static const u8 *const gUnknown_0841192C[] = +{ + ContestStatsText_VerySoft, + ContestStatsText_Soft, + ContestStatsText_Hard, + ContestStatsText_VeryHard, + ContestStatsText_SuperHard, +}; + static void sub_8146014(void); static void sub_814602C(void); static bool8 sub_8146058(void); @@ -131,7 +138,7 @@ static bool8 sub_8146058(void) break; case 8: berry = gScriptItemId + OFFSET_7B; - gUnknown_0203932C = sub_80A7D8C(berry, 56, 64); + gUnknown_0203932C = CreateBerrySprite(berry, 56, 64); gMain.state += 1; break; case 9: @@ -374,7 +381,7 @@ static void sub_81466E8(u8 taskId, s8 direction) lsls r0, 3\n\ ldr r1, _08146748 @ =gTasks + 0x8\n\ adds r6, r0, r1\n\ - ldr r4, _0814674C @ =gUnknown_03005D10\n\ + ldr r4, _0814674C @ =gBagPocketScrollStates\n\ movs r0, 0xC\n\ adds r0, r4\n\ mov r8, r0\n\ @@ -412,7 +419,7 @@ _08146728:\n\ b _08146766\n\ .align 2, 0\n\ _08146748: .4byte gTasks + 0x8\n\ -_0814674C: .4byte gUnknown_03005D10\n\ +_0814674C: .4byte gBagPocketScrollStates\n\ _08146750:\n\ mov r4, r8\n\ ldrb r0, [r4, 0x2]\n\ @@ -487,7 +494,7 @@ static void sub_8146810(s8 berry) asrs r1, r0, 24\n\ cmp r1, 0\n\ ble _08146848\n\ - ldr r0, _08146840 @ =gUnknown_03005D10\n\ + ldr r0, _08146840 @ =gBagPocketScrollStates\n\ adds r4, r0, 0\n\ adds r4, 0xC\n\ ldrb r2, [r0, 0xC]\n\ @@ -504,12 +511,12 @@ static void sub_8146810(s8 berry) movs r0, 0x7\n\ b _0814686E\n\ .align 2, 0\n\ -_08146840: .4byte gUnknown_03005D10\n\ +_08146840: .4byte gBagPocketScrollStates\n\ _08146844:\n\ adds r0, r2, r3\n\ b _0814686E\n\ _08146848:\n\ - ldr r0, _08146868 @ =gUnknown_03005D10\n\ + ldr r0, _08146868 @ =gBagPocketScrollStates\n\ adds r5, r0, 0\n\ adds r5, 0xC\n\ ldrb r2, [r0, 0xC]\n\ @@ -525,7 +532,7 @@ _08146848:\n\ strb r1, [r6, 0xC]\n\ b _08146870\n\ .align 2, 0\n\ -_08146868: .4byte gUnknown_03005D10\n\ +_08146868: .4byte gBagPocketScrollStates\n\ _0814686C:\n\ adds r0, r2, r4\n\ _0814686E:\n\ @@ -538,7 +545,7 @@ _08146870:\n\ ldrb r1, [r0, 0x1]\n\ ldrb r0, [r0]\n\ adds r1, r0\n\ - ldr r0, _081468B0 @ =gUnknown_03005D24\n\ + ldr r0, _081468B0 @ =gCurrentBagPocketItemSlots\n\ ldr r0, [r0]\n\ lsls r1, 2\n\ adds r1, r0\n\ @@ -559,7 +566,7 @@ _08146870:\n\ bx r0\n\ .align 2, 0\n\ _081468AC: .4byte gScriptItemId\n\ -_081468B0: .4byte gUnknown_03005D24\n\ +_081468B0: .4byte gCurrentBagPocketItemSlots\n\ _081468B4: .4byte gUnknown_0203932C\n\ _081468B8: .4byte gSprites\n\ .syntax divided\n"); @@ -571,7 +578,7 @@ static void sub_81468BC(void) sub_81464E4(); // center of berry sprite - gUnknown_0203932C = sub_80A7D8C(gScriptItemId + OFFSET_7B, 56, 64); + gUnknown_0203932C = CreateBerrySprite(gScriptItemId + OFFSET_7B, 56, 64); sub_8146600(gScriptItemId + OFFSET_7B); } diff --git a/src/credits.c b/src/credits.c index 8ec126a41..8c4cfb84d 100644 --- a/src/credits.c +++ b/src/credits.c @@ -250,27 +250,17 @@ static void sub_814395C(void) BuildOamBuffer(); UpdatePaletteFade(); - if (!(gMain.heldKeys & B_BUTTON)) + if ((gMain.heldKeys & B_BUTTON) + && gUnknown_02039324 != 0 + && gTasks[gUnknown_02039322].func == task_a_8143B68) { - return; - } - - if (!gUnknown_02039324) - { - return; - } - - if (gTasks[gUnknown_02039322].func != task_a_8143B68) - { - return; + vblank_8143948(); + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + UpdatePaletteFade(); + gUnknown_02039325 = 1; } - - vblank_8143948(); - RunTasks(); - AnimateSprites(); - BuildOamBuffer(); - UpdatePaletteFade(); - gUnknown_02039325 = 1; } void sub_81439D0(void) @@ -296,9 +286,7 @@ void sub_81439D0(void) while (TRUE) { if (sub_8144ECC(0, taskIdA)) - { break; - } } taskIdC = gTasks[taskIdA].data[TDA_TASK_C_ID]; @@ -344,12 +332,8 @@ void sub_81439D0(void) static void task_a_8143B38(u8 taskIdA) { - if (gPaletteFade.active) - { - return; - } - - gTasks[taskIdA].func = task_a_8143B68; + if (!gPaletteFade.active) + gTasks[taskIdA].func = task_a_8143B68; } static void task_a_8143B68(u8 taskIdA) @@ -389,14 +373,12 @@ static void task_a_8143B68(u8 taskIdA) static void task_a_8143BFC(u8 taskIdA) { - if (gPaletteFade.active) + if (!gPaletteFade.active) { - return; + REG_DISPCNT = 0; + sub_81450AC(taskIdA); + gTasks[taskIdA].func = task_a_80C9BFC; } - - REG_DISPCNT = 0; - sub_81450AC(taskIdA); - gTasks[taskIdA].func = task_a_80C9BFC; } static void task_a_80C9BFC(u8 taskIdA) @@ -405,33 +387,29 @@ static void task_a_80C9BFC(u8 taskIdA) SetVBlankCallback(NULL); - if (!sub_8144ECC(gTasks[taskIdA].data[TDA_7], taskIdA)) + if (sub_8144ECC(gTasks[taskIdA].data[TDA_7], taskIdA)) { - return; - } - - BeginNormalPaletteFade(-1, 0, 16, 0, 0); + BeginNormalPaletteFade(-1, 0, 16, 0, 0); - backup = REG_IME; - REG_IME = 0; - REG_IE |= INTR_FLAG_VBLANK; - REG_IME = backup; - REG_DISPSTAT |= DISPSTAT_VBLANK_INTR; + backup = REG_IME; + REG_IME = 0; + REG_IE |= INTR_FLAG_VBLANK; + REG_IME = backup; + REG_DISPSTAT |= DISPSTAT_VBLANK_INTR; - SetVBlankCallback(vblank_8143948); - gTasks[taskIdA].func = task_a_8143B38; + SetVBlankCallback(vblank_8143948); + gTasks[taskIdA].func = task_a_8143B38; + } } static void task_a_8143CC0(u8 taskIdA) { - if (gPaletteFade.active) + if (!gPaletteFade.active) { - return; + REG_DISPCNT = 0; + sub_81450AC(taskIdA); + gTasks[taskIdA].func = task_a_8143D04; } - - REG_DISPCNT = 0; - sub_81450AC(taskIdA); - gTasks[taskIdA].func = task_a_8143D04; } void task_a_8143D04(u8 taskIdA) @@ -501,13 +479,11 @@ static void task_a_8143EBC(u8 taskIdA) static void task_a_8143F04(u8 taskIdA) { - if (gPaletteFade.active) + if (!gPaletteFade.active) { - return; + sub_81450AC(taskIdA); + gTasks[taskIdA].func = task_a_8143F3C; } - - sub_81450AC(taskIdA); - gTasks[taskIdA].func = task_a_8143F3C; } static void task_a_8143F3C(u8 taskIdA) @@ -547,62 +523,52 @@ static void task_a_8143FDC(u8 taskIdA) static void task_a_8144024(u8 taskIdA) { - if (gPaletteFade.active) + if (!gPaletteFade.active) { - return; - } + sub_81452D0(0x3800, 0); - sub_81452D0(0x3800, 0); - - BeginNormalPaletteFade(-1, 0, 0, 0, 0); - gTasks[taskIdA].data[TDA_0] = 7200; - gTasks[taskIdA].func = task_a_8144080; + BeginNormalPaletteFade(-1, 0, 0, 0, 0); + gTasks[taskIdA].data[TDA_0] = 7200; + gTasks[taskIdA].func = task_a_8144080; + } } static void task_a_8144080(u8 taskIdA) { - if (gPaletteFade.active) + if (!gPaletteFade.active) { - return; - } + if (gTasks[taskIdA].data[TDA_0] == 0) + { + FadeOutBGM(4); + BeginNormalPaletteFade(-1, 8, 0, 16, 0xFFFF); + gTasks[taskIdA].func = task_a_8144114; + return; + } - if (gTasks[taskIdA].data[TDA_0] == 0) - { - FadeOutBGM(4); - BeginNormalPaletteFade(-1, 8, 0, 16, 0xFFFF); - gTasks[taskIdA].func = task_a_8144114; - return; - } + if (gMain.newKeys) + { + FadeOutBGM(4); + BeginNormalPaletteFade(-1, 8, 0, 16, 0xFFFF); + gTasks[taskIdA].func = task_a_8144114; + return; + } - if (gMain.newKeys) - { - FadeOutBGM(4); - BeginNormalPaletteFade(-1, 8, 0, 16, 0xFFFF); - gTasks[taskIdA].func = task_a_8144114; - return; - } + if (gTasks[taskIdA].data[TDA_0] == 7144) + { + FadeOutBGM(8); + } - if (gTasks[taskIdA].data[TDA_0] == 7144) - { - FadeOutBGM(8); - } + if (gTasks[taskIdA].data[TDA_0] == 6840) + m4aSongNumStart(BGM_END); - if (gTasks[taskIdA].data[TDA_0] == 6840) - { - m4aSongNumStart(BGM_END); + gTasks[taskIdA].data[TDA_0] -= 1; } - - gTasks[taskIdA].data[TDA_0] -= 1; } static void task_a_8144114(u8 taskIdA) { - if (gPaletteFade.active) - { - return; - } - - SoftReset(0xFF); + if (!gPaletteFade.active) + SoftReset(0xFF); } static void sub_8144130(void) @@ -639,38 +605,30 @@ static void task_b_81441B8(u8 taskIdB) case 8: case 9: default: - if (gPaletteFade.active) + if (!gPaletteFade.active) { - return; + gTasks[taskIdB].data[TDB_0] = 1; + gTasks[taskIdB].data[TDB_3] = 0x58; + gTasks[gTasks[taskIdB].data[TDB_TASK_A_ID]].data[TDA_14] = 0; + gUnknown_02039320 = 0; } - gTasks[taskIdB].data[TDB_0] = 1; - gTasks[taskIdB].data[TDB_3] = 0x58; - gTasks[gTasks[taskIdB].data[TDB_TASK_A_ID]].data[TDA_14] = 0; - gUnknown_02039320 = 0; return; - case 1: if (gTasks[taskIdB].data[TDB_3] != 0) { gTasks[taskIdB].data[TDB_3] -= 1; return; } - gTasks[taskIdB].data[TDB_0] += 1; return; - case 2: REG_DISPCNT &= ~DISPCNT_BG0_ON; - if (gTasks[gTasks[taskIdB].data[TDB_TASK_A_ID]].func == task_a_8143B68) { if (gTasks[taskIdB].data[TDB_CURRENT_PAGE] < PAGE_COUNT) { - for (i = 0; i < 5; i++) - { sub_8072BD8(gCreditsEntryPointerTable[gTasks[taskIdB].data[TDB_CURRENT_PAGE]][i]->text, 0, 9 + i * 2, 240); - } gTasks[taskIdB].data[TDB_CURRENT_PAGE] += 1; gTasks[taskIdB].data[TDB_0] += 1; @@ -678,36 +636,24 @@ static void task_b_81441B8(u8 taskIdB) gTasks[gTasks[taskIdB].data[TDB_TASK_A_ID]].data[TDA_14] = 1; if (gTasks[gTasks[taskIdB].data[TDB_TASK_A_ID]].data[TDA_13] == 1) - { BeginNormalPaletteFade(0x300, 0, 16, 0, COLOR_LIGHT_GREEN); - } else - { BeginNormalPaletteFade(0x300, 0, 16, 0, COLOR_DARK_GREEN); - } return; } - - gTasks[taskIdB].data[TDB_0] = 10; return; } - gTasks[gTasks[taskIdB].data[TDB_TASK_A_ID]].data[TDA_14] = 0; return; - case 3: REG_DISPCNT |= DISPCNT_BG0_ON; - - if (gPaletteFade.active) + if (!gPaletteFade.active) { - return; + gTasks[taskIdB].data[TDB_3] = UNK_DEFINE_82; + gTasks[taskIdB].data[TDB_0] += 1; } - - gTasks[taskIdB].data[TDB_3] = UNK_DEFINE_82; - gTasks[taskIdB].data[TDB_0] += 1; return; - case 4: if (gTasks[taskIdB].data[TDB_3] != 0) { @@ -720,28 +666,18 @@ static void task_b_81441B8(u8 taskIdB) gTasks[taskIdB].data[TDB_0] += 1; return; } - gTasks[taskIdB].data[TDB_0] += 1; - if (gTasks[gTasks[taskIdB].data[TDB_TASK_A_ID]].data[TDA_13] == 1) - { BeginNormalPaletteFade(0x300, 0, 0, 16, COLOR_LIGHT_GREEN); - } else - { BeginNormalPaletteFade(0x300, 0, 0, 16, COLOR_DARK_GREEN); - } - return; - case 5: - if (gPaletteFade.active) + if (!gPaletteFade.active) { - return; + MenuZeroFillWindowRect(0, 9, 29, 19); + gTasks[taskIdB].data[TDB_0] = 2; } - - MenuZeroFillWindowRect(0, 9, 29, 19); - gTasks[taskIdB].data[TDB_0] = 2; return; case 10: @@ -962,14 +898,11 @@ void task_e_8144934(u8 taskIdE) gTasks[taskIdE].data[TDE_1] = 0x7FFF; } } - sub_8149020(0); break; - case 1: sub_8149020(0); break; - case 2: if (gTasks[taskIdE].data[TDE_1] != 0x7FFF) { @@ -984,7 +917,6 @@ void task_e_8144934(u8 taskIdE) } sub_8149020(1); break; - case 3: if (gTasks[taskIdE].data[TDE_1] != 0x7FFF) { @@ -999,10 +931,8 @@ void task_e_8144934(u8 taskIdE) gTasks[taskIdE].data[TDE_1] += 1; } } - sub_8149020(1); break; - case 4: sub_8149020(2); break; @@ -1024,7 +954,6 @@ static void sub_8144A68(u8 data, u8 taskIdA) gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].data0 = 0; gTasks[taskIdA].data[TDA_0] = sub_8148EC0(0, 0x2000, 0x20, 8); break; - case 1: gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].invisible = 0; gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].invisible = 0; @@ -1036,7 +965,6 @@ static void sub_8144A68(u8 data, u8 taskIdA) gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].data0 = 0; gTasks[taskIdA].data[TDA_0] = sub_8148EC0(0, 0x2000, 0x20, 8); break; - case 2: gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].invisible = 0; gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].invisible = 0; @@ -1048,7 +976,6 @@ static void sub_8144A68(u8 data, u8 taskIdA) gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].data0 = 0; gTasks[taskIdA].data[TDA_0] = sub_8148EC0(1, 0x2000, 0x200, 8); break; - case 3: gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].invisible = 0; gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].invisible = 0; @@ -1060,7 +987,6 @@ static void sub_8144A68(u8 data, u8 taskIdA) gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].data0 = 0; gTasks[taskIdA].data[TDA_0] = sub_8148EC0(1, 0x2000, 0x200, 8); break; - case 4: gSprites[gTasks[taskIdA].data[TDA_PLAYER_CYCLIST]].invisible = 0; gSprites[gTasks[taskIdA].data[TDA_RIVAL_CYCLIST]].invisible = 0; @@ -1087,9 +1013,7 @@ static void sub_8144A68(u8 data, u8 taskIdA) gTasks[gTasks[taskIdA].data[TDA_TASK_C_ID]].data[TDC_4] = 0; if (data == 2) - { gTasks[gTasks[taskIdA].data[TDA_TASK_C_ID]].data[TDC_5] = UNK_DEFINE_45; - } } static bool8 sub_8144ECC(u8 data, u8 taskIdA) @@ -1113,14 +1037,12 @@ static bool8 sub_8144ECC(u8 data, u8 taskIdA) FreeAllSpritePalettes(); gMain.state = 1; break; - case 1: gUnknown_02039358 = 34; gUnknown_0203935A = 0; sub_8148CB0(data); gMain.state += 1; break; - case 2: if (gSaveBlock2.playerGender == MALE) { @@ -1156,17 +1078,14 @@ static bool8 sub_8144ECC(u8 data, u8 taskIdA) gSprites[spriteId].callback = spritecb_rival_8145420; gSprites[spriteId].anims = gSpriteAnimTable_0840CA94; }; - gMain.state += 1; break; - case 3: sub_8144A68(data, taskIdA); sub_8148E90(data); gMain.state = 0; return TRUE; } - return FALSE; } @@ -1199,7 +1118,8 @@ static void sub_81450AC(u8 taskIdA) gUnknown_0203935C = 1; } -static void sub_8145128(u16 arg0, u16 arg1, u16 arg2) { +static void sub_8145128(u16 arg0, u16 arg1, u16 arg2) +{ u16 baseTile; u16 i; @@ -1209,65 +1129,45 @@ static void sub_8145128(u16 arg0, u16 arg1, u16 arg2) { baseTile = (arg2 / 16) << 12; for (i = 0; i < 32 * 32; i++) - { ((u16 *) (VRAM + arg1))[i] = baseTile + 1; - } for (i = 0; i < 21; i++) - { ((u16 *) (VRAM + arg1))[7 * 32 + 4 + i] = i + 2 + baseTile; - } for (i = 0; i < 20; i++) - { ((u16 *) (VRAM + arg1))[9 * 32 + 4 + i] = i + 23 + baseTile; - } for (i = 0; i < 23; i++) - { ((u16 *) (VRAM + arg1))[11 * 32 + 4 + i] = i + 43 + baseTile; - } for (i = 0; i < 12; i++) - { ((u16 *) (VRAM + arg1))[13 * 32 + 4 + i] = i + 66 + baseTile; - } } u16 sub_8145208(u8 arg0) { - u16 out = (arg0 & 0x3F) + 80; if (arg0 == 0xFF) - { return 1; - } if (arg0 & (1 << 7)) - { out |= 1 << 11; - } - if (arg0 & (1 << 6)) - { out |= 1 << 10; - } return out; } -void sub_814524C(u8 arg0[], u8 baseX, u8 baseY, u16 arg3, u16 palette) { +void sub_814524C(u8 arg0[], u8 baseX, u8 baseY, u16 arg3, u16 palette) +{ u8 y, x; - const u16 tileOffset = (palette / 16) << 12; for (y = 0; y < 5; y++) { for (x = 0; x < 3; x++) - { ((u16 *) (VRAM + arg3 + (baseY + y) * 64))[baseX + x] = tileOffset + sub_8145208(arg0[y * 3 + x]); - } } } @@ -1307,37 +1207,26 @@ static void spritecb_player_8145378(struct Sprite *sprite) case 0: StartSpriteAnimIfDifferent(sprite, 0); break; - case 1: StartSpriteAnimIfDifferent(sprite, 1); if (sprite->pos1.x > -32) - { sprite->pos1.x -= 1; - } break; - case 2: StartSpriteAnimIfDifferent(sprite, 2); break; - case 3: StartSpriteAnimIfDifferent(sprite, 3); break; - case 4: StartSpriteAnimIfDifferent(sprite, 0); if (sprite->pos1.x > 120) - { sprite->pos1.x -= 1; - } break; - case 5: StartSpriteAnimIfDifferent(sprite, 0); if (sprite->pos1.x > -32) - { sprite->pos1.x -= 1; - } break; } } @@ -1356,49 +1245,31 @@ static void spritecb_rival_8145420(struct Sprite *sprite) sprite->pos2.y = 0; StartSpriteAnimIfDifferent(sprite, 0); break; - case 1: if (sprite->pos1.x > 200) - { StartSpriteAnimIfDifferent(sprite, 1); - } else - { StartSpriteAnimIfDifferent(sprite, 2); - } - if (sprite->pos1.x > -32) - { sprite->pos1.x -= 2; - } - sprite->pos2.y = -gUnknown_0203935A; break; - case 2: sprite->data7 += 1; StartSpriteAnimIfDifferent(sprite, 0); - if ((sprite->data7 & 3) == 0) - { sprite->pos1.x += 1; - } break; - case 3: StartSpriteAnimIfDifferent(sprite, 0); - if (sprite->pos1.x > -32) - { sprite->pos1.x -= 1; - } break; - - } } -void spritecb_81454E0(struct Sprite *sprite) { +void spritecb_81454E0(struct Sprite *sprite) +{ if (gUnknown_0203935C) { DestroySprite(sprite); @@ -1417,7 +1288,6 @@ void spritecb_81454E0(struct Sprite *sprite) { sprite->invisible = FALSE; sprite->data0 = 1; break; - case 1: if (sprite->data2 < 256) { @@ -1432,23 +1302,18 @@ void spritecb_81454E0(struct Sprite *sprite) { { case 1: if ((sprite->data7 & 3) == 0) - { sprite->pos1.y += 1; - } sprite->pos1.x -= 2; break; case 2: break; case 3: if ((sprite->data7 & 3) == 0) - { sprite->pos1.y += 1; - } sprite->pos1.x += 2; break; } break; - case 2: if (sprite->data3 != 0) { @@ -1463,7 +1328,6 @@ void spritecb_81454E0(struct Sprite *sprite) { sprite->data0 += 1; } break; - case 3: if (sprite->data3 != 0) { @@ -1482,13 +1346,11 @@ void spritecb_81454E0(struct Sprite *sprite) { sprite->data0 = 10; } break; - case 10: REG_BLDCNT = 0; REG_BLDALPHA = 0; DestroySprite(sprite); break; - } } @@ -1500,17 +1362,14 @@ static u8 sub_81456B4(u16 species, u16 x, u16 y, u16 position) u8 spriteId2; species = NationalPokedexNumToSpecies(species); - switch (species) { default: personality = 0; break; - case SPECIES_SPINDA: personality = gSaveBlock2.pokedex.spindaPersonality; break; - case SPECIES_UNOWN: personality = gSaveBlock2.pokedex.unownPersonality; break; @@ -1562,7 +1421,8 @@ void spritecb_814580C(struct Sprite *sprite) sprite->pos1.y = gSprites[sprite->data0].pos1.y; } -static void sub_81458DC(void) { +static void sub_81458DC(void) +{ struct Unk201C000 *unk201C000 = &ewram1c000; u16 starter = SpeciesToNationalPokedexNum(GetStarterPokemon(VarGet(VAR_FIRST_POKE))); u16 seenTypesCount; @@ -1580,19 +1440,13 @@ static void sub_81458DC(void) { } for (dexNum = seenTypesCount; dexNum < 386; dexNum++) - { unk201C000->unk90[dexNum] = 0; - } unk201C000->unk394 = seenTypesCount; if (unk201C000->unk394 < POKEMON_TILE_COUNT) - { unk201C000->unk8E = seenTypesCount; - } else - { unk201C000->unk8E = POKEMON_TILE_COUNT; - } j = 0; do @@ -1625,7 +1479,6 @@ static void sub_81458DC(void) { } else { - for (dexNum = 0; unk201C000->unk0[dexNum] != starter && dexNum < POKEMON_TILE_COUNT; dexNum++); if (dexNum < unk201C000->unk8E - 1) @@ -1634,7 +1487,9 @@ static void sub_81458DC(void) { unk201C000->unk0[POKEMON_TILE_COUNT - 1] = starter; } else + { unk201C000->unk0[POKEMON_TILE_COUNT - 1] = starter; + } } unk201C000->unk8E = POKEMON_TILE_COUNT; } diff --git a/src/data/item_descriptions_de.h b/src/data/item_descriptions_de.h new file mode 100644 index 000000000..ba1147f9b --- /dev/null +++ b/src/data/item_descriptions_de.h @@ -0,0 +1,1392 @@ +static const u8 gItemDescription_MasterBall[] = _( + "Der beste BALL.\n" + "Fängt das POKéMON\n" + "garantiert."); + +static const u8 gItemDescription_UltraBall[] = _( + "BALL mit hoher Er-\n" + "folgsquote. Besser\n" + "als ein SUPERBALL."); + +static const u8 gItemDescription_GreatBall[] = _( + "BALL mit guter Er-\n" + "folgsquote. Besser\n" + "als ein POKéBALL."); + +static const u8 gItemDescription_PokeBall[] = _( + "Damit fängst\n" + "du wilde\n" + "POKéMON."); + +static const u8 gItemDescription_SafariBall[] = _( + "Ein BALL, der nur\n" + "in der SAFARI-ZONE\n" + "eingesetzt wird."); + +static const u8 gItemDescription_NetBall[] = _( + "BALL fängt POKéMON\n" + "des Typs WASSER\n" + "und KÄFER besser."); + +static const u8 gItemDescription_DiveBall[] = _( + "BALL fängt besser\n" + "POKéMON auf\n" + "dem Meeresgrund."); + +static const u8 gItemDescription_NestBall[] = _( + "BALL mit höherer\n" + "Erfolgsquote bei\n" + "schwachen POKéMON."); + +static const u8 gItemDescription_RepeatBall[] = _( + "BALL fängt besser\n" + "bereits gefangene\n" + "POKéMON."); + +static const u8 gItemDescription_TimerBall[] = _( + "BALL wird effekti-\n" + "ver, je länger der\n" + "Kampf dauert."); + +static const u8 gItemDescription_LuxuryBall[] = _( + "Behaglicher BALL,\n" + "der POKéMON\n" + "freundlicher macht."); + +static const u8 gItemDescription_PremierBall[] = _( + "Seltener BALL, als\n" + "Reminiszenz an ir-\n" + "gendein Ereignis."); + +static const u8 gItemDescription_Potion[] = _( + "Füllt die KP eines\n" + "POKéMON um\n" + "20 Punkte auf."); + +static const u8 gItemDescription_Antidote[] = _( + "Heilt Vergiftungen\n" + "bei POKéMON."); + +static const u8 gItemDescription_BurnHeal[] = _( + "Heilt Verbrennun-\n" + "gen bei POKéMON."); + +static const u8 gItemDescription_IceHeal[] = _( + "Taut POKéMON\n" + "wieder auf."); + +static const u8 gItemDescription_Awakening[] = _( + "Weckt schlafendes\n" + "POKéMON auf."); + +static const u8 gItemDescription_ParalyzeHeal[] = _( + "Heilt Paralyse\n" + "eines POKéMON."); + +static const u8 gItemDescription_FullRestore[] = _( + "Stellt KP und\n" + "Status eines\n" + "POKéMON wieder her."); + +static const u8 gItemDescription_MaxPotion[] = _( + "Füllt die KP\n" + "vollständig auf."); + +static const u8 gItemDescription_HyperPotion[] = _( + "Füllt die KP eines\n" + "POKéMON um\n" + "200 Punkte auf."); + +static const u8 gItemDescription_SuperPotion[] = _( + "Füllt die KP eines\n" + "POKéMON um\n" + "50 Punkte auf."); + +static const u8 gItemDescription_FullHeal[] = _( + "Beseitigt alle\n" + "Statusprobleme\n" + "eines POKéMON."); + +static const u8 gItemDescription_Revive[] = _( + "Belebt POKéMON\n" + "und füllt die KP zur\n" + "Hälfte wieder auf."); + +static const u8 gItemDescription_MaxRevive[] = _( + "Belebt POKéMON\n" + "und füllt KP voll-\n" + "ständig wieder auf."); + +static const u8 gItemDescription_FreshWater[] = _( + "Ein stilles Wasser,\n" + "das die KP um 50\n" + "Punkte auffüllt."); + +static const u8 gItemDescription_SodaPop[] = _( + "Ein Mineralwasser,\n" + "das die KP um 60\n" + "Punkte auffüllt."); + +static const u8 gItemDescription_Lemonade[] = _( + "Ein süßes Getränk,\n" + "das die KP um 80\n" + "Punkte auffüllt."); + +static const u8 gItemDescription_MoomooMilk[] = _( + "Vitaminreiche Milch,\n" + "die die KP um 100\n" + "Punkte auffüllt."); + +static const u8 gItemDescription_EnergyPowder[] = _( + "Ein bitteres Pulver,\n" + "das die KP um\n" + "50 Punkte auffüllt."); + +static const u8 gItemDescription_EnergyRoot[] = _( + "Eine bittere Wurzel,\n" + "die die KP um 200\n" + "Punkte auffüllt."); + +static const u8 gItemDescription_HealPowder[] = _( + "Ein bitteres Pulver,\n" + "das alle Statuspro-\n" + "bleme heilt."); + +static const u8 gItemDescription_RevivalHerb[] = _( + "Ein bitteres Kraut,\n" + "das besiegte\n" + "POKéMON belebt."); + +static const u8 gItemDescription_Ether[] = _( + "Füllt AP einer aus-\n" + "gewählten Attacke\n" + "um 10 Punkte auf."); + +static const u8 gItemDescription_MaxEther[] = _( + "Füllt AP einer aus-\n" + "gewählten Attacke\n" + "vollständig auf."); + +static const u8 gItemDescription_Elixir[] = _( + "Füllt alle AP\n" + "um 10 Punkte auf."); + +static const u8 gItemDescription_MaxElixir[] = _( + "Füllt alle AP eines\n" + "POKéMON voll-\n" + "ständig auf."); + +static const u8 gItemDescription_LavaCookie[] = _( + "Eine regionale Spe-\n" + "zialität. Heilt alle\n" + "Statusprobleme."); + +static const u8 gItemDescription_BlueFlute[] = _( + "Eine gläserne Flöte,\n" + "die schlafende\n" + "POKéMON aufweckt."); + +static const u8 gItemDescription_YellowFlute[] = _( + "Eine gläserne Flöte,\n" + "die verwirrte\n" + "POKéMON heilt."); + +static const u8 gItemDescription_RedFlute[] = _( + "Eine gläserne Flöte,\n" + "die POKéMON von\n" + "Anziehung heilt."); + +static const u8 gItemDescription_BlackFlute[] = _( + "Eine gläserne Flöte,\n" + "die wilde\n" + "POKéMON abhält."); + +static const u8 gItemDescription_WhiteFlute[] = _( + "Eine gläserne Flöte,\n" + "die wilde\n" + "POKéMON anzieht."); + +static const u8 gItemDescription_BerryJuice[] = _( + "Reiner Fruchtsaft,\n" + "der die KP um\n" + "20 Punkte auffüllt."); + +static const u8 gItemDescription_SacredAsh[] = _( + "Belebt und\n" + "erfrischt alle\n" + "besiegten POKéMON."); + +static const u8 gItemDescription_ShoalSalt[] = _( + "Salz, das sich tief\n" + "in der KÜSTEN- \n" + "HÖHLE befand."); + +static const u8 gItemDescription_ShoalShell[] = _( + "Muschelschale, die\n" + "sich in der KÜSTEN- \n" + "HÖHLE befand."); + +static const u8 gItemDescription_RedShard[] = _( + "Scherbe eines\n" + "antiken Relikts\n" + "von geringem Wert."); + +static const u8 gItemDescription_BlueShard[] = _( + "Scherbe eines\n" + "antiken Relikts\n" + "von geringem Wert."); + +static const u8 gItemDescription_YellowShard[] = _( + "Scherbe eines\n" + "antiken Relikts\n" + "von geringem Wert."); + +static const u8 gItemDescription_GreenShard[] = _( + "Scherbe eines\n" + "antiken Relikts\n" + "von geringem Wert."); + +static const u8 gItemDescription_HPUp[] = _( + "Hebt die KP\n" + "eines POKéMON."); + +static const u8 gItemDescription_Protein[] = _( + "Hebt den\n" + "ANGR.-Wert\n" + "eines POKéMON."); + +static const u8 gItemDescription_Iron[] = _( + "Hebt den\n" + "VERT.-Wert\n" + "eines POKéMON."); + +static const u8 gItemDescription_Carbos[] = _( + "Hebt den\n" + "INIT.-Wert\n" + "eines POKéMON."); + +static const u8 gItemDescription_Calcium[] = _( + "Hebt den\n" + "SP. ANGR.-Wert\n" + "eines POKéMON."); + +static const u8 gItemDescription_RareCandy[] = _( + "Hebt den Level\n" + "eines POKéMON\n" + "um eins an."); + +static const u8 gItemDescription_PPUp[] = _( + "Hebt die maximale\n" + "Anzahl der AP\n" + "einer Attacke."); + +static const u8 gItemDescription_Zinc[] = _( + "Hebt den\n" + "SP. VERT.-Wert\n" + "eines POKéMON."); + +static const u8 gItemDescription_PPMax[] = _( + "Maximiert die\n" + "Anzahl der AP\n" + "einer Attacke."); + +static const u8 gItemDescription_GuardSpec[] = _( + "Statusänderung\n" + "wird für einen\n" + "Kampf verhindert."); + +static const u8 gItemDescription_DireHit[] = _( + "Hebt die\n" + "Volltrefferquote\n" + "für einen Kampf."); + +static const u8 gItemDescription_XAttack[] = _( + "Hebt den\n" + "ANGR.-Wert\n" + "für einen Kampf."); + +static const u8 gItemDescription_XDefend[] = _( + "Hebt den\n" + "VERT.-Wert\n" + "für einen Kampf."); + +static const u8 gItemDescription_XSpeed[] = _( + "Hebt den\n" + "INIT.-Wert\n" + "für einen Kampf."); + +static const u8 gItemDescription_XAccuracy[] = _( + "Hebt die\n" + "GENAUIGKEIT\n" + "für einen Kampf."); + +static const u8 gItemDescription_XSpecial[] = _( + "Hebt den\n" + "SP. ANGR.-Wert\n" + "für einen Kampf."); + +static const u8 gItemDescription_PokeDoll[] = _( + "Ermöglicht Flucht\n" + "im Kampf gegen\n" + "wilde POKéMON."); + +static const u8 gItemDescription_FluffyTail[] = _( + "Entfliehe damit\n" + "jedem Kampf mit ei-\n" + "nem wilden POKéMON."); + +static const u8 gItemDescription_SuperRepel[] = _( + "Hält 200 Schritte\n" + "lang schwache,\n" + "wilde POKéMON ab."); + +static const u8 gItemDescription_MaxRepel[] = _( + "Hält 250 Schritte\n" + "lang schwache,\n" + "wilde POKéMON ab."); + +static const u8 gItemDescription_EscapeRope[] = _( + "Ermöglicht die\n" + "Flucht aus Höhlen\n" + "oder Ähnlichem."); + +static const u8 gItemDescription_Repel[] = _( + "Hält 100 Schritte\n" + "lang schwache,\n" + "wilde POKéMON ab."); + +static const u8 gItemDescription_SunStone[] = _( + "Löst bei bestimm-\n" + "ten POKéMON die\n" + "Entwicklung aus."); + +static const u8 gItemDescription_MoonStone[] = _( + "Löst bei bestimm-\n" + "ten POKéMON die\n" + "Entwicklung aus."); + +static const u8 gItemDescription_FireStone[] = _( + "Löst bei bestimm-\n" + "ten POKéMON die\n" + "Entwicklung aus."); + +static const u8 gItemDescription_ThunderStone[] = _( + "Löst bei bestimm-\n" + "ten POKéMON die\n" + "Entwicklung aus."); + +static const u8 gItemDescription_WaterStone[] = _( + "Löst bei bestimm-\n" + "ten POKéMON die\n" + "Entwicklung aus."); + +static const u8 gItemDescription_LeafStone[] = _( + "Löst bei bestimm-\n" + "ten POKéMON die\n" + "Entwicklung aus."); + +static const u8 gItemDescription_TinyMushroom[] = _( + "Ein gemeiner\n" + "Pilz von \n" + "geringem Wert."); + +static const u8 gItemDescription_BigMushroom[] = _( + "Ein seltener\n" + "Pilz von \n" + "hohem Wert."); + +static const u8 gItemDescription_Pearl[] = _( + "Eine hübsche Perle\n" + "von geringem Wert."); + +static const u8 gItemDescription_BigPearl[] = _( + "Schöne, große Per-\n" + "le, die einen hohen\n" + "Preis erzielen kann."); + +static const u8 gItemDescription_Stardust[] = _( + "Schöner, roter\n" + "Sand, der von\n" + "großem Wert ist."); + +static const u8 gItemDescription_StarPiece[] = _( + "Roter Edelstein,\n" + "der einen hohen\n" + "Preis erzielen kann."); + +static const u8 gItemDescription_Nugget[] = _( + "Ein Barren aus pu-\n" + "rem Gold, der von\n" + "großem Wert ist."); + +static const u8 gItemDescription_HeartScale[] = _( + "Hübsche Schuppe,\n" + "höchst begehrt\n" + "bei Sammlern."); + +static const u8 gItemDescription_OrangeMail[] = _( + "BRIEF (Tragen) mit \n" + "ZIGZACHS-\n" + "Aufdruck."); + +static const u8 gItemDescription_HarborMail[] = _( + "BRIEF (Tragen) mit \n" + "WINGULL-\n" + "Aufdruck."); + +static const u8 gItemDescription_GlitterMail[] = _( + "BRIEF (Tragen) mit \n" + "PIKACHU-\n" + "Aufdruck."); + +static const u8 gItemDescription_MechMail[] = _( + "BRIEF (Tragen) mit \n" + "MAGNETILO-\n" + "Aufdruck."); + +static const u8 gItemDescription_WoodMail[] = _( + "BRIEF (Tragen) mit \n" + "BUMMELZ-\n" + "Aufdruck."); + +static const u8 gItemDescription_WaveMail[] = _( + "BRIEF (Tragen) mit \n" + "WAILMER-\n" + "Aufdruck."); + +static const u8 gItemDescription_BeadMail[] = _( + "BRIEF mit Abbildung\n" + "des POKéMON, das\n" + "ihn trägt."); + +static const u8 gItemDescription_ShadowMail[] = _( + "BRIEF (Tragen) mit \n" + "ZWIRRLICHT-\n" + "Aufdruck."); + +static const u8 gItemDescription_TropicMail[] = _( + "BRIEF (Tragen) mit \n" + "BLUBELLA-\n" + "Aufdruck."); + +static const u8 gItemDescription_DreamMail[] = _( + "BRIEF mit Abbildung\n" + "des POKéMON, das\n" + "ihn trägt."); + +static const u8 gItemDescription_FabMail[] = _( + "BRIEF (Tragen) mit \n" + "edlem Aufdruck."); + +static const u8 gItemDescription_RetroMail[] = _( + "BRIEF mit den Ab-\n" + "bildungen dreier\n" + "POKéMON-Gesichter."); + +static const u8 gItemDescription_CheriBerry[] = _( + "Item (Tragen) be-\n" + "wirkt Selbstheilung\n" + "bei Paralyse."); + +static const u8 gItemDescription_ChestoBerry[] = _( + "Item (Tragen)\n" + "weckt schlafendes\n" + "POKéMON im Kampf."); + +static const u8 gItemDescription_PechaBerry[] = _( + "Item (Tragen) be-\n" + "wirkt Selbstheilung\n" + "bei Vergiftung."); + +static const u8 gItemDescription_RawstBerry[] = _( + "Item (Tragen) be-\n" + "wirkt Selbstheilung\n" + "bei Verbrennung."); + +static const u8 gItemDescription_AspearBerry[] = _( + "Item (Tragen) be-\n" + "wirkt Selbstheilung\n" + "bei Frost."); + +static const u8 gItemDescription_LeppaBerry[] = _( + "Item (Tragen) füllt\n" + "AP im Kampf um\n" + "10 Punkte auf."); + +static const u8 gItemDescription_OranBerry[] = _( + "Item (Tragen) füllt\n" + "KP im Kampf um\n" + "10 Punkte auf."); + +static const u8 gItemDescription_PersimBerry[] = _( + "Item (Tragen) be-\n" + "wirkt Selbstheilung\n" + "bei Verwirrung."); + +static const u8 gItemDescription_LumBerry[] = _( + "Item (Tragen) be-\n" + "wirkt Selbstheilung\n" + "bei Statusproblem."); + +static const u8 gItemDescription_SitrusBerry[] = _( + "Item (Tragen) füllt\n" + "KP im Kampf um\n" + "30 Punkte auf."); + +static const u8 gItemDescription_FigyBerry[] = _( + "Item (Tragen) füllt\n" + "im Kampf KP auf, be-\n" + "wirkt evtl. Verwirr."); + +static const u8 gItemDescription_WikiBerry[] = _( + "Item (Tragen) füllt\n" + "KP auf, bewirkt\n" + "evtl. Verwirrung."); + +static const u8 gItemDescription_MagoBerry[] = _( + "Item (Tragen) füllt\n" + "KP auf, bewirkt\n" + "evtl. Verwirrung."); + +static const u8 gItemDescription_AguavBerry[] = _( + "Item (Tragen) füllt\n" + "KP auf, bewirkt\n" + "evtl. Verwirrung."); + +static const u8 gItemDescription_IapapaBerry[] = _( + "Item (Tragen) füllt\n" + "KP auf, bewirkt\n" + "evtl. Verwirrung."); + +static const u8 gItemDescription_RazzBerry[] = _( + "Säe {POKEBLOCK}-Zutat\n" + "in Lehmboden, damit\n" + "HIMMIH wächst."); + +static const u8 gItemDescription_BlukBerry[] = _( + "Säe {POKEBLOCK}-Zutat\n" + "in Lehmboden, damit\n" + "MORB wächst."); + +static const u8 gItemDescription_NanabBerry[] = _( + "Säe {POKEBLOCK}-Zutat\n" + "in Lehmboden, damit\n" + "NANAB wächst."); + +static const u8 gItemDescription_WepearBerry[] = _( + "Säe {POKEBLOCK}-Zutat\n" + "in Lehmboden, damit\n" + "NIRBE wächst."); + +static const u8 gItemDescription_PinapBerry[] = _( + "Säe {POKEBLOCK}-Zutat\n" + "in Lehmboden, damit\n" + "SANANA wächst."); + +static const u8 gItemDescription_PomegBerry[] = _( + "Säe {POKEBLOCK}-Zutat\n" + "in Lehmboden, damit\n" + "GRANA wächst."); + +static const u8 gItemDescription_KelpsyBerry[] = _( + "Säe {POKEBLOCK}-Zutat\n" + "in Lehmboden, damit\n" + "SETANG wächst."); + +static const u8 gItemDescription_QualotBerry[] = _( + "Säe {POKEBLOCK}-Zutat\n" + "in Lehmboden, damit\n" + "QUALOT wächst."); + +static const u8 gItemDescription_HondewBerry[] = _( + "Säe {POKEBLOCK}-Zutat\n" + "in Lehmboden, damit\n" + "HONMEL wächst."); + +static const u8 gItemDescription_GrepaBerry[] = _( + "Säe {POKEBLOCK}-Zutat\n" + "in Lehmboden, damit\n" + "LABRUS wächst."); + +static const u8 gItemDescription_TamatoBerry[] = _( + "Säe {POKEBLOCK}-Zutat\n" + "in Lehmboden, damit\n" + "TAMOT wächst."); + +static const u8 gItemDescription_CornnBerry[] = _( + "Säe {POKEBLOCK}-Zutat\n" + "in Lehmboden, damit\n" + "SAIM wächst."); + +static const u8 gItemDescription_MagostBerry[] = _( + "Säe {POKEBLOCK}-Zutat\n" + "in Lehmboden, damit\n" + "MAGOST wächst."); + +static const u8 gItemDescription_RabutaBerry[] = _( + "Säe {POKEBLOCK}-Zutat\n" + "in Lehmboden, damit\n" + "RABUTA wächst."); + +static const u8 gItemDescription_NomelBerry[] = _( + "Säe {POKEBLOCK}-Zutat\n" + "in Lehmboden, damit\n" + "TRONZI wächst."); + +static const u8 gItemDescription_SpelonBerry[] = _( + "Säe {POKEBLOCK}-Zutat\n" + "in Lehmboden, damit\n" + "KIWAN wächst."); + +static const u8 gItemDescription_PamtreBerry[] = _( + "Säe {POKEBLOCK}-Zutat\n" + "in Lehmboden, damit\n" + "PALLM wächst."); + +static const u8 gItemDescription_WatmelBerry[] = _( + "Säe {POKEBLOCK}-Zutat\n" + "in Lehmboden, damit\n" + "WASMEL wächst."); + +static const u8 gItemDescription_DurinBerry[] = _( + "Säe {POKEBLOCK}-Zutat\n" + "in Lehmboden, damit\n" + "DURIN wächst."); + +static const u8 gItemDescription_BelueBerry[] = _( + "Säe {POKEBLOCK}-Zutat\n" + "in Lehmboden, damit\n" + "MYRTIL wächst."); + +static const u8 gItemDescription_LiechiBerry[] = _( + "Item (Tragen) hebt\n" + "ANGR.-Wert in einer\n" + "Notlage."); + +static const u8 gItemDescription_GanlonBerry[] = _( + "Item (Tragen) hebt\n" + "VERT.-Wert in einer\n" + "Notlage."); + +static const u8 gItemDescription_SalacBerry[] = _( + "Item (Tragen) hebt\n" + "INIT.-Wert in einer\n" + "Notlage."); + +static const u8 gItemDescription_PetayaBerry[] = _( + "Item (Tragen) hebt\n" + "SP. ANGR.-Wert\n" + "in einer Notlage."); + +static const u8 gItemDescription_ApicotBerry[] = _( + "Item (Tragen) hebt\n" + "SP. VERT.-Wert\n" + "in einer Notlage."); + +static const u8 gItemDescription_LansatBerry[] = _( + "Item (Tragen) hebt\n" + "Volltrefferquote\n" + "in einer Notlage."); + +static const u8 gItemDescription_StarfBerry[] = _( + "Item (Tragen) hebt\n" + "einen Statuswert\n" + "in einer Notlage."); + +static const u8 gItemDescription_EnigmaBerry[] = _( + "Säe {POKEBLOCK}-Zutat\n" + "in Lehmboden, damit\n" + "Mysterium wächst."); + +static const u8 gItemDescription_BrightPowder[] = _( + "Item (Tragen)\n" + "senkt die Genauig-\n" + "keit des Gegners."); + +static const u8 gItemDescription_WhiteHerb[] = _( + "Item (Tragen) hebt\n" + "jede Statusverän-\n" + "derung auf."); + +static const u8 gItemDescription_MachoBrace[] = _( + "Item (Tragen) för-\n" + "dert Wachstum,\n" + "aber senkt INIT."); + +static const u8 gItemDescription_ExpShare[] = _( + "Item (Tragen) teilt\n" + "die Kampf-EP."); + +static const u8 gItemDescription_QuickClaw[] = _( + "Item (Tragen) hebt\n" + "die Erstschlag-\n" + "quote."); + +static const u8 gItemDescription_SootheBell[] = _( + "Item (Tragen) be-\n" + "sänftigt und för-\n" + "dert Sympathie."); + +static const u8 gItemDescription_MentalHerb[] = _( + "Item (Tragen) er-\n" + "löst POKéMON von\n" + "der Anziehung."); + +static const u8 gItemDescription_ChoiceBand[] = _( + "Stärkt eine Atta-\n" + "cke. Aber nur diese\n" + "ist einsetzbar."); + +static const u8 gItemDescription_KingsRock[] = _( + "Item (Tragen) kann\n" + "Gegner zurück-\n" + "weichen lassen."); + +static const u8 gItemDescription_SilverPowder[] = _( + "Item (Tragen) ver-\n" + "bessert KÄFER-\n" + "Attacken."); + +static const u8 gItemDescription_AmuletCoin[] = _( + "Doppelter Geldbe-\n" + "trag, wenn Träger \n" + "am Kampf teilnimmt."); + +static const u8 gItemDescription_CleanseTag[] = _( + "Item (Tragen) kann\n" + "wilde POKéMON\n" + "abhalten."); + +static const u8 gItemDescription_SoulDew[] = _( + "Item (Tragen) hebt\n" + "SP.ANG & SP.VER von\n" + "LATIOS & LATIAS."); + +static const u8 gItemDescription_DeepSeaTooth[] = _( + "Item (Tragen) hebt\n" + "SP. ANGR. von\n" + "PERLU."); + +static const u8 gItemDescription_DeepSeaScale[] = _( + "Item (Tragen) hebt\n" + "SP. VERT. von\n" + "PERLU."); + +static const u8 gItemDescription_SmokeBall[] = _( + "Item (Tragen) er-\n" + "möglicht Flucht vor\n" + "wilden POKéMON."); + +static const u8 gItemDescription_Everstone[] = _( + "Wundersamer Stein\n" + "zum Tragen. Bewirkt\n" + "Entwicklungsstopp."); + +static const u8 gItemDescription_FocusBand[] = _( + "Item (Tragen) kann\n" + "manchmal K.O.\n" + "verhindern."); + +static const u8 gItemDescription_LuckyEgg[] = _( + "Item (Tragen)\n" + "erhöht im Kampf er-\n" + "haltene Extra-EP."); + +static const u8 gItemDescription_ScopeLens[] = _( + "Item (Tragen)\n" + "erhöht die\n" + "Volltrefferquote."); + +static const u8 gItemDescription_MetalCoat[] = _( + "Item (Tragen)\n" + "verstärkt STAHL-\n" + "Attacken."); + +static const u8 gItemDescription_Leftovers[] = _( + "Item (Tragen) füllt\n" + "im Kampf langsam\n" + "KP wieder auf."); + +static const u8 gItemDescription_DragonScale[] = _( + "Seltsame Haut zum\n" + "Tragen für POKéMON\n" + "des Typs DRACHEN."); + +static const u8 gItemDescription_LightBall[] = _( + "Item (Tragen)\n" + "erhöht PIKACHUS\n" + "SP. ANGR."); + +static const u8 gItemDescription_SoftSand[] = _( + "Item (Tragen)\n" + "verstärkt BODEN-\n" + "Attacken."); + +static const u8 gItemDescription_HardStone[] = _( + "Item (Tragen)\n" + "verstärkt GESTEIN-\n" + "Attacken."); + +static const u8 gItemDescription_MiracleSeed[] = _( + "Item (Tragen)\n" + "verstärkt PFLAN-\n" + "ZEN-Attacken."); + +static const u8 gItemDescription_BlackGlasses[] = _( + "Item (Tragen)\n" + "verstärkt UNLICHT-\n" + "Attacken."); + +static const u8 gItemDescription_BlackBelt[] = _( + "Item (Tragen)\n" + "verstärkt KAMPF-\n" + "Attacken."); + +static const u8 gItemDescription_Magnet[] = _( + "Item (Tragen)\n" + "verstärkt ELEKTRO-\n" + "Attacken."); + +static const u8 gItemDescription_MysticWater[] = _( + "Item (Tragen)\n" + "verstärkt WASSER-\n" + "Attacken."); + +static const u8 gItemDescription_SharpBeak[] = _( + "Item (Tragen)\n" + "verstärkt FLUG-\n" + "Attacken."); + +static const u8 gItemDescription_PoisonBarb[] = _( + "Item (Tragen)\n" + "verstärkt GIFT-\n" + "Attacken."); + +static const u8 gItemDescription_NeverMeltIce[] = _( + "Item (Tragen)\n" + "verstärkt EIS-\n" + "Attacken."); + +static const u8 gItemDescription_SpellTag[] = _( + "Item (Tragen)\n" + "verstärkt GEIST-\n" + "Attacken."); + +static const u8 gItemDescription_TwistedSpoon[] = _( + "Item (Tragen)\n" + "verstärkt PSYCHO-\n" + "Attacken."); + +static const u8 gItemDescription_Charcoal[] = _( + "Item (Tragen)\n" + "verstärkt FEUER-\n" + "Attacken."); + +static const u8 gItemDescription_DragonFang[] = _( + "Item (Tragen)\n" + "verstärkt DRACHEN-\n" + "Attacken."); + +static const u8 gItemDescription_SilkScarf[] = _( + "Item (Tragen)\n" + "verstärkt NORMAL-\n" + "Attacken."); + +static const u8 gItemDescription_UpGrade[] = _( + "Eine mysteriöse\n" + "Box der SILPH CO."); + +static const u8 gItemDescription_ShellBell[] = _( + "Item (Tragen) füllt\n" + "im Kampf langsam \n" + "KP wieder auf."); + +static const u8 gItemDescription_SeaIncense[] = _( + "Item (Tragen)\n" + "verstärkt WASSER-\n" + "Attacken."); + +static const u8 gItemDescription_LaxIncense[] = _( + "Item (Tragen)\n" + "senkt Genauigkeit\n" + "des Gegners."); + +static const u8 gItemDescription_LuckyPunch[] = _( + "Item (Tragen)\n" + "erhöht CHANEIRAS\n" + "Volltrefferquote."); + +static const u8 gItemDescription_MetalPowder[] = _( + "Item (Tragen)\n" + "erhöht VERT.-Wert\n" + "von DITTO."); + +static const u8 gItemDescription_ThickClub[] = _( + "Irgendeine Art\n" + "Knochen von\n" + "geringem Wert."); + +static const u8 gItemDescription_Stick[] = _( + "Gemeiner Lauch,\n" + "der nur von\n" + "geringem Wert ist."); + +static const u8 gItemDescription_RedScarf[] = _( + "Item (Tragen) hebt\n" + "COOL.-Wert für den\n" + "WETTBEWERB."); + +static const u8 gItemDescription_BlueScarf[] = _( + "Item (Tragen) hebt\n" + "SCHÖN.-Wert für den\n" + "WETTBEWERB."); + +static const u8 gItemDescription_PinkScarf[] = _( + "Item (Tragen) hebt\n" + "ANMUT-Wert für den\n" + "WETTBEWERB."); + +static const u8 gItemDescription_GreenScarf[] = _( + "Item (Tragen) hebt\n" + "KLUG.-Wert für den\n" + "WETTBEWERB."); + +static const u8 gItemDescription_YellowScarf[] = _( + "Item (Tragen) hebt\n" + "STÄRKE-Wert für\n" + "den WETTBEWERB."); + +static const u8 gItemDescription_MachBike[] = _( + "Klapprad, das dop-\n" + "pelt so schnell ist\n" + "wie ein Fußgänger."); + +static const u8 gItemDescription_CoinCase[] = _( + "Kann bis zu 9.999\n" + "MÜNZEN aufnehmen."); + +static const u8 gItemDescription_Itemfinder[] = _( + "Ein Gerät, das ver-\n" + "borgene Items via \n" + "Schallwellen ortet."); + +static const u8 gItemDescription_OldRod[] = _( + "Damit kannst du in\n" + "jedem Gewässer\n" + "POKéMON angeln."); + +static const u8 gItemDescription_GoodRod[] = _( + "Eine recht gute\n" + "Angel zum\n" + "POKéMON-Fischen."); + +static const u8 gItemDescription_SuperRod[] = _( + "Die beste Angel,\n" + "um nach POKéMON\n" + "zu fischen."); + +static const u8 gItemDescription_SSTicket[] = _( + "Ein Ticket zur\n" + "Fahrt auf\n" + "einer Fähre."); + +static const u8 gItemDescription_ContestPass[] = _( + "Ausweis zur Teil-\n" + "nahme an POKéMON- \n" + "WETTBEWERBEN."); + +static const u8 gItemDescription_WailmerPail[] = _( + "Ein Gegenstand zum\n" + "Gießen von Pflan-\n" + "zen wie BEEREN."); + +static const u8 gItemDescription_DevonGoods[] = _( + "Päckchen, das Ma-\n" + "schinenteile von\n" + "DEVON enthält."); + +static const u8 gItemDescription_SootSack[] = _( + "Beutel zum Sammeln\n" + "und Aufbewahren\n" + "von Vulkanasche."); + +static const u8 gItemDescription_BasementKey[] = _( + "Schlüssel für NEU\n" + "MALVENFROH unter\n" + "MALVENFROH CITY."); + +static const u8 gItemDescription_AcroBike[] = _( + "Klapprad ermög-\n" + "licht Sprünge und\n" + "Wheelies."); + +static const u8 gItemDescription_PokeblockCase[] = _( + "Box für {POKEBLOCK},\n" + "die im BEERENMIXER\n" + "hergestellt werden."); + +static const u8 gItemDescription_Letter[] = _( + "Brief an TROY\n" + "vom PRÄSIDENTEN\n" + "der DEVON CORP."); + +static const u8 gItemDescription_EonTicket[] = _( + "Bootsticket zu\n" + "einer fernen Insel\n" + "im Süden."); + +static const u8 gItemDescription_RedOrb[] = _( + "Rot glühende Kugel,\n" + "die eine uralte\n" + "Macht bergen soll."); + +static const u8 gItemDescription_BlueOrb[] = _( + "Blau glühende Kugel,\n" + "die eine uralte\n" + "Macht bergen soll."); + +static const u8 gItemDescription_Scanner[] = _( + "Ein Gerät, das\n" + "im SCHIFFSWRACK\n" + "gefunden wurde."); + +static const u8 gItemDescription_GoGoggles[] = _( + "Schicke Brille, die\n" + "die Augen vor Sand-\n" + "stürmen schützt."); + +static const u8 gItemDescription_Meteorite[] = _( + "Meteorit. Fundort:\n" + "METEORFÄLLE."); + +static const u8 gItemDescription_Room1Key[] = _( + "Schlüssel zur Tür\n" + "einer Kabine auf\n" + "dem SCHIFFSWRACK."); + +static const u8 gItemDescription_Room2Key[] = _( + "Schlüssel zur Tür\n" + "einer Kabine auf\n" + "dem SCHIFFSWRACK."); + +static const u8 gItemDescription_Room4Key[] = _( + "Schlüssel zur Tür\n" + "einer Kabine auf\n" + "dem SCHIFFSWRACK."); + +static const u8 gItemDescription_Room6Key[] = _( + "Schlüssel zur Tür\n" + "einer Kabine auf\n" + "dem SCHIFFSWRACK."); + +static const u8 gItemDescription_StorageKey[] = _( + "Schlüssel zum\n" + "Lagerraum auf\n" + "dem SCHIFFSWRACK."); + +static const u8 gItemDescription_RootFossil[] = _( + "Fossil eines ural-\n" + "ten POKéMON, das in\n" + "der Tiefsee lebte."); + +static const u8 gItemDescription_ClawFossil[] = _( + "Fossil eines ural-\n" + "ten POKéMON, das in\n" + "der Tiefsee lebte."); + +static const u8 gItemDescription_DevonScope[] = _( + "Gerät von DEVON, \n" + "das unsichtbare\n" + "POKéMON entlarvt."); + +static const u8 gItemDescription_TM01[] = _( + "Stark. POKéMON er-\n" + "schrickt vielleicht\n" + "bei gegn. Attacke."); + +static const u8 gItemDescription_TM02[] = _( + "Gegner wird mit\n" + "langen, scharfen\n" + "Krallen attackiert."); + +static const u8 gItemDescription_TM03[] = _( + "Eine Ultraschall-\n" + "welle, die den Geg-\n" + "ner verwirren kann."); + +static const u8 gItemDescription_TM04[] = _( + "Verstärkt SP. ANGR.\n" + "und SP. VERT. durch\n" + "Konzentration."); + +static const u8 gItemDescription_TM05[] = _( + "Brüller schlägt Geg-\n" + "ner in die Flucht \n" + "und beendet Kampf."); + +static const u8 gItemDescription_TM06[] = _( + "Vergiftet den Geg-\n" + "ner und schadet \n" + "ihm zunehmend."); + +static const u8 gItemDescription_TM07[] = _( + "Hagelsturm schadet\n" + "allen POKéMON außer\n" + "denen des Typs EIS."); + +static const u8 gItemDescription_TM08[] = _( + "Stärkt den Körper.\n" + "So steigt ANGR.-\n" + "und VERT.-Wert."); + +static const u8 gItemDescription_TM09[] = _( + "Bepflanzt den\n" + "Gegner mit 2 bis 5\n" + "Samen auf einmal."); + +static const u8 gItemDescription_TM10[] = _( + "Die Stärke dieser\n" + "Attacke hängt vom \n" + "jew. POKéMON ab."); + +static const u8 gItemDescription_TM11[] = _( + "Verstärkt FEUER-\n" + "Attacken über \n" + "5 Runden."); + +static const u8 gItemDescription_TM12[] = _( + "Reizt Geg. so, dass\n" + "er nur Angriffs-\n" + "attacken einsetzt."); + +static const u8 gItemDescription_TM13[] = _( + "Eisig kalter Strahl,\n" + "der den Gegner\n" + "einfrieren kann."); + +static const u8 gItemDescription_TM14[] = _( + "Eis- und Schnee- \n" + "Attacke, die Gegner\n" + "einfrieren kann."); + +static const u8 gItemDescription_TM15[] = _( + "Stark, muss sich\n" + "aber in der nächs-\n" + "ten Runde aufladen."); + +static const u8 gItemDescription_TM16[] = _( + "Wand aus Licht, die\n" + "Senkung des SP.\n" + "ANGR. verringert."); + +static const u8 gItemDescription_TM17[] = _( + "Schützt, könnte\n" + "aber bei häufigem\n" + "Einsatz versagen."); + +static const u8 gItemDescription_TM18[] = _( + "Verstärkt WASSER-\n" + "Attacken über\n" + "5 Runden."); + +static const u8 gItemDescription_TM19[] = _( + "Füllt KP um die Hälf-\n" + "te der zugefügten\n" + "Schadenspunkte."); + +static const u8 gItemDescription_TM20[] = _( + "Mystische Macht\n" + "verhindert Status-\n" + "veränderungen."); + +static const u8 gItemDescription_TM21[] = _( + "Je unbeliebter der\n" + "Trainer, desto grö-\n" + "ßer die Wirkung."); + +static const u8 gItemDescription_TM22[] = _( + "Erst wird Sonnen-\n" + "licht absorbiert,\n" + "dann erfolgt Angr."); + +static const u8 gItemDescription_TM23[] = _( + "Schlag mit harter\n" + "Rute. Kann gleichz.\n" + "VERT.-Wert senken."); + +static const u8 gItemDescription_TM24[] = _( + "Starke Elektro-\n" + "Attacke kann\n" + "Paralyse bewirken."); + +static const u8 gItemDescription_TM25[] = _( + "Mächtiger Donner-\n" + "schlag, der Paraly-\n" + "se bewirken kann."); + +static const u8 gItemDescription_TM26[] = _( + "Starkes Beben hat\n" + "keinen Einfluss auf\n" + "fliegende Gegner."); + +static const u8 gItemDescription_TM27[] = _( + "Je beliebter der\n" + "Trainer, desto grö-\n" + "ßer die Wirkung."); + +static const u8 gItemDescription_TM28[] = _( + "Erst gräbt sich An-\n" + "greifer ein, dann\n" + "erfolgt Angriff."); + +static const u8 gItemDescription_TM29[] = _( + "Starke PSYCHO-At-\n" + "tacke, die SP. VERT.\n" + "senken kann."); + +static const u8 gItemDescription_TM30[] = _( + "Dunkler Klumpen,\n" + "der SP. VERT.\n" + "senken kann."); + +static const u8 gItemDescription_TM31[] = _( + "Zerstört Barrieren\n" + "wie SCHUTZSCHILD,\n" + "fügt Schaden zu."); + +static const u8 gItemDescription_TM32[] = _( + "Virtueller Doppel-\n" + "gänger erhöht\n" + "den Flucht-Wert."); + +static const u8 gItemDescription_TM33[] = _( + "Wand aus Licht, die\n" + "physische Atta-\n" + "cken schwächt."); + +static const u8 gItemDescription_TM34[] = _( + "Fügt Gegner einen\n" + "Stromschlag zu,\n" + "der nie verfehlt."); + +static const u8 gItemDescription_TM35[] = _( + "Entfesselt Feuer-\n" + "strahl, der Gegner\n" + "verbrennen kann."); + +static const u8 gItemDescription_TM36[] = _( + "Bewirft Gegner mit\n" + "Matsch, der ihn\n" + "vergiften kann."); + +static const u8 gItemDescription_TM37[] = _( + "Sandsturm trifft\n" + "etliche Runden lang\n" + "die Kämpfenden."); + +static const u8 gItemDescription_TM38[] = _( + "Kraftvolle FEUER-\n" + "Attacke, die Gegner\n" + "verbrennen kann."); + +static const u8 gItemDescription_TM39[] = _( + "Stoppt GESTEIN-\n" + "Attacken. Kann\n" + "INIT.-Wert senken."); + +static const u8 gItemDescription_TM40[] = _( + "Eine extrem schnel-\n" + "le Attacke, die\n" + "unausweichlich ist."); + +static const u8 gItemDescription_TM41[] = _( + "Blockiert gerade\n" + "verwendete Atta-\n" + "cke des Gegners."); + +static const u8 gItemDescription_TM42[] = _( + "Stärkt ANGR.-Wert\n" + "bei Gift, Brand oder\n" + "Paralyse."); + +static const u8 gItemDescription_TM43[] = _( + "Die Umgebung\n" + "beeinflusst die Art\n" + "der Attacke."); + +static const u8 gItemDescription_TM44[] = _( + "POKéMON schläft\n" + "2 Runden. Füllt KP\n" + "und heilt Status."); + +static const u8 gItemDescription_TM45[] = _( + "Erschwert Angriff\n" + "auf Gegner des an-\n" + "deren Geschlechts."); + +static const u8 gItemDescription_TM46[] = _( + "Beim Angriff wird\n" + "Item des Gegners\n" + "evtl. gestohlen."); + +static const u8 gItemDescription_TM47[] = _( + "Den Gegner\n" + "treffen stählerne\n" + "Flügelschläge."); + +static const u8 gItemDescription_TM48[] = _( + "Austausch der\n" + "Fähigkeiten bei der\n" + "nächsten Attacke."); + +static const u8 gItemDescription_TM49[] = _( + "Stiehlt die\n" + "Effekte der gegne-\n" + "rischen Attacke."); + +static const u8 gItemDescription_TM50[] = _( + "Höchste Kraft,\n" + "aber senkt SP.\n" + "ANGR. enorm."); + +static const u8 gItemDescription_HM01[] = _( + "Gegner wird mit\n" + "klingenscharfen\n" + "Krallen attackiert."); + +static const u8 gItemDescription_HM02[] = _( + "PKMN fliegt hoch,\n" + "dann erfolgt rasan-\n" + "ter Luftangriff."); + +static const u8 gItemDescription_HM03[] = _( + "Eine riesige Flut-\n" + "welle ergießt sich\n" + "über dem Gegner."); + +static const u8 gItemDescription_HM04[] = _( + "Den Gegner trifft \n" + "ein energiegelade-\n" + "ner Kraftschlag."); + +static const u8 gItemDescription_HM05[] = _( + "Ein gleißender\n" + "Lichtstrahl, der\n" + "Genau. senken kann."); + +static const u8 gItemDescription_HM06[] = _( + "Steinbrecherische\n" + "Attacke, die VERT.-\n" + "Wert senken kann."); + +static const u8 gItemDescription_HM07[] = _( + "Mächtige Attacke,\n" + "die Wasserfälle\n" + "bezwingbar macht."); + +static const u8 gItemDescription_HM08[] = _( + "PKMN taucht ab,\n" + "dann erfolgt An-\n" + "griff aus der Tiefe."); + +static const u8 gItemDescription_Dummy[] = _(""); diff --git a/src/data/item_descriptions_en.h b/src/data/item_descriptions_en.h new file mode 100644 index 000000000..e07a5fc19 --- /dev/null +++ b/src/data/item_descriptions_en.h @@ -0,0 +1,1392 @@ +static const u8 gItemDescription_MasterBall[] = _( + "The best BALL that\n" + "catches a POKéMON\n" + "without fail."); + +static const u8 gItemDescription_UltraBall[] = _( + "A better BALL with\n" + "a higher catch rate\n" + "than a GREAT BALL."); + +static const u8 gItemDescription_GreatBall[] = _( + "A good BALL with a\n" + "higher catch rate\n" + "than a POKé BALL."); + +static const u8 gItemDescription_PokeBall[] = _( + "A tool used for\n" + "catching wild\n" + "POKéMON."); + +static const u8 gItemDescription_SafariBall[] = _( + "A special BALL that\n" + "is used only in the\n" + "SAFARI ZONE."); + +static const u8 gItemDescription_NetBall[] = _( + "A BALL that works\n" + "well on WATER- and\n" + "BUG-type POKéMON."); + +static const u8 gItemDescription_DiveBall[] = _( + "A BALL that works\n" + "better on POKéMON\n" + "on the ocean floor."); + +static const u8 gItemDescription_NestBall[] = _( + "A BALL that works\n" + "better on weaker\n" + "POKéMON."); + +static const u8 gItemDescription_RepeatBall[] = _( + "A BALL that works\n" + "better on POKéMON\n" + "caught before."); + +static const u8 gItemDescription_TimerBall[] = _( + "More effective as\n" + "more turns are\n" + "taken in battle."); + +static const u8 gItemDescription_LuxuryBall[] = _( + "A cozy BALL that\n" + "makes POKéMON\n" + "more friendly."); + +static const u8 gItemDescription_PremierBall[] = _( + "A rare BALL made\n" + "in commemoration\n" + "of some event."); + +static const u8 gItemDescription_Potion[] = _( + "Restores the HP of\n" + "a POKéMON by\n" + "20 points."); + +static const u8 gItemDescription_Antidote[] = _( + "Heals a poisoned\n" + "POKéMON."); + +static const u8 gItemDescription_BurnHeal[] = _( + "Heals POKéMON\n" + "of a burn."); + +static const u8 gItemDescription_IceHeal[] = _( + "Defrosts a frozen\n" + "POKéMON."); + +static const u8 gItemDescription_Awakening[] = _( + "Awakens a sleeping\n" + "POKéMON."); + +static const u8 gItemDescription_ParalyzeHeal[] = _( + "Heals a paralyzed\n" + "POKéMON."); + +static const u8 gItemDescription_FullRestore[] = _( + "Fully restores the\n" + "HP and status of a\n" + "POKéMON."); + +static const u8 gItemDescription_MaxPotion[] = _( + "Fully restores the\n" + "HP of a POKéMON."); + +static const u8 gItemDescription_HyperPotion[] = _( + "Restores the HP of\n" + "a POKéMON by\n" + "200 points."); + +static const u8 gItemDescription_SuperPotion[] = _( + "Restores the HP of\n" + "a POKéMON by\n" + "50 points."); + +static const u8 gItemDescription_FullHeal[] = _( + "Heals all the status\n" + "problems of one\n" + "POKéMON."); + +static const u8 gItemDescription_Revive[] = _( + "Revives a fainted\n" + "POKéMON with half\n" + "its HP."); + +static const u8 gItemDescription_MaxRevive[] = _( + "Revives a fainted\n" + "POKéMON with all\n" + "its HP."); + +static const u8 gItemDescription_FreshWater[] = _( + "A mineral water\n" + "that restores HP\n" + "by 50 points."); + +static const u8 gItemDescription_SodaPop[] = _( + "A fizzy soda drink\n" + "that restores HP\n" + "by 60 points."); + +static const u8 gItemDescription_Lemonade[] = _( + "A very sweet drink\n" + "that restores HP\n" + "by 80 points."); + +static const u8 gItemDescription_MoomooMilk[] = _( + "A nutritious milk\n" + "that restores HP\n" + "by 100 points."); + +static const u8 gItemDescription_EnergyPowder[] = _( + "A bitter powder\n" + "that restores HP\n" + "by 50 points."); + +static const u8 gItemDescription_EnergyRoot[] = _( + "A bitter root\n" + "that restores HP\n" + "by 200 points."); + +static const u8 gItemDescription_HealPowder[] = _( + "A bitter powder\n" + "that heals all\n" + "status problems."); + +static const u8 gItemDescription_RevivalHerb[] = _( + "A very bitter herb\n" + "that revives a\n" + "fainted POKéMON."); + +static const u8 gItemDescription_Ether[] = _( + "Restores the PP\n" + "of a selected move\n" + "by 10."); + +static const u8 gItemDescription_MaxEther[] = _( + "Fully restores the\n" + "PP of a selected\n" + "move."); + +static const u8 gItemDescription_Elixir[] = _( + "Restores the PP\n" + "of all moves by 10."); + +static const u8 gItemDescription_MaxElixir[] = _( + "Fully restores the\n" + "PP of a POKéMON’s\n" + "moves."); + +static const u8 gItemDescription_LavaCookie[] = _( + "A local specialty\n" + "that heals all\n" + "status problems."); + +static const u8 gItemDescription_BlueFlute[] = _( + "A glass flute that\n" + "awakens sleeping\n" + "POKéMON."); + +static const u8 gItemDescription_YellowFlute[] = _( + "A glass flute that\n" + "snaps POKéMON\n" + "out of confusion."); + +static const u8 gItemDescription_RedFlute[] = _( + "A glass flute that\n" + "snaps POKéMON\n" + "out of attraction."); + +static const u8 gItemDescription_BlackFlute[] = _( + "A glass flute that\n" + "keeps away wild\n" + "POKéMON."); + +static const u8 gItemDescription_WhiteFlute[] = _( + "A glass flute that\n" + "lures wild POKéMON."); + +static const u8 gItemDescription_BerryJuice[] = _( + "A 100% pure juice\n" + "that restores HP\n" + "by 20 points."); + +static const u8 gItemDescription_SacredAsh[] = _( + "Fully revives and\n" + "restores all\n" + "fainted POKéMON."); + +static const u8 gItemDescription_ShoalSalt[] = _( + "Salt obtained from\n" + "deep inside the\n" + "SHOAL CAVE."); + +static const u8 gItemDescription_ShoalShell[] = _( + "A seashell found\n" + "deep inside the\n" + "SHOAL CAVE."); + +static const u8 gItemDescription_RedShard[] = _( + "A shard from an\n" + "ancient item.\n" + "Can be sold cheaply."); + +static const u8 gItemDescription_BlueShard[] = _( + "A shard from an\n" + "ancient item.\n" + "Can be sold cheaply."); + +static const u8 gItemDescription_YellowShard[] = _( + "A shard from an\n" + "ancient item.\n" + "Can be sold cheaply."); + +static const u8 gItemDescription_GreenShard[] = _( + "A shard from an\n" + "ancient item.\n" + "Can be sold cheaply."); + +static const u8 gItemDescription_HPUp[] = _( + "Raises the HP of\n" + "one POKéMON."); + +static const u8 gItemDescription_Protein[] = _( + "Raises the stat\n" + "ATTACK of one\n" + "POKéMON."); + +static const u8 gItemDescription_Iron[] = _( + "Raises the stat\n" + "DEFENSE of one\n" + "POKéMON."); + +static const u8 gItemDescription_Carbos[] = _( + "Raises the stat\n" + "SPEED of one\n" + "POKéMON."); + +static const u8 gItemDescription_Calcium[] = _( + "Raises the stat\n" + "SP. ATK of one\n" + "POKéMON."); + +static const u8 gItemDescription_RareCandy[] = _( + "Raises the level\n" + "of a POKéMON by\n" + "one."); + +static const u8 gItemDescription_PPUp[] = _( + "Raises the maximum\n" + "PP of a selected\n" + "move."); + +static const u8 gItemDescription_Zinc[] = _( + "Raises the stat\n" + "SP. DEF of one\n" + "POKéMON."); + +static const u8 gItemDescription_PPMax[] = _( + "Raises the PP of a\n" + "move to its maximum\n" + "points."); + +static const u8 gItemDescription_GuardSpec[] = _( + "Prevents stat\n" + "reduction when\n" + "used in battle."); + +static const u8 gItemDescription_DireHit[] = _( + "Raises the\n" + "critical-hit ratio\n" + "during one battle."); + +static const u8 gItemDescription_XAttack[] = _( + "Raises the stat\n" + "ATTACK during one\n" + "battle."); + +static const u8 gItemDescription_XDefend[] = _( + "Raises the stat\n" + "DEFENSE during one\n" + "battle."); + +static const u8 gItemDescription_XSpeed[] = _( + "Raises the stat\n" + "SPEED during one\n" + "battle."); + +static const u8 gItemDescription_XAccuracy[] = _( + "Raises accuracy\n" + "of attack moves\n" + "during one battle."); + +static const u8 gItemDescription_XSpecial[] = _( + "Raises the stat\n" + "SP. ATK during one\n" + "battle."); + +static const u8 gItemDescription_PokeDoll[] = _( + "Use to flee from\n" + "any battle with\n" + "a wild POKéMON."); + +static const u8 gItemDescription_FluffyTail[] = _( + "Use to flee from\n" + "any battle with\n" + "a wild POKéMON."); + +static const u8 gItemDescription_SuperRepel[] = _( + "Repels weak wild\n" + "POKéMON for 200\n" + "steps."); + +static const u8 gItemDescription_MaxRepel[] = _( + "Repels weak wild\n" + "POKéMON for 250\n" + "steps."); + +static const u8 gItemDescription_EscapeRope[] = _( + "Use to escape\n" + "instantly from a\n" + "cave or a dungeon."); + +static const u8 gItemDescription_Repel[] = _( + "Repels weak wild\n" + "POKéMON for 100\n" + "steps."); + +static const u8 gItemDescription_SunStone[] = _( + "Makes certain\n" + "species of POKéMON\n" + "evolve."); + +static const u8 gItemDescription_MoonStone[] = _( + "Makes certain\n" + "species of POKéMON\n" + "evolve."); + +static const u8 gItemDescription_FireStone[] = _( + "Makes certain\n" + "species of POKéMON\n" + "evolve."); + +static const u8 gItemDescription_ThunderStone[] = _( + "Makes certain\n" + "species of POKéMON\n" + "evolve."); + +static const u8 gItemDescription_WaterStone[] = _( + "Makes certain\n" + "species of POKéMON\n" + "evolve."); + +static const u8 gItemDescription_LeafStone[] = _( + "Makes certain\n" + "species of POKéMON\n" + "evolve."); + +static const u8 gItemDescription_TinyMushroom[] = _( + "A plain, ordinary\n" + "mushroom.\n" + "Can be sold cheaply."); + +static const u8 gItemDescription_BigMushroom[] = _( + "A rare mushroom\n" + "that would sell at a\n" + "high price."); + +static const u8 gItemDescription_Pearl[] = _( + "A pretty pearl.\n" + "Can be sold cheaply."); + +static const u8 gItemDescription_BigPearl[] = _( + "A lovely large pearl\n" + "that would sell at a\n" + "high price."); + +static const u8 gItemDescription_Stardust[] = _( + "Beautiful red sand.\n" + "Can be sold at a\n" + "high price."); + +static const u8 gItemDescription_StarPiece[] = _( + "A red gem shard.\n" + "It would sell for a\n" + "very high price."); + +static const u8 gItemDescription_Nugget[] = _( + "A nugget of pure\n" + "gold. Can be sold at\n" + "a high price."); + +static const u8 gItemDescription_HeartScale[] = _( + "A lovely scale.\n" + "It is coveted by\n" + "collectors."); + +static const u8 gItemDescription_OrangeMail[] = _( + "A ZIGZAGOON-print\n" + "MAIL to be held by\n" + "a POKéMON."); + +static const u8 gItemDescription_HarborMail[] = _( + "A WINGULL-print\n" + "MAIL to be held by\n" + "a POKéMON."); + +static const u8 gItemDescription_GlitterMail[] = _( + "A PIKACHU-print\n" + "MAIL to be held by\n" + "a POKéMON."); + +static const u8 gItemDescription_MechMail[] = _( + "A MAGNEMITE-print\n" + "MAIL to be held by\n" + "a POKéMON."); + +static const u8 gItemDescription_WoodMail[] = _( + "A SLAKOTH-print\n" + "MAIL to be held by\n" + "a POKéMON."); + +static const u8 gItemDescription_WaveMail[] = _( + "A WAILMER-print\n" + "MAIL to be held by\n" + "a POKéMON."); + +static const u8 gItemDescription_BeadMail[] = _( + "MAIL featuring a\n" + "sketch of the\n" + "holding POKéMON."); + +static const u8 gItemDescription_ShadowMail[] = _( + "A DUSKULL-print\n" + "MAIL to be held by\n" + "a POKéMON."); + +static const u8 gItemDescription_TropicMail[] = _( + "A BELLOSSOM-print\n" + "MAIL to be held by\n" + "a POKéMON."); + +static const u8 gItemDescription_DreamMail[] = _( + "MAIL featuring a\n" + "sketch of the\n" + "holding POKéMON."); + +static const u8 gItemDescription_FabMail[] = _( + "A gorgeous-print\n" + "MAIL to be held\n" + "by a POKéMON."); + +static const u8 gItemDescription_RetroMail[] = _( + "MAIL featuring the\n" + "drawings of three\n" + "POKéMON."); + +static const u8 gItemDescription_CheriBerry[] = _( + "A hold item that\n" + "heals paralysis\n" + "in battle."); + +static const u8 gItemDescription_ChestoBerry[] = _( + "A hold item that\n" + "awakens POKéMON\n" + "in battle."); + +static const u8 gItemDescription_PechaBerry[] = _( + "A hold item that\n" + "heals poisoning\n" + "in battle."); + +static const u8 gItemDescription_RawstBerry[] = _( + "A hold item that\n" + "heals a burn in\n" + "battle."); + +static const u8 gItemDescription_AspearBerry[] = _( + "A hold item that\n" + "defrosts POKéMON\n" + "in battle."); + +static const u8 gItemDescription_LeppaBerry[] = _( + "A hold item that\n" + "restores 10 PP in\n" + "battle."); + +static const u8 gItemDescription_OranBerry[] = _( + "A hold item that\n" + "restores 10 HP in\n" + "battle."); + +static const u8 gItemDescription_PersimBerry[] = _( + "A hold item that\n" + "heals confusion\n" + "in battle."); + +static const u8 gItemDescription_LumBerry[] = _( + "A hold item that\n" + "heals status in\n" + "battle."); + +static const u8 gItemDescription_SitrusBerry[] = _( + "A hold item that\n" + "restores 30 HP in\n" + "battle."); + +static const u8 gItemDescription_FigyBerry[] = _( + "A hold item that\n" + "restores HP but\n" + "may confuse."); + +static const u8 gItemDescription_WikiBerry[] = _( + "A hold item that\n" + "restores HP but\n" + "may confuse."); + +static const u8 gItemDescription_MagoBerry[] = _( + "A hold item that\n" + "restores HP but\n" + "may confuse."); + +static const u8 gItemDescription_AguavBerry[] = _( + "A hold item that\n" + "restores HP but\n" + "may confuse."); + +static const u8 gItemDescription_IapapaBerry[] = _( + "A hold item that\n" + "restores HP but\n" + "may confuse."); + +static const u8 gItemDescription_RazzBerry[] = _( + "{POKEBLOCK} ingredient.\n" + "Plant in loamy soil\n" + "to grow RAZZ."); + +static const u8 gItemDescription_BlukBerry[] = _( + "{POKEBLOCK} ingredient.\n" + "Plant in loamy soil\n" + "to grow BLUK."); + +static const u8 gItemDescription_NanabBerry[] = _( + "{POKEBLOCK} ingredient.\n" + "Plant in loamy soil\n" + "to grow NANAB."); + +static const u8 gItemDescription_WepearBerry[] = _( + "{POKEBLOCK} ingredient.\n" + "Plant in loamy soil\n" + "to grow WEPEAR."); + +static const u8 gItemDescription_PinapBerry[] = _( + "{POKEBLOCK} ingredient.\n" + "Plant in loamy soil\n" + "to grow PINAP."); + +static const u8 gItemDescription_PomegBerry[] = _( + "{POKEBLOCK} ingredient.\n" + "Plant in loamy soil\n" + "to grow POMEG."); + +static const u8 gItemDescription_KelpsyBerry[] = _( + "{POKEBLOCK} ingredient.\n" + "Plant in loamy soil\n" + "to grow KELPSY."); + +static const u8 gItemDescription_QualotBerry[] = _( + "{POKEBLOCK} ingredient.\n" + "Plant in loamy soil\n" + "to grow QUALOT."); + +static const u8 gItemDescription_HondewBerry[] = _( + "{POKEBLOCK} ingredient.\n" + "Plant in loamy soil\n" + "to grow HONDEW."); + +static const u8 gItemDescription_GrepaBerry[] = _( + "{POKEBLOCK} ingredient.\n" + "Plant in loamy soil\n" + "to grow GREPA."); + +static const u8 gItemDescription_TamatoBerry[] = _( + "{POKEBLOCK} ingredient.\n" + "Plant in loamy soil\n" + "to grow TAMATO."); + +static const u8 gItemDescription_CornnBerry[] = _( + "{POKEBLOCK} ingredient.\n" + "Plant in loamy soil\n" + "to grow CORNN."); + +static const u8 gItemDescription_MagostBerry[] = _( + "{POKEBLOCK} ingredient.\n" + "Plant in loamy soil\n" + "to grow MAGOST."); + +static const u8 gItemDescription_RabutaBerry[] = _( + "{POKEBLOCK} ingredient.\n" + "Plant in loamy soil\n" + "to grow RABUTA."); + +static const u8 gItemDescription_NomelBerry[] = _( + "{POKEBLOCK} ingredient.\n" + "Plant in loamy soil\n" + "to grow NOMEL."); + +static const u8 gItemDescription_SpelonBerry[] = _( + "{POKEBLOCK} ingredient.\n" + "Plant in loamy soil\n" + "to grow SPELON."); + +static const u8 gItemDescription_PamtreBerry[] = _( + "{POKEBLOCK} ingredient.\n" + "Plant in loamy soil\n" + "to grow PAMTRE."); + +static const u8 gItemDescription_WatmelBerry[] = _( + "{POKEBLOCK} ingredient.\n" + "Plant in loamy soil\n" + "to grow WATMEL."); + +static const u8 gItemDescription_DurinBerry[] = _( + "{POKEBLOCK} ingredient.\n" + "Plant in loamy soil\n" + "to grow DURIN."); + +static const u8 gItemDescription_BelueBerry[] = _( + "{POKEBLOCK} ingredient.\n" + "Plant in loamy soil\n" + "to grow BELUE."); + +static const u8 gItemDescription_LiechiBerry[] = _( + "A hold item that\n" + "raises ATTACK in\n" + "a pinch."); + +static const u8 gItemDescription_GanlonBerry[] = _( + "A hold item that\n" + "raises DEFENSE in\n" + "a pinch."); + +static const u8 gItemDescription_SalacBerry[] = _( + "A hold item that\n" + "raises SPEED in\n" + "a pinch."); + +static const u8 gItemDescription_PetayaBerry[] = _( + "A hold item that\n" + "raises SP. ATK in\n" + "a pinch."); + +static const u8 gItemDescription_ApicotBerry[] = _( + "A hold item that\n" + "raises SP. DEF in\n" + "a pinch."); + +static const u8 gItemDescription_LansatBerry[] = _( + "A hold item that\n" + "ups the critical-\n" + "hit rate in a pinch."); + +static const u8 gItemDescription_StarfBerry[] = _( + "A hold item that\n" + "sharply boosts a\n" + "stat in a pinch."); + +static const u8 gItemDescription_EnigmaBerry[] = _( + "{POKEBLOCK} ingredient.\n" + "Plant in loamy soil\n" + "to grow a mystery."); + +static const u8 gItemDescription_BrightPowder[] = _( + "A hold item that\n" + "casts a glare to\n" + "reduce accuracy."); + +static const u8 gItemDescription_WhiteHerb[] = _( + "A hold item that\n" + "restores any\n" + "lowered stat."); + +static const u8 gItemDescription_MachoBrace[] = _( + "A hold item that\n" + "promotes growth,\n" + "but reduces SPEED."); + +static const u8 gItemDescription_ExpShare[] = _( + "A hold item that\n" + "gets EXP. points\n" + "from battles."); + +static const u8 gItemDescription_QuickClaw[] = _( + "A hold item that\n" + "occasionally allows\n" + "the first strike."); + +static const u8 gItemDescription_SootheBell[] = _( + "A hold item that\n" + "calms spirits and\n" + "fosters friendship."); + +static const u8 gItemDescription_MentalHerb[] = _( + "A hold item that\n" + "snaps POKéMON out\n" + "of infatuation."); + +static const u8 gItemDescription_ChoiceBand[] = _( + "Raises a move’s\n" + "power, but permits\n" + "only that move."); + +static const u8 gItemDescription_KingsRock[] = _( + "A hold item that\n" + "may cause flinching\n" + "when the foe is hit."); + +static const u8 gItemDescription_SilverPowder[] = _( + "A hold item that\n" + "raises the power of\n" + "BUG-type moves."); + +static const u8 gItemDescription_AmuletCoin[] = _( + "Doubles money in\n" + "battle if the holder\n" + "takes part."); + +static const u8 gItemDescription_CleanseTag[] = _( + "A hold item that\n" + "helps repel wild\n" + "POKéMON."); + +static const u8 gItemDescription_SoulDew[] = _( + "Hold item: Raises\n" + "SP. ATK & SP. DEF\n" + "of LATIOS & LATIAS."); + +static const u8 gItemDescription_DeepSeaTooth[] = _( + "A hold item that\n" + "raises the SP. ATK\n" + "of CLAMPERL."); + +static const u8 gItemDescription_DeepSeaScale[] = _( + "A hold item that\n" + "raises the SP. DEF\n" + "of CLAMPERL."); + +static const u8 gItemDescription_SmokeBall[] = _( + "A hold item that\n" + "can be used to flee\n" + "from a wild POKéMON."); + +static const u8 gItemDescription_Everstone[] = _( + "A wondrous stone\n" + "& a hold item that\n" + "prevents evolution."); + +static const u8 gItemDescription_FocusBand[] = _( + "A hold item that\n" + "occasionally\n" + "prevents fainting."); + +static const u8 gItemDescription_LuckyEgg[] = _( + "A hold item that\n" + "boosts EXP. points\n" + "earned in battle."); + +static const u8 gItemDescription_ScopeLens[] = _( + "A hold item that\n" + "raises the critical-\n" + "hit rate."); + +static const u8 gItemDescription_MetalCoat[] = _( + "A hold item that\n" + "raises the power of\n" + "STEEL-type moves."); + +static const u8 gItemDescription_Leftovers[] = _( + "A hold item that\n" + "gradually restores\n" + "HP in battle."); + +static const u8 gItemDescription_DragonScale[] = _( + "A strange scale\n" + "held by DRAGON-\n" + "type POKéMON."); + +static const u8 gItemDescription_LightBall[] = _( + "A hold item that\n" + "raises the SP. ATK\n" + "of PIKACHU."); + +static const u8 gItemDescription_SoftSand[] = _( + "A hold item that\n" + "raises the power of\n" + "GROUND-type moves."); + +static const u8 gItemDescription_HardStone[] = _( + "A hold item that\n" + "raises the power of\n" + "ROCK-type moves."); + +static const u8 gItemDescription_MiracleSeed[] = _( + "A hold item that\n" + "raises the power of\n" + "GRASS-type moves."); + +static const u8 gItemDescription_BlackGlasses[] = _( + "A hold item that\n" + "raises the power of\n" + "DARK-type moves."); + +static const u8 gItemDescription_BlackBelt[] = _( + "A hold item that\n" + "boosts FIGHTING-\n" + "type moves."); + +static const u8 gItemDescription_Magnet[] = _( + "A hold item that\n" + "boosts ELECTRIC-\n" + "type moves."); + +static const u8 gItemDescription_MysticWater[] = _( + "A hold item that\n" + "raises the power of\n" + "WATER-type moves."); + +static const u8 gItemDescription_SharpBeak[] = _( + "A hold item that\n" + "raises the power of\n" + "FLYING-type moves."); + +static const u8 gItemDescription_PoisonBarb[] = _( + "A hold item that\n" + "raises the power of\n" + "POISON-type moves."); + +static const u8 gItemDescription_NeverMeltIce[] = _( + "A hold item that\n" + "raises the power of\n" + "ICE-type moves."); + +static const u8 gItemDescription_SpellTag[] = _( + "A hold item that\n" + "raises the power of\n" + "GHOST-type moves."); + +static const u8 gItemDescription_TwistedSpoon[] = _( + "A hold item that\n" + "boosts PSYCHIC-\n" + "type moves."); + +static const u8 gItemDescription_Charcoal[] = _( + "A hold item that\n" + "raises the power of\n" + "FIRE-type moves."); + +static const u8 gItemDescription_DragonFang[] = _( + "A hold item that\n" + "raises the power of\n" + "DRAGON-type moves."); + +static const u8 gItemDescription_SilkScarf[] = _( + "A hold item that\n" + "raises the power of\n" + "NORMAL-type moves."); + +static const u8 gItemDescription_UpGrade[] = _( + "A peculiar box made\n" + "by SILPH CO."); + +static const u8 gItemDescription_ShellBell[] = _( + "A hold item that\n" + "restores HP upon\n" + "striking the foe."); + +static const u8 gItemDescription_SeaIncense[] = _( + "A hold item that\n" + "slightly boosts\n" + "WATER-type moves."); + +static const u8 gItemDescription_LaxIncense[] = _( + "A hold item that\n" + "slightly lowers the\n" + "foe’s accuracy."); + +static const u8 gItemDescription_LuckyPunch[] = _( + "A hold item that\n" + "raises CHANSEY’s\n" + "critical-hit rate."); + +static const u8 gItemDescription_MetalPowder[] = _( + "A hold item that\n" + "raises DEFENSE."); + +static const u8 gItemDescription_ThickClub[] = _( + "A bone of some\n" + "sort. It can be sold\n" + "cheaply."); + +static const u8 gItemDescription_Stick[] = _( + "A stick of leek.\n" + "It can be sold\n" + "cheaply."); + +static const u8 gItemDescription_RedScarf[] = _( + "A hold item that\n" + "raises COOL in\n" + "CONTESTS."); + +static const u8 gItemDescription_BlueScarf[] = _( + "A hold item that\n" + "raises BEAUTY in\n" + "CONTESTS."); + +static const u8 gItemDescription_PinkScarf[] = _( + "A hold item that\n" + "raises CUTE in\n" + "CONTESTS."); + +static const u8 gItemDescription_GreenScarf[] = _( + "A hold item that\n" + "raises SMART in\n" + "CONTESTS."); + +static const u8 gItemDescription_YellowScarf[] = _( + "A hold item that\n" + "raises TOUGH in\n" + "CONTESTS."); + +static const u8 gItemDescription_MachBike[] = _( + "A folding bicycle\n" + "that more than\n" + "doubles foot speed."); + +static const u8 gItemDescription_CoinCase[] = _( + "A case that holds\n" + "up to 9,999 COINS."); + +static const u8 gItemDescription_Itemfinder[] = _( + "A device that\n" + "signals an invisible\n" + "item by sound."); + +static const u8 gItemDescription_OldRod[] = _( + "Use by any body of\n" + "water to fish for\n" + "wild POKéMON."); + +static const u8 gItemDescription_GoodRod[] = _( + "A decent fishing\n" + "rod for catching\n" + "wild POKéMON."); + +static const u8 gItemDescription_SuperRod[] = _( + "The best fishing\n" + "rod for catching\n" + "wild POKéMON."); + +static const u8 gItemDescription_SSTicket[] = _( + "The ticket required\n" + "for sailing on a\n" + "ferry."); + +static const u8 gItemDescription_ContestPass[] = _( + "The pass required\n" + "for entering\n" + "POKéMON CONTESTS."); + +static const u8 gItemDescription_WailmerPail[] = _( + "A tool used for\n" + "watering BERRIES\n" + "and plants."); + +static const u8 gItemDescription_DevonGoods[] = _( + "A package that\n" + "contains DEVON’s\n" + "machine parts."); + +static const u8 gItemDescription_SootSack[] = _( + "A sack used to\n" + "gather and hold\n" + "volcanic ash."); + +static const u8 gItemDescription_BasementKey[] = _( + "The key for NEW\n" + "MAUVILLE beneath\n" + "MAUVILLE CITY."); + +static const u8 gItemDescription_AcroBike[] = _( + "A folding bicycle\n" + "capable of jumps\n" + "and wheelies."); + +static const u8 gItemDescription_PokeblockCase[] = _( + "A case for holding\n" + "{POKEBLOCK}S made with\n" + "a BERRY BLENDER."); + +static const u8 gItemDescription_Letter[] = _( + "A letter to STEVEN\n" + "from the PRESIDENT\n" + "of the DEVON CORP."); + +static const u8 gItemDescription_EonTicket[] = _( + "The ticket for a\n" + "ferry to a distant\n" + "southern island."); + +static const u8 gItemDescription_RedOrb[] = _( + "A red, glowing orb\n" + "said to contain an\n" + "ancient power."); + +static const u8 gItemDescription_BlueOrb[] = _( + "A blue, glowing orb\n" + "said to contain an\n" + "ancient power."); + +static const u8 gItemDescription_Scanner[] = _( + "A device found\n" + "inside the\n" + "ABANDONED SHIP."); + +static const u8 gItemDescription_GoGoggles[] = _( + "Nifty goggles that\n" + "protect eyes from\n" + "desert sandstorms."); + +static const u8 gItemDescription_Meteorite[] = _( + "A meteorite found\n" + "at METEOR FALLS."); + +static const u8 gItemDescription_Room1Key[] = _( + "A key that opens a\n" + "door inside the\n" + "ABANDONED SHIP."); + +static const u8 gItemDescription_Room2Key[] = _( + "A key that opens a\n" + "door inside the\n" + "ABANDONED SHIP."); + +static const u8 gItemDescription_Room4Key[] = _( + "A key that opens a\n" + "door inside the\n" + "ABANDONED SHIP."); + +static const u8 gItemDescription_Room6Key[] = _( + "A key that opens a\n" + "door inside the\n" + "ABANDONED SHIP."); + +static const u8 gItemDescription_StorageKey[] = _( + "The key to the\n" + "storage inside the\n" + "ABANDONED SHIP."); + +static const u8 gItemDescription_RootFossil[] = _( + "A fossil of an\n" + "ancient, seafloor-\n" + "dwelling POKéMON."); + +static const u8 gItemDescription_ClawFossil[] = _( + "A fossil of an\n" + "ancient, seafloor-\n" + "dwelling POKéMON."); + +static const u8 gItemDescription_DevonScope[] = _( + "A device by DEVON\n" + "that signals any\n" + "unseeable POKéMON."); + +static const u8 gItemDescription_TM01[] = _( + "Powerful, but makes\n" + "the user flinch if\n" + "hit by the foe."); + +static const u8 gItemDescription_TM02[] = _( + "Hooks and slashes\n" + "the foe with long,\n" + "sharp claws."); + +static const u8 gItemDescription_TM03[] = _( + "Generates an\n" + "ultrasonic wave\n" + "that may confuse."); + +static const u8 gItemDescription_TM04[] = _( + "Raises SP. ATK and\n" + "SP. DEF by focusing\n" + "the mind."); + +static const u8 gItemDescription_TM05[] = _( + "A savage roar that\n" + "makes the foe flee \n" + "to end the battle."); + +static const u8 gItemDescription_TM06[] = _( + "Poisons the foe\n" + "with a toxin that\n" + "gradually worsens."); + +static const u8 gItemDescription_TM07[] = _( + "Summons a hailstorm\n" + "that hurts all\n" + "types except ICE."); + +static const u8 gItemDescription_TM08[] = _( + "Bulks up the body\n" + "to boost both\n" + "ATTACK & DEFENSE."); + +static const u8 gItemDescription_TM09[] = _( + "Shoots 2 to 5 seeds\n" + "in a row to strike\n" + "the foe."); + +static const u8 gItemDescription_TM10[] = _( + "The attack power\n" + "varies among\n" + "different POKéMON."); + +static const u8 gItemDescription_TM11[] = _( + "Raises the power of\n" + "FIRE-type moves\n" + "for 5 turns."); + +static const u8 gItemDescription_TM12[] = _( + "Enrages the foe so\n" + "it can only use\n" + "attack moves."); + +static const u8 gItemDescription_TM13[] = _( + "Fires an icy cold\n" + "beam that may\n" + "freeze the foe."); + +static const u8 gItemDescription_TM14[] = _( + "A vicious snow-and-\n" + "wind attack that\n" + "may freeze the foe."); + +static const u8 gItemDescription_TM15[] = _( + "Powerful, but needs\n" + "recharging the\n" + "next turn."); + +static const u8 gItemDescription_TM16[] = _( + "Creates a wall of\n" + "light that lowers\n" + "SP. ATK damage."); + +static const u8 gItemDescription_TM17[] = _( + "Negates all damage,\n" + "but may fail if used\n" + "in succession."); + +static const u8 gItemDescription_TM18[] = _( + "Raises the power of\n" + "WATER-type moves\n" + "for 5 turns."); + +static const u8 gItemDescription_TM19[] = _( + "Recovers half the\n" + "HP of the damage \n" + "this move inflicts."); + +static const u8 gItemDescription_TM20[] = _( + "Prevents status\n" + "abnormality with a\n" + "mystical power."); + +static const u8 gItemDescription_TM21[] = _( + "The less the user\n" + "likes you, the more\n" + "powerful this move."); + +static const u8 gItemDescription_TM22[] = _( + "Absorbs sunlight in\n" + "the 1st turn, then\n" + "attacks next turn."); + +static const u8 gItemDescription_TM23[] = _( + "Slams the foe with\n" + "a hard tail. It may\n" + "lower DEFENSE."); + +static const u8 gItemDescription_TM24[] = _( + "A powerful electric\n" + "attack that may\n" + "cause paralysis."); + +static const u8 gItemDescription_TM25[] = _( + "Strikes the foe\n" + "with a thunderbolt.\n" + "It may paralyze."); + +static const u8 gItemDescription_TM26[] = _( + "Causes a quake\n" + "that has no effect\n" + "on flying foes."); + +static const u8 gItemDescription_TM27[] = _( + "The more the user\n" + "likes you, the more\n" + "powerful this move."); + +static const u8 gItemDescription_TM28[] = _( + "Digs underground\n" + "the 1st turn, then\n" + "strikes next turn."); + +static const u8 gItemDescription_TM29[] = _( + "A powerful psychic\n" + "attack that may\n" + "lower SP. DEF."); + +static const u8 gItemDescription_TM30[] = _( + "Hurls a dark lump\n" + "at the foe. It may\n" + "lower SP. DEF."); + +static const u8 gItemDescription_TM31[] = _( + "Destroys barriers\n" + "like LIGHT SCREEN\n" + "and causes damage."); + +static const u8 gItemDescription_TM32[] = _( + "Creates illusory\n" + "copies to enhance\n" + "elusiveness."); + +static const u8 gItemDescription_TM33[] = _( + "Creates a wall of\n" + "light that weakens\n" + "physical attacks."); + +static const u8 gItemDescription_TM34[] = _( + "Zaps the foe with a\n" + "jolt of electricity\n" + "that never misses."); + +static const u8 gItemDescription_TM35[] = _( + "Looses a stream of\n" + "fire that may burn\n" + "the foe."); + +static const u8 gItemDescription_TM36[] = _( + "Hurls sludge at the\n" + "foe. It may poison\n" + "the foe."); + +static const u8 gItemDescription_TM37[] = _( + "Causes a sandstorm\n" + "that hits the foe\n" + "over several turns."); + +static const u8 gItemDescription_TM38[] = _( + "A powerful fire\n" + "attack that may\n" + "burn the foe."); + +static const u8 gItemDescription_TM39[] = _( + "Stops the foe from\n" + "moving with rocks.\n" + "May lower SPEED."); + +static const u8 gItemDescription_TM40[] = _( + "An extremely fast\n" + "attack that can’t\n" + "be avoided."); + +static const u8 gItemDescription_TM41[] = _( + "Prevents the foe\n" + "from using the same\n" + "move in a row."); + +static const u8 gItemDescription_TM42[] = _( + "Raises ATTACK when\n" + "poisoned, burned,\n" + "or paralyzed."); + +static const u8 gItemDescription_TM43[] = _( + "Adds an effect to\n" + "attack depending\n" + "on the location."); + +static const u8 gItemDescription_TM44[] = _( + "The user sleeps for\n" + "2 turns to restore\n" + "health and status."); + +static const u8 gItemDescription_TM45[] = _( + "Makes it tough to\n" + "attack a foe of the\n" + "opposite gender."); + +static const u8 gItemDescription_TM46[] = _( + "While attacking,\n" + "it may steal the\n" + "foe’s held item."); + +static const u8 gItemDescription_TM47[] = _( + "Spreads hard-edged\n" + "wings and slams\n" + "into the foe."); + +static const u8 gItemDescription_TM48[] = _( + "Switches abilities\n" + "with the foe on the\n" + "turn this is used."); + +static const u8 gItemDescription_TM49[] = _( + "Steals the effects\n" + "of the move the foe\n" + "is trying to use."); + +static const u8 gItemDescription_TM50[] = _( + "Enables full-power\n" + "attack, but sharply\n" + "lowers SP. ATK."); + +static const u8 gItemDescription_HM01[] = _( + "Attacks the foe\n" + "with sharp blades\n" + "or claws."); + +static const u8 gItemDescription_HM02[] = _( + "Flies up on the\n" + "first turn, then\n" + "attacks next turn."); + +static const u8 gItemDescription_HM03[] = _( + "Creates a huge\n" + "wave, then crashes\n" + "it down on the foe."); + +static const u8 gItemDescription_HM04[] = _( + "Builds enormous\n" + "power, then slams\n" + "the foe."); + +static const u8 gItemDescription_HM05[] = _( + "Looses a powerful\n" + "blast of light that\n" + "reduces accuracy."); + +static const u8 gItemDescription_HM06[] = _( + "A rock-crushingly\n" + "tough attack that\n" + "may lower DEFENSE."); + +static const u8 gItemDescription_HM07[] = _( + "Attacks the foe\n" + "with enough power\n" + "to climb waterfalls."); + +static const u8 gItemDescription_HM08[] = _( + "Dives underwater\n" + "the 1st turn, then\n" + "attacks next turn."); + +static const u8 gItemDescription_Dummy[] = _(""); diff --git a/src/data/items_de.h b/src/data/items_de.h new file mode 100644 index 000000000..0453a95d0 --- /dev/null +++ b/src/data/items_de.h @@ -0,0 +1,5587 @@ +const struct Item gItems[] = +{ + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("MEISTERBALL"), + .itemId = ITEM_MASTER_BALL, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_MasterBall, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_POKE_BALLS, + .type = 0, + .fieldUseFunc = NULL, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_PokeBall, + .secondaryId = 0, + }, + { + .name = _("HYPERBALL"), + .itemId = ITEM_ULTRA_BALL, + .price = 1200, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_UltraBall, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_POKE_BALLS, + .type = 1, + .fieldUseFunc = NULL, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_PokeBall, + .secondaryId = 1, + }, + { + .name = _("SUPERBALL"), + .itemId = ITEM_GREAT_BALL, + .price = 600, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_GreatBall, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_POKE_BALLS, + .type = 2, + .fieldUseFunc = NULL, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_PokeBall, + .secondaryId = 2, + }, + { + .name = _("POKéBALL"), + .itemId = ITEM_POKE_BALL, + .price = 200, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_PokeBall, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_POKE_BALLS, + .type = 3, + .fieldUseFunc = NULL, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_PokeBall, + .secondaryId = 3, + }, + { + .name = _("SAFARIBALL"), + .itemId = ITEM_SAFARI_BALL, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_SafariBall, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_POKE_BALLS, + .type = 4, + .fieldUseFunc = NULL, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_PokeBall, + .secondaryId = 4, + }, + { + .name = _("NETZBALL"), + .itemId = ITEM_NET_BALL, + .price = 1000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_NetBall, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_POKE_BALLS, + .type = 5, + .fieldUseFunc = NULL, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_PokeBall, + .secondaryId = 5, + }, + { + .name = _("TAUCHBALL"), + .itemId = ITEM_DIVE_BALL, + .price = 1000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_DiveBall, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_POKE_BALLS, + .type = 6, + .fieldUseFunc = NULL, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_PokeBall, + .secondaryId = 6, + }, + { + .name = _("NESTBALL"), + .itemId = ITEM_NEST_BALL, + .price = 1000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_NestBall, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_POKE_BALLS, + .type = 7, + .fieldUseFunc = NULL, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_PokeBall, + .secondaryId = 7, + }, + { + .name = _("WIEDERBALL"), + .itemId = ITEM_REPEAT_BALL, + .price = 1000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_RepeatBall, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_POKE_BALLS, + .type = 8, + .fieldUseFunc = NULL, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_PokeBall, + .secondaryId = 8, + }, + { + .name = _("TIMERBALL"), + .itemId = ITEM_TIMER_BALL, + .price = 1000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TimerBall, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_POKE_BALLS, + .type = 9, + .fieldUseFunc = NULL, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_PokeBall, + .secondaryId = 9, + }, + { + .name = _("LUXUSBALL"), + .itemId = ITEM_LUXURY_BALL, + .price = 1000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_LuxuryBall, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_POKE_BALLS, + .type = 10, + .fieldUseFunc = NULL, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_PokeBall, + .secondaryId = 10, + }, + { + .name = _("PREMIERBALL"), + .itemId = ITEM_PREMIER_BALL, + .price = 200, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_PremierBall, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_POKE_BALLS, + .type = 11, + .fieldUseFunc = NULL, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_PokeBall, + .secondaryId = 11, + }, + { + .name = _("TRANK"), + .itemId = ITEM_POTION, + .price = 300, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 20, + .description = gItemDescription_Potion, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("GEGENGIFT"), + .itemId = ITEM_ANTIDOTE, + .price = 100, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Antidote, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("FEUERHEILER"), + .itemId = ITEM_BURN_HEAL, + .price = 250, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_BurnHeal, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("EISHEILER"), + .itemId = ITEM_ICE_HEAL, + .price = 250, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_IceHeal, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("AUFWECKER"), + .itemId = ITEM_AWAKENING, + .price = 250, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Awakening, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("PARA-HEILER"), + .itemId = ITEM_PARALYZE_HEAL, + .price = 200, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_ParalyzeHeal, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("TOP-GENESUNG"), + .itemId = ITEM_FULL_RESTORE, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 255, + .description = gItemDescription_FullRestore, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("TOP-TRANK"), + .itemId = ITEM_MAX_POTION, + .price = 2500, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 255, + .description = gItemDescription_MaxPotion, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("HYPERTRANK"), + .itemId = ITEM_HYPER_POTION, + .price = 1200, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 200, + .description = gItemDescription_HyperPotion, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("SUPERTRANK"), + .itemId = ITEM_SUPER_POTION, + .price = 700, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 50, + .description = gItemDescription_SuperPotion, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("HYPERHEILER"), + .itemId = ITEM_FULL_HEAL, + .price = 600, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_FullHeal, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("BELEBER"), + .itemId = ITEM_REVIVE, + .price = 1500, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Revive, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("TOP-BELEBER"), + .itemId = ITEM_MAX_REVIVE, + .price = 4000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_MaxRevive, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("TAFELWASSER"), + .itemId = ITEM_FRESH_WATER, + .price = 200, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 50, + .description = gItemDescription_FreshWater, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("SPRUDEL"), + .itemId = ITEM_SODA_POP, + .price = 300, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 60, + .description = gItemDescription_SodaPop, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("LIMONADE"), + .itemId = ITEM_LEMONADE, + .price = 350, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 80, + .description = gItemDescription_Lemonade, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("KUHMUH-MILCH"), + .itemId = ITEM_MOOMOO_MILK, + .price = 500, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 100, + .description = gItemDescription_MoomooMilk, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("ENERGIESTAUB"), + .itemId = ITEM_ENERGY_POWDER, + .price = 500, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_EnergyPowder, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("KRAFTWURZEL"), + .itemId = ITEM_ENERGY_ROOT, + .price = 800, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_EnergyRoot, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("HEILPUDER"), + .itemId = ITEM_HEAL_POWDER, + .price = 450, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_HealPowder, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("VITALKRAUT"), + .itemId = ITEM_REVIVAL_HERB, + .price = 2800, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_RevivalHerb, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("ÄTHER"), + .itemId = ITEM_ETHER, + .price = 1200, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 10, + .description = gItemDescription_Ether, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_PPRecovery, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_PPRecovery, + .secondaryId = 0, + }, + { + .name = _("TOP-ÄTHER"), + .itemId = ITEM_MAX_ETHER, + .price = 2000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 255, + .description = gItemDescription_MaxEther, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_PPRecovery, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_PPRecovery, + .secondaryId = 0, + }, + { + .name = _("ELIXIER"), + .itemId = ITEM_ELIXIR, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 10, + .description = gItemDescription_Elixir, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_PPRecovery, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_PPRecovery, + .secondaryId = 0, + }, + { + .name = _("TOP-ELIXIER"), + .itemId = ITEM_MAX_ELIXIR, + .price = 4500, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 255, + .description = gItemDescription_MaxElixir, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_PPRecovery, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_PPRecovery, + .secondaryId = 0, + }, + { + .name = _("LAVAKEKS"), + .itemId = ITEM_LAVA_COOKIE, + .price = 200, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_LavaCookie, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("BLAUE FLÖTE"), + .itemId = ITEM_BLUE_FLUTE, + .price = 100, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_BlueFlute, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("GELBE FLÖTE"), + .itemId = ITEM_YELLOW_FLUTE, + .price = 200, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_YellowFlute, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("ROTE FLÖTE"), + .itemId = ITEM_RED_FLUTE, + .price = 300, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_RedFlute, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("SCHW. FLÖTE"), + .itemId = ITEM_BLACK_FLUTE, + .price = 400, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 50, + .description = gItemDescription_BlackFlute, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_BlackWhiteFlute, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("WEISSE FLÖTE"), + .itemId = ITEM_WHITE_FLUTE, + .price = 500, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 150, + .description = gItemDescription_WhiteFlute, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_BlackWhiteFlute, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("BEERENSAFT"), + .itemId = ITEM_BERRY_JUICE, + .price = 100, + .holdEffect = HOLD_EFFECT_RESTORE_HP, + .holdEffectParam = 20, + .description = gItemDescription_BerryJuice, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("ZAUBERASCHE"), + .itemId = ITEM_SACRED_ASH, + .price = 200, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_SacredAsh, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_SacredAsh, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("KÜSTENSALZ"), + .itemId = ITEM_SHOAL_SALT, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_ShoalSalt, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("KÜSTENSCHALE"), + .itemId = ITEM_SHOAL_SHELL, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_ShoalShell, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("PURPURSTÜCK"), + .itemId = ITEM_RED_SHARD, + .price = 200, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_RedShard, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("INDIGOSTÜCK"), + .itemId = ITEM_BLUE_SHARD, + .price = 200, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_BlueShard, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("GELBSTÜCK"), + .itemId = ITEM_YELLOW_SHARD, + .price = 200, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_YellowShard, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("GRÜNSTÜCK"), + .itemId = ITEM_GREEN_SHARD, + .price = 200, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_GreenShard, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("KP-PLUS"), + .itemId = ITEM_HP_UP, + .price = 9800, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_HPUp, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("PROTEIN"), + .itemId = ITEM_PROTEIN, + .price = 9800, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Protein, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("EISEN"), + .itemId = ITEM_IRON, + .price = 9800, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Iron, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("CARBON"), + .itemId = ITEM_CARBOS, + .price = 9800, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Carbos, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("KALZIUM"), + .itemId = ITEM_CALCIUM, + .price = 9800, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Calcium, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SONDERBONBON"), + .itemId = ITEM_RARE_CANDY, + .price = 4800, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_RareCandy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_RareCandy, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("AP-PLUS"), + .itemId = ITEM_PP_UP, + .price = 9800, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_PPUp, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_PPUp, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("ZINK"), + .itemId = ITEM_ZINC, + .price = 9800, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Zinc, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("AP-TOP"), + .itemId = ITEM_PP_MAX, + .price = 9800, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_PPMax, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_PPUp, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("MEGABLOCK"), + .itemId = ITEM_GUARD_SPEC, + .price = 700, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_GuardSpec, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_StatIncrease, + .secondaryId = 0, + }, + { + .name = _("ANGRIFFPLUS"), + .itemId = ITEM_DIRE_HIT, + .price = 650, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_DireHit, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_StatIncrease, + .secondaryId = 0, + }, + { + .name = _("X-ANGRIFF"), + .itemId = ITEM_X_ATTACK, + .price = 500, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_XAttack, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_StatIncrease, + .secondaryId = 0, + }, + { + .name = _("X-ABWEHR"), + .itemId = ITEM_X_DEFEND, + .price = 550, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_XDefend, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_StatIncrease, + .secondaryId = 0, + }, + { + .name = _("X-TEMPO"), + .itemId = ITEM_X_SPEED, + .price = 350, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_XSpeed, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_StatIncrease, + .secondaryId = 0, + }, + { + .name = _("X-TREFFER"), + .itemId = ITEM_X_ACCURACY, + .price = 950, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_XAccuracy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_StatIncrease, + .secondaryId = 0, + }, + { + .name = _("X-SPEZIAL"), + .itemId = ITEM_X_SPECIAL, + .price = 350, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_XSpecial, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_StatIncrease, + .secondaryId = 0, + }, + { + .name = _("POKéPUPPE"), + .itemId = ITEM_POKE_DOLL, + .price = 1000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_PokeDoll, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_Escape, + .secondaryId = 0, + }, + { + .name = _("ENECO-RUTE"), + .itemId = ITEM_FLUFFY_TAIL, + .price = 1000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_FluffyTail, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_Escape, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SUPERSCHUTZ"), + .itemId = ITEM_SUPER_REPEL, + .price = 500, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 200, + .description = gItemDescription_SuperRepel, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_Repel, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TOP-SCHUTZ"), + .itemId = ITEM_MAX_REPEL, + .price = 700, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 250, + .description = gItemDescription_MaxRepel, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_Repel, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("FLUCHTSEIL"), + .itemId = ITEM_ESCAPE_ROPE, + .price = 550, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_EscapeRope, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 2, + .fieldUseFunc = ItemUseOutOfBattle_EscapeRope, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SCHUTZ"), + .itemId = ITEM_REPEL, + .price = 350, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 100, + .description = gItemDescription_Repel, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_Repel, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SONNENSTEIN"), + .itemId = ITEM_SUN_STONE, + .price = 2100, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_SunStone, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("MONDSTEIN"), + .itemId = ITEM_MOON_STONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_MoonStone, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("FEUERSTEIN"), + .itemId = ITEM_FIRE_STONE, + .price = 2100, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_FireStone, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("DONNERSTEIN"), + .itemId = ITEM_THUNDER_STONE, + .price = 2100, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_ThunderStone, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("WASSERSTEIN"), + .itemId = ITEM_WATER_STONE, + .price = 2100, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_WaterStone, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("BLATTSTEIN"), + .itemId = ITEM_LEAF_STONE, + .price = 2100, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_LeafStone, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("MINIPILZ"), + .itemId = ITEM_TINY_MUSHROOM, + .price = 500, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TinyMushroom, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("RIESENPILZ"), + .itemId = ITEM_BIG_MUSHROOM, + .price = 5000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_BigMushroom, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("PERLE"), + .itemId = ITEM_PEARL, + .price = 1400, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Pearl, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("RIESENPERLE"), + .itemId = ITEM_BIG_PEARL, + .price = 7500, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_BigPearl, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("STERNENSTAUB"), + .itemId = ITEM_STARDUST, + .price = 2000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Stardust, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("STERNENSTÜCK"), + .itemId = ITEM_STAR_PIECE, + .price = 9800, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_StarPiece, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("NUGGET"), + .itemId = ITEM_NUGGET, + .price = 10000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Nugget, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("HERZSCHUPPE"), + .itemId = ITEM_HEART_SCALE, + .price = 100, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_HeartScale, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("ZIGZAGBRIEF"), + .itemId = ITEM_ORANGE_MAIL, + .price = 50, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_OrangeMail, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 0, + .fieldUseFunc = ItemUseOutOfBattle_Mail, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("HAFENBRIEF"), + .itemId = ITEM_HARBOR_MAIL, + .price = 50, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_HarborMail, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 0, + .fieldUseFunc = ItemUseOutOfBattle_Mail, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 1, + }, + { + .name = _("GLITZERBRIEF"), + .itemId = ITEM_GLITTER_MAIL, + .price = 50, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_GlitterMail, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 0, + .fieldUseFunc = ItemUseOutOfBattle_Mail, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 2, + }, + { + .name = _("EILBRIEF"), + .itemId = ITEM_MECH_MAIL, + .price = 50, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_MechMail, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 0, + .fieldUseFunc = ItemUseOutOfBattle_Mail, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 3, + }, + { + .name = _("WALDBRIEF"), + .itemId = ITEM_WOOD_MAIL, + .price = 50, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_WoodMail, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 0, + .fieldUseFunc = ItemUseOutOfBattle_Mail, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 4, + }, + { + .name = _("WELLENBRIEF"), + .itemId = ITEM_WAVE_MAIL, + .price = 50, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_WaveMail, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 0, + .fieldUseFunc = ItemUseOutOfBattle_Mail, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 5, + }, + { + .name = _("PERLENBRIEF"), + .itemId = ITEM_BEAD_MAIL, + .price = 50, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_BeadMail, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 0, + .fieldUseFunc = ItemUseOutOfBattle_Mail, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 6, + }, + { + .name = _("DUNKELBRIEF"), + .itemId = ITEM_SHADOW_MAIL, + .price = 50, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_ShadowMail, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 0, + .fieldUseFunc = ItemUseOutOfBattle_Mail, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 7, + }, + { + .name = _("TROPENBRIEF"), + .itemId = ITEM_TROPIC_MAIL, + .price = 50, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TropicMail, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 0, + .fieldUseFunc = ItemUseOutOfBattle_Mail, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 8, + }, + { + .name = _("TRAUMBRIEF"), + .itemId = ITEM_DREAM_MAIL, + .price = 50, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_DreamMail, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 0, + .fieldUseFunc = ItemUseOutOfBattle_Mail, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 9, + }, + { + .name = _("EDELBRIEF"), + .itemId = ITEM_FAB_MAIL, + .price = 50, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_FabMail, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 0, + .fieldUseFunc = ItemUseOutOfBattle_Mail, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 10, + }, + { + .name = _("RETROBRIEF"), + .itemId = ITEM_RETRO_MAIL, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_RetroMail, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 0, + .fieldUseFunc = ItemUseOutOfBattle_Mail, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 11, + }, + { + .name = _("AMRENABEERE"), + .itemId = ITEM_CHERI_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_CURE_PAR, + .holdEffectParam = 0, + .description = gItemDescription_CheriBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("MARONBEERE"), + .itemId = ITEM_CHESTO_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_CURE_SLP, + .holdEffectParam = 0, + .description = gItemDescription_ChestoBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("PIRSIFBEERE"), + .itemId = ITEM_PECHA_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_CURE_PSN, + .holdEffectParam = 0, + .description = gItemDescription_PechaBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("FRAGIABEERE"), + .itemId = ITEM_RAWST_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_CURE_BRN, + .holdEffectParam = 0, + .description = gItemDescription_RawstBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("WILBIRBEERE"), + .itemId = ITEM_ASPEAR_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_CURE_FRZ, + .holdEffectParam = 0, + .description = gItemDescription_AspearBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("JONAGOBEERE"), + .itemId = ITEM_LEPPA_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_RESTORE_PP, + .holdEffectParam = 10, + .description = gItemDescription_LeppaBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_PPRecovery, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_PPRecovery, + .secondaryId = 0, + }, + { + .name = _("SINELBEERE"), + .itemId = ITEM_ORAN_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_RESTORE_HP, + .holdEffectParam = 10, + .description = gItemDescription_OranBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("PERSIMBEERE"), + .itemId = ITEM_PERSIM_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_CURE_CONFUSION, + .holdEffectParam = 0, + .description = gItemDescription_PersimBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("PRUNUSBEERE"), + .itemId = ITEM_LUM_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_CURE_STATUS, + .holdEffectParam = 0, + .description = gItemDescription_LumBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("TSITRUBEERE"), + .itemId = ITEM_SITRUS_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_RESTORE_HP, + .holdEffectParam = 30, + .description = gItemDescription_SitrusBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("GIEFEBEERE"), + .itemId = ITEM_FIGY_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_CONFUSE_SPICY, + .holdEffectParam = 8, + .description = gItemDescription_FigyBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("WIKIBEERE"), + .itemId = ITEM_WIKI_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_CONFUSE_DRY, + .holdEffectParam = 8, + .description = gItemDescription_WikiBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("MAGOBEERE"), + .itemId = ITEM_MAGO_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_CONFUSE_SWEET, + .holdEffectParam = 8, + .description = gItemDescription_MagoBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("GAUVEBEERE"), + .itemId = ITEM_AGUAV_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_CONFUSE_BITTER, + .holdEffectParam = 8, + .description = gItemDescription_AguavBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("YAPABEERE"), + .itemId = ITEM_IAPAPA_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_CONFUSE_SOUR, + .holdEffectParam = 8, + .description = gItemDescription_IapapaBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("HIMMIHBEERE"), + .itemId = ITEM_RAZZ_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_RazzBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("MORBBEERE"), + .itemId = ITEM_BLUK_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_BlukBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("NANABBEERE"), + .itemId = ITEM_NANAB_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_NanabBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("NIRBEBEERE"), + .itemId = ITEM_WEPEAR_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_WepearBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SANANABEERE"), + .itemId = ITEM_PINAP_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_PinapBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("GRANABEERE"), + .itemId = ITEM_POMEG_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_PomegBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SETANGBEERE"), + .itemId = ITEM_KELPSY_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_KelpsyBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("QUALOTBEERE"), + .itemId = ITEM_QUALOT_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_QualotBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("HONMELBEERE"), + .itemId = ITEM_HONDEW_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_HondewBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("LABRUSBEERE"), + .itemId = ITEM_GREPA_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_GrepaBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TAMOTBEERE"), + .itemId = ITEM_TAMATO_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TamatoBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SAIMBEERE"), + .itemId = ITEM_CORNN_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_CornnBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("MAGOSTBEERE"), + .itemId = ITEM_MAGOST_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_MagostBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("RABUTABEERE"), + .itemId = ITEM_RABUTA_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_RabutaBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TRONZIBEERE"), + .itemId = ITEM_NOMEL_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_NomelBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("KIWANBEERE"), + .itemId = ITEM_SPELON_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_SpelonBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("PALLMBEERE"), + .itemId = ITEM_PAMTRE_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_PamtreBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("WASMELBEERE"), + .itemId = ITEM_WATMEL_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_WatmelBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("DURINBEERE"), + .itemId = ITEM_DURIN_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_DurinBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("MYRTILBEERE"), + .itemId = ITEM_BELUE_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_BelueBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("LYDZIBEERE"), + .itemId = ITEM_LIECHI_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_ATTACK_UP, + .holdEffectParam = 4, + .description = gItemDescription_LiechiBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("LINGANBEERE"), + .itemId = ITEM_GANLON_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_DEFENSE_UP, + .holdEffectParam = 4, + .description = gItemDescription_GanlonBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SALKABEERE"), + .itemId = ITEM_SALAC_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_SPEED_UP, + .holdEffectParam = 4, + .description = gItemDescription_SalacBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TAHAYBEERE"), + .itemId = ITEM_PETAYA_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_SP_ATTACK_UP, + .holdEffectParam = 4, + .description = gItemDescription_PetayaBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("APIKOBEERE"), + .itemId = ITEM_APICOT_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_SP_DEFENSE_UP, + .holdEffectParam = 4, + .description = gItemDescription_ApicotBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("LANSATBEERE"), + .itemId = ITEM_LANSAT_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_CRITICAL_UP, + .holdEffectParam = 4, + .description = gItemDescription_LansatBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("KRAMBOBEERE"), + .itemId = ITEM_STARF_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_RANDOM_STAT_UP, + .holdEffectParam = 4, + .description = gItemDescription_StarfBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("ENIGMABEERE"), + .itemId = ITEM_ENIGMA_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_EnigmaBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_EnigmaBerry, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_EnigmaBerry, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("BLENDPUDER"), + .itemId = ITEM_BRIGHT_POWDER, + .price = 10, + .holdEffect = HOLD_EFFECT_EVASION_UP, + .holdEffectParam = 10, + .description = gItemDescription_BrightPowder, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SCHLOHKRAUT"), + .itemId = ITEM_WHITE_HERB, + .price = 100, + .holdEffect = HOLD_EFFECT_RESTORE_STATS, + .holdEffectParam = 0, + .description = gItemDescription_WhiteHerb, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("MACHOBAND"), + .itemId = ITEM_MACHO_BRACE, + .price = 3000, + .holdEffect = HOLD_EFFECT_MACHO_BRACE, + .holdEffectParam = 0, + .description = gItemDescription_MachoBrace, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("EP-TEILER"), + .itemId = ITEM_EXP_SHARE, + .price = 3000, + .holdEffect = HOLD_EFFECT_EXP_SHARE, + .holdEffectParam = 0, + .description = gItemDescription_ExpShare, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("FLINKKLAUE"), + .itemId = ITEM_QUICK_CLAW, + .price = 100, + .holdEffect = HOLD_EFFECT_QUICK_CLAW, + .holdEffectParam = 20, + .description = gItemDescription_QuickClaw, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SANFTGLOCKE"), + .itemId = ITEM_SOOTHE_BELL, + .price = 100, + .holdEffect = HOLD_EFFECT_HAPPINESS_UP, + .holdEffectParam = 0, + .description = gItemDescription_SootheBell, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("MENTALKRAUT"), + .itemId = ITEM_MENTAL_HERB, + .price = 100, + .holdEffect = HOLD_EFFECT_CURE_ATTRACT, + .holdEffectParam = 0, + .description = gItemDescription_MentalHerb, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("WAHLBAND"), + .itemId = ITEM_CHOICE_BAND, + .price = 100, + .holdEffect = HOLD_EFFECT_CHOICE_BAND, + .holdEffectParam = 0, + .description = gItemDescription_ChoiceBand, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("KING-STEIN"), + .itemId = ITEM_KINGS_ROCK, + .price = 100, + .holdEffect = HOLD_EFFECT_FLINCH, + .holdEffectParam = 10, + .description = gItemDescription_KingsRock, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SILBERSTAUB"), + .itemId = ITEM_SILVER_POWDER, + .price = 100, + .holdEffect = HOLD_EFFECT_BUG_POWER, + .holdEffectParam = 10, + .description = gItemDescription_SilverPowder, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("MÜNZAMULETT"), + .itemId = ITEM_AMULET_COIN, + .price = 100, + .holdEffect = HOLD_EFFECT_DOUBLE_PRIZE, + .holdEffectParam = 10, + .description = gItemDescription_AmuletCoin, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SCHUTZBAND"), + .itemId = ITEM_CLEANSE_TAG, + .price = 200, + .holdEffect = HOLD_EFFECT_REPEL, + .holdEffectParam = 0, + .description = gItemDescription_CleanseTag, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SEELENTAU"), + .itemId = ITEM_SOUL_DEW, + .price = 200, + .holdEffect = HOLD_EFFECT_SOUL_DEW, + .holdEffectParam = 0, + .description = gItemDescription_SoulDew, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("ABYSSZAHN"), + .itemId = ITEM_DEEP_SEA_TOOTH, + .price = 200, + .holdEffect = HOLD_EFFECT_DEEP_SEA_TOOTH, + .holdEffectParam = 0, + .description = gItemDescription_DeepSeaTooth, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("ABYSSPLATTE"), + .itemId = ITEM_DEEP_SEA_SCALE, + .price = 200, + .holdEffect = HOLD_EFFECT_DEEP_SEA_SCALE, + .holdEffectParam = 0, + .description = gItemDescription_DeepSeaScale, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("RAUCHBALL"), + .itemId = ITEM_SMOKE_BALL, + .price = 200, + .holdEffect = HOLD_EFFECT_CAN_ALWAYS_RUN, + .holdEffectParam = 0, + .description = gItemDescription_SmokeBall, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("EWIGSTEIN"), + .itemId = ITEM_EVERSTONE, + .price = 200, + .holdEffect = HOLD_EFFECT_PREVENT_EVOLVE, + .holdEffectParam = 0, + .description = gItemDescription_Everstone, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("FOKUS-BAND"), + .itemId = ITEM_FOCUS_BAND, + .price = 200, + .holdEffect = HOLD_EFFECT_FOCUS_BAND, + .holdEffectParam = 10, + .description = gItemDescription_FocusBand, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("GLÜCKS-EI"), + .itemId = ITEM_LUCKY_EGG, + .price = 200, + .holdEffect = HOLD_EFFECT_LUCKY_EGG, + .holdEffectParam = 0, + .description = gItemDescription_LuckyEgg, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SCOPE-LINSE"), + .itemId = ITEM_SCOPE_LENS, + .price = 200, + .holdEffect = HOLD_EFFECT_SCOPE_LENS, + .holdEffectParam = 0, + .description = gItemDescription_ScopeLens, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("METALLMANTEL"), + .itemId = ITEM_METAL_COAT, + .price = 100, + .holdEffect = HOLD_EFFECT_STEEL_POWER, + .holdEffectParam = 10, + .description = gItemDescription_MetalCoat, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("ÜBERRESTE"), + .itemId = ITEM_LEFTOVERS, + .price = 200, + .holdEffect = HOLD_EFFECT_LEFTOVERS, + .holdEffectParam = 10, + .description = gItemDescription_Leftovers, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("DRACHENHAUT"), + .itemId = ITEM_DRAGON_SCALE, + .price = 2100, + .holdEffect = HOLD_EFFECT_DRAGON_SCALE, + .holdEffectParam = 10, + .description = gItemDescription_DragonScale, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("KUGELBLITZ"), + .itemId = ITEM_LIGHT_BALL, + .price = 100, + .holdEffect = HOLD_EFFECT_LIGHT_BALL, + .holdEffectParam = 0, + .description = gItemDescription_LightBall, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("PUDERSAND"), + .itemId = ITEM_SOFT_SAND, + .price = 100, + .holdEffect = HOLD_EFFECT_GROUND_POWER, + .holdEffectParam = 10, + .description = gItemDescription_SoftSand, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("GRANITSTEIN"), + .itemId = ITEM_HARD_STONE, + .price = 100, + .holdEffect = HOLD_EFFECT_ROCK_POWER, + .holdEffectParam = 10, + .description = gItemDescription_HardStone, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("WUNDERSAAT"), + .itemId = ITEM_MIRACLE_SEED, + .price = 100, + .holdEffect = HOLD_EFFECT_GRASS_POWER, + .holdEffectParam = 10, + .description = gItemDescription_MiracleSeed, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SCHATTENGLAS"), + .itemId = ITEM_BLACK_GLASSES, + .price = 100, + .holdEffect = HOLD_EFFECT_DARK_POWER, + .holdEffectParam = 10, + .description = gItemDescription_BlackGlasses, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SCHWARZGURT"), + .itemId = ITEM_BLACK_BELT, + .price = 100, + .holdEffect = HOLD_EFFECT_FIGHTING_POWER, + .holdEffectParam = 10, + .description = gItemDescription_BlackBelt, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("MAGNET"), + .itemId = ITEM_MAGNET, + .price = 100, + .holdEffect = HOLD_EFFECT_ELECTRIC_POWER, + .holdEffectParam = 10, + .description = gItemDescription_Magnet, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("ZAUBERWASSER"), + .itemId = ITEM_MYSTIC_WATER, + .price = 100, + .holdEffect = HOLD_EFFECT_WATER_POWER, + .holdEffectParam = 10, + .description = gItemDescription_MysticWater, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("HACKATTACK"), + .itemId = ITEM_SHARP_BEAK, + .price = 100, + .holdEffect = HOLD_EFFECT_FLYING_POWER, + .holdEffectParam = 10, + .description = gItemDescription_SharpBeak, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("GIFTSTICH"), + .itemId = ITEM_POISON_BARB, + .price = 100, + .holdEffect = HOLD_EFFECT_POISON_POWER, + .holdEffectParam = 10, + .description = gItemDescription_PoisonBarb, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("EWIGES EIS"), + .itemId = ITEM_NEVER_MELT_ICE, + .price = 100, + .holdEffect = HOLD_EFFECT_ICE_POWER, + .holdEffectParam = 10, + .description = gItemDescription_NeverMeltIce, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("BANNSTICKER"), + .itemId = ITEM_SPELL_TAG, + .price = 100, + .holdEffect = HOLD_EFFECT_GHOST_POWER, + .holdEffectParam = 10, + .description = gItemDescription_SpellTag, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("KRÜMMLÖFFEL"), + .itemId = ITEM_TWISTED_SPOON, + .price = 100, + .holdEffect = HOLD_EFFECT_PSYCHIC_POWER, + .holdEffectParam = 10, + .description = gItemDescription_TwistedSpoon, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("HOLZKOHLE"), + .itemId = ITEM_CHARCOAL, + .price = 9800, + .holdEffect = HOLD_EFFECT_FIRE_POWER, + .holdEffectParam = 10, + .description = gItemDescription_Charcoal, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("DRACHENZAHN"), + .itemId = ITEM_DRAGON_FANG, + .price = 100, + .holdEffect = HOLD_EFFECT_DRAGON_POWER, + .holdEffectParam = 10, + .description = gItemDescription_DragonFang, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SEIDENSCHAL"), + .itemId = ITEM_SILK_SCARF, + .price = 100, + .holdEffect = HOLD_EFFECT_NORMAL_POWER, + .holdEffectParam = 10, + .description = gItemDescription_SilkScarf, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("UP-GRADE"), + .itemId = ITEM_UP_GRADE, + .price = 2100, + .holdEffect = HOLD_EFFECT_UP_GRADE, + .holdEffectParam = 0, + .description = gItemDescription_UpGrade, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SEEGESANG"), + .itemId = ITEM_SHELL_BELL, + .price = 200, + .holdEffect = HOLD_EFFECT_SHELL_BELL, + .holdEffectParam = 8, + .description = gItemDescription_ShellBell, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SEERAUCH"), + .itemId = ITEM_SEA_INCENSE, + .price = 9600, + .holdEffect = HOLD_EFFECT_WATER_POWER, + .holdEffectParam = 5, + .description = gItemDescription_SeaIncense, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("LAXRAUCH"), + .itemId = ITEM_LAX_INCENSE, + .price = 9600, + .holdEffect = HOLD_EFFECT_EVASION_UP, + .holdEffectParam = 5, + .description = gItemDescription_LaxIncense, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("LUCKY PUNCH"), + .itemId = ITEM_LUCKY_PUNCH, + .price = 10, + .holdEffect = HOLD_EFFECT_LUCKY_PUNCH, + .holdEffectParam = 0, + .description = gItemDescription_LuckyPunch, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("METALLSTAUB"), + .itemId = ITEM_METAL_POWDER, + .price = 10, + .holdEffect = HOLD_EFFECT_METAL_POWDER, + .holdEffectParam = 0, + .description = gItemDescription_MetalPowder, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("KAMPFKNOCHEN"), + .itemId = ITEM_THICK_CLUB, + .price = 500, + .holdEffect = HOLD_EFFECT_THICK_CLUB, + .holdEffectParam = 0, + .description = gItemDescription_ThickClub, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("LAUCHSTANGE"), + .itemId = ITEM_STICK, + .price = 200, + .holdEffect = HOLD_EFFECT_STICK, + .holdEffectParam = 0, + .description = gItemDescription_Stick, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("ROTER SCHAL"), + .itemId = ITEM_RED_SCARF, + .price = 100, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_RedScarf, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("BLAUER SCHAL"), + .itemId = ITEM_BLUE_SCARF, + .price = 100, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_BlueScarf, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("ROSA SCHAL"), + .itemId = ITEM_PINK_SCARF, + .price = 100, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_PinkScarf, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("GRÜNER SCHAL"), + .itemId = ITEM_GREEN_SCARF, + .price = 100, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_GreenScarf, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("GELBER SCHAL"), + .itemId = ITEM_YELLOW_SCARF, + .price = 100, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_YellowScarf, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("EILRAD"), + .itemId = ITEM_MACH_BIKE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_MachBike, + .importance = 1, + .unk19 = 1, + .pocket = POCKET_KEY_ITEMS, + .type = 2, + .fieldUseFunc = ItemUseOutOfBattle_Bike, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("MÜNZKORB"), + .itemId = ITEM_COIN_CASE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_CoinCase, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CoinCase, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("DETEKTOR"), + .itemId = ITEM_ITEMFINDER, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Itemfinder, + .importance = 1, + .unk19 = 1, + .pocket = POCKET_KEY_ITEMS, + .type = 2, + .fieldUseFunc = ItemUseOutOfBattle_Itemfinder, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("ANGEL"), + .itemId = ITEM_OLD_ROD, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_OldRod, + .importance = 1, + .unk19 = 1, + .pocket = POCKET_KEY_ITEMS, + .type = 2, + .fieldUseFunc = ItemUseOutOfBattle_Rod, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("PROFIANGEL"), + .itemId = ITEM_GOOD_ROD, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_GoodRod, + .importance = 1, + .unk19 = 1, + .pocket = POCKET_KEY_ITEMS, + .type = 2, + .fieldUseFunc = ItemUseOutOfBattle_Rod, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 1, + }, + { + .name = _("SUPERANGEL"), + .itemId = ITEM_SUPER_ROD, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_SuperRod, + .importance = 1, + .unk19 = 1, + .pocket = POCKET_KEY_ITEMS, + .type = 2, + .fieldUseFunc = ItemUseOutOfBattle_Rod, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 2, + }, + { + .name = _("BOOTSTICKET"), + .itemId = ITEM_SS_TICKET, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_SSTicket, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("WETTB.-KARTE"), + .itemId = ITEM_CONTEST_PASS, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_ContestPass, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("WAILMERKANNE"), + .itemId = ITEM_WAILMER_PAIL, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_WailmerPail, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 2, + .fieldUseFunc = ItemUseOutOfBattle_WailmerPail, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("DEVON-WAREN"), + .itemId = ITEM_DEVON_GOODS, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_DevonGoods, + .importance = 2, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("ASCHETASCHE"), + .itemId = ITEM_SOOT_SACK, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_SootSack, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("KELLERÖFFNER"), + .itemId = ITEM_BASEMENT_KEY, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_BasementKey, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("KUNSTRAD"), + .itemId = ITEM_ACRO_BIKE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_AcroBike, + .importance = 1, + .unk19 = 1, + .pocket = POCKET_KEY_ITEMS, + .type = 2, + .fieldUseFunc = ItemUseOutOfBattle_Bike, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 1, + }, + { + .name = _("{POKEBLOCK}BOX"), + .itemId = ITEM_POKEBLOCK_CASE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_PokeblockCase, + .importance = 1, + .unk19 = 1, + .pocket = POCKET_KEY_ITEMS, + .type = 3, + .fieldUseFunc = ItemUseOutOfBattle_PokeblockCase, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("BRIEF"), + .itemId = ITEM_LETTER, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Letter, + .importance = 2, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("ÄON-TICKET"), + .itemId = ITEM_EON_TICKET, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_EonTicket, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 1, + }, + { + .name = _("ROTE KUGEL"), + .itemId = ITEM_RED_ORB, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_RedOrb, + .importance = 2, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("BLAUE KUGEL"), + .itemId = ITEM_BLUE_ORB, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_BlueOrb, + .importance = 2, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SCANNER"), + .itemId = ITEM_SCANNER, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Scanner, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("WÜSTENGLAS"), + .itemId = ITEM_GO_GOGGLES, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_GoGoggles, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("METEORIT"), + .itemId = ITEM_METEORITE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Meteorite, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("K1-SCHLÜSSEL"), + .itemId = ITEM_ROOM_1_KEY, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Room1Key, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("K2-SCHLÜSSEL"), + .itemId = ITEM_ROOM_2_KEY, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Room2Key, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("K4-SCHLÜSSEL"), + .itemId = ITEM_ROOM_4_KEY, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Room4Key, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("K6-SCHLÜSSEL"), + .itemId = ITEM_ROOM_6_KEY, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Room6Key, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("L.-SCHLÜSSEL"), + .itemId = ITEM_STORAGE_KEY, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_StorageKey, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("WURZELFOSSIL"), + .itemId = ITEM_ROOT_FOSSIL, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_RootFossil, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("KLAUENFOSSIL"), + .itemId = ITEM_CLAW_FOSSIL, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_ClawFossil, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("DEVON-SCOPE"), + .itemId = ITEM_DEVON_SCOPE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_DevonScope, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM01"), + .itemId = ITEM_TM01, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM01, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM02"), + .itemId = ITEM_TM02, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM02, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM03"), + .itemId = ITEM_TM03, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM03, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM04"), + .itemId = ITEM_TM04, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM04, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM05"), + .itemId = ITEM_TM05, + .price = 1000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM05, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM06"), + .itemId = ITEM_TM06, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM06, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM07"), + .itemId = ITEM_TM07, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM07, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM08"), + .itemId = ITEM_TM08, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM08, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM09"), + .itemId = ITEM_TM09, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM09, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM10"), + .itemId = ITEM_TM10, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM10, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM11"), + .itemId = ITEM_TM11, + .price = 2000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM11, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM12"), + .itemId = ITEM_TM12, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM12, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM13"), + .itemId = ITEM_TM13, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM13, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM14"), + .itemId = ITEM_TM14, + .price = 5500, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM14, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM15"), + .itemId = ITEM_TM15, + .price = 7500, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM15, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM16"), + .itemId = ITEM_TM16, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM16, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM17"), + .itemId = ITEM_TM17, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM17, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM18"), + .itemId = ITEM_TM18, + .price = 2000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM18, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM19"), + .itemId = ITEM_TM19, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM19, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM20"), + .itemId = ITEM_TM20, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM20, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM21"), + .itemId = ITEM_TM21, + .price = 1000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM21, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM22"), + .itemId = ITEM_TM22, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM22, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM23"), + .itemId = ITEM_TM23, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM23, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM24"), + .itemId = ITEM_TM24, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM24, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM25"), + .itemId = ITEM_TM25, + .price = 5500, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM25, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM26"), + .itemId = ITEM_TM26, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM26, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM27"), + .itemId = ITEM_TM27, + .price = 1000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM27, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM28"), + .itemId = ITEM_TM28, + .price = 2000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM28, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM29"), + .itemId = ITEM_TM29, + .price = 2000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM29, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM30"), + .itemId = ITEM_TM30, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM30, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM31"), + .itemId = ITEM_TM31, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM31, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM32"), + .itemId = ITEM_TM32, + .price = 2000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM32, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM33"), + .itemId = ITEM_TM33, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM33, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM34"), + .itemId = ITEM_TM34, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM34, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM35"), + .itemId = ITEM_TM35, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM35, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM36"), + .itemId = ITEM_TM36, + .price = 1000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM36, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM37"), + .itemId = ITEM_TM37, + .price = 2000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM37, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM38"), + .itemId = ITEM_TM38, + .price = 5500, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM38, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM39"), + .itemId = ITEM_TM39, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM39, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM40"), + .itemId = ITEM_TM40, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM40, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM41"), + .itemId = ITEM_TM41, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM41, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM42"), + .itemId = ITEM_TM42, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM42, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM43"), + .itemId = ITEM_TM43, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM43, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM44"), + .itemId = ITEM_TM44, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM44, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM45"), + .itemId = ITEM_TM45, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM45, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM46"), + .itemId = ITEM_TM46, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM46, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM47"), + .itemId = ITEM_TM47, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM47, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM48"), + .itemId = ITEM_TM48, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM48, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM49"), + .itemId = ITEM_TM49, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM49, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM50"), + .itemId = ITEM_TM50, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM50, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("VM01"), + .itemId = ITEM_HM01, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_HM01, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("VM02"), + .itemId = ITEM_HM02, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_HM02, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("VM03"), + .itemId = ITEM_HM03, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_HM03, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("VM04"), + .itemId = ITEM_HM04, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_HM04, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("VM05"), + .itemId = ITEM_HM05, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_HM05, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("VM06"), + .itemId = ITEM_HM06, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_HM06, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("VM07"), + .itemId = ITEM_HM07, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_HM07, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("VM08"), + .itemId = ITEM_HM08, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_HM08, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, +}; diff --git a/src/data/items_en.h b/src/data/items_en.h new file mode 100644 index 000000000..a3e822370 --- /dev/null +++ b/src/data/items_en.h @@ -0,0 +1,5587 @@ +const struct Item gItems[] = +{ + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("MASTER BALL"), + .itemId = ITEM_MASTER_BALL, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_MasterBall, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_POKE_BALLS, + .type = 0, + .fieldUseFunc = NULL, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_PokeBall, + .secondaryId = 0, + }, + { + .name = _("ULTRA BALL"), + .itemId = ITEM_ULTRA_BALL, + .price = 1200, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_UltraBall, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_POKE_BALLS, + .type = 1, + .fieldUseFunc = NULL, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_PokeBall, + .secondaryId = 1, + }, + { + .name = _("GREAT BALL"), + .itemId = ITEM_GREAT_BALL, + .price = 600, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_GreatBall, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_POKE_BALLS, + .type = 2, + .fieldUseFunc = NULL, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_PokeBall, + .secondaryId = 2, + }, + { + .name = _("POKé BALL"), + .itemId = ITEM_POKE_BALL, + .price = 200, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_PokeBall, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_POKE_BALLS, + .type = 3, + .fieldUseFunc = NULL, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_PokeBall, + .secondaryId = 3, + }, + { + .name = _("SAFARI BALL"), + .itemId = ITEM_SAFARI_BALL, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_SafariBall, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_POKE_BALLS, + .type = 4, + .fieldUseFunc = NULL, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_PokeBall, + .secondaryId = 4, + }, + { + .name = _("NET BALL"), + .itemId = ITEM_NET_BALL, + .price = 1000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_NetBall, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_POKE_BALLS, + .type = 5, + .fieldUseFunc = NULL, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_PokeBall, + .secondaryId = 5, + }, + { + .name = _("DIVE BALL"), + .itemId = ITEM_DIVE_BALL, + .price = 1000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_DiveBall, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_POKE_BALLS, + .type = 6, + .fieldUseFunc = NULL, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_PokeBall, + .secondaryId = 6, + }, + { + .name = _("NEST BALL"), + .itemId = ITEM_NEST_BALL, + .price = 1000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_NestBall, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_POKE_BALLS, + .type = 7, + .fieldUseFunc = NULL, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_PokeBall, + .secondaryId = 7, + }, + { + .name = _("REPEAT BALL"), + .itemId = ITEM_REPEAT_BALL, + .price = 1000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_RepeatBall, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_POKE_BALLS, + .type = 8, + .fieldUseFunc = NULL, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_PokeBall, + .secondaryId = 8, + }, + { + .name = _("TIMER BALL"), + .itemId = ITEM_TIMER_BALL, + .price = 1000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TimerBall, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_POKE_BALLS, + .type = 9, + .fieldUseFunc = NULL, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_PokeBall, + .secondaryId = 9, + }, + { + .name = _("LUXURY BALL"), + .itemId = ITEM_LUXURY_BALL, + .price = 1000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_LuxuryBall, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_POKE_BALLS, + .type = 10, + .fieldUseFunc = NULL, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_PokeBall, + .secondaryId = 10, + }, + { + .name = _("PREMIER BALL"), + .itemId = ITEM_PREMIER_BALL, + .price = 200, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_PremierBall, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_POKE_BALLS, + .type = 11, + .fieldUseFunc = NULL, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_PokeBall, + .secondaryId = 11, + }, + { + .name = _("POTION"), + .itemId = ITEM_POTION, + .price = 300, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 20, + .description = gItemDescription_Potion, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("ANTIDOTE"), + .itemId = ITEM_ANTIDOTE, + .price = 100, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Antidote, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("BURN HEAL"), + .itemId = ITEM_BURN_HEAL, + .price = 250, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_BurnHeal, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("ICE HEAL"), + .itemId = ITEM_ICE_HEAL, + .price = 250, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_IceHeal, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("AWAKENING"), + .itemId = ITEM_AWAKENING, + .price = 250, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Awakening, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("PARLYZ HEAL"), + .itemId = ITEM_PARALYZE_HEAL, + .price = 200, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_ParalyzeHeal, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("FULL RESTORE"), + .itemId = ITEM_FULL_RESTORE, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 255, + .description = gItemDescription_FullRestore, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("MAX POTION"), + .itemId = ITEM_MAX_POTION, + .price = 2500, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 255, + .description = gItemDescription_MaxPotion, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("HYPER POTION"), + .itemId = ITEM_HYPER_POTION, + .price = 1200, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 200, + .description = gItemDescription_HyperPotion, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("SUPER POTION"), + .itemId = ITEM_SUPER_POTION, + .price = 700, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 50, + .description = gItemDescription_SuperPotion, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("FULL HEAL"), + .itemId = ITEM_FULL_HEAL, + .price = 600, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_FullHeal, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("REVIVE"), + .itemId = ITEM_REVIVE, + .price = 1500, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Revive, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("MAX REVIVE"), + .itemId = ITEM_MAX_REVIVE, + .price = 4000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_MaxRevive, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("FRESH WATER"), + .itemId = ITEM_FRESH_WATER, + .price = 200, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 50, + .description = gItemDescription_FreshWater, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("SODA POP"), + .itemId = ITEM_SODA_POP, + .price = 300, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 60, + .description = gItemDescription_SodaPop, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("LEMONADE"), + .itemId = ITEM_LEMONADE, + .price = 350, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 80, + .description = gItemDescription_Lemonade, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("MOOMOO MILK"), + .itemId = ITEM_MOOMOO_MILK, + .price = 500, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 100, + .description = gItemDescription_MoomooMilk, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("ENERGYPOWDER"), + .itemId = ITEM_ENERGY_POWDER, + .price = 500, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_EnergyPowder, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("ENERGY ROOT"), + .itemId = ITEM_ENERGY_ROOT, + .price = 800, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_EnergyRoot, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("HEAL POWDER"), + .itemId = ITEM_HEAL_POWDER, + .price = 450, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_HealPowder, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("REVIVAL HERB"), + .itemId = ITEM_REVIVAL_HERB, + .price = 2800, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_RevivalHerb, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("ETHER"), + .itemId = ITEM_ETHER, + .price = 1200, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 10, + .description = gItemDescription_Ether, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_PPRecovery, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_PPRecovery, + .secondaryId = 0, + }, + { + .name = _("MAX ETHER"), + .itemId = ITEM_MAX_ETHER, + .price = 2000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 255, + .description = gItemDescription_MaxEther, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_PPRecovery, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_PPRecovery, + .secondaryId = 0, + }, + { + .name = _("ELIXIR"), + .itemId = ITEM_ELIXIR, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 10, + .description = gItemDescription_Elixir, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_PPRecovery, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_PPRecovery, + .secondaryId = 0, + }, + { + .name = _("MAX ELIXIR"), + .itemId = ITEM_MAX_ELIXIR, + .price = 4500, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 255, + .description = gItemDescription_MaxElixir, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_PPRecovery, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_PPRecovery, + .secondaryId = 0, + }, + { + .name = _("LAVA COOKIE"), + .itemId = ITEM_LAVA_COOKIE, + .price = 200, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_LavaCookie, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("BLUE FLUTE"), + .itemId = ITEM_BLUE_FLUTE, + .price = 100, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_BlueFlute, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("YELLOW FLUTE"), + .itemId = ITEM_YELLOW_FLUTE, + .price = 200, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_YellowFlute, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("RED FLUTE"), + .itemId = ITEM_RED_FLUTE, + .price = 300, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_RedFlute, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("BLACK FLUTE"), + .itemId = ITEM_BLACK_FLUTE, + .price = 400, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 50, + .description = gItemDescription_BlackFlute, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_BlackWhiteFlute, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("WHITE FLUTE"), + .itemId = ITEM_WHITE_FLUTE, + .price = 500, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 150, + .description = gItemDescription_WhiteFlute, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_BlackWhiteFlute, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("BERRY JUICE"), + .itemId = ITEM_BERRY_JUICE, + .price = 100, + .holdEffect = HOLD_EFFECT_RESTORE_HP, + .holdEffectParam = 20, + .description = gItemDescription_BerryJuice, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("SACRED ASH"), + .itemId = ITEM_SACRED_ASH, + .price = 200, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_SacredAsh, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_SacredAsh, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SHOAL SALT"), + .itemId = ITEM_SHOAL_SALT, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_ShoalSalt, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SHOAL SHELL"), + .itemId = ITEM_SHOAL_SHELL, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_ShoalShell, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("RED SHARD"), + .itemId = ITEM_RED_SHARD, + .price = 200, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_RedShard, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("BLUE SHARD"), + .itemId = ITEM_BLUE_SHARD, + .price = 200, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_BlueShard, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("YELLOW SHARD"), + .itemId = ITEM_YELLOW_SHARD, + .price = 200, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_YellowShard, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("GREEN SHARD"), + .itemId = ITEM_GREEN_SHARD, + .price = 200, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_GreenShard, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("HP UP"), + .itemId = ITEM_HP_UP, + .price = 9800, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_HPUp, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("PROTEIN"), + .itemId = ITEM_PROTEIN, + .price = 9800, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Protein, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("IRON"), + .itemId = ITEM_IRON, + .price = 9800, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Iron, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("CARBOS"), + .itemId = ITEM_CARBOS, + .price = 9800, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Carbos, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("CALCIUM"), + .itemId = ITEM_CALCIUM, + .price = 9800, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Calcium, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("RARE CANDY"), + .itemId = ITEM_RARE_CANDY, + .price = 4800, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_RareCandy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_RareCandy, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("PP UP"), + .itemId = ITEM_PP_UP, + .price = 9800, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_PPUp, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_PPUp, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("ZINC"), + .itemId = ITEM_ZINC, + .price = 9800, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Zinc, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("PP MAX"), + .itemId = ITEM_PP_MAX, + .price = 9800, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_PPMax, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_PPUp, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("GUARD SPEC."), + .itemId = ITEM_GUARD_SPEC, + .price = 700, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_GuardSpec, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_StatIncrease, + .secondaryId = 0, + }, + { + .name = _("DIRE HIT"), + .itemId = ITEM_DIRE_HIT, + .price = 650, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_DireHit, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_StatIncrease, + .secondaryId = 0, + }, + { + .name = _("X ATTACK"), + .itemId = ITEM_X_ATTACK, + .price = 500, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_XAttack, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_StatIncrease, + .secondaryId = 0, + }, + { + .name = _("X DEFEND"), + .itemId = ITEM_X_DEFEND, + .price = 550, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_XDefend, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_StatIncrease, + .secondaryId = 0, + }, + { + .name = _("X SPEED"), + .itemId = ITEM_X_SPEED, + .price = 350, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_XSpeed, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_StatIncrease, + .secondaryId = 0, + }, + { + .name = _("X ACCURACY"), + .itemId = ITEM_X_ACCURACY, + .price = 950, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_XAccuracy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_StatIncrease, + .secondaryId = 0, + }, + { + .name = _("X SPECIAL"), + .itemId = ITEM_X_SPECIAL, + .price = 350, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_XSpecial, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_StatIncrease, + .secondaryId = 0, + }, + { + .name = _("POKé DOLL"), + .itemId = ITEM_POKE_DOLL, + .price = 1000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_PokeDoll, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_Escape, + .secondaryId = 0, + }, + { + .name = _("FLUFFY TAIL"), + .itemId = ITEM_FLUFFY_TAIL, + .price = 1000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_FluffyTail, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 2, + .battleUseFunc = ItemUseInBattle_Escape, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SUPER REPEL"), + .itemId = ITEM_SUPER_REPEL, + .price = 500, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 200, + .description = gItemDescription_SuperRepel, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_Repel, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("MAX REPEL"), + .itemId = ITEM_MAX_REPEL, + .price = 700, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 250, + .description = gItemDescription_MaxRepel, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_Repel, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("ESCAPE ROPE"), + .itemId = ITEM_ESCAPE_ROPE, + .price = 550, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_EscapeRope, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 2, + .fieldUseFunc = ItemUseOutOfBattle_EscapeRope, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("REPEL"), + .itemId = ITEM_REPEL, + .price = 350, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 100, + .description = gItemDescription_Repel, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_Repel, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SUN STONE"), + .itemId = ITEM_SUN_STONE, + .price = 2100, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_SunStone, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("MOON STONE"), + .itemId = ITEM_MOON_STONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_MoonStone, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("FIRE STONE"), + .itemId = ITEM_FIRE_STONE, + .price = 2100, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_FireStone, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("THUNDERSTONE"), + .itemId = ITEM_THUNDER_STONE, + .price = 2100, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_ThunderStone, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("WATER STONE"), + .itemId = ITEM_WATER_STONE, + .price = 2100, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_WaterStone, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("LEAF STONE"), + .itemId = ITEM_LEAF_STONE, + .price = 2100, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_LeafStone, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TINYMUSHROOM"), + .itemId = ITEM_TINY_MUSHROOM, + .price = 500, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TinyMushroom, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("BIG MUSHROOM"), + .itemId = ITEM_BIG_MUSHROOM, + .price = 5000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_BigMushroom, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("PEARL"), + .itemId = ITEM_PEARL, + .price = 1400, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Pearl, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("BIG PEARL"), + .itemId = ITEM_BIG_PEARL, + .price = 7500, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_BigPearl, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("STARDUST"), + .itemId = ITEM_STARDUST, + .price = 2000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Stardust, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("STAR PIECE"), + .itemId = ITEM_STAR_PIECE, + .price = 9800, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_StarPiece, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("NUGGET"), + .itemId = ITEM_NUGGET, + .price = 10000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Nugget, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("HEART SCALE"), + .itemId = ITEM_HEART_SCALE, + .price = 100, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_HeartScale, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("ORANGE MAIL"), + .itemId = ITEM_ORANGE_MAIL, + .price = 50, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_OrangeMail, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 0, + .fieldUseFunc = ItemUseOutOfBattle_Mail, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("HARBOR MAIL"), + .itemId = ITEM_HARBOR_MAIL, + .price = 50, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_HarborMail, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 0, + .fieldUseFunc = ItemUseOutOfBattle_Mail, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 1, + }, + { + .name = _("GLITTER MAIL"), + .itemId = ITEM_GLITTER_MAIL, + .price = 50, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_GlitterMail, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 0, + .fieldUseFunc = ItemUseOutOfBattle_Mail, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 2, + }, + { + .name = _("MECH MAIL"), + .itemId = ITEM_MECH_MAIL, + .price = 50, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_MechMail, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 0, + .fieldUseFunc = ItemUseOutOfBattle_Mail, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 3, + }, + { + .name = _("WOOD MAIL"), + .itemId = ITEM_WOOD_MAIL, + .price = 50, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_WoodMail, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 0, + .fieldUseFunc = ItemUseOutOfBattle_Mail, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 4, + }, + { + .name = _("WAVE MAIL"), + .itemId = ITEM_WAVE_MAIL, + .price = 50, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_WaveMail, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 0, + .fieldUseFunc = ItemUseOutOfBattle_Mail, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 5, + }, + { + .name = _("BEAD MAIL"), + .itemId = ITEM_BEAD_MAIL, + .price = 50, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_BeadMail, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 0, + .fieldUseFunc = ItemUseOutOfBattle_Mail, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 6, + }, + { + .name = _("SHADOW MAIL"), + .itemId = ITEM_SHADOW_MAIL, + .price = 50, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_ShadowMail, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 0, + .fieldUseFunc = ItemUseOutOfBattle_Mail, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 7, + }, + { + .name = _("TROPIC MAIL"), + .itemId = ITEM_TROPIC_MAIL, + .price = 50, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TropicMail, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 0, + .fieldUseFunc = ItemUseOutOfBattle_Mail, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 8, + }, + { + .name = _("DREAM MAIL"), + .itemId = ITEM_DREAM_MAIL, + .price = 50, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_DreamMail, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 0, + .fieldUseFunc = ItemUseOutOfBattle_Mail, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 9, + }, + { + .name = _("FAB MAIL"), + .itemId = ITEM_FAB_MAIL, + .price = 50, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_FabMail, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 0, + .fieldUseFunc = ItemUseOutOfBattle_Mail, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 10, + }, + { + .name = _("RETRO MAIL"), + .itemId = ITEM_RETRO_MAIL, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_RetroMail, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 0, + .fieldUseFunc = ItemUseOutOfBattle_Mail, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 11, + }, + { + .name = _("CHERI BERRY"), + .itemId = ITEM_CHERI_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_CURE_PAR, + .holdEffectParam = 0, + .description = gItemDescription_CheriBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("CHESTO BERRY"), + .itemId = ITEM_CHESTO_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_CURE_SLP, + .holdEffectParam = 0, + .description = gItemDescription_ChestoBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("PECHA BERRY"), + .itemId = ITEM_PECHA_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_CURE_PSN, + .holdEffectParam = 0, + .description = gItemDescription_PechaBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("RAWST BERRY"), + .itemId = ITEM_RAWST_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_CURE_BRN, + .holdEffectParam = 0, + .description = gItemDescription_RawstBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("ASPEAR BERRY"), + .itemId = ITEM_ASPEAR_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_CURE_FRZ, + .holdEffectParam = 0, + .description = gItemDescription_AspearBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("LEPPA BERRY"), + .itemId = ITEM_LEPPA_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_RESTORE_PP, + .holdEffectParam = 10, + .description = gItemDescription_LeppaBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_PPRecovery, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_PPRecovery, + .secondaryId = 0, + }, + { + .name = _("ORAN BERRY"), + .itemId = ITEM_ORAN_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_RESTORE_HP, + .holdEffectParam = 10, + .description = gItemDescription_OranBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("PERSIM BERRY"), + .itemId = ITEM_PERSIM_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_CURE_CONFUSION, + .holdEffectParam = 0, + .description = gItemDescription_PersimBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("LUM BERRY"), + .itemId = ITEM_LUM_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_CURE_STATUS, + .holdEffectParam = 0, + .description = gItemDescription_LumBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("SITRUS BERRY"), + .itemId = ITEM_SITRUS_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_RESTORE_HP, + .holdEffectParam = 30, + .description = gItemDescription_SitrusBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_Medicine, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_Medicine, + .secondaryId = 0, + }, + { + .name = _("FIGY BERRY"), + .itemId = ITEM_FIGY_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_CONFUSE_SPICY, + .holdEffectParam = 8, + .description = gItemDescription_FigyBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("WIKI BERRY"), + .itemId = ITEM_WIKI_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_CONFUSE_DRY, + .holdEffectParam = 8, + .description = gItemDescription_WikiBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("MAGO BERRY"), + .itemId = ITEM_MAGO_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_CONFUSE_SWEET, + .holdEffectParam = 8, + .description = gItemDescription_MagoBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("AGUAV BERRY"), + .itemId = ITEM_AGUAV_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_CONFUSE_BITTER, + .holdEffectParam = 8, + .description = gItemDescription_AguavBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("IAPAPA BERRY"), + .itemId = ITEM_IAPAPA_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_CONFUSE_SOUR, + .holdEffectParam = 8, + .description = gItemDescription_IapapaBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("RAZZ BERRY"), + .itemId = ITEM_RAZZ_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_RazzBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("BLUK BERRY"), + .itemId = ITEM_BLUK_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_BlukBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("NANAB BERRY"), + .itemId = ITEM_NANAB_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_NanabBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("WEPEAR BERRY"), + .itemId = ITEM_WEPEAR_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_WepearBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("PINAP BERRY"), + .itemId = ITEM_PINAP_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_PinapBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("POMEG BERRY"), + .itemId = ITEM_POMEG_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_PomegBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("KELPSY BERRY"), + .itemId = ITEM_KELPSY_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_KelpsyBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("QUALOT BERRY"), + .itemId = ITEM_QUALOT_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_QualotBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("HONDEW BERRY"), + .itemId = ITEM_HONDEW_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_HondewBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("GREPA BERRY"), + .itemId = ITEM_GREPA_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_GrepaBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TAMATO BERRY"), + .itemId = ITEM_TAMATO_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TamatoBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("CORNN BERRY"), + .itemId = ITEM_CORNN_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_CornnBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("MAGOST BERRY"), + .itemId = ITEM_MAGOST_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_MagostBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("RABUTA BERRY"), + .itemId = ITEM_RABUTA_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_RabutaBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("NOMEL BERRY"), + .itemId = ITEM_NOMEL_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_NomelBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SPELON BERRY"), + .itemId = ITEM_SPELON_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_SpelonBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("PAMTRE BERRY"), + .itemId = ITEM_PAMTRE_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_PamtreBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("WATMEL BERRY"), + .itemId = ITEM_WATMEL_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_WatmelBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("DURIN BERRY"), + .itemId = ITEM_DURIN_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_DurinBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("BELUE BERRY"), + .itemId = ITEM_BELUE_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_BelueBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("LIECHI BERRY"), + .itemId = ITEM_LIECHI_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_ATTACK_UP, + .holdEffectParam = 4, + .description = gItemDescription_LiechiBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("GANLON BERRY"), + .itemId = ITEM_GANLON_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_DEFENSE_UP, + .holdEffectParam = 4, + .description = gItemDescription_GanlonBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SALAC BERRY"), + .itemId = ITEM_SALAC_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_SPEED_UP, + .holdEffectParam = 4, + .description = gItemDescription_SalacBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("PETAYA BERRY"), + .itemId = ITEM_PETAYA_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_SP_ATTACK_UP, + .holdEffectParam = 4, + .description = gItemDescription_PetayaBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("APICOT BERRY"), + .itemId = ITEM_APICOT_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_SP_DEFENSE_UP, + .holdEffectParam = 4, + .description = gItemDescription_ApicotBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("LANSAT BERRY"), + .itemId = ITEM_LANSAT_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_CRITICAL_UP, + .holdEffectParam = 4, + .description = gItemDescription_LansatBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("STARF BERRY"), + .itemId = ITEM_STARF_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_RANDOM_STAT_UP, + .holdEffectParam = 4, + .description = gItemDescription_StarfBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("ENIGMA BERRY"), + .itemId = ITEM_ENIGMA_BERRY, + .price = 20, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_EnigmaBerry, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_BERRIES, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_EnigmaBerry, + .battleUsage = 1, + .battleUseFunc = ItemUseInBattle_EnigmaBerry, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("BRIGHTPOWDER"), + .itemId = ITEM_BRIGHT_POWDER, + .price = 10, + .holdEffect = HOLD_EFFECT_EVASION_UP, + .holdEffectParam = 10, + .description = gItemDescription_BrightPowder, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("WHITE HERB"), + .itemId = ITEM_WHITE_HERB, + .price = 100, + .holdEffect = HOLD_EFFECT_RESTORE_STATS, + .holdEffectParam = 0, + .description = gItemDescription_WhiteHerb, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("MACHO BRACE"), + .itemId = ITEM_MACHO_BRACE, + .price = 3000, + .holdEffect = HOLD_EFFECT_MACHO_BRACE, + .holdEffectParam = 0, + .description = gItemDescription_MachoBrace, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("EXP. SHARE"), + .itemId = ITEM_EXP_SHARE, + .price = 3000, + .holdEffect = HOLD_EFFECT_EXP_SHARE, + .holdEffectParam = 0, + .description = gItemDescription_ExpShare, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("QUICK CLAW"), + .itemId = ITEM_QUICK_CLAW, + .price = 100, + .holdEffect = HOLD_EFFECT_QUICK_CLAW, + .holdEffectParam = 20, + .description = gItemDescription_QuickClaw, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SOOTHE BELL"), + .itemId = ITEM_SOOTHE_BELL, + .price = 100, + .holdEffect = HOLD_EFFECT_HAPPINESS_UP, + .holdEffectParam = 0, + .description = gItemDescription_SootheBell, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("MENTAL HERB"), + .itemId = ITEM_MENTAL_HERB, + .price = 100, + .holdEffect = HOLD_EFFECT_CURE_ATTRACT, + .holdEffectParam = 0, + .description = gItemDescription_MentalHerb, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("CHOICE BAND"), + .itemId = ITEM_CHOICE_BAND, + .price = 100, + .holdEffect = HOLD_EFFECT_CHOICE_BAND, + .holdEffectParam = 0, + .description = gItemDescription_ChoiceBand, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("KING’S ROCK"), + .itemId = ITEM_KINGS_ROCK, + .price = 100, + .holdEffect = HOLD_EFFECT_FLINCH, + .holdEffectParam = 10, + .description = gItemDescription_KingsRock, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SILVERPOWDER"), + .itemId = ITEM_SILVER_POWDER, + .price = 100, + .holdEffect = HOLD_EFFECT_BUG_POWER, + .holdEffectParam = 10, + .description = gItemDescription_SilverPowder, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("AMULET COIN"), + .itemId = ITEM_AMULET_COIN, + .price = 100, + .holdEffect = HOLD_EFFECT_DOUBLE_PRIZE, + .holdEffectParam = 10, + .description = gItemDescription_AmuletCoin, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("CLEANSE TAG"), + .itemId = ITEM_CLEANSE_TAG, + .price = 200, + .holdEffect = HOLD_EFFECT_REPEL, + .holdEffectParam = 0, + .description = gItemDescription_CleanseTag, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SOUL DEW"), + .itemId = ITEM_SOUL_DEW, + .price = 200, + .holdEffect = HOLD_EFFECT_SOUL_DEW, + .holdEffectParam = 0, + .description = gItemDescription_SoulDew, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("DEEPSEATOOTH"), + .itemId = ITEM_DEEP_SEA_TOOTH, + .price = 200, + .holdEffect = HOLD_EFFECT_DEEP_SEA_TOOTH, + .holdEffectParam = 0, + .description = gItemDescription_DeepSeaTooth, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("DEEPSEASCALE"), + .itemId = ITEM_DEEP_SEA_SCALE, + .price = 200, + .holdEffect = HOLD_EFFECT_DEEP_SEA_SCALE, + .holdEffectParam = 0, + .description = gItemDescription_DeepSeaScale, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SMOKE BALL"), + .itemId = ITEM_SMOKE_BALL, + .price = 200, + .holdEffect = HOLD_EFFECT_CAN_ALWAYS_RUN, + .holdEffectParam = 0, + .description = gItemDescription_SmokeBall, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("EVERSTONE"), + .itemId = ITEM_EVERSTONE, + .price = 200, + .holdEffect = HOLD_EFFECT_PREVENT_EVOLVE, + .holdEffectParam = 0, + .description = gItemDescription_Everstone, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("FOCUS BAND"), + .itemId = ITEM_FOCUS_BAND, + .price = 200, + .holdEffect = HOLD_EFFECT_FOCUS_BAND, + .holdEffectParam = 10, + .description = gItemDescription_FocusBand, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("LUCKY EGG"), + .itemId = ITEM_LUCKY_EGG, + .price = 200, + .holdEffect = HOLD_EFFECT_LUCKY_EGG, + .holdEffectParam = 0, + .description = gItemDescription_LuckyEgg, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SCOPE LENS"), + .itemId = ITEM_SCOPE_LENS, + .price = 200, + .holdEffect = HOLD_EFFECT_SCOPE_LENS, + .holdEffectParam = 0, + .description = gItemDescription_ScopeLens, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("METAL COAT"), + .itemId = ITEM_METAL_COAT, + .price = 100, + .holdEffect = HOLD_EFFECT_STEEL_POWER, + .holdEffectParam = 10, + .description = gItemDescription_MetalCoat, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("LEFTOVERS"), + .itemId = ITEM_LEFTOVERS, + .price = 200, + .holdEffect = HOLD_EFFECT_LEFTOVERS, + .holdEffectParam = 10, + .description = gItemDescription_Leftovers, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("DRAGON SCALE"), + .itemId = ITEM_DRAGON_SCALE, + .price = 2100, + .holdEffect = HOLD_EFFECT_DRAGON_SCALE, + .holdEffectParam = 10, + .description = gItemDescription_DragonScale, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("LIGHT BALL"), + .itemId = ITEM_LIGHT_BALL, + .price = 100, + .holdEffect = HOLD_EFFECT_LIGHT_BALL, + .holdEffectParam = 0, + .description = gItemDescription_LightBall, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SOFT SAND"), + .itemId = ITEM_SOFT_SAND, + .price = 100, + .holdEffect = HOLD_EFFECT_GROUND_POWER, + .holdEffectParam = 10, + .description = gItemDescription_SoftSand, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("HARD STONE"), + .itemId = ITEM_HARD_STONE, + .price = 100, + .holdEffect = HOLD_EFFECT_ROCK_POWER, + .holdEffectParam = 10, + .description = gItemDescription_HardStone, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("MIRACLE SEED"), + .itemId = ITEM_MIRACLE_SEED, + .price = 100, + .holdEffect = HOLD_EFFECT_GRASS_POWER, + .holdEffectParam = 10, + .description = gItemDescription_MiracleSeed, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("BLACKGLASSES"), + .itemId = ITEM_BLACK_GLASSES, + .price = 100, + .holdEffect = HOLD_EFFECT_DARK_POWER, + .holdEffectParam = 10, + .description = gItemDescription_BlackGlasses, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("BLACK BELT"), + .itemId = ITEM_BLACK_BELT, + .price = 100, + .holdEffect = HOLD_EFFECT_FIGHTING_POWER, + .holdEffectParam = 10, + .description = gItemDescription_BlackBelt, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("MAGNET"), + .itemId = ITEM_MAGNET, + .price = 100, + .holdEffect = HOLD_EFFECT_ELECTRIC_POWER, + .holdEffectParam = 10, + .description = gItemDescription_Magnet, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("MYSTIC WATER"), + .itemId = ITEM_MYSTIC_WATER, + .price = 100, + .holdEffect = HOLD_EFFECT_WATER_POWER, + .holdEffectParam = 10, + .description = gItemDescription_MysticWater, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SHARP BEAK"), + .itemId = ITEM_SHARP_BEAK, + .price = 100, + .holdEffect = HOLD_EFFECT_FLYING_POWER, + .holdEffectParam = 10, + .description = gItemDescription_SharpBeak, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("POISON BARB"), + .itemId = ITEM_POISON_BARB, + .price = 100, + .holdEffect = HOLD_EFFECT_POISON_POWER, + .holdEffectParam = 10, + .description = gItemDescription_PoisonBarb, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("NEVERMELTICE"), + .itemId = ITEM_NEVER_MELT_ICE, + .price = 100, + .holdEffect = HOLD_EFFECT_ICE_POWER, + .holdEffectParam = 10, + .description = gItemDescription_NeverMeltIce, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SPELL TAG"), + .itemId = ITEM_SPELL_TAG, + .price = 100, + .holdEffect = HOLD_EFFECT_GHOST_POWER, + .holdEffectParam = 10, + .description = gItemDescription_SpellTag, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TWISTEDSPOON"), + .itemId = ITEM_TWISTED_SPOON, + .price = 100, + .holdEffect = HOLD_EFFECT_PSYCHIC_POWER, + .holdEffectParam = 10, + .description = gItemDescription_TwistedSpoon, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("CHARCOAL"), + .itemId = ITEM_CHARCOAL, + .price = 9800, + .holdEffect = HOLD_EFFECT_FIRE_POWER, + .holdEffectParam = 10, + .description = gItemDescription_Charcoal, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("DRAGON FANG"), + .itemId = ITEM_DRAGON_FANG, + .price = 100, + .holdEffect = HOLD_EFFECT_DRAGON_POWER, + .holdEffectParam = 10, + .description = gItemDescription_DragonFang, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SILK SCARF"), + .itemId = ITEM_SILK_SCARF, + .price = 100, + .holdEffect = HOLD_EFFECT_NORMAL_POWER, + .holdEffectParam = 10, + .description = gItemDescription_SilkScarf, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("UP-GRADE"), + .itemId = ITEM_UP_GRADE, + .price = 2100, + .holdEffect = HOLD_EFFECT_UP_GRADE, + .holdEffectParam = 0, + .description = gItemDescription_UpGrade, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SHELL BELL"), + .itemId = ITEM_SHELL_BELL, + .price = 200, + .holdEffect = HOLD_EFFECT_SHELL_BELL, + .holdEffectParam = 8, + .description = gItemDescription_ShellBell, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SEA INCENSE"), + .itemId = ITEM_SEA_INCENSE, + .price = 9600, + .holdEffect = HOLD_EFFECT_WATER_POWER, + .holdEffectParam = 5, + .description = gItemDescription_SeaIncense, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("LAX INCENSE"), + .itemId = ITEM_LAX_INCENSE, + .price = 9600, + .holdEffect = HOLD_EFFECT_EVASION_UP, + .holdEffectParam = 5, + .description = gItemDescription_LaxIncense, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("LUCKY PUNCH"), + .itemId = ITEM_LUCKY_PUNCH, + .price = 10, + .holdEffect = HOLD_EFFECT_LUCKY_PUNCH, + .holdEffectParam = 0, + .description = gItemDescription_LuckyPunch, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("METAL POWDER"), + .itemId = ITEM_METAL_POWDER, + .price = 10, + .holdEffect = HOLD_EFFECT_METAL_POWDER, + .holdEffectParam = 0, + .description = gItemDescription_MetalPowder, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("THICK CLUB"), + .itemId = ITEM_THICK_CLUB, + .price = 500, + .holdEffect = HOLD_EFFECT_THICK_CLUB, + .holdEffectParam = 0, + .description = gItemDescription_ThickClub, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("STICK"), + .itemId = ITEM_STICK, + .price = 200, + .holdEffect = HOLD_EFFECT_STICK, + .holdEffectParam = 0, + .description = gItemDescription_Stick, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("RED SCARF"), + .itemId = ITEM_RED_SCARF, + .price = 100, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_RedScarf, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("BLUE SCARF"), + .itemId = ITEM_BLUE_SCARF, + .price = 100, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_BlueScarf, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("PINK SCARF"), + .itemId = ITEM_PINK_SCARF, + .price = 100, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_PinkScarf, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("GREEN SCARF"), + .itemId = ITEM_GREEN_SCARF, + .price = 100, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_GreenScarf, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("YELLOW SCARF"), + .itemId = ITEM_YELLOW_SCARF, + .price = 100, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_YellowScarf, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("MACH BIKE"), + .itemId = ITEM_MACH_BIKE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_MachBike, + .importance = 1, + .unk19 = 1, + .pocket = POCKET_KEY_ITEMS, + .type = 2, + .fieldUseFunc = ItemUseOutOfBattle_Bike, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("COIN CASE"), + .itemId = ITEM_COIN_CASE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_CoinCase, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CoinCase, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("ITEMFINDER"), + .itemId = ITEM_ITEMFINDER, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Itemfinder, + .importance = 1, + .unk19 = 1, + .pocket = POCKET_KEY_ITEMS, + .type = 2, + .fieldUseFunc = ItemUseOutOfBattle_Itemfinder, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("OLD ROD"), + .itemId = ITEM_OLD_ROD, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_OldRod, + .importance = 1, + .unk19 = 1, + .pocket = POCKET_KEY_ITEMS, + .type = 2, + .fieldUseFunc = ItemUseOutOfBattle_Rod, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("GOOD ROD"), + .itemId = ITEM_GOOD_ROD, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_GoodRod, + .importance = 1, + .unk19 = 1, + .pocket = POCKET_KEY_ITEMS, + .type = 2, + .fieldUseFunc = ItemUseOutOfBattle_Rod, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 1, + }, + { + .name = _("SUPER ROD"), + .itemId = ITEM_SUPER_ROD, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_SuperRod, + .importance = 1, + .unk19 = 1, + .pocket = POCKET_KEY_ITEMS, + .type = 2, + .fieldUseFunc = ItemUseOutOfBattle_Rod, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 2, + }, + { + .name = _("S.S. TICKET"), + .itemId = ITEM_SS_TICKET, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_SSTicket, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("CONTEST PASS"), + .itemId = ITEM_CONTEST_PASS, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_ContestPass, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("WAILMER PAIL"), + .itemId = ITEM_WAILMER_PAIL, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_WailmerPail, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 2, + .fieldUseFunc = ItemUseOutOfBattle_WailmerPail, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("DEVON GOODS"), + .itemId = ITEM_DEVON_GOODS, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_DevonGoods, + .importance = 2, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SOOT SACK"), + .itemId = ITEM_SOOT_SACK, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_SootSack, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("BASEMENT KEY"), + .itemId = ITEM_BASEMENT_KEY, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_BasementKey, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("ACRO BIKE"), + .itemId = ITEM_ACRO_BIKE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_AcroBike, + .importance = 1, + .unk19 = 1, + .pocket = POCKET_KEY_ITEMS, + .type = 2, + .fieldUseFunc = ItemUseOutOfBattle_Bike, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 1, + }, + { + .name = _("{POKEBLOCK} CASE"), + .itemId = ITEM_POKEBLOCK_CASE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_PokeblockCase, + .importance = 1, + .unk19 = 1, + .pocket = POCKET_KEY_ITEMS, + .type = 3, + .fieldUseFunc = ItemUseOutOfBattle_PokeblockCase, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("LETTER"), + .itemId = ITEM_LETTER, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Letter, + .importance = 2, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("EON TICKET"), + .itemId = ITEM_EON_TICKET, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_EonTicket, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 1, + }, + { + .name = _("RED ORB"), + .itemId = ITEM_RED_ORB, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_RedOrb, + .importance = 2, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("BLUE ORB"), + .itemId = ITEM_BLUE_ORB, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_BlueOrb, + .importance = 2, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("SCANNER"), + .itemId = ITEM_SCANNER, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Scanner, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("GO-GOGGLES"), + .itemId = ITEM_GO_GOGGLES, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_GoGoggles, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("METEORITE"), + .itemId = ITEM_METEORITE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Meteorite, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("RM. 1 KEY"), + .itemId = ITEM_ROOM_1_KEY, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Room1Key, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("RM. 2 KEY"), + .itemId = ITEM_ROOM_2_KEY, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Room2Key, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("RM. 4 KEY"), + .itemId = ITEM_ROOM_4_KEY, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Room4Key, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("RM. 6 KEY"), + .itemId = ITEM_ROOM_6_KEY, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Room6Key, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("STORAGE KEY"), + .itemId = ITEM_STORAGE_KEY, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_StorageKey, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("ROOT FOSSIL"), + .itemId = ITEM_ROOT_FOSSIL, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_RootFossil, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("CLAW FOSSIL"), + .itemId = ITEM_CLAW_FOSSIL, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_ClawFossil, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("DEVON SCOPE"), + .itemId = ITEM_DEVON_SCOPE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_DevonScope, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_KEY_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM01"), + .itemId = ITEM_TM01, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM01, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM02"), + .itemId = ITEM_TM02, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM02, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM03"), + .itemId = ITEM_TM03, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM03, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM04"), + .itemId = ITEM_TM04, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM04, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM05"), + .itemId = ITEM_TM05, + .price = 1000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM05, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM06"), + .itemId = ITEM_TM06, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM06, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM07"), + .itemId = ITEM_TM07, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM07, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM08"), + .itemId = ITEM_TM08, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM08, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM09"), + .itemId = ITEM_TM09, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM09, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM10"), + .itemId = ITEM_TM10, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM10, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM11"), + .itemId = ITEM_TM11, + .price = 2000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM11, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM12"), + .itemId = ITEM_TM12, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM12, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM13"), + .itemId = ITEM_TM13, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM13, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM14"), + .itemId = ITEM_TM14, + .price = 5500, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM14, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM15"), + .itemId = ITEM_TM15, + .price = 7500, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM15, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM16"), + .itemId = ITEM_TM16, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM16, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM17"), + .itemId = ITEM_TM17, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM17, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM18"), + .itemId = ITEM_TM18, + .price = 2000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM18, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM19"), + .itemId = ITEM_TM19, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM19, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM20"), + .itemId = ITEM_TM20, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM20, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM21"), + .itemId = ITEM_TM21, + .price = 1000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM21, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM22"), + .itemId = ITEM_TM22, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM22, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM23"), + .itemId = ITEM_TM23, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM23, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM24"), + .itemId = ITEM_TM24, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM24, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM25"), + .itemId = ITEM_TM25, + .price = 5500, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM25, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM26"), + .itemId = ITEM_TM26, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM26, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM27"), + .itemId = ITEM_TM27, + .price = 1000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM27, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM28"), + .itemId = ITEM_TM28, + .price = 2000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM28, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM29"), + .itemId = ITEM_TM29, + .price = 2000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM29, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM30"), + .itemId = ITEM_TM30, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM30, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM31"), + .itemId = ITEM_TM31, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM31, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM32"), + .itemId = ITEM_TM32, + .price = 2000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM32, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM33"), + .itemId = ITEM_TM33, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM33, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM34"), + .itemId = ITEM_TM34, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM34, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM35"), + .itemId = ITEM_TM35, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM35, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM36"), + .itemId = ITEM_TM36, + .price = 1000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM36, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM37"), + .itemId = ITEM_TM37, + .price = 2000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM37, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM38"), + .itemId = ITEM_TM38, + .price = 5500, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM38, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM39"), + .itemId = ITEM_TM39, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM39, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM40"), + .itemId = ITEM_TM40, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM40, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM41"), + .itemId = ITEM_TM41, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM41, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM42"), + .itemId = ITEM_TM42, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM42, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM43"), + .itemId = ITEM_TM43, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM43, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM44"), + .itemId = ITEM_TM44, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM44, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM45"), + .itemId = ITEM_TM45, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM45, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM46"), + .itemId = ITEM_TM46, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM46, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM47"), + .itemId = ITEM_TM47, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM47, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM48"), + .itemId = ITEM_TM48, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM48, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM49"), + .itemId = ITEM_TM49, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM49, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("TM50"), + .itemId = ITEM_TM50, + .price = 3000, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_TM50, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("HM01"), + .itemId = ITEM_HM01, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_HM01, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("HM02"), + .itemId = ITEM_HM02, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_HM02, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("HM03"), + .itemId = ITEM_HM03, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_HM03, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("HM04"), + .itemId = ITEM_HM04, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_HM04, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("HM05"), + .itemId = ITEM_HM05, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_HM05, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("HM06"), + .itemId = ITEM_HM06, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_HM06, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("HM07"), + .itemId = ITEM_HM07, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_HM07, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("HM08"), + .itemId = ITEM_HM08, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_HM08, + .importance = 1, + .unk19 = 0, + .pocket = POCKET_TM_HM, + .type = 1, + .fieldUseFunc = ItemUseOutOfBattle_TMHM, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, + { + .name = _("????????"), + .itemId = ITEM_NONE, + .price = 0, + .holdEffect = HOLD_EFFECT_NONE, + .holdEffectParam = 0, + .description = gItemDescription_Dummy, + .importance = 0, + .unk19 = 0, + .pocket = POCKET_ITEMS, + .type = 4, + .fieldUseFunc = ItemUseOutOfBattle_CannotUse, + .battleUsage = 0, + .battleUseFunc = NULL, + .secondaryId = 0, + }, +}; diff --git a/src/data/pokedex_entries_de.h b/src/data/pokedex_entries_de.h index 38263ec6e..0f64cba66 100644 --- a/src/data/pokedex_entries_de.h +++ b/src/data/pokedex_entries_de.h @@ -1,3 +1,11 @@ +#ifdef SAPPHIRE +static const u8 DexDescription_Dummy_1[] = _( + "Dieses POKéMON wurde erst vor kurzem \n" + "entdeckt und wird noch erforscht."); +static const u8 DexDescription_Dummy_2[] = _( + "Zur Zeit sind keine genauen Informatio-\n" + "nen über dieses POKéMON vorhanden."); +#else static const u8 DexDescription_Dummy_1[] = _( "Dieses POKéMON wurde erst vor kurzem \n" "entdeckt und wird noch erforscht."); @@ -5,7 +13,17 @@ static const u8 DexDescription_Dummy_2[] = _( "Zur Zeit sind keine genauen\n" "Informationen über dieses\n" "POKéMON vorhanden."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Bisasam_1[] = _( + "BISASAM macht gern einmal ein\n" + "Nickerchen im Sonnenschein.\n" + "Auf seinem Rücken trägt es einen Samen."); +static const u8 DexDescription_Bisasam_2[] = _( + "Indem es Sonnenstrahlen aufsaugt,\n" + "wird er zunehmend größer."); +#else static const u8 DexDescription_Bisasam_1[] = _( "BISASAM macht gern einmal ein\n" "Nickerchen im Sonnenschein.\n" @@ -13,7 +31,18 @@ static const u8 DexDescription_Bisasam_1[] = _( static const u8 DexDescription_Bisasam_2[] = _( "Indem es Sonnenstrahlen aufsaugt,\n" "wird der Samen zunehmend größer."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Bisaknosp_1[] = _( + "BISAKNOSP hat eine Knospe auf seinem\n" + "Rücken. Seine Beine und sein Stamm sind\n" + "kräftig genug, um sein Gewicht zu"); +static const u8 DexDescription_Bisaknosp_2[] = _( + "tragen. Wenn es lange in der Sonne liegt,\n" + "ist das ein Anzeichen dafür, dass die\n" + "Knospe bald blüht."); +#else static const u8 DexDescription_Bisaknosp_1[] = _( "BISAKNOSP hat eine Knospe auf seinem\n" "Rücken. Beine und Rumpf sind kräftig\n" @@ -22,7 +51,17 @@ static const u8 DexDescription_Bisaknosp_2[] = _( "Wenn es lange in der Sonne liegt, ist das\n" "ein Anzeichen dafür, dass die Knospe\n" "bald blüht."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Bisaflor_1[] = _( + "BISAFLOR hat eine Blume auf seinem\n" + "Rücken. Wenn sie viel Nahrung und Sonne\n" + "aufnimmt, verfärbt sie sich bunt."); +static const u8 DexDescription_Bisaflor_2[] = _( + "Der Duft der Blume besänftigt die\n" + "Gemüter der Menschen."); +#else static const u8 DexDescription_Bisaflor_1[] = _( "BISAFLOR hat eine Blume auf seinem\n" "Rücken. Wenn sie viel Nahrung und Sonne\n" @@ -30,7 +69,17 @@ static const u8 DexDescription_Bisaflor_1[] = _( static const u8 DexDescription_Bisaflor_2[] = _( "Der Duft der Blume mildert die Emotionen\n" "der Menschen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Glumanda_1[] = _( + "Die Flamme auf seiner Schweifspitze\n" + "zeigt seine Gefühlslage an. Sie\n" + "flackert, wenn GLUMANDA zufrieden ist."); +static const u8 DexDescription_Glumanda_2[] = _( + "Wenn dieses POKéMON wütend wird, lodert\n" + "die Flamme sehr stark."); +#else static const u8 DexDescription_Glumanda_1[] = _( "Die Flamme auf seiner Schweifspitze\n" "zeigt seine Gefühlslage an. Sie\n" @@ -38,7 +87,18 @@ static const u8 DexDescription_Glumanda_1[] = _( static const u8 DexDescription_Glumanda_2[] = _( "Wenn dieses POKéMON wütend wird, lodert\n" "die Flamme gewaltig."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Glutexo_1[] = _( + "GLUTEXO attackiert seine Feinde mit\n" + "aller Gewalt und unter Einsatz seiner\n" + "scharfen Krallen. Trifft es auf starke"); +static const u8 DexDescription_Glutexo_2[] = _( + "Gegner, wird es wütend und die\n" + "Flamme auf seiner Schweifspitze\n" + "flackert in einem bläulichen Ton."); +#else static const u8 DexDescription_Glutexo_1[] = _( "Gnadenlos besiegt GLUTEXO seine Geg-\n" "ner mit seinen scharfen Klauen. Wenn es \n" @@ -47,7 +107,17 @@ static const u8 DexDescription_Glutexo_2[] = _( "wütend und die Flamme auf seiner\n" "Schweifspitze flackert in einem\n" "bläulichen Ton."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Glurak_1[] = _( + "GLURAK fliegt durch die Lüfte, um\n" + "starke Gegner aufzuspüren. Sein heißer\n" + "Feueratem bringt alles zum Schmelzen."); +static const u8 DexDescription_Glurak_2[] = _( + "Aber es richtet seinen Feueratem nie\n" + "gegen schwächere Gegner."); +#else static const u8 DexDescription_Glurak_1[] = _( "GLURAK fliegt durch die Lüfte, um\n" "starke Gegner aufzuspüren. Sein heißer\n" @@ -55,6 +125,7 @@ static const u8 DexDescription_Glurak_1[] = _( static const u8 DexDescription_Glurak_2[] = _( "Aber es richtet seinen Feueratem nie\n" "auf schwächere Gegner."); +#endif static const u8 DexDescription_Schiggy_1[] = _( "SCHIGGYs Panzer dient nicht nur zum\n" @@ -81,6 +152,15 @@ static const u8 DexDescription_Turtok_2[] = _( "verschießen, dass es damit aus fast\n" "50 Metern leere Dosen trifft."); +#ifdef SAPPHIRE +static const u8 DexDescription_Raupy_1[] = _( + "RAUPY ist sehr gefräßig. Es kann\n" + "Blätter verschlingen, die seine eigene\n" + "Größe um ein Vielfaches übersteigen."); +static const u8 DexDescription_Raupy_2[] = _( + "Seine Antennen sondern einen\n" + "übel riechenden Gestank ab."); +#else static const u8 DexDescription_Raupy_1[] = _( "RAUPY ist sehr gefräßig, es kann\n" "Blätter verschlingen, die größer sind\n" @@ -88,7 +168,17 @@ static const u8 DexDescription_Raupy_1[] = _( static const u8 DexDescription_Raupy_2[] = _( "Seine Antennen sondern einen\n" "übel riechenden Gestank ab."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Safcon_1[] = _( + "Der Panzer dieses POKéMON ist hart wie\n" + "Stahl. SAFCON bewegt sich kaum, da es\n" + "das weiche Innere unter seiner harten"); +static const u8 DexDescription_Safcon_2[] = _( + "Schale auf seine Entwicklung \n" + "vorbereitet."); +#else static const u8 DexDescription_Safcon_1[] = _( "Der Panzer dieses POKéMON ist hart wie\n" "Stahl. SAFCON bewegt sich kaum,"); @@ -96,6 +186,7 @@ static const u8 DexDescription_Safcon_2[] = _( "da es das weiche Innere unter seiner\n" "harten Schale auf seine Entwicklung \n" "vorbereitet."); +#endif static const u8 DexDescription_Smettbo_1[] = _( "SMETTBOs größte Fähigkeit ist das Auf-\n" @@ -105,6 +196,16 @@ static const u8 DexDescription_Smettbo_2[] = _( "fast 10 km von seinem Nest entfernt\n" "blühen."); +#ifdef SAPPHIRE +static const u8 DexDescription_Hornliu_1[] = _( + "HORNLIU verfügt über einen ausge-\n" + "zeichneten Geruchssinn. Es ist in der\n" + "Lage, seine Lieblingsblätter von denen"); +static const u8 DexDescription_Hornliu_2[] = _( + "zu unterscheiden, die es nicht mag,\n" + "indem es mit seinem großen roten\n" + "Rüssel daran schnuppert."); +#else static const u8 DexDescription_Hornliu_1[] = _( "HORNLIU verfügt über einen ausge-\n" "zeichneten Geruchssinn. So kann es\n" @@ -113,7 +214,18 @@ static const u8 DexDescription_Hornliu_2[] = _( "unterscheiden, die es nicht mag, indem\n" "es mit seiner großen roten Nase daran\n" "schnuppert."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Kokuna_1[] = _( + "KOKUNA bewegt sich kaum, wenn es sich\n" + "an einen Baum heftet. In seinem Inneren\n" + "jedoch regt sich einiges, da es sich auf"); +static const u8 DexDescription_Kokuna_2[] = _( + "seine bevorstehende Entwicklung \n" + "vorbereitet. Dabei wird seine Schale\n" + "sehr heiß."); +#else static const u8 DexDescription_Kokuna_1[] = _( "KOKUNA bewegt sich kaum, wenn es an\n" "einem Baum haftet. In seinem Inneren\n" @@ -122,14 +234,33 @@ static const u8 DexDescription_Kokuna_2[] = _( "seine bevorstehende Entwicklung vor-\n" "bereitet. Dabei wird seine Schale sehr\n" "heiß."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Bibor_1[] = _( + "BIBOR ist sehr wehrhaft. Es sollte sich\n" + "besser niemand seinem Nest nähern."); +static const u8 DexDescription_Bibor_2[] = _( + "Wenn man sie ärgert, greifen sie in\n" + "Schwärmen an."); +#else static const u8 DexDescription_Bibor_1[] = _( "BIBOR sind sehr wehrhaft. Es sollte sich\n" "besser niemand ihrem Nest nähern."); static const u8 DexDescription_Bibor_2[] = _( "Wenn man sie ärgert, greifen sie in\n" "Schwärmen an."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Taubsi_1[] = _( + "TAUBSI verfügt über einen sehr ge-\n" + "schulten Orientierungssinn. Es kehrt \n" + "zielsicher zu seinem Nest zurück,"); +static const u8 DexDescription_Taubsi_2[] = _( + "egal, wie weit es sich von seiner \n" + "gewohnten Umgebung entfernt hat."); +#else static const u8 DexDescription_Taubsi_1[] = _( "TAUBSI verfügt über einen sehr ge-\n" "schulten Orientierungssinn. Es kehrt \n" @@ -137,6 +268,7 @@ static const u8 DexDescription_Taubsi_1[] = _( static const u8 DexDescription_Taubsi_2[] = _( "egal, wie weit es sich von seiner\n" "gewohnten Umgebung entfernt hat."); +#endif static const u8 DexDescription_Tauboga_1[] = _( "TAUBOGA nennt ein großes Gebiet sein\n" @@ -165,6 +297,15 @@ static const u8 DexDescription_Rattfratz_2[] = _( "seinen Lebensraum und richtet sein\n" "Nest überall ein."); +#ifdef SAPPHIRE +static const u8 DexDescription_Rattikarl_1[] = _( + "RATTIKARLs kräftige Zähne wachsen\n" + "immer nach. Deshalb nagt es ständig\n" + "Steine und Baumstämme an."); +static const u8 DexDescription_Rattikarl_2[] = _( + "Manchmal knabbert es sogar\n" + "Hauswände an."); +#else static const u8 DexDescription_Rattikarl_1[] = _( "RATTIKARLs kräftige Zähne wachsen\n" "ständig. Deshalb nagt es unablässig\n" @@ -172,7 +313,18 @@ static const u8 DexDescription_Rattikarl_1[] = _( static const u8 DexDescription_Rattikarl_2[] = _( "um sie abzuwetzen. Manchmal knabbert\n" "es sogar Hauswände an."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Habitak_1[] = _( + "HABITAK kann einen sehr lauten Schrei\n" + "ausstoßen, den man über die Entfernung\n" + "von 1 km vernehmen kann. Durch das"); +static const u8 DexDescription_Habitak_2[] = _( + "Echo seiner hohen, wehklagenden \n" + "Schreie warnt dieses POKéMON seine\n" + "Artgenossen vor drohender Gefahr."); +#else static const u8 DexDescription_Habitak_1[] = _( "HABITAK kann einen sehr lauten Schrei\n" "ausstoßen, den man über die Entfernung\n" @@ -181,7 +333,18 @@ static const u8 DexDescription_Habitak_2[] = _( "Durch das Echo seiner hohen, wehklagen-\n" "den Schreie warnt dieses POKéMON seine\n" "Artgenossen vor drohender Gefahr."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Ibitak_1[] = _( + "IBITAK erkennt man an seinem langen \n" + "Schnabel. \n" + "Er ist hervorragend dafür geeignet,"); +static const u8 DexDescription_Ibitak_2[] = _( + "im Erdreich oder im Wasser Beute zu\n" + "jagen. Es setzt seinen langen, dünnen\n" + "Schnabel dabei sehr geschickt ein."); +#else static const u8 DexDescription_Ibitak_1[] = _( "IBITAK erkennt man an seinem langen \n" "Hals und Schnabel. \n" @@ -190,7 +353,17 @@ static const u8 DexDescription_Ibitak_2[] = _( "im Erdreich oder im Wasser Beute zu\n" "jagen. Es setzt seinen langen, dünnen\n" "Schnabel dabei sehr geschickt ein."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Rettan_1[] = _( + "RETTAN rollt sich zu einer Spirale \n" + "zusammen, wenn es sich ausruht.\n" + "Aus dieser Haltung kann es blitzschnell"); +static const u8 DexDescription_Rettan_2[] = _( + "auf Bedrohungen aus allen Richtungen\n" + "reagieren, indem es seinen Kopf hebt."); +#else static const u8 DexDescription_Rettan_1[] = _( "RETTAN rollt sich zu einer Spirale zu-\n" "sammen, wenn es sich ausruht.\n" @@ -198,6 +371,7 @@ static const u8 DexDescription_Rettan_1[] = _( static const u8 DexDescription_Rettan_2[] = _( "auf Bedrohungen aus allen Richtungen\n" "reagieren, indem es seinen Kopf hebt."); +#endif static const u8 DexDescription_Arbok_1[] = _( "Dieses POKéMON ist unheimlich stark. Es\n" @@ -208,6 +382,16 @@ static const u8 DexDescription_Arbok_2[] = _( "es unmöglich, seinem Würgegriff zu ent-\n" "kommen."); +#ifdef SAPPHIRE +static const u8 DexDescription_Pikachu_1[] = _( + "Dieses POKéMON kann in seinen\n" + "Backentaschen Elektrizität speichern.\n" + "Diese laden sich nachts auf, während"); +static const u8 DexDescription_Pikachu_2[] = _( + "PIKACHU schläft. Es entlädt manchmal\n" + "seine elektrische Ladung, wenn es gera-\n" + "de aufgewacht und noch schläfrig ist."); +#else static const u8 DexDescription_Pikachu_1[] = _( "Immer wenn PIKACHU auf etwas Neues\n" "stößt, jagt es einen Elektroschock \n" @@ -216,7 +400,17 @@ static const u8 DexDescription_Pikachu_2[] = _( "Wenn du eine verkohlte Beere findest,\n" "hat dieses POKéMON seine elektrische\n" "Ladung falsch eingeschätzt."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Raichu_1[] = _( + "Dieses POKéMON gibt eine schwache\n" + "elektrische Ladung ab. Dadurch glüht\n" + "es bei Dunkelheit leicht. RAICHU entlädt"); +static const u8 DexDescription_Raichu_2[] = _( + "Elektrizität, indem es sein\n" + "Hinterteil in den Boden gräbt."); +#else static const u8 DexDescription_Raichu_1[] = _( "Wenn seine elektrische Ladung zu groß\n" "wird, entlädt RAICHU seine Energie ins\n" @@ -224,7 +418,18 @@ static const u8 DexDescription_Raichu_1[] = _( static const u8 DexDescription_Raichu_2[] = _( "Neben dem Nest dieses POKéMON findet\n" "man häufig versengtes Erdreich."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Sandan_1[] = _( + "SANDAN hat eine sehr trockene und\n" + "extrem robuste Haut. Dieses POKéMON\n" + "kann sich zu einem Ball zusammenrollen,"); +static const u8 DexDescription_Sandan_2[] = _( + "von dem jegliche Angriffe abprallen.\n" + "Nachts gräbt es sich im Wüstensand ein\n" + "und schläft dort."); +#else static const u8 DexDescription_Sandan_1[] = _( "SANDANs Körper kann sehr viel Wasser\n" "aufnehmen, so dass es auch in der\n" @@ -232,7 +437,18 @@ static const u8 DexDescription_Sandan_1[] = _( static const u8 DexDescription_Sandan_2[] = _( "Dieses POKéMON rollt sich zusammen, um\n" "sich vor Feinden zu schützen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Sandamer_1[] = _( + "SANDAMER kann sich zu einem Ball mit\n" + "langen Stacheln zusammenrollen. Im\n" + "Kampf schlägt es seine Gegner in die"); +static const u8 DexDescription_Sandamer_2[] = _( + "Flucht, indem es sie mit seinen Stacheln\n" + "sticht. Dann springt es sie an und\n" + "schlägt mit seinen scharfen Klauen zu."); +#else static const u8 DexDescription_Sandamer_1[] = _( "SANDAMERs Körper ist übersät\n" "mit spitzen Stacheln, die eigentlich\n" @@ -240,7 +456,18 @@ static const u8 DexDescription_Sandamer_1[] = _( static const u8 DexDescription_Sandamer_2[] = _( "Einmal im Jahr fallen die alten Stacheln\n" "aus und werden durch neue ersetzt."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_NidoranF_1[] = _( + "NIDORAN besitzt Widerhaken, die ein\n" + "starkes Gift ausstoßen. Sie sind \n" + "vermutlich zum Schutz dieses"); +static const u8 DexDescription_NidoranF_2[] = _( + "schmächtigen POKéMON entstanden.\n" + "Wenn es wütend wird, stößt es ein\n" + "gefährliches Gift aus seinem Horn aus."); +#else static const u8 DexDescription_NidoranF_1[] = _( "NIDORAN besitzt Widerhaken, die ein\n" "starkes Gift ausstoßen. Sie sind ver-\n" @@ -249,7 +476,18 @@ static const u8 DexDescription_NidoranF_2[] = _( "schmächtigen POKéMON entstanden.\n" "Wenn es wütend wird, stößt es ein\n" "gefährliches Gift aus seinem Horn aus."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Nidorina_1[] = _( + "Wenn NIDORINA mit seinen Freunden oder\n" + "seiner Familie zusammen ist, zieht\n" + "es seine Widerhaken ein, damit"); +static const u8 DexDescription_Nidorina_2[] = _( + "es niemanden verletzt. Dieses\n" + "POKéMON wird nervös, wenn man es\n" + "von seinen Artgenossen trennt."); +#else static const u8 DexDescription_Nidorina_1[] = _( "Wenn NIDORINA mit seinen Freunden oder\n" "seiner Familie zusammen ist, zieht\n" @@ -258,7 +496,18 @@ static const u8 DexDescription_Nidorina_2[] = _( "niemanden verletzt. Dieses\n" "POKéMON wird nervös, wenn man es\n" "von seinen Artgenossen trennt."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Nidoqueen_1[] = _( + "NIDOQUEENs Körper ist mit sehr harten\n" + "Schuppen bedeckt. Es ist sehr\n" + "geschickt darin, Gegner mit harten"); +static const u8 DexDescription_Nidoqueen_2[] = _( + "Attacken wegzuschleudern.\n" + "Dieses POKéMON entwickelt die größte\n" + "Kraft, wenn es seine Jungen verteidigt."); +#else static const u8 DexDescription_Nidoqueen_1[] = _( "NIDOQUEENs Körper ist mit sehr harten\n" "Schuppen bedeckt. Es ist sehr ge-\n" @@ -267,7 +516,18 @@ static const u8 DexDescription_Nidoqueen_2[] = _( "Attacken wegzuschleudern.\n" "Dieses POKéMON entwickelt am meisten\n" "Kraft, wenn es seine Jungen verteidigt."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_NidoranM_1[] = _( + "Das männliche NIDORAN hat Muskeln\n" + "entwickelt, um seine Ohren bewegen zu\n" + "können. Dadurch kann es sie in jede"); +static const u8 DexDescription_NidoranM_2[] = _( + "beliebige Richtung wenden. Diesem\n" + "POKéMON entgeht nicht das leiseste\n" + "Geräusch."); +#else static const u8 DexDescription_NidoranM_1[] = _( "Das männliche NIDORAN hat Muskeln ent-\n" "wickelt, um seine Ohren bewegen zu kön-\n" @@ -276,6 +536,7 @@ static const u8 DexDescription_NidoranM_2[] = _( "ge Richtung drehen. Diesem POKéMON \n" "entgeht nicht einmal das leiseste Ge-\n" "räusch."); +#endif static const u8 DexDescription_Nidorino_1[] = _( "NIDORINO besitzt ein Horn, das sogar\n" @@ -286,6 +547,15 @@ static const u8 DexDescription_Nidorino_2[] = _( "auf und es schlägt den Gegner mit aller\n" "Kraft in die Flucht."); +#ifdef SAPPHIRE +static const u8 DexDescription_Nidoking_1[] = _( + "NIDOKINGs Schweif ist enorm stark. Mit\n" + "einer Bewegung kann es einen \n" + "metallenen Sendemast zum Einsturz"); +static const u8 DexDescription_Nidoking_2[] = _( + "bringen. Wenn es in Rage gerät, ist es\n" + "nur schwer aufzuhalten."); +#else static const u8 DexDescription_Nidoking_1[] = _( "NIDOKINGs Schweif ist enorm stark. Mit\n" "einer Bewegung kann es einen metalle-\n" @@ -293,7 +563,18 @@ static const u8 DexDescription_Nidoking_1[] = _( static const u8 DexDescription_Nidoking_2[] = _( "Wenn es in Rage gerät, ist es nur schwer\n" "aufzuhalten."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Piepi_1[] = _( + "In Vollmondnächten zeigt sich dieses\n" + "POKéMON. Wenn es Tag wird, kehrt \n" + "PIEPI zu seinem Zufluchtsort in den"); +static const u8 DexDescription_Piepi_2[] = _( + "Bergen zurück und schläft \n" + "eingekuschelt neben seinen\n" + "Artgenossen ein."); +#else static const u8 DexDescription_Piepi_1[] = _( "In Vollmondnächten sammeln sich einige\n" "dieser POKéMON, um zu spielen. Wird es \n" @@ -302,6 +583,7 @@ static const u8 DexDescription_Piepi_2[] = _( "ort in den Bergen zurück und\n" "schläft eingekuschelt neben\n" "seinen Artgenossen ein."); +#endif static const u8 DexDescription_Pixi_1[] = _( "PIXI bewegt sich fort, indem es leicht\n" @@ -311,6 +593,16 @@ static const u8 DexDescription_Pixi_2[] = _( "Wasser gehen. Bei Mondschein \n" "unternimmt es Spaziergänge auf Seen."); +#ifdef SAPPHIRE +static const u8 DexDescription_Vulpix_1[] = _( + "In VULPIX’ Körper brennt eine Flamme,\n" + "die niemals erlischt. Am Tage, wenn die\n" + "Temperaturen steigen, stößt dieses"); +static const u8 DexDescription_Vulpix_2[] = _( + "POKéMON Flammen aus seinem Mund aus.\n" + "So schützt es sich davor, dass sein\n" + "Körper zu heiß wird."); +#else static const u8 DexDescription_Vulpix_1[] = _( "VULPIX kommt mit einem weißen Schweif\n" "zur Welt. Dieser teilt sich sechsfach, \n" @@ -319,7 +611,18 @@ static const u8 DexDescription_Vulpix_2[] = _( "viel Zuneigung bekommt.\n" "Seine sechs Schweife kräuseln sich\n" "schließlich."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Vulnona_1[] = _( + "Eine Legende besagt, dass VULNONA\n" + "zu existieren begann, als neun\n" + "Zauberer mit heiligen Kräften zu einem"); +static const u8 DexDescription_Vulnona_2[] = _( + "verschmolzen. Dieses POKéMON ist\n" + "hochintelligent und versteht die\n" + "menschliche Sprache."); +#else static const u8 DexDescription_Vulnona_1[] = _( "VULNONA sendet einen unheimlichen\n" "Lichtstrahl aus seinen hellroten Augen\n" @@ -328,7 +631,18 @@ static const u8 DexDescription_Vulnona_2[] = _( "Gedanken seines Gegners zu erlangen.\n" "Man sagt, dieses POKéMON könne 1000\n" "Jahre leben."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Pummeluff_1[] = _( + "Wenn dieses POKéMON singt, hört es\n" + "nicht auf zu atmen. Im Kampf gegen\n" + "einen Gegner, der nicht so leicht"); +static const u8 DexDescription_Pummeluff_2[] = _( + "in Schlaf zu versetzen ist, kann\n" + "PUMMELUFF nicht atmen. Leider\n" + "gefährdet es sich dadurch selbst."); +#else static const u8 DexDescription_Pummeluff_1[] = _( "PUMMELUFFs Stimmbänder können die\n" "Tonlage seiner Stimme beliebig vari-\n" @@ -336,7 +650,17 @@ static const u8 DexDescription_Pummeluff_1[] = _( static const u8 DexDescription_Pummeluff_2[] = _( "Fähigkeit, um seine Gegner mit monoto-\n" "nem Gesang in Tiefschlaf zu versetzen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Knuddeluff_1[] = _( + "KNUDDELUFFs Körper ist sehr dehnbar.\n" + "Indem es tief einatmet, kann sich\n" + "dieses POKéMON selbst aufblasen."); +static const u8 DexDescription_Knuddeluff_2[] = _( + "Wenn es aufgepumpt ist, hüpft es\n" + "wie ein Luftballon umher."); +#else static const u8 DexDescription_Knuddeluff_1[] = _( "KNUDDELUFF hat handtellergroße Augen,\n" "die immer mit Tränenflüssigkeit bedeckt\n" @@ -344,7 +668,17 @@ static const u8 DexDescription_Knuddeluff_1[] = _( static const u8 DexDescription_Knuddeluff_2[] = _( "POKéMON, so wird dieser sofort ausge-\n" "spült."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Zubat_1[] = _( + "ZUBAT meidet Sonnenlicht, da es dadurch\n" + "krank würde. Am Tage hält es sich in\n" + "Höhlen oder unter den Dachrinnen alter"); +static const u8 DexDescription_Zubat_2[] = _( + "Häuser auf. Dort schläft es mit dem\n" + "Kopf nach unten."); +#else static const u8 DexDescription_Zubat_1[] = _( "Tagsüber bleibt ZUBAT an einem dunklen\n" "Ort und bewegt sich kaum. Wenn es dem \n" @@ -352,7 +686,18 @@ static const u8 DexDescription_Zubat_1[] = _( static const u8 DexDescription_Zubat_2[] = _( "wird, zieht es sich Verbrennungen an\n" "seinem Körper zu."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Golbat_1[] = _( + "GOLBAT beißt seine Beute mit seinen\n" + "vier Reißzähnen und trinkt das Blut\n" + "seiner Opfer. Es wird in Nächten aktiv,"); +static const u8 DexDescription_Golbat_2[] = _( + "in denen nicht einmal der Mond scheint.\n" + "Es fliegt dann durch die Dunkelheit und\n" + "greift Menschen und POKéMON an."); +#else static const u8 DexDescription_Golbat_1[] = _( "GOLBAT hat es auf das Blut von Lebe-\n" "wesen abgesehen. Im Schutze der Nacht\n" @@ -361,7 +706,18 @@ static const u8 DexDescription_Golbat_2[] = _( "Dieses POKéMON fliegt durch die\n" "Nacht, um nach frischem Blut zu\n" "suchen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Myrapla_1[] = _( + "MYRAPLA sucht nach fruchtbarem, \n" + "nahrhaftem Boden und pflanzt sich\n" + "selbst darin ein. Solange es"); +static const u8 DexDescription_Myrapla_2[] = _( + "eingepflanzt ist, nehmen seine Füße\n" + "tagsüber die Gestalt von Baumwurzeln\n" + "an."); +#else static const u8 DexDescription_Myrapla_1[] = _( "Am Tage vergräbt sich MYRAPLA im Boden,\n" "um mit seinem ganzen Körper Nahrung\n" @@ -369,7 +725,17 @@ static const u8 DexDescription_Myrapla_1[] = _( static const u8 DexDescription_Myrapla_2[] = _( "Je fruchtbarer der Boden ist, desto\n" "glänzender werden seine Blätter."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Duflor_1[] = _( + "Aus DUFLORs Mund tropft übelst\n" + "riechender Honig. Diesen Gestank\n" + "scheint es zu lieben, denn es"); +static const u8 DexDescription_Duflor_2[] = _( + "schnieft die giftigen Dämpfe ein und\n" + "sabbert danach noch mehr Honig."); +#else static const u8 DexDescription_Duflor_1[] = _( "DUFLOR produziert einen Ekel\n" "erregenden Gestank aus dem Stempel\n" @@ -378,7 +744,17 @@ static const u8 DexDescription_Duflor_2[] = _( "wird der Gestank noch unerträglicher. \n" "Wenn sich dieses POKéMON in Sicherheit\n" "befindet, stößt es keinen Gestank aus."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Giflor_1[] = _( + "GIFLOR hat die größten Blätter der Welt.\n" + "Sie ziehen Beute an und bestäuben sie\n" + "mit giftigen Sporen. Wenn die Beute"); +static const u8 DexDescription_Giflor_2[] = _( + "sich nicht mehr rührt, fängt dieses\n" + "POKéMON sie und frisst sie auf."); +#else static const u8 DexDescription_Giflor_1[] = _( "GIFLORs giftige Pollen rufen böse\n" "allergische Anfälle hervor. Deshalb ist\n" @@ -386,7 +762,18 @@ static const u8 DexDescription_Giflor_1[] = _( static const u8 DexDescription_Giflor_2[] = _( "Dschungel zu nähern, so anziehend sie\n" "auch sein mag."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Paras_1[] = _( + "Auf PARAS’ Rücken wachsen parasitäre\n" + "Pilze, die Tochukaso genannt werden.\n" + "Sie wachsen, indem sie diesem"); +static const u8 DexDescription_Paras_2[] = _( + "KÄFER-/PFLANZEN-PKMN Nährstoffe\n" + "entziehen. Sie sind sehr wertvoll als\n" + "lebensverlängernde Medizin."); +#else static const u8 DexDescription_Paras_1[] = _( "Auf PARAS’ Rücken wachsen parasitäre\n" "Pilze, die Tochukaso genannt werden.\n" @@ -395,7 +782,18 @@ static const u8 DexDescription_Paras_2[] = _( "KÄFER/PFLANZEN-PKMN Nährstoffe\n" "entziehen. Sie sind sehr wertvoll als\n" "lebensverlängernde Medizin."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Parasek_1[] = _( + "PARASEK sucht große Bäume heim und\n" + "entzieht Nährstoffe aus Stamm und \n" + "Wurzeln."); +static const u8 DexDescription_Parasek_2[] = _( + "Wenn ein befallener Baum stirbt, sucht\n" + "es sich zusammen mit seinen \n" + "Artgenossen einen neuen Wirt."); +#else static const u8 DexDescription_Parasek_1[] = _( "PARASEK sucht große Bäume heim und\n" "entzieht Nährstoffe aus Stamm und \n" @@ -404,6 +802,7 @@ static const u8 DexDescription_Parasek_2[] = _( "Wenn ein befallener Baum stirbt, sucht\n" "es sich zusammen mit seinen Artge-\n" "nossen einen neuen Wirt."); +#endif static const u8 DexDescription_Bluzuk_1[] = _( "BLUZUK hat einen Pelz aus dünnen\n" @@ -413,6 +812,15 @@ static const u8 DexDescription_Bluzuk_2[] = _( "Es hat große Augen, denen auch winzig\n" "kleine Beute nicht entgeht."); +#ifdef SAPPHIRE +static const u8 DexDescription_Omot_1[] = _( + "OMOT ist ein nachtaktives POKéMON.\n" + "Kleine Insekten, die vom Licht in der\n" + "Dunkelheit angezogen, Straßenlaternen"); +static const u8 DexDescription_Omot_2[] = _( + "umschwärmen, sind seine bevorzugte\n" + "Beute."); +#else static const u8 DexDescription_Omot_1[] = _( "OMOT ist ein nachtaktives POKéMON.\n" "Kleine Insekten, die vom Licht in der\n" @@ -420,6 +828,7 @@ static const u8 DexDescription_Omot_1[] = _( static const u8 DexDescription_Omot_2[] = _( "umschwärmen, sind seine bevorzugte\n" "Beute."); +#endif static const u8 DexDescription_Digda_1[] = _( "DIGDA wird zumeist auf Farmen\n" @@ -438,6 +847,15 @@ static const u8 DexDescription_Digdri_2[] = _( "Sie arbeiten so gut zusammen, dass sie \n" "endlos graben können."); +#ifdef SAPPHIRE +static const u8 DexDescription_Mauzi_1[] = _( + "MAUZI zieht seine scharfen Krallen ein,\n" + "um umherschleichen zu können, ohne\n" + "verräterische Spuren zu hinterlassen."); +static const u8 DexDescription_Mauzi_2[] = _( + "Dieses POKéMON hat eine Vorliebe für\n" + "Münzen, die das Licht reflektieren."); +#else static const u8 DexDescription_Mauzi_1[] = _( "MAUZI zieht seine scharfen Krallen ein,\n" "um umherschleichen zu können, ohne\n" @@ -445,6 +863,7 @@ static const u8 DexDescription_Mauzi_1[] = _( static const u8 DexDescription_Mauzi_2[] = _( "Dieses POKéMON hat eine Vorliebe für\n" "Münzen, die im Licht glitzern."); +#endif static const u8 DexDescription_Snobilikat_1[] = _( "SNOBILIKAT hat sechs dicke Schnurr-\n" @@ -455,6 +874,16 @@ static const u8 DexDescription_Snobilikat_2[] = _( "wird sehr zutraulich, wenn man es an den\n" "Schnurrhaaren berührt."); +#ifdef SAPPHIRE +static const u8 DexDescription_Enton_1[] = _( + "ENTON besitzt mystische Kräfte. Wenn\n" + "es sie einsetzt, erinnert es sich nicht\n" + "mehr daran. Es kann ein solches"); +static const u8 DexDescription_Enton_2[] = _( + "Ereignis offensichtlich nicht im Ge-\n" + "dächtnis behalten, da es sich in einen\n" + "tiefschlafähnlichen Zustand versetzt."); +#else static const u8 DexDescription_Enton_1[] = _( "ENTON verwendet eine geheimnisvolle\n" "Kraft. Dabei erzeugt es Gehirnströme,\n" @@ -463,7 +892,18 @@ static const u8 DexDescription_Enton_2[] = _( "kennt. Diese Entdeckung führte zu \n" "einer umstrittenen Diskussion unter\n" "Wissenschaftlern."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Entoron_1[] = _( + "ENTORON ist der schnellste Schwimmer\n" + "von allen POKéMON. Es schwimmt mit\n" + "Leichtigkeit auch durch eine raue,"); +static const u8 DexDescription_Entoron_2[] = _( + "stürmische See. Manchmal rettet es\n" + "Menschen, die in Seenot geraten sind\n" + "und auf dem Meer treiben."); +#else static const u8 DexDescription_Entoron_1[] = _( "Die schwimmhäutigen Flossen an seinen\n" "Vorder- und Hinterbeinen und der \n" @@ -472,7 +912,17 @@ static const u8 DexDescription_Entoron_2[] = _( "ENTORON unheimlich schnell. Dieses\n" "POKéMON ist auf jeden Fall schneller als\n" "die meisten Hochleistungsschwimmer."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Menki_1[] = _( + "Wenn MENKI sich schüttelt und schwer\n" + "durch die Nase atmet, dann ist es \n" + "wütend. Da es blitzartig in Raserei"); +static const u8 DexDescription_Menki_2[] = _( + "gerät, ist es unmöglich, seinem Zorn\n" + "zu entkommen."); +#else static const u8 DexDescription_Menki_1[] = _( "Wenn MENKI sich schüttelt und schwer\n" "durch die Nase atmet, dann ist es \n" @@ -480,7 +930,17 @@ static const u8 DexDescription_Menki_1[] = _( static const u8 DexDescription_Menki_2[] = _( "gerät, ist es unmöglich seinem Zorn\n" "zu entkommen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Rasaff_1[] = _( + "Wenn RASAFF wütend ist, wird seine Blut-\n" + "zirkulation gesteigert und seine Mus-\n" + "keln werden noch stärker."); +static const u8 DexDescription_Rasaff_2[] = _( + "Allerdings sinkt dabei auch die\n" + "Fähigkeit logischen Denkens."); +#else static const u8 DexDescription_Rasaff_1[] = _( "Wenn RASAFF wütend ist, wird seine Blut-\n" "zirkulation gesteigert und seine Mus-\n" @@ -488,7 +948,18 @@ static const u8 DexDescription_Rasaff_1[] = _( static const u8 DexDescription_Rasaff_2[] = _( "Allerdings mindert das auch die \n" "Fähigkeit zum logischen Denken."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Fukano_1[] = _( + "FUKANO hat einen ausgezeichneten Ge-\n" + "ruchssinn. Wenn dieses POKéMON ein-\n" + "mal einen Geruch wahrgenommen hat,"); +static const u8 DexDescription_Fukano_2[] = _( + "vergisst es ihn nicht mehr. Es benutzt\n" + "diese Fähigkeit dazu, die Gefühlslage\n" + "von Lebewesen zu erkennen."); +#else static const u8 DexDescription_Fukano_1[] = _( "FUKANO hat einen ausgezeichneten Ge-\n" "ruchssinn. Wenn dieses POKéMON ein-\n" @@ -497,6 +968,7 @@ static const u8 DexDescription_Fukano_2[] = _( "vergisst es ihn nicht mehr. Es benutzt\n" "diese Fähigkeit dazu, die Gefühlslage\n" "von Lebewesen auszuloten."); +#endif static const u8 DexDescription_Arkani_1[] = _( "ARKANI ist sehr schnell. Es kann an\n" @@ -521,6 +993,14 @@ static const u8 DexDescription_Quaputzi_1[] = _( static const u8 DexDescription_Quaputzi_2[] = _( "eines Gegners entkommen."); +#ifdef SAPPHIRE +static const u8 DexDescription_Quappo_1[] = _( + "QUAPPO besitzt hochentwickelte, starke\n" + "Muskeln, die niemals ermüden. Es ist so\n" + "kräftig, dass es mühelos den Pazifik"); +static const u8 DexDescription_Quappo_2[] = _( + "durchschwimmen kann."); +#else static const u8 DexDescription_Quappo_1[] = _( "QUAPPO besitzt hochentwickelte, starke\n" "Muskeln, die niemals ermüden, egal, wie\n" @@ -528,7 +1008,17 @@ static const u8 DexDescription_Quappo_1[] = _( static const u8 DexDescription_Quappo_2[] = _( "Es ist so kräftig, dass es mühelos den\n" "Pazifik durchschwimmen kann."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Abra_1[] = _( + "ABRA braucht achtzehn Stunden Schlaf\n" + "pro Tag, sonst verliert es die Fähigkeit,\n" + "seine telekinetischen Kräfte zu"); +static const u8 DexDescription_Abra_2[] = _( + "nutzen. ABRA flüchtet mit Hilfe des\n" + "TELEPORT, schläft dabei aber weiter."); +#else static const u8 DexDescription_Abra_1[] = _( "ABRA schläft 18 Stunden am Tag.\n" "Es nimmt die Gegenwart von Feinden\n" @@ -537,7 +1027,18 @@ static const u8 DexDescription_Abra_2[] = _( "In einer solchen Situation bringt es\n" "sich umgehend mit TELEPORT in\n" "Sicherheit."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Kadabra_1[] = _( + "KADABRA hält einen silbernen Löffel in\n" + "der Hand. Es verstärkt damit die\n" + "Alphawellen in seinem Gehirn. Ohne den"); +static const u8 DexDescription_Kadabra_2[] = _( + "Löffel könnte dieses POKéMON nur die\n" + "Hälfte seiner telekinetischen Kräfte\n" + "nutzen."); +#else static const u8 DexDescription_Kadabra_1[] = _( "KADABRA sendet Alphawellen aus, wenn es\n" "Kopfschmerzen hat. Nur wer eine beson-\n" @@ -545,7 +1046,18 @@ static const u8 DexDescription_Kadabra_1[] = _( static const u8 DexDescription_Kadabra_2[] = _( "dieses POKéMON unter seine Fittiche\n" "nehmen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Simsala_1[] = _( + "SIMSALAs Hirn wächst stetig weiter und\n" + "seine Gehirnzellen werden unendlich\n" + "vervielfacht. Durch sein verblüffendes"); +static const u8 DexDescription_Simsala_2[] = _( + "Gehirn erreicht dieses POKéMON einen IQ\n" + "von 5.000. Es erinnert sich an alles, was\n" + "in der Welt passiert ist."); +#else static const u8 DexDescription_Simsala_1[] = _( "SIMSALAs Gehirn hört nicht auf zu\n" "wachsen, so dass sein Kopf zu schwer\n" @@ -553,7 +1065,17 @@ static const u8 DexDescription_Simsala_1[] = _( static const u8 DexDescription_Simsala_2[] = _( "Dieses POKéMON hält seinen Kopf mit\n" "psychokinetischer Energie aufrecht."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Machollo_1[] = _( + "MACHOLLO trainiert, indem es ein GEOROK\n" + "hochhebt, als wäre es eine Hantel. Es\n" + "gibt auch MACHOLLO, die durch die Welt"); +static const u8 DexDescription_Machollo_2[] = _( + "reisen, um alle Arten der Kampfkunst \n" + "zu erlernen."); +#else static const u8 DexDescription_Machollo_1[] = _( "MACHOLLOs Muskeln sind etwas Beson-\n" "deres. Sie schmerzen nie, egal, wie sehr\n" @@ -561,7 +1083,17 @@ static const u8 DexDescription_Machollo_1[] = _( static const u8 DexDescription_Machollo_2[] = _( "Dieses POKéMON hat genug Kraft, um 100\n" "Erwachsene umherzuwerfen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Maschock_1[] = _( + "MASCHOCK stählt seinen Körper jeden\n" + "Tag, zum Beispiel indem es Menschen bei\n" + "einer harten körperlichen Arbeit hilft."); +static const u8 DexDescription_Maschock_2[] = _( + "An seinen freien Tagen begibt es sich\n" + "auf Felder und Berge, um zu trainieren."); +#else static const u8 DexDescription_Maschock_1[] = _( "MASCHOCKs starke Muskeln sind so hart\n" "wie Stahl. Dieses POKéMON hat so viel\n" @@ -569,7 +1101,18 @@ static const u8 DexDescription_Maschock_1[] = _( static const u8 DexDescription_Maschock_2[] = _( "einen Sumo-Ringer in der Luft halten\n" "kann."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Machomei_1[] = _( + "MACHOMEI wurde berühmt, da es alle\n" + "Arten der Kampfkunst beherrscht. Wenn\n" + "es einen Gegner mit seinen vier Armen zu"); +static const u8 DexDescription_Machomei_2[] = _( + "fassen gekriegt hat, ist der Kampf noch\n" + "nicht vorbei. Es schleudert ihn dann\n" + "nämlich weit über den Horizont hinaus."); +#else static const u8 DexDescription_Machomei_1[] = _( "MACHOMEI hat genug Kraft, um alles \n" "Mögliche zu stemmen. Bei Tätigkeiten,\n" @@ -578,7 +1121,18 @@ static const u8 DexDescription_Machomei_2[] = _( "machen es ihm seine Arme jedoch nicht\n" "leicht. Dieses POKéMON neigt dazu,\n" "zuerst zu handeln und dann zu denken."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Knofensa_1[] = _( + "KNOFENSAs schlanker und elastischer\n" + "Körper ermöglicht es ihm, jeglichem\n" + "Angriff auszuweichen, so heftig dieser"); +static const u8 DexDescription_Knofensa_2[] = _( + "auch sein mag. Dieses POKéMON spuckt\n" + "eine ätzende Flüssigkeit aus, die sogar\n" + "Eisen zersetzen kann."); +#else static const u8 DexDescription_Knofensa_1[] = _( "KNOFENSAs schlanker und elastischer\n" "Körper ermöglicht es ihm, jedem\n" @@ -587,7 +1141,18 @@ static const u8 DexDescription_Knofensa_2[] = _( "auch sein mag. Dieses POKéMON spuckt\n" "eine ätzende Flüssigkeit aus, die sogar\n" "Eisen zersetzen kann."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Ultrigaria_1[] = _( + "ULTRIGARIA hat einen großen Haken\n" + "an seinem Hinterteil. Nachts hängt\n" + "sich dieses POKéMON zum Schlafen an"); +static const u8 DexDescription_Ultrigaria_2[] = _( + "einen Ast. Wenn es sich im Schlaf \n" + "bewegt, kann es passieren, dass es auf\n" + "dem Boden wieder aufwacht."); +#else static const u8 DexDescription_Ultrigaria_1[] = _( "ULTRIGARIA hat einen großen Haken\n" "an seinem Hinterteil. Nachts hängt\n" @@ -596,6 +1161,7 @@ static const u8 DexDescription_Ultrigaria_2[] = _( "einen Ast. Wenn es sich im Schlaf be-\n" "wegt, kann es passieren, dass es auf\n" "dem Boden wieder aufwacht."); +#endif static const u8 DexDescription_Sarzenia_1[] = _( "Aus SARZENIAs Kopf ragt eine lange\n" @@ -606,6 +1172,16 @@ static const u8 DexDescription_Sarzenia_2[] = _( "nähert, wird sie von diesem POKéMON\n" "im Ganzen verschlungen."); +#ifdef SAPPHIRE +static const u8 DexDescription_Tentacha_1[] = _( + "TENTACHA nimmt Sonnenlicht auf und\n" + "bricht es in seinem Körper mit Hilfe von\n" + "Wasser, um es in Strahlenenergie"); +static const u8 DexDescription_Tentacha_2[] = _( + "umzuwandeln. Dieses POKéMON verschießt\n" + "Strahlen aus seinen kristallartigen\n" + "Augen."); +#else static const u8 DexDescription_Tentacha_1[] = _( "TENTACHAs Körper setzt sich zum größ-\n" "ten Teil aus Wasser zusammen. Wenn es\n" @@ -614,7 +1190,18 @@ static const u8 DexDescription_Tentacha_2[] = _( "Wenn dieses POKéMON auszutrocknen be-\n" "ginnt, sollte man es schnell wieder ins\n" "Wasser zurückbringen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Tentoxa_1[] = _( + "TENTOXA besitzt Tentakel, die es\n" + "jederzeit ausfahren und einziehen\n" + "kann. Es fängt damit Beute und"); +static const u8 DexDescription_Tentoxa_2[] = _( + "schwächt diese, indem es ihr ein\n" + "starkes Gift verabreicht. Es kann bis\n" + "zu 80 Opfer gleichzeitig fangen."); +#else static const u8 DexDescription_Tentoxa_1[] = _( "TENTOXA hat große, rote Kugeln auf \n" "seinem Kopf. Sie glühen auf, bevor sie \n" @@ -623,7 +1210,18 @@ static const u8 DexDescription_Tentoxa_2[] = _( "erschüttern. Ein Ausbruch dieses \n" "POKéMON erzeugt starke Wellen \n" "in seiner Umgebung."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Kleinstein_1[] = _( + "Wenn KLEINSTEIN tief und fest schläft,\n" + "gräbt es sich selbst zur Hälfte im Boden\n" + "ein. Selbst wenn Wanderer versehentlich"); +static const u8 DexDescription_Kleinstein_2[] = _( + "auf KLEINSTEIN treten, wacht es nicht\n" + "auf. Am Morgen rollt es auf der Suche\n" + "nach Nahrung den Berg herunter."); +#else static const u8 DexDescription_Kleinstein_1[] = _( "Je länger ein KLEINSTEIN lebt, desto\n" "mehr wird seine raue Oberfläche ab-\n" @@ -631,7 +1229,18 @@ static const u8 DexDescription_Kleinstein_1[] = _( static const u8 DexDescription_Kleinstein_2[] = _( "Das Herz dieses POKéMON bleibt aber\n" "für immer versteinert, hart und rau."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Georok_1[] = _( + "Steine sind GEOROKs Lieblingsspeise.\n" + "Dieses POKéMON klettert vom Fuße\n" + "eines Berges zu seinem Gipfel empor"); +static const u8 DexDescription_Georok_2[] = _( + "und zermalmt dabei das Gestein. Wenn es\n" + "den Gipfel erreicht hat, rollt es wieder\n" + "herunter."); +#else static const u8 DexDescription_Georok_1[] = _( "GEOROK wächst, indem es sich von Stei-\n" "nen ernährt. Am liebsten mag es Steine,\n" @@ -639,14 +1248,36 @@ static const u8 DexDescription_Georok_1[] = _( static const u8 DexDescription_Georok_2[] = _( "Dieses POKéMON frisst sich täglich\n" "durch eine riesige Menge von Steinen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Geowaz_1[] = _( + "GEOWAZ ist dafür bekannt, dass es\n" + "Berghänge herunterrollt. Damit es nicht\n" + "in die Häuser der Menschen hineinrollt,"); +static const u8 DexDescription_Geowaz_2[] = _( + "wurden Gräben so an den Bergen\n" + "angelegt, dass der Weg dieses POKéMON\n" + "umgeleitet wird."); +#else static const u8 DexDescription_Geowaz_1[] = _( "GEOWAZ lebt hoch in den Bergen. Gibt es \n" "ein starkes Erdbeben, rollt dieses\n" "POKéMON so lange den Berg hinunter,"); static const u8 DexDescription_Geowaz_2[] = _( "bis es schließlich unten angekommen ist."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Ponita_1[] = _( + "Nach seiner Geburt ist PONITA sehr\n" + "schwach. Es braucht sehr lange, bis es\n" + "auf allen Vieren steht. Dieses POKéMON"); +static const u8 DexDescription_Ponita_2[] = _( + "wird stärker, da es bei dem Versuch, mit\n" + "seinen Eltern Schritt zu halten, immer\n" + "wieder stolpert und hinfällt."); +#else static const u8 DexDescription_Ponita_1[] = _( "Nach seiner Geburt ist PONITA so\n" "schwach, dass es kaum von alleine\n" @@ -655,7 +1286,18 @@ static const u8 DexDescription_Ponita_2[] = _( "dadurch schnell stärker, dass es sich\n" "beim Versuch, mit seinen Eltern Schritt\n" "zu halten, immer wieder aufrappeln muss."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Gallopa_1[] = _( + "Man kann GALLOPA dabei beobachten, \n" + "wie es fröhlich über Felder und Wiesen\n" + "galoppiert. Wenn dieses POKéMON"); +static const u8 DexDescription_Gallopa_2[] = _( + "jedoch Ernst macht, erreicht es bis zu\n" + "240 km/h. Dann beginnt seine Mähne\n" + "zu lodern."); +#else static const u8 DexDescription_Gallopa_1[] = _( "Man kann GALLOPA dabei beobachten, \n" "wie es lässig über Felder und Wiesen\n" @@ -664,6 +1306,7 @@ static const u8 DexDescription_Gallopa_2[] = _( "jedoch Ernst macht, erreicht es bis zu\n" "240 km/h. Dann beginnt seine Mähne\n" "zu lodern."); +#endif static const u8 DexDescription_Flegmon_1[] = _( "FLEGMON benutzt seinen Schweif, um \n" @@ -674,6 +1317,16 @@ static const u8 DexDescription_Flegmon_2[] = _( "gerade tun wollte, und verbringt ganze \n" "Tage damit, am Ufer herumzutrödeln."); +#ifdef SAPPHIRE +static const u8 DexDescription_Lahmus_1[] = _( + "An LAHMUS’ Schweif hat sich ein \n" + "MUSCHAS festgebissen. Daher kann es\n" + "ihn nicht mehr zum Fischen benutzen"); +static const u8 DexDescription_Lahmus_2[] = _( + "und ist dazu gezwungen, umherzu-\n" + "schwimmen und Ausschau nach Beute zu\n" + "halten."); +#else static const u8 DexDescription_Lahmus_1[] = _( "An LAHMUS’ Rute hat sich ein MUSCHAS\n" "festgebissen. Daher kann es ihn nicht\n" @@ -682,7 +1335,18 @@ static const u8 DexDescription_Lahmus_2[] = _( "und es ist dazu gezwungen, umherzu-\n" "schwimmen und nach Beute Ausschau\n" "zu halten."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Magnetilo_1[] = _( + "MAGNETILO segelt durch die Luft und \n" + "sendet dabei elektromagnetische Wellen\n" + "an beiden Seiten seines Körpers aus."); +static const u8 DexDescription_Magnetilo_2[] = _( + "Dieses POKéMON wird flugunfähig, wenn\n" + "die Stromquelle in seinem Inneren\n" + "erschöpft ist."); +#else static const u8 DexDescription_Magnetilo_1[] = _( "MAGNETILO ernährt sich von Elektri-\n" "zität aus Stromleitungen. Dieses\n" @@ -691,7 +1355,18 @@ static const u8 DexDescription_Magnetilo_2[] = _( "Sicherungskästen. Wenn es in deinem\n" "Haus zu einem Stromausfall kommt,\n" "solltest du die Sicherungen überprüfen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Magneton_1[] = _( + "MAGNETON strahlt eine starke magne-\n" + "tische Energie ab, die für elektronische\n" + "Geräte und Präzisionsinstrumente sehr"); +static const u8 DexDescription_Magneton_2[] = _( + "schädlich ist. In einigen Städten\n" + "werden die Bewohner gebeten, dieses\n" + "POKéMON in einem POKéBALL zu halten."); +#else static const u8 DexDescription_Magneton_1[] = _( "MAGNETON erzeugt ein sehr starkes Mag-\n" "netfeld, das Maschinen zerstören kann.\n" @@ -699,7 +1374,18 @@ static const u8 DexDescription_Magneton_1[] = _( static const u8 DexDescription_Magneton_2[] = _( "Sirenen, die die Bürger vor Scharen\n" "dieses POKéMON warnen sollen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Porenta_1[] = _( + "PORENTA trifft man immer mit einem\n" + "Stock irgendeiner Pflanze an. Es gibt\n" + "gute und schlechte Stöcke."); +static const u8 DexDescription_Porenta_2[] = _( + "Von diesem POKéMON wird behauptet, es \n" + "kämpfe gegen die eigenen Artgenossen\n" + "um die besten Stöcke."); +#else static const u8 DexDescription_Porenta_1[] = _( "PORENTA trifft man immer mit einer\n" "Lauchstange an. Es gibt gute und\n" @@ -707,14 +1393,35 @@ static const u8 DexDescription_Porenta_1[] = _( static const u8 DexDescription_Porenta_2[] = _( "Dieses POKéMON kämpft mit Hilfe seiner\n" "Stange gegen seine Gegner."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Dodu_1[] = _( + "DODU hat zwei Köpfe mit absolut\n" + "identischen Gehirnen. Eine wissen-\n" + "schaftliche Studie hat allerdings"); +static const u8 DexDescription_Dodu_2[] = _( + "nachgewiesen, dass es auch Exemplare\n" + "dieses POKéMON gibt, die zwei\n" + "unterschiedliche Gehirne haben."); +#else static const u8 DexDescription_Dodu_1[] = _( "DODU hat zwei Köpfe, die nie zur \n" "selben Zeit, sondern abwechselnd\n" "schlafen. Während ein Kopf schläft,"); static const u8 DexDescription_Dodu_2[] = _( "hält der andere Ausschau nach Feinden."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Dodri_1[] = _( + "DODRI hat nicht nur drei Köpfe, auch\n" + "andere Körperteile sind dreifach\n" + "vorhanden. Es besitzt drei Herzen und"); +static const u8 DexDescription_Dodri_2[] = _( + "drei Lungen, so dass es lange Strecken\n" + "ohne Pause rennen kann."); +#else static const u8 DexDescription_Dodri_1[] = _( "DODRIs drei Köpfe blicken in drei ver-\n" "schiedene Richtungen. Es ist immer auf\n" @@ -723,7 +1430,17 @@ static const u8 DexDescription_Dodri_2[] = _( "Du solltest dich diesem POKéMON nicht\n" "nähern, wenn es bereits misstrauisch \n" "ist. Es könnte nach dir hacken."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Jurob_1[] = _( + "JUROB jagt unter der frostigen Ober-\n" + "fläche des Eismeeres nach Beute. Zum\n" + "Luft holen schlägt es mit dem"); +static const u8 DexDescription_Jurob_2[] = _( + "vorstehenden Teil seines Kopfes ein \n" + "Loch ins Eis."); +#else static const u8 DexDescription_Jurob_1[] = _( "JUROB jagt unter der eisigen Ober-\n" "fläche des Eismeeres nach Beute. Zum\n" @@ -731,7 +1448,17 @@ static const u8 DexDescription_Jurob_1[] = _( static const u8 DexDescription_Jurob_2[] = _( "vorstehenden Teil seines Kopfes ein \n" "Loch ins Eis."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Jugong_1[] = _( + "JUGONG liebt es, auf bitterkalten \n" + "Eisschollen ein Nickerchen zu machen.\n" + "Ein Seemann, der ein solches POKéMON"); +static const u8 DexDescription_Jugong_2[] = _( + "eines Tages auf einem Eisberg schlafen\n" + "sah, hielt es für eine Meerjungfrau."); +#else static const u8 DexDescription_Jugong_1[] = _( "JUGONG liebt es, auf bitterkalten Eis-\n" "schollen ein Nickerchen zu machen.\n" @@ -740,7 +1467,18 @@ static const u8 DexDescription_Jugong_2[] = _( "POKéMON schlafend auf einem\n" "Eisberg sah, hielt es irrtümlicherweise\n" "für eine Meerjungfrau."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Sleima_1[] = _( + "SLEIMA ist aus dem Schlamm eines\n" + "verseuchten Flussbetts entstanden.\n" + "Dieses POKéMON liebt verschmutzte"); +static const u8 DexDescription_Sleima_2[] = _( + "Dinge. Es scheidet ständig eine mit\n" + "Bakterien verseuchte Flüssigkeit aus\n" + "seinem ganzen Körper aus."); +#else static const u8 DexDescription_Sleima_1[] = _( "SLEIMAs glitschiger, gummiartiger\n" "Körper passt durch jede noch so kleine\n" @@ -748,14 +1486,35 @@ static const u8 DexDescription_Sleima_1[] = _( static const u8 DexDescription_Sleima_2[] = _( "Kanalisation hinab, um fauliges\n" "Abwasser zu trinken."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Sleimok_1[] = _( + "SLEIMOKs Lieblingsspeise ist alles, was\n" + "widerlich verschmutzt ist. In dreckigen\n" + "Städten, in denen sich Menschen nichts"); +static const u8 DexDescription_Sleimok_2[] = _( + "dabei denken, wenn sie Müll auf die\n" + "Straße werfen, lassen sich diese\n" + "POKéMON mit Vorliebe in Scharen nieder."); +#else static const u8 DexDescription_Sleimok_1[] = _( "SLEIMOK scheidet eine widerlich\n" "stinkende Substanz aus. Ein einziger\n" "Tropfen seiner Körpersubstanz reicht"); static const u8 DexDescription_Sleimok_2[] = _( "aus, um ein Gewässer zu verseuchen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Muschas_1[] = _( + "Nachts verwendet dieses POKéMON seine\n" + "breite Zunge, um ein Loch in den \n" + "Meeresboden zu graben. Darin schläft"); +static const u8 DexDescription_Muschas_2[] = _( + "es. Dabei schließt es seine Schale,\n" + "lässt aber seine Zunge heraushängen."); +#else static const u8 DexDescription_Muschas_1[] = _( "Nachts benutzt dieses POKéMON seine\n" "breite Zunge, um ein Loch in den \n" @@ -764,7 +1523,17 @@ static const u8 DexDescription_Muschas_2[] = _( "Darin schläft es. Dabei schließt es\n" "seine Schale, aber die Zunge hängt\n" "heraus."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Austos_1[] = _( + "AUSTOS kann im Meerwasser schwimmen,\n" + "indem es Wasser schluckt und mit Druck\n" + "wieder herausspritzt."); +static const u8 DexDescription_Austos_2[] = _( + "Auf dieselbe Weise verschießt dieses\n" + "POKéMON scharfe Stacheln."); +#else static const u8 DexDescription_Austos_1[] = _( "AUSTOS kann im Meerwasser schwimmen,\n" "indem es Wasser schluckt und wieder\n" @@ -773,6 +1542,7 @@ static const u8 DexDescription_Austos_2[] = _( "Dieses POKéMON kann sich auch ver- \n" "teidigen, indem es spitze Stacheln mit\n" "Hilfe des Wasserdrucks verschießt."); +#endif static const u8 DexDescription_Nebulak_1[] = _( "NEBULAK hat einen gasförmigen Körper.\n" @@ -783,6 +1553,16 @@ static const u8 DexDescription_Nebulak_2[] = _( "unter Dachrinnen, um sich vor dem\n" "gefährlichen Wind zu schützen."); +#ifdef SAPPHIRE +static const u8 DexDescription_Alpollo_1[] = _( + "ALPOLLO ist ein gefährliches POKéMON.\n" + "Wenn es dir ein Zeichen gibt, während es\n" + "durch die Dunkelheit schwebt, darfst"); +static const u8 DexDescription_Alpollo_2[] = _( + "du es nicht berühren. Dieses POKéMON\n" + "wird versuchen, an dir zu lecken und\n" + "dein Leben zu stehlen."); +#else static const u8 DexDescription_Alpollo_1[] = _( "ALPOLLO ist ein gefährliches POKéMON.\n" "Wenn es dich zu sich lockt, während es\n" @@ -791,6 +1571,7 @@ static const u8 DexDescription_Alpollo_2[] = _( "du ihm keinesfalls zu nahe kommen.\n" "Dieses POKéMON wird versuchen, an dir\n" "zu lecken und dein Leben zu stehlen."); +#endif static const u8 DexDescription_Gengar_1[] = _( "Nachts kann es passieren, dass dich\n" @@ -810,6 +1591,16 @@ static const u8 DexDescription_Onix_2[] = _( "älter wird, wird sein Körper immer\n" "runder und glatter."); +#ifdef SAPPHIRE +static const u8 DexDescription_Traumato_1[] = _( + "Wenn dir im Schlaf die Nase juckt, ist\n" + "das ein sicheres Zeichen dafür, dass\n" + "eines dieser POKéMON über deinem"); +static const u8 DexDescription_Traumato_2[] = _( + "Kissen schwebt, um deinen Traum durch\n" + "deine Nasenlöcher hindurch zu\n" + "verspeisen."); +#else static const u8 DexDescription_Traumato_1[] = _( "Wenn dir im Schlaf die Nase juckt, ist\n" "das ein sicheres Zeichen dafür, dass\n" @@ -818,6 +1609,7 @@ static const u8 DexDescription_Traumato_2[] = _( "Kissen sitzt, um deinen Traum durch\n" "deine Nasenlöcher hindurch zu\n" "verspeisen."); +#endif static const u8 DexDescription_Hypno_1[] = _( "HYPNO hält ein Pendel in der Hand. Das\n" @@ -828,6 +1620,14 @@ static const u8 DexDescription_Hypno_2[] = _( "der Suche nach Beute ist, poliert es \n" "sein Pendel."); +#ifdef SAPPHIRE +static const u8 DexDescription_Krabby_1[] = _( + "KRABBY lebt an Stränden, in Löchern im \n" + "Sand. An Sandstränden, an denen es\n" + "wenig Nahrung findet, sieht man dieses"); +static const u8 DexDescription_Krabby_2[] = _( + "POKéMON mit Artgenossen streiten."); +#else static const u8 DexDescription_Krabby_1[] = _( "KRABBY lebt an Stränden, in Löchern im \n" "Sand. An Sandstränden, an denen es\n" @@ -835,6 +1635,7 @@ static const u8 DexDescription_Krabby_1[] = _( static const u8 DexDescription_Krabby_2[] = _( "POKéMON mit Artgenossen um sein\n" "Revier streiten."); +#endif static const u8 DexDescription_Kingler_1[] = _( "KINGLER hat eine riesige Schere. Es\n" @@ -844,6 +1645,16 @@ static const u8 DexDescription_Kingler_2[] = _( "Da seine Schere aber so schwer ist, wird\n" "dieses POKéMON schnell müde."); +#ifdef SAPPHIRE +static const u8 DexDescription_Voltobal_1[] = _( + "VOLTOBAL ist äußerst empfindlich, es\n" + "explodiert schon bei der leichtesten\n" + "Erschütterung. Man munkelt, es"); +static const u8 DexDescription_Voltobal_2[] = _( + "sei entstanden, als ein POKéBALL einen\n" + "starken elektrischen Schlag bekommen\n" + "hat."); +#else static const u8 DexDescription_Voltobal_1[] = _( "VOLTOBAL wurde zuerst bei einer Firma\n" "beobachtet, die POKéBÄLLE herstellt.\n" @@ -852,7 +1663,18 @@ static const u8 DexDescription_Voltobal_2[] = _( "Beobachtung und der Tatsache, dass\n" "dieses POKéMON wie ein POKéBALL\n" "aussieht, ist noch ungeklärt."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Lektrobal_1[] = _( + "Typisch für LEKTROBAL ist seine große\n" + "Faszination für Elektrizität. Es ist ein\n" + "problematisches POKéMON, das sich"); +static const u8 DexDescription_Lektrobal_2[] = _( + "meistens in Kraftwerken niederlässt, wo\n" + "es sich von frisch erzeugtem Strom\n" + "ernähren kann."); +#else static const u8 DexDescription_Lektrobal_1[] = _( "LEKTROBAL ernährt sich von\n" "Elektrizität aus der Atmosphäre. An\n" @@ -860,6 +1682,7 @@ static const u8 DexDescription_Lektrobal_1[] = _( static const u8 DexDescription_Lektrobal_2[] = _( "dieses POKéMON dauernd, da es zu viel\n" "Elektrizität zu sich nimmt."); +#endif static const u8 DexDescription_Owei_1[] = _( "Dieses POKéMON besteht aus sechs\n" @@ -921,13 +1744,34 @@ static const u8 DexDescription_Schlurp_2[] = _( "des Geschmacks.\n" "Saure Sachen schrecken es eher ab."); +#ifdef SAPPHIRE +static const u8 DexDescription_Smogon_1[] = _( + "SMOGONs Körper enthält giftige\n" + "Substanzen. Es vermischt die Toxine mit\n" + "Müll, um eine chemische Reaktion in Gang"); +static const u8 DexDescription_Smogon_2[] = _( + "zu bringen, die ein unheimlich starkes\n" + "Giftgas hervorbringt. Je höher die Tem-\n" + "peratur, desto mehr Gas produziert es."); +#else static const u8 DexDescription_Smogon_1[] = _( "Wenn SMOGON sich aufregt, lässt es\n" "das giftige Gas in seinem Inneren\n" "entweichen. Wenn es sich zu sehr"); static const u8 DexDescription_Smogon_2[] = _( "aufbläht, explodiert dieses POKéMON."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Smogmog_1[] = _( + "SMOGMOG bläst seine beiden Körper\n" + "abwechselnd auf und lässt sie wieder\n" + "zusammenschrumpfen, um die giftigen"); +static const u8 DexDescription_Smogmog_2[] = _( + "Gase darin zu vermischen. Je mehr Gase\n" + "vermischt werden, desto stärker werden\n" + "die Toxine."); +#else static const u8 DexDescription_Smogmog_1[] = _( "SMOGMOG liebt die Gase verrottender,\n" "fauler Küchenabfälle. Dieses POKéMON\n" @@ -936,7 +1780,18 @@ static const u8 DexDescription_Smogmog_2[] = _( "schmutziges Gebäude und richtet sich\n" "dort häuslich ein. Nachts, wenn die\n" "Menschen schlafen, wühlt es im Müll."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Rihorn_1[] = _( + "RIHORNs Hirn ist sehr klein. Es ist so\n" + "beschränkt, dass es während des\n" + "Laufens vergisst, warum es überhaupt"); +static const u8 DexDescription_Rihorn_2[] = _( + "losgelaufen ist. Manchmal erinnert es\n" + "sich aber daran, dass es etwas\n" + "zerstört hat."); +#else static const u8 DexDescription_Rihorn_1[] = _( "RIHORN läuft immer geradeaus und\n" "zerstampft alles, was ihm in die Quere\n" @@ -945,7 +1800,18 @@ static const u8 DexDescription_Rihorn_2[] = _( "wenn es mit dem Kopf voran gegen einen\n" "Stahlklotz rennt. Am nächsten Tag\n" "allerdings könnte es Schmerzen haben."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Rizeros_1[] = _( + "RIZEROS hat ein Horn, das es als Bohrer\n" + "benutzen kann. Damit zerstört es \n" + "Felsblöcke und Steine. Dieses POKéMON"); +static const u8 DexDescription_Rizeros_2[] = _( + "rammt sein Horn manchmal in Ströme von\n" + "Magma. Seine panzerähnliche Haut\n" + "schützt es dabei vor der Hitze."); +#else static const u8 DexDescription_Rizeros_1[] = _( "Mit seinem Horn kann RIZEROS selbst\n" "Diamanten zerbrechen. Ein einziger\n" @@ -954,6 +1820,7 @@ static const u8 DexDescription_Rizeros_2[] = _( "zum Einsturz bringen. Die Haut dieses\n" "POKéMON ist so hart, dass nicht einmal\n" "Kanonenkugeln Kratzer hinterlassen."); +#endif static const u8 DexDescription_Chaneira_1[] = _( "CHANEIRA legt täglich ausgesprochen\n" @@ -962,6 +1829,16 @@ static const u8 DexDescription_Chaneira_1[] = _( static const u8 DexDescription_Chaneira_2[] = _( "werden, die gar keinen Appetit haben."); +#ifdef SAPPHIRE +static const u8 DexDescription_Tangela_1[] = _( + "Wenn man TANGELAs Ranken berührt, \n" + "fallen diese oft ab. Dabei empfindet\n" + "es keine Schmerzen und es kann"); +static const u8 DexDescription_Tangela_2[] = _( + "sich schnell in Sicherheit bringen. \n" + "Verliert es Ranken, werden diese am\n" + "nächsten Tag durch neue ersetzt."); +#else static const u8 DexDescription_Tangela_1[] = _( "Wenn man TANGELAs Ranken berührt, \n" "fallen diese sofort ab. Das tut ihm\n" @@ -970,7 +1847,18 @@ static const u8 DexDescription_Tangela_2[] = _( "sich schnell in Sicherheit bringen. \n" "Verliert es Ranken, werden diese am\n" "nächsten Tag durch neue ersetzt."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Kangama_1[] = _( + "Wenn du auf ein junges, spielendes\n" + "KANGAMA stößt, solltest du es nicht\n" + "stören oder versuchen es einzufangen."); +static const u8 DexDescription_Kangama_2[] = _( + "Die Mutter dieses Baby-POKéMON ist\n" + "bestimmt in Reichweite und könnte\n" + "sehr wütend auf dich werden."); +#else static const u8 DexDescription_Kangama_1[] = _( "Wenn du auf ein spielendes KANGAMA\n" "stößt, solltest du es nicht stören oder\n" @@ -979,7 +1867,18 @@ static const u8 DexDescription_Kangama_2[] = _( "Die Mutter dieses Baby-POKéMON ist\n" "bestimmt in Reichweite und könnte\n" "sehr wütend auf dich werden."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Seeper_1[] = _( + "Wenn SEEPER Gefahr wittert, versprüht\n" + "es reflexartig eine tiefschwarze Tinte\n" + "aus seinem Mund und ergreift die Flucht."); +static const u8 DexDescription_Seeper_2[] = _( + "Dieses POKéMON kann schwimmen, indem\n" + "es geschickt mit den Flossen auf seinem\n" + "Rücken schlägt."); +#else static const u8 DexDescription_Seeper_1[] = _( "SEEPER ernährt sich von kleinen\n" "Insekten und dem Moos auf Steinen.\n" @@ -988,7 +1887,18 @@ static const u8 DexDescription_Seeper_2[] = _( "dieses POKéMON mit seinem Schweif an\n" "Steinen oder Korallen, damit es nicht\n" "weggespült wird."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Seemon_1[] = _( + "SEEMON erzeugt Strudel, indem es sich\n" + "schnell um die eigene Achse dreht. Diese\n" + "Strudel können sogar Fischerboote in"); +static const u8 DexDescription_Seemon_2[] = _( + "die Tiefe reißen. Damit schwächt es\n" + "Beute, bevor es sie im Ganzen\n" + "verschlingt."); +#else static const u8 DexDescription_Seemon_1[] = _( "Sobald sich SEEMON um eine Koralle\n" "gewickelt hat, schläft es. Von Zeit zu\n" @@ -997,7 +1907,18 @@ static const u8 DexDescription_Seemon_2[] = _( "Widerhaken dieses POKéMON verletzt, \n" "wenn sie versuchen, Korallen zu ernten\n" "und es dabei nicht bemerken."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Goldini_1[] = _( + "GOLDINI liebt es, in Teichen und Flüssen\n" + "zu schwimmen. Wenn ein solches\n" + "POKéMON in ein Aquarium gebracht wird,"); +static const u8 DexDescription_Goldini_2[] = _( + "wird es selbst das dickste Glas mit\n" + "einem Stoß seines Horns zum Zerbersten\n" + "bringen und die Flucht ergreifen."); +#else static const u8 DexDescription_Goldini_1[] = _( "GOLDINI ist ein wunderschönes POKéMON,\n" "dessen Flossen sich elegant im Wasser\n" @@ -1005,7 +1926,18 @@ static const u8 DexDescription_Goldini_1[] = _( static const u8 DexDescription_Goldini_2[] = _( "POKéMON Acht geben. Es könnte einen\n" "sonst heftig mit seinem Horn rammen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Golking_1[] = _( + "GOLKING gibt sehr viel Acht auf seine\n" + "Brut. Es patrouilliert um sein Nest und\n" + "die Eier herum, wobei sich das männliche"); +static const u8 DexDescription_Golking_2[] = _( + "und das weibliche Exemplar abwechseln.\n" + "Das Bewachen der Eier beschäftigt\n" + "dieses POKéMON für über einen Monat."); +#else static const u8 DexDescription_Golking_1[] = _( "Im Herbst kann man männliche GOLKING\n" "dabei beobachten, wie sie Balztänze in \n" @@ -1014,7 +1946,18 @@ static const u8 DexDescription_Golking_2[] = _( "weiblichen Exemplare zu beeindrucken.\n" "Während dieser Zeit ist die Farbe\n" "dieser POKéMON am schönsten."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Sterndu_1[] = _( + "STERNDU kommuniziert mit den Sternen\n" + "am Nachthimmel, indem es den roten\n" + "Kern in seiner Körpermitte blinken"); +static const u8 DexDescription_Sterndu_2[] = _( + "lässt. Wenn Teile seines Körpers\n" + "beschädigt wurden, stellt es die\n" + "fehlenden Teile selber wieder her."); +#else static const u8 DexDescription_Sterndu_1[] = _( "In STERNDUs Körpermitte befindet sich\n" "ein hellrot leuchtendes Organ - \n" @@ -1023,13 +1966,24 @@ static const u8 DexDescription_Sterndu_2[] = _( "an einen Strand gehst, sehen die\n" "leuchtenden Kerne dieser POKéMON aus\n" "wie Sterne."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Starmie_1[] = _( + "STARMIE kann schwimmen, indem es\n" + "seinen sternförmigen Körper wie eine\n" + "Schiffsschraube dreht. Der Kern in"); +static const u8 DexDescription_Starmie_2[] = _( + "seiner Körpermitte leuchtet in sieben\n" + "Farben."); +#else static const u8 DexDescription_Starmie_1[] = _( "STARMIEs Mittelteil, sein Kern, leuchtet\n" "in sieben Farben. Aufgrund dieser\n" "Eigenschaft wird es auch"); static const u8 DexDescription_Starmie_2[] = _( "“Juwel des Meeres” genannt."); +#endif static const u8 DexDescription_Pantimos_1[] = _( "PANTIMOS ist ein Meister der Pantomime.\n" @@ -1076,6 +2030,16 @@ static const u8 DexDescription_Magmar_2[] = _( "die das Gras und die Bäume der Umgebung\n" "in Brand setzen."); +#ifdef SAPPHIRE +static const u8 DexDescription_Pinsir_1[] = _( + "PINSIR hat ein Paar massive Hörner. Aus\n" + "diesen ragen Dornen hervor, die sich in\n" + "den Körper seines Gegners"); +static const u8 DexDescription_Pinsir_2[] = _( + "hineinbohren, wenn sich die Zange\n" + "schließt, und ihm das Entkommen\n" + "schwer machen."); +#else static const u8 DexDescription_Pinsir_1[] = _( "PINSIR ist erstaunlich stark. Es kann\n" "einen Feind, der doppelt so viel wiegt\n" @@ -1084,7 +2048,17 @@ static const u8 DexDescription_Pinsir_2[] = _( "packen und hochheben. Bei niedrigen\n" "Temperaturen werden die Bewegungen\n" "dieses POKéMON schwerfällig."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Tauros_1[] = _( + "Dieses POKéMON ist nur zufrieden, wenn\n" + "es kämpfen kann. Wenn TAUROS keinen\n" + "Gegner findet, sucht es sich robuste"); +static const u8 DexDescription_Tauros_2[] = _( + "Bäume und haut sie um, um sich\n" + "abzureagieren."); +#else static const u8 DexDescription_Tauros_1[] = _( "Dieses POKéMON ist nur zufrieden, wenn\n" "es kämpfen kann. Wenn TAUROS keinen\n" @@ -1092,7 +2066,18 @@ static const u8 DexDescription_Tauros_1[] = _( static const u8 DexDescription_Tauros_2[] = _( "Bäume und lässt sich an ihnen aus,\n" "um sich abzureagieren."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Karpador_1[] = _( + "KARPADOR ist im Kampf praktisch nutz-\n" + "los, da es nur platschen kann.\n" + "Daher wird es als schwach eingeschätzt."); +static const u8 DexDescription_Karpador_2[] = _( + "Es ist aber tatsächlich sehr robust und\n" + "kann in jedem Gewässer überleben, egal,\n" + "wie verseucht dieses ist."); +#else static const u8 DexDescription_Karpador_1[] = _( "KARPADOR ist ein armseliges POKéMON,\n" "das nur platschen kann. Sein\n" @@ -1100,7 +2085,18 @@ static const u8 DexDescription_Karpador_1[] = _( static const u8 DexDescription_Karpador_2[] = _( "Wissenschaftler zum Forschen\n" "angeregt."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Garados_1[] = _( + "Wenn GARADOS in Rage gerät, ist sein\n" + "wildes Blut kaum zu beruhigen, bis es\n" + "alles niedergebrannt hat."); +static const u8 DexDescription_Garados_2[] = _( + "Aufzeichnungen belegen, dass die\n" + "Zerstörungswut dieses POKéMON einen\n" + "ganzen Monat anhalten kann."); +#else static const u8 DexDescription_Garados_1[] = _( "Wenn sich KARPADOR zu GARADOS\n" "entwickelt, durchlaufen seine\n" @@ -1109,6 +2105,7 @@ static const u8 DexDescription_Garados_2[] = _( "Veränderung, was wohl der Grund für die\n" "zügellose, gewalttätige Natur dieses\n" "POKéMON ist."); +#endif static const u8 DexDescription_Lapras_1[] = _( "Die Menschen sind dafür verantwortlich,\n" @@ -1126,6 +2123,15 @@ static const u8 DexDescription_Ditto_2[] = _( "Gedächtnis verlässt, unterlaufen \n" "diesem POKéMON schon mal Fehler."); +#ifdef SAPPHIRE +static const u8 DexDescription_Evoli_1[] = _( + "EVOLIs genetisches Erbmaterial ist so\n" + "instabil, dass die Umgebung plötzliche\n" + "Mutationen auslösen kann."); +static const u8 DexDescription_Evoli_2[] = _( + "Die Wirkung verschiedener STEINE\n" + "führt zur Entwicklung dieses POKéMON."); +#else static const u8 DexDescription_Evoli_1[] = _( "EVOLIs genetisches Erbmaterial ist so\n" "instabil, dass die Umgebung plötzliche\n" @@ -1134,7 +2140,18 @@ static const u8 DexDescription_Evoli_2[] = _( "Die Wirkung verschiedener \n" "STEINE führt zur Entwicklung dieses \n" "POKéMON."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Aquana_1[] = _( + "AQUANA hat eine spontane Mutation\n" + "durchlaufen. Ihm sind Flossen und \n" + "Kiemen gewachsen. Dadurch kann es"); +static const u8 DexDescription_Aquana_2[] = _( + "unter Wasser leben.\n" + "Dieses POKéMON kann Wasser nach\n" + "Belieben manipulieren."); +#else static const u8 DexDescription_Aquana_1[] = _( "AQUANA hat eine spontane Mutation\n" "durchgemacht und ihm sind Flossen und \n" @@ -1143,6 +2160,7 @@ static const u8 DexDescription_Aquana_2[] = _( "unter Wasser leben.\n" "Dieses POKéMON kann Wasser nach\n" "Belieben manipulieren."); +#endif static const u8 DexDescription_Blitza_1[] = _( "BLITZAs Zellen erzeugen schwache\n" @@ -1171,6 +2189,16 @@ static const u8 DexDescription_Porygon_2[] = _( "dass es durch Kopieren nicht\n" "vervielfältigt werden kann."); +#ifdef SAPPHIRE +static const u8 DexDescription_Amonitas_1[] = _( + "AMONITAS ist ein POKéMON, das seit\n" + "langer Zeit ausgestorben war, aber\n" + "durch die Menschen aus Fossilien"); +static const u8 DexDescription_Amonitas_2[] = _( + "reproduziert wurde. Wenn es von einem\n" + "Feind angegriffen wird, zieht es sich in\n" + "sein hartes Gehäuse zurück."); +#else static const u8 DexDescription_Amonitas_1[] = _( "AMONITAS ist ein POKéMON, das seit\n" "langer Zeit ausgestorben war, aber\n" @@ -1179,7 +2207,18 @@ static const u8 DexDescription_Amonitas_2[] = _( "reproduziert wurde. Wenn es von einem\n" "Feind angegriffen wird, zieht es sich in\n" "sein hartes Gehäuse zurück."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Amoroso_1[] = _( + "AMOROSO benutzt seine Tentakel, um\n" + "Beute einzufangen. Man nimmt an,\n" + "dass es ausgestorben ist, weil seine"); +static const u8 DexDescription_Amoroso_2[] = _( + "Schale zu groß und zu schwer geworden\n" + "ist, so dass seine Bewegungen immer\n" + "langsamer und schwerfälliger wurden."); +#else static const u8 DexDescription_Amoroso_1[] = _( "AMOROSO benutzt seine Tentakel, um\n" "Beute einzufangen. Man nimmt an,\n" @@ -1188,6 +2227,7 @@ static const u8 DexDescription_Amoroso_2[] = _( "Schale zu groß und zu schwer geworden\n" "war, so dass seine Bewegungen immer\n" "langsamer und schwerfälliger wurden."); +#endif static const u8 DexDescription_Kabuto_1[] = _( "KABUTO ist ein POKéMON, das aus einem\n" @@ -1224,6 +2264,16 @@ static const u8 DexDescription_Relaxo_2[] = _( "Kinder seinen dicken Bauch als Platz\n" "zum Spielen nutzen."); +#ifdef SAPPHIRE +static const u8 DexDescription_Arktos_1[] = _( + "ARKTOS ist ein sagenumwobenes\n" + "Vogel-POKéMON, das Eis manipulieren\n" + "kann. Das Schlagen seiner Flügel"); +static const u8 DexDescription_Arktos_2[] = _( + "bringt die Luft zum Gefrieren. Man nimmt\n" + "an, dass es zu schneien beginnt, wenn\n" + "dieses POKéMON fliegt."); +#else static const u8 DexDescription_Arktos_1[] = _( "ARKTOS ist ein sagenumwobenes\n" "Vogel-POKéMON, das Eis manipulieren\n" @@ -1232,6 +2282,7 @@ static const u8 DexDescription_Arktos_2[] = _( "bringt die Luft zum Gefrieren. Es wird\n" "behauptet, dass es zu schneien\n" "beginnt, wenn dieses POKéMON fliegt."); +#endif static const u8 DexDescription_Zapdos_1[] = _( "ZAPDOS ist ein legendäres\n" @@ -1251,12 +2302,21 @@ static const u8 DexDescription_Lavados_2[] = _( "Vulkans, um sich zu verbrennen\n" "und selbst zu heilen."); +#ifdef SAPPHIRE +static const u8 DexDescription_Dratini_1[] = _( + "DRATINI häutet sich ständig, da die\n" + "Lebensenergie in seinem Körper\n" + "stetig und unkontrollierbar ansteigt."); +static const u8 DexDescription_Dratini_2[] = _( + ""); +#else static const u8 DexDescription_Dratini_1[] = _( "DRATINI häutet sich ständig und\n" "entledigt sich so seiner Haut, da die\n" "Lebensenergie in seinem Körper"); static const u8 DexDescription_Dratini_2[] = _( "stetig und unkontrollierbar ansteigt."); +#endif static const u8 DexDescription_Dragonir_1[] = _( "DRAGONIR speichert eine enorme Menge\n" @@ -1292,6 +2352,16 @@ static const u8 DexDescription_Mew_2[] = _( "machen, so dass es sich auch Menschen\n" "nähern kann, ohne bemerkt zu werden."); +#ifdef SAPPHIRE +static const u8 DexDescription_Endivie_1[] = _( + "Im Kampf wedelt ENDIVIE mit seinem\n" + "Blatt, um den Feind fern zu halten. Von\n" + "dem Blatt geht auch ein süßlicher Duft"); +static const u8 DexDescription_Endivie_2[] = _( + "aus, der das gegnerische POKéMON im\n" + "Kampf beruhigt und eine gemütliche,\n" + "freundliche Atmosphäre schafft."); +#else static const u8 DexDescription_Endivie_1[] = _( "Im Kampf wedelt ENDIVIE mit seinem\n" "Blatt, um den Feind fern zu halten. Von\n" @@ -1300,6 +2370,7 @@ static const u8 DexDescription_Endivie_2[] = _( "aus, der die kämpfenden POKéMON\n" "beruhigt und eine gemütliche,\n" "freundliche Atmosphäre schafft."); +#endif static const u8 DexDescription_Lorblatt_1[] = _( "LORBLATTs Nacken ist mit\n" @@ -1310,6 +2381,15 @@ static const u8 DexDescription_Lorblatt_2[] = _( "Der Duft dieses Triebes bringt\n" "Menschen auf Trab."); +#ifdef SAPPHIRE +static const u8 DexDescription_Meganie_1[] = _( + "Der Duft von MEGANIEs Blume besänftigt\n" + "die Gemüter. Im Kampf gibt dieses\n" + "POKéMON mehr von seinem beruhigenden"); +static const u8 DexDescription_Meganie_2[] = _( + "Duftstoff ab, um den Kampfgeist des\n" + "Gegners zu besänftigen."); +#else static const u8 DexDescription_Meganie_1[] = _( "Der Duft von MEGANIEs Blume besänftigt\n" "Gemüter. Im Kampf gibt dieses POKéMON\n" @@ -1317,7 +2397,18 @@ static const u8 DexDescription_Meganie_1[] = _( static const u8 DexDescription_Meganie_2[] = _( "Duftstoff ab, um den Kampfgeist des\n" "Gegners zu schwächen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Feurigel_1[] = _( + "FEURIGEL lässt Flammen aus seinem\n" + "Rücken lodern, wenn es sich schützen\n" + "muss. Die Flammen sind sehr stark,"); +static const u8 DexDescription_Feurigel_2[] = _( + "wenn dieses POKéMON wütend ist. Ist es\n" + "aber müde, flackern die Flammen nur\n" + "unregelmäßig und schwach."); +#else static const u8 DexDescription_Feurigel_1[] = _( "FEURIGEL lässt Flammen aus seinem\n" "Rücken lodern, wenn es sich schützen\n" @@ -1326,6 +2417,7 @@ static const u8 DexDescription_Feurigel_2[] = _( "wenn dieses POKéMON wütend ist. Ist es\n" "aber müde, flackern die Flammen nur\n" "unregelmäßig und schwach."); +#endif static const u8 DexDescription_Igelavar_1[] = _( "IGELAVAR hält seine Gegner mit Flammen\n" @@ -1336,6 +2428,15 @@ static const u8 DexDescription_Igelavar_2[] = _( "Angriffen auszuweichen und seinen\n" "Gegner gleichzeitig zu versengen."); +#ifdef SAPPHIRE +static const u8 DexDescription_Tornupto_1[] = _( + "TORNUPTO versteckt sich hinter einem\n" + "flimmernden Hitzeschild, den es mit\n" + "Hilfe seiner heißen Flammen erzeugt."); +static const u8 DexDescription_Tornupto_2[] = _( + "Dieses POKéMON erzeugt Explosionen,\n" + "die alles in Schutt und Asche legen."); +#else static const u8 DexDescription_Tornupto_1[] = _( "TORNUPTO versteckt sich hinter einem\n" "flimmernden Hitzeschild, den es mit\n" @@ -1344,6 +2445,7 @@ static const u8 DexDescription_Tornupto_2[] = _( "Dieses POKéMON erzeugt Explosionen,\n" "die alles in Schutt und Asche\n" "legen."); +#endif static const u8 DexDescription_Karnimani_1[] = _( "KARNIMANI ist zwar sehr klein, aber\n" @@ -1390,6 +2492,15 @@ static const u8 DexDescription_Wiesenior_2[] = _( "Gliedmaßen ist dieses POKéMON sehr\n" "wendig und flink."); +#ifdef SAPPHIRE +static const u8 DexDescription_Hoothoot_1[] = _( + "HOOTHOOT besitzt ein inneres Organ, das\n" + "die Erdumdrehung wahrnimmt. Dieses\n" + "besondere Organ ermöglicht es diesem"); +static const u8 DexDescription_Hoothoot_2[] = _( + "POKéMON, jeden Tag zur selben Zeit\n" + "zu schreien."); +#else static const u8 DexDescription_Hoothoot_1[] = _( "HOOTHOOT besitzt ein inneres Organ, das\n" "die Erdumdrehung wahrnimmt. Dieses\n" @@ -1397,7 +2508,18 @@ static const u8 DexDescription_Hoothoot_1[] = _( static const u8 DexDescription_Hoothoot_2[] = _( "POKéMON, jeden Tag zur selben Zeit zu\n" "schreien."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Noctuh_1[] = _( + "Dank seines hervorragenden\n" + "Sehvermögens, mit dem es auch bei\n" + "geringer Beleuchtung sehen kann, und"); +static const u8 DexDescription_Noctuh_2[] = _( + "dank seiner geschmeidigen Flügel,\n" + "mit denen es geräuschlos fliegen kann,\n" + "entgeht NOCTUH keine Beute."); +#else static const u8 DexDescription_Noctuh_1[] = _( "Dank seines hervorragenden\n" "Sehvermögens, mit dem es auch bei\n" @@ -1406,6 +2528,7 @@ static const u8 DexDescription_Noctuh_2[] = _( "dank seiner geschmeidigen Flügel,\n" "mit denen es geräuschlos fliegt,\n" "entgeht NOCTUH keine Beute."); +#endif static const u8 DexDescription_Ledyba_1[] = _( "LEDYBA sondert eine duftende\n" @@ -1432,6 +2555,15 @@ static const u8 DexDescription_Webarak_2[] = _( "Vibrationen der Netzfäden bestimmen,\n" "welche Art Beute sich darauf befindet."); +#ifdef SAPPHIRE +static const u8 DexDescription_Ariados_1[] = _( + "ARIADOS hat kleine hakenförmige Krallen\n" + "an seinen Füßen. Damit kann es an\n" + "Decken und Wänden entlangflitzen."); +static const u8 DexDescription_Ariados_2[] = _( + "Dieses POKéMON erdrückt seine Gegner\n" + "mit starkem, dünnem Seidenfaden."); +#else static const u8 DexDescription_Ariados_1[] = _( "ARIADOS hat kleine hakenförmige Krallen\n" "an seinen Füßen. Damit kann es an\n" @@ -1439,7 +2571,18 @@ static const u8 DexDescription_Ariados_1[] = _( static const u8 DexDescription_Ariados_2[] = _( "Dieses POKéMON erdrückt seine Gegner\n" "mit starkem, dünnem Seidenfaden."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Iksbat_1[] = _( + "IKSBATs Flügelschlag ist so leise, dass\n" + "die Beute lautlos überrascht wird.\n" + "Dieses POKéMON ruht sich"); +static const u8 DexDescription_Iksbat_2[] = _( + "aus, indem es sich mit seinen\n" + "Hinterbeinen, die ihm als Flügel\n" + "dienen, an einen Ast hängt."); +#else static const u8 DexDescription_Iksbat_1[] = _( "Wenn IKSBAT fliegt, indem es nur ein \n" "Paar Flügel, entweder an seinen Vorder-\n" @@ -1448,7 +2591,17 @@ static const u8 DexDescription_Iksbat_2[] = _( "Anzeichen dafür, dass dieses POKéMON \n" "bereits eine lange Strecke hinter sich\n" "hat. Dann wechselt es die Flügel häufig."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Lampi_1[] = _( + "LAMPIs zwei Antennen sind mit Zellen\n" + "gefüllt, die Elektrizität erzeugen. \n" + "Die elektrische Ladung ist so stark,"); +static const u8 DexDescription_Lampi_2[] = _( + "dass es sogar ein leichtes Kribbeln\n" + "verspürt."); +#else static const u8 DexDescription_Lampi_1[] = _( "LAMPI gibt positive und negative\n" "elektrische Ladungen durch seine\n" @@ -1457,7 +2610,18 @@ static const u8 DexDescription_Lampi_2[] = _( "Dieses POKéMON lässt seine Lichter\n" "aufflackern und tauscht Signale mit\n" "seinen Artgenossen aus."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Lanturn_1[] = _( + "LANTURN strahlt Licht ab. Wenn du\n" + "nachts aufs dunkle Meer hinausblickst,\n" + "kannst du vielleicht das Licht dieses"); +static const u8 DexDescription_Lanturn_2[] = _( + "PKMN aus der Tiefe, in der es schwimmt,\n" + "heraufschimmern sehen. Es lässt das\n" + "Meer wie eine sternklare Nacht wirken."); +#else static const u8 DexDescription_Lanturn_1[] = _( "LANTURN wird auch “Tiefseestern”\n" "genannt, da es leuchtende Antennen\n" @@ -1466,7 +2630,18 @@ static const u8 DexDescription_Lanturn_2[] = _( "indem es in den Antennen eine chemische\n" "Reaktion zwischen Bakterien und seinen\n" "Körperflüssigkeiten erzeugt."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Pichu_1[] = _( + "Wenn PICHU mit anderen spielt, kann es\n" + "einen Kurzschluss mit einem seiner \n" + "Artgenossen erzeugen, so dass die"); +static const u8 DexDescription_Pichu_2[] = _( + "Funken sprühen. Dann beginnt es zu\n" + "weinen, weil es vor den Funken\n" + "erschrickt."); +#else static const u8 DexDescription_Pichu_1[] = _( "An Gewittertagen oder Tagen, an denen\n" "die Luft sehr trocken ist, kann sich\n" @@ -1474,7 +2649,17 @@ static const u8 DexDescription_Pichu_1[] = _( static const u8 DexDescription_Pichu_2[] = _( "aufladen. Dann kann man das Knistern\n" "statischer Aufladung hören."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Pii_1[] = _( + "In Nächten mit vielen Sternschnuppen\n" + "kann man PII im Kreis tanzen sehen. Es\n" + "tanzt die ganze Nacht hindurch und"); +static const u8 DexDescription_Pii_2[] = _( + "hört erst bei Sonnenaufgang auf, um\n" + "seinen Durst mit Morgentau zu stillen."); +#else static const u8 DexDescription_Pii_1[] = _( "In Nächten mit vielen Sternschnuppen,\n" "kann man PII im Kreis tanzen sehen. Es\n" @@ -1482,7 +2667,16 @@ static const u8 DexDescription_Pii_1[] = _( static const u8 DexDescription_Pii_2[] = _( "hört erst bei Sonnenaufgang auf, um\n" "seinen Durst mit Morgentau zu stillen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Fluffeluff_1[] = _( + "FLUFFELUFF hat einen weichen Körper,\n" + "der sich anfühlt wie ein Marshmallow. Es\n" + "verströmt einen süßlichen Duft, der"); +static const u8 DexDescription_Fluffeluff_2[] = _( + "die Emotionen seiner Gegner beruhigt."); +#else static const u8 DexDescription_Fluffeluff_1[] = _( "FLUFFELUFFs Stimmbänder sind noch\n" "nicht voll entwickelt. Wenn es zu viel\n" @@ -1490,7 +2684,18 @@ static const u8 DexDescription_Fluffeluff_1[] = _( static const u8 DexDescription_Fluffeluff_2[] = _( "Dieses POKéMON gurgelt mit Süßwasser\n" "aus einem sauberen Fluss."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Togepi_1[] = _( + "TOGEPI benutzt die positiven Emotionen\n" + "Freude und Mitgefühl von Menschen und\n" + "POKéMON als Energie."); +static const u8 DexDescription_Togepi_2[] = _( + "Dieses POKéMON speichert Glücksgefühle\n" + "in seiner Schale und teilt sie mit\n" + "anderen."); +#else static const u8 DexDescription_Togepi_1[] = _( "TOGEPI nutzt die positiven Emotionen,\n" "wie Freude und Mitgefühl, von Menschen\n" @@ -1499,14 +2704,33 @@ static const u8 DexDescription_Togepi_2[] = _( "Dieses POKéMON speichert Glücksgefühle\n" "in seiner Schale und teilt sie mit\n" "anderen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Togetic_1[] = _( + "TOGETIC ist ein POKéMON, das Glück\n" + "bringt. Wenn es jemanden trifft, der\n" + "gutherzig ist, teilt es seine Freude mit"); +static const u8 DexDescription_Togetic_2[] = _( + "dieser Person."); +#else static const u8 DexDescription_Togetic_1[] = _( "TOGETIC ist ein POKéMON, das Glück\n" "bringt. Wenn es jemanden trifft, der\n" "reinen Herzens ist, zeigt es sich und"); static const u8 DexDescription_Togetic_2[] = _( "teilt sein Glück mit dieser Person."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Natu_1[] = _( + "NATU kann hervorragend springen.\n" + "Dieses POKéMON schlägt mit den Flügeln\n" + "und springt auf Äste, die höher liegen,"); +static const u8 DexDescription_Natu_2[] = _( + "als ein Erwachsener groß ist, um an die\n" + "neuen Triebe eines Baumes zu kommen."); +#else static const u8 DexDescription_Natu_1[] = _( "NATU kann nicht fliegen, da seine Flügel\n" "noch nicht ausgewachsen sind. Wenn du\n" @@ -1515,7 +2739,17 @@ static const u8 DexDescription_Natu_2[] = _( "starrt es dich konzentriert an. Wenn du\n" "dich aber bewegst, hüpft es weg, um sich\n" "in Sicherheit zu bringen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Xatu_1[] = _( + "XATU steht den ganzen Tag \n" + "bewegungslos herum und starrt die\n" + "Sonne an. Einige Menschen verehren es"); +static const u8 DexDescription_Xatu_2[] = _( + "als ein mystisches POKéMON. Sie glauben,\n" + "dass XATU in die Zukunft sehen könne."); +#else static const u8 DexDescription_Xatu_1[] = _( "XATU bleibt den ganzen Tag an ein und\n" "demselben Ort wie angewurzelt stehen. \n" @@ -1523,6 +2757,7 @@ static const u8 DexDescription_Xatu_1[] = _( static const u8 DexDescription_Xatu_2[] = _( "Angst vor den Dingen tut, die es für die\n" "Zukunft vorausgesehen hat."); +#endif static const u8 DexDescription_Voltilamm_1[] = _( "VOLTILAMMs flauschiges, wollenes Fell\n" @@ -1549,6 +2784,15 @@ static const u8 DexDescription_Ampharos_2[] = _( "dieses POKéMON dazu, Signale über\n" "weite Entfernungen auszutauschen."); +#ifdef SAPPHIRE +static const u8 DexDescription_Blubella_1[] = _( + "BLUBELLA wachsen schönere Blumen,\n" + "wenn es sich aus einem übel riechenden\n" + "DUFLOR entwickelt hat - je stinkender,"); +static const u8 DexDescription_Blubella_2[] = _( + "desto besser. Nachts schließt dieses\n" + "POKéMON seine Blätter und schläft."); +#else static const u8 DexDescription_Blubella_1[] = _( "Wenn BLUBELLA starkem Sonnenlicht\n" "ausgesetzt ist, beginnen sich die Blät-\n" @@ -1556,7 +2800,17 @@ static const u8 DexDescription_Blubella_1[] = _( static const u8 DexDescription_Blubella_2[] = _( "Der Tanz dieses POKéMON ist in\n" "südlichen Ländern sehr bekannt."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Marill_1[] = _( + "Wenn es am Ufer eines reißenden Flusses\n" + "fischt, wickelt MARILL seinen Schweif\n" + "um einen Baumstamm. Der Schweif dieses"); +static const u8 DexDescription_Marill_2[] = _( + "POKéMON ist flexibel und elastisch, so\n" + "dass es ihn ausdehnen kann."); +#else static const u8 DexDescription_Marill_1[] = _( "MARILLs Schweif ist mit Öl gefüllt und\n" "dient ihm als eine Art Rettungsring.\n" @@ -1565,7 +2819,18 @@ static const u8 DexDescription_Marill_2[] = _( "Wasseroberfläche zu sehen ist, taucht\n" "dieses POKéMON gerade, um sich von\n" "Wasserpflanzen zu ernähren."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Azumarill_1[] = _( + "AZUMARILL kann aus Luft Ballons\n" + "machen. Diese Luft-Ballons erzeugt es,\n" + "wenn es ein ertrinkendes POKéMON"); +static const u8 DexDescription_Azumarill_2[] = _( + "erspäht. Durch die Ballons kann das\n" + "POKéMON, das in Schwierigkeiten \n" + "geraten ist, atmen."); +#else static const u8 DexDescription_Azumarill_1[] = _( "AZUMARILLs lange Ohren dienen ihm\n" "als unentbehrliche Sensoren. Wenn es\n" @@ -1574,6 +2839,7 @@ static const u8 DexDescription_Azumarill_2[] = _( "POKéMON auch in reißenden Flüssen\n" "identifizieren, welche Art von Beute\n" "sich in seiner Nähe befindet."); +#endif static const u8 DexDescription_Mogelbaum_1[] = _( "MOGELBAUM tarnt sich als Baum, um\n" @@ -1583,6 +2849,15 @@ static const u8 DexDescription_Mogelbaum_2[] = _( "das ganze Jahr über grün bleiben, fällt\n" "seine Tarnung im Winter leicht auf."); +#ifdef SAPPHIRE +static const u8 DexDescription_Quaxo_1[] = _( + "QUAXO hat lockiges Haar, das ihm den\n" + "Status eines Königs bescheinigt. Je\n" + "länger und lockiger sein Haar ist, desto"); +static const u8 DexDescription_Quaxo_2[] = _( + "mehr Respekt erntet dieses POKéMON\n" + "von seinen Artgenossen."); +#else static const u8 DexDescription_Quaxo_1[] = _( "QUAXO hat gelocktes Haar, das ihm den\n" "Status eines Königs bescheinigt. Je\n" @@ -1590,6 +2865,7 @@ static const u8 DexDescription_Quaxo_1[] = _( static const u8 DexDescription_Quaxo_2[] = _( "mehr Respekt erntet dieses POKéMON\n" "von seinen Artgenossen."); +#endif static const u8 DexDescription_Hoppspross_1[] = _( "HOPPSPROSS lässt sich vom Wind\n" @@ -1599,6 +2875,16 @@ static const u8 DexDescription_Hoppspross_2[] = _( "Blätter mit anderen HOPPSPROSS,\n" "damit es nicht davongeweht wird."); +#ifdef SAPPHIRE +static const u8 DexDescription_Hubelupf_1[] = _( + "HUBELUPFs Blume beginnt zu blühen, wenn\n" + "die Temperatur über 18 Grad steigt. Wie\n" + "weit sich die Blume öffnet, hängt von"); +static const u8 DexDescription_Hubelupf_2[] = _( + "der Temperatur ab. Daher wird dieses\n" + "POKéMON manchmal als Thermometer\n" + "eingesetzt."); +#else static const u8 DexDescription_Hubelupf_1[] = _( "HUBELUPFs Blume beginnt zu blühen, wenn\n" "die Temperatur über 18 Grad steigt. Wie\n" @@ -1607,6 +2893,7 @@ static const u8 DexDescription_Hubelupf_2[] = _( "der Höhe der Temperatur ab. Daher wird\n" "dieses POKéMON manchmal als\n" "Thermometer eingesetzt."); +#endif static const u8 DexDescription_Papungha_1[] = _( "PAPUNGHA nutzt den Südwind, um das\n" @@ -1642,6 +2929,16 @@ static const u8 DexDescription_Sonnflora_2[] = _( "Wenn aber die Sonne untergegangen ist,\n" "hört es auf sich zu bewegen."); +#ifdef SAPPHIRE +static const u8 DexDescription_Yanma_1[] = _( + "YANMA hat einen Blickwinkel von 360\n" + "Grad, ohne die Augen bewegen zu müssen.\n" + "Es ist ein großartiger Flieger und geübt"); +static const u8 DexDescription_Yanma_2[] = _( + "darin, plötzlich anzuhalten oder\n" + "Wendemanöver hinzulegen. So kann es\n" + "sich blitzschnell auf Beute stürzen."); +#else static const u8 DexDescription_Yanma_1[] = _( "YANMA hat einen Blickwinkel von 360\n" "Grad, ohne die Augen bewegen zu müssen.\n" @@ -1650,6 +2947,7 @@ static const u8 DexDescription_Yanma_2[] = _( "darin, plötzlich anzuhalten oder\n" "Wendemanöver vorzunehmen. So kann es\n" "sich blitzschnell auf Beute stürzen."); +#endif static const u8 DexDescription_Felino_1[] = _( "FELINO lebt eigentlich im Wasser.\n" @@ -1711,6 +3009,16 @@ static const u8 DexDescription_Traunfugil_2[] = _( "Feinde aufzunehmen und sie in\n" "Nahrung umzuwandeln."); +#ifdef SAPPHIRE +static const u8 DexDescription_Icognito_1[] = _( + "ICOGNITO hat die Form antiker\n" + "Schriftzeichen. Bis heute ist unklar,\n" + "was zuerst da war - die antiken"); +static const u8 DexDescription_Icognito_2[] = _( + "Schriftzeichen oder die vielen unter-\n" + "schiedlichen ICOGNITO. Trotz umfang-\n" + "reicher Forschung bleiben Fragen offen."); +#else static const u8 DexDescription_Icognito_1[] = _( "ICOGNITO hat die Form antiker\n" "Schriftzeichen. Bis heute ist unklar,\n" @@ -1719,7 +3027,18 @@ static const u8 DexDescription_Icognito_2[] = _( "Schriftzeichen oder die vielen unter-\n" "schiedlichen ICOGNITO. Trotz umfang-\n" "reicher Forschung bleiben Fragen offen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Woingenau_1[] = _( + "WOINGENAU tut nichts anderes als\n" + "Angriffe auszuhalten. Von sich aus\n" + "würde es nie angreifen. Eine Attacke"); +static const u8 DexDescription_Woingenau_2[] = _( + "auf seinen Schweif würde es allerdings\n" + "niemals dulden. Wenn das passiert, \n" + "setzt es ABGANGSBUND ein."); +#else static const u8 DexDescription_Woingenau_1[] = _( "Wenn zwei oder mehr WOINGENAU \n" "aufeinander treffen, versuchen sie,\n" @@ -1728,7 +3047,18 @@ static const u8 DexDescription_Woingenau_2[] = _( "Sie möchten herausfinden, welches\n" "POKéMON es am längsten ohne Nahrung\n" "aushält. Darauf müssen Trainer achten."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Girafarig_1[] = _( + "Der Kopf an GIRAFARIGs Hinterteil\n" + "verfügt nur über ein kleines Gehirn, mit\n" + "dem es nicht denken kann. Dieses Gehirn"); +static const u8 DexDescription_Girafarig_2[] = _( + "benötigt jedoch keinen Schlaf und ist\n" + "somit in der Lage, die Umgebung rund\n" + "um die Uhr im Auge zu behalten."); +#else static const u8 DexDescription_Girafarig_1[] = _( "Der Kopf an GIRAFARIGs Hinterteil hat\n" "ein eigenes Gehirn. Er reagiert mit\n" @@ -1737,7 +3067,17 @@ static const u8 DexDescription_Girafarig_2[] = _( "Wenn man sich diesem POKéMON von\n" "hinten nähert, könnte der hintere Kopf\n" "plötzlich vorschnellen und zubeißen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Tannza_1[] = _( + "TANNZA hängt an Ästen und wartet auf\n" + "Beute. Wenn man dieses POKéMON bei\n" + "einer Mahlzeit stört, indem man seinen"); +static const u8 DexDescription_Tannza_2[] = _( + "Baum schüttelt, fällt es herunter und\n" + "explodiert ohne Vorwarnung."); +#else static const u8 DexDescription_Tannza_1[] = _( "TANNZA hängt an Ästen und wartet auf\n" "Beute. Wenn man dieses POKéMON bei\n" @@ -1746,6 +3086,7 @@ static const u8 DexDescription_Tannza_2[] = _( "Baum, auf dem es sich befindet,\n" "schüttelt, fällt es herunter und\n" "explodiert ohne Vorwarnung."); +#endif static const u8 DexDescription_Forstellka_1[] = _( "FORSTELLKA versteckt sich in seiner\n" @@ -1799,6 +3140,16 @@ static const u8 DexDescription_Granbull_2[] = _( "Es beißt nur zu, wenn es erschreckt\n" "wird."); +#ifdef SAPPHIRE +static const u8 DexDescription_Baldorfish_1[] = _( + "BALDORFISH saugt Wasser ein, um sich\n" + "aufzublasen. Dieses POKéMON nutzt den\n" + "Druck des Wassers dazu, giftige"); +static const u8 DexDescription_Baldorfish_2[] = _( + "Stacheln zu verschießen. Es betrachtet\n" + "Schwimmen als eine echte Heraus-\n" + "forderung."); +#else static const u8 DexDescription_Baldorfish_1[] = _( "BALDORFISH saugt Wasser ein, um sich\n" "aufzublasen. Dieses POKéMON nutzt den\n" @@ -1807,6 +3158,7 @@ static const u8 DexDescription_Baldorfish_2[] = _( "Stacheln aus seinem Körper zu\n" "verschießen. Es betrachtet Schwimmen\n" "als eine echte Herausforderung."); +#endif static const u8 DexDescription_Scherox_1[] = _( "SCHEROX’ Körper ist hart wie Stahl.\n" @@ -1816,6 +3168,16 @@ static const u8 DexDescription_Scherox_2[] = _( "mit den Flügeln, um seine\n" "Körpertemperatur zu regulieren."); +#ifdef SAPPHIRE +static const u8 DexDescription_Pottrott_1[] = _( + "POTTROTT versteckt sich leise unter\n" + "Steinen und verbirgt seinen Körper in\n" + "seiner harten Schale, wenn es Beeren"); +static const u8 DexDescription_Pottrott_2[] = _( + "zu sich nimmt.\n" + "Die Beeren vermischen sich mit seinen\n" + "Körperflüssigkeiten zu einem Saft."); +#else static const u8 DexDescription_Pottrott_1[] = _( "POTTROTT versteckt sich leise unter\n" "Steinen und verbirgt seinen Körper in\n" @@ -1824,7 +3186,18 @@ static const u8 DexDescription_Pottrott_2[] = _( "gesammelte Beeren zu sich nimmt. Die\n" "Beeren vermischen sich mit seinen\n" "Körperflüssigkeiten zu einem Saft."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Skaraborn_1[] = _( + "SKARABORN hat scharfe Krallen an den\n" + "Füßen. Diese bohren sich fest in den\n" + "Boden oder in die Rinde eines Baumes"); +static const u8 DexDescription_Skaraborn_2[] = _( + "und geben diesem POKéMON einen siche-\n" + "ren Halt. So kann es seine Gegner mit\n" + "seinem imposanten Horn wegschleudern."); +#else static const u8 DexDescription_Skaraborn_1[] = _( "SKARABORN geht direkt auf seinen\n" "Gegner los, rutscht auf ihn zu, um ihn\n" @@ -1833,7 +3206,17 @@ static const u8 DexDescription_Skaraborn_2[] = _( "Horn wegzuschleudern. Dieses POKéMON\n" "hat genug Kraft, um einen massigen\n" "Baum umzustoßen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Sniebel_1[] = _( + "SNIEBEL klettert an Bäumen hoch, indem\n" + "es seine hakenförmigen Krallen in die\n" + "Rinde schlägt. Dieses POKéMON sucht"); +static const u8 DexDescription_Sniebel_2[] = _( + "nach unbewachten Nestern und stiehlt\n" + "die Eier. Davon ernährt es sich."); +#else static const u8 DexDescription_Sniebel_1[] = _( "SNIEBEL klettert an Bäumen hoch, indem\n" "es seine hakenförmigen Krallen in die\n" @@ -1842,7 +3225,17 @@ static const u8 DexDescription_Sniebel_2[] = _( "nach unbewachten Nestern und stiehlt\n" "die Eier, wenn die Eltern auf Nahrungs-\n" "suche sind. Davon ernährt es sich."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Teddiursa_1[] = _( + "TEDDIURSA leckt gern seine mit Honig\n" + "bedeckten Pfoten ab. Dieses POKéMON\n" + "bereitet seinen eigenen Honig zu, indem"); +static const u8 DexDescription_Teddiursa_2[] = _( + "es die von BIBOR gesammelten Früchte\n" + "und Pollen vermengt."); +#else static const u8 DexDescription_Teddiursa_1[] = _( "TEDDIURSA leckt gern seine mit Honig\n" "bedeckten Pranken ab. Dieses POKéMON\n" @@ -1850,6 +3243,7 @@ static const u8 DexDescription_Teddiursa_1[] = _( static const u8 DexDescription_Teddiursa_2[] = _( "es die von BIBOR gesammelten Früchte\n" "und Pollen miteinander vermengt."); +#endif static const u8 DexDescription_Ursaring_1[] = _( "In den von URSARING bewohnten Wäldern\n" @@ -1859,6 +3253,15 @@ static const u8 DexDescription_Ursaring_2[] = _( "POKéMON läuft täglich durch den Wald,\n" "um nach Essbarem zu suchen."); +#ifdef SAPPHIRE +static const u8 DexDescription_Schneckmag_1[] = _( + "SCHNECKMAG hat kein Blut in seinem\n" + "Körper. Stattdessen fließt glühend\n" + "heißes Magma in diesem POKéMON,"); +static const u8 DexDescription_Schneckmag_2[] = _( + "das seine Organe mit lebenswichtigen\n" + "Nährstoffen und Sauerstoff versorgt."); +#else static const u8 DexDescription_Schneckmag_1[] = _( "Durch SCHNECKMAGs Kreislaufsystem\n" "fließt Magma. Wenn dieses POKéMON\n" @@ -1867,7 +3270,18 @@ static const u8 DexDescription_Schneckmag_2[] = _( "aus und erhärtet. Sein Körper wird\n" "spröde und es brechen Stücke heraus,\n" "so dass es kleiner wird."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Magcargo_1[] = _( + "MAGCARGOs Körpertemperatur liegt bei\n" + "etwa 10.000 Grad. Dieses POKéMON\n" + "bringt Wasser sofort zum Verdampfen."); +static const u8 DexDescription_Magcargo_2[] = _( + "Wenn dieses POKéMON im Regen steht,\n" + "werden die Tropfen augenblicklich zu\n" + "Dampf und es entsteht dichter Nebel."); +#else static const u8 DexDescription_Magcargo_1[] = _( "MAGCARGOs Schale ist eigentlich seine\n" "Haut, die erhärtet ist, als es auskühlte.\n" @@ -1876,7 +3290,18 @@ static const u8 DexDescription_Magcargo_2[] = _( "zerbrechlich. Schon bei einer leichten\n" "Berührung bricht sie auseinander. Dann\n" "muss es ein Bad in Magma nehmen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Quiekel_1[] = _( + "Auf Nahrungssuche schnüffelt QUIEKEL\n" + "am Boden entlang. Seine \n" + "Lieblingsspeise ist ein Pilz, der unter"); +static const u8 DexDescription_Quiekel_2[] = _( + "abgestorbenem Gras wächst. \n" + "Manchmal spürt dieses POKéMON heiße\n" + "Quellen auf."); +#else static const u8 DexDescription_Quiekel_1[] = _( "Auf Nahrungssuche schnüffelt QUIEKEL\n" "am Boden entlang. Seine \n" @@ -1885,7 +3310,18 @@ static const u8 DexDescription_Quiekel_2[] = _( "verwesendem Gras wächst. \n" "Manchmal spürt dieses POKéMON heiße\n" "Quellen auf."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Keifel_1[] = _( + "KEIFEL hat ein dichtes Fell aus langen\n" + "Haaren. Dadurch ist es gegen eisige\n" + "Kälte gewappnet."); +static const u8 DexDescription_Keifel_2[] = _( + "Dieses POKéMON benutzt seine\n" + "Stoßzähne, um an Nahrung zu gelangen,\n" + "die unter dem Eis eingeschlossen ist."); +#else static const u8 DexDescription_Keifel_1[] = _( "KEIFEL hat ein dichtes Fell aus langen\n" "Haaren. Dadurch ist es gegen eisige\n" @@ -1894,7 +3330,18 @@ static const u8 DexDescription_Keifel_2[] = _( "Dieses POKéMON benutzt seine\n" "Hauer, um an Nahrung zu gelangen, die\n" "unter dem Eis eingeschlossen ist."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Corasonn_1[] = _( + "Scharen von CORASONN sammeln sich im\n" + "warmen Meer und dienen kleineren\n" + "POKéMON als ideale Plätze zum"); +static const u8 DexDescription_Corasonn_2[] = _( + "Verstecken. Wenn die Wassertemperatur\n" + "sinkt, wandert dieses POKéMON in die\n" + "südlichen Meere ab."); +#else static const u8 DexDescription_Corasonn_1[] = _( "Wenn CORASONNs Arme Sonnenlicht\n" "abbekommen, glitzern sie wunderschön\n" @@ -1902,6 +3349,7 @@ static const u8 DexDescription_Corasonn_1[] = _( static const u8 DexDescription_Corasonn_2[] = _( "abbricht, wächst über Nacht ein neuer\n" "nach."); +#endif static const u8 DexDescription_Remoraid_1[] = _( "REMORAID saugt Wasser ein und spritzt\n" @@ -1921,6 +3369,16 @@ static const u8 DexDescription_Octillery_2[] = _( "Wenn ein Feind zu stark ist, speit es\n" "Tinte aus und flüchtet."); +#ifdef SAPPHIRE +static const u8 DexDescription_Botogel_1[] = _( + "BOTOGEL sammelt seine Nahrung in\n" + "seinem Schweif. Es gab einmal einen\n" + "berühmten Entdecker, der es dank eines"); +static const u8 DexDescription_Botogel_2[] = _( + "BOTOGEL geschafft hat, einen der\n" + "höchsten Berge der Welt zu besteigen.\n" + "Es hat seine Nahrung mit ihm geteilt."); +#else static const u8 DexDescription_Botogel_1[] = _( "BOTOGEL sammelt seine Nahrung in\n" "seinem Schweif. Es gab einmal einen\n" @@ -1929,7 +3387,18 @@ static const u8 DexDescription_Botogel_2[] = _( "BOTOGELs geschafft hat, einen der\n" "höchsten Berge der Welt zu besteigen.\n" "Es hatte seine Nahrung mit ihm geteilt."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Mantax_1[] = _( + "An schönen Tagen sieht man Scharen\n" + "von MANTAX elegant über die Wellen des\n" + "Ozeans springen."); +static const u8 DexDescription_Mantax_2[] = _( + "Durch REMORAID, die an ihm haften\n" + "und ihn begleiten, fühlt sich dieses\n" + "POKéMON nicht belästigt."); +#else static const u8 DexDescription_Mantax_1[] = _( "An schönen Tagen sieht man Schwärme\n" "von MANTAX elegant über die Wellen des\n" @@ -1938,7 +3407,17 @@ static const u8 DexDescription_Mantax_2[] = _( "Durch REMORAID, die an ihm haften\n" "und ihn begleiten, fühlt sich dieses\n" "POKéMON nicht belästigt."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Panzaeron_1[] = _( + "PANZAERONs Stahlflügel bekommen in den\n" + "vielen Kämpfen, die es austrägt, Risse\n" + "und Beulen. Einmal im Jahr wachsen"); +static const u8 DexDescription_Panzaeron_2[] = _( + "seine Flügel komplett nach und werden\n" + "wiederhergestellt."); +#else static const u8 DexDescription_Panzaeron_1[] = _( "PANZAERON ist komplett in einen harten,\n" "schützenden Panzer eingehüllt. Dieses\n" @@ -1946,6 +3425,7 @@ static const u8 DexDescription_Panzaeron_1[] = _( static const u8 DexDescription_Panzaeron_2[] = _( "Es greift seine Feinde mit seinen\n" "messerscharfen Flügeln an."); +#endif static const u8 DexDescription_Hunduster_1[] = _( "HUNDUSTER jagen in Gruppen. Sie\n" @@ -1965,13 +3445,31 @@ static const u8 DexDescription_Hundemon_2[] = _( "durch das Ausfechten von Kämpfen\n" "untereinander."); +#ifdef SAPPHIRE +static const u8 DexDescription_Seedraking_1[] = _( + "SEEDRAKING schläft auf dem Meeres-\n" + "boden, wo ansonsten niemand lebt. Wenn\n" + "ein Sturm aufkommt, wacht es auf und"); +static const u8 DexDescription_Seedraking_2[] = _( + "macht sich auf die Suche nach Beute."); +#else static const u8 DexDescription_Seedraking_1[] = _( "SEEDRAKING lebt in den Tiefen des\n" "Ozeans, die ansonsten verwaist sind.\n" "Lange hat man geglaubt, dass das"); static const u8 DexDescription_Seedraking_2[] = _( "Gähnen dieses POKéMON Strudel auslöst."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Phanpy_1[] = _( + "PHANPY kann sich mit seiner langen Nase\n" + "selbst duschen. Wenn andere dabei sind,\n" + "begießen sie sich gegenseitig mit"); +static const u8 DexDescription_Phanpy_2[] = _( + "Wasser. Danach trocknet es seinen \n" + "durchnässten Körper am Ufer."); +#else static const u8 DexDescription_Phanpy_1[] = _( "Um sich ein Nest zu bauen, gräbt\n" "PHANPY am Flussufer ein Loch ins\n" @@ -1980,7 +3478,17 @@ static const u8 DexDescription_Phanpy_2[] = _( "seines Nests mit Hilfe seines Rüssels,\n" "damit seine Artgenossen wissen, dass\n" "dieses Gebiet vergeben ist."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Donphan_1[] = _( + "DONPHAN kann mit seinem harten Körper\n" + "sogar ein Haus zerstören. Mit seiner\n" + "imposanten Kraft hilft dieses POKéMON"); +static const u8 DexDescription_Donphan_2[] = _( + "dabei, Erdrutsche aus dem Weg zu\n" + "räumen, die Bergpfade versperren."); +#else static const u8 DexDescription_Donphan_1[] = _( "DONPHANs Lieblingsattacke ist es, als\n" "Ball zusammengerollt mit voller Wucht\n" @@ -1988,6 +3496,7 @@ static const u8 DexDescription_Donphan_1[] = _( static const u8 DexDescription_Donphan_2[] = _( "Wenn es erst einmal rollt, ist dieses\n" "POKéMON nur schwer aufzuhalten."); +#endif static const u8 DexDescription_Porygon2_1[] = _( "PORYGON2 wurde in einem\n" @@ -1998,6 +3507,14 @@ static const u8 DexDescription_Porygon2_2[] = _( "selbstständig neue Gesten und Gefühle\n" "erlernen kann."); +#ifdef SAPPHIRE +static const u8 DexDescription_Damhirplex_1[] = _( + "DAMHIRPLEX hat ein prächtiges Geweih,\n" + "für das hohe Preise gezahlt werden.\n" + "Daher wurde dieses POKéMON gejagt"); +static const u8 DexDescription_Damhirplex_2[] = _( + "und wäre beinahe ausgestorben."); +#else static const u8 DexDescription_Damhirplex_1[] = _( "DAMHIRPLEX hat ein prächtiges Geweih,\n" "für das hohe Preise gezahlt werden, da\n" @@ -2005,7 +3522,18 @@ static const u8 DexDescription_Damhirplex_1[] = _( static const u8 DexDescription_Damhirplex_2[] = _( "Daher wurde dieses POKéMON gejagt und\n" "wäre beinahe ausgestorben."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Farbeagle_1[] = _( + "FARBEAGLE markiert sein Revier mit\n" + "einer Flüssigkeit, die aus seiner\n" + "Schweifspitze austritt."); +static const u8 DexDescription_Farbeagle_2[] = _( + "Es wurden über 5.000 unterschiedliche\n" + "Markierungen entdeckt, die dieses\n" + "POKéMON hinterlassen hat."); +#else static const u8 DexDescription_Farbeagle_1[] = _( "FARBEAGLE markiert sein Revier mit\n" "einer Flüssigkeit, die aus seiner\n" @@ -2014,7 +3542,18 @@ static const u8 DexDescription_Farbeagle_2[] = _( "Es wurden über 5000 unterschiedliche\n" "Markierungen entdeckt, die dieses\n" "POKéMON hinterlassen hat."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Rabauz_1[] = _( + "RABAUZ muss jeden Tag trainieren,\n" + "sonst ist es nicht ausgelastet und\n" + "reagiert gestresst. Wenn man dieses"); +static const u8 DexDescription_Rabauz_2[] = _( + "POKéMON trainiert, muss man\n" + "zahlreiche Trainingsmethoden\n" + "einsetzen und ausbauen."); +#else static const u8 DexDescription_Rabauz_1[] = _( "RABAUZ muss jeden Tag trainieren,\n" "sonst ist es nicht ausgelastet und\n" @@ -2023,7 +3562,18 @@ static const u8 DexDescription_Rabauz_2[] = _( "POKéMON trainiert, muss man\n" "zahlreiche Trainingsmethoden\n" "einsetzen und sie ständig ausbauen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Kapoera_1[] = _( + "KAPOERA dreht sich auf dem Kopf\n" + "stehend um die eigene Achse und teilt\n" + "Tritte aus. Seine Technik ist eine"); +static const u8 DexDescription_Kapoera_2[] = _( + "bemerkenswerte Mischung aus Angriff \n" + "und Verteidigung. Es bewegt sich\n" + "drehend schneller voran als laufend."); +#else static const u8 DexDescription_Kapoera_1[] = _( "KAPOERA dreht sich auf dem Kopf\n" "stehend um die eigene Achse und teilt\n" @@ -2032,7 +3582,18 @@ static const u8 DexDescription_Kapoera_2[] = _( "bemerkenswerte Mischung aus Angriff \n" "und Verteidigung. Es bewegt sich \n" "drehend schneller voran als laufend."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Kussilla_1[] = _( + "KUSSILLA läuft hektisch umher, fällt\n" + "aber auch ziemlich oft hin. Es lässt\n" + "keine Möglichkeit aus, sein Spiegelbild"); +static const u8 DexDescription_Kussilla_2[] = _( + "zu betrachten, um sicherzustellen,\n" + "dass sein Gesicht nicht schmutzig\n" + "geworden ist."); +#else static const u8 DexDescription_Kussilla_1[] = _( "KUSSILLA läuft hektisch umher, fällt\n" "aber auch ziemlich oft hin. Es lässt\n" @@ -2041,6 +3602,7 @@ static const u8 DexDescription_Kussilla_2[] = _( "zu betrachten, um sicherzustellen,\n" "dass sein Gesicht nicht schmutzig\n" "geworden ist."); +#endif static const u8 DexDescription_Elekid_1[] = _( "ELEKID speichert Elektrizität in seinem\n" @@ -2067,6 +3629,16 @@ static const u8 DexDescription_Miltank_2[] = _( "Menschen, die keine Milch trinken,\n" "essen sie stattdessen als Joghurt."); +#ifdef SAPPHIRE +static const u8 DexDescription_Heiteira_1[] = _( + "HEITEIRA nimmt mit seinem flauschigen\n" + "Fell Traurigkeit wahr. Es hastet zu\n" + "einer traurigen Person, egal, wie weit"); +static const u8 DexDescription_Heiteira_2[] = _( + "diese entfernt ist und teilt ein \n" + "GLÜCKS-EI mit ihr, um sie zum\n" + "Lächeln zu bringen."); +#else static const u8 DexDescription_Heiteira_1[] = _( "HEITEIRA nimmt mit seinem flauschigen\n" "Fell Traurigkeit wahr. Es hastet zu\n" @@ -2075,6 +3647,7 @@ static const u8 DexDescription_Heiteira_2[] = _( "diese entfernt ist und teilt ein \n" "GLÜCKS-EI mit ihr, um sie zum Lächeln\n" "zu bringen."); +#endif static const u8 DexDescription_Raikou_1[] = _( "RAIKOU ist so schnell wie der Blitz. Das\n" @@ -2093,12 +3666,21 @@ static const u8 DexDescription_Entei_2[] = _( "alles auslöschen, was mit ihnen in\n" "Kontakt kommt."); +#ifdef SAPPHIRE +static const u8 DexDescription_Suicune_1[] = _( + "SUICUNE wohnt die Reinheit einer\n" + "Quelle inne. Es läuft graziös herum und \n" + "hat die Macht, schmutziges Wasser zu"); +static const u8 DexDescription_Suicune_2[] = _( + "reinigen."); +#else static const u8 DexDescription_Suicune_1[] = _( "SUICUNE wohnt die Reinheit einer\n" "Quelle inne. Es bewegt sich graziös und \n" "hat die Macht, schmutziges Wasser zu"); static const u8 DexDescription_Suicune_2[] = _( "reinigen."); +#endif static const u8 DexDescription_Larvitar_1[] = _( "LARVITAR wurde tief unter der Erde\n" @@ -2108,6 +3690,16 @@ static const u8 DexDescription_Larvitar_2[] = _( "Erdreich fressen. Erst dann bekommt es\n" "seine Eltern zu Gesicht."); +#ifdef SAPPHIRE +static const u8 DexDescription_Pupitar_1[] = _( + "PUPITAR erzeugt in seinem Körper ein\n" + "Gas, das es komprimiert und kraftvoll\n" + "ausstößt, um sich wie ein"); +static const u8 DexDescription_Pupitar_2[] = _( + "Düsenflugzeug anzutreiben. Sein Körper\n" + "ist robust und hält auch Angriffen mit\n" + "massivem Stahl stand."); +#else static const u8 DexDescription_Pupitar_1[] = _( "PUPITAR erzeugt in seinem Körper ein\n" "Gas, das es komprimiert und kraftvoll\n" @@ -2116,6 +3708,7 @@ static const u8 DexDescription_Pupitar_2[] = _( "Düsenflugzeug anzutreiben. Sein\n" "Körper ist sehr robust und er hält\n" "auch massivem Stahl stand."); +#endif static const u8 DexDescription_Despotar_1[] = _( "DESPOTAR ist erstaunlich stark. Es\n" @@ -2125,6 +3718,16 @@ static const u8 DexDescription_Despotar_2[] = _( "wandert in den Bergen umher und sucht\n" "nach Gegnern für einen Kampf."); +#ifdef SAPPHIRE +static const u8 DexDescription_Lugia_1[] = _( + "LUGIAs Flügel haben eine\n" + "zerstörerische Kraft. Bereits ein\n" + "leichtes Flattern kann Häuser"); +static const u8 DexDescription_Lugia_2[] = _( + "hinfortwehen. Daher hat sich dieses\n" + "POKéMON dafür entschieden, tief unten\n" + "im Meer zu leben, wo es niemand sieht."); +#else static const u8 DexDescription_Lugia_1[] = _( "LUGIAs Flügel haben eine\n" "zerstörerische Kraft. Bereits ein\n" @@ -2133,6 +3736,7 @@ static const u8 DexDescription_Lugia_2[] = _( "hinfortwehen. Daher hat sich dieses\n" "POKéMON dafür entschieden, tief unter\n" "dem Meer zu leben, wo es niemand sieht."); +#endif static const u8 DexDescription_HoOh_1[] = _( "HO-OHs Federn leuchten in sieben\n" @@ -2143,6 +3747,15 @@ static const u8 DexDescription_HoOh_2[] = _( "bringen. Dieses POKéMON lebt am Fuße\n" "eines Regenbogens."); +#ifdef SAPPHIRE +static const u8 DexDescription_Celebi_1[] = _( + "Dieses POKéMON kommt aus der Zukunft\n" + "und ist durch die Zeit gereist. Solange\n" + "CELEBI auftaucht, ist der"); +static const u8 DexDescription_Celebi_2[] = _( + "Menschheit angeblich eine rosige\n" + "Zukunft beschieden."); +#else static const u8 DexDescription_Celebi_1[] = _( "Dieses POKéMON kommt aus der Zukunft\n" "und ist durch die Zeit gereist. Solange\n" @@ -2150,7 +3763,17 @@ static const u8 DexDescription_Celebi_1[] = _( static const u8 DexDescription_Celebi_2[] = _( "ist der Menschheit angeblich eine\n" "rosige Zukunft beschieden."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Geckarbor_1[] = _( + "GECKARBOR ist ruhig und beherrscht, es\n" + "gerät niemals in Panik. Wenn es ein\n" + "stärkerer Feind zornig anstarrt,"); +static const u8 DexDescription_Geckarbor_2[] = _( + "erwidert es den bösen Blick, weicht aber\n" + "keinen Millimeter zurück."); +#else static const u8 DexDescription_Geckarbor_1[] = _( "Mit den kleinen Haken unter seinen\n" "Füßen kann GECKARBOR an Wänden\n" @@ -2158,7 +3781,17 @@ static const u8 DexDescription_Geckarbor_1[] = _( static const u8 DexDescription_Geckarbor_2[] = _( "Feinde an, indem es mit seinem\n" "mächtigen Schweif zuschlägt."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Reptain_1[] = _( + "Dieses POKéMON fliegt geschickt von\n" + "Ast zu Ast. Keinem POKéMON wird es\n" + "jemals gelingen, ein REPTAIN zu"); +static const u8 DexDescription_Reptain_2[] = _( + "erwischen. Da kann es noch so schnell\n" + "sein."); +#else static const u8 DexDescription_Reptain_1[] = _( "REPTAIN kann sich mit den Blättern, die\n" "aus seinem Körper herauswachsen, im\n" @@ -2167,7 +3800,18 @@ static const u8 DexDescription_Reptain_2[] = _( "Dieses POKéMON ist ein wahrer Meister\n" "darin, auf die Bäume des Dschungels zu\n" "klettern."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Gewaldro_1[] = _( + "Auf GEWALDROs Rücken wachsen Samen.\n" + "Darin sind Nährstoffe, die Bäume\n" + "beleben können. Dieses POKéMON"); +static const u8 DexDescription_Gewaldro_2[] = _( + "achtet mit viel Fürsorge darauf, dass\n" + "die Bäume seines Waldes prächtig\n" + "gedeihen."); +#else static const u8 DexDescription_Gewaldro_1[] = _( "Die Blätter, die auf GEWALDROs Körper\n" "wachsen, sind sehr scharfkantig. Dieses\n" @@ -2175,7 +3819,17 @@ static const u8 DexDescription_Gewaldro_1[] = _( static const u8 DexDescription_Gewaldro_2[] = _( "Ast zu Ast und springt seine Feinde\n" "von oben oder hinten an."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Flemmli_1[] = _( + "In FLEMMLIs Körper brennt eine\n" + "Flamme. Wenn man es umarmt, beginnt\n" + "es zu glühen."); +static const u8 DexDescription_Flemmli_2[] = _( + "Dieses POKéMON trägt ein flauschiges\n" + "Fell aus Daunen."); +#else static const u8 DexDescription_Flemmli_1[] = _( "FLEMMLI hängt an seinem Trainer wie\n" "eine Klette. Es schlurft immer hinter ihm\n" @@ -2183,7 +3837,17 @@ static const u8 DexDescription_Flemmli_1[] = _( static const u8 DexDescription_Flemmli_2[] = _( "heißes Feuer, das seinen Feinden\n" "ordentlich einheizt."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Jungglut_1[] = _( + "JUNGGLUT stößt im Kampf glühend\n" + "heiße Flammen aus seinem Schnabel aus\n" + "und setzt extrem vernichtende Tritte"); +static const u8 DexDescription_Jungglut_2[] = _( + "ein. Das Geschrei dieses POKéMON ist\n" + "sehr laut und verwirrend."); +#else static const u8 DexDescription_Jungglut_1[] = _( "JUNGGLUT trainiert seine Beine und\n" "Oberschenkel, indem es über Felder und\n" @@ -2192,7 +3856,18 @@ static const u8 DexDescription_Jungglut_2[] = _( "sind sowohl schnell als auch kräftig,\n" "so dass es 10 Tritte pro Sekunde\n" "ausführen kann."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Lohgock_1[] = _( + "LOHGOCK besitzt unglaublich starke\n" + "Beine, mit denen es ein 30 Stockwerke\n" + "hohes Gebäude mit einem Sprung"); +static const u8 DexDescription_Lohgock_2[] = _( + "überwinden kann. Die flammenden Schläge\n" + "dieses POKéMON lassen verkohlte Gegner\n" + "zurück."); +#else static const u8 DexDescription_Lohgock_1[] = _( "LOHGOCK stößt heftige Flammen aus\n" "seinen Handgelenken aus und greift\n" @@ -2200,7 +3875,18 @@ static const u8 DexDescription_Lohgock_1[] = _( static const u8 DexDescription_Lohgock_2[] = _( "Feind ist, desto stärker lodern die\n" "Handgelenke dieses POKéMON."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Hydropi_1[] = _( + "Im Wasser atmet HYDROPI durch die\n" + "Kiemen an seinen Wangen. Wenn es im\n" + "Kampf in eine brenzlige Situation gerät,"); +static const u8 DexDescription_Hydropi_2[] = _( + "setzt es seine verblüffende Kraft ein,\n" + "mit der es Felsbrocken zerquetschen\n" + "kann, die größer sind als es selbst."); +#else static const u8 DexDescription_Hydropi_1[] = _( "Die Flosse an HYDROPIs Kopf dient als\n" "hochempfindliches Radar. Damit kann es\n" @@ -2209,7 +3895,17 @@ static const u8 DexDescription_Hydropi_2[] = _( "wahrnehmen. So weiß es jederzeit, was\n" "in seiner Umgebung passiert, ohne\n" "dabei seine Augen zu benutzen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Moorabbel_1[] = _( + "MOORABBEL kommt im Schlamm besser\n" + "voran als im Wasser. Das Hinterteil\n" + "dieses POKéMON ist gut entwickelt,"); +static const u8 DexDescription_Moorabbel_2[] = _( + "so dass es auf seinen Hinterbeinen\n" + "laufen kann."); +#else static const u8 DexDescription_Moorabbel_1[] = _( "MOORABBELs Körper ist mit einem\n" "klebrigen Film überzogen, durch den es\n" @@ -2217,7 +3913,18 @@ static const u8 DexDescription_Moorabbel_1[] = _( static const u8 DexDescription_Moorabbel_2[] = _( "spielt bei Ebbe in den Schlammpfützen\n" "am Strand."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Sumpex_1[] = _( + "SUMPEX kann Stürme voraussagen,\n" + "indem es feine Veränderungen der\n" + "Geräusche von Wellen und Wind mit"); +static const u8 DexDescription_Sumpex_2[] = _( + "seinen Finnen wahrnimmt. Wenn eine\n" + "Sturmfront aufzieht, häuft es\n" + "Felsbrocken an, um sich zu schützen."); +#else static const u8 DexDescription_Sumpex_1[] = _( "SUMPEX ist sehr stark. Es kann mit\n" "Leichtigkeit einen Felsblock bewegen,\n" @@ -2226,7 +3933,18 @@ static const u8 DexDescription_Sumpex_2[] = _( "Weiterhin ist es mit einem exzellenten\n" "Sehvermögen ausgestattet, wodurch es\n" "auch in trüben Gewässern sehen kann."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Fiffyen_1[] = _( + "FIFFYEN ist ein Allesfresser.\n" + "Auffällig an diesem POKéMON ist das\n" + "Verhältnis seiner Körpergröße zur"); +static const u8 DexDescription_Fiffyen_2[] = _( + "Länge seiner Zähne. Es versucht Feinde\n" + "einzuschüchtern, indem es die Haare an\n" + "seinem Schweif abstehen lässt."); +#else static const u8 DexDescription_Fiffyen_1[] = _( "Sobald FIFFYEN eine Bewegung wahr-\n" "nimmt, schnappt es zu. Es jagt seine\n" @@ -2235,7 +3953,16 @@ static const u8 DexDescription_Fiffyen_2[] = _( "erschöpft ist. Wenn sich die Beute\n" "allerdings wehrt, kann es passieren, \n" "dass FIFFYEN klein beigibt und flieht."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Magnayen_1[] = _( + "MAGNAYEN zieht in Gruppen durch die\n" + "Wildnis. Durch seine Erfahrungen in der\n" + "Wildnis hört es nur auf TRAINER, die"); +static const u8 DexDescription_Magnayen_2[] = _( + "außergewöhnliche Fähigkeiten haben."); +#else static const u8 DexDescription_Magnayen_1[] = _( "MAGNAYEN sendet deutliche Signale\n" "aus, wenn es sich auf einen Angriff\n" @@ -2243,14 +3970,36 @@ static const u8 DexDescription_Magnayen_1[] = _( static const u8 DexDescription_Magnayen_2[] = _( "sich flach. Dieses POKéMON kann mit\n" "seinen spitzen Zähnen brutal zubeißen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Zigzachs_1[] = _( + "Das Haar auf ZIGZACHS’ Rücken ist\n" + "struppig. Es reibt seine Rückenborsten\n" + "an Bäumen, um sein Revier zu markieren."); +static const u8 DexDescription_Zigzachs_2[] = _( + "Dieses POKéMON stellt sich im Kampf\n" + "schon einmal tot, um seine Feinde\n" + "reinzulegen."); +#else static const u8 DexDescription_Zigzachs_1[] = _( "ZIGZACHS ist ein rastloser Wanderer.\n" "Dieses POKéMON ist nämlich sehr\n" "neugierig und es inspiziert alles,"); static const u8 DexDescription_Zigzachs_2[] = _( "was ihm zufällig begegnet."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Geradaks_1[] = _( + "Auf der Jagd rennt GERADAKS so schnell\n" + "es kann schnurstracks hinter seiner\n" + "Beute her. Es erreicht zwar über"); +static const u8 DexDescription_Geradaks_2[] = _( + "100 km/h, muss aber erst aus vollem\n" + "Lauf zum Stehen kommen, bevor es die\n" + "Richtung wechseln kann."); +#else static const u8 DexDescription_Geradaks_1[] = _( "GERADAKS rennt immer mit vollem Tempo\n" "und nie im Zickzack, sondern nur gerade.\n" @@ -2259,7 +4008,18 @@ static const u8 DexDescription_Geradaks_2[] = _( "läuft es rechtwinklig daran vorbei. Für\n" "dieses POKéMON stellen leichte Kurven\n" "eine große Herausforderung dar."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Waumpel_1[] = _( + "WAUMPEL wird von SCHWALBOSS als Beute\n" + "angesehen. Dieses POKéMON wehrt sich\n" + "gegen angreifende Räuber, indem es die"); +static const u8 DexDescription_Waumpel_2[] = _( + "Stacheln an seinem Hinterteil auf sie\n" + "richtet. Es schwächt seine Gegner mit\n" + "dem Gift, das aus den Stacheln austritt."); +#else static const u8 DexDescription_Waumpel_1[] = _( "WAUMPEL kann mit den Stacheln an\n" "seinem Hinterteil die Rinde von Bäumen\n" @@ -2268,7 +4028,18 @@ static const u8 DexDescription_Waumpel_2[] = _( "austretenden Saft. An den Füßen dieses\n" "POKéMON befinden sich Saugnäpfe, mit\n" "denen es auch an Glas nicht abrutscht."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Schaloko_1[] = _( + "Bisher nahm man an, dass SCHALOKO vor\n" + "seiner Entwicklung hungert und\n" + "überhaupt nichts zu sich nimmt. Nun"); +static const u8 DexDescription_Schaloko_2[] = _( + "aber wird behauptet, dass es seinen \n" + "Durst mit Regenwasser löscht, das sich\n" + "auf seinem seidigen Fell sammelt."); +#else static const u8 DexDescription_Schaloko_1[] = _( "SCHALOKO bindet sich mit einem\n" "Seidenfaden an einen Ast. Es baumelt\n" @@ -2276,7 +4047,17 @@ static const u8 DexDescription_Schaloko_1[] = _( static const u8 DexDescription_Schaloko_2[] = _( "Durch ein kleines Loch in seinem\n" "Seidenkokon lugt es heraus."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Papinella_1[] = _( + "PAPINELLA hat einen langen Rüssel, der\n" + "hervorragend zum Sammeln von Blüten-\n" + "pollen geeignet ist. Dieses POKéMON"); +static const u8 DexDescription_Papinella_2[] = _( + "flattert im Frühlingswind herum\n" + "und sammelt Blütenstaub."); +#else static const u8 DexDescription_Papinella_1[] = _( "PAPINELLAs Lieblingsspeise ist\n" "Blütenstaub. Wenn du dieses POKéMON\n" @@ -2285,7 +4066,18 @@ static const u8 DexDescription_Papinella_2[] = _( "einen Blumentopf vor ein geöffnetes\n" "Fenster stellen. PAPINELLA wird sich\n" "diese Leckerei nicht entgehen lassen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Panekon_1[] = _( + "Wenn es angegriffen wird, bewegt sich\n" + "PANEKON in keiner Weise, egal, wie\n" + "schwer es dabei verletzt wird. Wenn es"); +static const u8 DexDescription_Panekon_2[] = _( + "sich bewegen würde, wäre sein Körper zu\n" + "schwach für seine Entwicklung. Die\n" + "Schmerzen allerdings vergisst es nie."); +#else static const u8 DexDescription_Panekon_1[] = _( "PANEKON baut seinen schützenden\n" "Kokon, indem es seinen Körper mit\n" @@ -2294,7 +4086,18 @@ static const u8 DexDescription_Panekon_2[] = _( "Mund austritt. Wenn sein Körper mit\n" "Seide bedeckt ist, wird diese hart. Im\n" "Kokon wartet es auf seine Entwicklung."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Pudox_1[] = _( + "Wenn PUDOX mit den Flügeln schlägt,\n" + "verteilt es einen feinen Puder. Es\n" + "handelt sich um ein starkes Gift, das"); +static const u8 DexDescription_Pudox_2[] = _( + "sogar einen Profiboxer umhauen würde.\n" + "Bei der Futtersuche benutzt dieses \n" + "POKéMON seine Antennen als Radar."); +#else static const u8 DexDescription_Pudox_1[] = _( "PUDOX wird instinktiv vom Licht\n" "angezogen. In hell erleuchteten \n" @@ -2303,7 +4106,18 @@ static const u8 DexDescription_Pudox_2[] = _( "POKéMON dabei beobachten, die\n" "großen Schaden anrichten, indem sie die\n" "Blätter von Bäumen abfressen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Loturzel_1[] = _( + "LOTURZEL soll einige Zeit an Land\n" + "verbracht haben, aber ins Wasser\n" + "zurückgekehrt sein, weil das Blatt"); +static const u8 DexDescription_Loturzel_2[] = _( + "auf seinem Kopf zu groß und zu schwer\n" + "geworden ist. Nun lässt es sich auf dem\n" + "Wasser treiben."); +#else static const u8 DexDescription_Loturzel_1[] = _( "LOTURZEL lebt auf der Wasseroberfläche\n" "von Teichen oder Seen. Es wird\n" @@ -2312,7 +4126,17 @@ static const u8 DexDescription_Loturzel_2[] = _( "abstirbt. Nur selten geht dieses\n" "POKéMON an Land, um nach sauberem\n" "Wasser Ausschau zu halten."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Lombrero_1[] = _( + "LOMBREROs Körper ist mit einem\n" + "glitschigen Film bedeckt. Es fühlt sich\n" + "widerlich an, wenn einen dieses POKéMON"); +static const u8 DexDescription_Lombrero_2[] = _( + "mit seinen Händen berührt. LOMBRERO\n" + "wird häufig für ein Kind gehalten."); +#else static const u8 DexDescription_Lombrero_1[] = _( "LOMBRERO liebt die Nacht und wird mit\n" "Einbruch der Dunkelheit aktiv. Es spielt\n" @@ -2321,7 +4145,17 @@ static const u8 DexDescription_Lombrero_2[] = _( "Wenn es Angler sieht, zieht es unter\n" "Wasser an ihren Angelschnüren und\n" "erfreut sich an ihrer Entrüstung."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Kappalores_1[] = _( + "Wenn KAPPALORES einen fröhlichen\n" + "Rhythmus hört, werden die Zellen in\n" + "seinem Körper aktiviert. Auch im Kampf"); +static const u8 DexDescription_Kappalores_2[] = _( + "zeigt dieses POKéMON seine\n" + "verblüffende Stärke."); +#else static const u8 DexDescription_Kappalores_1[] = _( "KAPPALORES fängt sofort zu tanzen an,\n" "wenn es stimmungsvolle, feierliche Musik\n" @@ -2329,7 +4163,18 @@ static const u8 DexDescription_Kappalores_1[] = _( static const u8 DexDescription_Kappalores_2[] = _( "angeblich, wenn es Kinder auf \n" "Wanderausflügen singen hört."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Samurzel_1[] = _( + "SAMURZEL sieht aus wie eine Eichel, wenn\n" + "es an einem Ast hängt. Es erschreckt\n" + "andere POKéMON, indem es sich dann"); +static const u8 DexDescription_Samurzel_2[] = _( + "plötzlich bewegt. Dieses POKéMON\n" + "poliert seinen Körper einmal am Tag mit\n" + "Blättern."); +#else static const u8 DexDescription_Samurzel_1[] = _( "SAMURZEL hängt sich mit dem Kopf an\n" "einen Ast. Dabei entzieht es dem Baum\n" @@ -2337,7 +4182,17 @@ static const u8 DexDescription_Samurzel_1[] = _( static const u8 DexDescription_Samurzel_2[] = _( "desto glänzender wird der Körper dieses\n" "POKéMON."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Blanas_1[] = _( + "Dieses POKéMON reißt das Blatt auf\n" + "seinem Kopf heraus und benutzt es\n" + "als Flöte. Diese Geräusche jagen den"); +static const u8 DexDescription_Blanas_2[] = _( + "Menschen, die sich im Wald verirrt haben,\n" + "Angst ein."); +#else static const u8 DexDescription_Blanas_1[] = _( "BLANAS lebt in dichten Wäldern.\n" "Manchmal wagt es sich aus dem Wald\n" @@ -2345,7 +4200,18 @@ static const u8 DexDescription_Blanas_1[] = _( static const u8 DexDescription_Blanas_2[] = _( "Dieses POKéMON mag es überhaupt nicht,\n" "wenn man seine lange Nase zwickt."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Tengulist_1[] = _( + "TENGULISTs große Fächer erzeugen\n" + "Böen, die eine Geschwindigkeit von\n" + "30 m/sek erreichen können und alles"); +static const u8 DexDescription_Tengulist_2[] = _( + "und jeden hinwegfegen können. Dieses\n" + "POKéMON lebt still und zurückgezogen\n" + "in den Tiefen der Wälder."); +#else static const u8 DexDescription_Tengulist_1[] = _( "TENGULIST ist ein geheimnisvolles\n" "POKéMON, das angeblich auf hohen\n" @@ -2354,7 +4220,17 @@ static const u8 DexDescription_Tengulist_2[] = _( "alt sind. Mit den Blätterventilatoren an\n" "seinen Händen kann es heftige Stürme\n" "erzeugen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Schwalbini_1[] = _( + "SCHWALBINI ist noch klein, es hat\n" + "gerade erst sein Nest verlassen. Daher\n" + "fühlt es sich manchmal einsam und weint"); +static const u8 DexDescription_Schwalbini_2[] = _( + "nachts. Dieses POKéMON ernährt sich\n" + "von WAUMPEL."); +#else static const u8 DexDescription_Schwalbini_1[] = _( "Mutig behauptet SCHWALBINI sein\n" "Territorium gegen Eindringlinge, so\n" @@ -2363,7 +4239,16 @@ static const u8 DexDescription_Schwalbini_2[] = _( "Dieses unerschrockene POKéMON bleibt\n" "trotz einer Niederlage angriffslustig,\n" "heult aber laut, wenn es Hunger hat."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Schwalboss_1[] = _( + "SCHWALBOSS ist sehr gewissenhaft bei\n" + "der Pflege seiner glänzenden Flügel.\n" + "Wenn zwei SCHWALBOSS zusammen sind,"); +static const u8 DexDescription_Schwalboss_2[] = _( + "putzen sie sich ihre Flügel gegenseitig."); +#else static const u8 DexDescription_Schwalboss_1[] = _( "Dieses POKéMON taucht in einem steilen\n" "Winkel ab, sobald es Beute wahrgenommen\n" @@ -2371,7 +4256,17 @@ static const u8 DexDescription_Schwalboss_1[] = _( static const u8 DexDescription_Schwalboss_2[] = _( "seinen Krallen und lässt sie\n" "nicht mehr entkommen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Wingull_1[] = _( + "WINGULL breitet seine langen, schmalen\n" + "Flügel aus und segelt im Seewind. Der\n" + "lange Schnabel dieses POKéMON"); +static const u8 DexDescription_Wingull_2[] = _( + "ist ihm beim Jagen nach Beute sehr\n" + "hilfreich."); +#else static const u8 DexDescription_Wingull_1[] = _( "Man sieht WINGULL oft mit seiner\n" "Beute oder seinen Besitztümern im\n" @@ -2380,14 +4275,34 @@ static const u8 DexDescription_Wingull_2[] = _( "nach geeigneten Verstecken. Dieses\n" "POKéMON fliegt durch die Lüfte, als\n" "würde es gleiten."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Pelipper_1[] = _( + "PELIPPER sucht nach Nahrung, während\n" + "es über die Wellen fliegt. Dieses \n" + "POKéMON taucht seinen großen Schnabel"); +static const u8 DexDescription_Pelipper_2[] = _( + "ins Meer, um seine Beute abzuschöpfen.\n" + "Dann schluckt es alles auf einmal\n" + "herunter."); +#else static const u8 DexDescription_Pelipper_1[] = _( "PELIPPER transportiert kleine POKéMON\n" "und Eier in seinem riesigen Schnabel\n" "durch die Lüfte. Dieses POKéMON baut"); static const u8 DexDescription_Pelipper_2[] = _( "sein Nest auf steilen Klippen am Meer."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Trasla_1[] = _( + "TRASLA hat die Fähigkeit, die Emotionen\n" + "von Menschen wahrzunehmen. Wenn sein\n" + "TRAINER gute Laune hat, ist dieses"); +static const u8 DexDescription_Trasla_2[] = _( + "POKéMON ebenfalls fröhlich."); +#else static const u8 DexDescription_Trasla_1[] = _( "TRASLA nimmt mit den Hörnern an seinem\n" "Kopf die Gefühle von Menschen wahr.\n" @@ -2396,7 +4311,18 @@ static const u8 DexDescription_Trasla_2[] = _( "nur selten zu Gesicht. Wenn es bemerkt,\n" "dass eine Person gut gelaunt ist, traut\n" "es sich näher an sie heran."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Kirlia_1[] = _( + "KIRLIA benutzt die Hörner an seinem\n" + "Kopf dazu, seine psychokinetische\n" + "Energie zu verstärken. Wenn dieses"); +static const u8 DexDescription_Kirlia_2[] = _( + "POKéMON seine spezielle Kraft einsetzt,\n" + "wird die Luft verformt und ein Trugbild\n" + "einer Landschaft erzeugt."); +#else static const u8 DexDescription_Kirlia_1[] = _( "Man sagt, dass ein KIRLIA, das häufig\n" "positive Emotionen seines TRAINERs\n" @@ -2405,7 +4331,18 @@ static const u8 DexDescription_Kirlia_2[] = _( "Dieses POKéMON kontrolliert\n" "psychokinetische Energie mit seinem\n" "hochentwickelten Gehirn."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Guardevoir_1[] = _( + "GUARDEVOIR kann mit seiner psycho-\n" + "kinetischen Energie die Dimensionen\n" + "verzerren und ein kleines Schwarzes"); +static const u8 DexDescription_Guardevoir_2[] = _( + "Loch erzeugen. Es schützt seinen\n" + "TRAINER selbst unter Einsatz seines\n" + "eigenen Lebens."); +#else static const u8 DexDescription_Guardevoir_1[] = _( "GUARDEVOIR kann in die Zukunft\n" "schauen. Wenn es eine Gefahr für seinen\n" @@ -2413,7 +4350,17 @@ static const u8 DexDescription_Guardevoir_1[] = _( static const u8 DexDescription_Guardevoir_2[] = _( "psychokinetische Energie mit voller\n" "Kraft."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Gehweiher_1[] = _( + "Wenn GEHWEIHER Gefahr wittert,\n" + "scheidet es einen dickflüssigen Sirup\n" + "aus seinem Kopf aus. Es gibt einige"); +static const u8 DexDescription_Gehweiher_2[] = _( + "POKéMON, die ganz wild auf diesen\n" + "Sirup sind."); +#else static const u8 DexDescription_Gehweiher_1[] = _( "GEHWEIHER scheidet aus seinen Zehen\n" "ein Öl aus, das es ihm ermöglicht, über\n" @@ -2421,7 +4368,18 @@ static const u8 DexDescription_Gehweiher_1[] = _( static const u8 DexDescription_Gehweiher_2[] = _( "ernährt sich von Mikroorganismen aus\n" "Teichen und Seen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Maskeregen_1[] = _( + "MASKEREGENs Antennen haben ein\n" + "augenähnliches Muster, das ihm ein\n" + "Furcht erregendes Äußeres verleiht."); +static const u8 DexDescription_Maskeregen_2[] = _( + "Wenn seine “Augen” \n" + "traurig aussehen, ist ein heftiger \n" + "Regenguss im Anzug."); +#else static const u8 DexDescription_Maskeregen_1[] = _( "MASKEREGEN schüchtert seine Feinde\n" "mit den augenähnlichen Mustern auf\n" @@ -2430,7 +4388,17 @@ static const u8 DexDescription_Maskeregen_2[] = _( "kann mit seinen vier Flügeln wie ein\n" "Hubschrauber in jede Richtung fliegen,\n" "sogar seitwärts und rückwärts."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Knilz_1[] = _( + "Wenn KNILZ Gefahr wittert, \n" + "schüttelt es seinen Körper und verteilt\n" + "Sporen von seinem Kopf."); +static const u8 DexDescription_Knilz_2[] = _( + "Diese Sporen sind so giftig, dass Bäume\n" + "und Gräser davon eingehen."); +#else static const u8 DexDescription_Knilz_1[] = _( "KNILZ lebt im feuchten Erdboden\n" "finsterer Wälder. Es wird oft reglos\n" @@ -2438,7 +4406,17 @@ static const u8 DexDescription_Knilz_1[] = _( static const u8 DexDescription_Knilz_2[] = _( "gefunden. Dieses POKéMON ernährt sich\n" "von Kompost aus verrotteten Blättern."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Kapilz_1[] = _( + "Die Samen am Schweif von KAPILZ\n" + "bestehen aus gehärteten Giftsporen.\n" + "Man sollte sie lieber nicht essen."); +static const u8 DexDescription_Kapilz_2[] = _( + "Ein einziger Bissen davon kann eine\n" + "heftige Magenverstimmung hervorrufen."); +#else static const u8 DexDescription_Kapilz_1[] = _( "Mit leichtfüßiger Beinarbeit nähert \n" "sich KAPILZ seinen Feinden und\n" @@ -2447,7 +4425,17 @@ static const u8 DexDescription_Kapilz_2[] = _( "Armen um sich. Die Kampftechnik dieses\n" "POKéMON treibt Profiboxern die\n" "Schamesröte ins Gesicht."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Bummelz_1[] = _( + "BUMMELZ’ Herz schlägt nur ein Mal pro\n" + "Minute. Dieses POKéMON ist damit\n" + "zufrieden, bewegungslos"); +static const u8 DexDescription_Bummelz_2[] = _( + "herumzulungern. Nur ganz selten sieht\n" + "man dieses POKéMON sich bewegen."); +#else static const u8 DexDescription_Bummelz_1[] = _( "BUMMELZ geht zwanzig Stunden pro Tag\n" "müßig. Da es sich sehr wenig bewegt,\n" @@ -2455,7 +4443,18 @@ static const u8 DexDescription_Bummelz_1[] = _( static const u8 DexDescription_Bummelz_2[] = _( "Seine Tagesration besteht lediglich aus\n" "drei Blättern."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Muntier_1[] = _( + "MUNTIER findet einfach keine Ruhe.\n" + "Wenn es versucht zu schlafen, beginnt\n" + "das Blut in seinen Adern zu pulsieren."); +static const u8 DexDescription_Muntier_2[] = _( + "Dann muss es wie wild durch den \n" + "Dschungel rennen, um überhaupt Ruhe zu\n" + "finden."); +#else static const u8 DexDescription_Muntier_1[] = _( "MUNTIER brennt darauf, sich\n" "auszutoben. Es kann nicht einmal für\n" @@ -2463,7 +4462,17 @@ static const u8 DexDescription_Muntier_1[] = _( static const u8 DexDescription_Muntier_2[] = _( "Stress, wenn es sich nicht andauernd\n" "bewegen kann."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Letarking_1[] = _( + "Wo dieses LETARKING lebt, hinterlässt\n" + "es Kreise von 1 m Radius auf den\n" + "Wiesen. Es frisst nämlich all das Gras,"); +static const u8 DexDescription_Letarking_2[] = _( + "das in seiner Reichweite wächst. Dabei\n" + "liegt es bäuchlings auf dem Boden."); +#else static const u8 DexDescription_Letarking_1[] = _( "LETARKING verbringt den Tag damit,\n" "herumzuliegen und nichts zu tun. Es \n" @@ -2472,7 +4481,18 @@ static const u8 DexDescription_Letarking_2[] = _( "Reichweite wächst. Hat es alles\n" "aufgefressen, so sucht es sich\n" "widerwillig ein anderes Plätzchen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Nincada_1[] = _( + "NINCADA lebt unter der Erde. Es benutzt\n" + "seine scharfen Krallen, um die Wurzeln\n" + "von Bäumen freizulegen und an"); +static const u8 DexDescription_Nincada_2[] = _( + "Flüssigkeit und Nährstoffe zu kommen. \n" + "Dieses POKéMON kann grelles Sonnen-\n" + "licht nicht aushalten und meidet es."); +#else static const u8 DexDescription_Nincada_1[] = _( "NINCADA lebt viele Jahre in absoluter\n" "Dunkelheit unter der Erde. Dieses\n" @@ -2480,7 +4500,18 @@ static const u8 DexDescription_Nincada_1[] = _( static const u8 DexDescription_Nincada_2[] = _( "Baumwurzeln auf. Es rührt sich nicht,\n" "da es auf seine Entwicklung wartet."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Ninjask_1[] = _( + "Wenn NINJASK nicht richtig trainiert\n" + "wird, hört es nicht mehr auf seinen\n" + "TRAINER und beginnt unaufhörlich und"); +static const u8 DexDescription_Ninjask_2[] = _( + "laut zu brüllen. Es stellt die Fähig-\n" + "keiten eines TRAINERs auf eine harte\n" + "Probe."); +#else static const u8 DexDescription_Ninjask_1[] = _( "NINJASK bewegt sich so schnell, dass\n" "man es nicht sehen kann. Seine Schreie\n" @@ -2488,7 +4519,18 @@ static const u8 DexDescription_Ninjask_1[] = _( static const u8 DexDescription_Ninjask_2[] = _( "Deshalb hielt man dieses POKéMON lange\n" "für unsichtbar."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Ninjatom_1[] = _( + "NINJATOM ist ein ganz besonderes\n" + "POKéMON. Es taucht plötzlich in\n" + "einem POKéBALL auf, nachdem sich"); +static const u8 DexDescription_Ninjatom_2[] = _( + "ein NINCADA entwickelt hat. Dieses\n" + "POKéMON ist absolut bewegungsunfähig\n" + "und atmet nicht einmal."); +#else static const u8 DexDescription_Ninjatom_1[] = _( "NINJATOMs harter Körper bewegt sich\n" "überhaupt nicht. Er scheint bloß eine\n" @@ -2497,7 +4539,17 @@ static const u8 DexDescription_Ninjatom_2[] = _( "soll angeblich die Seele eines jeden\n" "stehlen, der hinterrücks einen Blick in\n" "seinen hohlen Körper riskiert."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Flurmel_1[] = _( + "FLURMEL ist sehr scheu. Wenn es laut\n" + "brüllt, erschrickt es und brüllt dadurch\n" + "noch lauter. Wenn es schließlich damit"); +static const u8 DexDescription_Flurmel_2[] = _( + "aufhört, ist es völlig ausgepumpt und \n" + "legt sich schlafen."); +#else static const u8 DexDescription_Flurmel_1[] = _( "Normalerweise ist FLURMELs Stimme sehr\n" "leise, selbst mit größter Anstrengung\n" @@ -2505,7 +4557,17 @@ static const u8 DexDescription_Flurmel_1[] = _( static const u8 DexDescription_Flurmel_2[] = _( "POKéMON jedoch eine Gefahr wittert,\n" "stößt es ohrenbetäubende Schreie aus."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Krakeelo_1[] = _( + "KRAKEELO schreit und stampft mit\n" + "seinen Füßen auf den Boden. Danach\n" + "kann es für eine Weile nichts hören."); +static const u8 DexDescription_Krakeelo_2[] = _( + "Dies scheint die Schwachstelle dieses\n" + "POKéMON zu sein."); +#else static const u8 DexDescription_Krakeelo_1[] = _( "KRAKEELOs Brüllen kann ein Holzhaus zum\n" "Einsturz bringen. Es setzt seine Stimme\n" @@ -2513,7 +4575,18 @@ static const u8 DexDescription_Krakeelo_1[] = _( static const u8 DexDescription_Krakeelo_2[] = _( "Die runden Ohren dieses POKéMON dienen\n" "als Lautsprecher."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Krawumms_1[] = _( + "KRAWUMMS vermittelt seinen Artge-\n" + "nossen seine Gefühle, indem es eine Art\n" + "Pfeifen durch die Röhren an seinem"); +static const u8 DexDescription_Krawumms_2[] = _( + "Körper von sich gibt. Dieses\n" + "POKéMON erhebt nur im Kampf\n" + "seine Stimme."); +#else static const u8 DexDescription_Krawumms_1[] = _( "KRAWUMMS kann durch sein Brüllen\n" "Erdbeben auslösen. Wenn dieses\n" @@ -2521,7 +4594,17 @@ static const u8 DexDescription_Krawumms_1[] = _( static const u8 DexDescription_Krawumms_2[] = _( "kräftig einatmet, ist es kurz davor,\n" "ein mächtiges Brüllen von sich zu geben."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Makuhita_1[] = _( + "MAKUHITAs Geist ist unbezwingbar. Es\n" + "gibt die Hoffnung niemals auf. Es frisst\n" + "eine Menge, bekommt viel Schlaf und"); +static const u8 DexDescription_Makuhita_2[] = _( + "trainiert unermüdlich. Dadurch füllt es\n" + "seinen Körper mit Energie auf."); +#else static const u8 DexDescription_Makuhita_1[] = _( "MAKUHITA ist sehr zäh. Selbst wenn es im\n" "Kampf mehrfach niedergeschlagen\n" @@ -2530,14 +4613,35 @@ static const u8 DexDescription_Makuhita_2[] = _( "greift seinen Gegner an. Bei jedem Mal\n" "speichert es mehr Energie in seinem\n" "Körper für seine Entwicklung."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Hariyama_1[] = _( + "HARIYAMAs Körper mag vielleicht fett\n" + "aussehen, er besteht aber aus festen\n" + "Muskeln. Wenn dieses POKéMON all"); +static const u8 DexDescription_Hariyama_2[] = _( + "seine Muskeln anspannt, wird sein\n" + "Körper steinhart."); +#else static const u8 DexDescription_Hariyama_1[] = _( "HARIYAMA führt seinen berüchtigten\n" "Streckarm-Schlag überall aus. Ein Schlag\n" "von diesem POKéMON reicht aus,"); static const u8 DexDescription_Hariyama_2[] = _( "um einen Strommast zu zerlegen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Azurill_1[] = _( + "AZURILLs Schweif ist lang und federnd.\n" + "Er ist vollgepackt mit Nährstoffen, die\n" + "dieses POKéMON zum Wachsen braucht."); +static const u8 DexDescription_Azurill_2[] = _( + "Man kann es häufig dabei beobachten,\n" + "wie es auf seinem gummiartigen Schweif\n" + "umherhüpft und spielt."); +#else static const u8 DexDescription_Azurill_1[] = _( "AZURILL schleudert seinen Schweif wie\n" "ein Lasso weit aus und fliegt dann \n" @@ -2546,7 +4650,18 @@ static const u8 DexDescription_Azurill_2[] = _( "hat es auf diese Weise geschafft, die\n" "Rekordweite von 10 Metern\n" "zurückzulegen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Nasgnet_1[] = _( + "NASGNET wurde zunächst als völlig\n" + "unbeweglich beschrieben, da seine\n" + "magnetische Nase immer nach Norden"); +static const u8 DexDescription_Nasgnet_2[] = _( + "zeigt. Genauere Beobachtungen haben\n" + "jedoch ergeben, dass es sich pro Jahr\n" + "tatsächlich etwa um 1 cm bewegt."); +#else static const u8 DexDescription_Nasgnet_1[] = _( "NASGNET besitzt eine magnetische\n" "Nase, die immer nach Norden zeigt. Wenn\n" @@ -2555,7 +4670,17 @@ static const u8 DexDescription_Nasgnet_2[] = _( "sich einander nicht zuwenden, da ihre\n" "magnetischen Nasen sich gegenseitig\n" "abstoßen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Eneco_1[] = _( + "ENECO jagt spielerisch seinen eigenen\n" + "Schweif. In der Wildnis lebt dieses\n" + "POKéMON in den Löchern von Bäumen."); +static const u8 DexDescription_Eneco_2[] = _( + "Es ist als Haustier sehr beliebt, da es\n" + "bezaubernd aussieht."); +#else static const u8 DexDescription_Eneco_1[] = _( "ENECO ist davon fasziniert,\n" "Gegenstände zu bewegen und sie zu\n" @@ -2563,7 +4688,17 @@ static const u8 DexDescription_Eneco_1[] = _( static const u8 DexDescription_Eneco_2[] = _( "seinen eigenen Schweif, so dass ihm\n" "schwindlig wird."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Enekoro_1[] = _( + "ENEKORO schläft dort, wo es ihm gefällt\n" + "und hat kein dauerhaftes Nest. Nähern\n" + "sich ihm andere POKéMON, wenn"); +static const u8 DexDescription_Enekoro_2[] = _( + "es schläft, kämpft es nicht mit ihnen,\n" + "sondern zieht weiter."); +#else static const u8 DexDescription_Enekoro_1[] = _( "ENEKORO liebt seine Eigenständigkeit.\n" "So kann es das tun, was es möchte, und\n" @@ -2572,7 +4707,18 @@ static const u8 DexDescription_Enekoro_2[] = _( "Da dieses POKéMON schläft und isst,\n" "wenn es Lust dazu hat, ist sein\n" "Tagesablauf eher zufälliger Natur."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Zobiris_1[] = _( + "ZOBIRIS durchwühlt mit seinen scharfen\n" + "Krallen den Erdboden auf der Suche nach\n" + "Steinen, von denen es sich ernährt."); +static const u8 DexDescription_Zobiris_2[] = _( + "Die Substanzen in den Steinen nehmen\n" + "schließlich eine feste Form an und\n" + "gelangen auf seine Körperoberfläche."); +#else static const u8 DexDescription_Zobiris_1[] = _( "ZOBIRIS führt ein ruhiges, \n" "zurückgezogenes Leben tief im Innern\n" @@ -2581,7 +4727,18 @@ static const u8 DexDescription_Zobiris_2[] = _( "gefürchtet, da man sagt, es stehle die\n" "Seelen der Menschen, wenn seine Augen\n" "im Dunkeln Furcht erregend funkeln."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Flunkifer_1[] = _( + "Fall bloß nicht auf das hübsche Gesicht\n" + "dieses POKéMON herein - es ist sehr ge-\n" + "fährlich. FLUNKIFER lenkt seine Feinde"); +static const u8 DexDescription_Flunkifer_2[] = _( + "ab und schlägt dann mit seinem massiven\n" + "Kiefer zu. Seine kräftigen Stahlkiefer\n" + "sind eigentlich umgewandelte Hörner."); +#else static const u8 DexDescription_Flunkifer_1[] = _( "FLUNKIFERs sagenhafte Kiefer sind\n" "eigentlich umgewandelte Stahlhörner.\n" @@ -2590,7 +4747,18 @@ static const u8 DexDescription_Flunkifer_2[] = _( "dient dazu, seinen Gegner in Sicherheit\n" "zu wiegen, so dass er unaufmerksam\n" "wird. Dann schnappt es zu!"); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Stollunior_1[] = _( + "STOLLUNIORs Körper besteht aus Stahl.\n" + "Mit 1 Schlag kann dieses POKéMON einen\n" + "Schwerlasttransporter demolieren."); +static const u8 DexDescription_Stollunior_2[] = _( + "Der Lastwagen stellt danach eine\n" + "handliche Mahlzeit für dieses POKéMON\n" + "dar."); +#else static const u8 DexDescription_Stollunior_1[] = _( "Dieses POKéMON hat einen Körper aus\n" "Stahl. STOLLUNIOR ernährt sich von\n" @@ -2598,7 +4766,17 @@ static const u8 DexDescription_Stollunior_1[] = _( static const u8 DexDescription_Stollunior_2[] = _( "richtet es großen Schaden an, weil es\n" "Brücken und Bahngleise auffrisst."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Stollrak_1[] = _( + "STOLLRAK ernährt sich von Eisen, das in\n" + "Steinen und Wasser enthalten ist. Es \n" + "baut sein Nest in Bergen, in denen"); +static const u8 DexDescription_Stollrak_2[] = _( + "Eisenerz abgebaut wird. Es gerät dabei\n" + "häufig mit Bergarbeitern in Konflikt."); +#else static const u8 DexDescription_Stollrak_1[] = _( "STOLLRAK temperiert seinen Körper,\n" "indem es ausgesprochen nahrhaftes \n" @@ -2607,7 +4785,18 @@ static const u8 DexDescription_Stollrak_2[] = _( "aufgebläht ist. Dieses POKéMON baut\n" "sein Nest in der Nähe von Quellen, aus\n" "denen köstliches Wasser sprudelt."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Stolloss_1[] = _( + "STOLLOSS geht erstaunlicherweise sehr\n" + "behutsam mit der Umwelt um. Wenn sein\n" + "Berg von einem Erdrutsch oder einem"); +static const u8 DexDescription_Stolloss_2[] = _( + "Feuer verwüstet wurde, schleppt es\n" + "Erde in das Gebiet, pflanzt Bäume an und\n" + "richtet sein Territorium wieder her."); +#else static const u8 DexDescription_Stolloss_1[] = _( "STOLLOSS nennt einen ganzen Berg sein\n" "Territorium. Gnadenlos schlägt es jeden\n" @@ -2615,7 +4804,17 @@ static const u8 DexDescription_Stolloss_1[] = _( static const u8 DexDescription_Stolloss_2[] = _( "Dieses POKéMON behält sein Territorium\n" "jederzeit im Auge."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Meditie_1[] = _( + "MEDITIE erhöht seine Energie durch\n" + "Meditation. Es lebt von nur einer Beere\n" + "am Tag. Diese absolut reduzierte"); +static const u8 DexDescription_Meditie_2[] = _( + "Ernährung ist Bestandteil seines \n" + "Trainings."); +#else static const u8 DexDescription_Meditie_1[] = _( "MEDITIE unterzieht sich einem\n" "strikten mentalen Training tief in den\n" @@ -2624,7 +4823,18 @@ static const u8 DexDescription_Meditie_2[] = _( "jedoch immer seine Konzentration.\n" "Deshalb wird sein Training niemals\n" "ein Ende haben."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Meditalis_1[] = _( + "Mittels Meditation hat MEDITALIS\n" + "seinen sechsten Sinn entwickelt. So\n" + "kann es seine psychokinetischen"); +static const u8 DexDescription_Meditalis_2[] = _( + "Kräfte nutzen. Dieses POKéMON\n" + "meditiert einen ganzen Monat ohne\n" + "etwas zu essen."); +#else static const u8 DexDescription_Meditalis_1[] = _( "Mittels Meditation erhöht MEDITALIS\n" "seine Körperenergie und schärft seinen\n" @@ -2632,7 +4842,18 @@ static const u8 DexDescription_Meditalis_1[] = _( static const u8 DexDescription_Meditalis_2[] = _( "verbirgt sich, indem es eins mit den\n" "Feldern und Bergen wird."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Frizelbliz_1[] = _( + "FRIZELBLIZ rennt so schnell, dass\n" + "das menschliche Auge es nicht\n" + "wahrnehmen kann. Die Reibung,"); +static const u8 DexDescription_Frizelbliz_2[] = _( + "die dabei entsteht, wandelt es in\n" + "Elektrizität um, die es in seinem Fell\n" + "speichert."); +#else static const u8 DexDescription_Frizelbliz_1[] = _( "FRIZELBLIZ speichert Elektrizität in\n" "seiner langen Körperbehaarung. Dieses\n" @@ -2641,7 +4862,16 @@ static const u8 DexDescription_Frizelbliz_2[] = _( "Beinmuskulatur durch Stromstöße.\n" "Dadurch ist es in der Lage, explosiv\n" "zu beschleunigen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Voltenso_1[] = _( + "VOLTENSO sammelt Elektrizität aus\n" + "der Atmosphäre in seiner Mähne und\n" + "entlädt diese. Dieses POKéMON erzeugt"); +static const u8 DexDescription_Voltenso_2[] = _( + "Gewitterwolken über seinem Kopf."); +#else static const u8 DexDescription_Voltenso_1[] = _( "VOLTENSO entlädt ständig Elektrizität\n" "aus seiner Mähne. Es fliegen dabei\n" @@ -2649,7 +4879,16 @@ static const u8 DexDescription_Voltenso_1[] = _( static const u8 DexDescription_Voltenso_2[] = _( "führen. In einem Kampf erzeugt dieses\n" "POKéMON Gewitterwolken."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Plusle_1[] = _( + "Wenn PLUSLE seinen Partner anfeuert,\n" + "sprüht es Funken aus seinem Körper.\n" + "Wenn sein Partner verliert, brüllt dieses"); +static const u8 DexDescription_Plusle_2[] = _( + "POKéMON laut."); +#else static const u8 DexDescription_Plusle_1[] = _( "PLUSLE dient seinen Artgenossen als\n" "Cheerleader. Wenn ein Teamkamerad\n" @@ -2657,7 +4896,17 @@ static const u8 DexDescription_Plusle_1[] = _( static const u8 DexDescription_Plusle_2[] = _( "das prasselnde Geräusch von Funken, um\n" "so seine Freude zu zeigen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Minun_1[] = _( + "MINUN liebt es, seinen Partner im Kampf\n" + "anzufeuern. Dabei sprüht es Funken aus\n" + "seinem Körper. Wenn sein Partner in"); +static const u8 DexDescription_Minun_2[] = _( + "Schwierigkeiten gerät, sprüht es immer\n" + "mehr Funken."); +#else static const u8 DexDescription_Minun_1[] = _( "MINUN kümmert sich mehr um das\n" "Anfeuern seiner Partner als um seine\n" @@ -2666,7 +4915,18 @@ static const u8 DexDescription_Minun_2[] = _( "Elektrizität in seinem Körper dazu,\n" "einen Funkenregen zu erzeugen und\n" "seine Teamkameraden anzufeuern."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Volbeat_1[] = _( + "VOLBEATs Schweif leuchtet wie eine\n" + "Glühbirne. Zusammen mit anderen \n" + "VOLBEAT malt es mit seinem Schweif"); +static const u8 DexDescription_Volbeat_2[] = _( + "geometrische Figuren an den Nacht-\n" + "himmel. Dieses POKéMON liebt den von\n" + "ILLUMISE verströmten Duft."); +#else static const u8 DexDescription_Volbeat_1[] = _( "Wenn es Nacht wird, beginnt VOLBEATs\n" "Schweif zu leuchten. Es kommuniziert\n" @@ -2675,7 +4935,17 @@ static const u8 DexDescription_Volbeat_2[] = _( "und das Blinken dieses Lichts reguliert.\n" "Dieses POKéMON wird vom süßen Duft\n" "der ILLUMISE angezogen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Illumise_1[] = _( + "ILLUMISE leitet einen Schwarm VOLBEAT\n" + "an, wenn sie Zeichen an den Nachthimmel\n" + "malen. Je komplexer diese werden, desto"); +static const u8 DexDescription_Illumise_2[] = _( + "mehr Respekt bekommt es von seinen\n" + "Artgenossen."); +#else static const u8 DexDescription_Illumise_1[] = _( "ILLUMISE zieht ganze VOLBEAT-Scharen\n" "mit seinem süßlichen Duft an. Dann\n" @@ -2683,7 +4953,16 @@ static const u8 DexDescription_Illumise_1[] = _( static const u8 DexDescription_Illumise_2[] = _( "Schwarm an, indem es geometrische\n" "Figuren an den Nachthimmel malt."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Roselia_1[] = _( + "Nur sehr selten bekommt man ROSELIA\n" + "mit seinen ungewöhnlich farbigen Blumen\n" + "zu Gesicht. Die Dornen am Kopf dieses"); +static const u8 DexDescription_Roselia_2[] = _( + "POKéMON enthalten ein grausames Gift."); +#else static const u8 DexDescription_Roselia_1[] = _( "ROSELIA verschießt scharfe Stacheln\n" "auf jeden Feind, der versucht, die\n" @@ -2691,7 +4970,18 @@ static const u8 DexDescription_Roselia_1[] = _( static const u8 DexDescription_Roselia_2[] = _( "Der Duft dieses POKéMON beruhigt\n" "Lebewesen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Schluppuck_1[] = _( + "SCHLUPPUCKs Körper besteht zum\n" + "größten Teil aus seinem Magen. Sein Herz\n" + "und sein Gehirn sind im Vergleich dazu"); +static const u8 DexDescription_Schluppuck_2[] = _( + "sehr klein. Der Magen dieses POKéMON\n" + "enthält Enzyme, die alles zersetzen\n" + "können."); +#else static const u8 DexDescription_Schluppuck_1[] = _( "Eigentlich besteht SCHLUPPUCKs Körper\n" "nur aus einem Magen. Daher kann es\n" @@ -2700,7 +4990,17 @@ static const u8 DexDescription_Schluppuck_2[] = _( "Größe hat. Sein Magen enthält eine\n" "spezielle Flüssigkeit, die wirklich alles\n" "verdauen kann."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Schlukwech_1[] = _( + "SCHLUKWECH hat keine Zähne. Alles was\n" + "es isst, schluckt es im Ganzen herunter.\n" + "Sein Maul ist so riesig, dass mit"); +static const u8 DexDescription_Schlukwech_2[] = _( + "Leichtigkeit ein Autoreifen hinein-\n" + "passen würde."); +#else static const u8 DexDescription_Schlukwech_1[] = _( "Wenn SCHLUKWECH Beute sichtet,\n" "verspritzt es eine höchst giftige\n" @@ -2709,7 +5009,17 @@ static const u8 DexDescription_Schlukwech_2[] = _( "besprüht damit sein Ziel. Wenn die Beute\n" "geschwächt ist, schluckt es sie mit\n" "seinem riesigen Maul im Ganzen herunter."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Kanivanha_1[] = _( + "Wenn jemand KANIVANHAs Revier betritt,\n" + "schwärmt es aus und schnappt mit\n" + "seinen spitzen Zähnen nach dem"); +static const u8 DexDescription_Kanivanha_2[] = _( + "Eindringling. Wenn es allein ist, ist\n" + "dieses POKéMON sehr scheu."); +#else static const u8 DexDescription_Kanivanha_1[] = _( "KANIVANHAs starke Kiefer und seine\n" "spitzen Zähne verfügen über die \n" @@ -2717,7 +5027,17 @@ static const u8 DexDescription_Kanivanha_1[] = _( static const u8 DexDescription_Kanivanha_2[] = _( "verschlingen zu können. Dieses POKéMON\n" "hat schon viele Boote versenkt."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Tohaido_1[] = _( + "TOHAIDO kann bis zu 120 km/h schnell\n" + "schwimmen, indem es Meerwasser aus\n" + "seinem Hinterteil herausschießt."); +static const u8 DexDescription_Tohaido_2[] = _( + "Dieses POKéMON kann jedoch nicht sehr\n" + "weite Strecken zurücklegen."); +#else static const u8 DexDescription_Tohaido_1[] = _( "TOHAIDO trägt den Spitznamen\n" "“Tyrann des Meeres” und ist\n" @@ -2726,7 +5046,17 @@ static const u8 DexDescription_Tohaido_2[] = _( "wachsen sofort nach, wenn sie\n" "ausgebrochen sind. Es kann sogar einen\n" "Öltanker zerreißen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Wailmer_1[] = _( + "WAILMER kann Wasser in seinem Körper\n" + "speichern, um sich in einen Ball zu\n" + "verwandeln und herumzuhüpfen."); +static const u8 DexDescription_Wailmer_2[] = _( + "Wenn es die Wassermenge steigert, kann\n" + "dieses POKéMON noch höher hüpfen."); +#else static const u8 DexDescription_Wailmer_1[] = _( "WAILMERs Nasenlöcher liegen über\n" "seinen Augen. Dieses verspielte\n" @@ -2735,7 +5065,18 @@ static const u8 DexDescription_Wailmer_2[] = _( "indem es das Meerwasser, das es in\n" "seinem Körper speichert, mit aller Kraft\n" "herausprustet."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Wailord_1[] = _( + "WAILORD jagt seine Beute, indem es aus\n" + "dem Meer herausspringt und ein gewal-\n" + "tiges Platschen erzeugt. Es ist"); +static const u8 DexDescription_Wailord_2[] = _( + "atemberaubend, eine Gruppe dieses\n" + "POKéMON aus dem Wasser springen zu\n" + "sehen."); +#else static const u8 DexDescription_Wailord_1[] = _( "WAILORD ist bisher das größte aller\n" "identifizierten POKéMON. Es schwimmt\n" @@ -2743,7 +5084,17 @@ static const u8 DexDescription_Wailord_1[] = _( static const u8 DexDescription_Wailord_2[] = _( "mit seinem enormen Maul riesige Mengen\n" "an Nahrung auf."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Camaub_1[] = _( + "CAMAUB speichert fast 1200 Grad heißes\n" + "Magma in seinem Körper. Wenn es nass\n" + "wird, kühlt das Magma ab und wird hart."); +static const u8 DexDescription_Camaub_2[] = _( + "Dadurch wird der Körper dieses POKéMON\n" + "schwer und seine Bewegungen träge."); +#else static const u8 DexDescription_Camaub_1[] = _( "CAMAUB ist nicht besonders helle. Es\n" "nimmt nicht einmal wahr, wenn es\n" @@ -2752,7 +5103,17 @@ static const u8 DexDescription_Camaub_2[] = _( "allerdings kann es nicht einmal eine\n" "Sekunde lang aushalten. In seinem\n" "Körper brodelt glühend heißes Magma."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Camerupt_1[] = _( + "Die Höcker auf CAMERUPTs Rücken sind\n" + "durch eine Transformation seiner\n" + "Knochen entstanden. Hin und wieder"); +static const u8 DexDescription_Camerupt_2[] = _( + "stoßen sie Magma aus. Dieses POKéMON\n" + "bricht häufig aus, wenn es wütend ist."); +#else static const u8 DexDescription_Camerupt_1[] = _( "CAMERUPT trägt einen Vulkan in seinem\n" "Körper. 10.000 Grad heißes Magma fließt\n" @@ -2760,7 +5121,17 @@ static const u8 DexDescription_Camerupt_1[] = _( static const u8 DexDescription_Camerupt_2[] = _( "seinem Rücken aus und verspucken \n" "glühend heißes Magma."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Qurtel_1[] = _( + "QURTEL erzeugt Energie, indem es Kohle\n" + "verbrennt. Wenn das Feuer nachlässt,\n" + "wird es schwächer."); +static const u8 DexDescription_Qurtel_2[] = _( + "In der Vorbereitung auf einen Kampf\n" + "verbrennt dieses POKéMON mehr Kohle."); +#else static const u8 DexDescription_Qurtel_1[] = _( "QURTEL schaufelt sich auf der Suche\n" "nach Kohle durch die Berge. Wenn es\n" @@ -2769,7 +5140,17 @@ static const u8 DexDescription_Qurtel_2[] = _( "seines Panzers mit Kohle und verbrennt\n" "diese. Wenn es angegriffen wird, stößt\n" "es dicken schwarzen Rauch aus."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Spoink_1[] = _( + "SPOINK trägt eine Perle auf seinem\n" + "Kopf, die seine psychokinetische\n" + "Energie verstärkt. Deshalb ist es"); +static const u8 DexDescription_Spoink_2[] = _( + "dauernd auf der Suche nach einer\n" + "größeren Perle."); +#else static const u8 DexDescription_Spoink_1[] = _( "SPOINK hüpft auf seinem Schweif durch\n" "die Gegend. Die Erschütterung des\n" @@ -2778,7 +5159,18 @@ static const u8 DexDescription_Spoink_2[] = _( "Deshalb kann dieses POKéMON das Hüpfen\n" "nicht sein lassen, ansonsten würde sein\n" "Herz aufhören zu schlagen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Groink_1[] = _( + "GROINK benutzt die schwarzen Perlen\n" + "an seinem Körper, um seine fantas-\n" + "tischen Kräfte nutzen zu können. Dabei"); +static const u8 DexDescription_Groink_2[] = _( + "tanzt es sonderbar. Die schwarzen\n" + "Perlen dieses POKéMON sind wahre\n" + "Kunstwerke und ebenso wertvoll."); +#else static const u8 DexDescription_Groink_1[] = _( "GROINK benutzt die schwarzen Perlen\n" "an seinem Körper dazu, die\n" @@ -2787,14 +5179,35 @@ static const u8 DexDescription_Groink_2[] = _( "Wenn es diese spezielle Fähigkeit nutzt,\n" "wird sein schnaubender Atem\n" "schwerfällig."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Pandir_1[] = _( + "Jedes PANDIR trägt ein einzigartiges \n" + "Fleckenmuster auf seiner Haut. Dieses\n" + "POKéMON bewegt sich höchst seltsam."); +static const u8 DexDescription_Pandir_2[] = _( + "Es schwankt und stolpert, als wäre ihm\n" + "schwindlig. Seine schlingernden Bewe-\n" + "gungen verwirren seine Gegner."); +#else static const u8 DexDescription_Pandir_1[] = _( "Jedes PANDIR auf der Welt soll ein\n" "einzigartiges Fleckenmuster haben. Der\n" "schwankende Gang dieses POKéMON"); static const u8 DexDescription_Pandir_2[] = _( "erweckt den Eindruck, es würde tanzen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Knacklion_1[] = _( + "KNACKLION ist ein geduldiger Jäger. Es\n" + "gräbt in einer Wüste eine tiefe Grube\n" + "und wartet auf Beute, die hineinfällt."); +static const u8 DexDescription_Knacklion_2[] = _( + "Dieses POKéMON kommt eine ganze Woche\n" + "ohne Wasser aus."); +#else static const u8 DexDescription_Knacklion_1[] = _( "KNACKLIONs Bau ist eine Art in den Sand\n" "gegrabener Kessel. Dieses POKéMON\n" @@ -2803,7 +5216,17 @@ static const u8 DexDescription_Knacklion_2[] = _( "seinen Bau zu werfen. Seine gigan-\n" "tischen Kiefer verfügen über genügend\n" "Kraft, um einen Felsen zu zerquetschen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Vibrava_1[] = _( + "VIBRAVAs Flügel sind noch nicht ganz\n" + "ausgewachsen. Für lange Strecken sind\n" + "seine Flügel weniger geeignet."); +static const u8 DexDescription_Vibrava_2[] = _( + "Aber es kann mit ihnen Ultraschallwellen\n" + "erzeugen, wenn es sie vibrieren lässt."); +#else static const u8 DexDescription_Vibrava_1[] = _( "Um seine Beute zu schwächen, erzeugt\n" "VIBRAVA Ultraschallwellen, indem es\n" @@ -2812,7 +5235,18 @@ static const u8 DexDescription_Vibrava_2[] = _( "Die Ultraschallwellen dieses POKéMON \n" "sind so stark, dass sie bei Menschen\n" "Kopfschmerzen verursachen können."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Libelldra_1[] = _( + "LIBELLDRA wirbelt einen Sandsturm auf,\n" + "wenn es mit den Flügeln schlägt. Seine\n" + "Flügel erzeugen dabei Töne, die wie"); +static const u8 DexDescription_Libelldra_2[] = _( + "Gesang klingen. Da dieser “Gesang” das\n" + "Einzige ist, was man in einem Sandsturm\n" + "hört, wird es auch Wüstengeist genannt."); +#else static const u8 DexDescription_Libelldra_1[] = _( "LIBELLDRA wird auch “Geist der\n" "Wüste” genannt. Da seine flatternden\n" @@ -2820,7 +5254,17 @@ static const u8 DexDescription_Libelldra_1[] = _( static const u8 DexDescription_Libelldra_2[] = _( "dieses POKéMON beim Fliegen immer\n" "von einem Sandsturm umgeben."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Tuska_1[] = _( + "Je trockener und trostloser seine\n" + "Umgebung ist, desto schöner und\n" + "duftender wird TUSKAs Blume."); +static const u8 DexDescription_Tuska_2[] = _( + "Dieses POKéMON schwingt im Kampf wild\n" + "mit seinen dornigen Armen."); +#else static const u8 DexDescription_Tuska_1[] = _( "TUSKA lebt an trockenen Orten, z. B. in\n" "Wüsten. Es versprüht einen starken\n" @@ -2829,7 +5273,18 @@ static const u8 DexDescription_Tuska_2[] = _( "anzuziehen. Wenn sich Beute nähert,\n" "verschießt es scharfe Stacheln, um\n" "seinen Gegner zu überwältigen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Noktuska_1[] = _( + "Wenn ein Reisender mitten in der Nacht\n" + "durch eine Wüste wandert, folgt \n" + "NOKTUSKA ihm und spielt ihm Streiche."); +static const u8 DexDescription_Noktuska_2[] = _( + "Dann wartet dieses POKéMON darauf,\n" + "dass der Reisende müde wird und sich\n" + "nicht mehr bewegen kann."); +#else static const u8 DexDescription_Noktuska_1[] = _( "Am Tage bleibt NOKTUSKA reglos, damit es\n" "in der brennenden Wüstenhitze keine\n" @@ -2837,7 +5292,18 @@ static const u8 DexDescription_Noktuska_1[] = _( static const u8 DexDescription_Noktuska_2[] = _( "Dieses POKéMON wird bei Nacht aktiv,\n" "wenn die Temperatur sinkt."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Wablu_1[] = _( + "WABLU liebt es, Dinge zu putzen. Wenn\n" + "es etwas Schmutziges bemerkt, fängt\n" + "es an, dieses mit seinen weichen"); +static const u8 DexDescription_Wablu_2[] = _( + "Flügeln zu putzen. Wenn seine Flügel\n" + "dreckig werden, sucht sich dieses\n" + "POKéMON einen Fluss und duscht sich ab."); +#else static const u8 DexDescription_Wablu_1[] = _( "WABLU hat leichte, flauschige Flügel,\n" "die wie Schäfchenwolken aussehen.\n" @@ -2846,7 +5312,17 @@ static const u8 DexDescription_Wablu_2[] = _( "Menschen. Es landet auf ihren Köpfen \n" "und bleibt dort sitzen wie ein \n" "wattierter Hut."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Altaria_1[] = _( + "ALTARIA hat eine tolle Sopran-Stimme.\n" + "Seine Flügel sehen aus wie Schäfchen-\n" + "wolken. Dieses POKéMON stürzt sich"); +static const u8 DexDescription_Altaria_2[] = _( + "in einen Aufwind und steigt in den\n" + "Himmel empor."); +#else static const u8 DexDescription_Altaria_1[] = _( "ALTARIA tanzt und dreht sich in der\n" "Luft durch viele Schäfchenwolken.\n" @@ -2855,7 +5331,18 @@ static const u8 DexDescription_Altaria_2[] = _( "Stimme Melodien singt, versetzt es\n" "seine Zuhörer in verträumtes\n" "Erstaunen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Sengo_1[] = _( + "SENGO bewegt sich normalerweise auf\n" + "allen Vieren. Wenn es aber wütend wird, \n" + "stellt es sich auf seine Hinterbeine und"); +static const u8 DexDescription_Sengo_2[] = _( + "fährt seine Klauen aus. Dieses POKéMON\n" + "ist seit Generationen ein erbitterter\n" + "Rivale von VIPITIS."); +#else static const u8 DexDescription_Sengo_1[] = _( "Die Erinnerungen an den Kampf mit\n" "seinem Erzrivalen VIPITIS haben sich in\n" @@ -2864,7 +5351,18 @@ static const u8 DexDescription_Sengo_2[] = _( "eingebrannt. Dieses POKéMON weicht\n" "feindlichen Angriffen unheimlich\n" "raffiniert und geschickt aus."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Vipitis_1[] = _( + "VIPITIS kann mit seinem Schweif\n" + "Feinden einen Hieb versetzen und sie\n" + "mit einem abgesonderten Gift"); +static const u8 DexDescription_Vipitis_2[] = _( + "bespritzen. Dieses POKéMON wird in der\n" + "langwährenden Blutsfehde mit SENGO\n" + "nicht nachgeben."); +#else static const u8 DexDescription_Vipitis_1[] = _( "VIPITIS lebt seit Generationen in\n" "Fehde mit SENGO. Die Narben auf\n" @@ -2873,7 +5371,18 @@ static const u8 DexDescription_Vipitis_2[] = _( "Kämpfe. Dieses POKéMON greift seine\n" "Gegner mit seinem scharfkantigen\n" "Schweif an."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Lunastein_1[] = _( + "LUNASTEIN wird bei Vollmond aktiv.\n" + "Es läuft nicht, sondern schwebt\n" + "durch die Luft."); +static const u8 DexDescription_Lunastein_2[] = _( + "Die bedrohlichen roten Augen dieses\n" + "POKéMON lassen alle, die es sehen,\n" + "vor Angst erstarren."); +#else static const u8 DexDescription_Lunastein_1[] = _( "LUNASTEIN wurde in der Nähe eines\n" "Meteoritenkraters entdeckt. Daher\n" @@ -2882,7 +5391,18 @@ static const u8 DexDescription_Lunastein_2[] = _( "dieses POKéMON aus dem Weltall stammt.\n" "Diese Theorie konnte allerdings bisher\n" "noch nicht belegt werden."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Sonnfel_1[] = _( + "Aus Sonnenlicht zieht SONNFEL seine\n" + "Energie. Es kann angeblich die Emotio-\n" + "nen anderer sehen."); +static const u8 DexDescription_Sonnfel_2[] = _( + "Dieses POKéMON gibt eine starke Hitze\n" + "ab, wenn es sich um die eigene Achse\n" + "dreht."); +#else static const u8 DexDescription_Sonnfel_1[] = _( "SONNFEL ist eine neue POKéMON-Spezies,\n" "die angeblich aus dem Weltall\n" @@ -2891,7 +5411,18 @@ static const u8 DexDescription_Sonnfel_2[] = _( "Luft und bewegt sich leise. Im Kampf\n" "setzt dieses POKéMON sehr helles Licht\n" "ein."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Schmerbe_1[] = _( + "SCHMERBEs Körper ist mit einem\n" + "schleimigen Film bedeckt. Wenn ein\n" + "Gegner es packen will, entgeht es"); +static const u8 DexDescription_Schmerbe_2[] = _( + "seinem Griff. Dieses POKéMON wird\n" + "geschwächt, wenn sein schleimiger\n" + "Überzug austrocknet."); +#else static const u8 DexDescription_Schmerbe_1[] = _( "SCHMERBEs empfindliche Barthaare\n" "dienen ihm als hervorragendes\n" @@ -2900,7 +5431,17 @@ static const u8 DexDescription_Schmerbe_2[] = _( "sich im Schlamm, so dass nur noch seine\n" "Barthaare herausgucken, und wartet\n" "auf Beute."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Welsar_1[] = _( + "Wenn WELSAR auf einen wilden Beute-\n" + "zug geht, erzeugt es ein Beben mit \n" + "einem Radius von 5 Kilometern."); +static const u8 DexDescription_Welsar_2[] = _( + "Dieses POKéMON kann wirkliche Erdbeben\n" + "voraussehen."); +#else static const u8 DexDescription_Welsar_1[] = _( "WELSAR legt viel Wert auf sein\n" "Territorium. Ein einzelnes POKéMON\n" @@ -2909,7 +5450,18 @@ static const u8 DexDescription_Welsar_2[] = _( "Wenn sich ein Feind nähert, schlägt es\n" "um sich und verursacht ein gewaltiges\n" "Erdbeben."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Krebscorps_1[] = _( + "KREBSCORPS fängt seine Beute mit\n" + "seinen scharfen Krallen. Es hat keine\n" + "besonderen Ansprüche an seine"); +static const u8 DexDescription_Krebscorps_2[] = _( + "Nahrung, es frisst einfach alles.\n" + "Dieses POKéMON lebt gern in\n" + "schmutzigem Wasser."); +#else static const u8 DexDescription_Krebscorps_1[] = _( "KREBSCORPS ist kein heimisches\n" "POKéMON, sondern wurde als Haustier\n" @@ -2918,7 +5470,18 @@ static const u8 DexDescription_Krebscorps_2[] = _( "Dieses POKéMON ist mittlerweile sehr\n" "robust und hat seine Population\n" "vergrößert."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Krebutack_1[] = _( + "KREBUTACK legt seine Schale regelmäßig\n" + "ab. Direkt danach ist seine Schale weich\n" + "und empfindlich. Bis sie gehärtet"); +static const u8 DexDescription_Krebutack_2[] = _( + "ist, sucht es sich ein Versteck in einem\n" + "Flussbett, damit es nicht von Gegnern\n" + "angegriffen wird."); +#else static const u8 DexDescription_Krebutack_1[] = _( "KREBUTACK ist von Natur aus sehr\n" "gewalttätig, so dass es dauernd andere\n" @@ -2927,7 +5490,17 @@ static const u8 DexDescription_Krebutack_2[] = _( "muss. Andere Lebensformen lehnen es ab,\n" "mit diesem POKéMON in ein und demselben\n" "Teich zu leben."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Puppance_1[] = _( + "Sobald es Artgenossen bemerkt, tut\n" + "sich PUPPANCE mit ihnen zusammen und\n" + "sie brüllen gemeinsam. Dieses POKéMON"); +static const u8 DexDescription_Puppance_2[] = _( + "schläft, während es geschickt auf \n" + "seinem Fuß balanciert."); +#else static const u8 DexDescription_Puppance_1[] = _( "PUPPANCE bewegt sich, indem es sich auf\n" "seinem Fuß im Kreis dreht. In sehr alten\n" @@ -2935,7 +5508,17 @@ static const u8 DexDescription_Puppance_1[] = _( static const u8 DexDescription_Puppance_2[] = _( "entdeckt, die dieses POKéMON in\n" "Begleitung von Menschen zeigen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Lepumentas_1[] = _( + "LEPUMENTAS ist ein Rätsel um eine Ton-\n" + "statue, die vor 20.000 Jahren von einer\n" + "antiken Zivilisation geschaffen wurde."); +static const u8 DexDescription_Lepumentas_2[] = _( + "Dieses POKéMON verschießt Strahlen aus\n" + "beiden Händen."); +#else static const u8 DexDescription_Lepumentas_1[] = _( "LEPUMENTAS sind aus Schlamm gefertigte\n" "Puppen, die von primitiven Menschen\n" @@ -2944,7 +5527,17 @@ static const u8 DexDescription_Lepumentas_2[] = _( "Strahlen zum Leben erweckt wurden.\n" "Diese POKéMON bewegen sich\n" "schwebend fort."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Liliep_1[] = _( + "LILIEP ist ein antikes POKéMON, das aus\n" + "einem Fossil erzeugt wurde. Es bleibt\n" + "ständig an einem Felsen verankert."); +static const u8 DexDescription_Liliep_2[] = _( + "Mit seinen beiden Augen hält es ständig\n" + "Ausschau nach Beute."); +#else static const u8 DexDescription_Liliep_1[] = _( "Von LILIEP nahm man an, es sei seit\n" "etwa hundert Millionen Jahren\n" @@ -2953,7 +5546,17 @@ static const u8 DexDescription_Liliep_2[] = _( "Blütenblätter geformten Tentakeln\n" "heftet es sich an einen Felsen auf dem\n" "Meeresboden und fängt Beute."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Wielie_1[] = _( + "WIELIEs Körper dient ihm als Anker und\n" + "schützt ihn davor, in die stürmische\n" + "See gespült zu werden. Dieses POKéMON"); +static const u8 DexDescription_Wielie_2[] = _( + "sondert eine starke Verdauungsflüssig-\n" + "keit aus seinen Tentakeln ab."); +#else static const u8 DexDescription_Wielie_1[] = _( "WIELIE durchforstet den Meeresboden\n" "nach Beute. Dieses POKéMON fährt\n" @@ -2961,7 +5564,17 @@ static const u8 DexDescription_Wielie_1[] = _( static const u8 DexDescription_Wielie_2[] = _( "und fängt mit seinen acht Tentakeln\n" "Beute."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Anorith_1[] = _( + "ANORITH soll ein POKéMON-Vorgänger\n" + "sein, es hat acht Flügel an seinem\n" + "Körper. Dieses POKéMON schwamm im"); +static const u8 DexDescription_Anorith_2[] = _( + "Urmeer, indem es seine acht Flügel\n" + "schwang."); +#else static const u8 DexDescription_Anorith_1[] = _( "ANORITH wurde aus einem\n" "prähistorischen Fossil erzeugt. Dieses\n" @@ -2970,7 +5583,17 @@ static const u8 DexDescription_Anorith_2[] = _( "Gewässern. Es klemmt seine Beute\n" "fest zwischen seine beiden riesigen\n" "Klauen ein."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Armaldo_1[] = _( + "ARMALDO ist eine POKéMON-Spezies, die\n" + "vor vielen Jahren ausgestorben ist.\n" + "Dieses POKéMON soll sich auf seinen"); +static const u8 DexDescription_Armaldo_2[] = _( + "Hinterbeinen fortbewegt haben, da dies\n" + "für das Leben an Land bequemer war."); +#else static const u8 DexDescription_Armaldo_1[] = _( "Von ARMALDOs hartem Panzer prallen\n" "alle Angriffe ab. Dieses POKéMON\n" @@ -2979,7 +5602,17 @@ static const u8 DexDescription_Armaldo_2[] = _( "ausfahren oder einziehen kann. Es hat\n" "so viel Kraft, dass es damit eine\n" "Stahlplatte pulverisieren kann."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Barschwa_1[] = _( + "Obwohl BARSCHWAs Körper zerfetzt ist,\n" + "besitzt es eine harte und zähe Lebens-\n" + "kraft, so dass es überall leben kann."); +static const u8 DexDescription_Barschwa_2[] = _( + "Aber dieses POKéMON ist langsam und\n" + "dusselig. Daher ist es leicht zu fangen."); +#else static const u8 DexDescription_Barschwa_1[] = _( "BARSCHWAs Flossen waren schon immer\n" "zerfetzt. Wegen seines merkwürdigen\n" @@ -2987,7 +5620,17 @@ static const u8 DexDescription_Barschwa_1[] = _( static const u8 DexDescription_Barschwa_2[] = _( "weitgehend ignoriert. Es kann sowohl im\n" "Meer als auch in Flüssen leben."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Milotic_1[] = _( + "MILOTIC lebt auf dem Grund großer Seen.\n" + "Wenn dieses POKéMON rosa leuchtet,\n" + "gibt es eine Energiewelle ab, die einem"); +static const u8 DexDescription_Milotic_2[] = _( + "rastlosen Geist wohltuende Ruhe\n" + "verschaffen kann."); +#else static const u8 DexDescription_Milotic_1[] = _( "MILOTIC soll das Schönste aller\n" "POKéMON sein. Es hat die Macht,\n" @@ -2995,7 +5638,17 @@ static const u8 DexDescription_Milotic_1[] = _( static const u8 DexDescription_Milotic_2[] = _( "besänftigen und somit erbitterten\n" "Streit zu vermeiden."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Formeo_1[] = _( + "FORMEO bedient sich der Kraft der\n" + "Natur, um die Gestalt der Sonne, von\n" + "Regen- oder Schneewolken anzunehmen."); +static const u8 DexDescription_Formeo_2[] = _( + "Die Gefühlslage dieses POKéMON\n" + "verändert sich mit dem Wetter."); +#else static const u8 DexDescription_Formeo_1[] = _( "FORMEOs Erscheinung ändert sich\n" "mit dem Wetter. Dieses POKéMON hat\n" @@ -3003,7 +5656,18 @@ static const u8 DexDescription_Formeo_1[] = _( static const u8 DexDescription_Formeo_2[] = _( "Kraft der Natur zu nutzen, um seinen\n" "winzigen Körper zu schützen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Kecleon_1[] = _( + "KECLEON verändert seine Körper-\n" + "färbung, um sich seiner Umgebung\n" + "anzupassen. Dadurch kann es sich"); +static const u8 DexDescription_Kecleon_2[] = _( + "prima an seine ahnungslose Beute an-\n" + "schleichen. Es schlägt mit seiner dehn-\n" + "baren, langen Zunge aus und fängt sie."); +#else static const u8 DexDescription_Kecleon_1[] = _( "KECLEON kann die Farbe seines Körpers\n" "bei Bedarf verändern, um sich seiner\n" @@ -3011,7 +5675,18 @@ static const u8 DexDescription_Kecleon_1[] = _( static const u8 DexDescription_Kecleon_2[] = _( "eine Ausnahme: Das Zickzackmuster auf\n" "seinem Bauch kann es nicht verändern."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Shuppet_1[] = _( + "SHUPPET wächst, indem es sich von\n" + "düsteren Gefühlen wie Rachsucht und\n" + "Neid ernährt."); +static const u8 DexDescription_Shuppet_2[] = _( + "Es streift durch Städte und sucht nach\n" + "Empfindungen, die als Ursache für den\n" + "Verderb der Menschen gelten."); +#else static const u8 DexDescription_Shuppet_1[] = _( "SHUPPET wird durch Gefühle wie Neid und\n" "Rachsucht angezogen. Wenn jemand\n" @@ -3020,7 +5695,18 @@ static const u8 DexDescription_Shuppet_2[] = _( "erscheint dieses POKéMON in Scharen\n" "und reiht sich unter der Dachrinne der\n" "Person auf."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Banette_1[] = _( + "Die Energie eines Fluchs durchdrang\n" + "die Füllung einer weggeworfenen und\n" + "vergessenen Plüschpuppe und erweckte"); +static const u8 DexDescription_Banette_2[] = _( + "BANETTE zum Leben. Die Energie dieses\n" + "POKéMON würde entweichen, wenn es\n" + "seinen Mund öffnen sollte."); +#else static const u8 DexDescription_Banette_1[] = _( "BANETTE belegt andere mit Flüchen,\n" "indem es Nadeln in seinen eigenen\n" @@ -3028,7 +5714,18 @@ static const u8 DexDescription_Banette_1[] = _( static const u8 DexDescription_Banette_2[] = _( "ursprünglich eine Mitleid erregende\n" "Plüschpuppe, die weggeworfen wurde."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Zwirrlicht_1[] = _( + "ZWIRRLICHT wandert verloren durch die\n" + "tiefe Dunkelheit der Nacht. Kinder\n" + "werden oft ermahnt, dass dieses"); +static const u8 DexDescription_Zwirrlicht_2[] = _( + "POKéMON böse Kinder wegzaubert, die\n" + "von ihren Müttern ausgeschimpft \n" + "worden sind."); +#else static const u8 DexDescription_Zwirrlicht_1[] = _( "ZWIRRLICHT kann durch jede Wand gehen,\n" "egal, wie dick diese ist. Wenn dieses\n" @@ -3036,7 +5733,18 @@ static const u8 DexDescription_Zwirrlicht_1[] = _( static const u8 DexDescription_Zwirrlicht_2[] = _( "verfolgt es seinen Feind unnachgiebig\n" "bis zum Sonnenaufgang."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Zwirrklop_1[] = _( + "ZWIRRKLOP absorbiert alles, egal, wie\n" + "groß es auch sein mag. Dieses POKéMON\n" + "hypnotisiert seinen Gegner, indem es"); +static const u8 DexDescription_Zwirrklop_2[] = _( + "auf makabre Weise winkt und sein\n" + "einziges Auge zeigt. Der hypnotisierte\n" + "Gegner führt dann seine Befehle aus."); +#else static const u8 DexDescription_Zwirrklop_1[] = _( "ZWIRRKLOPs Körper ist komplett hohl. Es\n" "wird auch mit einem Schwarzen Loch\n" @@ -3044,7 +5752,18 @@ static const u8 DexDescription_Zwirrklop_1[] = _( static const u8 DexDescription_Zwirrklop_2[] = _( "in seinem Körper auf, es kommt jedoch\n" "nichts wieder heraus."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Tropius_1[] = _( + "Kinder aus den südlichen Tropen essen\n" + "die Früchte, die am Nacken von TROPIUS\n" + "hängen, als Zwischenmahlzeit."); +static const u8 DexDescription_Tropius_2[] = _( + "Dieses POKéMON kann fliegen, indem es\n" + "mit den Blättern auf seinem Rücken\n" + "schlägt, als ob es Flügel wären."); +#else static const u8 DexDescription_Tropius_1[] = _( "Die Früchte am Nacken von TROPIUS\n" "sind bei Kindern sehr beliebt. Dieses\n" @@ -3053,7 +5772,18 @@ static const u8 DexDescription_Tropius_2[] = _( "ständig. Offensichtlich sind ihm wegen\n" "dieser Vorliebe selber Früchte\n" "gewachsen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Palimpalim_1[] = _( + "Bei starkem Wind hängt sich\n" + "PALIMPALIM an einen Ast oder an die\n" + "Dachrinne eines Gebäudes, wobei es eine"); +static const u8 DexDescription_Palimpalim_2[] = _( + "Saugkappe auf seinem Kopf benutzt.\n" + "Das POKéMON pflückt mit seinem langen\n" + "Schweif Beeren und verspeist sie."); +#else static const u8 DexDescription_Palimpalim_1[] = _( "PALIMPALIMs Schreie hallen durch\n" "seinen hohlen Körper. Wenn dieses\n" @@ -3062,7 +5792,17 @@ static const u8 DexDescription_Palimpalim_2[] = _( "seine Schreie Ultraschallwellen, die\n" "seine Feinde buchstäblich wegfegen\n" "können."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Absol_1[] = _( + "ABSOL kann bevorstehende Natur-\n" + "katastrophen voraussagen. Es lebt auf\n" + "einem kargen, zerklüfteten Berg."); +static const u8 DexDescription_Absol_2[] = _( + "Dieses POKéMON wagt sich nur sehr\n" + "selten ins Tal herunter."); +#else static const u8 DexDescription_Absol_1[] = _( "Jedes Mal, wenn ABSOL sich den Menschen\n" "zeigt, endet dies in einer Katastrophe\n" @@ -3070,7 +5810,17 @@ static const u8 DexDescription_Absol_1[] = _( static const u8 DexDescription_Absol_2[] = _( "Deswegen ist es auch als das\n" "Katastrophen-POKéMON bekannt."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Isso_1[] = _( + "ISSO sammeln sich in Mondnächten,\n" + "um sich gegenseitig zu quetschen.\n" + "Dadurch gewinnt dieses POKéMON an"); +static const u8 DexDescription_Isso_2[] = _( + "Ausdauer und kann wirkungsvolle \n" + "Gegenangriffe trainieren."); +#else static const u8 DexDescription_Isso_1[] = _( "ISSO hat immer ein breites, fröhliches\n" "Lächeln auf seinem Gesicht. Um \n" @@ -3079,7 +5829,18 @@ static const u8 DexDescription_Isso_2[] = _( "man seinen Schweif betrachten. Wenn es\n" "wütend ist, schlägt es damit auf den\n" "Boden."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Schneppke_1[] = _( + "SCHNEPPKE kann überleben, indem es nur\n" + "Schnee und Eis zu sich nimmt. Alte\n" + "Überlieferungen besagen, dass ein Haus,"); +static const u8 DexDescription_Schneppke_2[] = _( + "welches von diesem POKéMON besucht\n" + "wird, vielen kommenden Generationen\n" + "Glück und Erfolg beschert."); +#else static const u8 DexDescription_Schneppke_1[] = _( "SCHNEPPKE lebt in Gebieten mit heftigem\n" "Schneefall. In Jahreszeiten, in denen es\n" @@ -3088,7 +5849,18 @@ static const u8 DexDescription_Schneppke_2[] = _( "Sommer, nimmt das POKéMON Reißaus, um\n" "in einer Höhle ein ruhiges Leben unter\n" "Stalaktiten und Stalagmiten zu führen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Firnontor_1[] = _( + "FIRNONTOR hat die Fähigkeit, Eis zu\n" + "kontrollieren. Es kann beispielsweise\n" + "einen Gegner augenblicklich einfrieren."); +static const u8 DexDescription_Firnontor_2[] = _( + "Nachdem es einen Gegner im Eis\n" + "bewegungsunfähig gemacht hat,\n" + "verspeist es ihn genüsslich."); +#else static const u8 DexDescription_Firnontor_1[] = _( "FIRNONTOR hat einen Körper aus Stein,\n" "den es mit einem Panzer aus Eis noch\n" @@ -3097,7 +5869,18 @@ static const u8 DexDescription_Firnontor_2[] = _( "die Luftfeuchtigkeit der Atmosphäre\n" "einfrieren und in jegliche Form\n" "verwandeln."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Seemops_1[] = _( + "SEEMOPS bewegt sich fort, indem es\n" + "seinen ballartigen Körper herumrollt.\n" + "Wenn Eisschollen auftauchen, kann man"); +static const u8 DexDescription_Seemops_2[] = _( + "dieses POKéMON dabei beobachten, wie\n" + "es über das Eis rollt und das Meer\n" + "überquert."); +#else static const u8 DexDescription_Seemops_1[] = _( "SEEMOPS kann schneller rollen als laufen.\n" "Wenn Gruppen dieses POKéMON \n" @@ -3106,7 +5889,18 @@ static const u8 DexDescription_Seemops_2[] = _( "gleichzeitig, um ihre Freude zu zeigen.\n" "Deswegen sind ihre Mahlzeiten sehr\n" "laut."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Seejong_1[] = _( + "SEEJONG balanciert häufig Dinge auf\n" + "seiner Nasenspitze und rollt sie hin und\n" + "her. Während es das tut, überprüft es"); +static const u8 DexDescription_Seejong_2[] = _( + "den Duft und die Beschaffenheit des\n" + "Gegenstandes und stellt fest, ob es das\n" + "Objekt mag oder nicht."); +#else static const u8 DexDescription_Seejong_1[] = _( "SEEJONG hat die Angewohnheit, alles,\n" "was es zum ersten Mal sieht, auf seiner \n" @@ -3115,7 +5909,18 @@ static const u8 DexDescription_Seejong_2[] = _( "POKéMON hält sich bei Laune, indem es\n" "manchmal ein SEEMOPS auf seiner Nase\n" "balanciert und hin- und herrollt."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Walraisa_1[] = _( + "WALRAISA schwimmt in eiskaltem Meer-\n" + "wasser und zertrümmert Eisberge mit\n" + "seinen beeindruckenden Stoßzähnen."); +static const u8 DexDescription_Walraisa_2[] = _( + "Eine dicke Schicht aus Walfischspeck\n" + "lässt gegnerische Attacken von ihm ab-\n" + "prallen."); +#else static const u8 DexDescription_Walraisa_1[] = _( "WALRAISA hat zwei massive Stoßzähne,\n" "die mit einem Hieb Eisblöcke\n" @@ -3124,7 +5929,18 @@ static const u8 DexDescription_Walraisa_2[] = _( "10 Tonnen wiegen. Es besitzt eine dicke\n" "Speckschicht, die es vor eisigen\n" "Temperaturen schützt."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Perlu_1[] = _( + "PERLU wächst, während es von seiner\n" + "steinharten Schale geschützt wird. \n" + "Wenn sein Körper zu groß für seine"); +static const u8 DexDescription_Perlu_2[] = _( + "Schale wird, ist dies ein sicheres\n" + "Anzeichen dafür, dass dieses POKéMON\n" + "kurz vor seiner Entwicklung steht."); +#else static const u8 DexDescription_Perlu_1[] = _( "PERLUs kräftige Schale dient nicht\n" "nur dem Schutz, es nutzt sie auch zum\n" @@ -3132,7 +5948,18 @@ static const u8 DexDescription_Perlu_1[] = _( static const u8 DexDescription_Perlu_2[] = _( "Schale eines PERLU weist viele\n" "Kerben und Kratzer auf."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Aalabyss_1[] = _( + "AALABYSS’ Schweif ist wie ein Fisch\n" + "geformt. Es benutzt ihn, um Beute\n" + "anzuziehen und schluckt diese dann"); +static const u8 DexDescription_Aalabyss_2[] = _( + "im Ganzen herunter. Beim Schwimmen\n" + "bewegt es seinen schlanken Körper\n" + "wie eine Schlange."); +#else static const u8 DexDescription_Aalabyss_1[] = _( "AALABYSS entging lange der\n" "Aufmerksamkeit des Menschen, da es in\n" @@ -3141,7 +5968,18 @@ static const u8 DexDescription_Aalabyss_2[] = _( "Die Augen dieses POKéMON können\n" "selbst in den dunklen und trüben Tiefen\n" "des Meeres einwandfrei sehen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Saganabyss_1[] = _( + "Obwohl SAGANABYSS beim Schwimmen ein\n" + "Bild von Eleganz und Schönheit bietet,\n" + "kann es auch sehr grausam sein. Wenn es"); +static const u8 DexDescription_Saganabyss_2[] = _( + "Beute sichtet, sticht es sein dünnes\n" + "Maul in den Körper eines Gegners und\n" + "entzieht ihm die Flüssigkeit."); +#else static const u8 DexDescription_Saganabyss_1[] = _( "SAGANABYSS lebt in extremen Tiefen des\n" "Südmeeres. Sein Körper ist so angelegt,\n" @@ -3150,7 +5988,18 @@ static const u8 DexDescription_Saganabyss_2[] = _( "unglaublichen Tiefe standhalten kann.\n" "Daher übersteht dieses POKéMON\n" "gewöhnliche Attacken unbeschadet."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Relicanth_1[] = _( + "RELICANTH ist eine seltene Spezies, die\n" + "auf einer Tiefsee-Expedition entdeckt\n" + "wurde. Dieses POKéMON hält dem"); +static const u8 DexDescription_Relicanth_2[] = _( + "enormen Wasserdruck des Ozeans stand.\n" + "Sein Körper ist mit steinharten\n" + "Schuppen bedeckt."); +#else static const u8 DexDescription_Relicanth_1[] = _( "RELICANTH ist eine POKéMON-Spezies,\n" "die vor hundert Millionen Jahren\n" @@ -3159,7 +6008,17 @@ static const u8 DexDescription_Relicanth_2[] = _( "verändern. Dieses antike POKéMON\n" "hat ein zahnloses Maul und ernährt sich\n" "von Mikroorganismen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Liebiskus_1[] = _( + "LIEBISKUS’ herzförmiger Körper ist ein\n" + "Symbol der Liebe und der Romantik.\n" + "Man sagt, jedem Paar, dem es begegnet,"); +static const u8 DexDescription_Liebiskus_2[] = _( + "stünde eine unendliche Liebesbeziehung\n" + "bevor."); +#else static const u8 DexDescription_Liebiskus_1[] = _( "LIEBISKUS lebt in den seichten\n" "Gewässern der Tropen. Dieses herz-\n" @@ -3168,7 +6027,18 @@ static const u8 DexDescription_Liebiskus_2[] = _( "der Tatsache, dass es hinter Liebes-\n" "paaren herschwamm, die es in den Wellen\n" "des Ozeans beobachtet hatte."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Kindwurm_1[] = _( + "KINDWURM hegt einen unerfüllten Traum.\n" + "Es möchte einmal hoch über den Wolken\n" + "fliegen. Um seinen Frust über seine"); +static const u8 DexDescription_Kindwurm_2[] = _( + "Flugunfähigkeit zu vertreiben, rammt\n" + "es seinen harten Kopf gegen riesige\n" + "Felsen und macht Kiesel aus ihnen."); +#else static const u8 DexDescription_Kindwurm_1[] = _( "KINDWURM hat den Traum, fliegen zu\n" "können. In zahlreichen vergeblichen\n" @@ -3176,7 +6046,18 @@ static const u8 DexDescription_Kindwurm_1[] = _( static const u8 DexDescription_Kindwurm_2[] = _( "herunter. Daher ist sein Kopf sehr\n" "robust und so hart wie Stahl geworden."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Draschel_1[] = _( + "Auf DRASCHELs Körper befinden sich\n" + "knochenähnliche Auswüchse. Sein Panzer\n" + "ist sehr hart und wehrt jeden Angriff"); +static const u8 DexDescription_Draschel_2[] = _( + "eines Gegners ab. Während es auf seine\n" + "Entwicklung wartet, versteckt es sich\n" + "in einer Höhle."); +#else static const u8 DexDescription_Draschel_1[] = _( "In DRASCHELs panzerartiger Schale\n" "vollziehen seine Zellen eine\n" @@ -3185,7 +6066,18 @@ static const u8 DexDescription_Draschel_2[] = _( "Körper zu bilden. Die Schale dieses\n" "POKéMON ist ausgesprochen schwer, so\n" "dass seine Bewegungen träge wirken."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Brutalanda_1[] = _( + "Indem es sich in BRUTALANDA verwandelt,\n" + "setzt dieses POKéMON seinen lang\n" + "gehegten Traum von Flügeln um."); +static const u8 DexDescription_Brutalanda_2[] = _( + "Um seine Freude zu zeigen, fliegt es\n" + "durch die Luft und dreht sich. Dabei\n" + "verspuckt es Flammen aus seinem Mund."); +#else static const u8 DexDescription_Brutalanda_1[] = _( "BRUTALANDA träumte sehr lange davon,\n" "dass ihm Flügel wachsen mögen. Dieser\n" @@ -3194,7 +6086,18 @@ static const u8 DexDescription_Brutalanda_2[] = _( "plötzliche Mutation in den Zellen dieses\n" "POKéMON hervorgerufen, so dass ihm\n" "plötzlich prächtige Flügel wuchsen."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Tanhel_1[] = _( + "TANHEL hält sich am Schweben, indem es\n" + "eine magnetische Kraft erzeugt, die die\n" + "natürliche Anziehungskraft der Erde"); +static const u8 DexDescription_Tanhel_2[] = _( + "abstößt. Wenn es schläft, verankert\n" + "sich dieses POKéMON mit den Haken an\n" + "seinem Hinterteil an einem Felsen."); +#else static const u8 DexDescription_Tanhel_1[] = _( "Anstelle von Blut fließt eine starke\n" "magnetische Energie durch TANHELs\n" @@ -3202,7 +6105,18 @@ static const u8 DexDescription_Tanhel_1[] = _( static const u8 DexDescription_Tanhel_2[] = _( "mit anderen, indem es kontrollierte\n" "magnetische Impulse aussendet."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Metang_1[] = _( + "Wenn zwei TANHEL miteinander\n" + "verschmelzen, entsteht daraus METANG.\n" + "Die Gehirne der TANHEL werden mit"); +static const u8 DexDescription_Metang_2[] = _( + "einem magnetischen Nervensystem ver-\n" + "bunden. Es schlägt seine Arme nach hin-\n" + "ten, um sich schnell bewegen zu können."); +#else static const u8 DexDescription_Metang_1[] = _( "Wenn zwei TANHEL miteinander\n" "verschmelzen, entsteht daraus METANG.\n" @@ -3211,7 +6125,17 @@ static const u8 DexDescription_Metang_2[] = _( "einem magnetischen Nervensystem\n" "verbunden. Dadurch erzeugt es starke\n" "psychokinetische Energie."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Metagross_1[] = _( + "METAGROSS ist aus der Verschmelzung\n" + "zweier METANG hervorgegangen. Auf der\n" + "Jagd drückt es seine Beute mit seinem"); +static const u8 DexDescription_Metagross_2[] = _( + "massigen Körper zu Boden. Dann frisst\n" + "es sein hilfloses Opfer auf."); +#else static const u8 DexDescription_Metagross_1[] = _( "METAGROSS hat insgesamt vier Gehirne.\n" "Diese können schwierige Berechnungen\n" @@ -3220,7 +6144,17 @@ static const u8 DexDescription_Metagross_2[] = _( "Dieses POKéMON kann durch die Lüfte\n" "schweben, indem es seine vier Beine\n" "einklappt."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Regirock_1[] = _( + "REGIROCKs Körper besteht komplett aus\n" + "Steinen. Erst kürzlich stellte man\n" + "erstaunt fest, dass die Steine alle an"); +static const u8 DexDescription_Regirock_2[] = _( + "unterschiedlichen Orten ausgegraben\n" + "wurden."); +#else static const u8 DexDescription_Regirock_1[] = _( "REGIROCK wurde vor langer Zeit von\n" "Menschen weggeschlossen. Wenn der\n" @@ -3229,7 +6163,18 @@ static const u8 DexDescription_Regirock_2[] = _( "Schaden nimmt, sucht es nach\n" "passenden Steinen, um sich selber zu\n" "reparieren."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Regice_1[] = _( + "REGICE umhüllt sich selbst mit kalter\n" + "Luft von 200 Grad minus. Alles\n" + "und jeder, der sich diesem POKéMON"); +static const u8 DexDescription_Regice_2[] = _( + "nähert, friert sofort ein. Sein eisiger\n" + "Körper ist so kalt, dass nicht einmal\n" + "Magma es schmelzen könnte."); +#else static const u8 DexDescription_Regice_1[] = _( "REGICEs tiefgefrorener Körper\n" "entstand während der Eiszeit. Es kann\n" @@ -3237,7 +6182,17 @@ static const u8 DexDescription_Regice_1[] = _( static const u8 DexDescription_Regice_2[] = _( "werden. Dieses POKéMON kontrolliert\n" "eisige Luft von minus 200 Grad."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Registeel_1[] = _( + "REGISTEEL wurde in der Antike von\n" + "den Menschen eingesperrt. Das Metall,\n" + "aus dem sein Körper besteht, ist eine"); +static const u8 DexDescription_Registeel_2[] = _( + "seltsame Substanz, die nicht von dieser\n" + "Welt sein soll."); +#else static const u8 DexDescription_Registeel_1[] = _( "REGISTEEL hat einen Körper, der härter\n" "ist als jede Art von Metall. Sein Körper\n" @@ -3245,7 +6200,18 @@ static const u8 DexDescription_Registeel_1[] = _( static const u8 DexDescription_Registeel_2[] = _( "Niemand hat eine Ahnung, was dieses\n" "POKéMON wohl frisst."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Latias_1[] = _( + "LATIAS ist sehr intelligent und kann die\n" + "menschliche Sprache verstehen. Es ist\n" + "mit gläsernen Daunen bedeckt."); +static const u8 DexDescription_Latias_2[] = _( + "Dieses POKéMON umhüllt seinen Körper\n" + "mit den Daunen und kann Licht brechen,\n" + "um seine Gestalt zu verändern."); +#else static const u8 DexDescription_Latias_1[] = _( "LATIAS ist in höchstem Maße empfindlich\n" "gegenüber den Emotionen der Menschen.\n" @@ -3254,7 +6220,18 @@ static const u8 DexDescription_Latias_2[] = _( "wahrnimmt, werden seine Federn\n" "zerzaust und es stößt schrille Schreie\n" "aus, um seinen Gegner einzuschüchtern."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Latios_1[] = _( + "LATIOS schüttet nur seinem TRAINER\n" + "gegenüber sein Herz aus. Dieses\n" + "POKéMON fliegt schneller als ein"); +static const u8 DexDescription_Latios_2[] = _( + "Flugzeug, indem es seine Vorderbeine\n" + "einklappt, um den Luftwiderstand zu\n" + "verringern."); +#else static const u8 DexDescription_Latios_1[] = _( "LATIOS kann seinem Feind ein Bild\n" "von etwas, das dieser einmal gesehen\n" @@ -3262,7 +6239,18 @@ static const u8 DexDescription_Latios_1[] = _( static const u8 DexDescription_Latios_2[] = _( "POKéMON ist intelligent und es versteht\n" "die menschliche Sprache."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Kyogre_1[] = _( + "In der Mythologie taucht KYOGRE als\n" + "dasjenige POKéMON auf, das das Meer\n" + "vergrößert hat, indem es sintflutartige"); +static const u8 DexDescription_Kyogre_2[] = _( + "Regenfälle und Sturmfluten erzeugt hat.\n" + "Nach einem katastrophalen Kampf mit\n" + "GROUDON legte es sich schlafen."); +#else static const u8 DexDescription_Kyogre_1[] = _( "KYOGRE kann riesige Regenwolken\n" "erzeugen, die den gesamten Himmel\n" @@ -3271,7 +6259,18 @@ static const u8 DexDescription_Kyogre_2[] = _( "Niederschläge hervorrufen. Dieses\n" "POKéMON hat vielen Menschen das Leben\n" "gerettet, die unter einer Dürre litten."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Groudon_1[] = _( + "GROUDON hat die Macht, mit Licht und\n" + "Hitze Regenwolken zu vertreiben und \n" + "Wasser verdunsten zu lassen."); +static const u8 DexDescription_Groudon_2[] = _( + "Es brachte den Menschen Erlösung, die\n" + "unter schrecklichen Überschwemmungen\n" + "gelitten hatten."); +#else static const u8 DexDescription_Groudon_1[] = _( "GROUDON wurde lange Zeit in der\n" "Mythologie als ein POKéMON\n" @@ -3280,7 +6279,16 @@ static const u8 DexDescription_Groudon_2[] = _( "Kontinente vergrößern kann. Dieses\n" "POKéMON fiel nach einem erbitterten\n" "Kampf mit KYOGRE in den Schlaf."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Rayquaza_1[] = _( + "RAYQUAZA soll für hunderte Millionen\n" + "Jahre in der Ozonschicht der Erde über\n" + "den Wolken gelebt haben. Daher wusste"); +static const u8 DexDescription_Rayquaza_2[] = _( + "man so lange nicht von seiner Existenz."); +#else static const u8 DexDescription_Rayquaza_1[] = _( "RAYQUAZA lebte für hunderte Millionen\n" "Jahre in der Ozonschicht und stieg nie\n" @@ -3288,7 +6296,17 @@ static const u8 DexDescription_Rayquaza_1[] = _( static const u8 DexDescription_Rayquaza_2[] = _( "lebt von Wasser und Partikeln aus der\n" "Atmosphäre."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Jirachi_1[] = _( + "JIRACHI wird aus seinem tausend-\n" + "jährigen Schlaf erwachen, wenn du ihm\n" + "mit klarer Stimme etwas vorsingst."); +static const u8 DexDescription_Jirachi_2[] = _( + "Es soll angeblich alle Wünsche der\n" + "Menschen erfüllen."); +#else static const u8 DexDescription_Jirachi_1[] = _( "Einer Legende nach erfüllt JIRACHI\n" "jeden Wunsch, der auf einen Notizzettel\n" @@ -3297,7 +6315,18 @@ static const u8 DexDescription_Jirachi_2[] = _( "dieses POKéMON Gefahr wittert, kämpft\n" "es bereits, bevor es überhaupt\n" "aufgewacht ist."); +#endif +#ifdef SAPPHIRE +static const u8 DexDescription_Deoxys_1[] = _( + "DEOXYS ging aus einem Virus aus dem\n" + "Weltraum hervor. Es ist sehr intelligent\n" + "und nutzt psychokinetische Energie."); +static const u8 DexDescription_Deoxys_2[] = _( + "Dieses POKéMON verschießt\n" + "Laserstrahlen aus einem kristallartigen\n" + "Organ auf seinem Brustkorb."); +#else static const u8 DexDescription_Deoxys_1[] = _( "Die DNS eines Weltraumvirus hat eine\n" "spontane Mutation erfahren, da sie\n" @@ -3306,6 +6335,7 @@ static const u8 DexDescription_Deoxys_2[] = _( "Daraus entstand DEOXYS. \n" "Das kristallartige Organ auf der Brust\n" "dieses POKéMON ist sein Gehirn."); +#endif static const struct PokedexEntry gPokedexEntries[] = { { diff --git a/src/decoration.c b/src/decoration.c index e829cb072..e829cb072 100755..100644 --- a/src/decoration.c +++ b/src/decoration.c diff --git a/src/easy_chat.c b/src/easy_chat.c index cc2cd7030..cca8c1355 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -19,19 +19,23 @@ extern const u8 gEasyChatGroupSizes[]; extern u16 gSpecialVar_0x8004; -#ifdef NONMATCHING -u8 *sub_80EB3FC(u8 *dst, u16 word) { - int group, wordIndex; + +u8 *sub_80EB3FC(u8 *dst, u16 word) +{ + u16 group; + u16 wordIndex; u8 *src; u16 i; - if (sub_80EB37C(word)) - { return StringCopy(dst, gOtherText_ThreeQuestions); - } - if (word != 0xFFFF) + if (word == 0xFFFF) + { + dst[0] = EOS; + return dst; + } + else { group = word >> 9; wordIndex = word & 0x1FF; @@ -41,34 +45,27 @@ u8 *sub_80EB3FC(u8 *dst, u16 word) { case EC_GROUP_POKEMON_2: // 21 dst = StringCopy(dst, gSpeciesNames[wordIndex]); break; - case EC_GROUP_MOVE_1: // 18 case EC_GROUP_MOVE_2: // 19 dst = StringCopy(dst, gMoveNames[wordIndex]); break; - default: src = gEasyChatGroupWords[group]; - - i = wordIndex - 1; - while (i != 0xFFFF) + for (i = wordIndex - 1; i != 0xFFFF; i--) { while (*src++ != EOS) - { - } - i--; + ; } dst = StringCopy(dst, src); break; } + dst[0] = EOS; + return dst; } - - dst[0] = EOS; - return dst; } -#endif -u8 *ConvertEasyChatWordsToString(u8 *dst, u16 *words, u16 arg2, u16 arg3) { +u8 *ConvertEasyChatWordsToString(u8 *dst, u16 *words, u16 arg2, u16 arg3) +{ u16 i; u16 n; @@ -95,7 +92,7 @@ u8 *ConvertEasyChatWordsToString(u8 *dst, u16 *words, u16 arg2, u16 arg3) { words++; dst = sub_80EB3FC(dst, word); - dst[0] = 0xFE; + dst[0] = CHAR_NEWLINE; dst++; } @@ -105,7 +102,8 @@ u8 *ConvertEasyChatWordsToString(u8 *dst, u16 *words, u16 arg2, u16 arg3) { return dst; } -u8 *sub_80EB544(u8 *dst, u16 *words, u16 arg2, u16 arg3) { +u8 *sub_80EB544(u8 *dst, u16 *words, u16 arg2, u16 arg3) +{ u16 i; u16 n; @@ -133,7 +131,7 @@ u8 *sub_80EB544(u8 *dst, u16 *words, u16 arg2, u16 arg3) { dst = sub_80EB3FC(dst, word); // Only difference with ConvertEasyChatWordsToString - dst[0] = (i == 0) ? 0xFE : 0xFA; + dst[0] = (i == 0) ? CHAR_NEWLINE : CHAR_PROMPT_SCROLL; dst++; } @@ -144,17 +142,16 @@ u8 *sub_80EB544(u8 *dst, u16 *words, u16 arg2, u16 arg3) { } -u16 unref_sub_80EB5E0(u16 arg0) { +u16 unref_sub_80EB5E0(u16 arg0) +{ u8 *chars; u16 i; - u16 strlen; + u16 length; int group, word; if (arg0 == 0xFFFF) - { return 0; - } group = arg0 >> 9; word = arg0 & 0x1FF; @@ -164,41 +161,37 @@ u16 unref_sub_80EB5E0(u16 arg0) { case EC_GROUP_POKEMON_2: // 21 chars = (u8 *) gSpeciesNames[word]; break; - case EC_GROUP_MOVE_1: // 18 case EC_GROUP_MOVE_2: // 19 chars = gMoveNames[word]; break; - default: chars = gEasyChatGroupWords[group]; - - i = word - 1; - while (i != 0xFFFF) + for (i = word - 1; i != 0xFFFF; i--) { while (*chars++ != EOS) - { - } - i--; + ; } break; } - strlen = 0; + length = 0; while (*chars != EOS) { chars++; - strlen += 1; + length++; } - return strlen; + return length; } -static bool8 sub_80EB680(u16 *arg0, u16 arg1, u16 arg2, u16 arg3) { +static bool8 sub_80EB680(u16 *arg0, u16 arg1, u16 arg2, u16 arg3) +{ return FALSE; } -void unref_sub_80EB684(u8 arg0, u16 arg1) { +void unref_sub_80EB684(u8 arg0, u16 arg1) +{ u16 *ptr; u16 c; @@ -217,7 +210,6 @@ void unref_sub_80EB684(u8 arg0, u16 arg1) { c = 1; ptr = (u16*)((void *)&gSaveBlock1.tvShows[arg1] + 0x02); break; - default: return; } @@ -231,7 +223,8 @@ void unref_sub_80EB684(u8 arg0, u16 arg1) { } } -void sub_80EB6FC(u16 *arg0, u16 arg1) { +void sub_80EB6FC(u16 *arg0, u16 arg1) +{ u16 i; for (i = arg1 - 1; i != 0xFFFF; i--) @@ -242,35 +235,30 @@ void sub_80EB6FC(u16 *arg0, u16 arg1) { } -u16 sub_80EB72C(u16 group) { - u16 local1; - - local1 = Random() % gEasyChatGroupSizes[group]; +u16 sub_80EB72C(u16 group) +{ + u16 local1 = Random() % gEasyChatGroupSizes[group]; - if (group == EC_GROUP_POKEMON || - group == EC_GROUP_POKEMON_2 || - group == EC_GROUP_MOVE_1 || - group == EC_GROUP_MOVE_2) + if (group == EC_GROUP_POKEMON + || group == EC_GROUP_POKEMON_2 + || group == EC_GROUP_MOVE_1 + || group == EC_GROUP_MOVE_2) { local1 = ((u16 *) gEasyChatGroupWords[group])[local1]; } - return ((group & 0x7F) << 9) | (local1 & 0x1FF); } -u16 sub_80EB784(u16 group) { +u16 sub_80EB784(u16 group) +{ if (!sub_80EAD7C(group)) - { return -1; - } if (group != EC_GROUP_POKEMON) { if (group == EC_GROUP_TRENDY_SAYING) - { return sub_80EB960(); - } } else { @@ -280,11 +268,11 @@ u16 sub_80EB784(u16 group) { return sub_80EB72C(group); } -void sub_80EB7C4(void) { +void sub_80EB7C4(void) +{ u16 *words; u16 arg1, arg2; - switch (gSpecialVar_0x8004) { case 0: @@ -292,7 +280,6 @@ void sub_80EB7C4(void) { arg1 = 2; arg2 = 2; break; - case 1: words = gSaveBlock1.unk2B28; if (sub_80EB680(gSaveBlock1.unk2B28, 3, 2, 20)) @@ -306,19 +293,16 @@ void sub_80EB7C4(void) { arg2 = 2; } break; - case 2: words = gSaveBlock1.unk2B34; arg1 = 3; arg2 = 2; break; - case 3: words = gSaveBlock1.unk2B40; arg1 = 3; arg2 = 2; break; - default: return; } @@ -327,74 +311,65 @@ void sub_80EB7C4(void) { ShowFieldAutoScrollMessage(gStringVar4); } -void sub_80EB83C(void) { +void sub_80EB83C(void) +{ u16 group, local2; if (Random() & 1) - { group = EC_GROUP_HOBBIES; - } else - { group = EC_GROUP_LIFESTYLE; - } local2 = sub_80EB784(group); sub_80EB3FC(gStringVar2, local2); } -u8 sub_80EB868(u8 arg0) { +u8 sub_80EB868(u8 arg0) +{ int offset; int index; index = arg0 / 8; - offset = arg0 & 7; + offset = arg0 % 8; return (gSaveBlock1.unk2D8C[index] >> offset) & 1; } -void sub_80EB890(u8 arg0) { +void sub_80EB890(u8 arg0) +{ int offset; int index; - if (arg0 > 32) + if (arg0 < 33) { - return; + index = arg0 / 8; + offset = arg0 % 8; + gSaveBlock1.unk2D8C[index] |= 1 << offset; } - - index = arg0 / 8; - offset = arg0 & 7; - gSaveBlock1.unk2D8C[index] |= 1 << offset; } -u8 sub_80EB8C0(void) { - u8 i, retval; +u8 sub_80EB8C0(void) +{ + u8 i, count; - i = 0; - retval = 0; - for (; i < 33; i++) + for (i = 0, count = 0; i < 33; i++) { if (sub_80EB868(i)) - { - retval += 1; - } + count++; } - - return retval; + return count; } -u16 sub_80EB8EC(void) { +u16 sub_80EB8EC(void) +{ u16 i; u16 local1, local2; local1 = sub_80EB8C0(); if (local1 == 33) - { return -1; - } local2 = Random() % (33 - local1); - - for (i = 0; i <= 0x20; i++) + for (i = 0; i < 33; i++) { if (sub_80EB868(i) == 0) { @@ -403,35 +378,28 @@ u16 sub_80EB8EC(void) { sub_80EB890(i); return (i & 0x1FF) | 0x2800; } - local2--; } } - return -1; } -static u16 sub_80EB960(void) { +static u16 sub_80EB960(void) +{ u16 i; u16 local1; local1 = sub_80EB8C0(); if (local1 == 0) - { return -1; - } local1 = Random() % local1; - - for (i = 0; i <= 0x20; i++) + for (i = 0; i < 33; i++) { if (sub_80EB868(i)) { if (local1 == 0) - { return (i & 0x1FF) | 0x2800; - } - local1--; } } @@ -439,11 +407,13 @@ static u16 sub_80EB960(void) { return -1; } -u8 sub_80EB9C8(void) { +u8 sub_80EB9C8(void) +{ return IsNationalPokedexEnabled(); } -static u16 sub_80EB9D8(void) { +static u16 sub_80EB9D8(void) +{ u16 *speciesList; u16 local1; u16 i; @@ -451,32 +421,22 @@ static u16 sub_80EB9D8(void) { local1 = sub_80EAE88(0); if (local1 == 0) - { return -1; - } local1 = Random() % local1; speciesList = (u16 *) gEasyChatGroupWords[EC_GROUP_POKEMON]; - for (i = 0; i < gEasyChatGroupSizes[EC_GROUP_POKEMON]; i++) { const u16 dexNum = SpeciesToNationalPokedexNum(*speciesList); - const u8 local2 = GetNationalPokedexFlag(dexNum, 0); if (local2) { if (local1 == 0) - { return *speciesList & 0x1FF; - } - local1--; } - speciesList++; } - return -1; } - diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c index 2d8140be5..a4f52f4b9 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -206,7 +206,7 @@ int sub_8068024(struct FieldInput *input) sub_8071310(); return TRUE; } - if (input->pressedSelectButton && sub_80A6D1C() == 1) + if (input->pressedSelectButton && sub_80A6D1C() == TRUE) return TRUE; return FALSE; } diff --git a/src/field_map_obj_helpers.c b/src/field_map_obj_helpers.c index 17584c96a..46784cff3 100644 --- a/src/field_map_obj_helpers.c +++ b/src/field_map_obj_helpers.c @@ -34,7 +34,7 @@ bool8 FreezeMapObject(struct MapObject *mapObject) } } -void FreezeMapObjects() +void FreezeMapObjects(void) { u8 i; for (i = 0; i < 16; i++) diff --git a/src/field_specials.c b/src/field_specials.c index 2b505bbfe..2b505bbfe 100755..100644 --- a/src/field_specials.c +++ b/src/field_specials.c diff --git a/src/field_tasks.c b/src/field_tasks.c index caf2ce6b9..caf2ce6b9 100755..100644 --- a/src/field_tasks.c +++ b/src/field_tasks.c diff --git a/src/item.c b/src/item.c index 2eb013490..36871285a 100644 --- a/src/item.c +++ b/src/item.c @@ -1,21 +1,25 @@ #include "global.h" +#include "hold_effects.h" #include "item.h" #include "items.h" +#include "item_use.h" #include "berry.h" #include "string_util.h" #include "strings.h" extern u8 gUnknown_02038560; -extern struct Item gItems[]; -struct BagPocket +// These constants are used in gItems +enum { - struct ItemSlot *itemSlots; - u8 capacity; + POCKET_NONE, + POCKET_ITEMS, + POCKET_POKE_BALLS, + POCKET_TM_HM, + POCKET_BERRIES, + POCKET_KEY_ITEMS, }; -extern struct BagPocket gBagPockets[5]; - enum { ITEMS_POCKET, @@ -25,6 +29,14 @@ enum KEYITEMS_POCKET }; +#if ENGLISH +#include "data/item_descriptions_en.h" +#include "data/items_en.h" +#elif GERMAN +#include "data/item_descriptions_de.h" +#include "data/items_de.h" +#endif + static void CompactPCItems(void); void CopyItemName(u16 itemId, u8 *string) @@ -137,6 +149,9 @@ bool8 CheckBagHasSpace(u16 itemId, u16 count) return TRUE; } +// This function matches if gBagPockets is declared non-const, +// but it should be fixed anyway. +#ifdef NONMATCHING bool8 AddBagItem(u16 itemId, u16 count) { u8 i; @@ -201,6 +216,158 @@ bool8 AddBagItem(u16 itemId, u16 count) memcpy(gBagPockets[pocket].itemSlots, newItems, gBagPockets[pocket].capacity * sizeof(struct ItemSlot)); return TRUE; } +#else +__attribute__((naked)) +bool8 AddBagItem(u16 itemId, u16 count) +{ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r9\n\ + mov r6, r8\n\ + push {r6,r7}\n\ + sub sp, 0x100\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + mov r8, r0\n\ + lsls r1, 16\n\ + lsrs r4, r1, 16\n\ + bl ItemId_GetPocket\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + beq _080A9510\n\ + mov r0, r8\n\ + bl ItemId_GetPocket\n\ + subs r0, 0x1\n\ + lsls r0, 24\n\ + lsrs r6, r0, 24\n\ + ldr r1, _080A94F8 @ =gBagPockets\n\ + lsls r0, r6, 3\n\ + adds r5, r0, r1\n\ + ldr r1, [r5]\n\ + ldrb r2, [r5, 0x4]\n\ + lsls r2, 2\n\ + mov r0, sp\n\ + bl memcpy\n\ + ldr r7, _080A94FC @ =0x000003e7\n\ + cmp r6, 0x3\n\ + beq _080A9468\n\ + movs r7, 0x63\n\ +_080A9468:\n\ + movs r1, 0\n\ + ldrb r0, [r5, 0x4]\n\ + cmp r1, r0\n\ + bcs _080A94B2\n\ + subs r0, r6, 0x2\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + mov r12, r0\n\ +_080A9478:\n\ + lsls r0, r1, 2\n\ + mov r2, sp\n\ + adds r3, r2, r0\n\ + ldrh r0, [r3]\n\ + cmp r0, r8\n\ + bne _080A94A6\n\ + ldrh r2, [r3, 0x2]\n\ + adds r0, r2, r4\n\ + cmp r0, r7\n\ + ble _080A9500\n\ + mov r0, r12\n\ + cmp r0, 0x1\n\ + bls _080A9510\n\ + subs r0, r7, r2\n\ + subs r0, r4, r0\n\ + lsls r0, 16\n\ + lsrs r4, r0, 16\n\ + strh r7, [r3, 0x2]\n\ + ldr r2, _080A94F8 @ =gBagPockets\n\ + mov r9, r2\n\ + lsls r3, r6, 3\n\ + cmp r4, 0\n\ + beq _080A9516\n\ +_080A94A6:\n\ + adds r0, r1, 0x1\n\ + lsls r0, 24\n\ + lsrs r1, r0, 24\n\ + ldrb r0, [r5, 0x4]\n\ + cmp r1, r0\n\ + bcc _080A9478\n\ +_080A94B2:\n\ + ldr r2, _080A94F8 @ =gBagPockets\n\ + mov r9, r2\n\ + lsls r3, r6, 3\n\ + cmp r4, 0\n\ + beq _080A9516\n\ + movs r1, 0\n\ + adds r0, r3, r2\n\ + ldrb r0, [r0, 0x4]\n\ + cmp r1, r0\n\ + bcs _080A94F2\n\ + mov r6, r9\n\ + adds r5, r3, r6\n\ +_080A94CA:\n\ + lsls r0, r1, 2\n\ + mov r6, sp\n\ + adds r2, r6, r0\n\ + ldrh r0, [r2]\n\ + cmp r0, 0\n\ + bne _080A94E6\n\ + mov r0, r8\n\ + strh r0, [r2]\n\ + cmp r4, r7\n\ + bls _080A9514\n\ + subs r0, r4, r7\n\ + lsls r0, 16\n\ + lsrs r4, r0, 16\n\ + strh r7, [r2, 0x2]\n\ +_080A94E6:\n\ + adds r0, r1, 0x1\n\ + lsls r0, 24\n\ + lsrs r1, r0, 24\n\ + ldrb r2, [r5, 0x4]\n\ + cmp r1, r2\n\ + bcc _080A94CA\n\ +_080A94F2:\n\ + cmp r4, 0\n\ + beq _080A9516\n\ + b _080A9510\n\ + .align 2, 0\n\ +_080A94F8: .4byte gBagPockets\n\ +_080A94FC: .4byte 0x000003e7\n\ +_080A9500:\n\ + strh r0, [r3, 0x2]\n\ + ldr r0, _080A950C @ =gBagPockets\n\ + lsls r1, r6, 3\n\ + adds r1, r0\n\ + b _080A951A\n\ + .align 2, 0\n\ +_080A950C: .4byte gBagPockets\n\ +_080A9510:\n\ + movs r0, 0\n\ + b _080A9528\n\ +_080A9514:\n\ + strh r4, [r2, 0x2]\n\ +_080A9516:\n\ + mov r6, r9\n\ + adds r1, r3, r6\n\ +_080A951A:\n\ + ldr r0, [r1]\n\ + ldrb r2, [r1, 0x4]\n\ + lsls r2, 2\n\ + mov r1, sp\n\ + bl memcpy\n\ + movs r0, 0x1\n\ +_080A9528:\n\ + add sp, 0x100\n\ + pop {r3,r4}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + pop {r4-r7}\n\ + pop {r1}\n\ + bx r1\n\ + .syntax divided\n"); +} +#endif bool8 RemoveBagItem(u16 itemId, u16 count) { @@ -410,7 +577,7 @@ static u16 SanitizeItemId(u16 itemId) return itemId; } -struct Item *ItemId_GetItem(u16 itemId) +const struct Item *ItemId_GetItem(u16 itemId) { return &gItems[SanitizeItemId(itemId)]; } @@ -435,15 +602,15 @@ u8 ItemId_GetHoldEffectParam(u16 itemId) return gItems[SanitizeItemId(itemId)].holdEffectParam; } -u8 *ItemId_GetDescription(u16 itemId) +const u8 *ItemId_GetDescription(u16 itemId) { return gItems[SanitizeItemId(itemId)].description; } -bool8 ItemId_CopyDescription(u8 *a, u32 itemId, u32 c) +bool32 ItemId_CopyDescription(u8 *a, u32 itemId, u32 c) { u32 r5 = c + 1; - u8 *description = gItems[SanitizeItemId(itemId)].description; + const u8 *description = gItems[SanitizeItemId(itemId)].description; u8 *str = a; for (;;) diff --git a/src/item_menu.c b/src/item_menu.c new file mode 100644 index 000000000..350ba3db4 --- /dev/null +++ b/src/item_menu.c @@ -0,0 +1,4583 @@ +#include "global.h" +#include "berry.h" +#include "berry_tag_screen.h" +#include "data2.h" +#include "decompress.h" +#include "field_effect.h" +#include "field_map_obj_helpers.h" +#include "field_player_avatar.h" +#include "graphics.h" +#include "item.h" +#include "items.h" +#include "item_menu.h" +#include "item_use.h" +#include "link.h" +#include "mail_data.h" +#include "main.h" +#include "map_name_popup.h" +#include "menu.h" +#include "menu_cursor.h" +#include "menu_helpers.h" +#include "money.h" +#include "palette.h" +#include "party_menu.h" +#include "player_pc.h" +#include "pokemon_menu.h" +#include "rom4.h" +#include "script.h" +#include "songs.h" +#include "sound.h" +#include "sprite.h" +#include "strings.h" +#include "strings2.h" +#include "string_util.h" +#include "task.h" +#include "text.h" +#include "unknown_task.h" + +// External stuff +extern u8 ewram[]; +extern void gpu_pal_allocator_reset__manage_upper_four(void); +extern void sub_80F9020(void); +extern void sub_80F9988(); +extern void sub_809D104(u16 *, u16, u16, const u8 *, u16, u16, u16, u16); +extern void PauseVerticalScrollIndicator(); +extern u8 sub_80F9284(void); +extern void sub_808B5B4(); +extern u8 sub_80F92F4(); +extern void sub_80C9C7C(u8); +extern void pal_fill_black(void); +extern bool8 sub_807D770(void); +extern u8 sub_80F931C(); +extern void sub_808A3F8(u8); +extern void sub_80B3050(void); +extern void sub_80546B8(u8); +extern void sub_804E990(u8); +extern void sub_802E424(u8); +extern void sub_8064E2C(void); + +struct PocketScrollState +{ + u8 cursorPos; + u8 scrollTop; + u8 numSlots; + u8 cursorMax; +}; + +struct UnknownStruct2 +{ + u8 unk0; + u8 textLine; + u8 unk2; +}; + +struct UnknownStruct3 +{ + u8 unk0; + u8 unk1; + u8 unk2; +}; + +struct UnknownStruct4 +{ + u8 unk0; + u8 unk1; + u16 unk2; + const u8 *unk4; + TaskFunc unk8; +}; + +struct UnknownStruct5 +{ + u8 unk0; + u8 unk1; + u8 unk2; + u8 unk3; +}; + +struct UnknownStruct6 +{ + u8 unk0; +}; + +enum +{ + BAG_POCKET_ITEMS, // 0 + BAG_POCKET_POKE_BALLS, // 1 + BAG_POCKET_TMs_HMs, // 2 + BAG_POCKET_BERRIES, // 3 + BAG_POCKET_KEY_ITEMS, // 4 +}; + +enum +{ + RETURN_TO_FIELD_0, + RETURN_TO_BATTLE, + RETURN_TO_PKMN_LIST, + RETURN_TO_SHOP, + RETURN_TO_FIELD_4, + RETURN_TO_FIELD_5, + RETURN_TO_PC, + RETURN_TO_WALLY_BATTLE, +}; + +enum +{ + ITEM_ACTION_USE_0, // 0 + ITEM_ACTION_TOSS, // 1 + ITEM_ACTION_CANCEL_2, // 2 + ITEM_ACTION_REGISTER, // 3 + ITEM_ACTION_USE_4, // 4 + ITEM_ACTION_CANCEL_5, // 5 + ITEM_ACTION_GIVE, // 6 + ITEM_ACTION_CHECK_TAG, // 7 + ITEM_ACTION_NONE, // 8 + ITEM_ACTION_CONFIRM, // 9 +}; + +// ewram +EWRAM_DATA static struct UnknownStruct2 gUnknown_0203853C = {0}; +EWRAM_DATA static struct UnknownStruct3 gUnknown_02038540 = {0}; +EWRAM_DATA static struct UnknownStruct4 gUnknown_02038544 = {0}; +EWRAM_DATA static struct UnknownStruct5 gUnknown_02038550 = {0}; +EWRAM_DATA static struct UnknownStruct6 gUnknown_02038554 = {0}; // There are 3 bytes of padding after this, so I assume it's a struct +EWRAM_DATA static u8 gUnknown_02038558 = 0; +EWRAM_DATA static s8 sCurrentBagPocket = 0; +EWRAM_DATA static u8 gUnknown_0203855A = 0; +EWRAM_DATA static s8 gUnknown_0203855B = 0; +EWRAM_DATA static s8 gUnknown_0203855C = 0; +EWRAM_DATA u16 gScriptItemId = 0; +EWRAM_DATA u8 gUnknown_02038560 = 0; +EWRAM_DATA u8 gUnknown_02038561 = 0; +EWRAM_DATA static u8 gUnknown_02038562 = 0; +EWRAM_DATA static u8 gUnknown_02038563 = 0; +EWRAM_DATA static u8 gUnknown_02038564 = 0; +EWRAM_DATA static u8 sPokeballSpriteId ALIGNED(4) = 0; // HACK: why is there a space before this variable? + +// bss +static u8 sPopupMenuSelection; +static u8 sReturnLocation; +static const u8 *sPopupMenuActionList; + +// common +void (*gUnknown_03005D00)(u8) = NULL; +extern u16 gUnknown_030041B4; +extern struct PocketScrollState gBagPocketScrollStates[]; +extern struct ItemSlot *gCurrentBagPocketItemSlots; // selected pocket item slots +extern const u8 Event_NoRegisteredItem[]; + +#define ewramBerryPic (ewram + 0) +#define ewramBerryPicTemp (ewram + 0x1000) +#define ewramSavedItemsPocket ((struct ItemSlot *)(ewram + 0x1E000)) // saved items pocket (for Wally battle) +#define ewramSavedPokeballsPocket ((struct ItemSlot *)(ewram + 0x1F000)) // saved Pokeballs pocket (for Wally battle) +#define ewramBagSetupStep (ewram[0x1FFFF]) + +extern const struct CompressedSpriteSheet sMaleBagSpriteSheet; +extern const struct CompressedSpriteSheet sFemaleBagSpriteSheet; +extern const struct CompressedSpritePalette sBagSpritePalette; + +const struct BagPocket gBagPockets[NUM_BAG_POCKETS] = +{ + {gSaveBlock1.bagPocket_Items, 20}, + {gSaveBlock1.bagPocket_PokeBalls, 16}, + {gSaveBlock1.bagPocket_TMHM, 64}, + {gSaveBlock1.bagPocket_Berries, 46}, + {gSaveBlock1.bagPocket_KeyItems, 20}, +}; + +static void HandlePopupMenuAction_UseOnField(u8); +static void HandlePopupMenuAction_Toss(u8); +static void sub_80A5F80(u8); +static void HandlePopupMenuAction_Register(u8); +static void HandlePopupMenuAction_UseInBattle(u8); +static void sub_80A7124(u8); +static void HandlePopupMenuAction_Give(u8); +static void HandlePopupMenuAction_CheckTag(u8); +static void HandlePopupMenuAction_Confirm(u8); + +static const struct MenuAction2 sItemPopupMenuActions[] = +{ + {OtherText_Use, HandlePopupMenuAction_UseOnField}, + {OtherText_Toss, HandlePopupMenuAction_Toss}, + {gOtherText_CancelNoTerminator, sub_80A5F80}, + {OtherText_Register, HandlePopupMenuAction_Register}, + {OtherText_Use, HandlePopupMenuAction_UseInBattle}, + {gOtherText_CancelNoTerminator, sub_80A7124}, + {OtherText_Give2, HandlePopupMenuAction_Give}, + {OtherText_CheckTag, HandlePopupMenuAction_CheckTag}, + {gOtherText_CancelWithTerminator, NULL}, + {OtherText_Confirm, HandlePopupMenuAction_Confirm}, +}; + +static const u8 sItemPopupMenuChoicesTable[][6] = +{ + [BAG_POCKET_ITEMS] = + { + ITEM_ACTION_USE_0, + ITEM_ACTION_TOSS, + ITEM_ACTION_GIVE, + ITEM_ACTION_CANCEL_2, + }, + + [BAG_POCKET_POKE_BALLS] = + { + ITEM_ACTION_GIVE, + ITEM_ACTION_TOSS, + ITEM_ACTION_NONE, + ITEM_ACTION_CANCEL_2, + }, + + [BAG_POCKET_TMs_HMs] = + { + ITEM_ACTION_USE_0, + ITEM_ACTION_NONE, + ITEM_ACTION_GIVE, + ITEM_ACTION_CANCEL_2, + }, + + [BAG_POCKET_BERRIES] = + { + ITEM_ACTION_CHECK_TAG, + ITEM_ACTION_USE_0, + ITEM_ACTION_TOSS, + ITEM_ACTION_NONE, + ITEM_ACTION_GIVE, + ITEM_ACTION_CANCEL_2 + }, + + [BAG_POCKET_KEY_ITEMS] = + { + ITEM_ACTION_USE_0, + ITEM_ACTION_NONE, + ITEM_ACTION_REGISTER, + ITEM_ACTION_CANCEL_2, + }, +}; + +const u8 gUnknown_083C16AE[][2] = +{ + {6, 2}, + {6, 2}, + {6, 2}, + {6, 2}, + {2, 0}, +}; + +const u8 gUnknown_083C16B8[] = {7, 9, 8, 2}; + +static void OnItemSelect_Field05(u8); +static void OnBagClose_Field0(u8); +static void OnBagClose_PkmnList(u8); +static void OnItemSelect_PkmnList(u8); +static void OnBagClose_Shop(u8); +static void OnItemSelect_Shop(u8); +static void OnBagClose_Field4(u8); +static void OnItemSelect_Field4(u8); +static void OnBagClose_Field5(u8); +static void OnBagClose_PC(u8); +static void OnItemSelect_PC(u8); +static void OnItemSelect_Battle(u8); +static void OnBagClose_Battle(u8); + +static const struct {TaskFunc onItemSelect; TaskFunc onBagClose;} gUnknown_083C16BC[] = +{ + [RETURN_TO_FIELD_0] = {OnItemSelect_Field05, OnBagClose_Field0}, + [RETURN_TO_BATTLE] = {OnItemSelect_Battle, OnBagClose_Battle}, + [RETURN_TO_PKMN_LIST] = {OnItemSelect_PkmnList, OnBagClose_PkmnList}, + [RETURN_TO_SHOP] = {OnItemSelect_Shop, OnBagClose_Shop}, + [RETURN_TO_FIELD_4] = {OnItemSelect_Field4, OnBagClose_Field4}, + [RETURN_TO_FIELD_5] = {OnItemSelect_Field05, OnBagClose_Field5}, + [RETURN_TO_PC] = {OnItemSelect_PC, OnBagClose_PC}, +}; + +static void sub_80A5E60(u8); +static void sub_80A5E90(u8); + +static const struct YesNoFuncTable gUnknown_083C16F4 = {sub_80A5E60, sub_80A5E90}; + +static void sub_80A65AC(u8); +static void sub_80A6618(u8); + +const struct YesNoFuncTable gUnknown_083C16FC = {sub_80A65AC, sub_80A6618}; + +void sub_80A34E8(void); +static bool8 LoadBagGraphicsMultistep(void); +static void sub_80A362C(void); +static void sub_80A3740(void); +static void sub_80A396C(u16 *, u8, u8, u8); +static void sub_80A39B8(u16 *, u8); +static void sub_80A39E4(u16 *, u8, u8, s8); +static void DrawPocketIndicatorDots(u16 *, u8); +static void SortItemSlots(struct BagPocket); +static void UpdateAllBagPockets(void); +static void sub_80A3D24(u8); +static void sub_80A3D40(void); +static void RemoveSelectIconFromRegisteredItem(void); +static void sub_80A48E8(u16, int, int); +static void ItemListMenu_InitDescription(s16); +static void ItemListMenu_ChangeDescription(s16, int); +static void sub_80A4F68(u8); +static void sub_80A50C8(u8); +static void sub_80A5AE4(u8); +static void sub_80A5BF8(u8); +static void Task_CallItemUseOnFieldCallback(u8); +static void sub_80A6444(u8); +static void sub_80A648C(u8); +static void Task_BuyHowManyDialogueHandleInput(u8); +static void BuyMenuPrintItemQuantityAndPrice(u8); +static void BuyMenuDisplayMessage(u16, u16); +static void sub_80A683C(void); +static void sub_80A6870(u16, u8); +static void sub_80A699C(void); +static void sub_80A7230(u8); +static void ItemListMenu_InitMenu(void); +static void sub_80A73C0(void); +static void sub_80A73F0(void); +static void sub_80A73FC(void); +static void sub_80A740C(void); +static void sub_80A7420(void); +static void sub_80A751C(void); +static void sub_80A7528(u8); +static void sub_80A7590(void); +static void sub_80A75E4(void); +static void sub_80A7630(void); +static void sub_80A763C(void); +static void sub_80A76A0(void); +static void sub_80A770C(void); +static void DisplayCannotUseItemMessage(int, const u8 *, TaskFunc, int); +static void sub_80A7768(void); +static void sub_80A7828(void); +static void sub_80A7834(int, int); +static bool32 sub_80A78A0(void); +static void sub_80A78B8(void); +static bool32 sub_80A78C4(void); +static void sub_80A78E8(void); +static int sub_80A78F4(void); +static void sub_80A7918(void); +static int sub_80A7924(void); +static int sub_80A7958(void); +static void sub_80A7970(void); +static void sub_80A797C(void); +static int sub_80A7988(void); +static void sub_80A79B4(struct Sprite *); +static void sub_80A79EC(struct Sprite *); +static void sub_80A7A94(struct Sprite *); +static void sub_80A7AE4(struct Sprite *); +static void CreateBagSprite(void); +static void sub_80A7B6C(struct Sprite *); +static void CreateBagPokeballSprite(u8); +static void sub_80A7C64(void); + +static void sub_80A3118(void) +{ + AnimateSprites(); + BuildOamBuffer(); + RunTasks(); + sub_80A740C(); + UpdatePaletteFade(); +} + +static void sub_80A3134(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); + + { + const void *src = gBGTilemapBuffers[1]; + void *dst = (void *)(VRAM + 0x2000); + + DmaCopy16(3, src, dst, 0x800); + } + + { + const void *src = gBGTilemapBuffers[2]; + void *dst = (void *)(VRAM + 0x6000); + + DmaCopy16(3, src, dst, 0x800); + } +} + +static bool8 SetupBagMultistep(void) +{ + u32 index; + u16 savedIme; + + switch (gMain.state) + { + case 0: + sub_80F9438(); + sub_80A34E8(); + gMain.state++; + break; + case 1: + remove_some_task(); + gMain.state++; + break; + case 2: + gpu_pal_allocator_reset__manage_upper_four(); + gMain.state++; + break; + case 3: + sub_80F9020(); + ewramBagSetupStep = 0; + gMain.state++; + break; + case 4: + ResetPaletteFade(); + gPaletteFade.bufferTransferDisabled = TRUE; + gMain.state++; + break; + case 5: + ResetSpriteData(); + gMain.state++; + break; + case 6: + if (LoadBagGraphicsMultistep() == FALSE) + break; + gMain.state++; + break; + case 7: + SetUpWindowConfig(&gWindowConfig_81E6DFC); + gMain.state++; + break; + case 8: + MultistepInitMenuWindowBegin(&gWindowConfig_81E6DFC); + gMain.state++; + break; + case 9: + if (!MultistepInitMenuWindowContinue()) + break; + gMain.state++; + break; + case 10: + sub_80F944C(); + LoadScrollIndicatorPalette(); + CreateVerticalScrollIndicators(0, 172, 12); + CreateVerticalScrollIndicators(1, 172, 148); + CreateVerticalScrollIndicators(2, 28, 88); + CreateVerticalScrollIndicators(3, 100, 88); + sub_80F9988(0, 2); + sub_80F9988(1, 2); + sub_80F9988(2, 2); + sub_80F9988(3, 2); + if (sReturnLocation == RETURN_TO_FIELD_4 || sReturnLocation == RETURN_TO_FIELD_5) + { + sub_80F979C(2, 1); + sub_80F979C(3, 1); + } + gMain.state++; + break; + case 11: + gUnknown_0203855A = 16; + sub_80A39B8(gBGTilemapBuffers[2], sCurrentBagPocket + 1); + DrawPocketIndicatorDots(gBGTilemapBuffers[2], sCurrentBagPocket); + UpdateAllBagPockets(); + SortItemSlots(gBagPockets[2]); + SortItemSlots(gBagPockets[3]); + sub_80A3D40(); + gCurrentBagPocketItemSlots = gBagPockets[sCurrentBagPocket].itemSlots; + sub_80A362C(); + gMain.state++; + break; + case 12: + sub_80A48E8(0xFFFF, 0, 7); + index = gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos; + ItemListMenu_InitDescription(gCurrentBagPocketItemSlots[index].itemId); + ItemListMenu_InitMenu(); + gUnknown_0203855B = sCurrentBagPocket + 1; + gUnknown_0203855C = 0; + gMain.state++; + break; + case 13: + CreateBagSprite(); + CreateBagPokeballSprite(0); + sub_80A3740(); + gMain.state++; + break; + case 14: + savedIme = REG_IME; + REG_IME = 0; + REG_IE |= INTR_FLAG_VBLANK; + REG_IME = savedIme; + REG_DISPSTAT |= DISPSTAT_VBLANK_INTR; + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); + gPaletteFade.bufferTransferDisabled = FALSE; + gMain.state++; + break; + case 15: + if (sub_8055870() == TRUE) + break; + gMain.state++; + break; + case 16: + SetVBlankCallback(sub_80A3134); + SetMainCallback2(sub_80A3118); + sub_80A751C(); + sub_80A7630(); + sub_80A770C(); + sub_80A7828(); + sub_80A78B8(); + return TRUE; + } + return FALSE; +} + +static bool8 sub_80A34B4(void) +{ + while (1) + { + if (SetupBagMultistep() == TRUE) + { + sPopupMenuSelection = 0; + ResetTasks(); + return TRUE; + } + if (sub_80F9344() == TRUE) + break; + } + return FALSE; +} + + +void sub_80A34E8(void) +{ + sub_80F9368(); + REG_BG2CNT = BGCNT_PRIORITY(2) | BGCNT_CHARBASE(1) | BGCNT_SCREENBASE(12) | BGCNT_16COLOR | BGCNT_TXT256x256; + REG_BG1CNT = BGCNT_PRIORITY(1) | BGCNT_CHARBASE(1) | BGCNT_SCREENBASE(4) | BGCNT_16COLOR | BGCNT_TXT256x256; + REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_BG2_ON | DISPCNT_OBJ_ON; + REG_BLDCNT = 0; +} + +static bool8 LoadBagGraphicsMultistep(void) +{ + switch (ewramBagSetupStep) + { + case 0: + LZDecompressVram(gBagScreen_Gfx, (void *)(VRAM + 0x4000)); + ewramBagSetupStep++; + break; + case 1: + CpuCopy16(gUnknown_08E77004, gBGTilemapBuffers[2], 0x800); + ewramBagSetupStep++; + break; + case 2: + if (gSaveBlock2.playerGender == MALE || sReturnLocation == RETURN_TO_WALLY_BATTLE) + LoadCompressedPalette(gBagScreenMale_Pal, 0, 64); + else + LoadCompressedPalette(gBagScreenFemale_Pal, 0, 64); + ewramBagSetupStep++; + break; + case 3: + if (gSaveBlock2.playerGender == MALE || sReturnLocation == RETURN_TO_WALLY_BATTLE) + LoadCompressedObjectPic(&sMaleBagSpriteSheet); + else + LoadCompressedObjectPic(&sFemaleBagSpriteSheet); + ewramBagSetupStep++; + break; + case 4: + LoadCompressedObjectPalette(&sBagSpritePalette); + ewramBagSetupStep = 0; + return TRUE; + } + return FALSE; +} + +static void sub_80A362C(void) +{ + u8 i; + + for (i = 0; i < 5; i++) + { + u8 r3; + + if (sReturnLocation == RETURN_TO_FIELD_5) + r3 = gBagPocketScrollStates[i].numSlots - 1; + else + r3 = gBagPocketScrollStates[i].numSlots; + + if (gBagPocketScrollStates[i].scrollTop != 0) + { + if (gBagPocketScrollStates[i].scrollTop + gBagPocketScrollStates[i].cursorMax > r3) + gBagPocketScrollStates[i].scrollTop = r3 - gBagPocketScrollStates[i].cursorMax; + } + else + { + if (gBagPocketScrollStates[i].cursorPos > r3) + gBagPocketScrollStates[i].cursorPos = r3; + } + } +} + +void ResetBagScrollPositions(void) +{ + u16 i; + + for (i = 0; i < NUM_BAG_POCKETS; i++) + { + gBagPocketScrollStates[i].cursorPos = 0; + gBagPocketScrollStates[i].scrollTop = 0; + gBagPocketScrollStates[i].numSlots = 0; + gBagPocketScrollStates[i].cursorMax = 0; + } + sCurrentBagPocket = 0; +} + +static void sub_80A36B8(u16 *a, u8 b, u8 c, u8 d, u8 e) +{ + u16 i; + u16 j; + + for (i = c; i <= c + e; i++) + { + for (j = b; j <= b + d; j++) + { + u32 index = j + i * 32; + + a[index] = 0; + } + } +} + +void ClearBag(void) +{ + u16 i; + + for (i = 0; i < NUM_BAG_POCKETS; i++) + ClearItemSlots(gBagPockets[i].itemSlots, gBagPockets[i].capacity); + ResetBagScrollPositions(); +} + +static void sub_80A3740(void) +{ + const u16 colors[2] = {RGB(14, 15, 16), RGB_WHITE}; + + LoadPalette(&colors[1], 0xD1, sizeof(colors[1])); + LoadPalette(&colors[0], 0xD8, sizeof(colors[0])); +} + +static void sub_80A3770(void) +{ + if (sReturnLocation == RETURN_TO_FIELD_0) + { + sPopupMenuActionList = sItemPopupMenuChoicesTable[sCurrentBagPocket]; + if (sCurrentBagPocket != BAG_POCKET_BERRIES) + gUnknown_02038564 = 4; + else + gUnknown_02038564 = 6; + } +} + +static void sub_80A37C0(u8 taskId) +{ + gTasks[taskId].func = sub_80A50C8; + StartVerticalScrollIndicators(0); + StartVerticalScrollIndicators(1); + StartVerticalScrollIndicators(2); + StartVerticalScrollIndicators(3); +} + +static void sub_80A37F8(u8 taskId) +{ + u8 r5 = gUnknown_0203855A; + + if (r5 < 16) + { + gUnknown_0203855A++; + sub_80A396C(gBGTilemapBuffers[2], r5, gUnknown_0203855A, 0x4F); + sub_80A39E4(gBGTilemapBuffers[2], sCurrentBagPocket + 1, gUnknown_0203855A / 2, gTasks[taskId].data[5]); + gUnknown_02038558 = 1; + sub_80A48E8(taskId, r5 / 2, gUnknown_0203855A / 2 - 1); + gUnknown_02038558 = 0; + return; + } + + if (gLinkOpen == TRUE) + { + u32 index = gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos; + + ItemListMenu_ChangeDescription(gCurrentBagPocketItemSlots[index].itemId, gUnknown_02038562); + gUnknown_02038562++; + } + else + { + while (gUnknown_02038562 < 3) + { + u32 index = gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos; + + ItemListMenu_ChangeDescription(gCurrentBagPocketItemSlots[index].itemId, gUnknown_02038562); + gUnknown_02038562++; + } + } + if (gUnknown_02038562 == 3) + { + gUnknown_0203855A = 16; + gUnknown_0203855B = sCurrentBagPocket + 1; + sub_80A37C0(FindTaskIdByFunc(sub_80A4F68)); + DestroyTask(taskId); + ItemListMenu_InitMenu(); + sub_80F979C(2, 0); + sub_80F979C(3, 0); + } +} + +static void sub_80A3954(u16 *a) +{ + CpuCopy16(gUnknown_08E77004, a, 0x800); +} + +static void sub_80A396C(u16 *a, u8 b, u8 c, u8 d) +{ + u16 *dst = a + 14 + (b + 2) * 32; + u16 i; + + while (c > b++) + { + for (i = 0; i < 15; i++) + dst[i] = d; + dst += 32; + } +} + +static void sub_80A39B8(u16 *a, u8 b) +{ + u8 var = b * 2; + + sub_809D104(a, 4, 10, gUnknown_08E96EC8, 0, var, 8, 2); +} + +static void sub_80A39E4(u16 *a, u8 b, u8 c, s8 d) +{ + u16 r2 = b * 2; + u16 r7; + + if (d == -1) + { + r7 = (b + 1) * 2; + if (b == 5) + r7 = 2; + + sub_809D104(a, 4, 10, gUnknown_08E96EC8, 8 - c, r2, c, 2); + sub_809D104(a, c + 4, 10, gUnknown_08E96EC8, 0, r7, 8 - c, 2); + } + else if (d == 1) + { + r7 = (b - 1) * 2; + if (b == 1) + r7 = 10; + + sub_809D104(a, 4, 10, gUnknown_08E96EC8, c, r7, 8 - c, 2); + sub_809D104(a, 12 - c, 10, gUnknown_08E96EC8, 0, r2, c, 2); + } +} + +// Draws dots under the bag sprite, showing which pocket is selected +static void DrawPocketIndicatorDots(u16 *tileMapBuffer, u8 selectedPocket) +{ + u8 i; + + for (i = 0; i < NUM_BAG_POCKETS; i++) + { + if (i == selectedPocket) + tileMapBuffer[0x125 + i] = 0x107D; + else + tileMapBuffer[0x125 + i] = 0x107C; + } +} + +static void ChangePocket(u16 *tileMapBuffer, s8 delta) +{ + u8 taskId; + + sCurrentBagPocket += delta; + // Wrap around + if (sCurrentBagPocket >= NUM_BAG_POCKETS) + sCurrentBagPocket = 0; + if (sCurrentBagPocket < 0) + sCurrentBagPocket = NUM_BAG_POCKETS - 1; + + sub_80A76A0(); + sub_80A7590(); + gCurrentBagPocketItemSlots = gBagPockets[sCurrentBagPocket].itemSlots; + sub_80A3D24(sCurrentBagPocket); + gUnknown_0203855A = 0; + sub_80A3954(tileMapBuffer); + sub_80A396C(tileMapBuffer, 0, 16, 3); + sub_80A39B8(tileMapBuffer, 0); + gUnknown_0203855B = 6; + gUnknown_02038562 = 0; + taskId = FindTaskIdByFunc(sub_80A37F8); + if (taskId == 0xFF) + taskId = CreateTask(sub_80A37F8, 8); + gTasks[taskId].data[5] = delta; +} + +static void SwapItemSlots(struct ItemSlot *a, struct ItemSlot *b) +{ + struct ItemSlot temp = *a; + + *a = *b; + *b = temp; +} + +static void RemoveEmptyItemSlots(struct BagPocket pocket) +{ + u16 i; + u16 j; + + for (i = 0; i < pocket.capacity - 1; i++) + { + for (j = i + 1; j < pocket.capacity; j++) + { + if (pocket.itemSlots[i].quantity == 0) + SwapItemSlots(&pocket.itemSlots[i], &pocket.itemSlots[j]); + } + } +} + +static void SortItemSlots(struct BagPocket pocket) +{ + u16 i; + u16 j; + + for (i = 0; i < pocket.capacity; i++) + { + for (j = i + 1; j < pocket.capacity; j++) + { + if (pocket.itemSlots[i].quantity != 0 && pocket.itemSlots[j].quantity != 0 + && pocket.itemSlots[i].itemId > pocket.itemSlots[j].itemId) + SwapItemSlots(&pocket.itemSlots[i], &pocket.itemSlots[j]); + } + } +} + +static void UpdateBagPocket(u8 pocketNum) +{ + u16 i; + + gBagPocketScrollStates[pocketNum].numSlots = 0; + for (i = 0; i < gBagPockets[pocketNum].capacity; i++) + { + if (gBagPockets[pocketNum].itemSlots[i].quantity != 0) + gBagPocketScrollStates[pocketNum].numSlots++; + } + RemoveEmptyItemSlots(gBagPockets[pocketNum]); +} + +static void UpdateAllBagPockets(void) +{ + u8 i; + + for (i = 0; i < NUM_BAG_POCKETS; i++) + UpdateBagPocket(i); +} + +static void sub_80A3D24(u8 pocketNum) +{ + if (gBagPocketScrollStates[pocketNum].numSlots >= 7) + gBagPocketScrollStates[pocketNum].cursorMax = 7; + else + gBagPocketScrollStates[pocketNum].cursorMax = gBagPocketScrollStates[pocketNum].numSlots; +} + +static void sub_80A3D40(void) +{ + u8 i; + + for (i = 0; i < NUM_BAG_POCKETS; i++) + sub_80A3D24(i); +} + +static void sub_80A3D5C(u8 taskId) +{ + u32 index = gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos; + + gCurrentBagPocketItemSlots[index].quantity -= gTasks[taskId].data[1]; + if (gCurrentBagPocketItemSlots[index].quantity == 0) // item slot will be removed if the quantity is zero + { + // Un-register the item if registered + if (gSaveBlock1.registeredItem == gCurrentBagPocketItemSlots[index].itemId) + { + RemoveSelectIconFromRegisteredItem(); + gSaveBlock1.registeredItem = ITEM_NONE; + } + + gCurrentBagPocketItemSlots[index].itemId = ITEM_NONE; + if (gBagPocketScrollStates[sCurrentBagPocket].scrollTop + 7 == gBagPocketScrollStates[sCurrentBagPocket].numSlots + && gBagPocketScrollStates[sCurrentBagPocket].scrollTop != 0) + gBagPocketScrollStates[sCurrentBagPocket].scrollTop--; + UpdateBagPocket(sCurrentBagPocket); + } + sub_80A3D24(sCurrentBagPocket); +} + +void sub_80A3E0C(void) +{ + u32 index = gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos; + + if (gCurrentBagPocketItemSlots[index].quantity == 0) + { + gCurrentBagPocketItemSlots[index].itemId = 0; + if (gBagPocketScrollStates[sCurrentBagPocket].scrollTop + 7 == gBagPocketScrollStates[sCurrentBagPocket].numSlots + && gBagPocketScrollStates[sCurrentBagPocket].scrollTop != 0) + gBagPocketScrollStates[sCurrentBagPocket].scrollTop--; + UpdateBagPocket(sCurrentBagPocket); + } + sub_80A3D24(sCurrentBagPocket); +} + +static void nullsub_16(void) +{ +} + +static void sub_80A3E70(u8 a, u8 b) +{ + struct ItemSlot temp = gCurrentBagPocketItemSlots[a]; + + gCurrentBagPocketItemSlots[a] = gCurrentBagPocketItemSlots[b]; + gCurrentBagPocketItemSlots[b] = temp; +} + +static void sub_80A3E90(u8 taskId) +{ + PlaySE(SE_SELECT); + nullsub_16(); + sub_80A3E70( + gTasks[taskId].data[10] - 1, + gBagPocketScrollStates[sCurrentBagPocket].cursorPos + gBagPocketScrollStates[sCurrentBagPocket].scrollTop); + gTasks[taskId].data[10] = 0; + sub_80A763C(); + sub_80A7528(0); + ItemListMenu_InitMenu(); +} + +static void sub_80A3EF4(u8 taskId) +{ + u8 r2; + + PlaySE(SE_SELECT); + nullsub_16(); + r2 = gTasks[taskId].data[10] - gBagPocketScrollStates[sCurrentBagPocket].scrollTop - 1; + gTasks[taskId].data[10] = 0; + if (r2 < 8) + sub_80A48E8(taskId, r2, r2); + sub_80A7528(0); +} + +static void sub_80A3F50(u8 taskId) +{ + gTasks[taskId].data[10] = gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos + 1; + sub_80A48E8(taskId, gBagPocketScrollStates[sCurrentBagPocket].cursorPos, gBagPocketScrollStates[sCurrentBagPocket].cursorPos); + sub_80A7528(1); +} + +void sub_80A3FA0(u16 *a, u8 b, u8 c, u8 d, u8 e, u16 f) +{ + s16 i; + s16 j; + + for (i = c; i < c + e; i++) + { + for (j = b; j < b + d; j++) + { + u32 index = j + i * 32; + + a[index] = f; + } + } +} + +static void sub_80A4008(u16 *a, u8 b, u8 c, u8 d, u8 e) +{ + sub_80A3FA0(a, b, c, d, e, 1); +} + +static void DrawSelectIcon(u32 itemPos) +{ + u16 *ptr1 = gBGTilemapBuffers[2] + 0x5A; + + ptr1 += itemPos * 64; + ptr1[0] = 0x5A; + ptr1[1] = 0x5B; + ptr1[2] = 0x5C; + ptr1[32] = 0x6A; + ptr1[33] = 0x6B; + ptr1[34] = 0x6C; +} + +static void MoveSelectIcon(u8 itemPos) +{ + u16 i; + u16 *ptr; + + ptr = gBGTilemapBuffers[2] + 0x5A; + for (i = 0; i < 16; i++) + { + ptr[0] = 0x4F; + ptr[1] = 0x4F; + ptr[2] = 0x4F; + ptr += 32; + } + + ptr = gBGTilemapBuffers[2] + 0x5A + itemPos * 64; + ptr[0] = 0x5A; + ptr[1] = 0x5B; + ptr[2] = 0x5C; + ptr[32] = 0x6A; + ptr[33] = 0x6B; + ptr[34] = 0x6C; +} + +static void EraseSelectIcon(u8 itemPos) +{ + u16 *ptr = gBGTilemapBuffers[2] + 0x5A; + + ptr += itemPos * 64; + ptr[0] = 0x4F; + ptr[1] = 0x4F; + ptr[2] = 0x4F; + ptr[32] = 0x4F; + ptr[33] = 0x4F; + ptr[34] = 0x4F; +} + +static void RemoveSelectIconFromRegisteredItem(void) +{ + u8 i; + + for (i = 0; i < 8; i++) + { + if (gBagPocketScrollStates[sCurrentBagPocket].scrollTop + i == gBagPocketScrollStates[sCurrentBagPocket].numSlots) + break; + if (gCurrentBagPocketItemSlots[gBagPocketScrollStates[sCurrentBagPocket].scrollTop + i].itemId == gSaveBlock1.registeredItem) + { + EraseSelectIcon(i); + break; + } + } +} + +static void AddSelectIconToRegisteredItem(void) +{ + RemoveSelectIconFromRegisteredItem(); + MoveSelectIcon(gBagPocketScrollStates[sCurrentBagPocket].cursorPos); +} + +void sub_80A4164(u8 *dest, u16 value, enum StringConvertMode mode, u8 digits) +{ + *dest++ = CHAR_MULT_SIGN; + dest[0] = EXT_CTRL_CODE_BEGIN; + dest[1] = 0x14; + dest[2] = 6; + dest += 3; + ConvertIntToDecimalStringN(dest, value, mode, digits); +} + +void sub_80A418C(u16 value, enum StringConvertMode mode, u8 c, u8 d, u8 digits) +{ + sub_80A4164(gStringVar1, value, mode, digits); + MenuPrint(gStringVar1, c, d); +} + +static void sub_80A41D4(u8 taskId) +{ + sub_80A763C(); +} + +static void sub_80A41E0(u8 *a, u16 b, const u8 *c, u16 d, u8 e) +{ + a[0] = EXT_CTRL_CODE_BEGIN; + a[1] = 0x13; + a[2] = 8; + a += 3; + a = ConvertIntToDecimalStringN(a, b, STR_CONV_MODE_LEADING_ZEROS, 2); + a[0] = EXT_CTRL_CODE_BEGIN; + a[1] = 0x13; + a[2] = 0x18; + a += 3; + a = sub_8072C74(a, c, 0x78 - (e + 1) * 6, 0); + *a++ = CHAR_MULT_SIGN; + sub_8072C14(a, d, 0x78, 1); +} + +static u8 *sub_80A425C(u8 taskId, u8 *text, u8 c) +{ + if (gTasks[taskId].data[10] - gBagPocketScrollStates[sCurrentBagPocket].scrollTop - 1 == c) + { + text[0] = EXT_CTRL_CODE_BEGIN; + text[1] = 1; + text[2] = 2; + text += 3; + } + return text; +} + +static bool8 sub_80A42B0(u8 itemPos, int b) +{ + u8 r5; + u16 *ptr; + struct UnknownStruct3 *r8 = &gUnknown_02038540; + + if (gBagPocketScrollStates[sCurrentBagPocket].scrollTop + itemPos > gBagPocketScrollStates[sCurrentBagPocket].numSlots) + return TRUE; + if (gBagPocketScrollStates[sCurrentBagPocket].scrollTop + itemPos == gBagPocketScrollStates[sCurrentBagPocket].numSlots) + { + if (sReturnLocation == RETURN_TO_FIELD_5) + return TRUE; + r5 = itemPos * 2 + 2; + sub_8072C74(gStringVar1, gOtherText_CloseBag, 0x78, 0); + MenuPrint(gStringVar1, 14, r5); + ptr = gBGTilemapBuffers[2] + 14 + r5 * 32; + ptr[0] = 0x4F; + ptr[1] = 0x4F; + ptr[32] = 0x4F; + ptr[33] = 0x4F; + if (itemPos == 7) + return TRUE; + if ((b == 1 && r8->unk2 != 0) || b == 2) + MenuFillWindowRectWithBlankTile(14, r5 + 2, 29, 13); + else + MenuFillWindowRectWithBlankTile(14, r5 + 2, 29, 17); + return TRUE; + } + return FALSE; +} + +static void sub_80A4380(u16 a, int b, int c, int d) +{ + u8 i; + + for (i = b; i <= c; i++) + { + u8 r4; + u8 r5; + u8 *text; + + if (sub_80A42B0(i, d) == TRUE) + break; + r4 = gBagPocketScrollStates[sCurrentBagPocket].scrollTop + i; + r5 = i * 2 + 2; + text = gStringVar1; + text = sub_80A425C(a, text, i); + text = sub_8072C74(text, ItemId_GetItem(gCurrentBagPocketItemSlots[r4].itemId)->name, 0x66, 0); + *text++ = CHAR_MULT_SIGN; + sub_8072C14(text, gCurrentBagPocketItemSlots[r4].quantity, 0x78, 1); + MenuPrint(gStringVar1, 14, r5); + } +} + +static void sub_80A444C(u16 a, int b, int c, int d) +{ + u8 i; + + for (i = b; i <= c; i++) + { + u8 r4; + u8 r5; + u8 *text; + + if (sub_80A42B0(i, d) == TRUE) + break; + r4 = gBagPocketScrollStates[sCurrentBagPocket].scrollTop + i; + r5 = i * 2 + 2; + text = gStringVar1; + text = sub_80A425C(a, text, i); +#if ENGLISH + sub_8072C74(text, ItemId_GetItem(gCurrentBagPocketItemSlots[r4].itemId)->name, 0x60, 0); +#else + sub_8072C74(text, ItemId_GetItem(gCurrentBagPocketItemSlots[r4].itemId)->name, 0x63, 0); +#endif + MenuPrint(gStringVar1, 14, r5); + if (gUnknown_02038558 != 0) + { + if (gCurrentBagPocketItemSlots[r4].itemId == gSaveBlock1.registeredItem) + DrawSelectIcon(i); + } + else + { + if (gCurrentBagPocketItemSlots[r4].itemId == gSaveBlock1.registeredItem) + MoveSelectIcon(i); + else + EraseSelectIcon(i); + } + } +} + +// more gBGTilemapBuffers shenanigans +#ifdef NONMATCHING +static void sub_80A4548(u16 a, int b, int c, int d) +{ + u8 i; + + for (i = b; i <= c; i++) + { + u8 r4; + u8 sp10; + u32 r5; + u8 *text; + + if (sub_80A42B0(i, d) == TRUE) + break; + r4 = gBagPocketScrollStates[sCurrentBagPocket].scrollTop + i; + sp10 = i * 2 + 2; + r5 = sp10 * 32 + 14; + text = gStringVar1; + text = sub_80A425C(a, text, i); + if (gCurrentBagPocketItemSlots[r4].itemId < 0x153) + { + const u8 *r2; + + gBGTilemapBuffers[2][r5 + 0] = 0x59; + gBGTilemapBuffers[2][r5 + 1] = 0x4F; + gBGTilemapBuffers[2][r5 + 32] = 0x69; + gBGTilemapBuffers[2][r5 + 33] = 0x4F; + r2 = gMoveNames[ItemIdToBattleMoveId(gCurrentBagPocketItemSlots[r4].itemId)]; + sub_80A41E0(text, gCurrentBagPocketItemSlots[r4].itemId - 288, r2, gCurrentBagPocketItemSlots[r4].quantity, 2); + } + else + { + const u8 *moveName; + + gBGTilemapBuffers[2][r5 + 0] = 0x105D; + gBGTilemapBuffers[2][r5 + 1] = 0x105E; + gBGTilemapBuffers[2][r5 + 32] = 0x106D; + gBGTilemapBuffers[2][r5 + 33] = 0x106E; + text[0] = EXT_CTRL_CODE_BEGIN; + text[1] = 0x13; + text[2] = 0x11; + text += 3; + text = ConvertIntToDecimalString(text, gCurrentBagPocketItemSlots[r4].itemId); + text[0] = EXT_CTRL_CODE_BEGIN; + text[1] = 0x13; + text[2] = 0x18; + text += 3; + moveName = gMoveNames[ItemIdToBattleMoveId(gCurrentBagPocketItemSlots[r4].itemId)]; + sub_8072C74(text, moveName, 0x78, 0); + } + MenuPrint(gStringVar1, 14, sp10); + } +} +#else +__attribute__((naked)) +static void sub_80A4548(u16 a, int b, int c, int d) +{ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x14\n\ + str r2, [sp, 0x8]\n\ + str r3, [sp, 0xC]\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + str r0, [sp, 0x4]\n\ + lsls r1, 24\n\ + lsrs r1, 24\n\ + mov r8, r1\n\ + ldr r0, _080A456C @ =gBGTilemapBuffers + 0x1000\n\ + mov r9, r0\n\ + b _080A46C2\n\ + .align 2, 0\n\ +_080A456C: .4byte gBGTilemapBuffers + 0x1000\n\ +_080A4570:\n\ + ldr r1, _080A461C @ =gBagPocketScrollStates\n\ + ldr r0, _080A4620 @ =sCurrentBagPocket\n\ + ldrb r0, [r0]\n\ + lsls r0, 24\n\ + asrs r0, 24\n\ + lsls r0, 2\n\ + adds r0, r1\n\ + ldrb r4, [r0, 0x1]\n\ + add r4, r8\n\ + lsls r4, 24\n\ + lsrs r4, 24\n\ + mov r1, r8\n\ + lsls r0, r1, 25\n\ + movs r3, 0x80\n\ + lsls r3, 18\n\ + adds r0, r3\n\ + lsrs r0, 24\n\ + str r0, [sp, 0x10]\n\ + lsls r0, 5\n\ + adds r0, 0xE\n\ + adds r5, r0, 0\n\ + ldr r6, _080A4624 @ =gStringVar1\n\ + ldr r1, [sp, 0x4]\n\ + lsls r0, r1, 24\n\ + lsrs r0, 24\n\ + adds r1, r6, 0\n\ + mov r2, r8\n\ + bl sub_80A425C\n\ + adds r6, r0, 0\n\ + ldr r3, _080A4628 @ =gCurrentBagPocketItemSlots\n\ + mov r10, r3\n\ + ldr r0, [r3]\n\ + lsls r7, r4, 2\n\ + adds r3, r7, r0\n\ + ldrh r1, [r3]\n\ + movs r0, 0xA9\n\ + lsls r0, 1\n\ + cmp r1, r0\n\ + bhi _080A4634\n\ + lsls r0, r5, 1\n\ + add r0, r9\n\ + movs r1, 0x59\n\ + strh r1, [r0]\n\ + adds r0, r5, 0x1\n\ + lsls r0, 1\n\ + add r0, r9\n\ + movs r2, 0x4F\n\ + strh r2, [r0]\n\ + adds r0, r5, 0\n\ + adds r0, 0x20\n\ + lsls r0, 1\n\ + add r0, r9\n\ + movs r1, 0x69\n\ + strh r1, [r0]\n\ + adds r0, r5, 0\n\ + adds r0, 0x21\n\ + lsls r0, 1\n\ + add r0, r9\n\ + strh r2, [r0]\n\ + ldrh r0, [r3]\n\ + bl ItemIdToBattleMoveId\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + movs r1, 0xD\n\ + adds r2, r0, 0\n\ + muls r2, r1\n\ + ldr r0, _080A462C @ =gMoveNames\n\ + adds r2, r0\n\ + mov r1, r10\n\ + ldr r0, [r1]\n\ + adds r0, r7, r0\n\ + ldr r3, _080A4630 @ =0xfffffee0\n\ + adds r1, r3, 0\n\ + ldrh r3, [r0]\n\ + adds r1, r3\n\ + lsls r1, 16\n\ + lsrs r1, 16\n\ + ldrh r3, [r0, 0x2]\n\ + movs r0, 0x2\n\ + str r0, [sp]\n\ + adds r0, r6, 0\n\ + bl sub_80A41E0\n\ + b _080A46AE\n\ + .align 2, 0\n\ +_080A461C: .4byte gBagPocketScrollStates\n\ +_080A4620: .4byte sCurrentBagPocket\n\ +_080A4624: .4byte gStringVar1\n\ +_080A4628: .4byte gCurrentBagPocketItemSlots\n\ +_080A462C: .4byte gMoveNames\n\ +_080A4630: .4byte 0xfffffee0\n\ +_080A4634:\n\ + lsls r0, r5, 1\n\ + add r0, r9\n\ + ldr r1, _080A46EC @ =0x0000105d\n\ + strh r1, [r0]\n\ + adds r0, r5, 0x1\n\ + lsls r0, 1\n\ + add r0, r9\n\ + adds r1, 0x1\n\ + strh r1, [r0]\n\ + adds r0, r5, 0\n\ + adds r0, 0x20\n\ + lsls r0, 1\n\ + add r0, r9\n\ + adds r1, 0xF\n\ + strh r1, [r0]\n\ + adds r0, r5, 0\n\ + adds r0, 0x21\n\ + lsls r0, 1\n\ + add r0, r9\n\ + adds r1, 0x1\n\ + strh r1, [r0]\n\ + movs r0, 0xFC\n\ + strb r0, [r6]\n\ + movs r4, 0x13\n\ + strb r4, [r6, 0x1]\n\ + movs r0, 0x11\n\ + strb r0, [r6, 0x2]\n\ + adds r6, 0x3\n\ + mov r1, r10\n\ + ldr r0, [r1]\n\ + adds r0, r7, r0\n\ + ldrh r1, [r0]\n\ + ldr r3, _080A46F0 @ =0xfffffeae\n\ + adds r1, r3\n\ + adds r0, r6, 0\n\ + bl ConvertIntToDecimalString\n\ + adds r6, r0, 0\n\ + movs r0, 0xFC\n\ + strb r0, [r6]\n\ + strb r4, [r6, 0x1]\n\ + movs r0, 0x18\n\ + strb r0, [r6, 0x2]\n\ + adds r6, 0x3\n\ + mov r1, r10\n\ + ldr r0, [r1]\n\ + adds r0, r7, r0\n\ + ldrh r0, [r0]\n\ + bl ItemIdToBattleMoveId\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + movs r1, 0xD\n\ + muls r1, r0\n\ + ldr r0, _080A46F4 @ =gMoveNames\n\ + adds r1, r0\n\ + adds r0, r6, 0\n\ + movs r2, 0x78\n\ + movs r3, 0\n\ + bl sub_8072C74\n\ +_080A46AE:\n\ + ldr r0, _080A46F8 @ =gStringVar1\n\ + movs r1, 0xE\n\ + ldr r2, [sp, 0x10]\n\ + bl MenuPrint\n\ + mov r0, r8\n\ + adds r0, 0x1\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + mov r8, r0\n\ +_080A46C2:\n\ + ldr r3, [sp, 0x8]\n\ + cmp r8, r3\n\ + bgt _080A46DA\n\ + mov r0, r8\n\ + ldr r1, [sp, 0xC]\n\ + bl sub_80A42B0\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + cmp r0, 0x1\n\ + beq _080A46DA\n\ + b _080A4570\n\ +_080A46DA:\n\ + add sp, 0x14\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ +_080A46EC: .4byte 0x0000105d\n\ +_080A46F0: .4byte 0xfffffeae\n\ +_080A46F4: .4byte gMoveNames\n\ +_080A46F8: .4byte gStringVar1\n\ + .syntax divided\n"); +} +#endif + +static void sub_80A46FC(u16 a, int b, int c, int d) +{ + u8 i; + + for (i = b; i <= c; i++) + { + u8 r4; + u8 r5; + u8 *text; + register int var asm("r0"); + + if (sub_80A42B0(i, d) == TRUE) + break; + r4 = gBagPocketScrollStates[sCurrentBagPocket].scrollTop + i; + r5 = i * 2 + 2; + + var = 14 + r5 * 32; + gBGTilemapBuffers[2][var] = 0x59; + var += 32; + gBGTilemapBuffers[2][var] = 0x69; + + text = gStringVar1; + text = sub_80A425C(a, text, i); + CopyItemName(gCurrentBagPocketItemSlots[r4].itemId, gStringVar2); + sub_80A41E0(text, gCurrentBagPocketItemSlots[r4].itemId - 0x84, gStringVar2, gCurrentBagPocketItemSlots[r4].quantity, 3); + MenuPrint(gStringVar1, 14, r5); + } +} + +static void sub_80A47E8(u16 a, int b, int c, int d) +{ + switch (sCurrentBagPocket) + { + case BAG_POCKET_ITEMS: + case BAG_POCKET_POKE_BALLS: + sub_80A4380(a, b, c, d); + break; + case BAG_POCKET_KEY_ITEMS: + sub_80A444C(a, b, c, d); + break; + case BAG_POCKET_TMs_HMs: + sub_80A4548(a, b, c, d); + break; + case BAG_POCKET_BERRIES: + sub_80A46FC(a, b, c, d); + break; + } + if (gBagPocketScrollStates[sCurrentBagPocket].scrollTop != 0) + sub_80F979C(0, 0); + else + sub_80F979C(0, 1); + if ((sReturnLocation != RETURN_TO_FIELD_5 && gBagPocketScrollStates[sCurrentBagPocket].scrollTop + 8 < gBagPocketScrollStates[sCurrentBagPocket].numSlots + 1) + || (sReturnLocation == RETURN_TO_FIELD_5 && gBagPocketScrollStates[sCurrentBagPocket].scrollTop + 8 < gBagPocketScrollStates[sCurrentBagPocket].numSlots)) + sub_80F979C(1, 0); + else + sub_80F979C(1, 1); +} + +static void sub_80A48E8(u16 taskId, int b, int c) +{ + sub_80A47E8(taskId, b, c, 0); +} + +static void sub_80A48F8(u16 taskId) +{ + sub_80A47E8(taskId, 0, 5, 2); +} + +static void ItemListMenu_InitDescription(s16 itemId) +{ + u8 r5; + + if (gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos == gBagPocketScrollStates[sCurrentBagPocket].numSlots) + { + r5 = sub_8072A18(gOtherText_ReturnTo, 4, 0x68, 0x68, 1); + r5 += sub_8072A18(gUnknown_0840E740[sReturnLocation], 4, 0x78, 0x68, 1); + } + else + { + r5 = sub_8072A18(ItemId_GetDescription(itemId), 4, 0x68, 0x68, 1); + } + + if (r5 < 3) + MenuZeroFillWindowRect(0, 13 + r5 * 2, 13, 20); +} + +static void ItemListMenu_ChangeDescription(s16 itemId, int b) +{ + u8 description[100]; + + if (gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos == gBagPocketScrollStates[sCurrentBagPocket].numSlots) + { + if (b == 0) + { + MenuZeroFillWindowRect(0, 13, 13, 20); + MenuPrint_PixelCoords(gOtherText_ReturnTo, 4, 0x68, 0); + } + else if (b == 1) + { + MenuPrint_PixelCoords(gUnknown_0840E740[sReturnLocation], 4, 0x78, 0); + } + } + else + { + if (b == 0) + MenuZeroFillWindowRect(0, 13, 13, 20); + if (ItemId_CopyDescription(description, itemId, b)) + MenuPrint_PixelCoords(description, 4, 104 + b * 16, 0); + } +} + +static bool32 CopyTextLine(u8 *destination, const u8 *source, u32 c) +{ + u32 r4 = c + 1; + const u8 *src = source; + u8 *dst = destination; + + while (1) + { + if (*src == CHAR_NEWLINE || *src == EOS) + { + r4--; + if (r4 == 0) + { + *dst = EOS; + return TRUE; + } + if (*src == EOS) + return FALSE; + // got a new line - reset dst pointer + dst = destination; + src++; + } + else + { + *dst++ = *src++; + } + } +} + +static void sub_80A4A98(const u8 *text, u32 line) +{ + u8 buffer[100]; + + if (line == 0) + MenuZeroFillWindowRect(0, 13, 13, 20); + if (CopyTextLine(buffer, text, line)) + MenuPrint_PixelCoords(buffer, 4, 104 + line * 16, 0); +} + +static void sub_80A4ADC(u8 taskId) +{ + if (gTasks[taskId].data[10] == 0) + sub_80A7528(0); + PlaySE(SE_SELECT); + gUnknown_0203855C = 1; +} + +static void sub_80A4B14(s8 a, u8 b) +{ + gBagPocketScrollStates[sCurrentBagPocket].scrollTop += a; + MoveMenuCursor(0); + sub_80A73C0(); + sub_80A763C(); + sub_80A4ADC(b); +} + +static void sub_80A4B58(s8 delta, u8 b) +{ + gBagPocketScrollStates[sCurrentBagPocket].cursorPos = MoveMenuCursor(delta); + sub_80A73C0(); + sub_80A4ADC(b); +} + +static const u8 *sub_80A4B90(u16 itemId) +{ + if (TestPlayerAvatarFlags(6)) + { + if (itemId == ITEM_MACH_BIKE || itemId == ITEM_ACRO_BIKE) + return gOtherText_Walk; + } + if (ItemIsMail(itemId) == TRUE) + return gOtherText_Check; + return sItemPopupMenuActions[sPopupMenuActionList[0]].text; +} + +static void sub_80A4BF0(u16 *a) +{ + u8 i; + + if (gUnknown_02038564 == 4) + { + MenuDrawTextWindow(0, 7, 13, 12); + sub_80A4008(a, 1, 8, 12, 4); + if (sub_80F9344() == TRUE && sReturnLocation == RETURN_TO_FIELD_5) + { + sub_80A7834(1, 0); + } + else + { + for (i = 0; i < gUnknown_02038564; i++) + { + const u8 *text; + + if (i == 0) + text = sub_80A4B90(gScriptItemId); + else + text = sItemPopupMenuActions[sPopupMenuActionList[i]].text; + MenuPrint(text, 1 + (i / 2) * 6, 8 + (i % 2) * 2); + } + } + if (sReturnLocation == RETURN_TO_FIELD_5) + InitMenu(0, 1, 8, gUnknown_02038564, sPopupMenuSelection, 1); + else + InitMenu(0, 1, 8, gUnknown_02038564, 0, 1); + sub_8072DCC(0x2F); + } + else + { + MenuDrawTextWindow(0, 5, 13, 12); + sub_80A4008(a, 1, 6, 12, 6); + for (i = 0; i < gUnknown_02038564; i++) + MenuPrint(sItemPopupMenuActions[sPopupMenuActionList[i]].text, 1 + (i / 3) * 6, 6 + (i % 3) * 2); + InitMenu(0, 1, 6, gUnknown_02038564, 0, 1); + sub_8072DCC(0x2F); + } + sub_80A7528(2); +} + +static void sub_80A4DA4(u16 *a) +{ + sub_80A73FC(); + sub_80A36B8(a, 0, 6, 13, 6); + MenuZeroFillWindowRect(0, 5, 13, 12); + sub_80A7590(); +} + +static void sub_80A4DD8(u8 taskId, u8 b, u8 c, u8 d, u8 e, u8 digits) +{ + gTasks[taskId].data[1] = 1; + gTasks[taskId].data[2] = b + 2; + gTasks[taskId].data[3] = c + 1; + MenuDrawTextWindow(b, c, b + d, c + e); + sub_80A4008(gBGTilemapBuffers[1], b + 1, c + 1, d - 1, e - 1); + sub_80A418C(1, 1, b + 2, c + 1, digits); +} + +static void sub_80A4E8C(s8 delta, u8 b) +{ + PlaySE(SE_SELECT); + sub_80F979C(0, 1); + sub_80F979C(1, 1); + sub_80F979C(2, 1); + sub_80F979C(3, 1); + PauseVerticalScrollIndicator(0); + PauseVerticalScrollIndicator(1); + PauseVerticalScrollIndicator(2); + PauseVerticalScrollIndicator(3); + ChangePocket(gBGTilemapBuffers[2], delta); + DrawPocketIndicatorDots(gBGTilemapBuffers[2], sCurrentBagPocket); + sub_80A3770(); + sub_80A7C64(); + CreateBagPokeballSprite(b); +} + +static bool8 sub_80A4F0C(void) +{ + if (sReturnLocation == RETURN_TO_FIELD_5 || sReturnLocation == RETURN_TO_FIELD_4) + return FALSE; + if (gMain.newKeys == DPAD_RIGHT || sub_80F9284() == 2) + { + sub_80A4E8C(1, 2); + return TRUE; + } + if (gMain.newKeys == DPAD_LEFT || sub_80F9284() == 1) + { + sub_80A4E8C(-1, 1); + return TRUE; + } + return FALSE; +} + +static void sub_80A4F68(u8 taskId) +{ + sub_80A4F0C(); +} + +static bool8 sub_80A4F74(u8 a) +{ + bool8 retVal = FALSE; + + if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_UP) + { + if (gBagPocketScrollStates[sCurrentBagPocket].cursorPos != 0) + sub_80A4B58(-1, a); + else if (gBagPocketScrollStates[sCurrentBagPocket].scrollTop != 0) + sub_80A4B14(-1, a); + if (gLinkOpen == TRUE && gMain.keyRepeatCounter == 5) + gMain.keyRepeatCounter = 11; + retVal = TRUE; + } + else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_DOWN) + { + if (sReturnLocation != RETURN_TO_FIELD_5) + { + if (gBagPocketScrollStates[sCurrentBagPocket].cursorPos == gBagPocketScrollStates[sCurrentBagPocket].cursorMax) + { + if (gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos != gBagPocketScrollStates[sCurrentBagPocket].numSlots) + sub_80A4B14(1, a); + } + else + { + sub_80A4B58(1, a); + } + } + else + { + if (gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos != gBagPocketScrollStates[sCurrentBagPocket].numSlots - 1) + { + if (gBagPocketScrollStates[sCurrentBagPocket].cursorPos != gBagPocketScrollStates[sCurrentBagPocket].cursorMax) + sub_80A4B58(1, a); + else + sub_80A4B14(1, a); + } + } + retVal = TRUE; + if (gLinkOpen == TRUE && gMain.keyRepeatCounter == 5) + gMain.keyRepeatCounter = 11; + } + else + { + if (gTasks[a].data[10] == 0 && sub_80A4F0C() == TRUE) + { + sub_80A73F0(); + gTasks[a].func = sub_80A4F68; + retVal = TRUE; + } + else + { + sub_80A73C0(); + } + } + return retVal; +} + +static void sub_80A50C8(u8 taskId) +{ + s16 *r5 = gTasks[taskId].data; + + if (!gPaletteFade.active) + { + if (sub_80A4F74(taskId) == TRUE) + { + sub_808B5B4(taskId); + return; + } + + if ((gMain.newKeys & SELECT_BUTTON) + && !(sCurrentBagPocket == BAG_POCKET_BERRIES || sCurrentBagPocket == BAG_POCKET_TMs_HMs) + && (sReturnLocation == RETURN_TO_FIELD_0 || sReturnLocation == RETURN_TO_BATTLE)) + { + if (r5[10] == 0) + { + if (gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos != gBagPocketScrollStates[sCurrentBagPocket].numSlots) + { + PlaySE(SE_SELECT); + sub_80A3F50(taskId); + } + sub_808B5B4(taskId); + } + else + { + if (gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos != gBagPocketScrollStates[sCurrentBagPocket].numSlots) + { + PlaySE(SE_SELECT); + sub_80A3E90(taskId); + } + else + { + sub_80A3EF4(taskId); + } + sub_808B5B4(taskId); + } + return; + } + + if (gMain.newKeys & A_BUTTON) + { + if (gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos == gBagPocketScrollStates[sCurrentBagPocket].numSlots) + { + if (r5[10] == 0) + { + gScriptItemId = 0; + gUnknown_083C16BC[sReturnLocation].onBagClose(taskId); + } + else + { + sub_80A3EF4(taskId); + } + sub_808B5B4(taskId); + } + else + { + if (r5[10] == 0) + { + PlaySE(SE_SELECT); + gUnknown_02038560 = gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos; + gScriptItemId = gCurrentBagPocketItemSlots[gUnknown_02038560].itemId; + gUnknown_083C16BC[sReturnLocation].onItemSelect(taskId); + sub_80F98A4(0); + sub_80F98A4(1); + sub_80F98A4(2); + sub_80F98A4(3); + sub_80A797C(); + } + else + { + sub_80A3E90(taskId); + } + sub_808B5B4(taskId); + } + return; + } + + if (gMain.newKeys & B_BUTTON) + { + if (r5[10] == 0) + { + if (sReturnLocation != RETURN_TO_FIELD_5) + { + gScriptItemId = 0; + gUnknown_083C16BC[sReturnLocation].onBagClose(taskId); + } + } + else + { + sub_80A3EF4(taskId); + } + sub_808B5B4(taskId); + return; + } + } +} + +bool8 sub_80A52C4(u8 taskId, u16 b) +{ + s16 *taskData = gTasks[taskId].data; + + if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_UP) + { + if (taskData[1] != b) + taskData[1]++; + else + taskData[1] = 1; + return TRUE; + } + + if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_DOWN) + { + if (taskData[1] != 1) + taskData[1]--; + else + taskData[1] = b; + return TRUE; + } + + if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_RIGHT) + { + if (taskData[1] + 10 < b) + taskData[1] += 10; + else + taskData[1] = b; + return TRUE; + } + + if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_LEFT) + { + if (taskData[1] > 10) + taskData[1] -= 10; + else + taskData[1] = 1; + return TRUE; + } + + return FALSE; +} + +static bool8 sub_80A5350(u8 taskId) +{ + s16 *taskData = gTasks[taskId].data; + + if (sub_80A52C4(taskId, gCurrentBagPocketItemSlots[gUnknown_02038560].quantity) == TRUE) + { + // if (sCurrentBagPocket == BAG_POCKET_BERRIES) Can't get it to match this way + if (sCurrentBagPocket + 1 == BAG_POCKET_BERRIES + 1) + sub_80A418C(taskData[1], 1, taskData[2], taskData[3], 3); + else + sub_80A418C(taskData[1], 1, taskData[2], taskData[3], 2); + return TRUE; + } + return FALSE; +} + +static void sub_80A53CC(void) +{ + if (sub_80A34B4() == TRUE) + { + sub_80A3770(); + gUnknown_02038563 = CreateTask(sub_80A50C8, 0); + } +} + +void sub_80A53F8(void) +{ + sReturnLocation = RETURN_TO_FIELD_0; + SetMainCallback2(sub_80A53CC); +} + +#ifdef NONMATCHING +static void sub_80A5414(u8 taskId) +{ + TaskFunc r5 = NULL; + + if (sub_80A78A0() != 0) + { + if ((gMain.newAndRepeatedKeys & DPAD_ANY) == 0x40) + { + if ((sPopupMenuSelection & 1) && sPopupMenuActionList[sPopupMenuSelection - 1] == 8) + { + PlaySE(SE_SELECT); + sPopupMenuSelection = MoveMenuCursor3(-1); + } + } + //_080A546C + else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == 0x80) + { + if (!(sPopupMenuSelection & 1) && sPopupMenuActionList[sPopupMenuSelection + 1] != 8) + { + PlaySE(SE_SELECT); + sPopupMenuSelection = MoveMenuCursor3(1); + } + } + //_080A549C + else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == 0x20) + { + if (sPopupMenuSelection > 1 && sPopupMenuActionList[sPopupMenuSelection - 2] != 8) + { + PlaySE(SE_SELECT); + sPopupMenuSelection = MoveMenuCursor3(-2); + } + } + //_080A54CC + else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == 0x10) + { + if (sPopupMenuSelection <= 1 && sPopupMenuActionList[sPopupMenuSelection + 2] != 8) + { + PlaySE(SE_SELECT); + sPopupMenuSelection = MoveMenuCursor3(2); + } + } + //_080A5500 + else if (!(gMain.newKeys & A_BUTTON)) + { + if (gMain.newKeys & B_BUTTON) + { + gTasks[taskId].data[10] = 0; + sub_80A48E8(taskId, gBagPocketScrollStates[sCurrentBagPocket].cursorPos, gBagPocketScrollStates[sCurrentBagPocket].cursorPos); + sub_80A4DA4(gBGTilemapBuffers[1]); + r5 = sItemPopupMenuActions[sPopupMenuActionList[3]].func; + r5(taskId); + } + } + else + { + //_080A5590 + gTasks[taskId].data[10] = 0; + sub_80A4DA4(gBGTilemapBuffers[1]); + r5 = sItemPopupMenuActions[sPopupMenuActionList[sPopupMenuSelection]].func; + r5(taskId); + } + } + //_080A5552 + if (r5 == NULL) + { + if (sReturnLocation == RETURN_TO_FIELD_5) + { + if (sPopupMenuSelection == 0) + { + sub_8072DDC(12); + return; + } + //_080A55D4 + //else + //{ + if (sPopupMenuSelection == 0 || sPopupMenuSelection == 1) + sub_8072DCC(0x2F); + else + sub_8072DCC(0x30); + //} + } + //_080A55E0 + else + { + if (sPopupMenuSelection == 0 || sPopupMenuSelection == 1) + sub_8072DCC(0x2F); + else + sub_8072DCC(0x30); + } + } +} +#else +__attribute__((naked)) +static void sub_80A5414(u8 taskId) +{ + asm(".syntax unified\n\ + push {r4,r5,lr}\n\ + lsls r0, 24\n\ + lsrs r4, r0, 24\n\ + movs r5, 0\n\ + bl sub_80A78A0\n\ + cmp r0, 0\n\ + bne _080A5426\n\ + b _080A5552\n\ +_080A5426:\n\ + ldr r2, _080A5460 @ =gMain\n\ + ldrh r0, [r2, 0x30]\n\ + movs r1, 0xF0\n\ + ands r1, r0\n\ + cmp r1, 0x40\n\ + bne _080A546C\n\ + ldr r4, _080A5464 @ =sPopupMenuSelection\n\ + ldrb r1, [r4]\n\ + movs r0, 0x1\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _080A5440\n\ + b _080A5552\n\ +_080A5440:\n\ + ldrb r1, [r4]\n\ + ldr r0, _080A5468 @ =sPopupMenuActionList\n\ + ldr r0, [r0]\n\ + adds r1, r0\n\ + subs r1, 0x1\n\ + ldrb r0, [r1]\n\ + cmp r0, 0x8\n\ + bne _080A5452\n\ + b _080A5552\n\ +_080A5452:\n\ + movs r0, 0x5\n\ + bl PlaySE\n\ + movs r0, 0x1\n\ + negs r0, r0\n\ + b _080A54EE\n\ + .align 2, 0\n\ +_080A5460: .4byte gMain\n\ +_080A5464: .4byte sPopupMenuSelection\n\ +_080A5468: .4byte sPopupMenuActionList\n\ +_080A546C:\n\ + cmp r1, 0x80\n\ + bne _080A549C\n\ + ldr r4, _080A5494 @ =sPopupMenuSelection\n\ + ldrb r1, [r4]\n\ + movs r0, 0x1\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _080A5552\n\ + ldrb r1, [r4]\n\ + ldr r0, _080A5498 @ =sPopupMenuActionList\n\ + ldr r0, [r0]\n\ + adds r1, r0\n\ + ldrb r0, [r1, 0x1]\n\ + cmp r0, 0x8\n\ + beq _080A5552\n\ + movs r0, 0x5\n\ + bl PlaySE\n\ + movs r0, 0x1\n\ + b _080A54EE\n\ + .align 2, 0\n\ +_080A5494: .4byte sPopupMenuSelection\n\ +_080A5498: .4byte sPopupMenuActionList\n\ +_080A549C:\n\ + cmp r1, 0x20\n\ + bne _080A54CC\n\ + ldr r4, _080A54C4 @ =sPopupMenuSelection\n\ + ldrb r0, [r4]\n\ + cmp r0, 0x1\n\ + bls _080A5552\n\ + adds r1, r0, 0\n\ + ldr r0, _080A54C8 @ =sPopupMenuActionList\n\ + ldr r0, [r0]\n\ + adds r1, r0\n\ + subs r1, 0x2\n\ + ldrb r0, [r1]\n\ + cmp r0, 0x8\n\ + beq _080A5552\n\ + movs r0, 0x5\n\ + bl PlaySE\n\ + movs r0, 0x2\n\ + negs r0, r0\n\ + b _080A54EE\n\ + .align 2, 0\n\ +_080A54C4: .4byte sPopupMenuSelection\n\ +_080A54C8: .4byte sPopupMenuActionList\n\ +_080A54CC:\n\ + cmp r1, 0x10\n\ + bne _080A5500\n\ + ldr r4, _080A54F8 @ =sPopupMenuSelection\n\ + ldrb r0, [r4]\n\ + cmp r0, 0x1\n\ + bhi _080A5552\n\ + adds r1, r0, 0\n\ + ldr r0, _080A54FC @ =sPopupMenuActionList\n\ + ldr r0, [r0]\n\ + adds r1, r0\n\ + ldrb r0, [r1, 0x2]\n\ + cmp r0, 0x8\n\ + beq _080A5552\n\ + movs r0, 0x5\n\ + bl PlaySE\n\ + movs r0, 0x2\n\ +_080A54EE:\n\ + bl MoveMenuCursor3\n\ + strb r0, [r4]\n\ + b _080A5552\n\ + .align 2, 0\n\ +_080A54F8: .4byte sPopupMenuSelection\n\ +_080A54FC: .4byte sPopupMenuActionList\n\ +_080A5500:\n\ + ldrh r1, [r2, 0x2E]\n\ + movs r0, 0x1\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _080A5590\n\ + movs r0, 0x2\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _080A5552\n\ + ldr r1, _080A5570 @ =gTasks\n\ + lsls r0, r4, 2\n\ + adds r0, r4\n\ + lsls r0, 3\n\ + adds r0, r1\n\ + strh r5, [r0, 0x1C]\n\ + ldr r1, _080A5574 @ =gBagPocketScrollStates\n\ + ldr r0, _080A5578 @ =sCurrentBagPocket\n\ + ldrb r0, [r0]\n\ + lsls r0, 24\n\ + asrs r0, 24\n\ + lsls r0, 2\n\ + adds r0, r1\n\ + ldrb r2, [r0]\n\ + adds r0, r4, 0\n\ + adds r1, r2, 0\n\ + bl sub_80A48E8\n\ + ldr r0, _080A557C @ =gBGTilemapBuffers + 0x800\n\ + bl sub_80A4DA4\n\ + ldr r1, _080A5580 @ =sItemPopupMenuActions\n\ + ldr r0, _080A5584 @ =sPopupMenuActionList\n\ + ldr r0, [r0]\n\ + ldrb r0, [r0, 0x3]\n\ + lsls r0, 3\n\ + adds r1, 0x4\n\ + adds r0, r1\n\ + ldr r5, [r0]\n\ + adds r0, r4, 0\n\ + bl _call_via_r5\n\ +_080A5552:\n\ + cmp r5, 0\n\ + bne _080A55FA\n\ + ldr r0, _080A5588 @ =sReturnLocation\n\ + ldrb r0, [r0]\n\ + cmp r0, 0x5\n\ + bne _080A55E0\n\ + ldr r0, _080A558C @ =sPopupMenuSelection\n\ + ldrb r0, [r0]\n\ + cmp r0, 0\n\ + bne _080A55D4\n\ + movs r0, 0xC\n\ + bl sub_8072DDC\n\ + b _080A55FA\n\ + .align 2, 0\n\ +_080A5570: .4byte gTasks\n\ +_080A5574: .4byte gBagPocketScrollStates\n\ +_080A5578: .4byte sCurrentBagPocket\n\ +_080A557C: .4byte gBGTilemapBuffers + 0x800\n\ +_080A5580: .4byte sItemPopupMenuActions\n\ +_080A5584: .4byte sPopupMenuActionList\n\ +_080A5588: .4byte sReturnLocation\n\ +_080A558C: .4byte sPopupMenuSelection\n\ +_080A5590:\n\ + ldr r1, _080A55C0 @ =gTasks\n\ + lsls r0, r4, 2\n\ + adds r0, r4\n\ + lsls r0, 3\n\ + adds r0, r1\n\ + strh r5, [r0, 0x1C]\n\ + ldr r0, _080A55C4 @ =gBGTilemapBuffers + 0x800\n\ + bl sub_80A4DA4\n\ + ldr r1, _080A55C8 @ =sItemPopupMenuActions\n\ + ldr r0, _080A55CC @ =sPopupMenuSelection\n\ + ldrb r2, [r0]\n\ + ldr r0, _080A55D0 @ =sPopupMenuActionList\n\ + ldr r0, [r0]\n\ + adds r0, r2\n\ + ldrb r0, [r0]\n\ + lsls r0, 3\n\ + adds r1, 0x4\n\ + adds r0, r1\n\ + ldr r5, [r0]\n\ + adds r0, r4, 0\n\ + bl _call_via_r5\n\ + b _080A5552\n\ + .align 2, 0\n\ +_080A55C0: .4byte gTasks\n\ +_080A55C4: .4byte gBGTilemapBuffers + 0x800\n\ +_080A55C8: .4byte sItemPopupMenuActions\n\ +_080A55CC: .4byte sPopupMenuSelection\n\ +_080A55D0: .4byte sPopupMenuActionList\n\ +_080A55D4:\n\ + cmp r0, 0x1\n\ + bls _080A55E8\n\ + movs r0, 0x30\n\ + bl sub_8072DCC\n\ + b _080A55FA\n\ +_080A55E0:\n\ + ldr r0, _080A55F0 @ =sPopupMenuSelection\n\ + ldrb r0, [r0]\n\ + cmp r0, 0x1\n\ + bhi _080A55F4\n\ +_080A55E8:\n\ + movs r0, 0x2F\n\ + bl sub_8072DCC\n\ + b _080A55FA\n\ + .align 2, 0\n\ +_080A55F0: .4byte sPopupMenuSelection\n\ +_080A55F4:\n\ + movs r0, 0x30\n\ + bl sub_8072DCC\n\ +_080A55FA:\n\ + pop {r4,r5}\n\ + pop {r0}\n\ + bx r0\n\ + .syntax divided\n"); +} +#endif + +__attribute__((naked)) +static void sub_80A5600(u8 taskId) +{ + asm(".syntax unified\n\ + push {r4,r5,lr}\n\ + lsls r0, 24\n\ + lsrs r4, r0, 24\n\ + movs r5, 0\n\ + ldr r2, _080A563C @ =gMain\n\ + ldrh r0, [r2, 0x30]\n\ + movs r1, 0xF0\n\ + ands r1, r0\n\ + cmp r1, 0x40\n\ + bne _080A5648\n\ + ldr r4, _080A5640 @ =sPopupMenuSelection\n\ + ldrb r0, [r4]\n\ + cmp r0, 0\n\ + bne _080A561E\n\ + b _080A5736\n\ +_080A561E:\n\ + adds r1, r0, 0\n\ + ldr r0, _080A5644 @ =sPopupMenuActionList\n\ + ldr r0, [r0]\n\ + adds r1, r0\n\ + subs r1, 0x1\n\ + ldrb r0, [r1]\n\ + cmp r0, 0x8\n\ + bne _080A5630\n\ + b _080A5736\n\ +_080A5630:\n\ + movs r0, 0x5\n\ + bl PlaySE\n\ + movs r0, 0x1\n\ + negs r0, r0\n\ + b _080A56D2\n\ + .align 2, 0\n\ +_080A563C: .4byte gMain\n\ +_080A5640: .4byte sPopupMenuSelection\n\ +_080A5644: .4byte sPopupMenuActionList\n\ +_080A5648:\n\ + cmp r1, 0x80\n\ + bne _080A5680\n\ + ldr r4, _080A5674 @ =sPopupMenuSelection\n\ + ldrb r1, [r4]\n\ + ldr r0, _080A5678 @ =gUnknown_02038564\n\ + ldrb r0, [r0]\n\ + subs r0, 0x1\n\ + cmp r1, r0\n\ + beq _080A5736\n\ + cmp r1, 0x2\n\ + beq _080A5736\n\ + ldr r0, _080A567C @ =sPopupMenuActionList\n\ + ldr r0, [r0]\n\ + adds r0, r1, r0\n\ + ldrb r0, [r0, 0x1]\n\ + cmp r0, 0x8\n\ + beq _080A5736\n\ + movs r0, 0x5\n\ + bl PlaySE\n\ + movs r0, 0x1\n\ + b _080A56D2\n\ + .align 2, 0\n\ +_080A5674: .4byte sPopupMenuSelection\n\ +_080A5678: .4byte gUnknown_02038564\n\ +_080A567C: .4byte sPopupMenuActionList\n\ +_080A5680:\n\ + cmp r1, 0x20\n\ + bne _080A56B0\n\ + ldr r4, _080A56A8 @ =sPopupMenuSelection\n\ + ldrb r0, [r4]\n\ + cmp r0, 0x2\n\ + bls _080A5736\n\ + adds r1, r0, 0\n\ + ldr r0, _080A56AC @ =sPopupMenuActionList\n\ + ldr r0, [r0]\n\ + adds r1, r0\n\ + subs r1, 0x3\n\ + ldrb r0, [r1]\n\ + cmp r0, 0x8\n\ + beq _080A5736\n\ + movs r0, 0x5\n\ + bl PlaySE\n\ + movs r0, 0x3\n\ + negs r0, r0\n\ + b _080A56D2\n\ + .align 2, 0\n\ +_080A56A8: .4byte sPopupMenuSelection\n\ +_080A56AC: .4byte sPopupMenuActionList\n\ +_080A56B0:\n\ + cmp r1, 0x10\n\ + bne _080A56E4\n\ + ldr r4, _080A56DC @ =sPopupMenuSelection\n\ + ldrb r0, [r4]\n\ + cmp r0, 0x2\n\ + bhi _080A5736\n\ + adds r1, r0, 0\n\ + ldr r0, _080A56E0 @ =sPopupMenuActionList\n\ + ldr r0, [r0]\n\ + adds r1, r0\n\ + ldrb r0, [r1, 0x3]\n\ + cmp r0, 0x8\n\ + beq _080A5736\n\ + movs r0, 0x5\n\ + bl PlaySE\n\ + movs r0, 0x3\n\ +_080A56D2:\n\ + bl MoveMenuCursor3\n\ + strb r0, [r4]\n\ + b _080A5736\n\ + .align 2, 0\n\ +_080A56DC: .4byte sPopupMenuSelection\n\ +_080A56E0: .4byte sPopupMenuActionList\n\ +_080A56E4:\n\ + ldrh r1, [r2, 0x2E]\n\ + movs r0, 0x1\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _080A5768\n\ + movs r0, 0x2\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _080A5736\n\ + ldr r1, _080A574C @ =gTasks\n\ + lsls r0, r4, 2\n\ + adds r0, r4\n\ + lsls r0, 3\n\ + adds r0, r1\n\ + strh r5, [r0, 0x1C]\n\ + ldr r1, _080A5750 @ =gBagPocketScrollStates\n\ + ldr r0, _080A5754 @ =sCurrentBagPocket\n\ + ldrb r0, [r0]\n\ + lsls r0, 24\n\ + asrs r0, 24\n\ + lsls r0, 2\n\ + adds r0, r1\n\ + ldrb r2, [r0]\n\ + adds r0, r4, 0\n\ + adds r1, r2, 0\n\ + bl sub_80A48E8\n\ + ldr r0, _080A5758 @ =gBGTilemapBuffers + 0x800\n\ + bl sub_80A4DA4\n\ + ldr r1, _080A575C @ =sItemPopupMenuActions\n\ + ldr r0, _080A5760 @ =sPopupMenuActionList\n\ + ldr r0, [r0]\n\ + ldrb r0, [r0, 0x5]\n\ + lsls r0, 3\n\ + adds r1, 0x4\n\ + adds r0, r1\n\ + ldr r5, [r0]\n\ + adds r0, r4, 0\n\ + bl _call_via_r5\n\ +_080A5736:\n\ + cmp r5, 0\n\ + bne _080A57BE\n\ + ldr r0, _080A5764 @ =sPopupMenuSelection\n\ + ldrb r0, [r0]\n\ + cmp r0, 0\n\ + bne _080A57AC\n\ + movs r0, 0xC\n\ + bl sub_8072DDC\n\ + b _080A57BE\n\ + .align 2, 0\n\ +_080A574C: .4byte gTasks\n\ +_080A5750: .4byte gBagPocketScrollStates\n\ +_080A5754: .4byte sCurrentBagPocket\n\ +_080A5758: .4byte gBGTilemapBuffers + 0x800\n\ +_080A575C: .4byte sItemPopupMenuActions\n\ +_080A5760: .4byte sPopupMenuActionList\n\ +_080A5764: .4byte sPopupMenuSelection\n\ +_080A5768:\n\ + ldr r1, _080A5798 @ =gTasks\n\ + lsls r0, r4, 2\n\ + adds r0, r4\n\ + lsls r0, 3\n\ + adds r0, r1\n\ + strh r5, [r0, 0x1C]\n\ + ldr r0, _080A579C @ =gBGTilemapBuffers + 0x800\n\ + bl sub_80A4DA4\n\ + ldr r1, _080A57A0 @ =sItemPopupMenuActions\n\ + ldr r0, _080A57A4 @ =sPopupMenuSelection\n\ + ldrb r2, [r0]\n\ + ldr r0, _080A57A8 @ =sPopupMenuActionList\n\ + ldr r0, [r0]\n\ + adds r0, r2\n\ + ldrb r0, [r0]\n\ + lsls r0, 3\n\ + adds r1, 0x4\n\ + adds r0, r1\n\ + ldr r5, [r0]\n\ + adds r0, r4, 0\n\ + bl _call_via_r5\n\ + b _080A5736\n\ + .align 2, 0\n\ +_080A5798: .4byte gTasks\n\ +_080A579C: .4byte gBGTilemapBuffers + 0x800\n\ +_080A57A0: .4byte sItemPopupMenuActions\n\ +_080A57A4: .4byte sPopupMenuSelection\n\ +_080A57A8: .4byte sPopupMenuActionList\n\ +_080A57AC:\n\ + cmp r0, 0x2\n\ + bhi _080A57B8\n\ + movs r0, 0x2F\n\ + bl sub_8072DCC\n\ + b _080A57BE\n\ +_080A57B8:\n\ + movs r0, 0x30\n\ + bl sub_8072DCC\n\ +_080A57BE:\n\ + pop {r4,r5}\n\ + pop {r0}\n\ + bx r0\n\ + .syntax divided\n"); +} + +static void sub_80A57C4(void) +{ + u8 r5; + + sPopupMenuActionList = gUnknown_083C16AE[sCurrentBagPocket]; + if (sCurrentBagPocket == BAG_POCKET_KEY_ITEMS) + { + gUnknown_02038564 = 1; + r5 = 9; + } + else if (sub_80F92F4(gScriptItemId) == 0) + { + sPopupMenuActionList = gUnknown_083C16AE[4]; + gUnknown_02038564 = 1; + r5 = 9; + } + else + { + gUnknown_02038564 = 2; + r5 = 7; + } + sub_80A4008(gBGTilemapBuffers[1], 7, r5 + 1, 6, gUnknown_02038564 * 2); + MenuDrawTextWindow(6, r5, 13, gUnknown_02038564 * 2 + 1 + r5); + sub_80A7834(0, r5); + InitMenu(0, 7, r5 + 1, gUnknown_02038564, 0, 6); +} + +static void sub_80A5888(u8 taskId) +{ + if (sub_80A78A0() != 0) + { + if (gMain.newAndRepeatedKeys & DPAD_UP) + { + if (sPopupMenuSelection != 0) + { + PlaySE(SE_SELECT); + sPopupMenuSelection = MoveMenuCursor(-1); + } + } + else if (gMain.newAndRepeatedKeys & DPAD_DOWN) + { + if (sPopupMenuSelection != gUnknown_02038564 - 1) + { + PlaySE(SE_SELECT); + sPopupMenuSelection = MoveMenuCursor(1); + } + } + else if (gMain.newKeys & A_BUTTON) + { + gTasks[taskId].data[10] = 0; + sub_80A48E8(taskId, gBagPocketScrollStates[sCurrentBagPocket].cursorPos, gBagPocketScrollStates[sCurrentBagPocket].cursorPos); + sub_80A4DA4(gBGTilemapBuffers[1]); + sItemPopupMenuActions[sPopupMenuActionList[sPopupMenuSelection]].func(taskId); + } + else if (gMain.newKeys & B_BUTTON) + { + gTasks[taskId].data[10] = 0; + sub_80A4DA4(gBGTilemapBuffers[1]); + sItemPopupMenuActions[2].func(taskId); + } + } +} + +static void OnBagClose_Field0(u8 taskId) +{ + gTasks[taskId].data[8] = (u32)sub_805469C >> 16; + gTasks[taskId].data[9] = (u32)sub_805469C; + gLastFieldPokeMenuOpened = 0; + sub_80A5AE4(taskId); +} + +static void OnItemSelect_Field05(u8 taskId) +{ + sPopupMenuSelection = 0; + if (sReturnLocation == RETURN_TO_FIELD_5) + sPopupMenuSelection = 1; + gTasks[taskId].data[10] = gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos + 1; + sub_80A48E8(taskId, gBagPocketScrollStates[sCurrentBagPocket].cursorPos, gBagPocketScrollStates[sCurrentBagPocket].cursorPos); + sub_80A73FC(); + if (sub_80F9344() == TRUE && sReturnLocation != RETURN_TO_FIELD_5) + { + sub_80A57C4(); + gTasks[taskId].func = sub_80A5888; + } + else + { + sub_80A4BF0(gBGTilemapBuffers[1]); + if (sCurrentBagPocket != BAG_POCKET_BERRIES || sReturnLocation == RETURN_TO_FIELD_5) + gTasks[taskId].func = sub_80A5414; + else + gTasks[taskId].func = sub_80A5600; + } +} + +static void sub_80A5AAC(u8 taskId) +{ + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); + gTasks[taskId].func = HandleItemMenuPaletteFade; +} + +static void sub_80A5AE4(u8 taskId) +{ + PlaySE(SE_SELECT); + sub_80A5AAC(taskId); +} + +void HandleItemMenuPaletteFade(u8 taskId) +{ + s16 *taskData = gTasks[taskId].data; + + if (!gPaletteFade.active) + { + MainCallback cb = (MainCallback)((u16)taskData[8] << 16 | (u16)taskData[9]); + + SetMainCallback2(cb); + gpu_pal_allocator_reset__manage_upper_four(); + DestroyTask(taskId); + } +} + +void sub_80A5B40(void) +{ + while (1) + { + if (SetupBagMultistep() == TRUE) + { + ResetTasks(); + gUnknown_02038563 = CreateTask(sub_80A50C8, 0); + break; + } + if (sub_80F9344() == TRUE) + break; + } +} + +static void HandlePopupMenuAction_UseOnField(u8 taskId) +{ + if (ItemId_GetFieldFunc(gScriptItemId) != NULL) + { + PlaySE(SE_SELECT); + if (CalculatePlayerPartyCount() == 0 && ItemId_GetType(gScriptItemId) == 1) + { + sub_80A5BF8(taskId); + } + else + { + gTasks[taskId].data[2] = 0; + if (sCurrentBagPocket != BAG_POCKET_BERRIES) + ItemId_GetFieldFunc(gScriptItemId)(taskId); + else + sub_80C9C7C(taskId); + } + } +} + +static void sub_80A5BF8(u8 taskId) +{ + sub_80A73FC(); + sub_80A7590(); + DisplayCannotUseItemMessage(taskId, gOtherText_NoPokemon, CleanUpItemMenuMessage, 1); +} + +static void sub_80A5C24(u8 taskId) +{ + sub_80A7528(0); + sub_80A41D4(taskId); + ItemListMenu_InitMenu(); + sub_80A37C0(taskId); +} + +void CleanUpItemMenuMessage(u8 taskId) +{ + sub_80A36B8(gBGTilemapBuffers[1], 0, 0, 31, 31); + MenuZeroFillWindowRect(7, 7, 13, 12); + MenuZeroFillWindowRect(0, 14, 29, 19); + gTasks[taskId].func = sub_80A5C24; +} + +void CleanUpOverworldMessage(u8 taskId) +{ + MenuZeroFillWindowRect(0, 13, 29, 19); + DestroyTask(taskId); + sub_8064E2C(); + ScriptContext2_Disable(); +} + +void ExecuteItemUseFromBlackPalette(void) +{ + pal_fill_black(); + CreateTask(Task_CallItemUseOnFieldCallback, 8); +} + +static void Task_CallItemUseOnFieldCallback(u8 taskId) +{ + if (sub_807D770() == TRUE) + gUnknown_03005D00(taskId); +} + +void sub_80A5D04(void) +{ + while (1) + { + if (SetupBagMultistep() == TRUE) + { + gUnknown_02038563 = CreateTask(sub_80A50C8, 0); + break; + } + if (sub_80F9344() == TRUE) + break; + } +} + +static void sub_80A5D38(u8 taskId) +{ + gTasks[taskId].data[1] = 0; + sub_80A4DA4(gBGTilemapBuffers[1]); + sub_80A7528(0); + sub_80A41D4(taskId); + ItemListMenu_InitMenu(); + sub_80A37C0(taskId); +} + +static void sub_80A5D78(void) +{ + sub_80A4008(gBGTilemapBuffers[1], 8, 8, 5, 4); + DisplayYesNoMenu(7, 7, 1); +} + +static void sub_80A5DA0(u16 itemId, u16 quantity) +{ + CopyItemName(itemId, gStringVar1); + if (quantity >= 100) + ConvertIntToDecimalStringN(gStringVar2, quantity, STR_CONV_MODE_LEFT_ALIGN, 3); + else + ConvertIntToDecimalStringN(gStringVar2, quantity, STR_CONV_MODE_LEFT_ALIGN, 2); + sub_80A4DA4(gBGTilemapBuffers[1]); + sub_80A7528(5); + sub_80A5D78(); +} + +static void sub_80A5DF8(void) +{ + sub_80A4DA4(gBGTilemapBuffers[1]); + MenuZeroFillWindowRect(7, 6, 11, 13); + sub_80A7528(4); +} + +static void sub_80A5E1C(u8 taskId) +{ + if ((gMain.newKeys & A_BUTTON) || (gMain.newKeys & B_BUTTON)) + { + gTasks[taskId].data[10] = 0; + sub_80A41D4(taskId); + sub_80A5D38(taskId); + } +} + +static void sub_80A5E60(u8 taskId) +{ + sub_80A5DF8(); + sub_80A3D5C(taskId); + gTasks[taskId].func = sub_80A5E1C; +} + +static void sub_80A5E90(u8 taskId) +{ + sub_80A5D38(taskId); +} + +static void sub_80A5EA0(u8 taskId) +{ + if (sub_80A5350(taskId) == TRUE) + return; + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + sub_80A5DA0(gScriptItemId, gTasks[taskId].data[1]); + DoYesNoFuncWithChoice(taskId, &gUnknown_083C16F4); + } + else if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + sub_80A5D38(taskId); + } +} + +static void HandlePopupMenuAction_Toss(u8 taskId) +{ + PlaySE(SE_SELECT); + gTasks[taskId].func = sub_80A5EA0; + sub_80A7528(3); + // if (sCurrentBagPocket == BAG_POCKET_BERRIES) Can't get it to match this way + if (sCurrentBagPocket + 1 == BAG_POCKET_BERRIES + 1) + sub_80A4DD8(taskId, 6, 9, 7, 3, 3); + else + sub_80A4DD8(taskId, 7, 9, 6, 3, 2); +} + +static void sub_80A5F80(u8 taskId) +{ + PlaySE(SE_SELECT); + sub_80A7528(0); + sub_80A41D4(taskId); + ItemListMenu_InitMenu(); + sub_80A37C0(taskId); +} + +static void HandlePopupMenuAction_Register(u8 taskId) +{ + PlaySE(SE_SELECT); + if (gSaveBlock1.registeredItem == gScriptItemId) + { + // Un-register the registered item + RemoveSelectIconFromRegisteredItem(); + gSaveBlock1.registeredItem = 0; + } + else + { + AddSelectIconToRegisteredItem(); + gSaveBlock1.registeredItem = gScriptItemId; + } + sub_80A7528(0); + sub_80A41D4(taskId); + ItemListMenu_InitMenu(); + sub_80A37C0(taskId); +} + +static void sub_80A6000(u8 taskId) +{ + sub_80A7528(0); + sub_80A41D4(taskId); + ItemListMenu_InitMenu(); + sub_80A37C0(taskId); +} + +static void sub_80A6024(u8 taskId) +{ + if (gMain.newKeys & A_BUTTON) + { + sub_80A36B8(gBGTilemapBuffers[1], 0, 0, 31, 31); + MenuZeroFillWindowRect(0, 14, 29, 19); + gTasks[taskId].func = sub_80A6000; + } +} + +static void DisplayCannotBeHeldMessage(u8 taskId) +{ + sub_80A73FC(); + CopyItemName(gScriptItemId, gStringVar1); + StringExpandPlaceholders(gStringVar4, gOtherText_CantBeHeld); + sub_80A7590(); + DisplayCannotUseItemMessage(taskId, gStringVar4, sub_80A6024, 1); +} + +static void HandlePopupMenuAction_Give(u8 taskId) +{ + PlaySE(SE_SELECT); + if (sub_80F931C(gScriptItemId) == 0) + { + sub_80A73FC(); + sub_80A7590(); + DisplayCannotUseItemMessage(taskId, gOtherText_CantWriteMail, sub_80A6024, 1); + } + else if (ItemId_GetImportance(gScriptItemId) == 0) + { + if (CalculatePlayerPartyCount() == 0) + { + sub_80A5BF8(taskId); + } + else + { + gTasks[taskId].data[8] = (u32)sub_808B020 >> 16; + gTasks[taskId].data[9] = (u32)sub_808B020; + gTasks[taskId].func = HandleItemMenuPaletteFade; + gUnknown_02038561 = 1; + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); + } + } + else + { + DisplayCannotBeHeldMessage(taskId); + } +} + +static void HandlePopupMenuAction_CheckTag(u8 taskId) +{ + sub_80A5AE4(taskId); + gTasks[taskId].data[8] = (u32)BerryTagScreen_814625C >> 16; + gTasks[taskId].data[9] = (u32)BerryTagScreen_814625C; +} + +static void sub_80A61A8(void) +{ + if (sub_80A34B4() == TRUE) + gUnknown_02038563 = CreateTask(sub_80A50C8, 0); +} + +void sub_80A61D0(void) +{ + sReturnLocation = RETURN_TO_PKMN_LIST; + SetMainCallback2(sub_80A61A8); +} + +static void OnBagClose_PkmnList(u8 taskId) +{ + gTasks[taskId].data[8] = (u32)sub_808A3F8 >> 16; + gTasks[taskId].data[9] = (u32)sub_808A3F8; + sub_80A5AE4(taskId); +} + +static void OnItemSelect_PkmnList(u8 taskId) +{ + u8 r6 = sCurrentBagPocket + 1; + + if (sub_80F931C(gScriptItemId) == 0) + { + sub_80A73FC(); + sub_80A7590(); + DisplayCannotUseItemMessage(taskId, gOtherText_CantWriteMail, sub_80A6024, 1); + } + else if (sub_80F92F4(gScriptItemId) == 0) + { + sub_80A73FC(); + CopyItemName(gScriptItemId, gStringVar1); + StringExpandPlaceholders(gStringVar4, gOtherText_CantBeHeldHere); + sub_80A7590(); + DisplayCannotUseItemMessage(taskId, gStringVar4, sub_80A6024, 1); + } + else if (r6 != 5 && ItemId_GetImportance(gScriptItemId) == 0) + { + gTasks[taskId].data[8] = (u32)sub_808A3F8 >> 16; + gTasks[taskId].data[9] = (u32)sub_808A3F8; + sub_80A5AAC(taskId); + } + else + { + DisplayCannotBeHeldMessage(taskId); + } +} + +static void sub_80A62D8(void) +{ + if (sub_80A34B4() == TRUE) + gUnknown_02038563 = CreateTask(sub_80A50C8, 0); +} + +void sub_80A6300(void) +{ + sReturnLocation = RETURN_TO_SHOP; + SetMainCallback2(sub_80A62D8); +} + +static void OnBagClose_Shop(u8 taskId) +{ + gFieldCallback = sub_80B3050; + gTasks[taskId].data[8] = (u32)c2_exit_to_overworld_2_switch >> 16; + gTasks[taskId].data[9] = (u32)c2_exit_to_overworld_2_switch; + sub_80A5AE4(taskId); +} + +static void OnItemSelect_Shop(u8 taskId) +{ + sub_80A7590(); + gTasks[taskId].data[10] = gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos + 1; + sub_80A48E8(taskId, gBagPocketScrollStates[sCurrentBagPocket].cursorPos, gBagPocketScrollStates[sCurrentBagPocket].cursorPos); + sub_80A73FC(); + CopyItemName(gScriptItemId, gStringVar2); + if (ItemId_GetPrice(gScriptItemId) == 0) + { + StringExpandPlaceholders(gStringVar4, gOtherText_CantBuyThat); + DisplayCannotUseItemMessage(taskId, gStringVar4, sub_80A6444, 1); + } + else + { + StringExpandPlaceholders(gStringVar4, gOtherText_HowManyToSell); + DisplayCannotUseItemMessage(taskId, gStringVar4, sub_80A648C, 1); + } +} + +static void sub_80A640C(u8 taskId) +{ + gTasks[taskId].data[10] = 0; + sub_80A7528(0); + sub_80A41D4(taskId); + ItemListMenu_InitMenu(); + sub_80A37C0(taskId); +} + +static void sub_80A6444(u8 taskId) +{ + sub_80A36B8(gBGTilemapBuffers[1], 0, 0, 31, 31); + MenuZeroFillWindowRect(0, 14, 29, 19); + gTasks[taskId].func = sub_80A640C; +} + +static void sub_80A648C(u8 taskId) +{ + gTasks[taskId].func = Task_BuyHowManyDialogueHandleInput; + sub_80A4008(gBGTilemapBuffers[1], 1, 11, 12, 2); + MenuDrawTextWindow(0, 10, 13, 13); + gTasks[taskId].data[1] = 1; + gTasks[taskId].data[2] = 1; + gTasks[taskId].data[3] = 11; + // if (sCurrentBagPocket == BAG_POCKET_BERRIES) Can't get it to match this way + if (sCurrentBagPocket + 1 == BAG_POCKET_BERRIES + 1) + sub_80A418C(1, 1, 1, 11, 3); + else + sub_80A418C(1, 1, 1, 11, 2); + BuyMenuDisplayMessage(gScriptItemId, 1); + sub_80A683C(); +} + +static void sub_80A6520(u8 taskId) +{ + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + BuyMenuPrintItemQuantityAndPrice(taskId); + } +} + +static void sub_80A6548(u8 taskId) +{ + sub_80A48F8(taskId); + gTasks[taskId].func = sub_80A6520; +} + +static void sub_80A6574(u8 taskId) +{ + PlaySE(SE_REGI); + sub_80A6870(gScriptItemId, gTasks[taskId].data[1]); + gTasks[taskId].func = sub_80A6548; +} + +static void sub_80A65AC(u8 taskId) +{ + MenuZeroFillWindowRect(7, 6, 13, 12); + sub_80A36B8(gBGTilemapBuffers[1], 7, 6, 6, 6); + CopyItemName(gScriptItemId, gStringVar2); + StringExpandPlaceholders(gStringVar4, gOtherText_SoldItem); + DisplayCannotUseItemMessage(taskId, gStringVar4, sub_80A6574, 1); + sub_80A3D5C(taskId); +} + +static void sub_80A6618(u8 taskId) +{ + MenuZeroFillWindowRect(7, 6, 13, 12); + sub_80A36B8(gBGTilemapBuffers[1], 7, 6, 6, 6); + BuyMenuPrintItemQuantityAndPrice(taskId); +} + +static void sub_80A6650(u8 taskId) +{ + sub_80A5D78(); + DoYesNoFuncWithChoice(taskId, &gUnknown_083C16FC); +} + +static void Task_BuyHowManyDialogueHandleInput(u8 taskId) +{ + if (sub_80A5350(taskId) == TRUE) + { + MenuZeroFillWindowRect(6, 11, 12, 11); + BuyMenuDisplayMessage(gScriptItemId, gTasks[taskId].data[1]); + } + else if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + MenuZeroFillWindowRect(0, 10, 13, 13); + sub_80A36B8(gBGTilemapBuffers[1], 0, 10, 13, 3); + ConvertIntToDecimalStringN(gStringVar1, ItemId_GetPrice(gScriptItemId) / 2 * gTasks[taskId].data[1], STR_CONV_MODE_LEFT_ALIGN, 6); + StringExpandPlaceholders(gStringVar4, gOtherText_CanPay); + DisplayCannotUseItemMessage(taskId, gStringVar4, sub_80A6650, 1); + } + else if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + BuyMenuPrintItemQuantityAndPrice(taskId); + } +} + +static void sub_80A6760(u8 taskId) +{ + gTasks[taskId].data[10] = 0; + sub_80A7528(0); + sub_80A41D4(taskId); + ItemListMenu_InitMenu(); + sub_80A37C0(taskId); +} + +static void BuyMenuPrintItemQuantityAndPrice(u8 taskId) +{ + sub_80A36B8(gBGTilemapBuffers[1], 0, 0, 31, 31); + RemoveMoneyLabelObject(0, 0); + MenuZeroFillWindowRect(0, 4, 13, 13); + MenuZeroFillWindowRect(0, 14, 29, 19); + gTasks[taskId].func = sub_80A6760; +} + +static void BuyMenuDisplayMessage(u16 itemId, u16 quantity) +{ + sub_80B7A94(ItemId_GetPrice(itemId) / 2 * quantity, 6, 6, 11); + ConvertIntToDecimalStringN(gStringVar1, ItemId_GetPrice(itemId) / 2 * quantity, STR_CONV_MODE_LEFT_ALIGN, 6); +} + +static void sub_80A683C(void) +{ + sub_80B7C14(gSaveBlock1.money, 0, 0); + sub_80A4008(gBGTilemapBuffers[1], 1, 1, 12, 2); +} + +static void sub_80A6870(u16 itemId, u8 quantity) +{ + sub_80B79B8(&gSaveBlock1.money, ItemId_GetPrice(itemId) / 2 * quantity); + sub_80B7BEC(gSaveBlock1.money, 0, 0); +} + +static void sub_80A68A4(void) +{ + if (sub_80A34B4() == TRUE) + gUnknown_02038563 = CreateTask(sub_80A50C8, 0); +} + +void sub_80A68CC(void) +{ + sCurrentBagPocket = BAG_POCKET_BERRIES; + sReturnLocation = RETURN_TO_FIELD_4; + SetMainCallback2(sub_80A68A4); +} + +static void OnBagClose_Field4(u8 taskId) +{ + gTasks[taskId].data[8] = (u32)sub_80546B8 >> 16; + gTasks[taskId].data[9] = (u32)sub_80546B8; + sub_80A5AE4(taskId); +} + +static void OnItemSelect_Field4(u8 taskId) +{ + gTasks[taskId].data[8] = (u32)sub_80546B8 >> 16; + gTasks[taskId].data[9] = (u32)sub_80546B8; + sub_80A5AAC(taskId); +} + +static void sub_80A6940(void) +{ + while (1) + { + if (SetupBagMultistep() == TRUE) + { + gUnknown_02038563 = CreateTask(sub_80A50C8, 0); + sub_80A699C(); + break; + } + if (sub_80F9344() == TRUE) + break; + } +} + +void sub_80A6978(void) +{ + sCurrentBagPocket = BAG_POCKET_BERRIES; + sReturnLocation = RETURN_TO_FIELD_5; + SetMainCallback2(sub_80A6940); +} + +static void sub_80A699C(void) +{ + sPopupMenuActionList = gUnknown_083C16B8; + gUnknown_02038564 = 4; +} + +static void OnBagClose_Field5(u8 taskId) +{ + gTasks[taskId].data[8] = (u32)sub_804E990 >> 16; + gTasks[taskId].data[9] = (u32)sub_804E990; + sub_80A5AE4(taskId); +} + +static void HandlePopupMenuAction_Confirm(u8 taskId) +{ + gTasks[taskId].data[8] = (u32)sub_804E990 >> 16; + gTasks[taskId].data[9] = (u32)sub_804E990; + sub_80A5AAC(taskId); +} + +static void sub_80A6A08(void) +{ + if (sub_80A34B4() == TRUE) + gUnknown_02038563 = CreateTask(sub_80A50C8, 0); +} + +void sub_80A6A30(void) +{ + sReturnLocation = RETURN_TO_PC; + SetMainCallback2(sub_80A6A08); +} + +static void OnBagClose_PC(u8 taskId) +{ + gFieldCallback = ItemStorage_ReturnToMenuAfterDeposit; + gTasks[taskId].data[8] = (u32)c2_exit_to_overworld_2_switch >> 16; + gTasks[taskId].data[9] = (u32)c2_exit_to_overworld_2_switch; + sub_80A5AE4(taskId); +} + +static void sub_80A6A84(u8 taskId) +{ + s16 *taskData = gTasks[taskId].data; + + sub_80A4DA4(gBGTilemapBuffers[1]); + CopyItemName(gScriptItemId, gStringVar1); + ConvertIntToDecimalStringN(gStringVar2, taskData[1], STR_CONV_MODE_LEFT_ALIGN, 3); + MenuZeroFillWindowRect(7, 6, 11, 13); + sub_80A7528(7); + sub_80A3D5C(taskId); + gTasks[taskId].func = sub_80A5E1C; +} + +static void sub_80A6B00(u8 taskId) +{ + if ((gMain.newKeys & A_BUTTON) || (gMain.newKeys & B_BUTTON)) + { + gTasks[taskId].data[10] = 0; + sub_80A48E8(taskId, gBagPocketScrollStates[sCurrentBagPocket].cursorPos, gBagPocketScrollStates[sCurrentBagPocket].cursorPos); + PlaySE(SE_SELECT); + sub_80A5D38(taskId); + } +} + +static void sub_80A6B64(u8 taskId) +{ + s16 *taskData = gTasks[taskId].data; + + if (ItemId_GetImportance(gScriptItemId) == 2) + { + gTasks[taskId].func = sub_80A6B00; + sub_80A7528(9); + } + else + { + if (AddPCItem(gScriptItemId, taskData[1]) == TRUE) + { + sub_80A6A84(taskId); + } + else + { + gTasks[taskId].func = sub_80A6B00; + sub_80A7528(8); + } + } +} + +static void sub_80A6BE0(u8 taskId) +{ + if (sub_80A5350(taskId) == TRUE) + return; + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + sub_80A4DA4(gBGTilemapBuffers[1]); + sub_80A6B64(taskId); + } + else if (gMain.newKeys & B_BUTTON) + { + gTasks[taskId].data[10] = 0; + sub_80A48E8(taskId, gBagPocketScrollStates[sCurrentBagPocket].cursorPos, gBagPocketScrollStates[sCurrentBagPocket].cursorPos); + PlaySE(SE_SELECT); + sub_80A5D38(taskId); + } +} + +static void OnItemSelect_PC(u8 taskId) +{ + gTasks[taskId].data[10] = gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos + 1; + sub_80A48E8(taskId, gBagPocketScrollStates[sCurrentBagPocket].cursorPos, gBagPocketScrollStates[sCurrentBagPocket].cursorPos); + sub_80A73FC(); + PlaySE(SE_SELECT); + sub_80A7590(); + if (sCurrentBagPocket != BAG_POCKET_KEY_ITEMS) + { + gTasks[taskId].func = sub_80A6BE0; + sub_80A7528(6); + // if (sCurrentBagPocket == BAG_POCKET_BERRIES) Can't get it to match this way + if (sCurrentBagPocket + 1 == BAG_POCKET_BERRIES + 1) + sub_80A4DD8(taskId, 6, 9, 7, 3, 3); + else + sub_80A4DD8(taskId, 7, 9, 6, 3, 2); + } + else + { + gTasks[taskId].data[1] = 1; + sub_80A6B64(taskId); + } +} + +bool32 sub_80A6D1C(void) +{ + HideMapNamePopup(); + if (gSaveBlock1.registeredItem != 0) + { + if (CheckBagHasItem(gSaveBlock1.registeredItem, 1) == TRUE) + { + u8 taskId; + + ScriptContext2_Enable(); + FreezeMapObjects(); + sub_80594C0(); + sub_80597F4(); + gScriptItemId = gSaveBlock1.registeredItem; + taskId = CreateTask(ItemId_GetFieldFunc(gSaveBlock1.registeredItem), 8); + gTasks[taskId].data[2] = 1; + return TRUE; + } + gSaveBlock1.registeredItem = 0; + } + ScriptContext1_SetupScript(Event_NoRegisteredItem); + return TRUE; +} + +static void sub_80A6D98(void) +{ + while (1) + { + if (SetupBagMultistep() == TRUE) + { + gUnknown_02038563 = CreateTask(sub_80A50C8, 0); + break; + } + if (sub_80F9344() == TRUE) + break; + } +} + +void sub_80A6DCC(void) +{ + sPopupMenuSelection = 0; + sReturnLocation = RETURN_TO_BATTLE; + SetMainCallback2(sub_80A6D98); +} + +static void sub_80A6DF0(u16 *a) +{ + u8 r6 = (gUnknown_02038564 - 1) * 2; + + MenuDrawTextWindow(7, 9 - r6, 13, 12); + sub_80A4008(a, 8, 10 - r6, 5, r6 + 2); + if (gUnknown_02038564 == 1) + { + MenuPrint(sItemPopupMenuActions[sPopupMenuActionList[0]].text, 8, 10); + } + else + { + MenuPrint(sItemPopupMenuActions[sPopupMenuActionList[0]].text, 8, 8); + MenuPrint(sItemPopupMenuActions[sPopupMenuActionList[1]].text, 8, 10); + } + InitMenu(0, 8, 10 - r6, gUnknown_02038564, 0, 5); + sub_80A7528(2); +} + +static void sub_80A6EB8(u8 taskId) +{ + if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_UP) + { + if (sPopupMenuSelection == 1) + { + PlaySE(SE_SELECT); + sPopupMenuSelection = MoveMenuCursor(-1); + } + } + else if ((gMain.newAndRepeatedKeys & DPAD_ANY) == DPAD_DOWN) + { + if (sPopupMenuSelection + 1 < gUnknown_02038564) + { + PlaySE(SE_SELECT); + sPopupMenuSelection = MoveMenuCursor(1); + } + } + else if (gMain.newKeys & A_BUTTON) + { + gTasks[taskId].data[10] = 0; + sub_80A48E8(taskId, gBagPocketScrollStates[sCurrentBagPocket].cursorPos, gBagPocketScrollStates[sCurrentBagPocket].cursorPos); + sub_80A4DA4(gBGTilemapBuffers[1]); + sItemPopupMenuActions[sPopupMenuActionList[sPopupMenuSelection]].func(taskId); + } + else if (gMain.newKeys & B_BUTTON) + { + gTasks[taskId].data[10] = 0; + sub_80A48E8(taskId, gBagPocketScrollStates[sCurrentBagPocket].cursorPos, gBagPocketScrollStates[sCurrentBagPocket].cursorPos); + sub_80A4DA4(gBGTilemapBuffers[1]); + sItemPopupMenuActions[5].func(taskId); + } +} + +static const u8 gUnknown_083C1708[] = {4, 5}; +static const u8 gUnknown_083C170A[] = {5, 0}; + +static void sub_80A6FDC(void) +{ + if (ItemId_GetBattleUsage(gScriptItemId) != 0) + { + sPopupMenuActionList = gUnknown_083C1708; + gUnknown_02038564 = 2; + } + else + { + sPopupMenuActionList = gUnknown_083C170A; + gUnknown_02038564 = 1; + } +} + +static void OnItemSelect_Battle(u8 taskId) +{ + sPopupMenuSelection = 0; + sub_80A6FDC(); + gTasks[taskId].data[10] = gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos + 1; + sub_80A48E8(taskId, gBagPocketScrollStates[sCurrentBagPocket].cursorPos, gBagPocketScrollStates[sCurrentBagPocket].cursorPos); + sub_80A73FC(); + sub_80A6DF0(gBGTilemapBuffers[1]); + gTasks[taskId].func = sub_80A6EB8; +} + +void sub_80A7094(u8 taskId) +{ + gTasks[taskId].data[8] = (u32)sub_802E424 >> 16; + gTasks[taskId].data[9] = (u32)sub_802E424; + gTasks[taskId].func = HandleItemMenuPaletteFade; + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); +} + +static void OnBagClose_Battle(u8 taskId) +{ + PlaySE(SE_SELECT); + sub_80A7094(taskId); +} + +static void HandlePopupMenuAction_UseInBattle(u8 taskId) +{ + if (ItemId_GetBattleFunc(gScriptItemId) != NULL) + { + PlaySE(SE_SELECT); + ItemId_GetBattleFunc(gScriptItemId)(taskId); + } +} + +static void sub_80A7124(u8 taskId) +{ + PlaySE(SE_SELECT); + sub_80A7528(0); + sub_80A41D4(taskId); + ItemListMenu_InitMenu(); + sub_80A37C0(taskId); +} + +static void sub_80A7150(void) +{ + while (1) + { + if (SetupBagMultistep() == TRUE) + { + gUnknown_02038563 = CreateTask(sub_80A7230, 0); + gTasks[gUnknown_02038563].data[15] = 0; + break; + } + if (sub_80F9344() == TRUE) + break; + } +} + +void PrepareBagForWallyTutorial(void) +{ + u8 i; + + sPopupMenuSelection = 0; + sCurrentBagPocket = BAG_POCKET_ITEMS; + for (i = 0; i < 5; i++) + { + gBagPocketScrollStates[i].cursorPos = 0; + gBagPocketScrollStates[i].scrollTop = 0; + } + + // Save player's items + memcpy(ewramSavedItemsPocket, gSaveBlock1.bagPocket_Items, sizeof(gSaveBlock1.bagPocket_Items)); + memcpy(ewramSavedPokeballsPocket, gSaveBlock1.bagPocket_PokeBalls, sizeof(gSaveBlock1.bagPocket_PokeBalls)); + + // Add Wally's items to the bag + ClearItemSlots(gSaveBlock1.bagPocket_Items, ARRAY_COUNT(gSaveBlock1.bagPocket_Items)); + ClearItemSlots(gSaveBlock1.bagPocket_PokeBalls, ARRAY_COUNT(gSaveBlock1.bagPocket_PokeBalls)); + AddBagItem(ITEM_POTION, 1); + AddBagItem(ITEM_POKE_BALL, 1); + + sReturnLocation = RETURN_TO_WALLY_BATTLE; + SetMainCallback2(sub_80A7150); +} + +static void sub_80A7230(u8 taskId) +{ + s16 *taskData = gTasks[taskId].data; + + switch (taskData[15]) + { + case 102: + PlaySE(SE_SELECT); + sub_80A4E8C(1, 2); + break; + case 204: + PlaySE(SE_SELECT); + sub_80F98A4(2); + sub_80F98A4(3); + gScriptItemId = ITEM_POKE_BALL; + sPopupMenuActionList = gUnknown_083C1708; + gUnknown_02038564 = 2; + gTasks[taskId].data[10] = gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos + 1; + sub_80A48E8(taskId, gBagPocketScrollStates[sCurrentBagPocket].cursorPos, gBagPocketScrollStates[sCurrentBagPocket].cursorPos); + sub_80A73FC(); + sub_80A6DF0(gBGTilemapBuffers[1]); + break; + case 306: + PlaySE(SE_SELECT); + sub_80A4DA4(gBGTilemapBuffers[1]); + + // Restore player's items + memcpy(gSaveBlock1.bagPocket_Items, ewramSavedItemsPocket, sizeof(gSaveBlock1.bagPocket_Items)); + memcpy(gSaveBlock1.bagPocket_PokeBalls, ewramSavedPokeballsPocket, sizeof(gSaveBlock1.bagPocket_PokeBalls)); + + taskData[8] = (u32)sub_802E424 >> 16; + taskData[9] = (u32)sub_802E424; + gTasks[taskId].func = HandleItemMenuPaletteFade; + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); + return; + } + taskData[15]++; +} + +static void ItemListMenu_InitMenu(void) +{ + InitMenu(0, 14, 2, gBagPocketScrollStates[sCurrentBagPocket].cursorMax + 1, gBagPocketScrollStates[sCurrentBagPocket].cursorPos, 0); + CreateBlendedOutlineCursor(16, 0xFFFF, 12, 0x2D9F, 15); + sub_80A73C0(); +} + +static void sub_80A73C0(void) +{ + sub_814AD7C(0x70, gBagPocketScrollStates[sCurrentBagPocket].cursorPos * 16 + 16); +} + +static void sub_80A73F0(void) +{ + sub_814ADC8(); +} + +static void sub_80A73FC(void) +{ + HandleDestroyMenuCursors(); + sub_814AD44(); +} + +static void sub_80A740C(void) +{ + sub_80A75E4(); + sub_80A7768(); + sub_80A7420(); +} + +static void sub_80A7420(void) +{ + struct UnknownStruct2 *unkStruct = &gUnknown_0203853C; + int index; + + switch (unkStruct->unk0) + { + case 3: + unkStruct->unk0 = 2; + break; + case 2: + switch (unkStruct->unk2) + { + case 0: + index = gBagPocketScrollStates[sCurrentBagPocket].scrollTop + gBagPocketScrollStates[sCurrentBagPocket].cursorPos; + ItemListMenu_ChangeDescription(gCurrentBagPocketItemSlots[index].itemId, unkStruct->textLine); + break; + case 1: + sub_80A4A98(gOtherText_SwitchWhichItem, unkStruct->textLine); + break; + case 2: + sub_80A4A98(gOtherText_WhatWillYouDo2, unkStruct->textLine); + break; + case 3: + sub_80A4A98(gOtherText_HowManyToToss, unkStruct->textLine); + break; + case 4: + sub_80A4A98(gOtherText_ThrewAwayItem, unkStruct->textLine); + break; + case 5: + sub_80A4A98(gOtherText_OkayToThrowAwayPrompt, unkStruct->textLine); + break; + case 6: + sub_80A4A98(gOtherText_HowManyToDeposit, unkStruct->textLine); + break; + case 7: + sub_80A4A98(gOtherText_DepositedItems, unkStruct->textLine); + break; + case 8: + sub_80A4A98(gOtherText_NoRoomForItems, unkStruct->textLine); + break; + case 9: + sub_80A4A98(gOtherText_CantStoreSomeoneItem, unkStruct->textLine); + break; + } + unkStruct->textLine++; + if (unkStruct->textLine == 3) + { + unkStruct->unk0 = 0; + sub_80A7918(); + } + break; + } +} + +static void sub_80A751C(void) +{ + gUnknown_0203853C.unk0 = 0; +} + +static void sub_80A7528(u8 a) +{ + gUnknown_0203853C.textLine = 0; + gUnknown_0203853C.unk2 = a; + switch (sub_80A78F4()) + { + case 0: + gUnknown_0203853C.unk0 = 2; + while (gUnknown_0203853C.unk0 != 0) + sub_80A7420(); + break; + case 1: + gUnknown_0203853C.unk0 = 3; + break; + case 2: + gUnknown_0203853C.unk0 = 1; + break; + } +} + +static void sub_80A756C(void) +{ + if (gUnknown_0203853C.unk0 == 2 || gUnknown_0203853C.unk0 == 3) + sub_80A7918(); + gUnknown_0203853C.unk0 = 0; +} + +static void sub_80A7590(void) +{ + MenuZeroFillWindowRect(0, 13, 13, 20); + sub_80A756C(); +} + +static void sub_80A75A8(void) +{ + if (gUnknown_0203853C.unk0 == 2 || gUnknown_0203853C.unk0 == 3) + gUnknown_0203853C.unk0 = 1; +} + +static void sub_80A75C4(void) +{ + switch (gUnknown_0203853C.unk0) + { + case 1: + gUnknown_0203853C.unk0 = 3; + break; + case 0: + sub_80A7918(); + break; + } +} + +static void sub_80A75E4(void) +{ + if (gUnknown_02038540.unk0 == 1 && sub_80A7988() == 0) + { + int r1; + + sub_80A47E8(gUnknown_02038563, gUnknown_02038540.unk1, gUnknown_02038540.unk1, 1); + gUnknown_02038540.unk1++; + if (gUnknown_02038540.unk2 != 0) + r1 = 5; + else + r1 = 7; + if (r1 < gUnknown_02038540.unk1) + { + gUnknown_02038540.unk0 = 0; + sub_80A78E8(); + } + } +} + +static void sub_80A7630(void) +{ + gUnknown_02038540.unk0 = 0; +} + +static void sub_80A763C(void) +{ + struct UnknownStruct3 *r4 = &gUnknown_02038540; + + switch (sub_80A78C4()) + { + case FALSE: + sub_80A48E8(gUnknown_02038563, 0, 7); + break; + case TRUE: + r4->unk0 = 1; + r4->unk1 = 0; + r4->unk2 = 0; + break; + } +} + +static void sub_80A7678(void) +{ + if (gUnknown_02038540.unk0 == 1) + sub_80A78E8(); + gUnknown_02038540.unk0 = 0; +} + +static void sub_80A7694(void) +{ + gUnknown_02038540.unk2 = 1; +} + +static void sub_80A76A0(void) +{ + MenuZeroFillWindowRect(14, 2, 29, 18); + sub_80A7678(); +} + +static bool32 sub_80A76B8(void) +{ + struct UnknownStruct3 *s = &gUnknown_02038540; + + return (s->unk0 == 0); +} + +static bool32 sub_80A76D0(void) +{ + struct UnknownStruct3 *s = &gUnknown_02038540; + + return (s->unk1 > 5); +} + +static void sub_80A76E8(void) +{ + if (gUnknown_02038544.unk0 == 1) + { + DisplayItemMessageOnField( + gUnknown_02038544.unk1, + gUnknown_02038544.unk4, + gUnknown_02038544.unk8, + gUnknown_02038544.unk2); + gUnknown_02038544.unk0 = 0; + } +} + +static void sub_80A770C(void) +{ + gUnknown_02038544.unk0 = 0; +} + +static void DisplayCannotUseItemMessage(int a, const u8 *b, TaskFunc func, int d) +{ + struct UnknownStruct4 *r4 = &gUnknown_02038544; + + switch (sub_80A7924()) + { + case 0: + DisplayItemMessageOnField(a, b, func, d); + break; + case 2: + r4->unk0 = 1; + r4->unk1 = a; + r4->unk4 = b; + r4->unk8 = func; + r4->unk2 = d; + break; + } +} + +static void sub_80A7768(void) +{ + struct UnknownStruct5 *r4 = &gUnknown_02038550; + + if (r4->unk0 == 2) + { + if (r4->unk1 != 0) + { + if (r4->unk2 != 1) + { + const u8 *text = sItemPopupMenuActions[sPopupMenuActionList[r4->unk1 - 1]].text; + int var = r4->unk1 - 1; + + MenuPrint(text, 7, var * 2 + 1 + r4->unk3); + } + else + { + const u8 *text; + int var; + + if (r4->unk1 == 1) + text = sub_80A4B90(gScriptItemId); + else + text = sItemPopupMenuActions[sPopupMenuActionList[r4->unk1 - 1]].text; + var = r4->unk1 - 1; + MenuPrint(text, (var >> 1) * 6 + 1, (var & 1) * 2 + 8); + } + if (r4->unk1 == gUnknown_02038564) + { + r4->unk0 = 0; + sub_80A7970(); + } + } + r4->unk1++; + } +} + +static void sub_80A7828(void) +{ + gUnknown_02038550.unk0 = 0; +} + +static void sub_80A7834(int a, int b) +{ + struct UnknownStruct5 *r4 = &gUnknown_02038550; + + switch (sub_80A7958()) + { + case 1: + r4->unk0 = 2; + r4->unk1 = 0; + r4->unk2 = a; + r4->unk3 = b; + break; + case 2: + r4->unk0 = 1; + r4->unk1 = 0; + r4->unk2 = a; + r4->unk3 = b; + break; + } +} + +static void sub_80A7868(void) +{ + if (gUnknown_02038550.unk0 == 2) + gUnknown_02038550.unk0 = 1; +} + +static void sub_80A7880(void) +{ + switch (gUnknown_02038550.unk0) + { + case 1: + gUnknown_02038550.unk0 = 2; + break; + case 0: + sub_80A7970(); + break; + } +} + +static bool32 sub_80A78A0(void) +{ + struct UnknownStruct5 *r0 = &gUnknown_02038550; + + return (r0->unk0 == 0); +} + +static void sub_80A78B8(void) +{ + gUnknown_02038554.unk0 = 0; +} + +static bool32 sub_80A78C4(void) +{ + bool32 retVal; + + if (gLinkOpen == TRUE) + { + sub_80A7868(); + sub_80A75A8(); + retVal = TRUE; + } + else + { + retVal = FALSE; + } + return retVal; +} + +static void sub_80A78E8(void) +{ + sub_80A7880(); +} + +static int sub_80A78F4(void) +{ + int retVal; + + if (gLinkOpen == TRUE) + { + if (sub_80A76B8() != 0) + retVal = 1; + else + retVal = 2; + } + else + { + retVal = 0; + } + return retVal; +} + +static void sub_80A7918(void) +{ + sub_80A76E8(); +} + +static int sub_80A7924(void) +{ + if (gLinkOpen == TRUE && sub_80A76B8() == 0) + { + if (sub_80A76D0() != 0) + { + sub_80A7678(); + return 0; + } + } + else + { + return 0; + } + sub_80A7694(); + return 2; +} + +static int sub_80A7958(void) +{ + if (sub_80A76B8() == 0) + return 2; + sub_80A75A8(); + return 1; +} + +static void sub_80A7970(void) +{ + sub_80A75C4(); +} + +static void sub_80A797C(void) +{ + gUnknown_02038554.unk0 = 1; +} + +static int sub_80A7988(void) +{ + int val = gUnknown_02038554.unk0; + + gUnknown_02038554.unk0 = 0; + return val; +} + +static const u16 gPalette_83C170C[] = INCBIN_U16("graphics/unknown/83C170C.gbapal"); +static const u8 gSpriteImage_83C172C[] = INCBIN_U8("graphics/unknown_sprites/83C172C.4bpp"); + +const u8 gSpriteImage_UnusedCherry[] = INCBIN_U8("graphics/unused/cherry.4bpp"); +const u16 gSpritePalette_UnusedCherry[] = INCBIN_U16("graphics/unused/cherry.gbapal"); + +//------------------------------------------------------------------------------ +// Bag Sprite +//------------------------------------------------------------------------------ + +static const struct OamData sBagSpriteOamData = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 2, + .paletteNum = 7, + .affineParam = 0, +}; + +static const union AnimCmd sBagSpriteAnimSeq0[] = +{ + ANIMCMD_FRAME(0, 4), + ANIMCMD_END, +}; + +static const union AnimCmd sBagSpriteAnimSeq1[] = +{ + ANIMCMD_FRAME(64, 4), + ANIMCMD_END, +}; + +static const union AnimCmd sBagSpriteAnimSeq5[] = +{ + ANIMCMD_FRAME(128, 4), + ANIMCMD_END, +}; + +static const union AnimCmd sBagSpriteAnimSeq2[] = +{ + ANIMCMD_FRAME(192, 4), + ANIMCMD_END, +}; + +static const union AnimCmd sBagSpriteAnimSeq3[] = +{ + ANIMCMD_FRAME(256, 4), + ANIMCMD_END, +}; + +static const union AnimCmd sBagSpriteAnimSeq4[] = +{ + ANIMCMD_FRAME(320, 4), + ANIMCMD_END, +}; + +static const union AnimCmd *const sBagSpriteAnimTable[] = +{ + sBagSpriteAnimSeq0, + sBagSpriteAnimSeq1, + sBagSpriteAnimSeq2, + sBagSpriteAnimSeq3, + sBagSpriteAnimSeq4, + sBagSpriteAnimSeq5, +}; + +static const union AffineAnimCmd sBagSpriteAffineAnimSeq[] = +{ + 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, +}; + +static const union AffineAnimCmd *const sBagSpriteAffineAnimTable[] = +{ + sBagSpriteAffineAnimSeq, +}; + +static const struct CompressedSpriteSheet sMaleBagSpriteSheet = {gBagMaleTiles, 0x3000, 30000}; +static const struct CompressedSpriteSheet sFemaleBagSpriteSheet = {gBagFemaleTiles, 0x3000, 30000}; +static const struct CompressedSpritePalette sBagSpritePalette = {gBagPalette, 30000}; + +static void sub_80A7998(struct Sprite *sprite) +{ + sprite->animNum = 0; + sprite->data0 = 0; + sprite->data1 = 0; + sprite->data2 = 0; + sprite->data3 = 0; + sprite->data4 = 0; + sprite->callback = sub_80A79B4; +} + +static void sub_80A79B4(struct Sprite *sprite) +{ + if (gUnknown_0203855B != -1) + sub_80A79EC(sprite); + if (gUnknown_0203855C != 0) + sub_80A7A94(sprite); +} + +static void sub_80A79EC(struct Sprite *sprite) +{ + switch (sprite->data3) + { + case 0: + if (gUnknown_0203855B != 6) + { + sprite->animBeginning = TRUE; + sprite->animNum = gUnknown_0203855B; + gUnknown_0203855B = -1; + } + else + { + sprite->animBeginning = TRUE; + sprite->animNum = 0; + sprite->pos1.y -= 4; + sprite->data0 = 4; + sprite->data3 = 1; + sub_80A7AE4(sprite); + } + break; + case 1: + if (sprite->data0 != 0) + { + if (sprite->data1 != 0) + { + sprite->pos1.y++; + sprite->data0--; + } + sprite->data1 = (sprite->data1 + 1) & 1; + } + else + { + gUnknown_0203855B = -1; + sprite->data1 = 0; + sprite->data3 = 0; + } + break; + } +} + +static void sub_80A7A94(struct Sprite *sprite) +{ + switch (sprite->data4) + { + case 0: + sprite->oam.affineMode = 1; + sprite->affineAnims = sBagSpriteAffineAnimTable; + InitSpriteAffineAnim(sprite); + sprite->data4 = 1; + break; + case 1: + sprite->data2++; + if (sprite->data2 == 12) + sub_80A7AE4(sprite); + break; + } +} + +static void sub_80A7AE4(struct Sprite *sprite) +{ + gUnknown_0203855C = 0; + sprite->oam.affineMode = 0; + sprite->data2 = 0; + sprite->data4 = 0; + FreeOamMatrix(sprite->oam.matrixNum); +} + +static const struct SpriteTemplate sBagSpriteTemplate = +{ + .tileTag = 30000, + .paletteTag = 30000, + .oam = &sBagSpriteOamData, + .anims = sBagSpriteAnimTable, + .images = NULL, + .affineAnims = sBagSpriteAffineAnimTable, + .callback = sub_80A7998, +}; + +static void CreateBagSprite(void) +{ + CreateSprite(&sBagSpriteTemplate, 58, 40, 0); +} + +//------------------------------------------------------------------------------ +// Pokeball Sprite +//------------------------------------------------------------------------------ + +static const struct OamData gOamData_83C1CF8 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 4, + .size = 1, + .tileNum = 0, + .priority = 2, + .paletteNum = 8, + .affineParam = 0, +}; + +static const union AffineAnimCmd gSpriteAffineAnim_83C1D00[] = +{ + AFFINEANIMCMD_FRAME(0, 0, 8, 32), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd gSpriteAffineAnim_83C1D10[] = +{ + AFFINEANIMCMD_FRAME(0, 0, -8, 32), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd *const gSpriteAffineAnimTable_83C1D20[] = +{ + gSpriteAffineAnim_83C1D00, + gSpriteAffineAnim_83C1D10, +}; + +static const struct SpriteFrameImage gSpriteImageTable_83C1D28[] = +{ + {gSpriteImage_83C172C, sizeof(gSpriteImage_83C172C)}, +}; + +static const struct SpritePalette sPokeballSpritePalette = {gPalette_83C170C, 8}; + +static void sub_80A7B28(struct Sprite *sprite) +{ + sprite->data3 = 0; + sprite->data0 = 0; + sub_80A7B6C(sprite); + sprite->callback = sub_80A7B6C; +} + +static void sub_80A7B48(struct Sprite *sprite) +{ + sprite->centerToCornerVecX = sprite->data5 - ((sprite->data0 + 1) & 1); + sprite->centerToCornerVecY = sprite->data6 - ((sprite->data0 + 1) & 1); +} + +static void sub_80A7B6C(struct Sprite *sprite) +{ + if (sprite->data7 != 0) + { + switch (sprite->data3) + { + case 0: + sprite->oam.affineMode = 1; + if (sprite->data7 == 1) + sprite->affineAnims = gSpriteAffineAnimTable_83C1D20; + else + sprite->affineAnims = gSpriteAffineAnimTable_83C1D20 + 1; + InitSpriteAffineAnim(sprite); + sprite->data3 = 1; + sprite->data5 = sprite->centerToCornerVecX; + sprite->data6 = sprite->centerToCornerVecY; + sub_80A7B48(sprite); + break; + case 1: + sprite->data0++; + sub_80A7B48(sprite); + if (sprite->data0 == 32) + { + sprite->data0 = 0; + sprite->data3 = 0; + sprite->centerToCornerVecX = sprite->data5; + sprite->centerToCornerVecY = sprite->data6; + FreeOamMatrix(sprite->oam.matrixNum); + sprite->oam.affineMode = 0; + sprite->callback = SpriteCallbackDummy; + } + break; + } + } +} + +static const struct SpriteTemplate sPokeballSpriteTemplate = +{ + .tileTag = 0xFFFF, + .paletteTag = 8, + .oam = &gOamData_83C1CF8, + .anims = sBagSpriteAnimTable, + .images = gSpriteImageTable_83C1D28, + .affineAnims = gSpriteAffineAnimTable_83C1D20, + .callback = sub_80A7B28, +}; + +static void CreateBagPokeballSprite(u8 a) +{ + LoadSpritePalette(&sPokeballSpritePalette); + sPokeballSpriteId = CreateSprite(&sPokeballSpriteTemplate, 16, 88, 0); + gSprites[sPokeballSpriteId].data7 = a; +} + +static void sub_80A7C64(void) +{ + FreeSpritePaletteByTag(8); + FreeOamMatrix(gSprites[sPokeballSpriteId].oam.matrixNum); + DestroySprite(&gSprites[sPokeballSpriteId]); +} + +static const struct OamData sBerrySpriteOamData = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 1, + .paletteNum = 7, + .affineParam = 0, +}; + +static const struct OamData gOamData_83C1D58 = +{ + .y = 0, + .affineMode = 3, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 0, + .paletteNum = 7, + .affineParam = 0, +}; + +static const union AnimCmd sBerrySpriteAnimSeq[] = +{ + ANIMCMD_FRAME(0, 0), + ANIMCMD_END, +}; + +static const union AnimCmd *const sBerrySpriteAnimTable[] = +{ + sBerrySpriteAnimSeq, +}; + +static const struct SpriteFrameImage sBerrySpriteImageTable[] = +{ + {ewramBerryPic, 0x800}, +}; + +static void SpriteCB_BerrySprite(struct Sprite *); +static const struct SpriteTemplate sBerrySpriteTemplate = +{ + .tileTag = 0xFFFF, + .paletteTag = 30020, + .oam = &sBerrySpriteOamData, + .anims = sBerrySpriteAnimTable, + .images = sBerrySpriteImageTable, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_BerrySprite, +}; + +static const union AffineAnimCmd gSpriteAffineAnim_83C1D8C[] = +{ + AFFINEANIMCMD_FRAME(-1, -1, -3, 96), + AFFINEANIMCMD_FRAME(0, 0, 0, 16), + AFFINEANIMCMD_FRAME(-2, -2, -1, 64), + AFFINEANIMCMD_FRAME(-8, 0, 0, 16), + AFFINEANIMCMD_FRAME(0, -8, 0, 16), + AFFINEANIMCMD_FRAME(256, 256, 0, 0), + AFFINEANIMCMD_JUMP(0), +}; + +static const union AffineAnimCmd gSpriteAffineAnim_83C1DC4[] = +{ + AFFINEANIMCMD_FRAME(-1, -1, 3, 96), + AFFINEANIMCMD_FRAME(0, 0, 0, 16), + AFFINEANIMCMD_FRAME(-2, -2, 1, 64), + AFFINEANIMCMD_FRAME(-8, 0, 0, 16), + AFFINEANIMCMD_FRAME(0, -8, 0, 16), + AFFINEANIMCMD_FRAME(256, 256, 0, 0), + AFFINEANIMCMD_JUMP(0), +}; + +static const union AffineAnimCmd *const gSpriteAffineAnimTable_83C1DFC[] = +{ + gSpriteAffineAnim_83C1D8C, + gSpriteAffineAnim_83C1DC4, +}; + +static const struct SpriteTemplate gSpriteTemplate_83C1E04 = +{ + .tileTag = 0xFFFF, + .paletteTag = 30020, + .oam = &gOamData_83C1D58, + .anims = sBerrySpriteAnimTable, + .images = sBerrySpriteImageTable, + .affineAnims = gSpriteAffineAnimTable_83C1DFC, + .callback = SpriteCallbackDummy, +}; + +static const struct {const u8 *lzPic; const u8 *lzPalette;} sBerryGraphicsTable[] = +{ + {gBerryPic_Cheri, gBerryPalette_Cheri}, + {gBerryPic_Chesto, gBerryPalette_Chesto}, + {gBerryPic_Pecha, gBerryPalette_Pecha}, + {gBerryPic_Rawst, gBerryPalette_Rawst}, + {gBerryPic_Aspear, gBerryPalette_Aspear}, + {gBerryPic_Leppa, gBerryPalette_Leppa}, + {gBerryPic_Oran, gBerryPalette_Oran}, + {gBerryPic_Persim, gBerryPalette_Persim}, + {gBerryPic_Lum, gBerryPalette_Lum}, + {gBerryPic_Sitrus, gBerryPalette_Sitrus}, + {gBerryPic_Figy, gBerryPalette_Figy}, + {gBerryPic_Wiki, gBerryPalette_Wiki}, + {gBerryPic_Mago, gBerryPalette_Mago}, + {gBerryPic_Aguav, gBerryPalette_Aguav}, + {gBerryPic_Iapapa, gBerryPalette_Iapapa}, + {gBerryPic_Razz, gBerryPalette_Razz}, + {gBerryPic_Bluk, gBerryPalette_Bluk}, + {gBerryPic_Nanab, gBerryPalette_Nanab}, + {gBerryPic_Wepear, gBerryPalette_Wepear}, + {gBerryPic_Pinap, gBerryPalette_Pinap}, + {gBerryPic_Pomeg, gBerryPalette_Pomeg}, + {gBerryPic_Kelpsy, gBerryPalette_Kelpsy}, + {gBerryPic_Qualot, gBerryPalette_Qualot}, + {gBerryPic_Hondew, gBerryPalette_Hondew}, + {gBerryPic_Grepa, gBerryPalette_Grepa}, + {gBerryPic_Tamato, gBerryPalette_Tamato}, + {gBerryPic_Cornn, gBerryPalette_Cornn}, + {gBerryPic_Magost, gBerryPalette_Magost}, + {gBerryPic_Rabuta, gBerryPalette_Rabuta}, + {gBerryPic_Nomel, gBerryPalette_Nomel}, + {gBerryPic_Spelon, gBerryPalette_Spelon}, + {gBerryPic_Pamtre, gBerryPalette_Pamtre}, + {gBerryPic_Watmel, gBerryPalette_Watmel}, + {gBerryPic_Durin, gBerryPalette_Durin}, + {gBerryPic_Belue, gBerryPalette_Belue}, + {gBerryPic_Liechi, gBerryPalette_Liechi}, + {gBerryPic_Ganlon, gBerryPalette_Ganlon}, + {gBerryPic_Salac, gBerryPalette_Salac}, + {gBerryPic_Petaya, gBerryPalette_Petaya}, + {gBerryPic_Apicot, gBerryPalette_Apicot}, + {gBerryPic_Lansat, gBerryPalette_Lansat}, + {gBerryPic_Starf, gBerryPalette_Starf}, + {gBerryPic_Enigma, gBerryPalette_Enigma}, +}; + +static void DrawBerryPic(const u8 *src, u8 *dst) +{ + u8 i; + u8 j; + + memset(dst, 0, 0x800); + dst += 0x100; + for (i = 0; i < 6; i++) + { + dst += 32; + for (j = 0; j < 6; j++) + { + memcpy(dst, src, 32); + dst += 32; + src += 32; + } + if (i != 5) + dst += 32; + } +} + +static void LoadBerryPic(u8 berryId) +{ + struct SpritePalette spritePal; + + if (berryId == 0x2A && IsEnigmaBerryValid() == TRUE) + { + DrawBerryPic(gSaveBlock1.enigmaBerry.pic, ewramBerryPic); + spritePal.data = gSaveBlock1.enigmaBerry.palette; + spritePal.tag = 0x7544; + LoadSpritePalette(&spritePal); + } + else + { + spritePal.data = (u16 *)sBerryGraphicsTable[berryId].lzPalette; + spritePal.tag = 0x7544; + LoadCompressedObjectPalette((struct CompressedSpritePalette *)&spritePal); + sub_800D238(sBerryGraphicsTable[berryId].lzPic, ewramBerryPicTemp); + DrawBerryPic(ewramBerryPicTemp, ewramBerryPic); + } +} + +u8 CreateBerrySprite(u8 berryId, s16 x, s16 y) +{ + LoadBerryPic(berryId); + return CreateSprite(&sBerrySpriteTemplate, x, y, 0); +} + +static void SpriteCB_BerrySprite(struct Sprite *sprite) +{ + sprite->pos2.y = -gUnknown_030041B4; +} + +void sub_80A7DD4(void) +{ + FreeSpritePaletteByTag(0x7544); + FreeSpritePaletteByTag(8); +} + +u8 sub_80A7DEC(u8 berryId, u8 x, u8 y, bool8 animate) +{ + u8 spriteId; + + FreeSpritePaletteByTag(0x7544); + LoadBerryPic(berryId); + spriteId = CreateSprite(&gSpriteTemplate_83C1E04, x, y, 0); + if (animate == TRUE) + StartSpriteAffineAnim(&gSprites[spriteId], 1); + return spriteId; +} + +const struct CompressedSpriteSheet gUnknown_083C1F74 = {gBerryCheckCircle_Gfx, 2048, 0x2710}; + +const struct CompressedSpritePalette gUnknown_083C1F7C = {gBerryCheck_Pal, 0x2710}; + +static const struct OamData gOamData_83C1F84 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 2, + .tileNum = 0, + .priority = 1, + .paletteNum = 0, + .affineParam = 0, +}; + +static const union AnimCmd gSpriteAnim_83C1F8C[] = +{ + ANIMCMD_FRAME(0, 0), + ANIMCMD_END, +}; + +static const union AnimCmd *const gSpriteAnimTable_83C1F94[] = +{ + gSpriteAnim_83C1F8C, +}; + +static const struct SpriteTemplate gSpriteTemplate_83C1F98 = +{ + .tileTag = 10000, + .paletteTag = 10000, + .oam = &gOamData_83C1F84, + .anims = gSpriteAnimTable_83C1F94, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCB_BerrySprite, +}; + +u8 sub_80A7E5C(s16 x) +{ + return CreateSprite(&gSpriteTemplate_83C1F98, x, 99, 0); +} diff --git a/src/item_use.c b/src/item_use.c index b906f91ad..1750c1584 100644 --- a/src/item_use.c +++ b/src/item_use.c @@ -55,7 +55,7 @@ extern u16 gBattleTypeFlags; static const u8 gSSTidalBetaString[] = _("この チケットで ふねに のりほうだい\nはやく のってみたいな"); static const u8 gSSTidalBetaString2[] = _("この チケットで ふねに のりほうだい\nはやく のってみたいな"); -static const struct TextStruct gUnknown_083D61DC[2] = +static const u8 *const gUnknown_083D61DC[2] = { gSSTidalBetaString, gSSTidalBetaString2, @@ -768,11 +768,11 @@ void ItemUseOutOfBattle_SSTicket(u8 taskId) if(gTasks[taskId].data[2] == 0) { MenuZeroFillWindowRect(0, 0xD, 0xD, 0x14); - DisplayItemMessageOnField(taskId, (u8 *)gUnknown_083D61DC[ItemId_GetSecondaryId(gScriptItemId)].text, sub_80C9BB8, 1); + DisplayItemMessageOnField(taskId, gUnknown_083D61DC[ItemId_GetSecondaryId(gScriptItemId)], sub_80C9BB8, 1); } else { - DisplayItemMessageOnField(taskId, (u8 *)gUnknown_083D61DC[ItemId_GetSecondaryId(gScriptItemId)].text, sub_80C9BD8, 0); + DisplayItemMessageOnField(taskId, gUnknown_083D61DC[ItemId_GetSecondaryId(gScriptItemId)], sub_80C9BD8, 0); } } diff --git a/src/menu_cursor.c b/src/menu_cursor.c index 2dc36cf32..c007296dc 100644 --- a/src/menu_cursor.c +++ b/src/menu_cursor.c @@ -555,7 +555,7 @@ _0814AA24:\n\ cmp r1, 0x7\n\ bgt _0814A99E\n\ _0814AA3E:\n\ - ldr r5, _0814AAAC @ =0x0843d6d8\n\ + ldr r5, _0814AAAC @ =gUnknown_0842F798\n\ ldr r0, [r5]\n\ ldr r1, [r5, 0x4]\n\ str r0, [r4]\n\ @@ -611,7 +611,7 @@ _0814AA9C:\n\ pop {r0}\n\ bx r0\n\ .align 2, 0\n\ -_0814AAAC: .4byte 0x0843d6d8\n\ +_0814AAAC: .4byte gUnknown_0842F798\n\ _0814AAB0: .4byte gUnknown_0203A3D0\n\ _0814AAB4: .4byte gSprites\n\ _0814AAB8: .4byte gSubspriteTables_842F5C0\n\ diff --git a/src/menu_helpers.c b/src/menu_helpers.c new file mode 100644 index 000000000..9915d67ac --- /dev/null +++ b/src/menu_helpers.c @@ -0,0 +1,572 @@ +#include "global.h" +#include "item_menu.h" +#include "items.h" +#include "link.h" +#include "mail_data.h" +#include "main.h" +#include "map_constants.h" +#include "menu.h" +#include "menu_helpers.h" +#include "rom4.h" +#include "songs.h" +#include "sound.h" +#include "sprite.h" +#include "task.h" +#include "text.h" + +#define SCROLL_INDICATOR_PAL_TAG 6 + +static void sub_80F9834(struct Sprite *sprite); + +static EWRAM_DATA u8 gUnknown_020388C0[4] = {0}; +static EWRAM_DATA struct YesNoFuncTable gUnknown_020388C4 = {0}; + +static TaskFunc gUnknown_0300074C; + +static const u8 gSpriteImage_83E5808[] = INCBIN_U8("graphics/unknown_sprites/83E59A0/0.4bpp"); + +static const u8 gSpriteImage_83E5848[] = INCBIN_U8("graphics/unknown_sprites/83E59A0/1.4bpp"); + +static const u8 gSpriteImage_83E5888[] = INCBIN_U8("graphics/unknown_sprites/83E59B0/0.4bpp"); + +static const u8 gSpriteImage_83E58C8[] = INCBIN_U8("graphics/unknown_sprites/83E59B0/1.4bpp"); + +static const u8 gSpriteImage_83E5908[] = INCBIN_U8("graphics/unknown_sprites/83E59C0/0.4bpp"); + +static const u8 gSpriteImage_83E5928[] = INCBIN_U8("graphics/unknown_sprites/83E59C0/1.4bpp"); + +static const u16 Palette_3E5948[] = INCBIN_U16("graphics/interface/83E5948.gbapal"); + +static const struct SpritePalette gUnknown_083E5968 = { Palette_3E5948, SCROLL_INDICATOR_PAL_TAG }; + +static const struct OamData gOamData_83E5970 = +{ + .tileNum = 1 +}; + +static const struct OamData gOamData_83E5978 = +{ + .shape = ST_OAM_H_RECTANGLE, + .tileNum = 1 +}; + +static const struct OamData gOamData_83E5980 = +{ + .shape = ST_OAM_V_RECTANGLE, + .tileNum = 1 +}; + +static const union AnimCmd gSpriteAnim_83E5988[] = +{ + ANIMCMD_FRAME(0, 0), + ANIMCMD_END, +}; + +static const union AnimCmd gSpriteAnim_83E5990[] = +{ + ANIMCMD_FRAME(1, 0), + ANIMCMD_END, +}; + +static const union AnimCmd *const gSpriteAnimTable_83E5998[] = +{ + gSpriteAnim_83E5988, + gSpriteAnim_83E5990, +}; + +static const struct SpriteFrameImage gSpriteImageTable_83E59A0[] = +{ + { gSpriteImage_83E5808, 0x40 }, + { gSpriteImage_83E5848, 0x40 }, +}; + +static const struct SpriteFrameImage gSpriteImageTable_83E59B0[] = +{ + { gSpriteImage_83E5888, 0x40 }, + { gSpriteImage_83E58C8, 0x40 }, +}; + +static const struct SpriteFrameImage gSpriteImageTable_83E59C0[] = +{ + { gSpriteImage_83E5908, 0x20 }, + { gSpriteImage_83E5928, 0x20 }, +}; + +static const struct SpriteTemplate gSpriteTemplate_83E59D0 = +{ + .tileTag = 0xFFFF, + .paletteTag = SCROLL_INDICATOR_PAL_TAG, + .oam = &gOamData_83E5978, + .anims = gSpriteAnimTable_83E5998, + .images = gSpriteImageTable_83E59A0, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80F9834, +}; + +static const struct SpriteTemplate gSpriteTemplate_83E59E8 = +{ + .tileTag = 0xFFFF, + .paletteTag = SCROLL_INDICATOR_PAL_TAG, + .oam = &gOamData_83E5980, + .anims = gSpriteAnimTable_83E5998, + .images = gSpriteImageTable_83E59B0, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80F9834, +}; + +static const struct SpriteTemplate gSpriteTemplate_83E5A00 = +{ + .tileTag = 0xFFFF, + .paletteTag = SCROLL_INDICATOR_PAL_TAG, + .oam = &gOamData_83E5970, + .anims = gSpriteAnimTable_83E5998, + .images = gSpriteImageTable_83E59C0, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +void sub_80F9020(void) +{ + memset(&gBGTilemapBuffers[1], 0, 0x800); + memset(&gBGTilemapBuffers[2], 0, 0x800); + memset(&gBGTilemapBuffers[3], 0, 0x800); +} + +// display message box, fill box with tile if tile is not zero, print string +static void PrintMessage(const u8 *str, u16 tile) +{ + MenuDisplayMessageBox(); + if (tile) + { + sub_80A3FA0(&gBGTilemapBuffers[1][0], 2, 15, 26, 4, tile); + } + sub_8072044(str); +} + +static void sub_80F9090(u8 taskId) +{ + if (MenuUpdateWindowText() == TRUE) + { + gUnknown_0300074C(taskId); + } +} + +void DisplayItemMessageOnField(u8 taskId, const u8 *str, TaskFunc callback, u16 tile) +{ + PrintMessage(str, tile); + gUnknown_0300074C = callback; + gTasks[taskId].func = sub_80F9090; +} + +static void Task_CallYesOrNoCallback(u8 taskId) +{ + switch (ProcessMenuInputNoWrap_()) + { + case 0: + PlaySE(SE_SELECT); + gUnknown_020388C4.yesFunc(taskId); + break; + case 1: + case -1: + PlaySE(SE_SELECT); + gUnknown_020388C4.noFunc(taskId); + } +} + +void DoYesNoFuncWithChoice(u8 taskId, const struct YesNoFuncTable *funcTable) +{ + gUnknown_020388C4 = *funcTable; + gTasks[taskId].func = Task_CallYesOrNoCallback; +} + +static void PrintStringWithPalette(const u8 *str, u8 paletteNum, u8 left, u8 top) +{ + u8 paletteStr[] = _("{PALETTE 0}"); + + if (paletteNum != 0xFF) + { + paletteStr[2] = paletteNum; + StringCopy(gStringVar4, paletteStr); + StringAppend(gStringVar4, str); + paletteStr[2] = gMenuWindowPtr->paletteNum; + StringAppend(gStringVar4, paletteStr); + } + else + { + StringCopy(gStringVar4, str); + } + + MenuPrint(gStringVar4, left, top); +} + +// unused +void PrintNumberWithPalette(s32 value, u8 paletteNum, u8 n, u8 mode, u8 left, u8 top) +{ + ConvertIntToDecimalStringN(gStringVar1, value, mode, n); + if (paletteNum != 0xFF) + { + PrintStringWithPalette(gStringVar1, paletteNum, left, top); + } + else + { + MenuPrint(gStringVar1, left, top); + } +} + +// unused +void PrintTriangleCursorWithPalette(u8 left, u8 top, u8 paletteNum) +{ + u8 cursorStr[] = _("▶"); + PrintStringWithPalette(cursorStr, paletteNum, left, top); +} + +u8 sub_80F9284(void) +{ + if (gSaveBlock2.optionsButtonMode == OPTIONS_BUTTON_MODE_LR) + { + if (gMain.newKeys & L_BUTTON) + { + return 1; + } + if (gMain.newKeys & R_BUTTON) + { + return 2; + } + } + + return 0; +} + +u8 sub_80F92BC(void) +{ + if (gSaveBlock2.optionsButtonMode == OPTIONS_BUTTON_MODE_LR) + { + if (gMain.newAndRepeatedKeys & L_BUTTON) + { + return 1; + } + if (gMain.newAndRepeatedKeys & R_BUTTON) + { + return 2; + } + } + + return 0; +} + +bool8 sub_80F92F4(u16 itemId) +{ + if (itemId != ITEM_ENIGMA_BERRY) + { + return TRUE; + } + + if (!(gSaveBlock1.location.mapGroup == MAP_GROUP_TRADE_CENTER && gSaveBlock1.location.mapNum == MAP_ID_TRADE_CENTER)) + { + return TRUE; + } + + return FALSE; +} + +bool8 sub_80F931C(u16 itemId) +{ + if (is_c1_link_related_active() != TRUE) + { + return TRUE; + } + + if (ItemIsMail(itemId) != TRUE) + { + return TRUE; + } + + return FALSE; +} + +bool8 sub_80F9344(void) +{ + if (is_c1_link_related_active() == TRUE || gReceivedRemoteLinkPlayers == 1) + { + return TRUE; + } + + return FALSE; +} + +void sub_80F9368(void) +{ + u8 *addr; + u32 size; + + REG_DISPCNT = 0; + REG_BG3CNT = 0; + REG_BG2CNT = 0; + REG_BG1CNT = 0; + REG_BG0CNT = 0; + REG_BG3HOFS = 0; + REG_BG3VOFS = 0; + REG_BG2HOFS = 0; + REG_BG2VOFS = 0; + REG_BG1HOFS = 0; + REG_BG1VOFS = 0; + REG_BG0HOFS = 0; + REG_BG0VOFS = 0; + + addr = (u8 *)VRAM; + size = 0x18000; + while (1) + { + DmaFill16(3, 0, addr, 0x1000); + addr += 0x1000; + size -= 0x1000; + if (size <= 0x1000) + { + DmaFill16(3, 0, addr, size); + break; + } + } + + DmaClear32(3, OAM, OAM_SIZE); + DmaClear16(3, PLTT, PLTT_SIZE); +} + +void sub_80F9438(void) +{ + SetVBlankCallback(NULL); + SetHBlankCallback(NULL); +} + +void sub_80F944C(void) +{ + u8 i; + + for (i = 0; i < 4; i++) + { + gUnknown_020388C0[i] = 0xFF; + } + + FreeSpritePaletteByTag(SCROLL_INDICATOR_PAL_TAG); + LoadSpritePalette(&gUnknown_083E5968); +} + +void sub_80F9480(u8 *data, u8 n) +{ + u8 i; + + for (i = 0; i < n; i++) + { + data[i] = 0xFF; + } +} + +void sub_80F94A4(u8 animNum, u8 *spriteId, s16 x, s16 y) +{ + if (animNum <= 5) + { + if (*spriteId == 0xFF) + { + *spriteId = CreateSprite(&gSpriteTemplate_83E5A00, x, y, 0); + } + animNum -= 4; + StartSpriteAnim(&gSprites[*spriteId], animNum); + } +} + +void sub_80F94F8(u8 *spriteId) +{ + if (*spriteId != 0xFF) + { + DestroySprite(&gSprites[*spriteId]); + *spriteId = 0xFF; + } +} + +void sub_80F9520(u8 *data, u8 n) +{ + u8 i; + + for (i = 0; i < 8; i++) + { + sub_80F94F8(&data[i]); + } +} + +void CreateVerticalScrollIndicators(u8 id, u16 x, u16 y) +{ + if (id >= 4) + { + return; + } + + switch (id) + { + case 0: + if (gUnknown_020388C0[0] == 0xFF) + { + gUnknown_020388C0[0] = CreateSprite(&gSpriteTemplate_83E59D0, x, y, 0); + gSprites[gUnknown_020388C0[0]].data2 = -1; + if (gUnknown_020388C0[1] != 0xFF) + { + gSprites[gUnknown_020388C0[0]].pos2.y = gSprites[gUnknown_020388C0[1]].pos2.y * -1; + gSprites[gUnknown_020388C0[0]].data3 = gSprites[gUnknown_020388C0[1]].data3; + } + else + { + gSprites[gUnknown_020388C0[0]].data3 = 0; + } + } + break; + + case 1: + if (gUnknown_020388C0[1] == 0xFF) + { + gUnknown_020388C0[1] = CreateSprite(&gSpriteTemplate_83E59D0, x, y, 0); + gSprites[gUnknown_020388C0[1]].data2 = 1; + if (gUnknown_020388C0[0] != 0xFF) + { + gSprites[gUnknown_020388C0[1]].pos2.y = gSprites[gUnknown_020388C0[0]].pos2.y * -1; + gSprites[gUnknown_020388C0[1]].data3 = gSprites[gUnknown_020388C0[0]].data3; + } + else + { + gSprites[gUnknown_020388C0[1]].data3 = 0; + } + } + break; + + case 2: + if (gUnknown_020388C0[2] == 0xFF) + { + gUnknown_020388C0[2] = CreateSprite(&gSpriteTemplate_83E59E8, x, y, 0); + gSprites[gUnknown_020388C0[2]].data0 = -1; + if (gUnknown_020388C0[3] != 0xFF) + { + gSprites[gUnknown_020388C0[2]].pos2.x = gSprites[gUnknown_020388C0[3]].pos2.x * -1; + gSprites[gUnknown_020388C0[2]].data1 = gSprites[gUnknown_020388C0[3]].data1; + } + else + { + gSprites[gUnknown_020388C0[2]].data1 = 0; + } + } + break; + + case 3: + if (gUnknown_020388C0[3] == 0xFF) + { + gUnknown_020388C0[3] = CreateSprite(&gSpriteTemplate_83E59E8, x, y, 0); + gSprites[gUnknown_020388C0[3]].data0 = 1; + if (gUnknown_020388C0[2] != 0xFF) + { + gSprites[gUnknown_020388C0[3]].pos2.x = gSprites[gUnknown_020388C0[2]].pos2.x * -1; + gSprites[gUnknown_020388C0[3]].data1 = gSprites[gUnknown_020388C0[2]].data1; + } + else + { + gSprites[gUnknown_020388C0[3]].data1 = 0; + } + } + break; + } + + StartSpriteAnim(&gSprites[gUnknown_020388C0[id]], id & 1); +} + +void sub_80F979C(u8 id, bool8 invisible) +{ + if (id < 4 && gUnknown_020388C0[id] != 0xFF) + { + gSprites[gUnknown_020388C0[id]].invisible = invisible; + } +} + +void DestroyVerticalScrollIndicator(u8 id) +{ + if (id < 4 && gUnknown_020388C0[id] != 0xFF) + { + DestroySprite(&gSprites[gUnknown_020388C0[id]]); + gUnknown_020388C0[id] = 0xFF; + } +} + +void LoadScrollIndicatorPalette(void) +{ + LoadSpritePalette(&gUnknown_083E5968); +} + +void BuyMenuFreeMemory(void) +{ + FreeSpritePaletteByTag(SCROLL_INDICATOR_PAL_TAG); +} + +static void sub_80F9834(struct Sprite *sprite) +{ + if (sprite->data1 == 0) + { + sprite->pos2.x += sprite->data0; + } + if (sprite->data3 == 0) + { + sprite->pos2.y += sprite->data2; + } + sprite->data1++; + sprite->data3++; + if (sprite->data1 > 2) + { + sprite->data1 = 0; + } + if (sprite->data3 > 2) + { + sprite->data3 = 0; + } + if (sprite->pos2.x == 8 || sprite->pos2.x == -8) + { + sprite->pos2.x = 0; + } + if (sprite->pos2.y == 8 || sprite->pos2.y == -8) + { + sprite->pos2.y = 0; + } +} + +void sub_80F98A4(u8 id) +{ + if (gUnknown_020388C0[id] != 0xFF && id < 4) + { + gSprites[gUnknown_020388C0[id]].callback = SpriteCallbackDummy; + } +} + +void StartVerticalScrollIndicators(u8 id) +{ + if (gUnknown_020388C0[id] != 0xFF && id < 4) + { + gSprites[gUnknown_020388C0[id]].callback = sub_80F9834; + } +} + +static void sub_80F9914(u8 id) +{ + if (gUnknown_020388C0[id] != 0xFF && id < 4) + { + gSprites[gUnknown_020388C0[id]].pos2.x = 0; + gSprites[gUnknown_020388C0[id]].pos2.y = 0; + gSprites[gUnknown_020388C0[id]].data1 = 0; + gSprites[gUnknown_020388C0[id]].data3 = 0; + } +} + +void PauseVerticalScrollIndicator(u8 id) +{ + sub_80F98A4(id); + sub_80F9914(id); +} + +void sub_80F9988(u8 id, u8 priority) +{ + if (gUnknown_020388C0[id] != 0xFF && id < 4) + { + gSprites[gUnknown_020388C0[id]].oam.priority = priority; + } +} diff --git a/src/new_game.c b/src/new_game.c index 33aacd10a..4b6ea1dd2 100644 --- a/src/new_game.c +++ b/src/new_game.c @@ -114,7 +114,7 @@ void sub_8052E4C(void) sub_808C0A0(); ZeroPlayerPartyMons(); ZeroEnemyPartyMons(); - sub_80A3684(); + ResetBagScrollPositions(); } void NewGameInitData(void) diff --git a/src/option_menu.c b/src/option_menu.c index 2463b11c6..7f8d76528 100644 --- a/src/option_menu.c +++ b/src/option_menu.c @@ -32,8 +32,9 @@ enum { MENUITEM_CANCEL, }; -extern u8 gUnknown_0839F63C[]; -extern u8 gUnknown_0839F5FC[]; //palette +const u16 gUnknown_0839F5FC[] = INCBIN_U16("graphics/misc/option_menu_text.gbapal"); +// note: this is only used in the Japanese release +const u8 gUnknown_0839F63C[] = INCBIN_U8("graphics/misc/option_menu_equals_sign.4bpp"); static void Task_OptionMenuFadeIn(u8 taskId); static void Task_OptionMenuProcessInput(u8 taskId); diff --git a/src/player_pc.c b/src/player_pc.c index 38e01b92e..adff9971a 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -30,9 +30,6 @@ extern void LoadScrollIndicatorPalette(void); extern void ClearMailStruct(struct MailStruct *); extern u8 sub_807D770(void); extern void sub_808B020(void); -extern void sub_80A4164(u8 *, u16, enum StringConvertMode, u8); -extern void sub_80A418C(u16, enum StringConvertMode, int, int, int); -extern void sub_80A6A30(void); extern void sub_80F944C(void); extern u8 *gPcItemMenuOptionOrder; @@ -100,7 +97,7 @@ static void Mailbox_MoveToBag(u8); static void Mailbox_Give(u8); static void Mailbox_Cancel(u8); -static const struct TextStruct gPCText_OptionDescList[] = +static const u8 *const gPCText_OptionDescList[] = { PCText_TakeOutItems, PCText_StoreItems, @@ -319,7 +316,7 @@ static void InitItemStorageMenu(u8 var) MenuDrawTextWindow(0, 0, 11, 9); PrintMenuItems(1, 1, 4, (struct MenuAction *)gPCText_ItemPCOptionsText); InitMenu(0, 1, 1, 4, var, 10); - ItemStorageMenuPrint(gPCText_OptionDescList[var].text); + ItemStorageMenuPrint(gPCText_OptionDescList[var]); } static void ItemStorageMenuPrint(const u8 *textPtr) @@ -334,13 +331,13 @@ static void ItemStorageMenuProcessInput(u8 var) { PlaySE(SE_SELECT); MoveMenuCursor(-1); - ItemStorageMenuPrint(gPCText_OptionDescList[GetMenuCursorPos()].text); + ItemStorageMenuPrint(gPCText_OptionDescList[GetMenuCursorPos()]); } else if (gMain.newAndRepeatedKeys & DPAD_DOWN) { PlaySE(SE_SELECT); MoveMenuCursor(1); - ItemStorageMenuPrint(gPCText_OptionDescList[GetMenuCursorPos()].text); + ItemStorageMenuPrint(gPCText_OptionDescList[GetMenuCursorPos()]); } else if (gMain.newKeys & A_BUTTON) { @@ -935,36 +932,36 @@ weirdCase: static void ItemStorage_PrintItemPcResponse(u16 itemId) { - u8 *string; + const u8 *string; switch(itemId) { case ITEMPC_GO_BACK_TO_PREV: - string = (u8 *)gMenuText_GoBackToPrev; + string = gMenuText_GoBackToPrev; break; case ITEMPC_HOW_MANY_TO_WITHDRAW: - string = (u8 *)gOtherText_HowManyToWithdraw; + string = gOtherText_HowManyToWithdraw; break; case ITEMPC_WITHDREW_THING: - string = (u8 *)gOtherText_WithdrewThing; + string = gOtherText_WithdrewThing; break; case ITEMPC_HOW_MANY_TO_TOSS: - string = (u8 *)gOtherText_HowManyToToss; + string = gOtherText_HowManyToToss; break; case ITEMPC_THREW_AWAY_ITEM: - string = (u8 *)gOtherText_ThrewAwayItem; + string = gOtherText_ThrewAwayItem; break; case ITEMPC_NO_MORE_ROOM: - string = (u8 *)gOtherText_NoMoreRoom; + string = gOtherText_NoMoreRoom; break; case ITEMPC_TOO_IMPORTANT: - string = (u8 *)gOtherText_TooImportant; + string = gOtherText_TooImportant; break; case ITEMPC_OKAY_TO_THROW_AWAY: - string = (u8 *)gOtherText_OkayToThrowAwayPrompt; + string = gOtherText_OkayToThrowAwayPrompt; break; case ITEMPC_SWITCH_WHICH_ITEM: - string = (u8 *)gOtherText_SwitchWhichItem; + string = gOtherText_SwitchWhichItem; break; default: string = ItemId_GetDescription(itemId); diff --git a/src/pokeblock.c b/src/pokeblock.c index b7fa5daa8..b7fa5daa8 100755..100644 --- a/src/pokeblock.c +++ b/src/pokeblock.c diff --git a/src/record_mixing.c b/src/record_mixing.c index e1a72cf2e..a8daa9220 100644 --- a/src/record_mixing.c +++ b/src/record_mixing.c @@ -6,11 +6,16 @@ #include "dewford_trend.h" #include "event_data.h" #include "fldeff_80C5CD4.h" +#include "item.h" +#include "items.h" +#include "load_save.h" #include "link.h" #include "mauville_old_man.h" #include "menu.h" #include "mystery_event_script.h" +#include "rng.h" #include "rom4.h" +#include "save.h" #include "script.h" #include "secret_base.h" #include "songs.h" @@ -20,25 +25,25 @@ #include "task.h" #include "tv.h" +extern u8 ewram[]; +#define unk_2018000 (*(struct PlayerRecords *)(ewram + 0x18000)) +#define unk_2008000 (*(struct PlayerRecords *)(ewram + 0x08000)) -extern void *recordMixingSecretBases; -extern void *recordMixingTvShows; -extern void *gUnknown_083D0274; -extern void *gUnknown_083D0278; -extern void *recordMixingEasyChatPairs; -extern void *gUnknown_083D0284; -extern u8 gUnknown_083D0288[2]; -extern u8 gUnknown_083D028A[2][3]; -extern u8 gUnknown_083D0290[9][4]; - -extern struct RecordMixing_UnknownStruct gUnknown_02038738; //Don't know what type this points to -extern struct RecordMixing_UnknownStruct *gUnknown_083D0280; +extern struct RecordMixing_UnknownStruct gUnknown_02038738; extern u16 gSpecialVar_0x8005; extern u32 gUnknown_03005D2C; extern u8 gUnknown_03000718; extern u8 gUnknown_0300071C[]; extern bool8 gReceivedRemoteLinkPlayers; +void *recordMixingSecretBases = &gSaveBlock1.secretBases; +void *recordMixingTvShows = &gSaveBlock1.tvShows; +void *gUnknown_083D0274 = &gSaveBlock1.unknown_2ABC; +void *gUnknown_083D0278 = &gSaveBlock1.oldMan; +void *recordMixingEasyChatPairs = &gSaveBlock1.easyChatPairs; +struct RecordMixing_UnknownStruct *gUnknown_083D0280 = &gUnknown_02038738; +void *gUnknown_083D0284 = &gSaveBlock2.filler_A8; + #define BUFFER_CHUNK_SIZE 200 void sub_80B929C(void) @@ -46,7 +51,8 @@ void sub_80B929C(void) sub_8083A84(Task_RecordMixing_Main); } -struct PlayerRecords { +struct PlayerRecords +{ struct SecretBaseRecord secretBases[20]; TVShow tvShows[25]; u8 filler1004[0x40]; @@ -57,9 +63,6 @@ struct PlayerRecords { u16 filler11C8[0x34]; }; -extern struct PlayerRecords unk_2008000; -extern struct PlayerRecords unk_2018000; - void RecordMixing_PrepareExchangePacket(void) { sub_80BC300(); @@ -67,14 +70,14 @@ void RecordMixing_PrepareExchangePacket(void) memcpy(unk_2018000.secretBases, recordMixingSecretBases, sizeof(unk_2018000.secretBases)); memcpy(unk_2018000.tvShows, recordMixingTvShows, sizeof(unk_2018000.tvShows)); - memcpy(unk_2018000.filler1004, gUnknown_083D0274, 0x40); - memcpy(unk_2018000.filler1044, gUnknown_083D0278, 0x40); - memcpy(unk_2018000.easyChatPairs, recordMixingEasyChatPairs, 0x28); + memcpy(unk_2018000.filler1004, gUnknown_083D0274, sizeof(unk_2008000.filler1004)); + memcpy(unk_2018000.filler1044, gUnknown_083D0278, sizeof(unk_2008000.filler1044)); + memcpy(unk_2018000.easyChatPairs, recordMixingEasyChatPairs, sizeof(unk_2018000.easyChatPairs)); gUnknown_02038738.data[0] = gSaveBlock1.filler_303C.data[0]; gUnknown_02038738.data[1] = gSaveBlock1.filler_303C.data[1]; sub_8041324(gSaveBlock1.daycareData, &gUnknown_02038738); memcpy(&unk_2018000.filler10AC, gUnknown_083D0280, sizeof(struct RecordMixing_UnknownStruct)); - memcpy(unk_2018000.filler1124, gUnknown_083D0284, 0xA4); + memcpy(unk_2018000.filler1124, gUnknown_083D0284, sizeof(unk_2018000.filler1124)); if (GetMultiplayerId() == 0) unk_2018000.filler11C8[0] = sub_8126338(); @@ -86,71 +89,77 @@ void RecordMixing_ReceiveExchangePacket(u32 a) sub_80BFD44((u8 *)unk_2008000.tvShows, sizeof(struct PlayerRecords), a); sub_80C0514(unk_2008000.filler1004, sizeof(struct PlayerRecords), a); sub_80B9B1C(unk_2008000.filler1044, sizeof(struct PlayerRecords), a); - //UB: Too many arguments for function "sub_80FA4E4" sub_80FA4E4(unk_2008000.easyChatPairs, sizeof(struct PlayerRecords), a); - sub_80B9C6C(&unk_2008000.filler10AC, sizeof(struct PlayerRecords), a, unk_2008000.tvShows); + sub_80B9C6C((u8 *)&unk_2008000.filler10AC, sizeof(struct PlayerRecords), a, unk_2008000.tvShows); sub_80B9B70(unk_2008000.filler1124, sizeof(struct PlayerRecords), a); sub_80B9F3C(unk_2008000.filler11C8, a); } +#define tCounter data[0] + void Task_RecordMixing_SoundEffect(u8 taskId) { - gTasks[taskId].data[0]++; - if (gTasks[taskId].data[0] == 50) + gTasks[taskId].tCounter++; + if (gTasks[taskId].tCounter == 50) { PlaySE(SE_W213); - gTasks[taskId].data[0] = 0; + gTasks[taskId].tCounter = 0; } } -#define TD_STATE 0 +#undef tCounter + + +#define tState data[0] +#define tSndEffTaskId data[15] + void Task_RecordMixing_Main(u8 taskId) { - s16 *taskData = gTasks[taskId].data; + s16 *data = gTasks[taskId].data; - switch (taskData[TD_STATE]) + switch (tState) { case 0: // init sub_8007270(gSpecialVar_0x8005); - VarSet(0x4000, 1); + VarSet(VAR_0x4000, 1); gUnknown_03000718 = 0; RecordMixing_PrepareExchangePacket(); CreateRecordMixingSprite(); - taskData[TD_STATE] = 1; - taskData[10] = CreateTask(sub_80B95F0, 0x50); - taskData[15] = CreateTask(Task_RecordMixing_SoundEffect, 0x51); + tState = 1; + data[10] = CreateTask(sub_80B95F0, 0x50); + tSndEffTaskId = CreateTask(Task_RecordMixing_SoundEffect, 0x51); break; case 1: // wait for sub_80B95F0 - if (!gTasks[taskData[10]].isActive) + if (!gTasks[data[10]].isActive) { - taskData[TD_STATE] = 2; + tState = 2; FlagSet(SYS_MIX_RECORD); DestroyRecordMixingSprite(); - DestroyTask(taskData[15]); + DestroyTask(tSndEffTaskId); } break; case 2: - taskData[10] = CreateTask(sub_80BA00C, 10); - taskData[TD_STATE] = 3; + data[10] = CreateTask(sub_80BA00C, 10); + tState = 3; PlaySE(SE_W226); break; case 3: // wait for sub_80BA00C - if (!gTasks[taskData[10]].isActive) + if (!gTasks[data[10]].isActive) { - taskData[TD_STATE] = 4; - taskData[10] = sub_8083664(); + tState = 4; + data[10] = sub_8083664(); sub_80720B0(); MenuPrint(gOtherText_MixingComplete, 2, 15); - taskData[8] = 0; + data[8] = 0; } break; case 4: // wait 60 frames - taskData[8]++; - if (taskData[8] > 60) - taskData[TD_STATE] = 5; + data[8]++; + if (data[8] > 60) + tState = 5; break; case 5: - if (!gTasks[taskData[10]].isActive) + if (!gTasks[data[10]].isActive) { sub_8055588(); MenuZeroFillScreen(); @@ -165,14 +174,14 @@ void sub_80B95F0(u8 taskId) { struct Task *task = &gTasks[taskId]; - switch (task->data[TD_STATE]) + switch (task->tState) { case 0: sub_80B9A78(); MenuDisplayMessageBox(); MenuPrint(gOtherText_MixingRecordsWithFriend, 2, 15); task->data[8] = 0x708; - task->data[TD_STATE] = 400; + task->tState = 400; ClearLinkCallback_2(); break; case 100: // wait 20 frames @@ -180,48 +189,48 @@ void sub_80B95F0(u8 taskId) if (task->data[12] > 20) { task->data[12] = 0; - task->data[TD_STATE] = 101; + task->tState = 101; } break; case 101: - { - u8 players = GetLinkPlayerCount_2(); - - if (IsLinkMaster() == 1) { - if (players == sub_800820C()) + u8 players = GetLinkPlayerCount_2(); + + if (IsLinkMaster() == 1) { - PlaySE(0x15); - task->data[TD_STATE] = 201; - task->data[12] = 0; + if (players == sub_800820C()) + { + PlaySE(SE_PIN); + task->tState = 201; + task->data[12] = 0; + } + } + else + { + PlaySE(SE_BOO); + task->tState = 301; } - } - else - { - PlaySE(0x16); - task->data[TD_STATE] = 301; } break; - } case 201: if (sub_800820C() == GetLinkPlayerCount_2()) { if (++task->data[12] > GetLinkPlayerCount_2() * 30) { sub_8007F4C(); - task->data[TD_STATE] = 1; + task->tState = 1; } } break; case 301: if (sub_800820C() == GetLinkPlayerCount_2()) - task->data[TD_STATE] = 1; + task->tState = 1; break; case 400: // wait 20 frames task->data[12]++; if (task->data[12] > 20) { - task->data[TD_STATE] = 1; + task->tState = 1; task->data[12] = 0; } break; @@ -229,31 +238,30 @@ void sub_80B95F0(u8 taskId) if (gReceivedRemoteLinkPlayers) { ConvertIntToDecimalStringN(gStringVar1, GetMultiplayerId_(), 2, 2); - task->data[TD_STATE] = 5; + task->tState = 5; } break; case 2: - { - u8 subTaskId; - - task->data[6] = GetLinkPlayerCount_2(); - task->data[TD_STATE] = 0; - task->data[5] = GetMultiplayerId_(); - task->func = Task_RecordMixing_SendPacket; - StorePtrInTaskData(&unk_2018000, &task->data[2]); - subTaskId = CreateTask(Task_RecordMixing_CopyReceiveBuffer, 0x50); - task->data[10] = subTaskId; - gTasks[subTaskId].data[0] = taskId; - //StorePtrInTaskData((void*)0x2008000, &gTasks[subTaskId].data[5]); - StorePtrInTaskData((u8 *)&unk_2018000 - 0x10000, &gTasks[subTaskId].data[5]); + { + u8 subTaskId; + + task->data[6] = GetLinkPlayerCount_2(); + task->tState = 0; + task->data[5] = GetMultiplayerId_(); + task->func = Task_RecordMixing_SendPacket; + StorePtrInTaskData(&unk_2018000, &task->data[2]); + subTaskId = CreateTask(Task_RecordMixing_CopyReceiveBuffer, 0x50); + task->data[10] = subTaskId; + gTasks[subTaskId].data[0] = taskId; + StorePtrInTaskData((u8 *)&unk_2008000, &gTasks[subTaskId].data[5]); + } break; - } case 5: // wait 60 frames task->data[10]++; if (task->data[10] > 60) { task->data[10] = 0; - task->data[TD_STATE] = 2; + task->tState = 2; } break; } @@ -264,29 +272,29 @@ void Task_RecordMixing_SendPacket(u8 taskId) struct Task *task = &gTasks[taskId]; // does this send the data 24 times? - switch (task->data[TD_STATE]) + switch (task->tState) { case 0: //Copy record data to send buffer - { - void *recordData = (u8 *)LoadPtrFromTaskData(&task->data[2]) + BUFFER_CHUNK_SIZE * task->data[4]; + { + void *recordData = (u8 *)LoadPtrFromTaskData(&task->data[2]) + BUFFER_CHUNK_SIZE * task->data[4]; - memcpy(gBlockSendBuffer, recordData, BUFFER_CHUNK_SIZE); - task->data[TD_STATE]++; + memcpy(gBlockSendBuffer, recordData, BUFFER_CHUNK_SIZE); + task->tState++; + } break; - } case 1: if (GetMultiplayerId() == 0) sub_8007E9C(1); - task->data[TD_STATE]++; + task->tState++; break; case 2: break; case 3: task->data[4]++; if ((u16)task->data[4] == 24) - task->data[TD_STATE]++; + task->tState++; else - task->data[TD_STATE] = 0; + task->tState = 0; break; case 4: if (!gTasks[task->data[10]].isActive) @@ -325,7 +333,6 @@ void Task_RecordMixing_CopyReceiveBuffer(u8 taskId) } gTasks[task->data[0]].data[0]++; } - //_080B998A if (handledPlayers == GetLinkPlayerCount()) DestroyTask(taskId); } @@ -353,15 +360,15 @@ void Task_RecordMixing_SendPacket_SwitchToReceive(u8 taskId) gUnknown_03000718 = 1; } -void *LoadPtrFromTaskData(u16 *ptr) +void *LoadPtrFromTaskData(u16 *taskData) { - return (void *)(*ptr | *(ptr + 1) << 16); + return (void *)(taskData[0] | (taskData[1] << 16)); } -void StorePtrInTaskData(void *ptr, u16 *data) +void StorePtrInTaskData(void *ptr, u16 *taskData) { - *data = (u32)ptr; - *(data + 1) = (u32)ptr >> 16; + taskData[0] = (u32)ptr; + taskData[1] = (u32)ptr >> 16; } u8 GetMultiplayerId_(void) @@ -379,6 +386,27 @@ void sub_80B9A78(void) gUnknown_03005D2C = sizeof(struct PlayerRecords); } +const u8 gUnknown_083D0288[2] = {1, 0}; + +const u8 gUnknown_083D028A[2][3] = +{ + {1, 2, 0}, + {2, 0, 1}, +}; + +const u8 gUnknown_083D0290[9][4] = +{ + {1, 0, 3, 2}, + {3, 0, 1, 2}, + {2, 0, 3, 1}, + {1, 3, 0, 2}, + {2, 3, 0, 1}, + {3, 2, 0, 1}, + {1, 2, 3, 0}, + {2, 3, 1, 0}, + {3, 2, 1, 0}, +}; + void sub_80B9A88(u8 *a) { u32 i; @@ -430,101 +458,627 @@ u8 sub_80B9BBC(u16 *a) return a[16]; } -#undef NONMATCHING -#ifdef NONMATCHING +void sub_80B9BC4(u8 *a, size_t b, u8 c[][2], u8 d, u8 e) +{ + struct RecordMixing_UnknownStructSub *r6 = (struct RecordMixing_UnknownStructSub *)(a + b * c[d][0]); + struct RecordMixing_UnknownStructSub *src = r6 + c[d][1]; + struct RecordMixing_UnknownStructSub sp0 = *src; + struct RecordMixing_UnknownStructSub *r8 = (struct RecordMixing_UnknownStructSub *)(a + b * c[e][0]); -void sub_80B9BC4(struct RecordMixing_UnknownStruct *a, size_t b, u8 c[][2], u8 d, u8 e) + r6 += c[d][1]; + *r6 = *(r8 + c[e][1]); + + r8 += c[e][1]; + *r8 = sp0; +} + +u8 sub_80B9C4C(u8 *a) { - struct RecordMixing_UnknownStructSub *offA; - struct RecordMixing_UnknownStructSub *offB; - struct RecordMixing_UnknownStructSub v0; - v0 = (offA = ((struct RecordMixing_UnknownStruct *)(b * c[d][0] + (u32)&a))->data)[c[d][1]]; - offA[c[d][1]] = (offB = ((struct RecordMixing_UnknownStruct *)(b * c[e][0] + (u32)&a))->data)[c[e][1]]; - offB[c[e][1]] = v0; - //ToDo: Figure out what this strange stack usage is + int i; + u8 r2 = 0; + + for (i = 0; i < 0x100; i++) + r2 += a[i]; + return r2; } +const u8 gUnknown_083D02B4[][2] = +{ + {0, 1}, + {1, 2}, + {2, 0}, +}; + +const u8 gUnknown_083D02BA[3][4] = +{ + {0, 1, 2, 3}, + {0, 2, 1, 3}, + {0, 3, 2, 1}, +}; + +#ifdef NONMATCHING +void sub_80B9C6C(u8 *a, u32 b, u8 c, void *d) +{ + u8 r8; + u8 sp4[4]; + u8 sp8[4]; + void *spC[4]; + u8 sp1C[4][2]; + u8 sp24[4][2]; + u8 sp3C; + u16 sp40 = Random(); + u16 i; // r3 + u16 r7; + u8 r1; + struct RecordMixing_UnknownStruct *r6; + + //asm("":::"r8"); + SeedRng(gLinkPlayers[0].trainerId); + r8 = GetLinkPlayerCount(); + for (i = 0; i < 4; i++) + { + sp4[i] = 0xFF; + sp8[i] = 0; + sp1C[i][0] = 0; + sp1C[i][1] = 0; + } + sp3C = 0; + for (i = 0; i < r8; i++) + { + r6 = (struct RecordMixing_UnknownStruct *)(a + b * i); + if (r6->unk70 != 0) + { + for (r7 = 0; r7 < r6->unk70; r7++) + { + if (r6->unk74[r7] == 0) + sp1C[i][r7] = 1; + } + } + //_080B9D3C + } + //_080B9D46 + for (r7 = 0, i = 0; i < r8; i++) + { + r6 = (struct RecordMixing_UnknownStruct *)(a + b * i); + if (sp1C[i][0] == 1 || sp1C[i][1] == 1) + sp3C++; + if (sp1C[i][0] == 1 && sp1C[i][1] == 0) + { + sp24[r7][0] = i; + sp24[r7][1] = 0; + r7++; + } + else if (sp1C[i][0] == 0 && sp1C[i][1] == 1) + { + sp24[r7][0] = i; + sp24[r7][1] = 0; + r7++; + } + //else if (sp1C[i][0] == 1 + 1 && sp1C[i][1] + 1 == 1 + 1) + else if (sp1C[i][0] == 1 && sp1C[i][1] == 1) + { + u8 r4, r1; + + sp24[r7][0] = i; + r4 = sub_80B9BBC((u16 *)&r6->data[0]); + r1 = sub_80B9BBC((u16 *)&r6->data[1]); + + asm(""); + if (r4 == 0 && r1 != 0) + sp24[r7][1] = 1; + else if ((r4 == 0 && r1 == 0) || (r4 != 0 && r1 != 0)) + sp24[r7][1] = Random() % 2; + else + sp24[r7][1] = 0; + /* + if (r4 == 0 && r1 != 0) + sp24[r7][1] = 1; + else if ((r4 == 0 && r1 == 0) || (r4 != 0 && r1 != 0)) + sp24[r7][1] = Random() % 2; + else + sp24[r7][1] = 0; + */ + + /* + if (r4 == 0 && r1 != 0) + sp24[r7][1] = 1; + else if ((r4 == 0 && r1 == 0) || (r4 != 0 && r1 != 0)) + //sp24[r7][1] = ((Random() << 16) >> 16) % 2; + sp24[r7][1] = Random() % 2; + else + sp24[r7][1] = 0; + */ + //_080B9E2C: + r7++; + } + } + //_080B9E3E + for (i = 0; i < 4; i++) + { + r6 = (struct RecordMixing_UnknownStruct *)a + b * c; + spC[i] = r6; + } + r1 = sub_80B9C4C(d) % 3; + switch (sp3C) + { + case 2: + sub_80B9BC4(a, b, (u8 *)sp24, 0, 1); + break; + case 3: + { + u8 var1 = gUnknown_083D02B4[r1][0]; + u8 var2 = gUnknown_083D02B4[r1][1]; + sub_80B9BC4(a, b, (u8 *)sp24, var1, var2); + } + break; + case 4: + { + u8 *r6 = (u8 *)sp24; + u8 var1 = gUnknown_083D02BA[r1][0]; + u8 var2 = gUnknown_083D02BA[r1][1]; + sub_80B9BC4(a, b, r6, var1, var2); + } + { + u8 *r6 = (u8 *)sp24; + u8 var1 = gUnknown_083D02BA[r1][2]; + u8 var2 = gUnknown_083D02BA[r1][3]; + sub_80B9BC4(a, b, r6, var1, var2); + } + break; + } + //_080B9EF0 + //memcpy(&gSaveBlock1.filler_303C.data[0], a + b * c, 0x38); + //memcpy(&gSaveBlock1.filler_303C.data[1], a + b * c + 0x38, 0x38); + r6 = (struct RecordMixing_UnknownStruct *)(a + b * c); + gSaveBlock1.filler_303C.data[0] = r6->data[0]; + gSaveBlock1.filler_303C.data[1] = r6->data[1]; + //memcpy(&gSaveBlock1.filler_303C.data[0], &r6->data[0], 0x38); + //memcpy(&gSaveBlock1.filler_303C.data[1], &r6->data[1], 0x38); + SeedRng(sp40); +} #else __attribute__((naked)) -void sub_80B9BC4(struct RecordMixing_UnknownStruct *a, size_t b, u8 c[][2], u8 d, u8 e) +void sub_80B9C6C(u8 *a, u32 b, u8 c, void *d) { asm(".syntax unified\n\ - push {r4-r6,lr}\n\ - mov r6, r10\n\ - mov r5, r9\n\ - mov r4, r8\n\ - push {r4-r6}\n\ - sub sp, 0x38\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x58\n\ + str r0, [sp, 0x2C]\n\ + str r1, [sp, 0x30]\n\ + str r3, [sp, 0x38]\n\ + lsls r2, 24\n\ + lsrs r2, 24\n\ + str r2, [sp, 0x34]\n\ + bl Random\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + str r0, [sp, 0x40]\n\ + ldr r0, _080B9DA8 @ =gLinkPlayers\n\ + ldrh r0, [r0, 0x4]\n\ + bl SeedRng\n\ + bl GetLinkPlayerCount\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ mov r8, r0\n\ + movs r3, 0\n\ + add r0, sp, 0x1C\n\ + mov r9, r0\n\ + movs r1, 0x1D\n\ + add r1, sp\n\ mov r10, r1\n\ - mov r9, r2\n\ - adds r4, r3, 0\n\ - ldr r5, [sp, 0x54]\n\ - lsls r4, 24\n\ - lsls r5, 24\n\ - lsrs r5, 24\n\ - lsrs r4, 23\n\ - add r4, r9\n\ - ldrb r0, [r4]\n\ - mov r6, r10\n\ - muls r6, r0\n\ - add r6, r8\n\ - ldrb r0, [r4, 0x1]\n\ - lsls r1, r0, 3\n\ - subs r1, r0\n\ - lsls r1, 3\n\ - adds r1, r6, r1\n\ - mov r0, sp\n\ - movs r2, 0x38\n\ - bl memcpy\n\ - lsls r5, 1\n\ - add r5, r9\n\ - ldrb r0, [r5]\n\ - mov r1, r10\n\ - muls r1, r0\n\ + mov r2, sp\n\ + adds r2, 0xC\n\ + str r2, [sp, 0x4C]\n\ + movs r7, 0xFF\n\ + add r4, sp, 0x8\n\ + movs r2, 0\n\ + mov r6, r9\n\ + mov r5, r10\n\ +_080B9CBC:\n\ + mov r1, sp\n\ + adds r1, r3\n\ + adds r1, 0x4\n\ + ldrb r0, [r1]\n\ + orrs r0, r7\n\ + strb r0, [r1]\n\ + adds r0, r4, r3\n\ + strb r2, [r0]\n\ + lsls r1, r3, 1\n\ + adds r0, r6, r1\n\ + strb r2, [r0]\n\ + adds r1, r5, r1\n\ + strb r2, [r1]\n\ + adds r0, r3, 0x1\n\ + lsls r0, 16\n\ + lsrs r3, r0, 16\n\ + cmp r3, 0x3\n\ + bls _080B9CBC\n\ + movs r4, 0\n\ + str r4, [sp, 0x3C]\n\ + movs r3, 0\n\ + mov r1, r8\n\ + lsls r0, r1, 16\n\ + lsrs r1, r0, 16\n\ + str r0, [sp, 0x50]\n\ + ldr r4, [sp, 0x30]\n\ + ldr r0, [sp, 0x34]\n\ + adds r2, r4, 0\n\ + muls r2, r0\n\ + str r2, [sp, 0x48]\n\ + ldr r2, [sp, 0x3C]\n\ + cmp r2, r1\n\ + bcs _080B9D46\n\ + mov r8, r1\n\ +_080B9D00:\n\ + ldr r4, [sp, 0x30]\n\ + adds r0, r4, 0\n\ + muls r0, r3\n\ + ldr r1, [sp, 0x2C]\n\ + adds r6, r1, r0\n\ + ldr r0, [r6, 0x70]\n\ + cmp r0, 0\n\ + beq _080B9D3C\n\ + movs r7, 0\n\ + cmp r7, r0\n\ + bcs _080B9D3C\n\ + adds r4, r6, 0\n\ + adds r4, 0x74\n\ + mov r2, r9\n\ + lsls r1, r3, 1\n\ + movs r5, 0x1\n\ +_080B9D20:\n\ + lsls r0, r7, 1\n\ + adds r0, r4, r0\n\ + ldrh r0, [r0]\n\ + cmp r0, 0\n\ + bne _080B9D30\n\ + adds r0, r7, r1\n\ + adds r0, r2, r0\n\ + strb r5, [r0]\n\ +_080B9D30:\n\ + adds r0, r7, 0x1\n\ + lsls r0, 16\n\ + lsrs r7, r0, 16\n\ + ldr r0, [r6, 0x70]\n\ + cmp r7, r0\n\ + bcc _080B9D20\n\ +_080B9D3C:\n\ + adds r0, r3, 0x1\n\ + lsls r0, 16\n\ + lsrs r3, r0, 16\n\ + cmp r3, r8\n\ + bcc _080B9D00\n\ +_080B9D46:\n\ + movs r7, 0\n\ + movs r3, 0\n\ + ldr r2, [sp, 0x50]\n\ + cmp r2, 0\n\ + beq _080B9E3E\n\ + mov r4, sp\n\ + adds r4, 0x24\n\ + str r4, [sp, 0x44]\n\ + movs r0, 0x25\n\ + add r0, sp\n\ + mov r8, r0\n\ +_080B9D5C:\n\ + ldr r1, [sp, 0x30]\n\ adds r0, r1, 0\n\ - add r8, r0\n\ - ldrb r1, [r4, 0x1]\n\ - lsls r0, r1, 3\n\ - subs r0, r1\n\ - lsls r0, 3\n\ - adds r6, r0\n\ - ldrb r0, [r5, 0x1]\n\ - lsls r1, r0, 3\n\ - subs r1, r0\n\ - lsls r1, 3\n\ + muls r0, r3\n\ + ldr r2, [sp, 0x2C]\n\ + adds r6, r2, r0\n\ + lsls r1, r3, 1\n\ + mov r4, r9\n\ + adds r0, r4, r1\n\ + ldrb r0, [r0]\n\ + cmp r0, 0x1\n\ + beq _080B9D7C\n\ + mov r2, r10\n\ + adds r0, r2, r1\n\ + ldrb r0, [r0]\n\ + cmp r0, 0x1\n\ + bne _080B9D86\n\ +_080B9D7C:\n\ + ldr r0, [sp, 0x3C]\n\ + adds r0, 0x1\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + str r0, [sp, 0x3C]\n\ +_080B9D86:\n\ + mov r4, r9\n\ + adds r0, r4, r1\n\ + ldrb r0, [r0]\n\ + cmp r0, 0x1\n\ + bne _080B9DAC\n\ + mov r2, r10\n\ + adds r0, r2, r1\n\ + ldrb r2, [r0]\n\ + cmp r2, 0\n\ + bne _080B9DAC\n\ +_080B9D9A:\n\ + lsls r1, r7, 1\n\ + ldr r4, [sp, 0x44]\n\ + adds r0, r4, r1\n\ + strb r3, [r0]\n\ add r1, r8\n\ + strb r2, [r1]\n\ + b _080B9E2C\n\ + .align 2, 0\n\ +_080B9DA8: .4byte gLinkPlayers\n\ +_080B9DAC:\n\ + mov r2, r9\n\ + adds r0, r2, r1\n\ + ldrb r0, [r0]\n\ + cmp r0, 0\n\ + bne _080B9DC0\n\ + mov r4, r10\n\ + adds r0, r4, r1\n\ + ldrb r2, [r0]\n\ + cmp r2, 0x1\n\ + beq _080B9D9A\n\ +_080B9DC0:\n\ + mov r2, r9\n\ + adds r0, r2, r1\n\ + ldrb r0, [r0]\n\ + cmp r0, 0x1\n\ + bne _080B9E32\n\ + mov r4, r10\n\ + adds r0, r4, r1\n\ + ldrb r0, [r0]\n\ + cmp r0, 0x1\n\ + bne _080B9E32\n\ + lsls r5, r7, 1\n\ + ldr r1, [sp, 0x44]\n\ + adds r0, r1, r5\n\ + strb r3, [r0]\n\ adds r0, r6, 0\n\ - movs r2, 0x38\n\ - bl memcpy\n\ - ldrb r1, [r5, 0x1]\n\ - lsls r0, r1, 3\n\ + str r3, [sp, 0x54]\n\ + bl sub_80B9BBC\n\ + adds r4, r0, 0\n\ + lsls r4, 24\n\ + lsrs r4, 24\n\ + adds r0, r6, 0\n\ + adds r0, 0x38\n\ + bl sub_80B9BBC\n\ + lsls r0, 24\n\ + lsrs r1, r0, 24\n\ + ldr r3, [sp, 0x54]\n\ + cmp r4, 0\n\ + bne _080B9E0A\n\ + cmp r1, 0\n\ + beq _080B9E0E\n\ + mov r2, r8\n\ + adds r1, r2, r5\n\ + movs r0, 0x1\n\ + strb r0, [r1]\n\ + b _080B9E2C\n\ +_080B9E0A:\n\ + cmp r1, 0\n\ + beq _080B9E26\n\ +_080B9E0E:\n\ + str r3, [sp, 0x54]\n\ + bl Random\n\ + mov r4, r8\n\ + adds r2, r4, r5\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + movs r1, 0x1\n\ + ands r0, r1\n\ + strb r0, [r2]\n\ + ldr r3, [sp, 0x54]\n\ + b _080B9E2C\n\ +_080B9E26:\n\ + mov r2, r8\n\ + adds r0, r2, r5\n\ + strb r1, [r0]\n\ +_080B9E2C:\n\ + adds r0, r7, 0x1\n\ + lsls r0, 16\n\ + lsrs r7, r0, 16\n\ +_080B9E32:\n\ + adds r0, r3, 0x1\n\ + lsls r0, 16\n\ + lsrs r3, r0, 16\n\ + ldr r4, [sp, 0x50]\n\ + cmp r0, r4\n\ + bcc _080B9D5C\n\ +_080B9E3E:\n\ + movs r3, 0\n\ + ldr r1, [sp, 0x48]\n\ + lsls r0, r1, 4\n\ subs r0, r1\n\ lsls r0, 3\n\ - add r8, r0\n\ - mov r0, r8\n\ - mov r1, sp\n\ + ldr r2, [sp, 0x2C]\n\ + adds r6, r2, r0\n\ + ldr r1, [sp, 0x4C]\n\ +_080B9E4E:\n\ + lsls r0, r3, 2\n\ + adds r0, r1, r0\n\ + str r6, [r0]\n\ + adds r0, r3, 0x1\n\ + lsls r0, 16\n\ + lsrs r3, r0, 16\n\ + cmp r3, 0x3\n\ + bls _080B9E4E\n\ + ldr r0, [sp, 0x38]\n\ + bl sub_80B9C4C\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + movs r1, 0x3\n\ + bl __umodsi3\n\ + lsls r0, 24\n\ + lsrs r1, r0, 24\n\ + ldr r4, [sp, 0x3C]\n\ + cmp r4, 0x3\n\ + beq _080B9E9C\n\ + cmp r4, 0x3\n\ + bgt _080B9E82\n\ + cmp r4, 0x2\n\ + beq _080B9E8A\n\ + b _080B9EF0\n\ +_080B9E82:\n\ + ldr r0, [sp, 0x3C]\n\ + cmp r0, 0x4\n\ + beq _080B9EBC\n\ + b _080B9EF0\n\ +_080B9E8A:\n\ + add r2, sp, 0x24\n\ + movs r0, 0x1\n\ + str r0, [sp]\n\ + ldr r0, [sp, 0x2C]\n\ + ldr r1, [sp, 0x30]\n\ + movs r3, 0\n\ + bl sub_80B9BC4\n\ + b _080B9EF0\n\ +_080B9E9C:\n\ + ldr r0, _080B9EB8 @ =gUnknown_083D02B4\n\ + lsls r1, 1\n\ + adds r2, r1, r0\n\ + ldrb r3, [r2]\n\ + adds r0, 0x1\n\ + adds r1, r0\n\ + ldrb r0, [r1]\n\ + add r2, sp, 0x24\n\ + str r0, [sp]\n\ + ldr r0, [sp, 0x2C]\n\ + ldr r1, [sp, 0x30]\n\ + bl sub_80B9BC4\n\ + b _080B9EF0\n\ + .align 2, 0\n\ +_080B9EB8: .4byte gUnknown_083D02B4\n\ +_080B9EBC:\n\ + add r6, sp, 0x24\n\ + ldr r4, _080B9F2C @ =gUnknown_083D02BA\n\ + lsls r5, r1, 2\n\ + adds r0, r5, r4\n\ + ldrb r3, [r0]\n\ + adds r0, r4, 0x1\n\ + adds r0, r5, r0\n\ + ldrb r0, [r0]\n\ + str r0, [sp]\n\ + ldr r0, [sp, 0x2C]\n\ + ldr r1, [sp, 0x30]\n\ + adds r2, r6, 0\n\ + bl sub_80B9BC4\n\ + adds r0, r4, 0x2\n\ + adds r0, r5, r0\n\ + ldrb r3, [r0]\n\ + adds r4, 0x3\n\ + adds r5, r4\n\ + ldrb r0, [r5]\n\ + str r0, [sp]\n\ + ldr r0, [sp, 0x2C]\n\ + ldr r1, [sp, 0x30]\n\ + adds r2, r6, 0\n\ + bl sub_80B9BC4\n\ +_080B9EF0:\n\ + ldr r1, [sp, 0x2C]\n\ + ldr r2, [sp, 0x48]\n\ + adds r6, r1, r2\n\ + ldr r4, _080B9F30 @ =gSaveBlock1\n\ + ldr r1, _080B9F34 @ =0x0000303c\n\ + adds r0, r4, r1\n\ + adds r1, r6, 0\n\ movs r2, 0x38\n\ bl memcpy\n\ - add sp, 0x38\n\ + ldr r2, _080B9F38 @ =0x00003074\n\ + adds r4, r2\n\ + adds r1, r6, 0\n\ + adds r1, 0x38\n\ + adds r0, r4, 0\n\ + movs r2, 0x38\n\ + bl memcpy\n\ + ldr r0, [sp, 0x40]\n\ + bl SeedRng\n\ + add sp, 0x58\n\ pop {r3-r5}\n\ mov r8, r3\n\ mov r9, r4\n\ mov r10, r5\n\ - pop {r4-r6}\n\ + pop {r4-r7}\n\ pop {r0}\n\ bx r0\n\ + .align 2, 0\n\ +_080B9F2C: .4byte gUnknown_083D02BA\n\ +_080B9F30: .4byte gSaveBlock1\n\ +_080B9F34: .4byte 0x0000303c\n\ +_080B9F38: .4byte 0x00003074\n\ .syntax divided\n"); } #endif -u8 sub_80B9C4C(u8 *a) +void sub_80B9F3C(u16 *a, u8 b) { - int i; - u8 r2 = 0; - - for (i = 0; i < 0x100; i++) - r2 += a[i]; - return r2; + if (b != 0 && *a != 0) + { + if (GetPocketByItemId(*a) == 5) + { + if (!CheckBagHasItem(*a, 1) && !CheckPCHasItem(*a, 1) && AddBagItem(*a, 1)) + { + VarSet(VAR_0x4001, *a); + StringCopy(gStringVar1, gLinkPlayers[0].name); + if (*a == ITEM_EON_TICKET) + FlagSet(SYS_HAS_EON_TICKET); + } + else + { + VarSet(VAR_0x4001, ITEM_NONE); + } + } + else + { + if (AddBagItem(*a, 1) == TRUE) + { + VarSet(VAR_0x4001, *a); + StringCopy(gStringVar1, gLinkPlayers[0].name); + } + else + { + VarSet(VAR_0x4001, ITEM_NONE); + } + } + } } +void sub_80BA00C(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + + switch (task->data[0]) + { + case 0: + task->data[0]++; + break; + case 1: + task->data[0]++; + break; + case 2: + SetSecretBase2Field_9_AndHideBG(); + sub_8125E2C(); + task->data[0]++; + break; + case 3: + if (sub_8125E6C() != 0) + { + ClearSecretBase2Field_9_2(); + task->data[0]++; + task->data[1] = 0; + } + break; + case 4: + task->data[1]++; + if (task->data[1] > 10) + { + sub_800832C(); + task->data[0]++; + } + break; + case 5: + if (!gReceivedRemoteLinkPlayers) + DestroyTask(taskId); + break; + } +} diff --git a/src/save.c b/src/save.c index 570210fb0..46094746a 100644 --- a/src/save.c +++ b/src/save.c @@ -672,9 +672,9 @@ u8 sub_8125E2C(void) return 0; } -u8 sub_8125E6C(void) +bool8 sub_8125E6C(void) { - u8 retVal = 0; + u8 retVal = FALSE; u16 val = ++gUnknown_03005EB4; if (val <= 4) { @@ -684,7 +684,7 @@ u8 sub_8125E6C(void) else { sub_81257F0(val, gSaveSectionLocations); - retVal = 1; + retVal = TRUE; } if (gDamagedSaveSectors) DoSaveFailedScreen(1); diff --git a/src/scrcmd.c b/src/scrcmd.c index a394f2a55..45552f2fa 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -1416,7 +1416,7 @@ bool8 ScrCmd_bufferstd(struct ScriptContext *ctx) { u8 stringVarIndex = ScriptReadByte(ctx); u16 index = VarGet(ScriptReadHalfword(ctx)); - StringCopy(sScriptStringVars[stringVarIndex], gUnknown_083CE048[index].text); + StringCopy(sScriptStringVars[stringVarIndex], gUnknown_083CE048[index]); return FALSE; } diff --git a/src/script.c b/src/script.c index 488a67de1..c27eb22fe 100644 --- a/src/script.c +++ b/src/script.c @@ -34,7 +34,7 @@ void InitScriptContext(struct ScriptContext *ctx, void *cmdTable, void *cmdTable ctx->stack[i] = 0; } -u8 SetupBytecodeScript(struct ScriptContext *ctx, void *ptr) +u8 SetupBytecodeScript(struct ScriptContext *ctx, const u8 *ptr) { ctx->scriptPtr = ptr; ctx->mode = 1; @@ -106,7 +106,7 @@ u8 RunScript(struct ScriptContext *ctx) return 1; } -u8 ScriptPush(struct ScriptContext *ctx, u8 *ptr) +u8 ScriptPush(struct ScriptContext *ctx, const u8 *ptr) { if (ctx->stackDepth + 1 >= 20) { @@ -120,7 +120,7 @@ u8 ScriptPush(struct ScriptContext *ctx, u8 *ptr) } } -u8 *ScriptPop(struct ScriptContext *ctx) +const u8 *ScriptPop(struct ScriptContext *ctx) { if (ctx->stackDepth == 0) return NULL; @@ -202,7 +202,7 @@ bool8 ScriptContext2_RunScript(void) return 1; } -void ScriptContext1_SetupScript(u8 *ptr) +void ScriptContext1_SetupScript(const u8 *ptr) { InitScriptContext(&sScriptContext1, gScriptCmdTable, gScriptCmdTableEnd); SetupBytecodeScript(&sScriptContext1, ptr); @@ -221,7 +221,7 @@ void EnableBothScriptContexts() ScriptContext2_Enable(); } -void ScriptContext2_RunNewScript(u8 *ptr) +void ScriptContext2_RunNewScript(const u8 *ptr) { InitScriptContext(&sScriptContext2, &gScriptCmdTable, &gScriptCmdTableEnd); SetupBytecodeScript(&sScriptContext2, ptr); diff --git a/src/script_menu.c b/src/script_menu.c index e1ad3f467..f4ac55fb9 100644 --- a/src/script_menu.c +++ b/src/script_menu.c @@ -547,7 +547,7 @@ const struct MultichoiceListStruct gMultichoiceLists[] = {(struct MenuAction *)MultichoiceList_72, 5} }; -const struct TextStruct gUnknown_083CE048[] = +const u8 *const gUnknown_083CE048[] = { OtherText_Cool2, OtherText_Beauty3, diff --git a/src/sound_check_menu.c b/src/sound_check_menu.c index 13a6f6f3e..13a6f6f3e 100755..100644 --- a/src/sound_check_menu.c +++ b/src/sound_check_menu.c diff --git a/src/strings.c b/src/strings.c index be1bd94c7..219c5bec1 100644 --- a/src/strings.c +++ b/src/strings.c @@ -197,7 +197,7 @@ const u8 OtherText_TheField[] = _("the field."); const u8 OtherText_TheField2[] = _("the field."); const u8 OtherText_ThePC[] = _("the PC."); -const struct TextStruct gUnknown_0840E740[7] = +const u8 *const gUnknown_0840E740[7] = { OtherText_TheField3, OtherText_TheBattle, @@ -1120,7 +1120,7 @@ const u8 OtherText_TheField[] = _("zum Hauptmenü."); const u8 OtherText_TheField2[] = _("zum Hauptmenü."); const u8 OtherText_ThePC[] = _("zum PC."); -const struct TextStruct gUnknown_0840E740[7] = +const u8 *const gUnknown_0840E740[7] = { OtherText_TheField3, OtherText_TheBattle, diff --git a/src/task.c b/src/task.c index 3c28a66d9..7bd2b5937 100644 --- a/src/task.c +++ b/src/task.c @@ -11,6 +11,9 @@ struct Task gTasks[ACTIVE_SENTINEL]; static void InsertTask(u8 newTaskId); static u8 FindFirstActiveTask(); +// Unused string +const u8 sTaskOverString[] = _("TASK OVER\nタスクがオーバーしました"); + void ResetTasks() { u8 taskId; diff --git a/src/title_screen.c b/src/title_screen.c index 664e07978..1ed87ff03 100644 --- a/src/title_screen.c +++ b/src/title_screen.c @@ -30,8 +30,12 @@ #define VERSION_BANNER_BYTES 0x2000 #define VERSION_BANNER_LEFT_X 108 #define VERSION_BANNER_RIGHT_X 172 -#define VERSION_BANNER_Y 44 +#ifdef SAPPHIRE +#define VERSION_BANNER_Y_GOAL 83 +#else #define VERSION_BANNER_Y_GOAL 84 +#endif +#define VERSION_BANNER_Y (VERSION_BANNER_Y_GOAL - 40) #define START_BANNER_X DISPLAY_WIDTH / 2 - 2 #endif @@ -331,7 +335,9 @@ static const struct CompressedSpriteSheet sPokemonLogoShineSpriteSheet[] = #define LEGENDARY_MARKING_COLOR(c) RGB(0, 0, (c)) #endif -#ifdef SAPPHIRE +#if defined(GERMAN) && defined(SAPPHIRE) +#define PLTT_BUFFER_INDEX 9 +#elif defined(SAPPHIRE) #define PLTT_BUFFER_INDEX 26 #else #define PLTT_BUFFER_INDEX 21 diff --git a/src/trader.c b/src/trader.c new file mode 100644 index 000000000..ea06058e9 --- /dev/null +++ b/src/trader.c @@ -0,0 +1,261 @@ +#include "global.h" +#include "decoration.h" +#include "decoration_inventory.h" +#include "event_data.h" +#include "main.h" +#include "menu.h" +#include "menu_helpers.h" +#include "script.h" +#include "songs.h" +#include "sound.h" +#include "string_util.h" +#include "strings.h" +#include "task.h" + +extern u16 gSpecialVar_0x8004; +extern u16 gSpecialVar_0x8005; +extern u16 gSpecialVar_0x8006; + +static const u8 * const gUnknown_083F62D8[] = +{ + SecretBaseText_Tristan, + SecretBaseText_Philip, + SecretBaseText_Dennis, + SecretBaseText_Roberto, +}; + +static const u8 gTraderDecorations[] = +{ + DECOR_DUSKULL_DOLL, + DECOR_BALL_CUSHION, + DECOR_TIRE, + DECOR_PRETTY_FLOWERS, +}; + +void sub_810993C(void) +{ + u8 i, j; + u8 buffer[12]; + struct MauvilleOldManTrader *trader = &gSaveBlock1.oldMan.trader; + + for (i = 0; i < 3; i++) + { + for (j = i + 1; j < 4; j++) + { + if (trader->unk1[i] == 0) + { + u8 temp = trader->unk1[i]; + trader->unk1[i] = trader->unk1[j]; + trader->unk1[j] = temp; + StringCopy(buffer, trader->unk5[i]); + StringCopy(trader->unk5[i], trader->unk5[j]); + StringCopy(trader->unk5[j], buffer); + } + } + } +} + +void sub_81099CC(void) +{ + u8 i; + struct MauvilleOldManTrader *trader = &gSaveBlock1.oldMan.trader; + + trader->unk0 = 2; + trader->unk31 = 0; + + for (i = 0; i < 4; i++) + { + StringCopy(trader->unk5[i], gUnknown_083F62D8[i]); + trader->unk1[i] = gTraderDecorations[i]; + } + + sub_810993C(); +} + +void sub_8109A20(void) +{ + struct MauvilleOldManTrader *trader = &gSaveBlock1.oldMan.trader; + trader->unk31 = 0; +} + +void sub_8109A30(u8 value) +{ + VarSet(VAR_RECYCLE_GOODS, value); +} + +void sub_8109A48(u8 taskId) +{ + u8 i; + u8 numChoices = 1; + u8 numDecorations = 0; + struct MauvilleOldManTrader *trader = &gSaveBlock1.oldMan.trader; + + for (i = 0; i < 4; i++) + { + if (trader->unk1[i]) + { + numChoices++; + } + } + + MenuDrawTextWindow(0, 1, 12, numChoices * 2 + 2); + + for (i = 0; i < 4; i++) + { + if (trader->unk1[i]) + { + if (trader->unk1[i] > DECOR_REGISTEEL_DOLL) + { + MenuPrint(gOtherText_FiveQuestionsAndSlash, 1, numDecorations * 2 + 2); + } + else + { + MenuPrint(gDecorations[trader->unk1[i]].name, 1, numDecorations * 2 + 2); + } + + numDecorations++; + } + } + + MenuPrint(gOtherText_CancelNoTerminator, 1, numDecorations * 2 + 2); + InitMenu(0, 1, 2, numChoices, 0, 11); + gTasks[taskId].data[1] = numDecorations; +} + +void sub_8109B34(u8 taskId, u8 decorationId) +{ + if (decorationId > DECOR_REGISTEEL_DOLL) + { + gSpecialVar_0x8004 = 0xFFFF; + } + else + { + gSpecialVar_0x8004 = decorationId; + } + + HandleDestroyMenuCursors(); + MenuZeroFillWindowRect(0, 1, 12, 12); + DestroyTask(taskId); + EnableBothScriptContexts(); +} + +void sub_8109B7C(u8 taskId) +{ + struct MauvilleOldManTrader *trader = &gSaveBlock1.oldMan.trader; + + if (gMain.newKeys & DPAD_UP) + { + PlaySE(SE_SELECT); + MoveMenuCursor(-1); + } + else if (gMain.newKeys & DPAD_DOWN) + { + PlaySE(SE_SELECT); + MoveMenuCursor(1); + } + else if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + gSpecialVar_0x8005 = GetMenuCursorPos(); + if (gTasks[taskId].data[1] == gSpecialVar_0x8005) + { + sub_8109B34(taskId, 0); + } + else + { + StringCopy(gStringVar1, trader->unk5[gSpecialVar_0x8005]); + sub_8109B34(taskId, trader->unk1[gSpecialVar_0x8005]); + } + } + else if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + sub_8109B34(taskId, 0); + } +} + +void sub_8109C44(void) +{ + struct MauvilleOldManTrader *trader = &gSaveBlock1.oldMan.trader; + gScriptResult = trader->unk31; +} + +void sub_8109C58(void) +{ + u8 i; + + for (i = 0; i < 8; i++) + { + if (sub_8134194(i)) + { + gScriptResult = FALSE; + return; + } + } + gScriptResult = TRUE; +} + +void sub_8109C90(void) +{ + gScriptResult = FALSE; + if (gDecorations[gSpecialVar_0x8004].category != gDecorations[gSpecialVar_0x8006].category + && sub_8133F9C(gDecorations[gSpecialVar_0x8004].category) == -1) + { + sub_80FE7D4(gStringVar2, gDecorations[gSpecialVar_0x8004].category); + gScriptResult = TRUE; + } +} + +void sub_8109CF0(void) +{ + CreateTask(sub_80FE7A8, 0); +} + +void sub_8109D04(u8 taskId) +{ + HandleDestroyMenuCursors(); + MenuZeroFillWindowRect(0, 0, 29, 19); + DestroyVerticalScrollIndicator(0); + DestroyVerticalScrollIndicator(1); + sub_80F9520(gUnknown_020388F7, 8); + BuyMenuFreeMemory(); + if (sub_80FEFA4() == TRUE) + { + gSpecialVar_0x8006 = gUnknown_020388D0[gUnknown_020388F5]; + StringCopy(gStringVar3, gDecorations[gSpecialVar_0x8004].name); + StringCopy(gStringVar2, gDecorations[gSpecialVar_0x8006].name); + } + else + { + gSpecialVar_0x8006 = 0xFFFF; + } + DestroyTask(taskId); + EnableBothScriptContexts(); +} + +void sub_8109DAC(u8 taskId) +{ + HandleDestroyMenuCursors(); + MenuZeroFillWindowRect(0, 0, 29, 19); + gSpecialVar_0x8006 = 0; + DestroyTask(taskId); + EnableBothScriptContexts(); +} + +void sub_8109DE0(void) +{ + struct MauvilleOldManTrader *trader = &gSaveBlock1.oldMan.trader; + + sub_81340A8(gSpecialVar_0x8006); + IsThereStorageSpaceForDecoration(gSpecialVar_0x8004); + StringCopy(trader->unk5[gSpecialVar_0x8005], gSaveBlock2.playerName); + trader->unk1[gSpecialVar_0x8005] = gSpecialVar_0x8006; + sub_810993C(); + trader->unk31 = 1; +} + +void sub_8109E34(void) +{ + u8 taskId = CreateTask(sub_8109B7C, 0); + sub_8109A48(taskId); +} @@ -164,19 +164,19 @@ void nullsub_21(void); void sub_80BE188(void); void sub_80BE320(void); -#ifdef NONMATCHING u8 special_0x44(void) { u8 i; u8 j; - u8 var01; - TVShow *tvShow; - for (i=5; i<24; i++) + +#ifndef NONMATCHING + asm("":::"r5"); +#endif + + for (i = 5; i < 24; i++) { if (gSaveBlock1.tvShows[i].common.var00 == 0) - { break; - } } i = Random() % i; j = i; @@ -184,140 +184,35 @@ u8 special_0x44(void) { if (sub_80BFB54(gSaveBlock1.tvShows[i].common.var00) != 4) { - var01 = gSaveBlock1.tvShows[i].common.var01; - } else - { - tvShow = &gSaveBlock1.tvShows[i]; - if (tvShow->massOutbreak.var16 != 0) { - continue; - } else { - var01 = tvShow->common.var01; - } + if (gSaveBlock1.tvShows[i].common.var01 == 1) + return i; } - if (var01 == 1) + else { - return i; + struct TVShowMassOutbreak *massOutbreak = &gSaveBlock1.tvShows[i].massOutbreak; + + if (massOutbreak->var16 == 0 && massOutbreak->var01 == 1) + return i; } - } while (i == 0 ? i = 23 : i --, i != j); - return 0xff; -} -#else -__attribute__((naked)) -u8 special_0x44(void) -{ - asm(".syntax unified\n" - " push {r4-r7,lr}\n" - " mov r7, r9\n" - " mov r6, r8\n" - " push {r6,r7}\n" - " movs r4, 0x5\n" - " ldr r1, _080BD874 @ =gSaveBlock1\n" - " ldr r2, _080BD878 @ =0x000027ec\n" - " adds r0, r1, r2\n" - " ldrb r0, [r0]\n" - " cmp r0, 0\n" - " beq _080BD834\n" - " adds r2, r1, 0\n" - " ldr r1, _080BD87C @ =0x00002738\n" - "_080BD81A:\n" - " adds r0, r4, 0x1\n" - " lsls r0, 24\n" - " lsrs r4, r0, 24\n" - " cmp r4, 0x17\n" - " bhi _080BD834\n" - " lsls r0, r4, 3\n" - " adds r0, r4\n" - " lsls r0, 2\n" - " adds r0, r2\n" - " adds r0, r1\n" - " ldrb r0, [r0]\n" - " cmp r0, 0\n" - " bne _080BD81A\n" - "_080BD834:\n" - " bl Random\n" - " lsls r0, 16\n" - " lsrs r0, 16\n" - " adds r1, r4, 0\n" - " bl __modsi3\n" - " lsls r0, 24\n" - " lsrs r4, r0, 24\n" - " mov r8, r4\n" - " ldr r7, _080BD874 @ =gSaveBlock1\n" - " ldr r0, _080BD87C @ =0x00002738\n" - " adds r0, r7\n" - " mov r9, r0\n" - "_080BD850:\n" - " lsls r0, r4, 3\n" - " adds r0, r4\n" - " lsls r6, r0, 2\n" - " adds r5, r6, r7\n" - " ldr r1, _080BD87C @ =0x00002738\n" - " adds r0, r5, r1\n" - " ldrb r0, [r0]\n" - " bl sub_80BFB54\n" - " lsls r0, 24\n" - " lsrs r0, 24\n" - " cmp r0, 0x4\n" - " beq _080BD884\n" - " ldr r2, _080BD880 @ =0x00002739\n" - " adds r0, r5, r2\n" - " ldrb r0, [r0]\n" - " b _080BD890\n" - " .align 2, 0\n" - "_080BD874: .4byte gSaveBlock1\n" - "_080BD878: .4byte 0x000027ec\n" - "_080BD87C: .4byte 0x00002738\n" - "_080BD880: .4byte 0x00002739\n" - "_080BD884:\n" - " mov r0, r9\n" - " adds r1, r6, r0\n" - " ldrh r0, [r1, 0x16]\n" - " cmp r0, 0\n" - " bne _080BD898\n" - " ldrb r0, [r1, 0x1]\n" - "_080BD890:\n" - " cmp r0, 0x1\n" - " bne _080BD898\n" - " adds r0, r4, 0\n" - " b _080BD8AC\n" - "_080BD898:\n" - " cmp r4, 0\n" - " bne _080BD8A0\n" - " movs r4, 0x17\n" - " b _080BD8A6\n" - "_080BD8A0:\n" - " subs r0, r4, 0x1\n" - " lsls r0, 24\n" - " lsrs r4, r0, 24\n" - "_080BD8A6:\n" - " cmp r4, r8\n" - " bne _080BD850\n" - " movs r0, 0xFF\n" - "_080BD8AC:\n" - " pop {r3,r4}\n" - " mov r8, r3\n" - " mov r9, r4\n" - " pop {r4-r7}\n" - " pop {r1}\n" - " bx r1\n" - ".syntax divided\n"); + + if (i == 0) + i = 23; + else + i--; + } while (i != j); + return 0xFF; } -#endif u8 sub_80BDA30(void); u8 sub_80BD8B8(void) { - u8 retval; - retval = special_0x44(); + u8 retval = special_0x44(); + if (retval == 0xff) - { return 0xff; - } if (gSaveBlock1.outbreakPokemonSpecies != 0 && gSaveBlock1.tvShows[retval].common.var00 == TVSHOW_MASS_OUTBREAK) - { return sub_80BDA30(); - } return retval; } @@ -328,26 +223,26 @@ bool8 IsTVShowInSearchOfTrainersAiring(void); void UpdateTVScreensOnMap(int width, int height) { - u8 bigMovieOrEmergencyNewsOnTv; FlagSet(SYS_TV_WATCH); - bigMovieOrEmergencyNewsOnTv = CheckForBigMovieOrEmergencyNewsOnTV(); - switch (bigMovieOrEmergencyNewsOnTv) + switch (CheckForBigMovieOrEmergencyNewsOnTV()) { - case 1: + case 1: + SetTVMetatilesOnMap(width, height, 0x3); + break; + case 2: + break; + default: + if (gSaveBlock1.location.mapGroup == MAP_GROUP_LILYCOVE_CITY_COVE_LILY_MOTEL_1F + && gSaveBlock1.location.mapNum == MAP_ID_LILYCOVE_CITY_COVE_LILY_MOTEL_1F) + { SetTVMetatilesOnMap(width, height, 0x3); - break; - case 2: - break; - default: - if (gSaveBlock1.location.mapGroup == MAP_GROUP_LILYCOVE_CITY_COVE_LILY_MOTEL_1F && gSaveBlock1.location.mapNum == MAP_ID_LILYCOVE_CITY_COVE_LILY_MOTEL_1F) - { - SetTVMetatilesOnMap(width, height, 0x3); - } - else if (FlagGet(SYS_TV_START) && (sub_80BD8B8() != 0xff || sub_80BECA0() != 0xff || IsTVShowInSearchOfTrainersAiring())) - { - FlagReset(SYS_TV_WATCH); - SetTVMetatilesOnMap(width, height, 0x3); - } + } + else if (FlagGet(SYS_TV_START) && (sub_80BD8B8() != 0xff || sub_80BECA0() != 0xff || IsTVShowInSearchOfTrainersAiring())) + { + FlagReset(SYS_TV_WATCH); + SetTVMetatilesOnMap(width, height, 0x3); + } + break; } } @@ -355,14 +250,13 @@ void SetTVMetatilesOnMap(int width, int height, u16 tileId) { int x; int y; + for (y=0; y<height; y++) { for (x=0; x<width; x++) { if (MapGridGetMetatileBehaviorAt(x, y) == 0x86) - { MapGridSetMetatileIdAt(x, y, tileId | 0xc00); - } } } } @@ -384,9 +278,7 @@ u8 sub_80BDA30(void) for (showIdx=0; showIdx<24; showIdx++) { if (gSaveBlock1.tvShows[showIdx].common.var00 != 0 && gSaveBlock1.tvShows[showIdx].common.var00 != TVSHOW_MASS_OUTBREAK && gSaveBlock1.tvShows[showIdx].common.var01 == 1) - { return showIdx; - } } return 0xff; } @@ -396,9 +288,7 @@ u8 special_0x4a(void) TVShow *tvShow; tvShow = &gSaveBlock1.tvShows[gSpecialVar_0x8004]; if (tvShow->common.var00 == TVSHOW_MASS_OUTBREAK && gSaveBlock1.outbreakPokemonSpecies) - { return sub_80BDA30(); - } return gSpecialVar_0x8004; } @@ -429,28 +319,24 @@ void TakeTVShowInSearchOfTrainersOffTheAir(void); void GabbyAndTyBeforeInterview(void) { u8 i; + gSaveBlock1.gabbyAndTyData.mon1 = gBattleResults.Poke1Species; gSaveBlock1.gabbyAndTyData.mon2 = gBattleResults.OpponentSpecies; gSaveBlock1.gabbyAndTyData.lastMove = gBattleResults.LastUsedMove; if (gSaveBlock1.gabbyAndTyData.battleNum != 0xff) - { gSaveBlock1.gabbyAndTyData.battleNum ++; - } gSaveBlock1.gabbyAndTyData.valA_0 = gBattleResults.unk5_0; + if (gBattleResults.PlayerFaintCounter) - { gSaveBlock1.gabbyAndTyData.valA_1 = 1; - } else - { + else gSaveBlock1.gabbyAndTyData.valA_1 = 0; - } + if (gBattleResults.unk3) - { gSaveBlock1.gabbyAndTyData.valA_2 = 1; - } else - { + else gSaveBlock1.gabbyAndTyData.valA_2 = 0; - } + if (!gBattleResults.unk5_1) { for (i=0; i<11; i++) @@ -461,15 +347,15 @@ void GabbyAndTyBeforeInterview(void) break; } } - } else + } + else { gSaveBlock1.gabbyAndTyData.valA_3 = 1; } + TakeTVShowInSearchOfTrainersOffTheAir(); if (gSaveBlock1.gabbyAndTyData.lastMove == 0) - { FlagSet(1); - } } void sub_80BDC14(void) @@ -491,10 +377,9 @@ void TakeTVShowInSearchOfTrainersOffTheAir(void) u8 GabbyAndTyGetBattleNum(void) { if (gSaveBlock1.gabbyAndTyData.battleNum >= 6) - { return (gSaveBlock1.gabbyAndTyData.battleNum % 3) + 6; - } - return gSaveBlock1.gabbyAndTyData.battleNum; + else + return gSaveBlock1.gabbyAndTyData.battleNum; } bool8 IsTVShowInSearchOfTrainersAiring(void) @@ -505,9 +390,8 @@ bool8 IsTVShowInSearchOfTrainersAiring(void) bool8 GabbyAndTyGetLastQuote(void) { if (gSaveBlock1.gabbyAndTyData.quote == 0xffff) - { return FALSE; - } + sub_80EB3FC(gStringVar1, gSaveBlock1.gabbyAndTyData.quote); gSaveBlock1.gabbyAndTyData.quote |= 0xffff; return TRUE; @@ -516,26 +400,20 @@ bool8 GabbyAndTyGetLastQuote(void) u8 sub_80BDD18(void) { if (!gSaveBlock1.gabbyAndTyData.valB_0) - { return 1; - } if (gSaveBlock1.gabbyAndTyData.valB_3) - { return 2; - } if (gSaveBlock1.gabbyAndTyData.valB_2) - { return 3; - } if (gSaveBlock1.gabbyAndTyData.valB_1) - { return 4; - } return 0; } -void GabbyAndTySetScriptVarsToFieldObjectLocalIds(void) { - switch (GabbyAndTyGetBattleNum()) { +void GabbyAndTySetScriptVarsToFieldObjectLocalIds(void) +{ + switch (GabbyAndTyGetBattleNum()) + { case 1: gSpecialVar_0x8004 = 0xE; gSpecialVar_0x8005 = 0xD; @@ -571,8 +449,10 @@ void GabbyAndTySetScriptVarsToFieldObjectLocalIds(void) { } } -void sub_80BDE48(void) { - switch (gSpecialVar_0x8005) { +void sub_80BDE48(void) +{ + switch (gSpecialVar_0x8005) + { case TVSHOW_FAN_CLUB_LETTER: sub_80BE5FC(); break; @@ -594,217 +474,131 @@ void sub_80BDE48(void) { } } -u8 sub_80BDEAC(u8 *a0) { - u8 lang; - lang = GAME_LANGUAGE; - if (a0[0] == 0xFC && a0[1] == 0x15) { +u8 sub_80BDEAC(u8 *a0) +{ + u8 lang = GAME_LANGUAGE; + + if (a0[0] == EXT_CTRL_CODE_BEGIN && a0[1] == 0x15) lang = LANGUAGE_JAPANESE; - } return lang; } -void sub_80BDEC8(void) { - TVShow *show; +void sub_80BDEC8(void) +{ u8 i; u16 total; u16 item; + total = 0; sub_80BEB20(); sub_80BE778(); - if (gBattleResults.CaughtPoke == 0) { + + if (gBattleResults.CaughtPoke == 0) + { sub_80BE074(); - } else { + } + else + { sub_80BE028(); - if (sub_80BF77C(0xffff) == 0 && StringCompareWithoutExtCtrlCodes(gSpeciesNames[gBattleResults.CaughtPoke], gBattleResults.CaughtNick) != 0) { + if (sub_80BF77C(0xffff) == 0 && StringCompareWithoutExtCtrlCodes(gSpeciesNames[gBattleResults.CaughtPoke], gBattleResults.CaughtNick) != 0) + { gUnknown_03005D38.var0 = sub_80BF74C(gSaveBlock1.tvShows); - if (gUnknown_03005D38.var0 != -1 && sub_80BF1B4(TVSHOW_POKEMON_TODAY_CAUGHT) != 1) { - for (i=0; i<11; i++) { + if (gUnknown_03005D38.var0 != -1 && sub_80BF1B4(TVSHOW_POKEMON_TODAY_CAUGHT) != 1) + { + for (i = 0; i < 11; i++) total += gBattleResults.unk36[i]; - } - if (total != 0 || gBattleResults.unk5_1 != 0) { - total = FALSE; - show = &gSaveBlock1.tvShows[gUnknown_03005D38.var0]; - show->pokemonToday.var00 = TVSHOW_POKEMON_TODAY_CAUGHT; - show->pokemonToday.var01 = total; - if (gBattleResults.unk5_1 != 0) { + if (total != 0 || gBattleResults.unk5_1 != 0) + { + struct TVShowPokemonToday *pokemonToday; + + total = 0; + pokemonToday = &gSaveBlock1.tvShows[gUnknown_03005D38.var0].pokemonToday; + pokemonToday->var00 = TVSHOW_POKEMON_TODAY_CAUGHT; + pokemonToday->var01 = total; + if (gBattleResults.unk5_1 != 0) + { total = 1; item = ITEM_MASTER_BALL; - } else { - for (i=0; i<11; i++) { + } + else + { + for (i = 0; i < 11; i++) total += gBattleResults.unk36[i]; - } - if (total > 0xff) { + if (total > 0xff) total = 0xff; - } item = gLastUsedItem; } - show->pokemonToday.var12 = total; - show->pokemonToday.ball = item; - StringCopy(show->pokemonToday.playerName, gSaveBlock2.playerName); - StringCopy(show->pokemonToday.nickname, gBattleResults.CaughtNick); - show->pokemonToday.species = gBattleResults.CaughtPoke; - sub_80BE138(show); - show->pokemonToday.language = GAME_LANGUAGE; - show->pokemonToday.language2 = sub_80BDEAC(show->pokemonToday.nickname); - StripExtCtrlCodes(show->pokemonToday.nickname); + pokemonToday->var12 = total; + pokemonToday->ball = item; + StringCopy(pokemonToday->playerName, gSaveBlock2.playerName); + StringCopy(pokemonToday->nickname, gBattleResults.CaughtNick); + pokemonToday->species = gBattleResults.CaughtPoke; + sub_80BE138((TVShow *)pokemonToday); + pokemonToday->language = GAME_LANGUAGE; + pokemonToday->language2 = sub_80BDEAC(pokemonToday->nickname); + StripExtCtrlCodes(pokemonToday->nickname); } } } } } -void sub_80BE028(void) { - TVShow *buffer; - buffer = &gSaveBlock1.tvShows[24]; - if (buffer->worldOfMasters.var00 != TVSHOW_WORLD_OF_MASTERS) { +void sub_80BE028(void) +{ + struct TVShowWorldOfMasters *worldOfMasters = &gSaveBlock1.tvShows[24].worldOfMasters; + + if (worldOfMasters->var00 != TVSHOW_WORLD_OF_MASTERS) + { sub_80BF55C(gSaveBlock1.tvShows, 24); - buffer->worldOfMasters.var06 = GetGameStat(GAME_STAT_STEPS); - buffer->worldOfMasters.var00 = TVSHOW_WORLD_OF_MASTERS; + worldOfMasters->var06 = GetGameStat(GAME_STAT_STEPS); + worldOfMasters->var00 = TVSHOW_WORLD_OF_MASTERS; } - buffer->worldOfMasters.var02++; - buffer->worldOfMasters.var04 = gBattleResults.CaughtPoke; - buffer->worldOfMasters.var08 = gBattleResults.Poke1Species; - buffer->worldOfMasters.var0a = gMapHeader.name; + worldOfMasters->var02++; + worldOfMasters->var04 = gBattleResults.CaughtPoke; + worldOfMasters->var08 = gBattleResults.Poke1Species; + worldOfMasters->var0a = gMapHeader.name; } -#ifdef NONMATCHING -void sub_80BE074(void) { +void sub_80BE074(void) +{ u8 i; u16 total; - u8 flag; - TVShow *show; - if (sub_80BF77C(0xffff) == 0) { - for (i=0, total=0; i<ARRAY_COUNT(gUnknown_03004316); i++) { + u8 zero = 0; + + if (sub_80BF77C(0xffff) == 0) + { + for (i = 0, total = 0; i < ARRAY_COUNT(gUnknown_03004316); i++) total += gUnknown_03004316[i]; - } - if (total > 0xff) { + if (total > 0xff) total = 0xff; - } - if (total > 2 && gBattleOutcome == 1) { + if (total > 2 && gBattleOutcome == 1) + { gUnknown_03005D38.var0 = sub_80BF74C(gSaveBlock1.tvShows); - if (gUnknown_03005D38.var0 != -1 && sub_80BF1B4(TVSHOW_POKEMON_TODAY_FAILED) != 1) { - flag = FALSE; - show = &gSaveBlock1.tvShows[gUnknown_03005D38.var0]; - asm_comment("Here the wrong registers are used to hold the show ID and flag."); - show->pokemonTodayFailed.var00 = TVSHOW_POKEMON_TODAY_FAILED; - show->pokemonTodayFailed.var01 = flag; - show->pokemonTodayFailed.species = gBattleResults.Poke1Species; - show->pokemonTodayFailed.species2 = gBattleResults.unk20; - show->pokemonTodayFailed.var10 = total; - show->pokemonTodayFailed.var11 = gBattleOutcome; - show->pokemonTodayFailed.var12 = gMapHeader.name; - StringCopy(show->pokemonTodayFailed.playerName, gSaveBlock2.playerName); - sub_80BE138(show); - show->pokemonTodayFailed.language = GAME_LANGUAGE; + if (gUnknown_03005D38.var0 != -1 && sub_80BF1B4(TVSHOW_POKEMON_TODAY_FAILED) != 1) + { + struct TVShowPokemonTodayFailed *pokemonTodayFailed = &gSaveBlock1.tvShows[gUnknown_03005D38.var0].pokemonTodayFailed; + + zero = 0; + pokemonTodayFailed->var00 = TVSHOW_POKEMON_TODAY_FAILED; + pokemonTodayFailed->var01 = zero; + pokemonTodayFailed->species = gBattleResults.Poke1Species; + pokemonTodayFailed->species2 = gBattleResults.LastOpponentSpecies; + pokemonTodayFailed->var10 = total; + pokemonTodayFailed->var11 = gBattleOutcome; + pokemonTodayFailed->var12 = gMapHeader.name; + StringCopy(pokemonTodayFailed->playerName, gSaveBlock2.playerName); + sub_80BE138((TVShow *)pokemonTodayFailed); + pokemonTodayFailed->language = GAME_LANGUAGE; } } } } -#else -__attribute__((naked)) -void sub_80BE074(void) { - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - ldr r0, _080BE118 @ =0x0000ffff\n\ - bl sub_80BF77C\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - bne _080BE112\n\ - movs r1, 0\n\ - movs r5, 0\n\ - ldr r2, _080BE11C @ =gUnknown_03004316\n\ -_080BE088:\n\ - adds r0, r1, r2\n\ - ldrb r0, [r0]\n\ - adds r0, r5, r0\n\ - lsls r0, 16\n\ - lsrs r5, r0, 16\n\ - adds r0, r1, 0x1\n\ - lsls r0, 24\n\ - lsrs r1, r0, 24\n\ - cmp r1, 0xA\n\ - bls _080BE088\n\ - cmp r5, 0xFF\n\ - bls _080BE0A2\n\ - movs r5, 0xFF\n\ -_080BE0A2:\n\ - cmp r5, 0x2\n\ - bls _080BE112\n\ - ldr r7, _080BE120 @ =gBattleOutcome\n\ - ldrb r0, [r7]\n\ - cmp r0, 0x1\n\ - bne _080BE112\n\ - ldr r6, _080BE124 @ =gSaveBlock1 + 0x2738\n\ - adds r0, r6, 0\n\ - bl sub_80BF74C\n\ - ldr r4, _080BE128 @ =gUnknown_03005D38\n\ - strb r0, [r4]\n\ - lsls r0, 24\n\ - asrs r0, 24\n\ - movs r1, 0x1\n\ - negs r1, r1\n\ - cmp r0, r1\n\ - beq _080BE112\n\ - movs r0, 0x17\n\ - bl sub_80BF1B4\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r0, 0x1\n\ - beq _080BE112\n\ - movs r0, 0\n\ - ldrsb r0, [r4, r0]\n\ - lsls r4, r0, 3\n\ - adds r4, r0\n\ - lsls r4, 2\n\ - adds r4, r6\n\ - @ -- Here the compiler puts the status flag in the wrong register. --\n\ - movs r1, 0\n\ - movs r0, 0x17\n\ - strb r0, [r4]\n\ - strb r1, [r4, 0x1]\n\ - ldr r1, _080BE12C @ =gBattleResults\n\ - ldrh r0, [r1, 0x6]\n\ - strh r0, [r4, 0xC]\n\ - ldrh r0, [r1, 0x20]\n\ - strh r0, [r4, 0xE]\n\ - strb r5, [r4, 0x10]\n\ - ldrb r0, [r7]\n\ - strb r0, [r4, 0x11]\n\ - ldr r0, _080BE130 @ =gMapHeader\n\ - ldrb r0, [r0, 0x14]\n\ - strb r0, [r4, 0x12]\n\ - adds r0, r4, 0\n\ - adds r0, 0x13\n\ - ldr r1, _080BE134 @ =gSaveBlock2\n\ - bl StringCopy\n\ - adds r0, r4, 0\n\ - bl sub_80BE138\n"); -#if ENGLISH - asm("movs r0, 2 @ GAME_LANGUAGE\n"); -#elif GERMAN - asm("movs r0, 5 @ GAME_LANGUAGE\n"); -#endif - asm("strb r0, [r4, 0x2]\n\ -_080BE112:\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ -_080BE118: .4byte 0x0000ffff\n\ -_080BE11C: .4byte gUnknown_03004316\n\ -_080BE120: .4byte gBattleOutcome\n\ -_080BE124: .4byte gSaveBlock1 + 0x2738\n\ -_080BE128: .4byte gUnknown_03005D38\n\ -_080BE12C: .4byte gBattleResults\n\ -_080BE130: .4byte gMapHeader\n\ -_080BE134: .4byte gSaveBlock2\n\ -.syntax divided\n"); -} -#endif -void sub_80BE138(TVShow *show) { - u32 playerId; - playerId = GetPlayerTrainerId(); + +void sub_80BE138(TVShow *show) +{ + u32 playerId = GetPlayerTrainerId(); + show->common.srcTrainerId2Lo = playerId & 0xFF; show->common.srcTrainerId2Hi = playerId >> 8; show->common.srcTrainerIdLo = playerId & 0xFF; @@ -813,107 +607,119 @@ void sub_80BE138(TVShow *show) { show->common.trainerIdHi = playerId >> 8; } -void sub_80BE160(TVShow *show) { - u32 playerId; - playerId = GetPlayerTrainerId(); +void sub_80BE160(TVShow *show) +{ + u32 playerId = GetPlayerTrainerId(); + show->common.srcTrainerIdLo = playerId & 0xFF; show->common.srcTrainerIdHi = playerId >> 8; show->common.trainerIdLo = playerId & 0xFF; show->common.trainerIdHi = playerId >> 8; } -void sub_80BE188(void) { - TVShow *show; - TVShow *buffer; - buffer = &gSaveBlock1.tvShows[24]; - if (buffer->bravoTrainer.var00 == TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE) { - show = &gSaveBlock1.tvShows[gUnknown_03005D38.var0]; - show->bravoTrainer.var00 = TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE; - show->bravoTrainer.var01 = 1; - show->bravoTrainer.species = buffer->bravoTrainer.species; - StringCopy(show->bravoTrainer.playerName, gSaveBlock2.playerName); - StringCopy(show->bravoTrainer.pokemonNickname, buffer->bravoTrainer.pokemonNickname); - show->bravoTrainer.contestCategory = buffer->bravoTrainer.contestCategory; - show->bravoTrainer.contestRank = buffer->bravoTrainer.contestRank; - show->bravoTrainer.var14 = buffer->bravoTrainer.var14; - show->bravoTrainer.contestResult = buffer->bravoTrainer.contestResult; - show->bravoTrainer.contestCategory = buffer->bravoTrainer.contestCategory; - sub_80BE160(show); - show->bravoTrainer.language = GAME_LANGUAGE; - show->bravoTrainer.var1f = sub_80BDEAC(show->bravoTrainer.pokemonNickname); - StripExtCtrlCodes(show->bravoTrainer.pokemonNickname); - } -} - -void sub_80BE23C(u16 a0) { - TVShow *show; - show = &gSaveBlock1.tvShows[24]; +void sub_80BE188(void) +{ + struct TVShowBravoTrainerPokemonProfiles *bravoTrainerSrc = &gSaveBlock1.tvShows[24].bravoTrainer; + + if (bravoTrainerSrc->var00 == TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE) + { + struct TVShowBravoTrainerPokemonProfiles *bravoTrainerNew = &gSaveBlock1.tvShows[gUnknown_03005D38.var0].bravoTrainer; + + bravoTrainerNew->var00 = TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE; + bravoTrainerNew->var01 = 1; + bravoTrainerNew->species = bravoTrainerSrc->species; + StringCopy(bravoTrainerNew->playerName, gSaveBlock2.playerName); + StringCopy(bravoTrainerNew->pokemonNickname, bravoTrainerSrc->pokemonNickname); + bravoTrainerNew->contestCategory = bravoTrainerSrc->contestCategory; + bravoTrainerNew->contestRank = bravoTrainerSrc->contestRank; + bravoTrainerNew->var14 = bravoTrainerSrc->var14; + bravoTrainerNew->contestResult = bravoTrainerSrc->contestResult; + bravoTrainerNew->contestCategory = bravoTrainerSrc->contestCategory; + sub_80BE160((TVShow *)bravoTrainerNew); + bravoTrainerNew->language = GAME_LANGUAGE; + bravoTrainerNew->var1f = sub_80BDEAC(bravoTrainerNew->pokemonNickname); + StripExtCtrlCodes(bravoTrainerNew->pokemonNickname); + } +} + +void sub_80BE23C(u16 a0) +{ + struct TVShowBravoTrainerPokemonProfiles *bravoTrainer = &gSaveBlock1.tvShows[24].bravoTrainer; + sub_80BF484(); gUnknown_03005D38.var0 = sub_80BF720(gSaveBlock1.tvShows); - if (gUnknown_03005D38.var0 != -1) { + if (gUnknown_03005D38.var0 != -1) + { sub_80BF55C(gSaveBlock1.tvShows, 24); - show->bravoTrainer.var14 = a0; - show->bravoTrainer.var00 = TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE; + bravoTrainer->var14 = a0; + bravoTrainer->var00 = TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE; } } -void sub_80BE284(u8 a0) { - TVShow *show; - show = &gSaveBlock1.tvShows[24]; +void sub_80BE284(u8 a0) +{ + struct TVShowBravoTrainerPokemonProfiles *bravoTrainer = &gSaveBlock1.tvShows[24].bravoTrainer; + gUnknown_03005D38.var0 = sub_80BF720(gSaveBlock1.tvShows); - if (gUnknown_03005D38.var0 != -1) { - show->bravoTrainer.contestResult = a0; - show->bravoTrainer.contestCategory = gScriptContestCategory; - show->bravoTrainer.contestRank = gScriptContestRank; - show->bravoTrainer.species = GetMonData(&gPlayerParty[gUnknown_02038694], MON_DATA_SPECIES, NULL); - GetMonData(&gPlayerParty[gUnknown_02038694], MON_DATA_NICKNAME, show->bravoTrainer.pokemonNickname); - } -} - -void sub_80BE320(void) { - TVShow *show; - show = &gSaveBlock1.tvShows[gUnknown_03005D38.var0]; - show->bravoTrainerTower.var00 = TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE; - show->bravoTrainerTower.var01 = 1; - StringCopy(show->bravoTrainerTower.trainerName, gSaveBlock2.playerName); - StringCopy(show->bravoTrainerTower.pokemonName, gSaveBlock2.filler_A8.filler_3DC); - show->bravoTrainerTower.species = gSaveBlock2.filler_A8.var_480; - show->bravoTrainerTower.defeatedSpecies = gSaveBlock2.filler_A8.var_482; - show->bravoTrainerTower.var16 = sub_8135D3C(gSaveBlock2.filler_A8.var_4D0); - show->bravoTrainerTower.var1c = gSaveBlock2.filler_A8.var_4AD; - if (gSaveBlock2.filler_A8.var_4D0 == 0) { - show->bravoTrainerTower.btLevel = 50; - } else { - show->bravoTrainerTower.btLevel = 100; - } - show->bravoTrainerTower.var1b = gSpecialVar_0x8004; - sub_80BE160(show); - show->bravoTrainerTower.language = GAME_LANGUAGE; -} - -void sub_80BE3BC(void) { + if (gUnknown_03005D38.var0 != -1) + { + bravoTrainer->contestResult = a0; + bravoTrainer->contestCategory = gScriptContestCategory; + bravoTrainer->contestRank = gScriptContestRank; + bravoTrainer->species = GetMonData(&gPlayerParty[gUnknown_02038694], MON_DATA_SPECIES, NULL); + GetMonData(&gPlayerParty[gUnknown_02038694], MON_DATA_NICKNAME, bravoTrainer->pokemonNickname); + } +} + +void sub_80BE320(void) +{ + struct TVShowBravoTrainerBattleTowerSpotlight *bravoTrainerTower = &gSaveBlock1.tvShows[gUnknown_03005D38.var0].bravoTrainerTower; + + bravoTrainerTower->var00 = TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE; + bravoTrainerTower->var01 = 1; + StringCopy(bravoTrainerTower->trainerName, gSaveBlock2.playerName); + StringCopy(bravoTrainerTower->pokemonName, gSaveBlock2.filler_A8.filler_3DC); + bravoTrainerTower->species = gSaveBlock2.filler_A8.var_480; + bravoTrainerTower->defeatedSpecies = gSaveBlock2.filler_A8.var_482; + bravoTrainerTower->var16 = sub_8135D3C(gSaveBlock2.filler_A8.var_4D0); + bravoTrainerTower->var1c = gSaveBlock2.filler_A8.var_4AD; + if (gSaveBlock2.filler_A8.var_4D0 == 0) + bravoTrainerTower->btLevel = 50; + else + bravoTrainerTower->btLevel = 100; + bravoTrainerTower->var1b = gSpecialVar_0x8004; + sub_80BE160((TVShow *)bravoTrainerTower); + bravoTrainerTower->language = GAME_LANGUAGE; +} + +void sub_80BE3BC(void) +{ u8 rval; - TVShow *tvShow; u8 i; rval = sub_80BF77C(0x5555); - if (rval == 0) { + if (rval == 0) + { gUnknown_03005D38.var0 = sub_80BF74C(gSaveBlock1.tvShows); - if (gUnknown_03005D38.var0 != -1 && sub_80BF1B4(TVSHOW_SMART_SHOPPER) != 1) { + if (gUnknown_03005D38.var0 != -1 && sub_80BF1B4(TVSHOW_SMART_SHOPPER) != 1) + { sub_80BF20C(); - if (gUnknown_02038724[0].item_amount >= 20) { - tvShow = &gSaveBlock1.tvShows[gUnknown_03005D38.var0]; - tvShow->smartshopperShow.var00 = TVSHOW_SMART_SHOPPER; - tvShow->smartshopperShow.var01 = rval; - tvShow->smartshopperShow.shopLocation = gMapHeader.name; - for (i=0; i<3; i++) { - tvShow->smartshopperShow.itemIds[i] = gUnknown_02038724[i].item_id; - tvShow->smartshopperShow.itemAmounts[i] = gUnknown_02038724[i].item_amount; + if (gUnknown_02038724[0].item_amount >= 20) + { + struct TVShowSmartShopper *smartShopper = &gSaveBlock1.tvShows[gUnknown_03005D38.var0].smartshopperShow; + + smartShopper->var00 = TVSHOW_SMART_SHOPPER; + smartShopper->var01 = rval; + smartShopper->shopLocation = gMapHeader.name; + for (i=0; i<3; i++) + { + smartShopper->itemIds[i] = gUnknown_02038724[i].item_id; + smartShopper->itemAmounts[i] = gUnknown_02038724[i].item_amount; } - tvShow->smartshopperShow.priceReduced = GetPriceReduction(1); - StringCopy(tvShow->smartshopperShow.playerName, gSaveBlock2.playerName); - sub_80BE138(tvShow); - tvShow->smartshopperShow.language = GAME_LANGUAGE; + smartShopper->priceReduced = GetPriceReduction(1); + StringCopy(smartShopper->playerName, gSaveBlock2.playerName); + sub_80BE138((TVShow *)smartShopper); + smartShopper->language = GAME_LANGUAGE; } } } @@ -921,132 +727,90 @@ void sub_80BE3BC(void) { void sub_80BE478(void) { - u16 playerNameLength; - u16 pokemonNicknameLength; - TVShow *tvShow; - sub_80BF478(); - if (gScriptResult == 1) - { return; - } GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_NICKNAME, gStringVar1); - - playerNameLength = StringLength(gSaveBlock2.playerName); - if (playerNameLength <= 1) + if (StringLength(gSaveBlock2.playerName) > 1 && StringLength(gStringVar1) > 1) { - return; - } + struct TVShowNameRaterShow *nameRaterShow = &gSaveBlock1.tvShows[gUnknown_03005D38.var0].nameRaterShow; - pokemonNicknameLength = StringLength(gStringVar1); - if (pokemonNicknameLength <= 1) - { - return; + nameRaterShow->var00 = TVSHOW_NAME_RATER_SHOW; + nameRaterShow->var01 = 1; + nameRaterShow->species = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPECIES, NULL); + nameRaterShow->random = Random() % 3; + nameRaterShow->random2 = Random() % 2; + nameRaterShow->var1C = sub_80BF674(nameRaterShow->species); + StringCopy(nameRaterShow->trainerName, gSaveBlock2.playerName); + GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_NICKNAME, nameRaterShow->pokemonName); + sub_80BE160((TVShow *)nameRaterShow); + nameRaterShow->language = GAME_LANGUAGE; + nameRaterShow->pokemonNameLanguage = sub_80BDEAC(nameRaterShow->pokemonName); + StripExtCtrlCodes(nameRaterShow->pokemonName); } - - tvShow = &gSaveBlock1.tvShows[gUnknown_03005D38.var0]; - - tvShow->nameRaterShow.var00 = TVSHOW_NAME_RATER_SHOW; - tvShow->nameRaterShow.var01 = 1; - - tvShow->nameRaterShow.species = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPECIES, NULL); - tvShow->nameRaterShow.random = Random() % 3; - tvShow->nameRaterShow.random2 = Random() % 2; - - tvShow->nameRaterShow.var1C = sub_80BF674(tvShow->nameRaterShow.species); - - StringCopy(tvShow->nameRaterShow.trainerName, gSaveBlock2.playerName); - - GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_NICKNAME, tvShow->nameRaterShow.pokemonName); - - sub_80BE160(tvShow); - - tvShow->nameRaterShow.language = GAME_LANGUAGE; - tvShow->nameRaterShow.pokemonNameLanguage = sub_80BDEAC(tvShow->nameRaterShow.pokemonName); - - StripExtCtrlCodes(tvShow->nameRaterShow.pokemonName); } void StartMassOutbreak(void) { - TVShow *tvShow; - - tvShow = &gSaveBlock1.tvShows[gSpecialVar_0x8004]; - - gSaveBlock1.outbreakPokemonSpecies = tvShow->massOutbreak.species; - gSaveBlock1.outbreakLocationMapNum = tvShow->massOutbreak.locationMapNum; - gSaveBlock1.outbreakLocationMapGroup = tvShow->massOutbreak.locationMapGroup; - gSaveBlock1.outbreakPokemonLevel = tvShow->massOutbreak.level; - gSaveBlock1.outbreakUnk1 = tvShow->massOutbreak.var02; - gSaveBlock1.outbreakUnk2 = tvShow->massOutbreak.var0E; - gSaveBlock1.outbreakPokemonMoves[0] = tvShow->massOutbreak.moves[0]; - gSaveBlock1.outbreakPokemonMoves[1] = tvShow->massOutbreak.moves[1]; - gSaveBlock1.outbreakPokemonMoves[2] = tvShow->massOutbreak.moves[2]; - gSaveBlock1.outbreakPokemonMoves[3] = tvShow->massOutbreak.moves[3]; - gSaveBlock1.outbreakUnk4 = tvShow->massOutbreak.var03; - gSaveBlock1.outbreakPokemonProbability = tvShow->massOutbreak.probability; + struct TVShowMassOutbreak *massOutbreak = &gSaveBlock1.tvShows[gSpecialVar_0x8004].massOutbreak; + + gSaveBlock1.outbreakPokemonSpecies = massOutbreak->species; + gSaveBlock1.outbreakLocationMapNum = massOutbreak->locationMapNum; + gSaveBlock1.outbreakLocationMapGroup = massOutbreak->locationMapGroup; + gSaveBlock1.outbreakPokemonLevel = massOutbreak->level; + gSaveBlock1.outbreakUnk1 = massOutbreak->var02; + gSaveBlock1.outbreakUnk2 = massOutbreak->var0E; + gSaveBlock1.outbreakPokemonMoves[0] = massOutbreak->moves[0]; + gSaveBlock1.outbreakPokemonMoves[1] = massOutbreak->moves[1]; + gSaveBlock1.outbreakPokemonMoves[2] = massOutbreak->moves[2]; + gSaveBlock1.outbreakPokemonMoves[3] = massOutbreak->moves[3]; + gSaveBlock1.outbreakUnk4 = massOutbreak->var03; + gSaveBlock1.outbreakPokemonProbability = massOutbreak->probability; gSaveBlock1.outbreakUnk5 = 2; } void sub_80BE5FC(void) { - TVShow *tvShow; - u16 species; - - tvShow = &gSaveBlock1.tvShows[gUnknown_03005D38.var0]; + struct TVShowFanClubLetter *fanclubLetter = &gSaveBlock1.tvShows[gUnknown_03005D38.var0].fanclubLetter; - tvShow->fanclubLetter.var00 = TVSHOW_FAN_CLUB_LETTER; - tvShow->fanclubLetter.var01 = 1; - StringCopy(tvShow->fanclubLetter.playerName, gSaveBlock2.playerName); - - species = GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_SPECIES, NULL); - tvShow->fanclubLetter.species = species; - sub_80BE160(tvShow); - tvShow->fanclubLetter.language = GAME_LANGUAGE; + fanclubLetter->var00 = TVSHOW_FAN_CLUB_LETTER; + fanclubLetter->var01 = 1; + StringCopy(fanclubLetter->playerName, gSaveBlock2.playerName); + fanclubLetter->species = GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_SPECIES, NULL); + sub_80BE160((TVShow *)fanclubLetter); + fanclubLetter->language = GAME_LANGUAGE; } void sub_80BE65C(void) { - TVShow *tvShow; + struct TVShowRecentHappenings *recentHappenings = &gSaveBlock1.tvShows[gUnknown_03005D38.var0].recentHappenings; - tvShow = &gSaveBlock1.tvShows[gUnknown_03005D38.var0]; - - tvShow->recentHappenings.var00 = TVSHOW_RECENT_HAPPENINGS; - tvShow->recentHappenings.var01 = 1; - StringCopy(tvShow->recentHappenings.playerName, gSaveBlock2.playerName); - tvShow->recentHappenings.var02 = 0; - - sub_80BE160(tvShow); - tvShow->recentHappenings.language = GAME_LANGUAGE; + recentHappenings->var00 = TVSHOW_RECENT_HAPPENINGS; + recentHappenings->var01 = 1; + StringCopy(recentHappenings->playerName, gSaveBlock2.playerName); + recentHappenings->var02 = 0; + sub_80BE160((TVShow *)recentHappenings); + recentHappenings->language = GAME_LANGUAGE; } void sub_80BE6A0(void) { - TVShow *tvShow; u8 monIndex; + struct TVShowFanclubOpinions *fanclubOpinions = &gSaveBlock1.tvShows[gUnknown_03005D38.var0].fanclubOpinions; - tvShow = &gSaveBlock1.tvShows[gUnknown_03005D38.var0]; - - tvShow->fanclubOpinions.var00 = TVSHOW_PKMN_FAN_CLUB_OPINIONS; - tvShow->fanclubOpinions.var01 = 1; - + fanclubOpinions->var00 = TVSHOW_PKMN_FAN_CLUB_OPINIONS; + fanclubOpinions->var01 = 1; monIndex = GetLeadMonIndex(); - - tvShow->fanclubOpinions.var04A = GetMonData(&gPlayerParty[monIndex], MON_DATA_FRIENDSHIP, NULL) / 16; - tvShow->fanclubOpinions.var04B = gSpecialVar_0x8007; - - - StringCopy(tvShow->fanclubOpinions.playerName, gSaveBlock2.playerName); - - GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_NICKNAME, tvShow->fanclubOpinions.var10); - - tvShow->fanclubOpinions.var02 = GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_SPECIES, NULL); - sub_80BE160(tvShow); - tvShow->fanclubOpinions.language = GAME_LANGUAGE; - tvShow->fanclubOpinions.var0E = sub_80BDEAC(tvShow->fanclubOpinions.var10); - StripExtCtrlCodes(tvShow->fanclubOpinions.var10); + fanclubOpinions->var04A = GetMonData(&gPlayerParty[monIndex], MON_DATA_FRIENDSHIP, NULL) / 16; + fanclubOpinions->var04B = gSpecialVar_0x8007; + StringCopy(fanclubOpinions->playerName, gSaveBlock2.playerName); + GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_NICKNAME, fanclubOpinions->var10); + fanclubOpinions->var02 = GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_SPECIES, NULL); + sub_80BE160((TVShow *)fanclubOpinions); + fanclubOpinions->language = GAME_LANGUAGE; + fanclubOpinions->var0E = sub_80BDEAC(fanclubOpinions->var10); + StripExtCtrlCodes(fanclubOpinions->var10); } void nullsub_21(void) @@ -1055,66 +819,46 @@ void nullsub_21(void) void sub_80BE778(void) { - u8 i; - - if (!FlagGet(SYS_GAME_CLEAR)) + if (FlagGet(SYS_GAME_CLEAR)) { - return; - } + u8 i; - - for (i = 0; i < 24; i++) - { - if (gSaveBlock1.tvShows[i].massOutbreak.var00 == TVSHOW_MASS_OUTBREAK) + for (i = 0; i < 24; i++) { - return; + if (gSaveBlock1.tvShows[i].massOutbreak.var00 == TVSHOW_MASS_OUTBREAK) + return; } - } - - if (sub_80BF77C(0x147)) - { - return; - } - - gUnknown_03005D38.var0 = sub_80BF720(gSaveBlock1.tvShows); - if (gUnknown_03005D38.var0 == -1) - { - return; - } - { - u16 rand; - u16 val; - s32 val2; - TVShow *tvShow; - - rand = Random(); - val = rand % 5; - - val2 = gUnknown_03005D38.var0; - - tvShow = &gSaveBlock1.tvShows[val2]; - - tvShow->massOutbreak.var00 = TVSHOW_MASS_OUTBREAK; - tvShow->massOutbreak.var01 = 1; - - tvShow->massOutbreak.level = gPokeOutbreakSpeciesList[val].level; - tvShow->massOutbreak.var02 = 0; - tvShow->massOutbreak.var03 = 0; - tvShow->massOutbreak.species = gPokeOutbreakSpeciesList[val].species; - tvShow->massOutbreak.var0E = 0; - tvShow->massOutbreak.moves[0] = gPokeOutbreakSpeciesList[val].moves[0]; - tvShow->massOutbreak.moves[1] = gPokeOutbreakSpeciesList[val].moves[1]; - tvShow->massOutbreak.moves[2] = gPokeOutbreakSpeciesList[val].moves[2]; - tvShow->massOutbreak.moves[3] = gPokeOutbreakSpeciesList[val].moves[3]; - tvShow->massOutbreak.locationMapNum = gPokeOutbreakSpeciesList[val].location; - tvShow->massOutbreak.locationMapGroup = 0; - tvShow->massOutbreak.var12 = 0; - tvShow->massOutbreak.probability = 0x32; - tvShow->massOutbreak.var15 = 0; - tvShow->massOutbreak.var16 = 0x01; - sub_80BE160(tvShow); + if (sub_80BF77C(0x147)) + return; - tvShow->massOutbreak.language = GAME_LANGUAGE; + gUnknown_03005D38.var0 = sub_80BF720(gSaveBlock1.tvShows); + if (gUnknown_03005D38.var0 != -1) + { + u16 rand = Random(); + u16 val = rand % 5; + s32 val2 = gUnknown_03005D38.var0; + struct TVShowMassOutbreak *massOutbreak = &gSaveBlock1.tvShows[val2].massOutbreak; + + massOutbreak->var00 = TVSHOW_MASS_OUTBREAK; + massOutbreak->var01 = 1; + massOutbreak->level = gPokeOutbreakSpeciesList[val].level; + massOutbreak->var02 = 0; + massOutbreak->var03 = 0; + massOutbreak->species = gPokeOutbreakSpeciesList[val].species; + massOutbreak->var0E = 0; + massOutbreak->moves[0] = gPokeOutbreakSpeciesList[val].moves[0]; + massOutbreak->moves[1] = gPokeOutbreakSpeciesList[val].moves[1]; + massOutbreak->moves[2] = gPokeOutbreakSpeciesList[val].moves[2]; + massOutbreak->moves[3] = gPokeOutbreakSpeciesList[val].moves[3]; + massOutbreak->locationMapNum = gPokeOutbreakSpeciesList[val].location; + massOutbreak->locationMapGroup = 0; + massOutbreak->var12 = 0; + massOutbreak->probability = 0x32; + massOutbreak->var15 = 0; + massOutbreak->var16 = 0x01; + sub_80BE160((TVShow *)massOutbreak); + massOutbreak->language = GAME_LANGUAGE; + } } } @@ -1146,15 +890,20 @@ void UpdateTVShowsPerDay(u16 arg0) void sub_80BE8EC(u16 arg0) { u8 showidx; - TVShow *tvShow; - if (gSaveBlock1.outbreakPokemonSpecies == 0) { - for (showidx=0; showidx<24; showidx++) { - if (gSaveBlock1.tvShows[showidx].massOutbreak.var00 == TVSHOW_MASS_OUTBREAK && gSaveBlock1.tvShows[showidx].massOutbreak.var01 == 0x01) { - tvShow = &(gSaveBlock1.tvShows[showidx]); - if (tvShow->massOutbreak.var16 < arg0) - tvShow->massOutbreak.var16 = 0; + + if (gSaveBlock1.outbreakPokemonSpecies == 0) + { + for (showidx=0; showidx<24; showidx++) + { + if (gSaveBlock1.tvShows[showidx].massOutbreak.var00 == TVSHOW_MASS_OUTBREAK + && gSaveBlock1.tvShows[showidx].massOutbreak.var01 == 0x01) + { + struct TVShowMassOutbreak *massOutbreak = &gSaveBlock1.tvShows[showidx].massOutbreak; + + if (massOutbreak->var16 < arg0) + massOutbreak->var16 = 0; else - tvShow->massOutbreak.var16 -= arg0; + massOutbreak->var16 -= arg0; break; } } @@ -1172,7 +921,9 @@ void UpdateMassOutbreakTimeLeft(u16 arg0) void sub_80BE97C(bool8 flag) { u8 var0, var1; - if (flag != 0) { + + if (flag) + { var0 = gUnknown_020387E2 >> 8; if (var0 > 4) sub_80BE9D4(); @@ -1180,7 +931,9 @@ void sub_80BE97C(bool8 flag) var1 = gUnknown_020387E2 & 0xFF; if (var1 != 0xFF) gUnknown_020387E2++; - } else { + } + else + { var0 = gUnknown_020387E2 & 0xFF; if (var0 > 4) sub_80BE9D4(); @@ -1191,29 +944,24 @@ void sub_80BE97C(bool8 flag) } } -void sub_80BE9D4() +void sub_80BE9D4(void) { - TVShow *show; + //TVShow *show; gUnknown_03005D38.var0 = sub_80BF74C(gSaveBlock1.tvShows); - if (gUnknown_03005D38.var0 != -1 && sub_80BF1B4(TVSHOW_FISHING_ADVICE) != 1) { - show = &(gSaveBlock1.tvShows[gUnknown_03005D38.var0]); -#ifdef NONMATCHING - show->pokemonAngler.var00 = TVSHOW_FISHING_ADVICE; - show->pokemonAngler.var01 = 0; -#else - asm(".syntax unified\n\ - movs r1, 0\n\ - movs r0, 24\n\ - strb r0, [r4]\n\ - strb r1, [r4, 1]\n\ - .syntax divided\n"); -#endif - show->pokemonAngler.var02 = gUnknown_020387E2 & 0xFF; - show->pokemonAngler.var03 = gUnknown_020387E2 >> 8; - show->pokemonAngler.var04 = gUnknown_020387E0; - StringCopy(show->pokemonAngler.playerName, gSaveBlock2.playerName); - sub_80BE138(show); - show->pokemonAngler.language = GAME_LANGUAGE; + if (gUnknown_03005D38.var0 != -1 && sub_80BF1B4(TVSHOW_FISHING_ADVICE) != 1) + { + struct TVShowPokemonAngler *pokemonAngler = &gSaveBlock1.tvShows[gUnknown_03005D38.var0].pokemonAngler; + register u8 zero asm("r1") = 0; + + asm(""::"r"(zero)); + pokemonAngler->var00 = TVSHOW_FISHING_ADVICE; + pokemonAngler->var01 = zero; + pokemonAngler->var02 = gUnknown_020387E2 & 0xFF; + pokemonAngler->var03 = gUnknown_020387E2 >> 8; + pokemonAngler->var04 = gUnknown_020387E0; + StringCopy(pokemonAngler->playerName, gSaveBlock2.playerName); + sub_80BE138((TVShow *)pokemonAngler); + pokemonAngler->language = GAME_LANGUAGE; } } @@ -1226,95 +974,100 @@ void sub_80BEA88(void); void sub_80BEA5C(u16 arg0) { - TVShow *unk_2a98; - unk_2a98 = &gSaveBlock1.tvShows[24]; - if (unk_2a98->common.var00 == TVSHOW_WORLD_OF_MASTERS) + struct TVShowWorldOfMasters *worldOfMasters = &gSaveBlock1.tvShows[24].worldOfMasters; + + if (worldOfMasters->var00 == TVSHOW_WORLD_OF_MASTERS) { - if (unk_2a98->worldOfMasters.var02 < 20) - { + if (worldOfMasters->var02 < 20) sub_80BF55C(gSaveBlock1.tvShows, 0x18); - } else - { sub_80BEA88(); - } } } void sub_80BEA88(void) { - TVShow *unk_2a98; - TVShow *tvShow; - u8 rval; - unk_2a98 = &gSaveBlock1.tvShows[24]; - rval = sub_80BF77C(0xFFFF); - if (rval == 0) + struct TVShowWorldOfMasters *worldOfMastersSrc = &gSaveBlock1.tvShows[24].worldOfMasters; + + if (sub_80BF77C(0xFFFF) == 0) { gUnknown_03005D38.var0 = sub_80BF74C(gSaveBlock1.tvShows); if (gUnknown_03005D38.var0 != -1 && sub_80BF1B4(TVSHOW_WORLD_OF_MASTERS) != 1) { - tvShow = &gSaveBlock1.tvShows[gUnknown_03005D38.var0]; - tvShow->worldOfMasters.var00 = TVSHOW_WORLD_OF_MASTERS; - tvShow->worldOfMasters.var01 = rval; - tvShow->worldOfMasters.var02 = unk_2a98->worldOfMasters.var02; - tvShow->worldOfMasters.var06 = GetGameStat(GAME_STAT_STEPS) - unk_2a98->worldOfMasters.var06; - tvShow->worldOfMasters.var04 = unk_2a98->worldOfMasters.var04; - tvShow->worldOfMasters.var08 = unk_2a98->worldOfMasters.var08; - tvShow->worldOfMasters.var0a = unk_2a98->worldOfMasters.var0a; - StringCopy(tvShow->worldOfMasters.playerName, gSaveBlock2.playerName); - sub_80BE138(tvShow); - tvShow->worldOfMasters.language = GAME_LANGUAGE; + struct TVShowWorldOfMasters *worldOfMastersDst = &gSaveBlock1.tvShows[gUnknown_03005D38.var0].worldOfMasters; + + worldOfMastersDst->var00 = TVSHOW_WORLD_OF_MASTERS; + worldOfMastersDst->var01 = 0; + worldOfMastersDst->var02 = worldOfMastersSrc->var02; + worldOfMastersDst->var06 = GetGameStat(GAME_STAT_STEPS) - worldOfMastersSrc->var06; + worldOfMastersDst->var04 = worldOfMastersSrc->var04; + worldOfMastersDst->var08 = worldOfMastersSrc->var08; + worldOfMastersDst->var0a = worldOfMastersSrc->var0a; + StringCopy(worldOfMastersDst->playerName, gSaveBlock2.playerName); + sub_80BE138((TVShow *)worldOfMastersDst); + worldOfMastersDst->language = GAME_LANGUAGE; } } } -void sub_80BEB20(void) { +void sub_80BEB20(void) +{ u16 rval; - struct SaveBlock1 *save; - struct UnknownSaveStruct2ABC *unk2abc; - if (FlagGet(SYS_GAME_CLEAR) != 0) { - unk2abc = gSaveBlock1.unknown_2ABC; - gUnknown_03005D38.var0 = sub_80BEBC8(unk2abc); - if (gUnknown_03005D38.var0 != -1 && sub_80BF77C(0x28f) != 1) { + + if (FlagGet(SYS_GAME_CLEAR) != 0) + { + gUnknown_03005D38.var0 = sub_80BEBC8(gSaveBlock1.unknown_2ABC); + if (gUnknown_03005D38.var0 != -1 && sub_80BF77C(0x28f) != 1) + { rval = (Random() % 3) + 1; - if (sub_80BEE48(rval) != 1) { - save = &gSaveBlock1; - save->unknown_2ABC[gUnknown_03005D38.var0].val0 = rval; - save->unknown_2ABC[gUnknown_03005D38.var0].val2 = 4; - save->unknown_2ABC[gUnknown_03005D38.var0].val1 = 1; + if (sub_80BEE48(rval) != 1) + { + gSaveBlock1.unknown_2ABC[gUnknown_03005D38.var0].val0 = rval; + gSaveBlock1.unknown_2ABC[gUnknown_03005D38.var0].val2 = 4; + gSaveBlock1.unknown_2ABC[gUnknown_03005D38.var0].val1 = 1; } } } } -int sub_80BEBC8(struct UnknownSaveStruct2ABC *arg0) { +int sub_80BEBC8(struct UnknownSaveStruct2ABC *arg0) +{ s8 i; - for (i=0; i<16; i++) { - if (arg0[i].val0 == 0) { + + for (i = 0; i < 16; i++) + { + if (arg0[i].val0 == 0) return i; - } } return -1; } -void sub_80BEBF4(void) { +void sub_80BEBF4(void) +{ u8 i; - for (i=0; i<16; i++) { + + for (i = 0; i < 16; i++) sub_80BEC10(i); - } } -void sub_80BEC10(u8 arg0) { +void sub_80BEC10(u8 arg0) +{ gSaveBlock1.unknown_2ABC[arg0].val0 = 0; gSaveBlock1.unknown_2ABC[arg0].val1 = 0; gSaveBlock1.unknown_2ABC[arg0].val2 = 0; } -void sub_80BEC40(void) { +void sub_80BEC40(void) +{ u8 i, j; - for (i = 0; i < 15; i++) { - if (gSaveBlock1.unknown_2ABC[i].val0 == 0) { - for (j = i + 1; j < 16; j++) { - if (gSaveBlock1.unknown_2ABC[j].val0 != 0) { + + for (i = 0; i < 15; i++) + { + if (gSaveBlock1.unknown_2ABC[i].val0 == 0) + { + for (j = i + 1; j < 16; j++) + { + if (gSaveBlock1.unknown_2ABC[j].val0 != 0) + { gSaveBlock1.unknown_2ABC[i] = gSaveBlock1.unknown_2ABC[j]; sub_80BEC10(j); break; @@ -1327,12 +1080,12 @@ void sub_80BEC40(void) { u8 sub_80BECA0(void) { u8 i; - for (i=0; i<16; i++) + for (i = 0; i < 16; i++) { - if (gSaveBlock1.unknown_2ABC[i].val0 != 0 && gSaveBlock1.unknown_2ABC[i].val1 == 1 && gSaveBlock1.unknown_2ABC[i].val2 < 3) - { + if (gSaveBlock1.unknown_2ABC[i].val0 != 0 + && gSaveBlock1.unknown_2ABC[i].val1 == 1 + && gSaveBlock1.unknown_2ABC[i].val2 < 3) return i; - } } return 0xFF; } @@ -1350,17 +1103,14 @@ void sub_80BECE8(void) { gSaveBlock1.unknown_2ABC[arg0].val1 = 2; if (gLocalTime.hours < 20) - { ShowFieldMessage(gTVNewsTextGroup2[gSaveBlock1.unknown_2ABC[arg0].val0]); - } else - { ShowFieldMessage(gTVNewsTextGroup3[gSaveBlock1.unknown_2ABC[arg0].val0]); - } } else { u16 value = gSaveBlock1.unknown_2ABC[arg0].val2; + ConvertIntToDecimalStringN(gStringVar1, value, 0, 1); gSaveBlock1.unknown_2ABC[arg0].val1 = 0; ShowFieldMessage(gTVNewsTextGroup1[gSaveBlock1.unknown_2ABC[arg0].val0]); @@ -1371,22 +1121,17 @@ void sub_80BECE8(void) bool8 GetPriceReduction(u8 arg0) { u8 i; + if (arg0 == 0) - { return FALSE; - } for (i=0; i<16; i++) { if (gSaveBlock1.unknown_2ABC[i].val0 == arg0) { if (gSaveBlock1.unknown_2ABC[i].val1 == 2 && IsPriceDiscounted(arg0) != 0) - { return TRUE; - } else - { return FALSE; - } } } return FALSE; @@ -1397,24 +1142,19 @@ bool8 IsPriceDiscounted(u8 arg0) switch (arg0) { case 1: - if (gSaveBlock1.location.mapGroup == MAP_GROUP_SLATEPORT_CITY && gSaveBlock1.location.mapNum == MAP_ID_SLATEPORT_CITY && gScriptLastTalked == 0x1a) - { + if (gSaveBlock1.location.mapGroup == MAP_GROUP_SLATEPORT_CITY + && gSaveBlock1.location.mapNum == MAP_ID_SLATEPORT_CITY + && gScriptLastTalked == 0x1a) return TRUE; - } else - { return FALSE; - } break; case 3: - if (gSaveBlock1.location.mapGroup == MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP && gSaveBlock1.location.mapNum == MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP) - { + if (gSaveBlock1.location.mapGroup == MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP + && gSaveBlock1.location.mapNum == MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP) return TRUE; - } else - { return FALSE; - } break; default: return TRUE; @@ -1424,19 +1164,13 @@ bool8 IsPriceDiscounted(u8 arg0) bool8 sub_80BEE48(u8 arg0) { u8 i; + if (arg0 == 0) - { return TRUE; - } - else + for (i=0; i<16; i++) { - for (i=0; i<16; i++) - { - if (gSaveBlock1.unknown_2ABC[i].val0 == arg0) - { - return TRUE; - } - } + if (gSaveBlock1.unknown_2ABC[i].val0 == arg0) + return TRUE; } return FALSE; } @@ -1444,6 +1178,7 @@ bool8 sub_80BEE48(u8 arg0) void sub_80BEE84(u16 var0) { u8 i; + for (i=0; i<16; i++) { if (gSaveBlock1.unknown_2ABC[i].val0) @@ -1455,9 +1190,7 @@ void sub_80BEE84(u16 var0) else { if (!gSaveBlock1.unknown_2ABC[i].val1 && FlagGet(SYS_GAME_CLEAR) == 1) - { gSaveBlock1.unknown_2ABC[i].val1 = 1; - } gSaveBlock1.unknown_2ABC[i].val2 -= var0; } } @@ -1470,16 +1203,16 @@ void sub_80BEF10(u8 strvaridx, u8 rank) switch (rank) { case NORMAL_RANK: - StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[NORMAL_RANK + 5].text); + StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[NORMAL_RANK + 5]); break; case SUPER_RANK: - StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[SUPER_RANK + 5].text); + StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[SUPER_RANK + 5]); break; case HYPER_RANK: - StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[HYPER_RANK + 5].text); + StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[HYPER_RANK + 5]); break; case MASTER_RANK: - StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[MASTER_RANK + 5].text); + StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[MASTER_RANK + 5]); break; } } @@ -1489,34 +1222,34 @@ void CopyContestCategoryToStringVar(u8 strvaridx, u8 category) switch (category) { case CONTEST_COOL: - StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_COOL].text); + StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_COOL]); break; case CONTEST_BEAUTY: - StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_BEAUTY].text); + StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_BEAUTY]); break; case CONTEST_CUTE: - StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_CUTE].text); + StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_CUTE]); break; case CONTEST_SMART: - StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_SMART].text); + StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_SMART]); break; case CONTEST_TOUGH: - StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_TOUGH].text); + StringCopy(gUnknown_083D1464[strvaridx], gUnknown_083CE048[CONTEST_TOUGH]); break; } } void SetContestCategoryStringVarForInterview(void) { - TVShow *tvShow; - tvShow = &gSaveBlock1.tvShows[gSpecialVar_0x8004]; - CopyContestCategoryToStringVar(1, tvShow->bravoTrainer.contestCategory); + struct TVShowBravoTrainerPokemonProfiles *bravoTrainer = &gSaveBlock1.tvShows[gSpecialVar_0x8004].bravoTrainer; + + CopyContestCategoryToStringVar(1, bravoTrainer->contestCategory); } void sub_80BF088(u8 arg0, s32 price) { - size_t log10val; - log10val = sub_80BF0B8(price); + size_t log10val = sub_80BF0B8(price); + ConvertIntToDecimalStringN(gUnknown_083D1464[arg0], price, 0, log10val); } @@ -1547,38 +1280,31 @@ void sub_80BF154(u8 arg0, struct TVShowSmartShopper *arg1) u8 i; s32 price; price = 0; - for (i=0; i<3; i++) + + for (i = 0; i < 3; i++) { if (arg1->itemIds[i]) - { price += ItemId_GetPrice(arg1->itemIds[i]) * arg1->itemAmounts[i]; - } } if (arg1->priceReduced == 1) - { sub_80BF088(arg0, price >> 1); - } else - { sub_80BF088(arg0, price); - } } bool8 sub_80BF1B4(u8 showIdx) { - TVShow *tvShows; u8 i; - u32 trainerId; - tvShows = gSaveBlock1.tvShows; - trainerId = GetPlayerTrainerId(); - for (i=5; i<24; i++) + //TVShow *tvShows; + TVShow *tvShows = gSaveBlock1.tvShows; + u32 trainerId = GetPlayerTrainerId(); + + for (i = 5; i < 24; i++) { if (tvShows[i].common.var00 == showIdx) { if ((trainerId & 0xFF) == tvShows[i].common.trainerIdLo && ((trainerId >> 8) & 0xFF) == tvShows[i].common.trainerIdHi) - { return TRUE; - } } } return FALSE; @@ -1588,9 +1314,10 @@ void sub_80BF20C(void) { u8 i, j; u16 tmpId, tmpAmount; - for (i=0; i<2; i++) + + for (i = 0; i < 2; i++) { - for (j=i+1; j<3; j++) + for (j = i + 1; j < 3; j++) { if (gUnknown_02038724[i].item_amount < gUnknown_02038724[j].item_amount) { @@ -1608,9 +1335,11 @@ void sub_80BF20C(void) void sub_80BF25C(u8 showType) { u8 i; - for (i=0; i<5; i++) + + for (i = 0; i < 5; i++) { - if (gSaveBlock1.tvShows[i].common.var00 == showType) { + if (gSaveBlock1.tvShows[i].common.var00 == showType) + { if(gSaveBlock1.tvShows[i].common.var01 == 1) { gScriptResult = 1; @@ -1630,7 +1359,8 @@ void sub_80BF25C(u8 showType) void sub_80BF2C4(void) { gScriptResult = 0; - switch (gSpecialVar_0x8005) { + switch (gSpecialVar_0x8005) + { case TVSHOW_FAN_CLUB_LETTER: sub_80BF334(); break; @@ -1657,35 +1387,41 @@ void sub_80BF2C4(void) void sub_80BF334(void) { - TVShow *show; + struct TVShowFanClubLetter *fanclubLetter; + sub_80BF25C(TVSHOW_FAN_CLUB_LETTER); - if (gScriptResult == 0) { + if (gScriptResult == 0) + { StringCopy(gStringVar1, gSpeciesNames[GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_SPECIES, 0)]); - show = &gSaveBlock1.tvShows[gUnknown_03005D38.var0]; - sub_80EB6FC(show->fanclubLetter.pad04, 6); + fanclubLetter = &gSaveBlock1.tvShows[gUnknown_03005D38.var0].fanclubLetter; + sub_80EB6FC(fanclubLetter->pad04, 6); } } void sub_80BF3A4(void) { - TVShow *show; + struct TVShowRecentHappenings *recentHappenings; + sub_80BF25C(TVSHOW_RECENT_HAPPENINGS); - if (gScriptResult == 0) { - show = &gSaveBlock1.tvShows[gUnknown_03005D38.var0]; - sub_80EB6FC(show->recentHappenings.var04, 6); + if (gScriptResult == 0) + { + recentHappenings = &gSaveBlock1.tvShows[gUnknown_03005D38.var0].recentHappenings; + sub_80EB6FC(recentHappenings->var04, 6); } } void sub_80BF3DC(void) { - TVShow *show; + struct TVShowFanclubOpinions *fanclubOpinions; + sub_80BF25C(TVSHOW_PKMN_FAN_CLUB_OPINIONS); - if (gScriptResult == 0) { + if (gScriptResult == 0) + { StringCopy(gStringVar1, gSpeciesNames[GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_SPECIES, 0)]); GetMonData(&gPlayerParty[GetLeadMonIndex()], MON_DATA_NICKNAME, gStringVar2); StringGetEnd10(gStringVar2); - show = &gSaveBlock1.tvShows[gUnknown_03005D38.var0]; - sub_80EB6FC(show->fanclubOpinions.var1C, 2); + fanclubOpinions = &gSaveBlock1.tvShows[gUnknown_03005D38.var0].fanclubOpinions; + sub_80EB6FC(fanclubOpinions->var1C, 2); } } @@ -1701,21 +1437,25 @@ void sub_80BF478(void) void sub_80BF484(void) { - TVShow *show; + struct TVShowBravoTrainerPokemonProfiles *bravoTrainer; + sub_80BF25C(TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE); - if (gScriptResult == 0) { - show = &gSaveBlock1.tvShows[gUnknown_03005D38.var0]; - sub_80EB6FC(show->bravoTrainer.var04, 2); + if (gScriptResult == 0) + { + bravoTrainer = &gSaveBlock1.tvShows[gUnknown_03005D38.var0].bravoTrainer; + sub_80EB6FC(bravoTrainer->var04, 2); } } void sub_80BF4BC(void) { - TVShow *show; + struct TVShowBravoTrainerBattleTowerSpotlight *bravoTrainerTower; + sub_80BF25C(TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE); - if (gScriptResult == 0) { - show = &gSaveBlock1.tvShows[gUnknown_03005D38.var0]; - sub_80EB6FC(show->bravoTrainerTower.var18, 1); // wrong struct ident, fix later + if (gScriptResult == 0) + { + bravoTrainerTower = &gSaveBlock1.tvShows[gUnknown_03005D38.var0].bravoTrainerTower; + sub_80EB6FC(bravoTrainerTower->var18, 1); // wrong struct ident, fix later } } @@ -1725,13 +1465,9 @@ u8 sub_80BF4F4(u8 arg0) u32 species; GetMonData(&gPlayerParty[arg0], MON_DATA_NICKNAME, &gStringVar1); - species = GetMonData(&gPlayerParty[arg0], MON_DATA_SPECIES, NULL); - if (StringCompareWithoutExtCtrlCodes(gSpeciesNames[species], gStringVar1) == FALSE) - { return FALSE; - } return TRUE; } @@ -1740,22 +1476,18 @@ u8 sub_80BF4F4(u8 arg0) { u8 langData[4]; u32 species; - u8 *tmp; GetMonData(&gPlayerParty[arg0], MON_DATA_NICKNAME, &gStringVar1); tmp = langData; tmp[0] = GetMonData(&gPlayerParty[arg0], MON_DATA_LANGUAGE, &langData); - if (tmp[0] != GAME_LANGUAGE) { + if (tmp[0] != GAME_LANGUAGE) return TRUE; - } species = GetMonData(&gPlayerParty[arg0], MON_DATA_SPECIES, NULL); - - if (StringCompareWithoutExtCtrlCodes(gSpeciesNames[species], gStringVar1)) { + if (StringCompareWithoutExtCtrlCodes(gSpeciesNames[species], gStringVar1)) return TRUE; - } return FALSE; } @@ -1769,21 +1501,26 @@ u8 sub_80BF544(void) void sub_80BF55C(TVShow tvShow[], u8 showidx) { u8 idx; + tvShow[showidx].common.var00 = 0; tvShow[showidx].common.var01 = 0; - for (idx=0; idx<34; idx++) { + for (idx = 0; idx < 34; idx++) tvShow[showidx].common.pad02[idx] = 0; - } } void sub_80BF588(TVShow tvShow[]) { u8 showidx; u8 showidx2; - for (showidx=0; showidx<4; showidx++) { - if (tvShow[showidx].common.var00 == 0) { - for (showidx2=showidx+1; showidx2<5; showidx2++) { - if (tvShow[showidx2].common.var00 != 0) { + + for (showidx = 0; showidx < 4; showidx++) + { + if (tvShow[showidx].common.var00 == 0) + { + for (showidx2 = showidx + 1; showidx2 < 5; showidx2++) + { + if (tvShow[showidx2].common.var00 != 0) + { tvShow[showidx] = tvShow[showidx2]; sub_80BF55C(tvShow, showidx2); break; @@ -1791,10 +1528,14 @@ void sub_80BF588(TVShow tvShow[]) } } } - for (showidx=5; showidx<24; showidx++) { - if (tvShow[showidx].common.var00 == 0) { - for (showidx2=showidx+1; showidx2<24; showidx2++) { - if (tvShow[showidx2].common.var00 != 0) { + for (showidx = 5; showidx < 24; showidx++) + { + if (tvShow[showidx].common.var00 == 0) + { + for (showidx2 = showidx + 1; showidx2 < 24; showidx2++) + { + if (tvShow[showidx2].common.var00 != 0) + { tvShow[showidx] = tvShow[showidx2]; sub_80BF55C(gSaveBlock1.tvShows, showidx2); break; @@ -1807,6 +1548,7 @@ void sub_80BF588(TVShow tvShow[]) u16 sub_80BF638(u8 arg0, u16 arg1) { u16 retval = sub_80BF674(arg1); + StringCopy(gUnknown_083D1464[arg0], gSpeciesNames[retval]); return retval; } @@ -1815,14 +1557,17 @@ u16 sub_80BF674(u16 species) { u16 rspecies; u16 cspecies; + rspecies = (Random() % (NUM_SPECIES - 1)) + 1; cspecies = rspecies; - while ((s8)GetNationalPokedexFlag(SpeciesToNationalPokedexNum(cspecies), 0) != 1 || cspecies == species) { + while (GetNationalPokedexFlag(SpeciesToNationalPokedexNum(cspecies), 0) != 1 || cspecies == species) + { if (cspecies == SPECIES_BULBASAUR) cspecies = NUM_SPECIES - 1; else cspecies --; - if (cspecies == rspecies) { + if (cspecies == rspecies) + { cspecies = species; return cspecies; } @@ -1843,7 +1588,9 @@ void sub_80BF6D8(void) s8 sub_80BF720(TVShow tvShow[]) { u8 idx; - for (idx=0; idx<5; idx++) { + + for (idx = 0; idx < 5; idx++) + { if (tvShow[idx].common.var00 == 0) return idx; } @@ -1853,7 +1600,9 @@ s8 sub_80BF720(TVShow tvShow[]) s8 sub_80BF74C(TVShow tvShow[]) { s8 idx; - for (idx=5; idx<24; idx++) { + + for (idx = 5; idx < 24; idx++) + { if (tvShow[idx].common.var00 == 0) return idx; } @@ -1870,12 +1619,14 @@ bool8 sub_80BF77C(u16 value) void sub_80BF79C(TVShow *arg0) { u8 i = Random() % 6; - while (1) { + + while (1) + { if (i == 6) i = 0; if (arg0->recentHappenings.var04[i] != 0xFFFF) break; - i ++; + i++; } sub_80EB3FC(gStringVar3, arg0->recentHappenings.var04[i]); } @@ -1884,8 +1635,11 @@ u8 sub_80BF7E8(struct TVShowNameRaterShow *arg0) { u16 flagsum = 0; u8 i = 0; - if (arg0->pokemonName[0] != 0xFF) { - while (i < 11 && arg0->pokemonName[i] != 0xFF) { + + if (arg0->pokemonName[0] != 0xFF) + { + while (i < 11 && arg0->pokemonName[i] != 0xFF) + { flagsum += arg0->pokemonName[i]; i++; } @@ -1893,49 +1647,77 @@ u8 sub_80BF7E8(struct TVShowNameRaterShow *arg0) return flagsum & 0x7; } + void sub_80BF820(u8 arg0, u8 arg1, u8 arg2, u16 arg3, u16 arg4, struct TVShowNameRaterShow *tvShow) { u8 flags[3]; u16 nameLength; u8 i; - for (i=0; i<3; i++) + + for (i = 0; i < 3; i++) flags[i] = EOS; - if (arg3 == 0) { + + if (arg3 == 0) + { nameLength = StringLength(tvShow->trainerName); - if (arg2 == 0) { + if (arg2 == 0) + { flags[0] = tvShow->trainerName[arg1]; - } else if (arg2 == 1) { + } + else if (arg2 == 1) + { flags[0] = tvShow->trainerName[nameLength - arg1]; - } else if (arg2 == 2) { + } + else if (arg2 == 2) { flags[0] = tvShow->trainerName[arg1]; flags[1] = tvShow->trainerName[arg1 + 1]; - } else { + } + else + { flags[0] = tvShow->trainerName[nameLength - (arg1 + 2)]; flags[1] = tvShow->trainerName[nameLength - (arg1 + 1)]; } - } else if (arg3 == 1) { + } + else if (arg3 == 1) + { nameLength = StringLength(tvShow->pokemonName); - if (arg2 == 0) { + if (arg2 == 0) + { flags[0] = tvShow->pokemonName[arg1]; - } else if (arg2 == 1) { + } + else if (arg2 == 1) + { flags[0] = tvShow->pokemonName[nameLength - arg1]; - } else if (arg2 == 2) { + } + else if (arg2 == 2) + { flags[0] = tvShow->pokemonName[arg1]; flags[1] = tvShow->pokemonName[arg1 + 1]; - } else { + } + else + { flags[0] = tvShow->pokemonName[nameLength - (arg1 + 2)]; flags[1] = tvShow->pokemonName[nameLength - (arg1 + 1)]; } - } else { + } + else + { nameLength = StringLength(gSpeciesNames[arg4]); - if (arg2 == 0) { + if (arg2 == 0) + { flags[0] = gSpeciesNames[arg4][arg1]; - } else if (arg2 == 1) { + } + else if (arg2 == 1) + { flags[0] = gSpeciesNames[arg4][nameLength - arg1]; - } else if (arg2 == 2) { + } + else if (arg2 == 2) + { flags[0] = gSpeciesNames[arg4][arg1]; flags[1] = gSpeciesNames[arg4][arg1 + 1]; - } else { + } + else + { flags[0] = gSpeciesNames[arg4][nameLength - (arg1 + 2)]; flags[1] = gSpeciesNames[arg4][nameLength - (arg1 + 1)]; } @@ -1946,7 +1728,8 @@ void sub_80BF820(u8 arg0, u8 arg1, u8 arg2, u16 arg3, u16 arg4, struct TVShowNam bool8 sub_80BF974(void) { u8 i; - for (i=0; i<5; i++) + + for (i = 0; i < 5; i++) { if (gSaveBlock1.tvShows[i].common.var00 == gSpecialVar_0x8004) return TRUE; @@ -1970,6 +1753,7 @@ void sub_80BF9F8(void) u16 spec; u16 gender; u32 pval; + GetMonData(&(gPlayerParty[gSpecialVar_0x8004]), MON_DATA_NICKNAME, &gStringVar3); GetMonData(&(gPlayerParty[gSpecialVar_0x8004]), MON_DATA_NICKNAME, &gStringVar2); spec = GetMonData(&(gPlayerParty[gSpecialVar_0x8004]), MON_DATA_SPECIES, 0); @@ -2021,10 +1805,13 @@ u8 CheckForBigMovieOrEmergencyNewsOnTV(void) { if (gSaveBlock1.location.mapGroup != MAP_GROUP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F) return 0; - if (gSaveBlock2.playerGender == MALE) { + if (gSaveBlock2.playerGender == MALE) + { if (gSaveBlock1.location.mapNum != MAP_ID_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F) return 0; - } else { + } + else + { if (gSaveBlock1.location.mapNum != MAP_ID_LITTLEROOT_TOWN_MAYS_HOUSE_1F) return 0; } @@ -2035,165 +1822,56 @@ u8 CheckForBigMovieOrEmergencyNewsOnTV(void) return 1; } -#ifdef NONMATCHING void GetMomOrDadStringForTVMessage(void) { - if (gSaveBlock1.location.mapGroup == MAP_GROUP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F) { - if (gSaveBlock2.playerGender == MALE) { - if (gSaveBlock1.location.mapNum == MAP_ID_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F) { + if (gSaveBlock1.location.mapGroup == MAP_GROUP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F) + { + if (gSaveBlock2.playerGender == MALE) + { + if (gSaveBlock1.location.mapNum == MAP_ID_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F) + { StringCopy(gStringVar1, gOtherText_Mom); VarSet(VAR_0x4003, 1); } - } else { - if (gSaveBlock1.location.mapNum == MAP_ID_LITTLEROOT_TOWN_MAYS_HOUSE_1F) { + } + else + { + if (gSaveBlock1.location.mapNum == MAP_ID_LITTLEROOT_TOWN_MAYS_HOUSE_1F) + { StringCopy(gStringVar1, gOtherText_Mom); VarSet(VAR_0x4003, 1); } } } - if (VarGet(VAR_0x4003) == 1) { + if (VarGet(VAR_0x4003) == 1) + { StringCopy(gStringVar1, gOtherText_Mom); - } else if (VarGet(VAR_0x4003) == 2) { + } + else if (VarGet(VAR_0x4003) == 2) + { StringCopy(gStringVar1, gOtherText_Dad); - } else if (VarGet(VAR_0x4003) > 2) { - if ((u16)(VarGet(VAR_0x4003) & 1) == 0) { + } + else if (VarGet(VAR_0x4003) > 2) + { + if (VarGet(VAR_0x4003) % 2 == 0) StringCopy(gStringVar1, gOtherText_Mom); - } else { + else StringCopy(gStringVar1, gOtherText_Dad); - } - } else { - if ((u16)(Random() & 1) != 0) { + } + else + { + if (Random() % 2 != 0) + { StringCopy(gStringVar1, gOtherText_Mom); VarSet(VAR_0x4003, 1); - } else { + } + else + { StringCopy(gStringVar1, gOtherText_Dad); VarSet(VAR_0x4003, 2); } } } -#else -__attribute__((naked)) -void GetMomOrDadStringForTVMessage(void) -{ - asm(".syntax unified\n\ - push {r4,lr}\n\ - ldr r1, _080BFC40 @ =gSaveBlock1\n\ - movs r0, 0x4\n\ - ldrsb r0, [r1, r0]\n\ - cmp r0, 0x1\n\ - bne _080BFC6C\n\ - ldr r0, _080BFC44 @ =gSaveBlock2\n\ - ldrb r0, [r0, 0x8]\n\ - cmp r0, 0\n\ - bne _080BFC54\n\ - movs r0, 0x5\n\ - ldrsb r0, [r1, r0]\n\ - cmp r0, 0\n\ - bne _080BFC6C\n\ - ldr r0, _080BFC48 @ =gStringVar1\n\ - ldr r1, _080BFC4C @ =gOtherText_Mom\n\ - bl StringCopy\n\ - ldr r0, _080BFC50 @ =0x00004003\n\ - movs r1, 0x1\n\ - bl VarSet\n\ - b _080BFC6C\n\ - .align 2, 0\n\ -_080BFC40: .4byte gSaveBlock1\n\ -_080BFC44: .4byte gSaveBlock2\n\ -_080BFC48: .4byte gStringVar1\n\ -_080BFC4C: .4byte gOtherText_Mom\n\ -_080BFC50: .4byte 0x00004003\n\ -_080BFC54:\n\ - movs r0, 0x5\n\ - ldrsb r0, [r1, r0]\n\ - cmp r0, 0x2\n\ - bne _080BFC6C\n\ - ldr r0, _080BFCB4 @ =gStringVar1\n\ - ldr r1, _080BFCB8 @ =gOtherText_Mom\n\ - bl StringCopy\n\ - ldr r0, _080BFCBC @ =0x00004003\n\ - movs r1, 0x1\n\ - bl VarSet\n\ -_080BFC6C:\n\ - ldr r4, _080BFCBC @ =0x00004003\n\ - adds r0, r4, 0\n\ - bl VarGet\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - cmp r0, 0x1\n\ - beq _080BFCAA\n\ - adds r0, r4, 0\n\ - bl VarGet\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - cmp r0, 0x2\n\ - beq _080BFCC0\n\ - adds r0, r4, 0\n\ - bl VarGet\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - cmp r0, 0x2\n\ - bls _080BFCD4\n\ - adds r0, r4, 0\n\ - bl VarGet\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - movs r1, 0x1\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _080BFCC0\n\ -_080BFCAA:\n\ - ldr r0, _080BFCB4 @ =gStringVar1\n\ - ldr r1, _080BFCB8 @ =gOtherText_Mom\n\ - bl StringCopy\n\ - b _080BFD10\n\ - .align 2, 0\n\ -_080BFCB4: .4byte gStringVar1\n\ -_080BFCB8: .4byte gOtherText_Mom\n\ -_080BFCBC: .4byte 0x00004003\n\ -_080BFCC0:\n\ - ldr r0, _080BFCCC @ =gStringVar1\n\ - ldr r1, _080BFCD0 @ =gOtherText_Dad\n\ - bl StringCopy\n\ - b _080BFD10\n\ - .align 2, 0\n\ -_080BFCCC: .4byte gStringVar1\n\ -_080BFCD0: .4byte gOtherText_Dad\n\ -_080BFCD4:\n\ - bl Random\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - movs r1, 0x1\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _080BFD00\n\ - ldr r0, _080BFCF8 @ =gStringVar1\n\ - ldr r1, _080BFCFC @ =gOtherText_Mom\n\ - bl StringCopy\n\ - adds r0, r4, 0\n\ - movs r1, 0x1\n\ - bl VarSet\n\ - b _080BFD10\n\ - .align 2, 0\n\ -_080BFCF8: .4byte gStringVar1\n\ -_080BFCFC: .4byte gOtherText_Mom\n\ -_080BFD00:\n\ - ldr r0, _080BFD18 @ =gStringVar1\n\ - ldr r1, _080BFD1C @ =gOtherText_Dad\n\ - bl StringCopy\n\ - adds r0, r4, 0\n\ - movs r1, 0x2\n\ - bl VarSet\n\ -_080BFD10:\n\ - pop {r4}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ -_080BFD18: .4byte gStringVar1\n\ -_080BFD1C: .4byte gOtherText_Dad\n\ -.syntax divided\n"); -} -#endif void sub_80BFD20(void) { @@ -2201,7 +1879,8 @@ void sub_80BFD20(void) RemoveFieldObjectByLocalIdAndMap(5, gSaveBlock1.location.mapNum, gSaveBlock1.location.mapGroup); } -typedef union ewramStruct_02007000 { +typedef union ewramStruct_02007000 +{ TVShow tvshows[4][25]; struct UnknownSaveStruct2ABC unknown_2abc[4][16]; } ewramStruct_02007000; @@ -2216,11 +1895,12 @@ void sub_80BFD44(u8 *arg0, u32 arg1, u8 arg2) { u8 i; ewramStruct_02007000 *ewramTVShows; - for (i=0; i<4; i++) { + + for (i = 0; i < 4; i++) memcpy(&gUnknown_02007000.tvshows[i], &arg0[i * arg1], 25 * sizeof(TVShow)); - } ewramTVShows = &gUnknown_02007000; - switch (arg2) { + switch (arg2) + { case 0: sub_80BFE24(gSaveBlock1.tvShows, ewramTVShows->tvshows[1], ewramTVShows->tvshows[2], ewramTVShows->tvshows[3]); break; @@ -2253,47 +1933,55 @@ u8 sub_80C0134(TVShow *tv1, TVShow *tv2, u8 idx); void sub_80BFE24(TVShow arg0[25], TVShow arg1[25], TVShow arg2[25], TVShow arg3[25]) { u8 i, j; - TVShow ** argslist[4]; + TVShow **argslist[4]; + argslist[0] = &arg0; argslist[1] = &arg1; argslist[2] = &arg2; argslist[3] = &arg3; gUnknown_03000720 = GetLinkPlayerCount(); - while (1) { - for (i=0; i<gUnknown_03000720; i++) { + while (1) + { + for (i=0; i<gUnknown_03000720; i++) + { if (i == 0) gUnknown_020387E4 = i; gUnknown_03000722 = sub_80C019C(argslist[i][0]); - if (gUnknown_03000722 == -1) { + if (gUnknown_03000722 == -1) + { gUnknown_020387E4++; if (gUnknown_020387E4 == gUnknown_03000720) return; - } else { - for (j=0; j<gUnknown_03000720-1; j++) { + } + else + { + for (j=0; j<gUnknown_03000720-1; j++) + { gUnknown_03005D38.var0 = sub_80BF74C(argslist[(i + j + 1) % gUnknown_03000720][0]); - if (gUnknown_03005D38.var0 != -1 && sub_80BFF68(&argslist[(i + j + 1) % gUnknown_03000720][0], &argslist[i][0], (i + j + 1) % gUnknown_03000720) == 1) { + if (gUnknown_03005D38.var0 != -1 + && sub_80BFF68(&argslist[(i + j + 1) % gUnknown_03000720][0], &argslist[i][0], (i + j + 1) % gUnknown_03000720) == 1) break; - } } - if (j == gUnknown_03000720 - 1) { + if (j == gUnknown_03000720 - 1) sub_80BF55C(argslist[i][0], gUnknown_03000722); - } } } } } -#ifdef NONMATCHING -bool8 sub_80BFF68(TVShow * arg1[25], TVShow * arg2[25], u8 idx) { +bool8 sub_80BFF68(TVShow * arg1[25], TVShow * arg2[25], u8 idx) +{ u8 value; u8 switchval; - TVShow tv1[25]; - TVShow tv2[25]; + TVShow *tv1; + TVShow *tv2; + tv1 = *arg1; tv2 = *arg2; value = FALSE; switchval = sub_80BFB54(tv2[gUnknown_03000722].common.var00); - switch (switchval) { + switch (switchval) + { case 2: value = sub_80C004C(&tv1[gUnknown_03005D38.var0], &tv2[gUnknown_03000722], idx); break; @@ -2304,140 +1992,23 @@ bool8 sub_80BFF68(TVShow * arg1[25], TVShow * arg2[25], u8 idx) { value = sub_80C0134(&tv1[gUnknown_03005D38.var0], &tv2[gUnknown_03000722], idx); break; } - if (value == TRUE) { + if (value == TRUE) + { sub_80BF55C(tv2, gUnknown_03000722); return TRUE; - } else { + } + else + { return FALSE; } } -#else -__attribute__((naked)) -bool8 sub_80BFF68(TVShow * arg1[25], TVShow * arg2[25], u8 idx) { - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - sub sp, 0x4\n\ - lsls r2, 24\n\ - lsrs r7, r2, 24\n\ - ldr r4, [r0]\n\ - ldr r6, [r1]\n\ - movs r5, 0\n\ - ldr r2, _080BFFA4 @ =gUnknown_03000722\n\ - movs r1, 0\n\ - ldrsb r1, [r2, r1]\n\ - lsls r0, r1, 3\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - adds r0, r6 @ this is the only mimsmatch\n\ - ldrb r0, [r0]\n\ - str r2, [sp]\n\ - bl sub_80BFB54\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - adds r1, r0, 0\n\ - ldr r2, [sp]\n\ - cmp r0, 0x3\n\ - beq _080BFFD8\n\ - cmp r0, 0x3\n\ - bgt _080BFFA8\n\ - cmp r0, 0x2\n\ - beq _080BFFAE\n\ - b _080C0026\n\ - .align 2, 0\n\ -_080BFFA4: .4byte gUnknown_03000722\n\ -_080BFFA8:\n\ - cmp r1, 0x4\n\ - beq _080C0000\n\ - b _080C0026\n\ -_080BFFAE:\n\ - ldr r0, _080BFFD4 @ =gUnknown_03005D38\n\ - movs r1, 0\n\ - ldrsb r1, [r0, r1]\n\ - lsls r0, r1, 3\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - adds r0, r4, r0\n\ - ldrb r2, [r2]\n\ - lsls r2, 24\n\ - asrs r2, 24\n\ - lsls r1, r2, 3\n\ - adds r1, r2\n\ - lsls r1, 2\n\ - adds r1, r6, r1\n\ - adds r2, r7, 0\n\ - bl sub_80C004C\n\ - b _080C0022\n\ - .align 2, 0\n\ -_080BFFD4: .4byte gUnknown_03005D38\n\ -_080BFFD8:\n\ - ldr r0, _080BFFFC @ =gUnknown_03005D38\n\ - movs r1, 0\n\ - ldrsb r1, [r0, r1]\n\ - lsls r0, r1, 3\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - adds r0, r4, r0\n\ - ldrb r2, [r2]\n\ - lsls r2, 24\n\ - asrs r2, 24\n\ - lsls r1, r2, 3\n\ - adds r1, r2\n\ - lsls r1, 2\n\ - adds r1, r6, r1\n\ - adds r2, r7, 0\n\ - bl sub_80C00B4\n\ - b _080C0022\n\ - .align 2, 0\n\ -_080BFFFC: .4byte gUnknown_03005D38\n\ -_080C0000:\n\ - ldr r0, _080C0030 @ =gUnknown_03005D38\n\ - movs r1, 0\n\ - ldrsb r1, [r0, r1]\n\ - lsls r0, r1, 3\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - adds r0, r4, r0\n\ - ldrb r2, [r2]\n\ - lsls r2, 24\n\ - asrs r2, 24\n\ - lsls r1, r2, 3\n\ - adds r1, r2\n\ - lsls r1, 2\n\ - adds r1, r6, r1\n\ - adds r2, r7, 0\n\ - bl sub_80C0134\n\ -_080C0022:\n\ - lsls r0, 24\n\ - lsrs r5, r0, 24\n\ -_080C0026:\n\ - cmp r5, 0x1\n\ - beq _080C0034\n\ - movs r0, 0\n\ - b _080C0040\n\ - .align 2, 0\n\ -_080C0030: .4byte gUnknown_03005D38\n\ -_080C0034:\n\ - ldr r0, _080C0048 @ =gUnknown_03000722\n\ - ldrb r1, [r0]\n\ - adds r0, r6, 0\n\ - bl sub_80BF55C\n\ - movs r0, 0x1\n\ -_080C0040:\n\ - add sp, 0x4\n\ - pop {r4-r7}\n\ - pop {r1}\n\ - bx r1\n\ - .align 2, 0\n\ -_080C0048: .4byte gUnknown_03000722\n\ -.syntax divided\n"); -} -#endif -u8 sub_80C004C(TVShow *tv1, TVShow *tv2, u8 idx) { +u8 sub_80C004C(TVShow *tv1, TVShow *tv2, u8 idx) +{ u32 linkTrainerId = GetLinkPlayerTrainerId(idx); - if ((linkTrainerId & 0xFF) == tv2->common.trainerIdLo && ((linkTrainerId >> 8) & 0xFF) == tv2->common.trainerIdHi) { + + if ((linkTrainerId & 0xFF) == tv2->common.trainerIdLo && ((linkTrainerId >> 8) & 0xFF) == tv2->common.trainerIdHi) return FALSE; - } tv2->common.trainerIdLo = tv2->common.srcTrainerIdLo; tv2->common.trainerIdHi = tv2->common.srcTrainerIdHi; tv2->common.srcTrainerIdLo = linkTrainerId & 0xFF; @@ -2447,14 +2018,13 @@ u8 sub_80C004C(TVShow *tv1, TVShow *tv2, u8 idx) { return TRUE; } -u8 sub_80C00B4(TVShow *tv1, TVShow *tv2, u8 idx) { +u8 sub_80C00B4(TVShow *tv1, TVShow *tv2, u8 idx) +{ u32 linkTrainerId = GetLinkPlayerTrainerId(idx); - if ((linkTrainerId & 0xFF) == tv2->common.srcTrainerIdLo && ((linkTrainerId >> 8) & 0xFF) == tv2->common.srcTrainerIdHi) { + if ((linkTrainerId & 0xFF) == tv2->common.srcTrainerIdLo && ((linkTrainerId >> 8) & 0xFF) == tv2->common.srcTrainerIdHi) return FALSE; - } - if ((linkTrainerId & 0xFF) == tv2->common.trainerIdLo && ((linkTrainerId >> 8) & 0xFF) == tv2->common.trainerIdHi) { + if ((linkTrainerId & 0xFF) == tv2->common.trainerIdLo && ((linkTrainerId >> 8) & 0xFF) == tv2->common.trainerIdHi) return FALSE; - } tv2->common.srcTrainerIdLo = tv2->common.srcTrainerId2Lo; tv2->common.srcTrainerIdHi = tv2->common.srcTrainerId2Hi; tv2->common.srcTrainerId2Lo = linkTrainerId & 0xFF; @@ -2464,11 +2034,11 @@ u8 sub_80C00B4(TVShow *tv1, TVShow *tv2, u8 idx) { return TRUE; } -u8 sub_80C0134(TVShow *tv1, TVShow *tv2, u8 idx) { +u8 sub_80C0134(TVShow *tv1, TVShow *tv2, u8 idx) +{ u32 linkTrainerId = GetLinkPlayerTrainerId(idx); - if ((linkTrainerId & 0xFF) == tv2->common.trainerIdLo && ((linkTrainerId >> 8) & 0xFF) == tv2->common.trainerIdHi) { + if ((linkTrainerId & 0xFF) == tv2->common.trainerIdLo && ((linkTrainerId >> 8) & 0xFF) == tv2->common.trainerIdHi) return FALSE; - } tv2->common.trainerIdLo = tv2->common.srcTrainerIdLo; tv2->common.trainerIdHi = tv2->common.srcTrainerIdHi; tv2->common.srcTrainerIdLo = linkTrainerId & 0xFF; @@ -2479,12 +2049,13 @@ u8 sub_80C0134(TVShow *tv1, TVShow *tv2, u8 idx) { return TRUE; } -s8 sub_80C019C(TVShow tvShows[]) { +s8 sub_80C019C(TVShow tvShows[]) +{ u8 i; - for (i=0; i<24; i++) { - if (tvShows[i].common.var01 == 0 && (u8)(tvShows[i].common.var00 - 1) < 60) { + for (i = 0; i < 24; i++) + { + if (tvShows[i].common.var01 == 0 && (u8)(tvShows[i].common.var00 - 1) < 60) return i; - } } return -1; } @@ -2749,82 +2320,40 @@ _080C03A0:\n\ } #endif -void sub_80C03A8(u8 showidx) { +void sub_80C03A8(u8 showidx) +{ gSaveBlock1.tvShows[showidx].common.var01 = 0; } -void sub_80C03C8(u16 species, u8 showidx) { - if (GetNationalPokedexFlag(SpeciesToNationalPokedexNum(species), 0) == 0) { +void sub_80C03C8(u16 species, u8 showidx) +{ + if (GetNationalPokedexFlag(SpeciesToNationalPokedexNum(species), 0) == 0) gSaveBlock1.tvShows[showidx].common.var01 = 0; - } } -#ifdef NONMATCHING -void sub_80C0408(void) { +void sub_80C0408(void) +{ u16 i; - if (FlagGet(SYS_GAME_CLEAR) != 1) { - for (i=0; i<24; i++) { - if (gSaveBlock1.tvShows[i].common.var00 == TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE || gSaveBlock1.tvShows[i].common.var00 == TVSHOW_MASS_OUTBREAK) { - gSaveBlock1.tvShows[i].common.var01 = 0; - } - } + + if (FlagGet(SYS_GAME_CLEAR) == TRUE) + return; + for (i = 0; i < 24; i++) + { + if (gSaveBlock1.tvShows[i].common.var00 == TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE) + gSaveBlock1.tvShows[i].common.var01 = 0; + else if (gSaveBlock1.tvShows[i].common.var00 == TVSHOW_MASS_OUTBREAK) + gSaveBlock1.tvShows[i].common.var01 = 0; } } -#else -__attribute__((naked)) -void sub_80C0408(void) { - asm(".syntax unified\n\ - push {r4-r6,lr}\n\ - ldr r0, _080C044C @ =0x00000804\n\ - bl FlagGet\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r0, 0x1\n\ - beq _080C0444\n\ - movs r2, 0\n\ - ldr r6, _080C0450 @ =gSaveBlock1\n\ - ldr r4, _080C0454 @ =0x00002739\n\ - movs r3, 0\n\ - ldr r5, _080C0458 @ =0x00002738\n\ -_080C0422:\n\ - lsls r0, r2, 3\n\ - adds r0, r2\n\ - lsls r0, 2\n\ - adds r1, r0, r6\n\ - adds r0, r1, r5\n\ - ldrb r0, [r0]\n\ - cmp r0, 0x7\n\ - beq _080C0436\n\ - cmp r0, 0x29\n\ - bne _080C043A\n\ -_080C0436:\n\ - adds r0, r1, r4\n\ - strb r3, [r0]\n\ -_080C043A:\n\ - adds r0, r2, 0x1\n\ - lsls r0, 16\n\ - lsrs r2, r0, 16\n\ - cmp r2, 0x17\n\ - bls _080C0422\n\ -_080C0444:\n\ - pop {r4-r6}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ -_080C044C: .4byte 0x00000804\n\ -_080C0450: .4byte gSaveBlock1\n\ -_080C0454: .4byte 0x00002739\n\ -_080C0458: .4byte 0x00002738\n\ -.syntax divided\n"); -} -#endif -void sub_80C045C(void) { +void sub_80C045C(void) +{ u8 i; - for (i=0; i<5; i++) { - if (sub_80BFB54(gSaveBlock1.tvShows[i].common.var00) == 2) { + + for (i = 0; i < 5; i++) + { + if (sub_80BFB54(gSaveBlock1.tvShows[i].common.var00) == 2) gSaveBlock1.tvShows[i].common.var01 = 0; - } } } @@ -2833,17 +2362,14 @@ void sub_80C04A0(void) s8 showIdx; s8 count; count = 0; - for (showIdx=5; showIdx<24; showIdx++) + + for (showIdx = 5; showIdx < 24; showIdx++) { if (gSaveBlock1.tvShows[showIdx].common.var00 == 0) - { - count ++; - } + count++; } - for (showIdx=0; showIdx<5-count; showIdx++) - { + for (showIdx = 0; showIdx < 5 - count; showIdx++) sub_80BF55C(gSaveBlock1.tvShows, showIdx+5); - } } void sub_80C05C4(struct UnknownSaveStruct2ABC[16], struct UnknownSaveStruct2ABC[16], struct UnknownSaveStruct2ABC[16], struct UnknownSaveStruct2ABC[16]); @@ -2856,25 +2382,24 @@ void sub_80C0514(void *a0, u32 a1, u8 a2) { ewramStruct_02007000 *struct02007000; u8 i; - for (i=0; i<4; i++) - { + + for (i = 0; i < 4; i++) memcpy(gUnknown_02007000.unknown_2abc[i], a0 + i * a1, 64); - } struct02007000 = &gUnknown_02007000; switch (a2) { - case 0: - sub_80C05C4(gSaveBlock1.unknown_2ABC, struct02007000->unknown_2abc[1], struct02007000->unknown_2abc[2], struct02007000->unknown_2abc[3]); - break; - case 1: - sub_80C05C4(struct02007000->unknown_2abc[0], gSaveBlock1.unknown_2ABC, struct02007000->unknown_2abc[2], struct02007000->unknown_2abc[3]); - break; - case 2: - sub_80C05C4(struct02007000->unknown_2abc[0], struct02007000->unknown_2abc[1], gSaveBlock1.unknown_2ABC, struct02007000->unknown_2abc[3]); - break; - case 3: - sub_80C05C4(struct02007000->unknown_2abc[0], struct02007000->unknown_2abc[1], struct02007000->unknown_2abc[2], gSaveBlock1.unknown_2ABC); - break; + case 0: + sub_80C05C4(gSaveBlock1.unknown_2ABC, struct02007000->unknown_2abc[1], struct02007000->unknown_2abc[2], struct02007000->unknown_2abc[3]); + break; + case 1: + sub_80C05C4(struct02007000->unknown_2abc[0], gSaveBlock1.unknown_2ABC, struct02007000->unknown_2abc[2], struct02007000->unknown_2abc[3]); + break; + case 2: + sub_80C05C4(struct02007000->unknown_2abc[0], struct02007000->unknown_2abc[1], gSaveBlock1.unknown_2ABC, struct02007000->unknown_2abc[3]); + break; + case 3: + sub_80C05C4(struct02007000->unknown_2abc[0], struct02007000->unknown_2abc[1], struct02007000->unknown_2abc[2], gSaveBlock1.unknown_2ABC); + break; } sub_80C0750(); sub_80C0788(); @@ -2886,49 +2411,51 @@ void sub_80C05C4(struct UnknownSaveStruct2ABC a0[16], struct UnknownSaveStruct2A u8 j; u8 k; struct UnknownSaveStruct2ABC ** arglist[4]; + arglist[0] = &a0; arglist[1] = &a1; arglist[2] = &a2; arglist[3] = &a3; gUnknown_03000721 = GetLinkPlayerCount(); - for (i=0; i<16; i++) + for (i = 0; i < 16; i++) { - for (j=0; j<gUnknown_03000721; j++) + for (j = 0; j < gUnknown_03000721; j++) { gUnknown_03000722 = sub_80C0730(*arglist[j], i); if (gUnknown_03000722 != -1) { - for (k=0; k<gUnknown_03000721-1; k++) + for (k = 0; k < gUnknown_03000721-1; k++) { gUnknown_03005D38.var0 = sub_80BEBC8(*arglist[(j + k + 1) % gUnknown_03000721]); if (gUnknown_03005D38.var0 != -1) - { sub_80C06BC(arglist[(j + k + 1) % gUnknown_03000721], arglist[j]); - } } } } } } -void sub_80C06BC(struct UnknownSaveStruct2ABC *arg0[16], struct UnknownSaveStruct2ABC *arg1[16]) { +void sub_80C06BC(struct UnknownSaveStruct2ABC *arg0[16], struct UnknownSaveStruct2ABC *arg1[16]) +{ struct UnknownSaveStruct2ABC *str0; struct UnknownSaveStruct2ABC *str1; + str0 = arg0[0]; str1 = arg1[0]; str1 += gUnknown_03000722; sub_80C06E8(str0, str1, gUnknown_03005D38.var0); } -bool8 sub_80C06E8(struct UnknownSaveStruct2ABC *arg0, struct UnknownSaveStruct2ABC *arg1, s8 arg2) { +bool8 sub_80C06E8(struct UnknownSaveStruct2ABC *arg0, struct UnknownSaveStruct2ABC *arg1, s8 arg2) +{ u8 i; - if (arg1->val0 == 0) { + + if (arg1->val0 == 0) return FALSE; - } - for (i=0; i<16; i++) { - if (arg0[i].val0 == arg1->val0) { + for (i = 0; i < 16; i++) + { + if (arg0[i].val0 == arg1->val0) return FALSE; - } } arg0[arg2].val0 = arg1->val0; arg0[arg2].val1 = 1; @@ -2936,35 +2463,42 @@ bool8 sub_80C06E8(struct UnknownSaveStruct2ABC *arg0, struct UnknownSaveStruct2A return TRUE; } -s8 sub_80C0730(struct UnknownSaveStruct2ABC *arg0, u8 arg1) { - if (arg0[arg1].val0 == 0) { +s8 sub_80C0730(struct UnknownSaveStruct2ABC *arg0, u8 arg1) +{ + if (arg0[arg1].val0 == 0) return -1; - } return arg1; } -void sub_80C0750(void) { +void sub_80C0750(void) +{ u8 i; - for (i=0; i<16; i++) { - if (gSaveBlock1.unknown_2ABC[i].val0 > 3) { + + for (i = 0; i < 16; i++) + { + if (gSaveBlock1.unknown_2ABC[i].val0 > 3) sub_80BEC10(i); - } } sub_80BEC40(); } -void sub_80C0788(void) { +void sub_80C0788(void) +{ u8 i; - if (FlagGet(SYS_GAME_CLEAR) != 1) { - for (i=0; i<16; i++) { + + if (FlagGet(SYS_GAME_CLEAR) != 1) + { + for (i = 0; i < 16; i++) gSaveBlock1.unknown_2ABC[i].val1 = 0; - } } } -void DoTVShow(void) { - if (gSaveBlock1.tvShows[gSpecialVar_0x8004].common.var01 != 0) { - switch (gSaveBlock1.tvShows[gSpecialVar_0x8004].common.var00) { +void DoTVShow(void) +{ + if (gSaveBlock1.tvShows[gSpecialVar_0x8004].common.var01 != 0) + { + switch (gSaveBlock1.tvShows[gSpecialVar_0x8004].common.var00) + { case TVSHOW_FAN_CLUB_LETTER: DoTVShowPokemonFanClubLetter(); break; @@ -3008,328 +2542,275 @@ void DoTVShow(void) { } } -void TVShowConvertInternationalString(u8 *dest, u8 *src, u8 language) { +void TVShowConvertInternationalString(u8 *dest, u8 *src, u8 language) +{ StringCopy(dest, src); - if (language < LANGUAGE_ENGLISH) { + if (language < LANGUAGE_ENGLISH) ConvertInternationalString(dest, LANGUAGE_JAPANESE); - } } void DoTVShowBravoTrainerPokemonProfile(void) { - TVShow *tvShow; - u8 switchval; + struct TVShowBravoTrainerPokemonProfiles *bravoTrainer = &gSaveBlock1.tvShows[gSpecialVar_0x8004].bravoTrainer; + u8 state; - tvShow = &gSaveBlock1.tvShows[gSpecialVar_0x8004]; gScriptResult = 0; - switchval = gUnknown_020387E8; - switch(switchval) - { - case 0: - TVShowConvertInternationalString(gStringVar1, tvShow->bravoTrainer.playerName, tvShow->bravoTrainer.language); - CopyContestCategoryToStringVar(1, tvShow->bravoTrainer.contestCategory); - sub_80BEF10(2, tvShow->bravoTrainer.contestRank); - if (!StringCompareWithoutExtCtrlCodes(gSpeciesNames[tvShow->bravoTrainer.species], tvShow->bravoTrainer.pokemonNickname)) - { - gUnknown_020387E8 = 8; - } else - { - gUnknown_020387E8 = 1; - } - break; - case 1: - StringCopy(gStringVar1, gSpeciesNames[tvShow->bravoTrainer.species]); - TVShowConvertInternationalString(gStringVar2, tvShow->bravoTrainer.pokemonNickname, tvShow->bravoTrainer.var1f); - CopyContestCategoryToStringVar(2, tvShow->bravoTrainer.contestCategory); - gUnknown_020387E8 = 2; - break; - case 2: - TVShowConvertInternationalString(gStringVar1, tvShow->bravoTrainer.playerName, tvShow->bravoTrainer.language); - if (tvShow->bravoTrainer.contestResult == 0) // placed first - { - gUnknown_020387E8 = 3; - } else - { - gUnknown_020387E8 = 4; - } - break; - case 3: - TVShowConvertInternationalString(gStringVar1, tvShow->bravoTrainer.playerName, tvShow->bravoTrainer.language); - sub_80EB3FC(gStringVar2, tvShow->bravoTrainer.var04[0]); - sub_80BF088(2, tvShow->bravoTrainer.contestResult + 1); - gUnknown_020387E8 = 5; - break; - case 4: - TVShowConvertInternationalString(gStringVar1, tvShow->bravoTrainer.playerName, tvShow->bravoTrainer.language); - sub_80EB3FC(gStringVar2, tvShow->bravoTrainer.var04[0]); - sub_80BF088(2, tvShow->bravoTrainer.contestResult + 1); - gUnknown_020387E8 = 5; - break; - case 5: - TVShowConvertInternationalString(gStringVar1, tvShow->bravoTrainer.playerName, tvShow->bravoTrainer.language); - CopyContestCategoryToStringVar(1, tvShow->bravoTrainer.contestCategory); - sub_80EB3FC(gStringVar3, tvShow->bravoTrainer.var04[1]); - if (tvShow->bravoTrainer.var14) - { - gUnknown_020387E8 = 6; - } else - { - gUnknown_020387E8 = 7; - } - break; - case 6: - StringCopy(gStringVar1, gSpeciesNames[tvShow->bravoTrainer.species]); - StringCopy(gStringVar2, gMoveNames[tvShow->bravoTrainer.var14]); - sub_80EB3FC(gStringVar3, tvShow->bravoTrainer.var04[1]); + state = gUnknown_020387E8; + switch(state) + { + case 0: + TVShowConvertInternationalString(gStringVar1, bravoTrainer->playerName, bravoTrainer->language); + CopyContestCategoryToStringVar(1, bravoTrainer->contestCategory); + sub_80BEF10(2, bravoTrainer->contestRank); + if (!StringCompareWithoutExtCtrlCodes(gSpeciesNames[bravoTrainer->species], bravoTrainer->pokemonNickname)) + gUnknown_020387E8 = 8; + else + gUnknown_020387E8 = 1; + break; + case 1: + StringCopy(gStringVar1, gSpeciesNames[bravoTrainer->species]); + TVShowConvertInternationalString(gStringVar2, bravoTrainer->pokemonNickname, bravoTrainer->var1f); + CopyContestCategoryToStringVar(2, bravoTrainer->contestCategory); + gUnknown_020387E8 = 2; + break; + case 2: + TVShowConvertInternationalString(gStringVar1, bravoTrainer->playerName, bravoTrainer->language); + if (bravoTrainer->contestResult == 0) // placed first + gUnknown_020387E8 = 3; + else + gUnknown_020387E8 = 4; + break; + case 3: + TVShowConvertInternationalString(gStringVar1, bravoTrainer->playerName, bravoTrainer->language); + sub_80EB3FC(gStringVar2, bravoTrainer->var04[0]); + sub_80BF088(2, bravoTrainer->contestResult + 1); + gUnknown_020387E8 = 5; + break; + case 4: + TVShowConvertInternationalString(gStringVar1, bravoTrainer->playerName, bravoTrainer->language); + sub_80EB3FC(gStringVar2, bravoTrainer->var04[0]); + sub_80BF088(2, bravoTrainer->contestResult + 1); + gUnknown_020387E8 = 5; + break; + case 5: + TVShowConvertInternationalString(gStringVar1, bravoTrainer->playerName, bravoTrainer->language); + CopyContestCategoryToStringVar(1, bravoTrainer->contestCategory); + sub_80EB3FC(gStringVar3, bravoTrainer->var04[1]); + if (bravoTrainer->var14) + gUnknown_020387E8 = 6; + else gUnknown_020387E8 = 7; - break; - case 7: - TVShowConvertInternationalString(gStringVar1, tvShow->bravoTrainer.playerName, tvShow->bravoTrainer.language); - StringCopy(gStringVar2, gSpeciesNames[tvShow->bravoTrainer.species]); - TVShowDone(); - break; - case 8: - StringCopy(gStringVar1, gSpeciesNames[tvShow->bravoTrainer.species]); - gUnknown_020387E8 = 2; - break; + break; + case 6: + StringCopy(gStringVar1, gSpeciesNames[bravoTrainer->species]); + StringCopy(gStringVar2, gMoveNames[bravoTrainer->var14]); + sub_80EB3FC(gStringVar3, bravoTrainer->var04[1]); + gUnknown_020387E8 = 7; + break; + case 7: + TVShowConvertInternationalString(gStringVar1, bravoTrainer->playerName, bravoTrainer->language); + StringCopy(gStringVar2, gSpeciesNames[bravoTrainer->species]); + TVShowDone(); + break; + case 8: + StringCopy(gStringVar1, gSpeciesNames[bravoTrainer->species]); + gUnknown_020387E8 = 2; + break; } - ShowFieldMessage(gTVBravoTrainerTextGroup[switchval]); + ShowFieldMessage(gTVBravoTrainerTextGroup[state]); } void DoTVShowBravoTrainerBattleTowerProfile(void) { - TVShow *tvShow; - u8 switchval; + struct TVShowBravoTrainerBattleTowerSpotlight *bravoTrainerTower = &gSaveBlock1.tvShows[gSpecialVar_0x8004].bravoTrainerTower; + u8 state; - tvShow = &gSaveBlock1.tvShows[gSpecialVar_0x8004]; gScriptResult = 0; - switchval = gUnknown_020387E8; - switch(switchval) + state = gUnknown_020387E8; + switch(state) { - case 0: - TVShowConvertInternationalString(gStringVar1, tvShow->bravoTrainerTower.trainerName, tvShow->bravoTrainerTower.language); - StringCopy(gStringVar2, gSpeciesNames[tvShow->bravoTrainerTower.species]); - if (tvShow->bravoTrainerTower.var16 >= 7) - { - gUnknown_020387E8 = 1; - } else - { - gUnknown_020387E8 = 2; - } - break; - case 1: - sub_80BF088(0, tvShow->bravoTrainerTower.btLevel); - sub_80BF088(1, tvShow->bravoTrainerTower.var16); - if (tvShow->bravoTrainerTower.var1c == 1) - { - gUnknown_020387E8 = 3; - } else - { - gUnknown_020387E8 = 4; - } - break; - case 2: - TVShowConvertInternationalString(gStringVar1, tvShow->bravoTrainerTower.pokemonName, tvShow->bravoTrainerTower.language); - sub_80BF088(1, tvShow->bravoTrainerTower.var16 + 1); - if (tvShow->bravoTrainerTower.var1b == 0) - { - gUnknown_020387E8 = 5; - } else - { - gUnknown_020387E8 = 6; - } - break; - case 3: - TVShowConvertInternationalString(gStringVar1, tvShow->bravoTrainerTower.pokemonName, tvShow->bravoTrainerTower.language); - StringCopy(gStringVar2, gSpeciesNames[tvShow->bravoTrainerTower.defeatedSpecies]); - if (tvShow->bravoTrainerTower.var1b == 0) - { - gUnknown_020387E8 = 5; - } else - { - gUnknown_020387E8 = 6; - } - break; - case 4: - TVShowConvertInternationalString(gStringVar1, tvShow->bravoTrainerTower.pokemonName, tvShow->bravoTrainerTower.language); - StringCopy(gStringVar2, gSpeciesNames[tvShow->bravoTrainerTower.defeatedSpecies]); - if (tvShow->bravoTrainerTower.var1b == 0) - { - gUnknown_020387E8 = 5; - } else - { - gUnknown_020387E8 = 6; - } - break; - case 5: - TVShowConvertInternationalString(gStringVar1, tvShow->bravoTrainerTower.pokemonName, tvShow->bravoTrainerTower.language); - gUnknown_020387E8 = 11; - break; - case 6: - TVShowConvertInternationalString(gStringVar1, tvShow->bravoTrainerTower.pokemonName, tvShow->bravoTrainerTower.language); - gUnknown_020387E8 = 11; - break; - case 7: - gUnknown_020387E8 = 11; - break; - case 8: - case 9: - case 10: - TVShowConvertInternationalString(gStringVar1, tvShow->bravoTrainerTower.trainerName, tvShow->bravoTrainerTower.language); - gUnknown_020387E8 = 11; - break; - case 11: - sub_80EB3FC(gStringVar1, tvShow->bravoTrainerTower.var18[0]); - if (tvShow->bravoTrainerTower.var1b == 0) - { - gUnknown_020387E8 = 12; - } else - { - gUnknown_020387E8 = 13; - } - break; - case 12: - case 13: - sub_80EB3FC(gStringVar1, tvShow->bravoTrainerTower.var18[0]); - TVShowConvertInternationalString(gStringVar2, tvShow->bravoTrainerTower.trainerName, tvShow->bravoTrainerTower.language); - TVShowConvertInternationalString(gStringVar3, tvShow->bravoTrainerTower.pokemonName, tvShow->bravoTrainerTower.language); - gUnknown_020387E8 = 14; - break; - case 14: - TVShowConvertInternationalString(gStringVar1, tvShow->bravoTrainerTower.trainerName, tvShow->bravoTrainerTower.language); - StringCopy(gStringVar2, gSpeciesNames[tvShow->bravoTrainerTower.species]); - TVShowDone(); - break; + case 0: + TVShowConvertInternationalString(gStringVar1, bravoTrainerTower->trainerName, bravoTrainerTower->language); + StringCopy(gStringVar2, gSpeciesNames[bravoTrainerTower->species]); + if (bravoTrainerTower->var16 >= 7) + gUnknown_020387E8 = 1; + else + gUnknown_020387E8 = 2; + break; + case 1: + sub_80BF088(0, bravoTrainerTower->btLevel); + sub_80BF088(1, bravoTrainerTower->var16); + if (bravoTrainerTower->var1c == 1) + gUnknown_020387E8 = 3; + else + gUnknown_020387E8 = 4; + break; + case 2: + TVShowConvertInternationalString(gStringVar1, bravoTrainerTower->pokemonName, bravoTrainerTower->language); + sub_80BF088(1, bravoTrainerTower->var16 + 1); + if (bravoTrainerTower->var1b == 0) + gUnknown_020387E8 = 5; + else + gUnknown_020387E8 = 6; + break; + case 3: + TVShowConvertInternationalString(gStringVar1, bravoTrainerTower->pokemonName, bravoTrainerTower->language); + StringCopy(gStringVar2, gSpeciesNames[bravoTrainerTower->defeatedSpecies]); + if (bravoTrainerTower->var1b == 0) + gUnknown_020387E8 = 5; + else + gUnknown_020387E8 = 6; + break; + case 4: + TVShowConvertInternationalString(gStringVar1, bravoTrainerTower->pokemonName, bravoTrainerTower->language); + StringCopy(gStringVar2, gSpeciesNames[bravoTrainerTower->defeatedSpecies]); + if (bravoTrainerTower->var1b == 0) + gUnknown_020387E8 = 5; + else + gUnknown_020387E8 = 6; + break; + case 5: + TVShowConvertInternationalString(gStringVar1, bravoTrainerTower->pokemonName, bravoTrainerTower->language); + gUnknown_020387E8 = 11; + break; + case 6: + TVShowConvertInternationalString(gStringVar1, bravoTrainerTower->pokemonName, bravoTrainerTower->language); + gUnknown_020387E8 = 11; + break; + case 7: + gUnknown_020387E8 = 11; + break; + case 8: + case 9: + case 10: + TVShowConvertInternationalString(gStringVar1, bravoTrainerTower->trainerName, bravoTrainerTower->language); + gUnknown_020387E8 = 11; + break; + case 11: + sub_80EB3FC(gStringVar1, bravoTrainerTower->var18[0]); + if (bravoTrainerTower->var1b == 0) + gUnknown_020387E8 = 12; + else + gUnknown_020387E8 = 13; + break; + case 12: + case 13: + sub_80EB3FC(gStringVar1, bravoTrainerTower->var18[0]); + TVShowConvertInternationalString(gStringVar2, bravoTrainerTower->trainerName, bravoTrainerTower->language); + TVShowConvertInternationalString(gStringVar3, bravoTrainerTower->pokemonName, bravoTrainerTower->language); + gUnknown_020387E8 = 14; + break; + case 14: + TVShowConvertInternationalString(gStringVar1, bravoTrainerTower->trainerName, bravoTrainerTower->language); + StringCopy(gStringVar2, gSpeciesNames[bravoTrainerTower->species]); + TVShowDone(); + break; } - ShowFieldMessage(gTVBravoTrainerBattleTowerTextGroup[switchval]); + ShowFieldMessage(gTVBravoTrainerBattleTowerTextGroup[state]); } void DoTVShowTodaysSmartShopper(void) { - TVShow *tvShow; - u8 switchval; + struct TVShowSmartShopper *smartShopper = &gSaveBlock1.tvShows[gSpecialVar_0x8004].smartshopperShow; + u8 state; - tvShow = &gSaveBlock1.tvShows[gSpecialVar_0x8004]; gScriptResult = 0; - switchval = gUnknown_020387E8; - switch(switchval) + state = gUnknown_020387E8; + switch(state) { - case 0: - TVShowConvertInternationalString(gStringVar1, tvShow->smartshopperShow.playerName, tvShow->smartshopperShow.language); - sub_80FBFB4(gStringVar2, tvShow->smartshopperShow.shopLocation, 0); - if (tvShow->smartshopperShow.itemAmounts[0] >= 0xff) - { - gUnknown_020387E8 = 11; - } else - { - gUnknown_020387E8 = 1; - } - break; - case 1: - TVShowConvertInternationalString(gStringVar1, tvShow->smartshopperShow.playerName, tvShow->smartshopperShow.language); - StringCopy(gStringVar2, ItemId_GetItem(tvShow->smartshopperShow.itemIds[0])->name); - sub_80BF088(2, tvShow->smartshopperShow.itemAmounts[0]); - gUnknown_020387E8 += (Random() % 4) + 1; - break; - case 2: - case 4: - case 5: - if (tvShow->smartshopperShow.itemIds[1] != 0) - { - gUnknown_020387E8 = 6; - } else - { - gUnknown_020387E8 = 10; - } - break; - case 3: - sub_80BF088(2, tvShow->smartshopperShow.itemAmounts[0] + 1); - if (tvShow->smartshopperShow.itemIds[1] != 0) - { - gUnknown_020387E8 = 6; - } else - { - gUnknown_020387E8 = 10; - } - break; - case 6: - StringCopy(gStringVar2, ItemId_GetItem(tvShow->smartshopperShow.itemIds[1])->name); - sub_80BF088(2, tvShow->smartshopperShow.itemAmounts[1]); - if (tvShow->smartshopperShow.itemIds[2] != 0) - { - gUnknown_020387E8 = 7; - } else if (tvShow->smartshopperShow.priceReduced == 1) - { - gUnknown_020387E8 = 8; - } else - { - gUnknown_020387E8 = 9; - } - break; - case 7: - StringCopy(gStringVar2, ItemId_GetItem(tvShow->smartshopperShow.itemIds[2])->name); - sub_80BF088(2, tvShow->smartshopperShow.itemAmounts[2]); - if (tvShow->smartshopperShow.priceReduced == 1) - { - gUnknown_020387E8 = 8; - } else - { - gUnknown_020387E8 = 9; - } - break; - case 8: - if (tvShow->smartshopperShow.itemAmounts[0] < 0xff) - { - gUnknown_020387E8 = 9; - } else - { - gUnknown_020387E8 = 12; - } - break; - case 9: - sub_80BF154(1, &tvShow->smartshopperShow); - TVShowDone(); - break; - case 10: - if (tvShow->smartshopperShow.priceReduced == 1) - { - gUnknown_020387E8 = 8; - } else - { - gUnknown_020387E8 = 9; - } - break; - case 11: - TVShowConvertInternationalString(gStringVar1, tvShow->smartshopperShow.playerName, tvShow->smartshopperShow.language); - StringCopy(gStringVar2, ItemId_GetItem(tvShow->smartshopperShow.itemIds[0])->name); - if (tvShow->smartshopperShow.priceReduced == 1) - { - gUnknown_020387E8 = 8; - } else - { - gUnknown_020387E8 = 12; - } - break; - case 12: - TVShowConvertInternationalString(gStringVar1, tvShow->smartshopperShow.playerName, tvShow->smartshopperShow.language); - TVShowDone(); - break; + case 0: + TVShowConvertInternationalString(gStringVar1, smartShopper->playerName, smartShopper->language); + sub_80FBFB4(gStringVar2, smartShopper->shopLocation, 0); + if (smartShopper->itemAmounts[0] >= 0xff) + gUnknown_020387E8 = 11; + else + gUnknown_020387E8 = 1; + break; + case 1: + TVShowConvertInternationalString(gStringVar1, smartShopper->playerName, smartShopper->language); + StringCopy(gStringVar2, ItemId_GetItem(smartShopper->itemIds[0])->name); + sub_80BF088(2, smartShopper->itemAmounts[0]); + gUnknown_020387E8 += (Random() % 4) + 1; + break; + case 2: + case 4: + case 5: + if (smartShopper->itemIds[1] != 0) + gUnknown_020387E8 = 6; + else + gUnknown_020387E8 = 10; + break; + case 3: + sub_80BF088(2, smartShopper->itemAmounts[0] + 1); + if (smartShopper->itemIds[1] != 0) + gUnknown_020387E8 = 6; + else + gUnknown_020387E8 = 10; + break; + case 6: + StringCopy(gStringVar2, ItemId_GetItem(smartShopper->itemIds[1])->name); + sub_80BF088(2, smartShopper->itemAmounts[1]); + if (smartShopper->itemIds[2] != 0) + gUnknown_020387E8 = 7; + else if (smartShopper->priceReduced == 1) + gUnknown_020387E8 = 8; + else + gUnknown_020387E8 = 9; + break; + case 7: + StringCopy(gStringVar2, ItemId_GetItem(smartShopper->itemIds[2])->name); + sub_80BF088(2, smartShopper->itemAmounts[2]); + if (smartShopper->priceReduced == 1) + gUnknown_020387E8 = 8; + else + gUnknown_020387E8 = 9; + break; + case 8: + if (smartShopper->itemAmounts[0] < 0xff) + gUnknown_020387E8 = 9; + else + gUnknown_020387E8 = 12; + break; + case 9: + sub_80BF154(1, smartShopper); + TVShowDone(); + break; + case 10: + if (smartShopper->priceReduced == 1) + gUnknown_020387E8 = 8; + else + gUnknown_020387E8 = 9; + break; + case 11: + TVShowConvertInternationalString(gStringVar1, smartShopper->playerName, smartShopper->language); + StringCopy(gStringVar2, ItemId_GetItem(smartShopper->itemIds[0])->name); + if (smartShopper->priceReduced == 1) + gUnknown_020387E8 = 8; + else + gUnknown_020387E8 = 12; + break; + case 12: + TVShowConvertInternationalString(gStringVar1, smartShopper->playerName, smartShopper->language); + TVShowDone(); + break; } - ShowFieldMessage(gTVSmartShopperTextGroup[switchval]); + ShowFieldMessage(gTVSmartShopperTextGroup[state]); } -void DoTVShowTheNameRaterShow(void) { - TVShow *tvShow; - u8 switchval; - tvShow = &gSaveBlock1.tvShows[gSpecialVar_0x8004]; +void DoTVShowTheNameRaterShow(void) +{ + struct TVShowNameRaterShow *nameRaterShow = &gSaveBlock1.tvShows[gSpecialVar_0x8004].nameRaterShow; + u8 state; + gScriptResult = 0; - switchval = gUnknown_020387E8; - switch (switchval) { + state = gUnknown_020387E8; + switch (state) + { case 0: - TVShowConvertInternationalString(gStringVar1, tvShow->nameRaterShow.trainerName, tvShow->nameRaterShow.language); - StringCopy(gStringVar2, gSpeciesNames[tvShow->nameRaterShow.species]); - TVShowConvertInternationalString(gStringVar3, tvShow->nameRaterShow.pokemonName, tvShow->nameRaterShow.pokemonNameLanguage); - gUnknown_020387E8 = sub_80BF7E8(&tvShow->nameRaterShow) + 1; + TVShowConvertInternationalString(gStringVar1, nameRaterShow->trainerName, nameRaterShow->language); + StringCopy(gStringVar2, gSpeciesNames[nameRaterShow->species]); + TVShowConvertInternationalString(gStringVar3, nameRaterShow->pokemonName, nameRaterShow->pokemonNameLanguage); + gUnknown_020387E8 = sub_80BF7E8(nameRaterShow) + 1; break; case 1: case 3: @@ -3338,217 +2819,214 @@ void DoTVShowTheNameRaterShow(void) { case 6: case 7: case 8: - if (tvShow->nameRaterShow.random == 0) { + if (nameRaterShow->random == 0) gUnknown_020387E8 = 9; - } else if (tvShow->nameRaterShow.random == 1) { + else if (nameRaterShow->random == 1) gUnknown_020387E8 = 10; - } else if (tvShow->nameRaterShow.random == 2) { + else if (nameRaterShow->random == 2) gUnknown_020387E8 = 11; - } break; case 2: - TVShowConvertInternationalString(gStringVar1, tvShow->nameRaterShow.trainerName, tvShow->nameRaterShow.language); - if (tvShow->nameRaterShow.random == 0) { + TVShowConvertInternationalString(gStringVar1, nameRaterShow->trainerName, nameRaterShow->language); + if (nameRaterShow->random == 0) gUnknown_020387E8 = 9; - } else if (tvShow->nameRaterShow.random == 1) { + else if (nameRaterShow->random == 1) gUnknown_020387E8 = 10; - } else if (tvShow->nameRaterShow.random == 2) { + else if (nameRaterShow->random == 2) gUnknown_020387E8 = 11; - } break; case 9: case 10: case 11: - sub_80BF820(0, 1, 0, 1, 0, &tvShow->nameRaterShow); - TVShowConvertInternationalString(gStringVar3, gStringVar1, tvShow->nameRaterShow.pokemonNameLanguage); - sub_80BF820(0, 0, 0, 1, 0, &tvShow->nameRaterShow); - TVShowConvertInternationalString(gStringVar2, gStringVar1, tvShow->nameRaterShow.pokemonNameLanguage); - TVShowConvertInternationalString(gStringVar1, tvShow->nameRaterShow.pokemonName, tvShow->nameRaterShow.pokemonNameLanguage); + sub_80BF820(0, 1, 0, 1, 0, nameRaterShow); + TVShowConvertInternationalString(gStringVar3, gStringVar1, nameRaterShow->pokemonNameLanguage); + sub_80BF820(0, 0, 0, 1, 0, nameRaterShow); + TVShowConvertInternationalString(gStringVar2, gStringVar1, nameRaterShow->pokemonNameLanguage); + TVShowConvertInternationalString(gStringVar1, nameRaterShow->pokemonName, nameRaterShow->pokemonNameLanguage); gUnknown_020387E8 = 12; break; case 13: - sub_80BF820(0, 0, 3, 1, 0, &tvShow->nameRaterShow); - TVShowConvertInternationalString(gStringVar3, gStringVar1, tvShow->nameRaterShow.pokemonNameLanguage); - sub_80BF820(0, 0, 2, 0, 0, &tvShow->nameRaterShow); - TVShowConvertInternationalString(gStringVar2, gStringVar1, tvShow->nameRaterShow.language); - TVShowConvertInternationalString(gStringVar1, tvShow->nameRaterShow.trainerName, tvShow->nameRaterShow.language); + sub_80BF820(0, 0, 3, 1, 0, nameRaterShow); + TVShowConvertInternationalString(gStringVar3, gStringVar1, nameRaterShow->pokemonNameLanguage); + sub_80BF820(0, 0, 2, 0, 0, nameRaterShow); + TVShowConvertInternationalString(gStringVar2, gStringVar1, nameRaterShow->language); + TVShowConvertInternationalString(gStringVar1, nameRaterShow->trainerName, nameRaterShow->language); gUnknown_020387E8 = 14; break; case 14: - sub_80BF820(0, 0, 3, 0, 0, &tvShow->nameRaterShow); - TVShowConvertInternationalString(gStringVar3, gStringVar1, tvShow->nameRaterShow.language); - sub_80BF820(0, 0, 2, 1, 0, &tvShow->nameRaterShow); - TVShowConvertInternationalString(gStringVar2, gStringVar1, tvShow->nameRaterShow.pokemonNameLanguage); - TVShowConvertInternationalString(gStringVar1, tvShow->nameRaterShow.trainerName, tvShow->nameRaterShow.language); + sub_80BF820(0, 0, 3, 0, 0, nameRaterShow); + TVShowConvertInternationalString(gStringVar3, gStringVar1, nameRaterShow->language); + sub_80BF820(0, 0, 2, 1, 0, nameRaterShow); + TVShowConvertInternationalString(gStringVar2, gStringVar1, nameRaterShow->pokemonNameLanguage); + TVShowConvertInternationalString(gStringVar1, nameRaterShow->trainerName, nameRaterShow->language); gUnknown_020387E8 = 18; break; case 15: - sub_80BF820(1, 0, 2, 1, 0, &tvShow->nameRaterShow); - TVShowConvertInternationalString(gStringVar1, gStringVar2, tvShow->nameRaterShow.pokemonNameLanguage); - StringCopy(gStringVar2, gSpeciesNames[tvShow->nameRaterShow.species]); - sub_80BF820(2, 0, 3, 2, tvShow->nameRaterShow.species, &tvShow->nameRaterShow); + sub_80BF820(1, 0, 2, 1, 0, nameRaterShow); + TVShowConvertInternationalString(gStringVar1, gStringVar2, nameRaterShow->pokemonNameLanguage); + StringCopy(gStringVar2, gSpeciesNames[nameRaterShow->species]); + sub_80BF820(2, 0, 3, 2, nameRaterShow->species, nameRaterShow); gUnknown_020387E8 = 16; break; case 16: - sub_80BF820(0, 0, 3, 1, 0, &tvShow->nameRaterShow); - TVShowConvertInternationalString(gStringVar3, gStringVar1, tvShow->nameRaterShow.pokemonNameLanguage); - sub_80BF820(0, 0, 2, 2, tvShow->nameRaterShow.species, &tvShow->nameRaterShow); + sub_80BF820(0, 0, 3, 1, 0, nameRaterShow); + TVShowConvertInternationalString(gStringVar3, gStringVar1, nameRaterShow->pokemonNameLanguage); + sub_80BF820(0, 0, 2, 2, nameRaterShow->species, nameRaterShow); gUnknown_020387E8 = 17; break; case 17: - sub_80BF820(1, 0, 2, 1, 0, &tvShow->nameRaterShow); - TVShowConvertInternationalString(gStringVar1, gStringVar2, tvShow->nameRaterShow.pokemonNameLanguage); - sub_80BF820(2, 0, 3, 2, tvShow->nameRaterShow.var1C, &tvShow->nameRaterShow); - StringCopy(gStringVar2, gSpeciesNames[tvShow->nameRaterShow.var1C]); + sub_80BF820(1, 0, 2, 1, 0, nameRaterShow); + TVShowConvertInternationalString(gStringVar1, gStringVar2, nameRaterShow->pokemonNameLanguage); + sub_80BF820(2, 0, 3, 2, nameRaterShow->var1C, nameRaterShow); + StringCopy(gStringVar2, gSpeciesNames[nameRaterShow->var1C]); gUnknown_020387E8 = 18; break; case 12: - switchval = 18; + state = 18; gUnknown_020387E8 = 18; case 18: - TVShowConvertInternationalString(gStringVar1, tvShow->nameRaterShow.pokemonName, tvShow->nameRaterShow.pokemonNameLanguage); - TVShowConvertInternationalString(gStringVar2, tvShow->nameRaterShow.trainerName, tvShow->nameRaterShow.language); + TVShowConvertInternationalString(gStringVar1, nameRaterShow->pokemonName, nameRaterShow->pokemonNameLanguage); + TVShowConvertInternationalString(gStringVar2, nameRaterShow->trainerName, nameRaterShow->language); TVShowDone(); break; } - ShowFieldMessage(gTVNameRaterTextGroup[switchval]); + ShowFieldMessage(gTVNameRaterTextGroup[state]); } -void DoTVShowPokemonTodaySuccessfulCapture(void) { - TVShow *tvShow; - u8 switchval; - tvShow = &gSaveBlock1.tvShows[gSpecialVar_0x8004]; +void DoTVShowPokemonTodaySuccessfulCapture(void) +{ + struct TVShowPokemonToday *pokemonToday = &gSaveBlock1.tvShows[gSpecialVar_0x8004].pokemonToday; + u8 state; + gScriptResult = 0; - switchval = gUnknown_020387E8; - switch (switchval) { + state = gUnknown_020387E8; + switch (state) + { case 0: - TVShowConvertInternationalString(gStringVar1, tvShow->pokemonToday.playerName, tvShow->pokemonToday.language); - StringCopy(gStringVar2, gSpeciesNames[tvShow->pokemonToday.species]); - TVShowConvertInternationalString(gStringVar3, tvShow->pokemonToday.nickname, tvShow->pokemonToday.language2); - if (tvShow->pokemonToday.ball == ITEM_MASTER_BALL) { + TVShowConvertInternationalString(gStringVar1, pokemonToday->playerName, pokemonToday->language); + StringCopy(gStringVar2, gSpeciesNames[pokemonToday->species]); + TVShowConvertInternationalString(gStringVar3, pokemonToday->nickname, pokemonToday->language2); + if (pokemonToday->ball == ITEM_MASTER_BALL) gUnknown_020387E8 = 5; - } else { + else gUnknown_020387E8 = 1; - } break; case 1: gUnknown_020387E8 = 2; break; case 2: - StringCopy(gStringVar2, ItemId_GetItem(tvShow->pokemonToday.ball)->name); - sub_80BF088(2, tvShow->pokemonToday.var12); - if (tvShow->pokemonToday.var12 < 4) { + StringCopy(gStringVar2, ItemId_GetItem(pokemonToday->ball)->name); + sub_80BF088(2, pokemonToday->var12); + if (pokemonToday->var12 < 4) gUnknown_020387E8 = 3; - } else { + else gUnknown_020387E8 = 4; - } break; case 3: - TVShowConvertInternationalString(gStringVar1, tvShow->pokemonToday.playerName, tvShow->pokemonToday.language); - StringCopy(gStringVar2, gSpeciesNames[tvShow->pokemonToday.species]); - TVShowConvertInternationalString(gStringVar3, tvShow->pokemonToday.nickname, tvShow->pokemonToday.language2); + TVShowConvertInternationalString(gStringVar1, pokemonToday->playerName, pokemonToday->language); + StringCopy(gStringVar2, gSpeciesNames[pokemonToday->species]); + TVShowConvertInternationalString(gStringVar3, pokemonToday->nickname, pokemonToday->language2); gUnknown_020387E8 = 6; break; case 4: gUnknown_020387E8 = 6; break; case 5: - TVShowConvertInternationalString(gStringVar1, tvShow->pokemonToday.playerName, tvShow->pokemonToday.language); - StringCopy(gStringVar2, gSpeciesNames[tvShow->pokemonToday.species]); + TVShowConvertInternationalString(gStringVar1, pokemonToday->playerName, pokemonToday->language); + StringCopy(gStringVar2, gSpeciesNames[pokemonToday->species]); gUnknown_020387E8 = 6; break; case 6: - TVShowConvertInternationalString(gStringVar1, tvShow->pokemonToday.playerName, tvShow->pokemonToday.language); - StringCopy(gStringVar2, gSpeciesNames[tvShow->pokemonToday.species]); - TVShowConvertInternationalString(gStringVar3, tvShow->pokemonToday.nickname, tvShow->pokemonToday.language2); + TVShowConvertInternationalString(gStringVar1, pokemonToday->playerName, pokemonToday->language); + StringCopy(gStringVar2, gSpeciesNames[pokemonToday->species]); + TVShowConvertInternationalString(gStringVar3, pokemonToday->nickname, pokemonToday->language2); gUnknown_020387E8 += (Random() % 4) + 1; break; case 7: case 8: - StringCopy(gStringVar1, gSpeciesNames[tvShow->pokemonToday.species]); - TVShowConvertInternationalString(gStringVar2, tvShow->pokemonToday.nickname, tvShow->pokemonToday.language2); - sub_80BF638(2, tvShow->pokemonToday.species); + StringCopy(gStringVar1, gSpeciesNames[pokemonToday->species]); + TVShowConvertInternationalString(gStringVar2, pokemonToday->nickname, pokemonToday->language2); + sub_80BF638(2, pokemonToday->species); gUnknown_020387E8 = 11; break; case 9: case 10: - StringCopy(gStringVar1, gSpeciesNames[tvShow->pokemonToday.species]); - TVShowConvertInternationalString(gStringVar2, tvShow->pokemonToday.nickname, tvShow->pokemonToday.language2); + StringCopy(gStringVar1, gSpeciesNames[pokemonToday->species]); + TVShowConvertInternationalString(gStringVar2, pokemonToday->nickname, pokemonToday->language2); gUnknown_020387E8 = 11; break; case 11: TVShowDone(); break; } - ShowFieldMessage(gTVPokemonTodayTextGroup[switchval]); + ShowFieldMessage(gTVPokemonTodayTextGroup[state]); } -void DoTVShowPokemonTodayFailedCapture(void) { - TVShow *tvShow; - u8 switchval; - u16 rval; - tvShow = &gSaveBlock1.tvShows[gSpecialVar_0x8004]; +void DoTVShowPokemonTodayFailedCapture(void) +{ + struct TVShowPokemonTodayFailed *pokemonTodayFailed = &gSaveBlock1.tvShows[gSpecialVar_0x8004].pokemonTodayFailed; + u8 state; + gScriptResult = 0; - switchval = gUnknown_020387E8; - switch (switchval) { + state = gUnknown_020387E8; + switch (state) + { case 0: - TVShowConvertInternationalString(gStringVar1, tvShow->pokemonTodayFailed.playerName, tvShow->pokemonTodayFailed.language); - StringCopy(gStringVar2, gSpeciesNames[tvShow->pokemonTodayFailed.species]); + TVShowConvertInternationalString(gStringVar1, pokemonTodayFailed->playerName, pokemonTodayFailed->language); + StringCopy(gStringVar2, gSpeciesNames[pokemonTodayFailed->species]); gUnknown_020387E8 = 1; break; case 1: - TVShowConvertInternationalString(gStringVar1, tvShow->pokemonTodayFailed.playerName, tvShow->pokemonTodayFailed.language); - sub_80FBFB4(gStringVar2, tvShow->pokemonTodayFailed.var12, 0); - StringCopy(gStringVar3, gSpeciesNames[tvShow->pokemonTodayFailed.species2]); - if (tvShow->pokemonTodayFailed.var11 == 1) { + TVShowConvertInternationalString(gStringVar1, pokemonTodayFailed->playerName, pokemonTodayFailed->language); + sub_80FBFB4(gStringVar2, pokemonTodayFailed->var12, 0); + StringCopy(gStringVar3, gSpeciesNames[pokemonTodayFailed->species2]); + if (pokemonTodayFailed->var11 == 1) gUnknown_020387E8 = 3; - } else { + else gUnknown_020387E8 = 2; - } break; case 2: case 3: - TVShowConvertInternationalString(gStringVar1, tvShow->pokemonTodayFailed.playerName, tvShow->pokemonTodayFailed.language); - sub_80BF088(1, tvShow->pokemonTodayFailed.var10); - rval = (Random() % 3); - if (rval == 0) { + TVShowConvertInternationalString(gStringVar1, pokemonTodayFailed->playerName, pokemonTodayFailed->language); + sub_80BF088(1, pokemonTodayFailed->var10); + if ((Random() % 3) == 0) gUnknown_020387E8 = 5; - } else { + else gUnknown_020387E8 = 4; - } break; case 4: case 5: - TVShowConvertInternationalString(gStringVar1, tvShow->pokemonTodayFailed.playerName, tvShow->pokemonTodayFailed.language); + TVShowConvertInternationalString(gStringVar1, pokemonTodayFailed->playerName, pokemonTodayFailed->language); gUnknown_020387E8 = 6; break; case 6: TVShowDone(); break; } - ShowFieldMessage(gTVPokemonTodayFailedCaptureTextGroup[switchval]); + ShowFieldMessage(gTVPokemonTodayFailedCaptureTextGroup[state]); } -void DoTVShowPokemonFanClubLetter(void) { - TVShow *tvShow; - u8 switchval; +void DoTVShowPokemonFanClubLetter(void) +{ + struct TVShowFanClubLetter *fanclubLetter = &gSaveBlock1.tvShows[gSpecialVar_0x8004].fanclubLetter; + u8 state; u16 rval; - tvShow = &gSaveBlock1.tvShows[gSpecialVar_0x8004]; + gScriptResult = 0; - switchval = gUnknown_020387E8; - switch (switchval) { + state = gUnknown_020387E8; + switch (state) + { case 0: - TVShowConvertInternationalString(gStringVar1, tvShow->fanclubLetter.playerName, tvShow->fanclubLetter.language); - StringCopy(gStringVar2, gSpeciesNames[tvShow->fanclubLetter.species]); + TVShowConvertInternationalString(gStringVar1, fanclubLetter->playerName, fanclubLetter->language); + StringCopy(gStringVar2, gSpeciesNames[fanclubLetter->species]); gUnknown_020387E8 = 50; break; case 1: rval = (Random() % 4) + 1; - if (rval == 1) { + if (rval == 1) gUnknown_020387E8 = 2; - } else { + else gUnknown_020387E8 = rval + 2; - } break; case 2: gUnknown_020387E8 = 51; @@ -3559,7 +3037,7 @@ void DoTVShowPokemonFanClubLetter(void) { case 4: case 5: case 6: - sub_80BF79C(tvShow); + sub_80BF79C((TVShow *)fanclubLetter); gUnknown_020387E8 = 7; break; case 7: @@ -3568,29 +3046,31 @@ void DoTVShowPokemonFanClubLetter(void) { TVShowDone(); break; case 50: - ConvertEasyChatWordsToString(gStringVar4, tvShow->fanclubLetter.pad04, 2, 2); + ConvertEasyChatWordsToString(gStringVar4, fanclubLetter->pad04, 2, 2); ShowFieldMessage(gStringVar4); gUnknown_020387E8 = 1; return; case 51: - ConvertEasyChatWordsToString(gStringVar4, tvShow->fanclubLetter.pad04, 2, 2); + ConvertEasyChatWordsToString(gStringVar4, fanclubLetter->pad04, 2, 2); ShowFieldMessage(gStringVar4); gUnknown_020387E8 = 3; return; } - ShowFieldMessage(gTVFanClubTextGroup[switchval]); + ShowFieldMessage(gTVFanClubTextGroup[state]); } -void DoTVShowRecentHappenings(void) { - TVShow *tvShow; - u8 switchval; - tvShow = &gSaveBlock1.tvShows[gSpecialVar_0x8004]; +void DoTVShowRecentHappenings(void) +{ + struct TVShowRecentHappenings *recentHappenings = &gSaveBlock1.tvShows[gSpecialVar_0x8004].recentHappenings; + u8 state; + gScriptResult = 0; - switchval = gUnknown_020387E8; - switch (switchval) { + state = gUnknown_020387E8; + switch (state) + { case 0: - TVShowConvertInternationalString(gStringVar1, tvShow->recentHappenings.playerName, tvShow->recentHappenings.language); - sub_80BF79C(tvShow); + TVShowConvertInternationalString(gStringVar1, recentHappenings->playerName, recentHappenings->language); + sub_80BF79C((TVShow *)recentHappenings); gUnknown_020387E8 = 50; break; case 1: @@ -3605,92 +3085,90 @@ void DoTVShowRecentHappenings(void) { TVShowDone(); break; case 50: - ConvertEasyChatWordsToString(gStringVar4, tvShow->recentHappenings.var04, 2, 2); + ConvertEasyChatWordsToString(gStringVar4, recentHappenings->var04, 2, 2); ShowFieldMessage(gStringVar4); gUnknown_020387E8 = 1; return; } - ShowFieldMessage(gTVRecentHappeningsTextGroup[switchval]); + ShowFieldMessage(gTVRecentHappeningsTextGroup[state]); } -void DoTVShowPokemonFanClubOpinions(void) { - TVShow *tvShow; - u8 switchval; - tvShow = &gSaveBlock1.tvShows[gSpecialVar_0x8004]; +void DoTVShowPokemonFanClubOpinions(void) +{ + struct TVShowFanclubOpinions *fanclubOpinions = &gSaveBlock1.tvShows[gSpecialVar_0x8004].fanclubOpinions; + u8 state; + gScriptResult = 0; - switchval = gUnknown_020387E8; - switch (switchval) { + state = gUnknown_020387E8; + switch (state) + { case 0: - TVShowConvertInternationalString(gStringVar1, tvShow->fanclubOpinions.playerName, tvShow->fanclubOpinions.language); - StringCopy(gStringVar2, gSpeciesNames[tvShow->fanclubOpinions.var02]); - TVShowConvertInternationalString(gStringVar3, tvShow->fanclubOpinions.var10, tvShow->fanclubOpinions.var0E); - gUnknown_020387E8 = tvShow->fanclubOpinions.var04B + 1; + TVShowConvertInternationalString(gStringVar1, fanclubOpinions->playerName, fanclubOpinions->language); + StringCopy(gStringVar2, gSpeciesNames[fanclubOpinions->var02]); + TVShowConvertInternationalString(gStringVar3, fanclubOpinions->var10, fanclubOpinions->var0E); + gUnknown_020387E8 = fanclubOpinions->var04B + 1; break; case 1: case 2: case 3: - TVShowConvertInternationalString(gStringVar1, tvShow->fanclubOpinions.playerName, tvShow->fanclubOpinions.language); - StringCopy(gStringVar2, gSpeciesNames[tvShow->fanclubOpinions.var02]); - sub_80EB3FC(gStringVar3, tvShow->fanclubOpinions.var1C[0]); + TVShowConvertInternationalString(gStringVar1, fanclubOpinions->playerName, fanclubOpinions->language); + StringCopy(gStringVar2, gSpeciesNames[fanclubOpinions->var02]); + sub_80EB3FC(gStringVar3, fanclubOpinions->var1C[0]); gUnknown_020387E8 = 4; break; case 4: - TVShowConvertInternationalString(gStringVar1, tvShow->fanclubOpinions.playerName, tvShow->fanclubOpinions.language); - sub_80EB3FC(gStringVar3, tvShow->fanclubOpinions.var1C[1]); + TVShowConvertInternationalString(gStringVar1, fanclubOpinions->playerName, fanclubOpinions->language); + sub_80EB3FC(gStringVar3, fanclubOpinions->var1C[1]); TVShowDone(); break; } - ShowFieldMessage(gTVFanClubOpinionsTextGroup[switchval]); + ShowFieldMessage(gTVFanClubOpinionsTextGroup[state]); } -void nullsub_22(void) { - +void nullsub_22(void) +{ } void DoTVShowPokemonNewsMassOutbreak(void) { - TVShow *tvShow; - - tvShow = &gSaveBlock1.tvShows[gSpecialVar_0x8004]; - - sub_80FBFB4(gStringVar1, tvShow->massOutbreak.locationMapNum, 0); - - StringCopy(gStringVar2, gSpeciesNames[tvShow->massOutbreak.species]); + struct TVShowMassOutbreak *massOutbreak = &gSaveBlock1.tvShows[gSpecialVar_0x8004].massOutbreak; + sub_80FBFB4(gStringVar1, massOutbreak->locationMapNum, 0); + StringCopy(gStringVar2, gSpeciesNames[massOutbreak->species]); TVShowDone(); StartMassOutbreak(); - ShowFieldMessage(gTVPokemonOutbreakTextGroup[gUnknown_020387E8]); } -void DoTVShowInSearchOfTrainers(void) { - u8 switchval; +void DoTVShowInSearchOfTrainers(void) +{ + u8 state; + gScriptResult = 0; - switchval = gUnknown_020387E8; - switch (switchval) { + state = gUnknown_020387E8; + switch (state) + { case 0: sub_80FBFB4(gStringVar1, gSaveBlock1.gabbyAndTyData.mapnum, 0); - if (gSaveBlock1.gabbyAndTyData.battleNum > 1) { + if (gSaveBlock1.gabbyAndTyData.battleNum > 1) gUnknown_020387E8 = 1; - } else { + else gUnknown_020387E8 = 2; - } break; case 1: gUnknown_020387E8 = 2; break; case 2: - if (gSaveBlock1.gabbyAndTyData.valA_0 == 0) { + if (gSaveBlock1.gabbyAndTyData.valA_0 == 0) gUnknown_020387E8 = 4; - } else if (gSaveBlock1.gabbyAndTyData.valA_3 != 0) { + else if (gSaveBlock1.gabbyAndTyData.valA_3 != 0) gUnknown_020387E8 = 5; - } else if (gSaveBlock1.gabbyAndTyData.valA_2 != 0) { + else if (gSaveBlock1.gabbyAndTyData.valA_2 != 0) gUnknown_020387E8 = 6; - } else if (gSaveBlock1.gabbyAndTyData.valA_1 != 0) { + else if (gSaveBlock1.gabbyAndTyData.valA_1 != 0) gUnknown_020387E8 = 7; - } else { + else gUnknown_020387E8 = 3; - } break; case 3: StringCopy(gStringVar1, gSpeciesNames[gSaveBlock1.gabbyAndTyData.mon1]); @@ -3713,71 +3191,73 @@ void DoTVShowInSearchOfTrainers(void) { TakeTVShowInSearchOfTrainersOffTheAir(); break; } - ShowFieldMessage(gTVGabbyAndTyTextGroup[switchval]); + ShowFieldMessage(gTVGabbyAndTyTextGroup[state]); } -void DoTVShowPokemonAngler(void) { - TVShow *tvShow; - u8 switchval; - tvShow = &gSaveBlock1.tvShows[gSpecialVar_0x8004]; +void DoTVShowPokemonAngler(void) +{ + struct TVShowPokemonAngler *pokemonAngler = &gSaveBlock1.tvShows[gSpecialVar_0x8004].pokemonAngler; + u8 state; + gScriptResult = 0; - if (tvShow->pokemonAngler.var02 < tvShow->pokemonAngler.var03) { + if (pokemonAngler->var02 < pokemonAngler->var03) gUnknown_020387E8 = 0; - } else { + else gUnknown_020387E8 = 1; - } - switchval = gUnknown_020387E8; - switch (switchval) { + state = gUnknown_020387E8; + switch (state) + { case 0: - TVShowConvertInternationalString(gStringVar1, tvShow->pokemonAngler.playerName, tvShow->pokemonAngler.language); - StringCopy(gStringVar2, gSpeciesNames[tvShow->pokemonAngler.var04]); - sub_80BF088(2, tvShow->pokemonAngler.var03); + TVShowConvertInternationalString(gStringVar1, pokemonAngler->playerName, pokemonAngler->language); + StringCopy(gStringVar2, gSpeciesNames[pokemonAngler->var04]); + sub_80BF088(2, pokemonAngler->var03); TVShowDone(); break; case 1: - TVShowConvertInternationalString(gStringVar1, tvShow->pokemonAngler.playerName, tvShow->pokemonAngler.language); - StringCopy(gStringVar2, gSpeciesNames[tvShow->pokemonAngler.var04]); - sub_80BF088(2, tvShow->pokemonAngler.var02); + TVShowConvertInternationalString(gStringVar1, pokemonAngler->playerName, pokemonAngler->language); + StringCopy(gStringVar2, gSpeciesNames[pokemonAngler->var04]); + sub_80BF088(2, pokemonAngler->var02); TVShowDone(); break; } - ShowFieldMessage(gTVFishingGuruAdviceTextGroup[switchval]); + ShowFieldMessage(gTVFishingGuruAdviceTextGroup[state]); } -void DoTVShowTheWorldOfMasters(void) { - TVShow *tvShow; - u8 switchval; - tvShow = &gSaveBlock1.tvShows[gSpecialVar_0x8004]; +void DoTVShowTheWorldOfMasters(void) +{ + struct TVShowWorldOfMasters *worldOfMasters = &gSaveBlock1.tvShows[gSpecialVar_0x8004].worldOfMasters; + u8 state; + gScriptResult = 0; - switchval = gUnknown_020387E8; - switch (switchval) { + state = gUnknown_020387E8; + switch (state) + { case 0: - TVShowConvertInternationalString(gStringVar1, tvShow->worldOfMasters.playerName, - tvShow->worldOfMasters.language); - sub_80BF088(1, tvShow->worldOfMasters.var06); - sub_80BF088(2, tvShow->worldOfMasters.var02); + TVShowConvertInternationalString(gStringVar1, worldOfMasters->playerName, + worldOfMasters->language); + sub_80BF088(1, worldOfMasters->var06); + sub_80BF088(2, worldOfMasters->var02); gUnknown_020387E8 = 1; break; case 1: - StringCopy(gStringVar1, gSpeciesNames[tvShow->worldOfMasters.var08]); + StringCopy(gStringVar1, gSpeciesNames[worldOfMasters->var08]); gUnknown_020387E8 = 2; break; case 2: - TVShowConvertInternationalString(gStringVar1, tvShow->worldOfMasters.playerName, - tvShow->worldOfMasters.language); - sub_80FBFB4(gStringVar2, tvShow->worldOfMasters.var0a, 0); - StringCopy(gStringVar3, gSpeciesNames[tvShow->worldOfMasters.var04]); + TVShowConvertInternationalString(gStringVar1, worldOfMasters->playerName, + worldOfMasters->language); + sub_80FBFB4(gStringVar2, worldOfMasters->var0a, 0); + StringCopy(gStringVar3, gSpeciesNames[worldOfMasters->var04]); TVShowDone(); break; } - ShowFieldMessage(gTVWorldOfMastersTextGroup[switchval]); + ShowFieldMessage(gTVWorldOfMastersTextGroup[state]); } void TVShowDone(void) { gScriptResult = 1; gUnknown_020387E8 = 0; - gSaveBlock1.tvShows[gSpecialVar_0x8004].common.var01 = 0; } diff --git a/src/use_pokeblock.c b/src/use_pokeblock.c index ce83bc1c2..ce83bc1c2 100755..100644 --- a/src/use_pokeblock.c +++ b/src/use_pokeblock.c diff --git a/src/util.c b/src/util.c index c83fe8c8a..582b9f806 100644 --- a/src/util.c +++ b/src/util.c @@ -1,27 +1,140 @@ #include "global.h" #include "util.h" -extern const struct SpriteTemplate gInvisibleSpriteTemplate; -extern const u8 gSpriteDimensions[3][4][2]; -extern const u16 gCrc16Table[]; +const u32 gBitTable[] = +{ + 1 << 0, + 1 << 1, + 1 << 2, + 1 << 3, + 1 << 4, + 1 << 5, + 1 << 6, + 1 << 7, + 1 << 8, + 1 << 9, + 1 << 10, + 1 << 11, + 1 << 12, + 1 << 13, + 1 << 14, + 1 << 15, + 1 << 16, + 1 << 17, + 1 << 18, + 1 << 19, + 1 << 20, + 1 << 21, + 1 << 22, + 1 << 23, + 1 << 24, + 1 << 25, + 1 << 26, + 1 << 27, + 1 << 28, + 1 << 29, + 1 << 30, + 1 << 31, +}; -u8 CreateInvisibleSpriteWithCallback(void (*callback)(struct Sprite *)) { +static const struct SpriteTemplate gInvisibleSpriteTemplate = +{ + .tileTag = 0, + .paletteTag = 0, + .oam = &gDummyOamData, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +static const u8 gSpriteDimensions[3][4][2] = +{ + // square + { + {1, 1}, + {2, 2}, + {4, 4}, + {8, 8}, + }, + + // horizontal rectangle + { + {2, 1}, + {4, 1}, + {4, 2}, + {8, 4}, + }, + + // vertical rectangle + { + {1, 2}, + {1, 4}, + {2, 4}, + {4, 8}, + }, +}; + +static const u16 gCrc16Table[] = +{ + 0x0000, 0x1189, 0x2312, 0x329B, 0x4624, 0x57AD, 0x6536, 0x74BF, + 0x8C48, 0x9DC1, 0xAF5A, 0xBED3, 0xCA6C, 0xDBE5, 0xE97E, 0xF8F7, + 0x1081, 0x0108, 0x3393, 0x221A, 0x56A5, 0x472C, 0x75B7, 0x643E, + 0x9CC9, 0x8D40, 0xBFDB, 0xAE52, 0xDAED, 0xCB64, 0xF9FF, 0xE876, + 0x2102, 0x308B, 0x0210, 0x1399, 0x6726, 0x76AF, 0x4434, 0x55BD, + 0xAD4A, 0xBCC3, 0x8E58, 0x9FD1, 0xEB6E, 0xFAE7, 0xC87C, 0xD9F5, + 0x3183, 0x200A, 0x1291, 0x0318, 0x77A7, 0x662E, 0x54B5, 0x453C, + 0xBDCB, 0xAC42, 0x9ED9, 0x8F50, 0xFBEF, 0xEA66, 0xD8FD, 0xC974, + 0x4204, 0x538D, 0x6116, 0x709F, 0x0420, 0x15A9, 0x2732, 0x36BB, + 0xCE4C, 0xDFC5, 0xED5E, 0xFCD7, 0x8868, 0x99E1, 0xAB7A, 0xBAF3, + 0x5285, 0x430C, 0x7197, 0x601E, 0x14A1, 0x0528, 0x37B3, 0x263A, + 0xDECD, 0xCF44, 0xFDDF, 0xEC56, 0x98E9, 0x8960, 0xBBFB, 0xAA72, + 0x6306, 0x728F, 0x4014, 0x519D, 0x2522, 0x34AB, 0x0630, 0x17B9, + 0xEF4E, 0xFEC7, 0xCC5C, 0xDDD5, 0xA96A, 0xB8E3, 0x8A78, 0x9BF1, + 0x7387, 0x620E, 0x5095, 0x411C, 0x35A3, 0x242A, 0x16B1, 0x0738, + 0xFFCF, 0xEE46, 0xDCDD, 0xCD54, 0xB9EB, 0xA862, 0x9AF9, 0x8B70, + 0x8408, 0x9581, 0xA71A, 0xB693, 0xC22C, 0xD3A5, 0xE13E, 0xF0B7, + 0x0840, 0x19C9, 0x2B52, 0x3ADB, 0x4E64, 0x5FED, 0x6D76, 0x7CFF, + 0x9489, 0x8500, 0xB79B, 0xA612, 0xD2AD, 0xC324, 0xF1BF, 0xE036, + 0x18C1, 0x0948, 0x3BD3, 0x2A5A, 0x5EE5, 0x4F6C, 0x7DF7, 0x6C7E, + 0xA50A, 0xB483, 0x8618, 0x9791, 0xE32E, 0xF2A7, 0xC03C, 0xD1B5, + 0x2942, 0x38CB, 0x0A50, 0x1BD9, 0x6F66, 0x7EEF, 0x4C74, 0x5DFD, + 0xB58B, 0xA402, 0x9699, 0x8710, 0xF3AF, 0xE226, 0xD0BD, 0xC134, + 0x39C3, 0x284A, 0x1AD1, 0x0B58, 0x7FE7, 0x6E6E, 0x5CF5, 0x4D7C, + 0xC60C, 0xD785, 0xE51E, 0xF497, 0x8028, 0x91A1, 0xA33A, 0xB2B3, + 0x4A44, 0x5BCD, 0x6956, 0x78DF, 0x0C60, 0x1DE9, 0x2F72, 0x3EFB, + 0xD68D, 0xC704, 0xF59F, 0xE416, 0x90A9, 0x8120, 0xB3BB, 0xA232, + 0x5AC5, 0x4B4C, 0x79D7, 0x685E, 0x1CE1, 0x0D68, 0x3FF3, 0x2E7A, + 0xE70E, 0xF687, 0xC41C, 0xD595, 0xA12A, 0xB0A3, 0x8238, 0x93B1, + 0x6B46, 0x7ACF, 0x4854, 0x59DD, 0x2D62, 0x3CEB, 0x0E70, 0x1FF9, + 0xF78F, 0xE606, 0xD49D, 0xC514, 0xB1AB, 0xA022, 0x92B9, 0x8330, + 0x7BC7, 0x6A4E, 0x58D5, 0x495C, 0x3DE3, 0x2C6A, 0x1EF1, 0x0F78, +}; + +const u8 gMiscBlank_Gfx[] = INCBIN_U8("graphics/interface/blank.4bpp"); + + +u8 CreateInvisibleSpriteWithCallback(void (*callback)(struct Sprite *)) +{ u8 sprite = CreateSprite(&gInvisibleSpriteTemplate, 248, 168, 14); gSprites[sprite].invisible = TRUE; gSprites[sprite].callback = callback; return sprite; } -void StoreWordInTwoHalfwords(u16 *h, u32 w) { +void StoreWordInTwoHalfwords(u16 *h, u32 w) +{ h[0] = (u16)(w); h[1] = (u16)(w >> 16); } -void LoadWordFromTwoHalfwords(u16 *h, u32 *w) { +void LoadWordFromTwoHalfwords(u16 *h, u32 *w) +{ *w = h[0] | (s16)h[1] << 16; } -void SetBgAffineStruct(struct BgAffineSrcData *src, u32 texX, u32 texY, s16 scrX, s16 scrY, s16 sx, s16 sy, u16 alpha) { +void SetBgAffineStruct(struct BgAffineSrcData *src, u32 texX, u32 texY, s16 scrX, s16 scrY, s16 sx, s16 sy, u16 alpha) +{ src->texX = texX; src->texY = texY; src->scrX = scrX; @@ -31,15 +144,11 @@ void SetBgAffineStruct(struct BgAffineSrcData *src, u32 texX, u32 texY, s16 scrX src->alpha = alpha; } -void DoBgAffineSet(struct BgAffineDstData *dest, u32 texX, u32 texY, s16 scrX, s16 scrY, s16 sx, s16 sy, u16 alpha) { +void DoBgAffineSet(struct BgAffineDstData *dest, u32 texX, u32 texY, s16 scrX, s16 scrY, s16 sx, s16 sy, u16 alpha) +{ struct BgAffineSrcData src; - SetBgAffineStruct( - &src, - texX, texY, - scrX, scrY, - sx, sy, - alpha - ); + + SetBgAffineStruct(&src, texX, texY, scrX, scrY, sx, sy, alpha); BgAffineSet(&src, dest, 1); } @@ -47,24 +156,34 @@ void DoBgAffineSet(struct BgAffineDstData *dest, u32 texX, u32 texY, s16 scrX, s // Functionally equivalent. // Only the two yflip loops don't match. -void CopySpriteTiles(u8 shape, u8 size, u8 *tiles, u16 *tilemap, u8 *output) { +void CopySpriteTiles(u8 shape, u8 size, u8 *tiles, u16 *tilemap, u8 *output) +{ u8 x, y; s8 i, j; u8 xflip[32]; u8 h = gSpriteDimensions[shape][size][1]; u8 w = gSpriteDimensions[shape][size][0]; - for (y = 0; y < h; y++) { + + for (y = 0; y < h; y++) + { int filler = 32 - w; - for (x = 0; x < w; x++) { + + for (x = 0; x < w; x++) + { int tile = (*tilemap & 0x3ff) * 32; int attr = *tilemap & 0xc00; - if (attr == 0) { + + if (attr == 0) + { void *src = tiles + tile; void *dest = output; int length = 32; DmaCopy32(3, src, dest, length); - } else if (attr == 0x800) { // yflip - for (i = 0; i < 8; i++) { + } + else if (attr == 0x800) // yflip + { + for (i = 0; i < 8; i++) + { void *src = tiles; void *dest = output; int length = 4; @@ -73,22 +192,30 @@ void CopySpriteTiles(u8 shape, u8 size, u8 *tiles, u16 *tilemap, u8 *output) { dest += i * 4; DmaCopy32(3, src, dest, length); } - } else { // xflip - for (i = 0; i < 8; i++) { - for (j = 0; j < 4; j++) { + } + else // xflip + { + for (i = 0; i < 8; i++) + { + for (j = 0; j < 4; j++) + { u8 i2 = i * 4; xflip[i2 + (3-j)] = (tiles[tile + i2 + j] & 0xf) << 4; xflip[i2 + (3-j)] |= tiles[tile + i2 + j] >> 4; } } - if (*tilemap & 0x800) { // yflip - for (i = 0; i < 8; i++) { + if (*tilemap & 0x800) // yflip + { + for (i = 0; i < 8; i++) + { void *src = xflip + (7-i) * 4; void *dest = output + i*4; int length = 4; DmaCopy32(3, src, dest, length); } - } else { + } + else + { void *src = xflip; void *dest = output; int length = 32; @@ -104,7 +231,8 @@ void CopySpriteTiles(u8 shape, u8 size, u8 *tiles, u16 *tilemap, u8 *output) { #else -__attribute__((naked)) void CopySpriteTiles(u8 shape, u8 size, u8 *tiles, u16 *tilemap, u8 *output) { +__attribute__((naked)) void CopySpriteTiles(u8 shape, u8 size, u8 *tiles, u16 *tilemap, u8 *output) +{ asm("\n" " .syntax unified\n" " push {r4-r7,lr}\n" @@ -348,39 +476,47 @@ __attribute__((naked)) void CopySpriteTiles(u8 shape, u8 size, u8 *tiles, u16 *t #endif -int CountTrailingZeroBits(u32 value) { +int CountTrailingZeroBits(u32 value) +{ u8 i; - for (i = 0; i < 32; i++) { - if ((value & 1) == 0) { + + for (i = 0; i < 32; i++) + { + if ((value & 1) == 0) value >>= 1; - } else { + else return i; - } } return 0; } -u16 CalcCRC16(u8 *data, int length) { +u16 CalcCRC16(u8 *data, int length) +{ u16 i, j; u16 crc = 0x1121; - for (i = 0; i < length; i++) { + + for (i = 0; i < length; i++) + { crc ^= data[i]; - for (j = 0; j < 8; j++) { - if (crc & 1) { + for (j = 0; j < 8; j++) + { + if (crc & 1) crc = (crc >> 1) ^ 0x8408; - } else { + else crc >>= 1; - } } } return ~crc; } -u16 CalcCRC16WithTable(u8 *data, int length) { +u16 CalcCRC16WithTable(u8 *data, int length) +{ u16 i; u16 crc = 0x1121; u8 byte; - for (i = 0; i < length; i++) { + + for (i = 0; i < length; i++) + { byte = crc >> 8; crc ^= data[i]; crc = byte ^ gCrc16Table[(u8)crc]; diff --git a/sym_bss.txt b/sym_bss.txt index 315bad6bb..3a00629b5 100644 --- a/sym_bss.txt +++ b/sym_bss.txt @@ -93,15 +93,7 @@ gUnknown_030006DC: @ 30006DC .space 0x4 .include "src/field_effect.o" - -gUnknown_03000700: @ 3000700 - .space 0x1 - -gUnknown_03000701: @ 3000701 - .space 0x3 - -gUnknown_03000704: @ 3000704 - .space 0x4 + .include "src/item_menu.o" gUnknown_03000708: @ 3000708 .space 0x10 @@ -136,9 +128,9 @@ gUnknown_03000744: @ 3000744 gUnknown_03000748: @ 3000748 .space 0x4 -gUnknown_0300074C: @ 300074C - .space 0x4 + .include "src/menu_helpers.o" + .align 2 gUnknown_03000750: @ 3000750 .space 0x2 diff --git a/sym_common.txt b/sym_common.txt index dfd114c8c..dc1e62f13 100644 --- a/sym_common.txt +++ b/sym_common.txt @@ -234,10 +234,10 @@ gUnknown_03005CF0: @ 3005CF0 gUnknown_03005D00: @ 3005D00 .space 0x10 -gUnknown_03005D10: @ 3005D10 +gBagPocketScrollStates: @ 3005D10 .space 0x14 -gUnknown_03005D24: @ 3005D24 +gCurrentBagPocketItemSlots: @ 3005D24 .space 0x4 gUnknown_03005D28: @ 3005D28 diff --git a/sym_ewram.txt b/sym_ewram.txt index ecb18decb..0adf8f19b 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -605,59 +605,9 @@ gUnknown_020384F8: @ 20384F8 .space 0x40 .include "src/map_name_popup.o" + .include "src/item_menu.o" - .align 2 -gUnknown_0203853C: @ 203853C - .space 0x4 - -gUnknown_02038540: @ 2038540 - .space 0x4 - -gUnknown_02038544: @ 2038544 - .space 0xC - -gUnknown_02038550: @ 2038550 - .space 0x4 - -gUnknown_02038554: @ 2038554 - .space 0x4 - -gUnknown_02038558: @ 2038558 - .space 0x1 - -gUnknown_02038559: @ 2038559 - .space 0x1 - -gUnknown_0203855A: @ 203855A - .space 0x1 - -gUnknown_0203855B: @ 203855B - .space 0x1 - -gUnknown_0203855C: @ 203855C - .space 0x2 - -gScriptItemId: @ 203855E - .space 0x2 - -gUnknown_02038560: @ 2038560 - .space 0x1 - -gUnknown_02038561: @ 2038561 - .space 0x1 - -gUnknown_02038562: @ 2038562 - .space 0x1 - -gUnknown_02038563: @ 2038563 - .space 0x1 - -gUnknown_02038564: @ 2038564 - .space 0x4 - -gUnknown_02038568: @ 2038568 - .space 0x4 - + .align 2 gUnknown_0203856C: @ 203856C .space 0x4 @@ -802,12 +752,9 @@ gUnknown_020388B8: @ 20388B8 gUnknown_020388BC: @ 20388BC .space 0x4 -gUnknown_020388C0: @ 20388C0 - .space 0x4 - -gUnknown_020388C4: @ 20388C4 - .space 0x8 + .include "src/menu_helpers.o" + .align 2 gUnknown_020388CC: @ 20388CC .space 0x4 |