diff --git a/asm/include/overlay_29_0230E914.inc b/asm/include/overlay_29_0230E914.inc deleted file mode 100644 index 09df2f47..00000000 --- a/asm/include/overlay_29_0230E914.inc +++ /dev/null @@ -1,25 +0,0 @@ -#pragma once -.public abs -.public AI_THROWN_ITEM_ACTION_CHOICE_COUNT -.public BAG_ITEMS_PTR_MIRROR -.public CanSeeTarget -.public CheckVariousConditions -.public DUNGEON_PTR -.public DungeonRandInt -.public DungeonRandOutcome__022EAB20 -.public EntityIsValid__0230F008 -.public GetAiUseItemProbability -.public GetDirectionTowardsPosition -.public GetItemCategoryVeneer -.public GetItemInfo -.public GetPossibleAiArcItemTargets -.public GetTile -.public GetTreatmentBetweenMonsters -.public IqSkillIsEnabled -.public IsTargetInRange -.public MonsterCanThrowItems -.public ov29_0237C9D0 -.public ov29_0237C9D8 -.public ov29_0237C9F8 -.public SetMonsterActionFields -.public TestItemAiFlag diff --git a/asm/include/overlay_29_0230EDB0.inc b/asm/include/overlay_29_0230EDB0.inc new file mode 100644 index 00000000..acc841a4 --- /dev/null +++ b/asm/include/overlay_29_0230EDB0.inc @@ -0,0 +1,12 @@ +#pragma once +.public AI_THROWN_ITEM_ACTION_CHOICE_COUNT +.public CanSeeTarget +.public DUNGEON_PTR +.public EntityIsValid__0230F008 +.public GetAiUseItemProbability +.public GetTreatmentBetweenMonsters +.public IsTargetInRange +.public abs +.public ov29_0237C9D0 +.public AI_THROWN_ITEM_PROBABILITIES +.public AI_THROWN_ITEM_DIRECTIONS diff --git a/asm/include/overlay_29_bss_02353860.inc b/asm/include/overlay_29_bss_02353860.inc new file mode 100644 index 00000000..6f70f09b --- /dev/null +++ b/asm/include/overlay_29_bss_02353860.inc @@ -0,0 +1 @@ +#pragma once diff --git a/asm/include/overlay_29_bss_0237CA18.inc b/asm/include/overlay_29_bss_0237CA18.inc new file mode 100644 index 00000000..6f70f09b --- /dev/null +++ b/asm/include/overlay_29_bss_0237CA18.inc @@ -0,0 +1 @@ +#pragma once diff --git a/asm/include/overlay_29_data_023534E0.inc b/asm/include/overlay_29_data_023534E0.inc new file mode 100644 index 00000000..ad692efd --- /dev/null +++ b/asm/include/overlay_29_data_023534E0.inc @@ -0,0 +1,22 @@ +#pragma once +.public ov29_0230D704 +.public ov29_0230D70C +.public ov29_0230D738 +.public ov29_0230D76C +.public ov29_0234FD28 +.public ov29_0234FD38 +.public ov29_0234FD58 +.public ov29_0234FD6C +.public ov29_0234FD80 +.public ov29_0234FD88 +.public ov29_0234FD90 +.public ov29_0234FD98 +.public ov29_0234FDA0 +.public ov29_0234FDA8 +.public ov29_0234FDB0 +.public ov29_0234FDB8 +.public ov29_0234FDC0 +.public ov29_0234FDC8 +.public ov29_023527E0 +.public ov29_023527E4 +.public ov29_023527E8 diff --git a/asm/include/overlay_29_data_02353700.inc b/asm/include/overlay_29_data_02353700.inc new file mode 100644 index 00000000..520234f5 --- /dev/null +++ b/asm/include/overlay_29_data_02353700.inc @@ -0,0 +1,6 @@ +#pragma once +.public ov29_02353128 +.public ov29_02353140 +.public ov29_02353158 +.public ov29_02353170 +.public ov29_02353188 diff --git a/asm/include/overlay_29_02352A54.inc b/asm/include/overlay_29_rodata_0234FD04.inc similarity index 100% rename from asm/include/overlay_29_02352A54.inc rename to asm/include/overlay_29_rodata_0234FD04.inc diff --git a/asm/include/overlay_29_0238280C.inc b/asm/include/overlay_29_rodata_02352A6C.inc similarity index 51% rename from asm/include/overlay_29_0238280C.inc rename to asm/include/overlay_29_rodata_02352A6C.inc index 997e7ead..6221d7fc 100644 --- a/asm/include/overlay_29_0238280C.inc +++ b/asm/include/overlay_29_rodata_02352A6C.inc @@ -23,32 +23,6 @@ .public ov10_022C4AE8 .public ov10_022C4B00 .public ov10_022C4B98 -.public ov29_0230D704 -.public ov29_0230D70C -.public ov29_0230D738 -.public ov29_0230D76C .public ov29_0234F21C .public ov29_0234F248 .public ov29_0234F9E8 -.public ov29_0234FD28 -.public ov29_0234FD38 -.public ov29_0234FD58 -.public ov29_0234FD6C -.public ov29_0234FD80 -.public ov29_0234FD88 -.public ov29_0234FD90 -.public ov29_0234FD98 -.public ov29_0234FDA0 -.public ov29_0234FDA8 -.public ov29_0234FDB0 -.public ov29_0234FDB8 -.public ov29_0234FDC0 -.public ov29_0234FDC8 -.public ov29_023527E0 -.public ov29_023527E4 -.public ov29_023527E8 -.public ov29_02353128 -.public ov29_02353140 -.public ov29_02353158 -.public ov29_02353170 -.public ov29_02353188 diff --git a/asm/overlay_29_0230E914.s b/asm/overlay_29_0230E914.s deleted file mode 100644 index 4c65c48f..00000000 --- a/asm/overlay_29_0230E914.s +++ /dev/null @@ -1,507 +0,0 @@ - .include "asm/macros.inc" - .include "overlay_29_0230E914.inc" - - .text - - arm_func_start AiDecideUseItem -AiDecideUseItem: ; 0x0230E914 - stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x50 - mov sl, r0 - ldr r7, [sl, #0xb4] - bl CheckVariousConditions - cmp r0, #0 - movne r0, #0 -#ifdef JAPAN - strneb r0, [r7, #0x108] - bne _0230ED98 - ldrb r0, [r7, #0x108] -#else - strneb r0, [r7, #0x109] - bne _0230ED98 - ldrb r0, [r7, #0x109] -#endif - cmp r0, #0 - beq _0230EAF0 - ldrb r0, [r7, #0x62] - tst r0, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - beq _0230ED98 - ldrsh r0, [r7, #0x66] - bl GetItemCategoryVeneer - cmp r0, #0 - bne _0230EA08 - mov r0, sl - add r2, r7, #0x62 - mov r1, #2 - mov r3, #1 - bl GetPossibleAiThrownItemDirections - mov r4, #0 - ldr r6, _0230EDA0 ; =ov29_0237C9D8 - ldr r5, _0230EDA4 ; =AI_THROWN_ITEM_ACTION_CHOICE_COUNT - b _0230E9DC -_0230E990: - ldr r0, [r6, r4, lsl #2] - bl DungeonRandOutcome__022EAB20 - cmp r0, #0 - beq _0230E9D8 - add r0, r7, #0x4a - mov r1, #0x24 - bl SetMonsterActionFields - mov r0, #0x81 - strb r0, [r7, #0x4e] - ldrsh r1, [sl, #4] - ldr r0, _0230EDA8 ; =ov29_0237C9F8 - strh r1, [r7, #0x50] - ldrsh r1, [sl, #6] - strh r1, [r7, #0x52] - ldr r0, [r0, r4, lsl #2] - and r0, r0, #7 - strb r0, [r7, #0x4c] - b _0230E9E8 -_0230E9D8: - add r4, r4, #1 -_0230E9DC: - ldr r0, [r5] - cmp r4, r0 - blt _0230E990 -_0230E9E8: - ldr r0, _0230EDA4 ; =AI_THROWN_ITEM_ACTION_CHOICE_COUNT - ldr r0, [r0] - cmp r4, r0 - bne _0230ED98 - add r0, r7, #0x4a - mov r1, #0x39 - bl SetMonsterActionFields - b _0230ED98 -_0230EA08: - cmp r0, #1 - bne _0230EAAC - add r2, sp, #0 - mov r0, sl - add r1, r7, #0x62 - mov r3, #1 - bl GetPossibleAiArcItemTargets - ldr r0, _0230EDA4 ; =AI_THROWN_ITEM_ACTION_CHOICE_COUNT - ldr r1, [r0] - cmp r1, #0 - beq _0230EA9C - ldr r0, [r0] - bl DungeonRandInt - mov r4, r0 - add r0, r7, #0x4a - mov r1, #0x24 - bl SetMonsterActionFields - mov r0, #0x81 - strb r0, [r7, #0x4e] - ldrsh r2, [sl, #4] - add r1, sp, #0 - add r0, sl, #4 - strh r2, [r7, #0x50] - ldrsh r2, [sl, #6] - add r1, r1, r4, lsl #2 - strh r2, [r7, #0x52] - bl GetDirectionTowardsPosition - and r0, r0, #7 - strb r0, [r7, #0x4c] - add r1, sp, #0 - mov r0, r4, lsl #2 - ldrh r0, [r1, r0] - add r1, r1, r4, lsl #2 - strh r0, [r7, #0x5a] - ldrh r0, [r1, #2] - strh r0, [r7, #0x5c] - b _0230ED98 -_0230EA9C: - add r0, r7, #0x4a - mov r1, #0x39 - bl SetMonsterActionFields - b _0230ED98 -_0230EAAC: - add r0, r0, #0xfe - and r0, r0, #0xff - cmp r0, #1 - add r0, r7, #0x4a - bhi _0230EAE4 - mov r1, #0x23 - bl SetMonsterActionFields - mov r0, #0x81 - strb r0, [r7, #0x4e] - ldrsh r0, [sl, #4] - strh r0, [r7, #0x50] - ldrsh r0, [sl, #6] - strh r0, [r7, #0x52] - b _0230ED98 -_0230EAE4: - mov r1, #0x39 - bl SetMonsterActionFields - b _0230ED98 -_0230EAF0: - mov r0, sl - mov r1, #0x16 - bl IqSkillIsEnabled - cmp r0, #0 - beq _0230ED98 - mov r5, #1 - b _0230ED90 -_0230EB0C: - cmp r5, #1 - addeq r8, r7, #0x62 - moveq r6, #0x81 - beq _0230EB84 - cmp r5, #0 - bne _0230EB58 - ldrsh r0, [sl, #4] - ldrsh r1, [sl, #6] - bl GetTile - ldr r0, [r0, #0x10] - cmp r0, #0 - beq _0230ED8C - ldr r1, [r0] - cmp r1, #3 - bne _0230ED8C - bl GetItemInfo - mov r8, r0 - mov r6, #0x80 - b _0230EB84 -_0230EB58: - ldrb r0, [r7, #7] - cmp r0, #0 - beq _0230ED98 - ldr r0, _0230EDAC ; =BAG_ITEMS_PTR_MIRROR - sub r1, r5, #1 - ldr r0, [r0] - sub r2, r5, #2 - ldr r3, [r0, #0x384] - mov r0, #6 - mla r8, r2, r0, r3 - and r6, r1, #0xff -_0230EB84: - ldrb r1, [r8] - tst r1, #1 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - beq _0230ED8C - ldrb r0, [r8] - tst r0, #2 - bne _0230ED8C - tst r1, #8 - movne r0, #1 - moveq r0, #0 - tst r0, #0xff - bne _0230ED8C - ldrsh r0, [r8, #4] - mov r1, #0 - bl TestItemAiFlag - cmp r0, #0 - beq _0230EC4C - mov r0, sl - mov r1, r8 - mov r2, #2 - bl GetAiUseItemProbability - movs r4, r0 - beq _0230EC4C - ldrsh r0, [r8, #4] - bl GetItemCategoryVeneer - mov sb, r0 - cmp sb, #9 - ldreqb r0, [r7, #6] - cmpeq r0, #0 - beq _0230EC4C - mov r0, r4 - bl DungeonRandOutcome__022EAB20 - cmp r0, #0 - beq _0230EC4C - cmp sb, #9 - add r0, r7, #0x4a - bne _0230EC2C - mov r1, #0x31 - bl SetMonsterActionFields - b _0230EC34 -_0230EC2C: - mov r1, #0x23 - bl SetMonsterActionFields -_0230EC34: - strb r6, [r7, #0x4e] - ldrsh r0, [sl, #4] - strh r0, [r7, #0x50] - ldrsh r0, [sl, #6] - strh r0, [r7, #0x52] - b _0230ED98 -_0230EC4C: - mov r0, r7 - bl MonsterCanThrowItems - cmp r0, #0 - beq _0230ED8C - mov r4, #1 - ldr fp, _0230EDA4 ; =AI_THROWN_ITEM_ACTION_CHOICE_COUNT - b _0230ED84 -_0230EC68: - ldrsh r0, [r8, #4] - mov r1, r4 - bl TestItemAiFlag - cmp r0, #0 - beq _0230ED80 - ldrsh r0, [r8, #4] - bl GetItemCategoryVeneer - cmp r0, #1 - mov r0, sl - mov r3, #0 - bne _0230ED14 - mov r1, r8 - add r2, sp, #0 - bl GetPossibleAiArcItemTargets - ldr r0, [fp] - cmp r0, #0 - beq _0230ED80 - ldr r0, _0230EDA4 ; =AI_THROWN_ITEM_ACTION_CHOICE_COUNT - ldr r0, [r0] - bl DungeonRandInt - mov r4, r0 - add r0, r7, #0x4a - mov r1, #0x24 - bl SetMonsterActionFields - strb r6, [r7, #0x4e] - ldrsh r2, [sl, #4] - add r1, sp, #0 - add r0, sl, #4 - strh r2, [r7, #0x50] - ldrsh r2, [sl, #6] - add r1, r1, r4, lsl #2 - strh r2, [r7, #0x52] - bl GetDirectionTowardsPosition - and r0, r0, #7 - strb r0, [r7, #0x4c] - add r1, sp, #0 - mov r0, r4, lsl #2 - ldrh r0, [r1, r0] - add r1, r1, r4, lsl #2 - strh r0, [r7, #0x5a] - ldrh r0, [r1, #2] - strh r0, [r7, #0x5c] - b _0230ED98 -_0230ED14: - mov r1, r4 - mov r2, r8 - bl GetPossibleAiThrownItemDirections - mov sb, #0 - b _0230ED74 -_0230ED28: - ldr r0, _0230EDA0 ; =ov29_0237C9D8 - ldr r0, [r0, sb, lsl #2] - bl DungeonRandOutcome__022EAB20 - cmp r0, #0 - beq _0230ED70 - add r0, r7, #0x4a - mov r1, #0x24 - bl SetMonsterActionFields - strb r6, [r7, #0x4e] - ldrsh r1, [sl, #4] - ldr r0, _0230EDA8 ; =ov29_0237C9F8 - strh r1, [r7, #0x50] - ldrsh r1, [sl, #6] - strh r1, [r7, #0x52] - ldr r0, [r0, sb, lsl #2] - and r0, r0, #7 - strb r0, [r7, #0x4c] - b _0230ED98 -_0230ED70: - add sb, sb, #1 -_0230ED74: - ldr r0, [fp] - cmp sb, r0 - blt _0230ED28 -_0230ED80: - add r4, r4, #1 -_0230ED84: - cmp r4, #3 - blt _0230EC68 -_0230ED8C: - add r5, r5, #1 -_0230ED90: - cmp r5, #0x34 - blt _0230EB0C -_0230ED98: - add sp, sp, #0x50 - ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0230EDA0: .word ov29_0237C9D8 -_0230EDA4: .word AI_THROWN_ITEM_ACTION_CHOICE_COUNT -_0230EDA8: .word ov29_0237C9F8 -_0230EDAC: .word BAG_ITEMS_PTR_MIRROR - arm_func_end AiDecideUseItem - - arm_func_start GetPossibleAiThrownItemDirections -GetPossibleAiThrownItemDirections: ; 0x0230EDB0 - stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} - sub sp, sp, #0x14 - ldr r4, _0230EFF4 ; =AI_THROWN_ITEM_ACTION_CHOICE_COUNT - mov r5, #0 - mov sl, r0 - str r3, [sp, #8] - ldr r0, _0230EFF8 ; =ov29_0237C9D0 - str r1, [sp] - str r2, [sp, #4] - str r5, [r4] - mov fp, r5 -_0230EDDC: - strb fp, [r0, r5] - add r5, r5, #1 - cmp r5, #8 - blt _0230EDDC - mvn r0, #0 - str r0, [sp, #0x10] -_0230EDF4: - ldr r0, _0230EFFC ; =DUNGEON_PTR - ldr r0, [r0] - add r0, r0, fp, lsl #2 - add r0, r0, #0x12000 -#ifdef JAPAN - ldr r4, [r0, #0xad4] -#else - ldr r4, [r0, #0xb78] -#endif - mov r0, r4 - bl EntityIsValid__0230F008 - cmp r0, #0 - cmpne sl, r4 - beq _0230EFE0 - ldr r0, [sp] - mov r2, #0 - cmp r0, #1 - mov r0, sl - mov r1, r4 - bne _0230EE50 - mov r3, r2 - bl GetTreatmentBetweenMonsters - cmp r0, #0 - bne _0230EFE0 - mov r0, #3 - str r0, [sp, #0xc] - b _0230EE68 -_0230EE50: - mov r3, #1 - bl GetTreatmentBetweenMonsters - cmp r0, #1 - bne _0230EFE0 - mov r0, #1 - str r0, [sp, #0xc] -_0230EE68: - mov r0, sl - mov r1, r4 - bl CanSeeTarget - cmp r0, #0 - beq _0230EFE0 - ldrsh r6, [r4, #4] - ldrsh r7, [sl, #4] - sub r0, r7, r6 - bl abs - mov r5, r0 - ldrsh r8, [r4, #6] - ldrsh sb, [sl, #6] - sub r0, sb, r8 - bl abs - ldr r1, [sl, #0xb4] - ldrb r1, [r1, #0xee] - cmp r1, #0 - bne _0230EEC4 - cmp r5, r0 - movgt r1, r5 - movle r1, r0 - cmp r1, #0xa - bgt _0230EFE0 -_0230EEC4: - cmp r5, r0 - ldr r5, [sp, #0x10] - bne _0230EF08 - cmp r7, r6 - cmplt sb, r8 - movlt r5, #1 - blt _0230EF54 - cmp r7, r6 - bge _0230EEF4 - cmp sb, r8 - movgt r5, #3 - bgt _0230EF54 -_0230EEF4: - cmp r7, r6 - cmpgt sb, r8 - movgt r5, #5 - movle r5, #7 - b _0230EF54 -_0230EF08: - cmp r7, r6 - bne _0230EF1C - cmp sb, r8 - movlt r5, #0 - blt _0230EF54 -_0230EF1C: - cmp r7, r6 - bge _0230EF30 - cmp sb, r8 - moveq r5, #2 - beq _0230EF54 -_0230EF30: - cmp r7, r6 - bne _0230EF44 - cmp sb, r8 - movgt r5, #4 - bgt _0230EF54 -_0230EF44: - cmp r7, r6 - ble _0230EF54 - cmp sb, r8 - moveq r5, #6 -_0230EF54: - cmp r5, #0 - blt _0230EFE0 - ldr r0, _0230EFF8 ; =ov29_0237C9D0 - ldrb r0, [r0, r5] - cmp r0, #0 - bne _0230EFE0 - mov r0, sl - mov r1, r4 - mov r2, r5 - mov r3, #0xa - bl IsTargetInRange - cmp r0, #0 - beq _0230EFE0 - ldr r0, _0230EFF8 ; =ov29_0237C9D0 - mov r1, #1 - strb r1, [r0, r5] - ldr r0, [sp, #8] - cmp r0, #0 - ldr r0, _0230EFF4 ; =AI_THROWN_ITEM_ACTION_CHOICE_COUNT - ldr r1, [r0] - ldr r0, _0230F000 ; =ov29_0237C9F8 - str r5, [r0, r1, lsl #2] - movne r0, #0x64 - bne _0230EFC4 - ldr r2, [sp, #0xc] - ldr r1, [sp, #4] - mov r0, r4 - bl GetAiUseItemProbability -_0230EFC4: - ldr r1, _0230EFF4 ; =AI_THROWN_ITEM_ACTION_CHOICE_COUNT - ldr r2, [r1] - ldr r1, _0230F004 ; =ov29_0237C9D8 - str r0, [r1, r2, lsl #2] - ldr r0, _0230EFF4 ; =AI_THROWN_ITEM_ACTION_CHOICE_COUNT - add r1, r2, #1 - str r1, [r0] -_0230EFE0: - add fp, fp, #1 - cmp fp, #0x14 - blt _0230EDF4 - add sp, sp, #0x14 - ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} - .align 2, 0 -_0230EFF4: .word AI_THROWN_ITEM_ACTION_CHOICE_COUNT -_0230EFF8: .word ov29_0237C9D0 -_0230EFFC: .word DUNGEON_PTR -_0230F000: .word ov29_0237C9F8 -_0230F004: .word ov29_0237C9D8 - arm_func_end GetPossibleAiThrownItemDirections diff --git a/asm/overlay_29_0230EDB0.s b/asm/overlay_29_0230EDB0.s new file mode 100644 index 00000000..1b89f33e --- /dev/null +++ b/asm/overlay_29_0230EDB0.s @@ -0,0 +1,176 @@ + .include "asm/macros.inc" + .include "overlay_29_0230EDB0.inc" + + .text + + arm_func_start GetPossibleAiThrownItemDirections +GetPossibleAiThrownItemDirections: ; 0x0230EDB0 + stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, fp, lr} + sub sp, sp, #0x14 + ldr r4, _0230EFF4 ; =AI_THROWN_ITEM_ACTION_CHOICE_COUNT + mov r5, #0 + mov sl, r0 + str r3, [sp, #8] + ldr r0, _0230EFF8 ; =ov29_0237C9D0 + str r1, [sp] + str r2, [sp, #4] + str r5, [r4] + mov fp, r5 +_0230EDDC: + strb fp, [r0, r5] + add r5, r5, #1 + cmp r5, #8 + blt _0230EDDC + mvn r0, #0 + str r0, [sp, #0x10] +_0230EDF4: + ldr r0, _0230EFFC ; =DUNGEON_PTR + ldr r0, [r0] + add r0, r0, fp, lsl #2 + add r0, r0, #0x12000 +#ifdef JAPAN + ldr r4, [r0, #0xad4] +#else + ldr r4, [r0, #0xb78] +#endif + mov r0, r4 + bl EntityIsValid__0230F008 + cmp r0, #0 + cmpne sl, r4 + beq _0230EFE0 + ldr r0, [sp] + mov r2, #0 + cmp r0, #1 + mov r0, sl + mov r1, r4 + bne _0230EE50 + mov r3, r2 + bl GetTreatmentBetweenMonsters + cmp r0, #0 + bne _0230EFE0 + mov r0, #3 + str r0, [sp, #0xc] + b _0230EE68 +_0230EE50: + mov r3, #1 + bl GetTreatmentBetweenMonsters + cmp r0, #1 + bne _0230EFE0 + mov r0, #1 + str r0, [sp, #0xc] +_0230EE68: + mov r0, sl + mov r1, r4 + bl CanSeeTarget + cmp r0, #0 + beq _0230EFE0 + ldrsh r6, [r4, #4] + ldrsh r7, [sl, #4] + sub r0, r7, r6 + bl abs + mov r5, r0 + ldrsh r8, [r4, #6] + ldrsh sb, [sl, #6] + sub r0, sb, r8 + bl abs + ldr r1, [sl, #0xb4] + ldrb r1, [r1, #0xee] + cmp r1, #0 + bne _0230EEC4 + cmp r5, r0 + movgt r1, r5 + movle r1, r0 + cmp r1, #0xa + bgt _0230EFE0 +_0230EEC4: + cmp r5, r0 + ldr r5, [sp, #0x10] + bne _0230EF08 + cmp r7, r6 + cmplt sb, r8 + movlt r5, #1 + blt _0230EF54 + cmp r7, r6 + bge _0230EEF4 + cmp sb, r8 + movgt r5, #3 + bgt _0230EF54 +_0230EEF4: + cmp r7, r6 + cmpgt sb, r8 + movgt r5, #5 + movle r5, #7 + b _0230EF54 +_0230EF08: + cmp r7, r6 + bne _0230EF1C + cmp sb, r8 + movlt r5, #0 + blt _0230EF54 +_0230EF1C: + cmp r7, r6 + bge _0230EF30 + cmp sb, r8 + moveq r5, #2 + beq _0230EF54 +_0230EF30: + cmp r7, r6 + bne _0230EF44 + cmp sb, r8 + movgt r5, #4 + bgt _0230EF54 +_0230EF44: + cmp r7, r6 + ble _0230EF54 + cmp sb, r8 + moveq r5, #6 +_0230EF54: + cmp r5, #0 + blt _0230EFE0 + ldr r0, _0230EFF8 ; =ov29_0237C9D0 + ldrb r0, [r0, r5] + cmp r0, #0 + bne _0230EFE0 + mov r0, sl + mov r1, r4 + mov r2, r5 + mov r3, #0xa + bl IsTargetInRange + cmp r0, #0 + beq _0230EFE0 + ldr r0, _0230EFF8 ; =ov29_0237C9D0 + mov r1, #1 + strb r1, [r0, r5] + ldr r0, [sp, #8] + cmp r0, #0 + ldr r0, _0230EFF4 ; =AI_THROWN_ITEM_ACTION_CHOICE_COUNT + ldr r1, [r0] + ldr r0, _0230F000 ; =AI_THROWN_ITEM_DIRECTIONS + str r5, [r0, r1, lsl #2] + movne r0, #0x64 + bne _0230EFC4 + ldr r2, [sp, #0xc] + ldr r1, [sp, #4] + mov r0, r4 + bl GetAiUseItemProbability +_0230EFC4: + ldr r1, _0230EFF4 ; =AI_THROWN_ITEM_ACTION_CHOICE_COUNT + ldr r2, [r1] + ldr r1, _0230F004 ; =AI_THROWN_ITEM_PROBABILITIES + str r0, [r1, r2, lsl #2] + ldr r0, _0230EFF4 ; =AI_THROWN_ITEM_ACTION_CHOICE_COUNT + add r1, r2, #1 + str r1, [r0] +_0230EFE0: + add fp, fp, #1 + cmp fp, #0x14 + blt _0230EDF4 + add sp, sp, #0x14 + ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, fp, pc} + .align 2, 0 +_0230EFF4: .word AI_THROWN_ITEM_ACTION_CHOICE_COUNT +_0230EFF8: .word ov29_0237C9D0 +_0230EFFC: .word DUNGEON_PTR +_0230F000: .word AI_THROWN_ITEM_DIRECTIONS +_0230F004: .word AI_THROWN_ITEM_PROBABILITIES + arm_func_end GetPossibleAiThrownItemDirections diff --git a/asm/overlay_29_bss_02353860.s b/asm/overlay_29_bss_02353860.s new file mode 100644 index 00000000..e1460f16 --- /dev/null +++ b/asm/overlay_29_bss_02353860.s @@ -0,0 +1,162 @@ + .include "asm/macros.inc" + .include "overlay_29_bss_02353860.inc" + + .bss +#ifndef EUROPE + .global ov29_02353860 +ov29_02353860: + .space 0x20 +#endif + .global ov29_02353880 +ov29_02353880: + .space 0x34 + .global ov29_023538B4 +ov29_023538B4: + .space 0x1963C + .global ov29_0236CEF0 +ov29_0236CEF0: + .space 0x6FC + .global ov29_0236D5EC +ov29_0236D5EC: + .space 0x6000 + .global ov29_023735EC +ov29_023735EC: + .space 0x4 + .global ov29_023735F0 +ov29_023735F0: + .space 0x4 + .global ov29_023735F4 +ov29_023735F4: + .space 0x4 + .global ov29_023735F8 +ov29_023735F8: + .space 0x4 + .global ov29_023735FC +ov29_023735FC: + .space 0x10 + .global ov29_0237360C +ov29_0237360C: + .space 0x80 + .global ov29_0237368C +ov29_0237368C: + .space 0x4 + .global ov29_02373690 +ov29_02373690: + .space 0x9000 + .global ov29_0237C690 +ov29_0237C690: + .space 0x4 + .global ov29_0237C694 +ov29_0237C694: + .space 0x2 + .global ov29_0237C696 +ov29_0237C696: + .space 0x2 + .global ov29_0237C698 +ov29_0237C698: + .space 0xC + .global ov29_0237C6A4 +ov29_0237C6A4: + .space 0x14 + .global ov29_0237C6B8 +ov29_0237C6B8: + .space 0x1C + .global ov29_0237C6D4 +ov29_0237C6D4: + .space 0x40 + .global ov29_0237C714 +ov29_0237C714: + .space 0x40 + .global ov29_0237C754 +ov29_0237C754: + .space 0x48 + .global ov29_0237C79C +ov29_0237C79C: + .space 0xB0 + .global ov29_0237C84C +ov29_0237C84C: + .space 0x4 + .global ov29_0237C850 +ov29_0237C850: + .space 0x14 + .global ov29_0237C864 +ov29_0237C864: + .space 0x24 + .global ov29_0237C888 +ov29_0237C888: + .space 0x2 + .global ov29_0237C88A +ov29_0237C88A: + .space 0x4 + .global ov29_0237C88E +ov29_0237C88E: + .space 0x2 + .global ov29_0237C890 +ov29_0237C890: + .space 0x2 + .global ov29_0237C892 +ov29_0237C892: + .space 0x86 + .global ov29_0237C918 +ov29_0237C918: + .space 0x4 + .global ov29_0237C91C +ov29_0237C91C: + .space 0x2 + .global ov29_0237C91E +ov29_0237C91E: + .space 0x2 + .global ov29_0237C920 +ov29_0237C920: + .space 0x2 + .global ov29_0237C922 +ov29_0237C922: + .space 0x4A + .global ov29_0237C96C +ov29_0237C96C: + .space 0x8 + .global ov29_0237C974 +ov29_0237C974: + .space 0x28 + .global ov29_0237C99C +ov29_0237C99C: + .space 0x4 + .global ov29_0237C9A0 +ov29_0237C9A0: + .space 0x4 + .global ov29_0237C9A4 +ov29_0237C9A4: + .space 0x8 + .global ov29_0237C9AC +ov29_0237C9AC: + .space 0x4 + .global ov29_0237C9B0 +ov29_0237C9B0: + .space 0x8 + .global ov29_0237C9B8 +ov29_0237C9B8: + .space 0x8 + .global ov29_0237C9C0 +ov29_0237C9C0: + .space 0x1 + .global ov29_0237C9C1 +ov29_0237C9C1: + .space 0x3 + .global ov29_0237C9C4 +ov29_0237C9C4: + .space 0x1 + .global ov29_0237C9C5 +ov29_0237C9C5: + .space 0x3 + .global ov29_0237C9C8 +ov29_0237C9C8: + .space 0x1 + .global ov29_0237C9C9 +ov29_0237C9C9: + .space 0x3 + .global ov29_0237C9CC +ov29_0237C9CC: + .space 0x4 + .global ov29_0237C9D0 +ov29_0237C9D0: + .space 0x8 diff --git a/asm/overlay_29_bss_0237CA18.s b/asm/overlay_29_bss_0237CA18.s new file mode 100644 index 00000000..c08c5c25 --- /dev/null +++ b/asm/overlay_29_bss_0237CA18.s @@ -0,0 +1,106 @@ + .include "asm/macros.inc" + .include "overlay_29_bss_0237CA18.inc" + + .bss + .global ov29_0237CA18 +ov29_0237CA18: + .space 0x8 + .global ov29_0237CA20 +ov29_0237CA20: + .space 0x8 + .global ov29_0237CA28 +ov29_0237CA28: + .space 0x20 + .global ov29_0237CA48 +ov29_0237CA48: + .space 0x20 + .global ov29_0237CA68 +ov29_0237CA68: + .space 0x1 + .global ov29_0237CA69 +ov29_0237CA69: + .space 0x1 + .global ov29_0237CA6A +ov29_0237CA6A: + .space 0x1 + .global ov29_0237CA6B +ov29_0237CA6B: + .space 0x1 + .global ov29_0237CA6C +ov29_0237CA6C: + .space 0x1 + .global ov29_0237CA6D +ov29_0237CA6D: + .space 0x3 + .global ov29_0237CA70 +ov29_0237CA70: + .space 0x4 + .global ov29_0237CA74 +ov29_0237CA74: + .space 0x4 + .global ov29_0237CA78 +ov29_0237CA78: + .space 0x4 + .global ov29_0237CA7C +ov29_0237CA7C: + .space 0x4 + .global ov29_0237CA80 +ov29_0237CA80: + .space 0x4 + .global ov29_0237CA84 +ov29_0237CA84: + .space 0x4 + .global ov29_0237CA88 +ov29_0237CA88: + .space 0x4 + .global ov29_0237CA8C +ov29_0237CA8C: + .space 0x4 + .global ov29_0237CA90 +ov29_0237CA90: + .space 0x6 + .global ov29_0237CA96 +ov29_0237CA96: + .space 0xA + .global ov29_0237CAA0 +ov29_0237CAA0: + .space 0xC + .global ov29_0237CAAC +ov29_0237CAAC: + .space 0xC + .global ov29_0237CAB8 +ov29_0237CAB8: + .space 0x14 + .global ov29_0237CACC +ov29_0237CACC: + .space 0x274 + .global ov29_0237CD40 +ov29_0237CD40: + .space 0x278 + .global ov29_0237CFB8 +ov29_0237CFB8: + .space 0x3 + .global ov29_0237CFBB +ov29_0237CFBB: + .space 0x1 + .global ov29_0237CFBC +ov29_0237CFBC: + .space 0x4 + .global ov29_0237CFC0 +ov29_0237CFC0: + .space 0x3C + .global ov29_0237CFFC +ov29_0237CFFC: + .space 0x4 + .global ov29_0237D000 +ov29_0237D000: + .space 0x5800 + .global ov29_02382800 +ov29_02382800: + .space 0x4 + .global ov29_02382804 +ov29_02382804: + .space 0x8 + .global ov29_0238280C +ov29_0238280C: + .space 0x14 diff --git a/asm/overlay_29_data_023534E0.s b/asm/overlay_29_data_023534E0.s new file mode 100644 index 00000000..55401a11 --- /dev/null +++ b/asm/overlay_29_data_023534E0.s @@ -0,0 +1,171 @@ + .include "asm/macros.inc" + .include "overlay_29_data_023534E0.inc" + + .data + .global ov29_023534E0 +ov29_023534E0: + .word ov29_0234FD6C + .word ov29_0234FD28 + .global ov29_023534E8 +ov29_023534E8: + .word ov29_0234FD58 + .word ov29_0234FD38 + .global ov29_023534F0 +ov29_023534F0: + .word ov29_0234FDB8 + .word ov29_0234FDC8 + .word ov29_0234FDC0 + .word ov29_0234FD88 + .word ov29_0234FDB0 + .word ov29_0234FD98 + .word ov29_0234FDA0 + .word ov29_0234FDA8 + .word ov29_0234FD90 + .word ov29_0234FD80 + .global ov29_02353518 +ov29_02353518: + .byte 0x00, 0x00, 0x00, 0x00 + .global ov29_0235351C +ov29_0235351C: + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .global ov29_02353524 +ov29_02353524: + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .global ov29_0235352C +ov29_0235352C: + .byte 0x00, 0x00, 0x00, 0x00 + .global ov29_02353530 +ov29_02353530: + .byte 0x00, 0x00, 0x00, 0x00 + .global ov29_02353534 +ov29_02353534: + .byte 0x00, 0x00, 0x00, 0x00 + .global DUNGEON_PTR +DUNGEON_PTR: + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .global ov29_02353540 +ov29_02353540: + .byte 0x00, 0x00, 0x00, 0x00 + .global ov29_02353544 +ov29_02353544: + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .global ov29_0235354C +ov29_0235354C: + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .global TOP_SCREEN_STATUS_PTR +TOP_SCREEN_STATUS_PTR: + .byte 0x00, 0x00, 0x00, 0x00 + .global ov29_02353558 +ov29_02353558: + .byte 0x00, 0x00, 0x00, 0x00 + .global LEADER_PTR +LEADER_PTR: + .byte 0x00, 0x00, 0x00, 0x00 + .global ov29_02353560 +ov29_02353560: + .byte 0x00, 0x00 + .global ov29_02353562 +ov29_02353562: + .byte 0x00 + .global ov29_02353563 +ov29_02353563: + .byte 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .global DUNGEON_PRNG_STATE +DUNGEON_PRNG_STATE: + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 + .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .global DUNGEON_PRNG_STATE_SECONDARY_VALUES +DUNGEON_PRNG_STATE_SECONDARY_VALUES: + .byte 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 + .byte 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 + .global ov29_02353598 +ov29_02353598: + .byte 0x00, 0x00, 0x00, 0x00 + .global ov29_0235359C +ov29_0235359C: + .byte 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00 + .global ov29_023535A4 +ov29_023535A4: + .byte 0xFE, 0x00, 0x00, 0x00 + .global ov29_023535A8 +ov29_023535A8: + .byte 0x00, 0x00, 0x00, 0x00 + .global LOADED_ATTACK_SPRITE_FILE_INDEX +LOADED_ATTACK_SPRITE_FILE_INDEX: + .byte 0xFF, 0xFF, 0xFF, 0xFF + .global EXCL_ITEM_EFFECTS_WEATHER_ATK_SPEED_BOOST +EXCL_ITEM_EFFECTS_WEATHER_ATK_SPEED_BOOST: + .byte 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x00 + .global EXCL_ITEM_EFFECTS_WEATHER_MOVE_SPEED_BOOST +EXCL_ITEM_EFFECTS_WEATHER_MOVE_SPEED_BOOST: + .byte 0x2F, 0x30, 0x31, 0x32 + .byte 0x33, 0x34, 0x35, 0x00 + .global EXCL_ITEM_EFFECTS_WEATHER_NO_STATUS +EXCL_ITEM_EFFECTS_WEATHER_NO_STATUS: + .byte 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x00 + .global ov29_023535C8 +ov29_023535C8: + .word ov29_023527E0 + .word ov29_023527E8 + .word ov29_023527E4 + .global ov29_023535D4 +ov29_023535D4: + .byte 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .global ov29_023535DC +ov29_023535DC: + .byte 0x0C, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00 + .word ov29_0230D738 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x0D, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00 + .word ov29_0230D738 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00 + .word ov29_0230D738 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x0F, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00 + .word ov29_0230D738 + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x12, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00 + .word ov29_0230D76C + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x14, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 + .word ov29_0230D70C + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00 + .word ov29_0230D70C + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x11, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 + .word ov29_0230D70C + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00 + .word ov29_0230D70C + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x15, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 + .word ov29_0230D70C + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x16, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00 + .word ov29_0230D70C + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x17, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00 + .word ov29_0230D70C + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x18, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00 + .word ov29_0230D70C + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00 + .word ov29_0230D70C + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00 + .word ov29_0230D70C + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00 + .word ov29_0230D70C + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00 + .word ov29_0230D70C + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .word ov29_0230D704 + .byte 0x00, 0x00, 0x00, 0x00 diff --git a/asm/overlay_29_data_02353700.s b/asm/overlay_29_data_02353700.s new file mode 100644 index 00000000..f75b4116 --- /dev/null +++ b/asm/overlay_29_data_02353700.s @@ -0,0 +1,126 @@ + .include "asm/macros.inc" + .include "overlay_29_data_02353700.inc" + + .data + ; Should be in dungeon_ai_items.c, but not sure how to mark it as .data rather than .rodata or .bss. + .global AI_THROWN_ITEM_ACTION_CHOICE_COUNT +AI_THROWN_ITEM_ACTION_CHOICE_COUNT: + .byte 0x00, 0x00, 0x00, 0x00 + .global ov29_02353700 +ov29_02353700: + .byte 0x28, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00 + .global ov29_0235370C +ov29_0235370C: + .byte 0x00, 0x00, 0x00, 0x00 + .global EXCL_ITEM_EFFECTS_EVASION_BOOST +EXCL_ITEM_EFFECTS_EVASION_BOOST: + .byte 0x3D, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x00 + .global ov29_02353718 +ov29_02353718: + .byte 0x00, 0x00, 0x00, 0x00 +#if defined(EUROPE) + .byte 0xEF, 0x03, 0xF0, 0x03 + .byte 0xF1, 0x03, 0xF2, 0x03 + .byte 0xF3, 0x03 + .global ov29_02353720 +ov29_02353720: + .byte 0xF5, 0x03 + .byte 0xF7, 0x03, 0xF9, 0x03 + .byte 0xFB, 0x03, 0xFD, 0x03 + .global ov29_0235371C +ov29_0235371C: + .byte 0xF4, 0x03, 0xF6, 0x03 + .byte 0xF8, 0x03, 0xFA, 0x03 + .byte 0xFC, 0x03, 0x00, 0x00 +#elif !defined(JAPAN) + .global ov29_0235371C +ov29_0235371C: + .byte 0xF4, 0x03, 0xF4, 0x03 + .global ov29_02353720 +ov29_02353720: + .byte 0xF5, 0x03, 0xF5, 0x03 +#endif + .global DEFAULT_TILE +DEFAULT_TILE: + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .global ov29_0235372C +ov29_0235372C: + .byte 0x00, 0x00, 0x00, 0x00 + .global ov29_02353730 +ov29_02353730: + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .global ov29_0235376C +ov29_0235376C: + .byte 0x00, 0x00, 0x64, 0x00, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .global ov29_0235377C +ov29_0235377C: + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .global ov29_02353784 +ov29_02353784: + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .global HIDDEN_STAIRS_SPAWN_BLOCKED +HIDDEN_STAIRS_SPAWN_BLOCKED: + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .global FIXED_ROOM_DATA_PTR +FIXED_ROOM_DATA_PTR: + .byte 0x00, 0x00, 0x00, 0x00 + .global ov29_02353798 +ov29_02353798: + .byte 0x00, 0x00, 0x00, 0x00 + .word ov29_02353188 + .word ov29_02353170 + .word ov29_02353128 + .word ov29_02353158 + .word ov29_02353140 + .global ov29_023537B0 +ov29_023537B0: + .byte 0x00, 0x00, 0x00, 0x00 + .global ov29_023537B4 +ov29_023537B4: + .byte 0x15, 0x00, 0x16, 0x00, 0x15, 0x00, 0x16, 0x00 + .global ov29_023537BC +ov29_023537BC: + .byte 0x02, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x02 + .global ov29_023537C4 +ov29_023537C4: + .byte 0x00, 0x00, 0x00, 0x00 + .global ov29_023537C8 +ov29_023537C8: + .byte 0x00, 0x00, 0x00, 0x00 + .global ov29_023537CC +ov29_023537CC: + .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .global ov29_023537D8 +ov29_023537D8: + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .global DUNGEON_FADES_PTR +DUNGEON_FADES_PTR: + .byte 0x00, 0x00, 0x00, 0x00 + .global ov29_023537E4 +ov29_023537E4: + .byte 0x00, 0x00, 0x00, 0x00 + .global ov29_023537E8 +ov29_023537E8: + .byte 0xFA, 0x00, 0xB8, 0x04 + .byte 0xD9, 0x00, 0xB5, 0x04, 0xDB, 0x00, 0xB6, 0x04, 0xDC, 0x00, 0xB4, 0x04, 0xDD, 0x00, 0xB7, 0x04 + .byte 0xDE, 0x00, 0xBE, 0x04, 0xDF, 0x00, 0xC0, 0x04, 0xE0, 0x00, 0xC1, 0x04, 0xE1, 0x00, 0xD2, 0x04 + .byte 0xE2, 0x00, 0xBD, 0x04, 0xEC, 0x00, 0xBF, 0x04, 0xEE, 0x00, 0xC5, 0x04, 0xEF, 0x00, 0xC2, 0x04 + .byte 0xF0, 0x00, 0xC3, 0x04, 0xE3, 0x00, 0xC4, 0x04, 0xF1, 0x00, 0x00, 0x00, 0xF2, 0x00, 0x00, 0x00 + .byte 0xF3, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00 + .global ov29_02353834 +ov29_02353834: + .byte 0x00, 0x00, 0x00, 0x00 + .global ov29_02353838 +ov29_02353838: + .byte 0x00, 0x00, 0x00, 0x00 + .global ov29_0235383C +ov29_0235383C: + .byte 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00 + .global ov29_02353848 +ov29_02353848: + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 diff --git a/asm/overlay_29_02352A54.s b/asm/overlay_29_rodata_0234FD04.s similarity index 99% rename from asm/overlay_29_02352A54.s rename to asm/overlay_29_rodata_0234FD04.s index 1e51ee39..866e7d11 100644 --- a/asm/overlay_29_02352A54.s +++ b/asm/overlay_29_rodata_0234FD04.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "overlay_29_02352A54.inc" + .include "overlay_29_rodata_0234FD04.inc" .rodata .global ov29_0234FD04 diff --git a/asm/overlay_29_0238280C.s b/asm/overlay_29_rodata_02352A6C.s similarity index 69% rename from asm/overlay_29_0238280C.s rename to asm/overlay_29_rodata_02352A6C.s index f45576b7..b8073035 100644 --- a/asm/overlay_29_0238280C.s +++ b/asm/overlay_29_rodata_02352A6C.s @@ -1,5 +1,5 @@ .include "asm/macros.inc" - .include "overlay_29_0238280C.inc" + .include "overlay_29_rodata_02352A6C.inc" .rodata .global ov29_02352A6C @@ -818,561 +818,3 @@ ov29_02353474: ov29_023534B4: .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x11, 0x1C, 0x05 .byte 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .data - .global ov29_023534E0 -ov29_023534E0: - .word ov29_0234FD6C - .word ov29_0234FD28 - .global ov29_023534E8 -ov29_023534E8: - .word ov29_0234FD58 - .word ov29_0234FD38 - .global ov29_023534F0 -ov29_023534F0: - .word ov29_0234FDB8 - .word ov29_0234FDC8 - .word ov29_0234FDC0 - .word ov29_0234FD88 - .word ov29_0234FDB0 - .word ov29_0234FD98 - .word ov29_0234FDA0 - .word ov29_0234FDA8 - .word ov29_0234FD90 - .word ov29_0234FD80 - .global ov29_02353518 -ov29_02353518: - .byte 0x00, 0x00, 0x00, 0x00 - .global ov29_0235351C -ov29_0235351C: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .global ov29_02353524 -ov29_02353524: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .global ov29_0235352C -ov29_0235352C: - .byte 0x00, 0x00, 0x00, 0x00 - .global ov29_02353530 -ov29_02353530: - .byte 0x00, 0x00, 0x00, 0x00 - .global ov29_02353534 -ov29_02353534: - .byte 0x00, 0x00, 0x00, 0x00 - .global DUNGEON_PTR -DUNGEON_PTR: - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .global ov29_02353540 -ov29_02353540: - .byte 0x00, 0x00, 0x00, 0x00 - .global ov29_02353544 -ov29_02353544: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .global ov29_0235354C -ov29_0235354C: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .global TOP_SCREEN_STATUS_PTR -TOP_SCREEN_STATUS_PTR: - .byte 0x00, 0x00, 0x00, 0x00 - .global ov29_02353558 -ov29_02353558: - .byte 0x00, 0x00, 0x00, 0x00 - .global LEADER_PTR -LEADER_PTR: - .byte 0x00, 0x00, 0x00, 0x00 - .global ov29_02353560 -ov29_02353560: - .byte 0x00, 0x00 - .global ov29_02353562 -ov29_02353562: - .byte 0x00 - .global ov29_02353563 -ov29_02353563: - .byte 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .global DUNGEON_PRNG_STATE -DUNGEON_PRNG_STATE: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .global DUNGEON_PRNG_STATE_SECONDARY_VALUES -DUNGEON_PRNG_STATE_SECONDARY_VALUES: - .byte 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .global ov29_02353598 -ov29_02353598: - .byte 0x00, 0x00, 0x00, 0x00 - .global ov29_0235359C -ov29_0235359C: - .byte 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00 - .global ov29_023535A4 -ov29_023535A4: - .byte 0xFE, 0x00, 0x00, 0x00 - .global ov29_023535A8 -ov29_023535A8: - .byte 0x00, 0x00, 0x00, 0x00 - .global LOADED_ATTACK_SPRITE_FILE_INDEX -LOADED_ATTACK_SPRITE_FILE_INDEX: - .byte 0xFF, 0xFF, 0xFF, 0xFF - .global EXCL_ITEM_EFFECTS_WEATHER_ATK_SPEED_BOOST -EXCL_ITEM_EFFECTS_WEATHER_ATK_SPEED_BOOST: - .byte 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x00 - .global EXCL_ITEM_EFFECTS_WEATHER_MOVE_SPEED_BOOST -EXCL_ITEM_EFFECTS_WEATHER_MOVE_SPEED_BOOST: - .byte 0x2F, 0x30, 0x31, 0x32 - .byte 0x33, 0x34, 0x35, 0x00 - .global EXCL_ITEM_EFFECTS_WEATHER_NO_STATUS -EXCL_ITEM_EFFECTS_WEATHER_NO_STATUS: - .byte 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x00 - .global ov29_023535C8 -ov29_023535C8: - .word ov29_023527E0 - .word ov29_023527E8 - .word ov29_023527E4 - .global ov29_023535D4 -ov29_023535D4: - .byte 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .global ov29_023535DC -ov29_023535DC: - .byte 0x0C, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00 - .word ov29_0230D738 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x0D, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00 - .word ov29_0230D738 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00 - .word ov29_0230D738 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x0F, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00 - .word ov29_0230D738 - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x12, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00 - .word ov29_0230D76C - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x14, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .word ov29_0230D70C - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00 - .word ov29_0230D70C - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x11, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 - .word ov29_0230D70C - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00 - .word ov29_0230D70C - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x15, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00 - .word ov29_0230D70C - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x16, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00 - .word ov29_0230D70C - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x17, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00 - .word ov29_0230D70C - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x18, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00 - .word ov29_0230D70C - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00 - .word ov29_0230D70C - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00 - .word ov29_0230D70C - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00 - .word ov29_0230D70C - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x1D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00 - .word ov29_0230D70C - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .word ov29_0230D704 - .byte 0x00, 0x00, 0x00, 0x00 - .global AI_THROWN_ITEM_ACTION_CHOICE_COUNT -AI_THROWN_ITEM_ACTION_CHOICE_COUNT: - .byte 0x00, 0x00, 0x00, 0x00 - .global ov29_02353700 -ov29_02353700: - .byte 0x28, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00 - .global ov29_0235370C -ov29_0235370C: - .byte 0x00, 0x00, 0x00, 0x00 - .global EXCL_ITEM_EFFECTS_EVASION_BOOST -EXCL_ITEM_EFFECTS_EVASION_BOOST: - .byte 0x3D, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x00 - .global ov29_02353718 -ov29_02353718: - .byte 0x00, 0x00, 0x00, 0x00 -#if defined(EUROPE) - .byte 0xEF, 0x03, 0xF0, 0x03 - .byte 0xF1, 0x03, 0xF2, 0x03 - .byte 0xF3, 0x03 - .global ov29_02353720 -ov29_02353720: - .byte 0xF5, 0x03 - .byte 0xF7, 0x03, 0xF9, 0x03 - .byte 0xFB, 0x03, 0xFD, 0x03 - .global ov29_0235371C -ov29_0235371C: - .byte 0xF4, 0x03, 0xF6, 0x03 - .byte 0xF8, 0x03, 0xFA, 0x03 - .byte 0xFC, 0x03, 0x00, 0x00 -#elif !defined(JAPAN) - .global ov29_0235371C -ov29_0235371C: - .byte 0xF4, 0x03, 0xF4, 0x03 - .global ov29_02353720 -ov29_02353720: - .byte 0xF5, 0x03, 0xF5, 0x03 -#endif - .global DEFAULT_TILE -DEFAULT_TILE: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .global ov29_0235372C -ov29_0235372C: - .byte 0x00, 0x00, 0x00, 0x00 - .global ov29_02353730 -ov29_02353730: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .global ov29_0235376C -ov29_0235376C: - .byte 0x00, 0x00, 0x64, 0x00, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .global ov29_0235377C -ov29_0235377C: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .global ov29_02353784 -ov29_02353784: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .global HIDDEN_STAIRS_SPAWN_BLOCKED -HIDDEN_STAIRS_SPAWN_BLOCKED: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .global FIXED_ROOM_DATA_PTR -FIXED_ROOM_DATA_PTR: - .byte 0x00, 0x00, 0x00, 0x00 - .global ov29_02353798 -ov29_02353798: - .byte 0x00, 0x00, 0x00, 0x00 - .word ov29_02353188 - .word ov29_02353170 - .word ov29_02353128 - .word ov29_02353158 - .word ov29_02353140 - .global ov29_023537B0 -ov29_023537B0: - .byte 0x00, 0x00, 0x00, 0x00 - .global ov29_023537B4 -ov29_023537B4: - .byte 0x15, 0x00, 0x16, 0x00, 0x15, 0x00, 0x16, 0x00 - .global ov29_023537BC -ov29_023537BC: - .byte 0x02, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x02 - .global ov29_023537C4 -ov29_023537C4: - .byte 0x00, 0x00, 0x00, 0x00 - .global ov29_023537C8 -ov29_023537C8: - .byte 0x00, 0x00, 0x00, 0x00 - .global ov29_023537CC -ov29_023537CC: - .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .global ov29_023537D8 -ov29_023537D8: - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .global DUNGEON_FADES_PTR -DUNGEON_FADES_PTR: - .byte 0x00, 0x00, 0x00, 0x00 - .global ov29_023537E4 -ov29_023537E4: - .byte 0x00, 0x00, 0x00, 0x00 - .global ov29_023537E8 -ov29_023537E8: - .byte 0xFA, 0x00, 0xB8, 0x04 - .byte 0xD9, 0x00, 0xB5, 0x04, 0xDB, 0x00, 0xB6, 0x04, 0xDC, 0x00, 0xB4, 0x04, 0xDD, 0x00, 0xB7, 0x04 - .byte 0xDE, 0x00, 0xBE, 0x04, 0xDF, 0x00, 0xC0, 0x04, 0xE0, 0x00, 0xC1, 0x04, 0xE1, 0x00, 0xD2, 0x04 - .byte 0xE2, 0x00, 0xBD, 0x04, 0xEC, 0x00, 0xBF, 0x04, 0xEE, 0x00, 0xC5, 0x04, 0xEF, 0x00, 0xC2, 0x04 - .byte 0xF0, 0x00, 0xC3, 0x04, 0xE3, 0x00, 0xC4, 0x04, 0xF1, 0x00, 0x00, 0x00, 0xF2, 0x00, 0x00, 0x00 - .byte 0xF3, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00 - .global ov29_02353834 -ov29_02353834: - .byte 0x00, 0x00, 0x00, 0x00 - .global ov29_02353838 -ov29_02353838: - .byte 0x00, 0x00, 0x00, 0x00 - .global ov29_0235383C -ov29_0235383C: - .byte 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00 - .global ov29_02353848 -ov29_02353848: - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .bss -#ifndef EUROPE - .global ov29_02353860 -ov29_02353860: - .space 0x20 -#endif - .global ov29_02353880 -ov29_02353880: - .space 0x34 - .global ov29_023538B4 -ov29_023538B4: - .space 0x1963C - .global ov29_0236CEF0 -ov29_0236CEF0: - .space 0x6FC - .global ov29_0236D5EC -ov29_0236D5EC: - .space 0x6000 - .global ov29_023735EC -ov29_023735EC: - .space 0x4 - .global ov29_023735F0 -ov29_023735F0: - .space 0x4 - .global ov29_023735F4 -ov29_023735F4: - .space 0x4 - .global ov29_023735F8 -ov29_023735F8: - .space 0x4 - .global ov29_023735FC -ov29_023735FC: - .space 0x10 - .global ov29_0237360C -ov29_0237360C: - .space 0x80 - .global ov29_0237368C -ov29_0237368C: - .space 0x4 - .global ov29_02373690 -ov29_02373690: - .space 0x9000 - .global ov29_0237C690 -ov29_0237C690: - .space 0x4 - .global ov29_0237C694 -ov29_0237C694: - .space 0x2 - .global ov29_0237C696 -ov29_0237C696: - .space 0x2 - .global ov29_0237C698 -ov29_0237C698: - .space 0xC - .global ov29_0237C6A4 -ov29_0237C6A4: - .space 0x14 - .global ov29_0237C6B8 -ov29_0237C6B8: - .space 0x1C - .global ov29_0237C6D4 -ov29_0237C6D4: - .space 0x40 - .global ov29_0237C714 -ov29_0237C714: - .space 0x40 - .global ov29_0237C754 -ov29_0237C754: - .space 0x48 - .global ov29_0237C79C -ov29_0237C79C: - .space 0xB0 - .global ov29_0237C84C -ov29_0237C84C: - .space 0x4 - .global ov29_0237C850 -ov29_0237C850: - .space 0x14 - .global ov29_0237C864 -ov29_0237C864: - .space 0x24 - .global ov29_0237C888 -ov29_0237C888: - .space 0x2 - .global ov29_0237C88A -ov29_0237C88A: - .space 0x4 - .global ov29_0237C88E -ov29_0237C88E: - .space 0x2 - .global ov29_0237C890 -ov29_0237C890: - .space 0x2 - .global ov29_0237C892 -ov29_0237C892: - .space 0x86 - .global ov29_0237C918 -ov29_0237C918: - .space 0x4 - .global ov29_0237C91C -ov29_0237C91C: - .space 0x2 - .global ov29_0237C91E -ov29_0237C91E: - .space 0x2 - .global ov29_0237C920 -ov29_0237C920: - .space 0x2 - .global ov29_0237C922 -ov29_0237C922: - .space 0x4A - .global ov29_0237C96C -ov29_0237C96C: - .space 0x8 - .global ov29_0237C974 -ov29_0237C974: - .space 0x28 - .global ov29_0237C99C -ov29_0237C99C: - .space 0x4 - .global ov29_0237C9A0 -ov29_0237C9A0: - .space 0x4 - .global ov29_0237C9A4 -ov29_0237C9A4: - .space 0x8 - .global ov29_0237C9AC -ov29_0237C9AC: - .space 0x4 - .global ov29_0237C9B0 -ov29_0237C9B0: - .space 0x8 - .global ov29_0237C9B8 -ov29_0237C9B8: - .space 0x8 - .global ov29_0237C9C0 -ov29_0237C9C0: - .space 0x1 - .global ov29_0237C9C1 -ov29_0237C9C1: - .space 0x3 - .global ov29_0237C9C4 -ov29_0237C9C4: - .space 0x1 - .global ov29_0237C9C5 -ov29_0237C9C5: - .space 0x3 - .global ov29_0237C9C8 -ov29_0237C9C8: - .space 0x1 - .global ov29_0237C9C9 -ov29_0237C9C9: - .space 0x3 - .global ov29_0237C9CC -ov29_0237C9CC: - .space 0x4 - .global ov29_0237C9D0 -ov29_0237C9D0: - .space 0x8 - .global ov29_0237C9D8 -ov29_0237C9D8: - .space 0x20 - .global ov29_0237C9F8 -ov29_0237C9F8: - .space 0x20 - .global ov29_0237CA18 -ov29_0237CA18: - .space 0x8 - .global ov29_0237CA20 -ov29_0237CA20: - .space 0x8 - .global ov29_0237CA28 -ov29_0237CA28: - .space 0x20 - .global ov29_0237CA48 -ov29_0237CA48: - .space 0x20 - .global ov29_0237CA68 -ov29_0237CA68: - .space 0x1 - .global ov29_0237CA69 -ov29_0237CA69: - .space 0x1 - .global ov29_0237CA6A -ov29_0237CA6A: - .space 0x1 - .global ov29_0237CA6B -ov29_0237CA6B: - .space 0x1 - .global ov29_0237CA6C -ov29_0237CA6C: - .space 0x1 - .global ov29_0237CA6D -ov29_0237CA6D: - .space 0x3 - .global ov29_0237CA70 -ov29_0237CA70: - .space 0x4 - .global ov29_0237CA74 -ov29_0237CA74: - .space 0x4 - .global ov29_0237CA78 -ov29_0237CA78: - .space 0x4 - .global ov29_0237CA7C -ov29_0237CA7C: - .space 0x4 - .global ov29_0237CA80 -ov29_0237CA80: - .space 0x4 - .global ov29_0237CA84 -ov29_0237CA84: - .space 0x4 - .global ov29_0237CA88 -ov29_0237CA88: - .space 0x4 - .global ov29_0237CA8C -ov29_0237CA8C: - .space 0x4 - .global ov29_0237CA90 -ov29_0237CA90: - .space 0x6 - .global ov29_0237CA96 -ov29_0237CA96: - .space 0xA - .global ov29_0237CAA0 -ov29_0237CAA0: - .space 0xC - .global ov29_0237CAAC -ov29_0237CAAC: - .space 0xC - .global ov29_0237CAB8 -ov29_0237CAB8: - .space 0x14 - .global ov29_0237CACC -ov29_0237CACC: - .space 0x274 - .global ov29_0237CD40 -ov29_0237CD40: - .space 0x278 - .global ov29_0237CFB8 -ov29_0237CFB8: - .space 0x3 - .global ov29_0237CFBB -ov29_0237CFBB: - .space 0x1 - .global ov29_0237CFBC -ov29_0237CFBC: - .space 0x4 - .global ov29_0237CFC0 -ov29_0237CFC0: - .space 0x3C - .global ov29_0237CFFC -ov29_0237CFFC: - .space 0x4 - .global ov29_0237D000 -ov29_0237D000: - .space 0x5800 - .global ov29_02382800 -ov29_02382800: - .space 0x4 - .global ov29_02382804 -ov29_02382804: - .space 0x8 - .global ov29_0238280C -ov29_0238280C: - .space 0x14 diff --git a/include/dg_random.h b/include/dg_random.h index 3f9b77a8..f3ee8ea5 100644 --- a/include/dg_random.h +++ b/include/dg_random.h @@ -1,16 +1,18 @@ #ifndef PMDSKY_DG_RANDOM_H #define PMDSKY_DG_RANDOM_H +#include "util.h" + s32 DungeonRandInt(s32 end); s32 DungeonRandRange(s32 from, s32 to); // Returns the result of a possibly biased coin flip (a Bernoulli random variable) with some success probability p, using the dungeon PRNG. // percentChance: success percentage (100*p) // return: true with probability p, false with probability (1-p) -u8 DungeonRandOutcome__022EAB20(s32 percentChance); +bool8 DungeonRandOutcome__022EAB20(s32 percentChance); // Returns the result of a possibly biased coin flip (a Bernoulli random variable) with some success probability p, using the dungeon PRNG. // percentChance: success percentage (100*p) // return: true with probability p, false with probability (1-p) -u8 DungeonRandOutcome__022EAB50(s32 percentChance); +bool8 DungeonRandOutcome__022EAB50(s32 percentChance); #endif //PMDSKY_DG_RANDOM_H diff --git a/include/direction.h b/include/direction.h new file mode 100644 index 00000000..1f87c0b5 --- /dev/null +++ b/include/direction.h @@ -0,0 +1,21 @@ +#ifndef PMDSKY_DIRECTION_H +#define PMDSKY_DIRECTION_H + +// Direction on the dungeon grid +enum direction_id { + DIR_NONE = -1, + DIR_DOWN = 0, + DIR_DOWN_RIGHT = 1, + DIR_RIGHT = 2, + DIR_UP_RIGHT = 3, + DIR_UP = 4, + DIR_UP_LEFT = 5, + DIR_LEFT = 6, + DIR_DOWN_LEFT = 7, + DIR_CURRENT = 8, // Current direction of an entity. Used as a special value in some functions +}; + +#define DIRECTION_MASK 7 +#define NUM_DIRECTIONS 8 + +#endif //PMDSKY_DIRECTION_H \ No newline at end of file diff --git a/include/dungeon.h b/include/dungeon.h index 2046ad5c..e02fc462 100644 --- a/include/dungeon.h +++ b/include/dungeon.h @@ -1,8 +1,9 @@ #ifndef HEADERS_TYPES_DUNGEON_MODE_DUNGEON_H_ #define HEADERS_TYPES_DUNGEON_MODE_DUNGEON_H_ -#include "enums.h" #include "dungeon_mode.h" +#include "enums.h" +#include "item.h" #define MAX_TEAM_MEMBERS 4 #define DUNGEON_MAX_POKEMON 20 diff --git a/include/dungeon_ai_items.h b/include/dungeon_ai_items.h new file mode 100644 index 00000000..bf01382b --- /dev/null +++ b/include/dungeon_ai_items.h @@ -0,0 +1,11 @@ +#ifndef PMDSKY_DUNGEON_AI_ITEMS_H +#define PMDSKY_DUNGEON_AI_ITEMS_H + +#include "dungeon_mode.h" + +// Checks if an entity pointer points to a valid entity (not entity type 0, which represents no entity). +bool8 EntityIsValid__0230E8F0(struct entity *entity); +// Decides whether or not an AI should use its held item and updates its action_data fields accordingly. +void AiDecideUseItem(struct entity *pokemon); + +#endif //PMDSKY_DUNGEON_AI_ITEMS_H diff --git a/include/dungeon_mode.h b/include/dungeon_mode.h index cd238ed6..7b42e4c9 100644 --- a/include/dungeon_mode.h +++ b/include/dungeon_mode.h @@ -1,10 +1,12 @@ #ifndef PMDSKY_DUNGEON_MODE_H #define PMDSKY_DUNGEON_MODE_H -#include "util.h" -#include "enums.h" -#include "graphics.h" +#include "direction.h" #include "dungeon_mode_common.h" +#include "enums.h" +#include "item.h" +#include "graphics.h" +#include "util.h" // Used in various contexts, like with entity positions in the dungeon struct position { @@ -19,31 +21,6 @@ struct pixel_position { u32 y; }; -// Item info -struct item { - // 0x0: flags: 1-byte bitfield - //u8 flags; - bool8 f_exists : 1; // Validity flag - bool8 f_in_shop : 1; // In a Kecleon Shop - bool8 f_unpaid : 1; // Picked up from a Kecleon Shop but not paid for yet - bool8 f_sticky : 1; // Sticky - bool8 f_set : 1; // Usable by L+R - bool8 flag_unk5 : 1; - // For stolen items to recover from outlaws (has red X)? Could be for other items for other - // types of missions? (Uncertain) - bool8 f_unk_mission_item1 : 1; - // For stolen items to recover from outlaws (has red X)? Could be for other items for other - // types of missions? (Uncertain) Definitely used temporarily when sorting the items in - // storage. - bool8 f_unk_mission_item2 : 1; - // 0x1: For bag items. 0 for none, 1 if held by the leader, 2 for the second party member, etc. - u8 held_by; - // 0x2: Only for stackable items. Will be 0 if unapplicable. For Poké, this is an "amount code" - // rather than the literal amount (see MONEY_QUANTITY_TABLE) - u16 quantity; - enum item_id id; // 0x4 -}; - // Monster stat modifier info struct monster_stat_modifiers { // Stages go from 0-20 inclusive, with normal being 10 @@ -125,8 +102,8 @@ struct action_data { enum direction_id direction; // 0x2: Direction in which the action will be performed u8 field_0x3; struct action_parameter action_parameters[2]; // 0x4: Parameters for the action - s16 field_0x10; - s16 field_0x12; + // 0x10: Position of the target that the Pokémon wants throw an item at. + struct position item_target_position; }; struct sleep_class_status { diff --git a/include/dungeon_mode_common.h b/include/dungeon_mode_common.h index 743697e3..bc67a625 100644 --- a/include/dungeon_mode_common.h +++ b/include/dungeon_mode_common.h @@ -5,31 +5,31 @@ // Monster move info struct move { - // 0x0: flags0: 1-byte bitfield - u8 flags0; - /* bool8 f_exists : 1; // This move will show up in the move list */ - /* bool8 f_subsequent_in_link_chain : 1; // This move is in a link chain, but not the first move */ - /* bool8 f_enabled_for_ai : 1; // AI can use this move */ - /* bool8 f_set : 1; // Usable by L+A */ - /* bool8 f_last_used : 1; // This move was the last one used (for things like Torment?) */ - /* bool8 f_disabled : 1; // For Torment (and maybe others) */ - /* u8 flags0_unk6 : 2; */ + // 0x0: flags: 1-byte bitfield + u8 flags; + // bool8 f_exists : 1; // This move will show up in the move list + // bool8 f_subsequent_in_link_chain : 1; // This move is in a link chain, but not the first move + // bool8 f_enabled_for_ai : 1; // AI can use this move + // bool8 f_set : 1; // Usable by L+A + // bool8 f_last_used : 1; // This move was the last one used (for things like Torment?) + // bool8 f_disabled : 1; // For Torment (and maybe others) + // u8 flags_unk6 : 2; u8 field_0x1; // 0x2: flags2: 2-byte bitfield u16 flags2; - /* bool8 f_sealed : 1; // Sealed by a Seal Trap. Also prevents AI from using this move */ - /* u16 flags2_unk1 : 2; */ - /* bool8 f_consume_pp : 1; // This move will consume PP this turn */ - /* bool8 f_consume_2_pp : 1; // Consume 2 PP this turn. No effect unless f_consume_pp is set */ - /* u16 flags2_unk5 : 1; */ - /* // Consume 4 PP this turn. No effect unless f_consume_pp is set, overrides f_consume_2_pp */ - /* bool8 f_consume_4_pp : 1; */ - /* u16 flags2_unk7 : 1; */ - /* u16 flags2_unk8 : 1; */ - /* bool8 f_exclusive_item_pp_boost : 1; // A PP-boosting exclusive item is in effect */ - /* u16 flags3_unk10 : 6; */ + // bool8 f_sealed : 1; // Sealed by a Seal Trap. Also prevents AI from using this move + // u16 flags2_unk1 : 2; + // bool8 f_consume_pp : 1; // This move will consume PP this turn + // bool8 f_consume_2_pp : 1; // Consume 2 PP this turn. No effect unless f_consume_pp is set + // u16 flags2_unk5 : 1; + // // Consume 4 PP this turn. No effect unless f_consume_pp is set, overrides f_consume_2_pp + // bool8 f_consume_4_pp : 1; + // u16 flags2_unk7 : 1; + // u16 flags2_unk8 : 1; + // bool8 f_exclusive_item_pp_boost : 1; // A PP-boosting exclusive item is in effect + // u16 flags3_unk10 : 6; enum move_id id : 16; // 0x4 u8 pp; // 0x6: Current PP diff --git a/include/dungeon_util.h b/include/dungeon_util.h index bb51185a..fb2070b0 100644 --- a/include/dungeon_util.h +++ b/include/dungeon_util.h @@ -1,11 +1,8 @@ #ifndef PMDSKY_DUNGEON_UTIL_H #define PMDSKY_DUNGEON_UTIL_H -#include "dungeon.h" +#include "dungeon_mode.h" -static inline struct monster *GetEntInfo(struct entity *ent) -{ - return ent->info; -} +bool8 ShouldRunMonsterAi(struct entity *pokemon); -#endif // PMDSKY_DUNGEON_UTIL_H \ No newline at end of file +#endif //PMDSKY_DUNGEON_UTIL_H diff --git a/include/dungeon_util_1.h b/include/dungeon_util_1.h deleted file mode 100644 index 85b71f3a..00000000 --- a/include/dungeon_util_1.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef PMDSKY_DUNGEON_UTIL_1_H -#define PMDSKY_DUNGEON_UTIL_1_H - -#include "dungeon_mode.h" - -bool8 ShouldRunMonsterAi(struct entity *pokemon); - -#endif //PMDSKY_DUNGEON_UTIL_1_H diff --git a/include/dungeon_util_static.h b/include/dungeon_util_static.h new file mode 100644 index 00000000..3147cd66 --- /dev/null +++ b/include/dungeon_util_static.h @@ -0,0 +1,22 @@ +#ifndef PMDSKY_DUNGEON_UTIL_STATIC_H +#define PMDSKY_DUNGEON_UTIL_STATIC_H + +#include "dungeon.h" + +static inline struct monster *GetEntInfo(struct entity *ent) +{ + return ent->info; +} + +static inline bool8 ItemSticky(u8 flags) +{ + // Double bang is needed to match for some reason. + return !!(flags & ITEM_FLAG_STICKY); +} + +static inline bool8 ItemExists(u8 flags) +{ + return !!(flags & ITEM_FLAG_EXISTS); +} + +#endif // PMDSKY_DUNGEON_UTIL_STATIC_H \ No newline at end of file diff --git a/include/enums.h b/include/enums.h index 8d8195a8..7d5f5e12 100644 --- a/include/enums.h +++ b/include/enums.h @@ -1,20 +1,6 @@ #ifndef PMDSKY_ENUMS_H #define PMDSKY_ENUMS_H -// Direction on the dungeon grid -enum direction_id { - DIR_NONE = -1, - DIR_DOWN = 0, - DIR_DOWN_RIGHT = 1, - DIR_RIGHT = 2, - DIR_UP_RIGHT = 3, - DIR_UP = 4, - DIR_UP_LEFT = 5, - DIR_LEFT = 6, - DIR_DOWN_LEFT = 7, - DIR_CURRENT = 8, // Current direction of an entity. Used as a special value in some functions -}; - // Terrain type for a tile enum terrain_type { TERRAIN_WALL = 0, @@ -52,1411 +38,6 @@ enum ai_objective { AI_TAKE_ITEM = 7, }; -// Item ID -enum item_id { - ITEM_NOTHING = 0, - ITEM_STICK = 1, - ITEM_IRON_THORN = 2, - ITEM_SILVER_SPIKE = 3, - ITEM_GOLD_FANG = 4, - ITEM_CACNEA_SPIKE = 5, - ITEM_CORSOLA_TWIG = 6, - ITEM_GRAVELEROCK = 7, - ITEM_GEO_PEBBLE = 8, - ITEM_GOLD_THORN = 9, - ITEM_RARE_FOSSIL = 10, - ITEM_UNNAMED_0xB = 11, - ITEM_UNNAMED_0xC = 12, - ITEM_NO_SLIP_CAP = 13, - ITEM_Y_RAY_SPECS = 14, - ITEM_GAGGLE_SPECS = 15, - ITEM_MOBILE_SCARF = 16, - ITEM_HEAL_RIBBON = 17, - ITEM_TWIST_BAND = 18, - ITEM_SCOPE_LENS = 19, - ITEM_PATSY_BAND = 20, - ITEM_NO_STICK_CAP = 21, - ITEM_PIERCE_BAND = 22, - ITEM_JOY_RIBBON = 23, - ITEM_X_RAY_SPECS = 24, - ITEM_PERSIM_BAND = 25, - ITEM_POWER_BAND = 26, - ITEM_PECHA_SCARF = 27, - ITEM_INSOMNISCOPE = 28, - ITEM_WARP_SCARF = 29, - ITEM_TIGHT_BELT = 30, - ITEM_SNEAK_SCARF = 31, - ITEM_GOLD_RIBBON = 32, - ITEM_GOGGLE_SPECS = 33, - ITEM_DIET_RIBBON = 34, - ITEM_TRAP_SCARF = 35, - ITEM_RACKET_BAND = 36, - ITEM_DEF_SCARF = 37, - ITEM_STAMINA_BAND = 38, - ITEM_PLAIN_RIBBON = 39, - ITEM_SPECIAL_BAND = 40, - ITEM_ZINC_BAND = 41, - ITEM_DETECT_BAND = 42, - ITEM_SPACE_GLOBE = 43, - ITEM_DODGE_SCARF = 44, - ITEM_BOUNCE_BAND = 45, - ITEM_CURVE_BAND = 46, - ITEM_WHIFF_SPECS = 47, - ITEM_NO_AIM_SCOPE = 48, - ITEM_LOCKON_SPECS = 49, - ITEM_MUNCH_BELT = 50, - ITEM_PASS_SCARF = 51, - ITEM_WEATHER_BAND = 52, - ITEM_FRIEND_BOW = 53, - ITEM_BEAUTY_SCARF = 54, - ITEM_SUN_RIBBON = 55, - ITEM_LUNAR_RIBBON = 56, - ITEM_GOLDEN_MASK = 57, - ITEM_AMBER_TEAR = 58, - ITEM_ICY_FLUTE = 59, - ITEM_FIERY_DRUM = 60, - ITEM_TERRA_CYMBAL = 61, - ITEM_AQUA_MONICA = 62, - ITEM_ROCK_HORN = 63, - ITEM_GRASS_CORNET = 64, - ITEM_SKY_MELODICA = 65, - ITEM_MIRACLE_CHEST = 66, - ITEM_WONDER_CHEST = 67, - ITEM_IQ_BOOSTER = 68, - ITEM_HEAL_SEED = 69, - ITEM_ORAN_BERRY = 70, - ITEM_SITRUS_BERRY = 71, - ITEM_EYEDROP_SEED = 72, - ITEM_REVIVER_SEED = 73, - ITEM_BLINKER_SEED = 74, - ITEM_DOOM_SEED = 75, - ITEM_X_EYE_SEED = 76, - ITEM_LIFE_SEED = 77, - ITEM_RAWST_BERRY = 78, - ITEM_HUNGER_SEED = 79, - ITEM_QUICK_SEED = 80, - ITEM_PECHA_BERRY = 81, - ITEM_CHERI_BERRY = 82, - ITEM_TOTTER_SEED = 83, - ITEM_SLEEP_SEED = 84, - ITEM_PLAIN_SEED = 85, - ITEM_WARP_SEED = 86, - ITEM_BLAST_SEED = 87, - ITEM_GINSENG = 88, - ITEM_JOY_SEED = 89, - ITEM_CHESTO_BERRY = 90, - ITEM_STUN_SEED = 91, - ITEM_GABITE_SCALE = 92, - ITEM_GOLDEN_SEED = 93, - ITEM_VILE_SEED = 94, - ITEM_PURE_SEED = 95, - ITEM_VIOLENT_SEED = 96, - ITEM_VANISH_SEED = 97, - ITEM_UNNAMED_0x62 = 98, - ITEM_MAX_ELIXIR = 99, - ITEM_PROTEIN = 100, - ITEM_CALCIUM = 101, - ITEM_IRON = 102, - ITEM_NECTAR = 103, - ITEM_DROPEYE_SEED = 104, - ITEM_REVISER_SEED = 105, - ITEM_SLIP_SEED = 106, - ITEM_VIA_SEED = 107, - ITEM_ZINC = 108, - ITEM_APPLE = 109, - ITEM_BIG_APPLE = 110, - ITEM_GRIMY_FOOD = 111, - ITEM_HUGE_APPLE = 112, - ITEM_UNNAMED_0x71 = 113, - ITEM_UNNAMED_0x72 = 114, - ITEM_GOLDEN_APPLE = 115, - ITEM_MIX_ELIXIR = 116, - ITEM_OREN_BERRY = 117, - ITEM_DOUGH_SEED = 118, - ITEM_WHITE_GUMMI = 119, - ITEM_RED_GUMMI = 120, - ITEM_BLUE_GUMMI = 121, - ITEM_GRASS_GUMMI = 122, - ITEM_YELLOW_GUMMI = 123, - ITEM_CLEAR_GUMMI = 124, - ITEM_ORANGE_GUMMI = 125, - ITEM_PINK_GUMMI = 126, - ITEM_BROWN_GUMMI = 127, - ITEM_SKY_GUMMI = 128, - ITEM_GOLD_GUMMI = 129, - ITEM_GREEN_GUMMI = 130, - ITEM_GRAY_GUMMI = 131, - ITEM_PURPLE_GUMMI = 132, - ITEM_ROYAL_GUMMI = 133, - ITEM_BLACK_GUMMI = 134, - ITEM_SILVER_GUMMI = 135, - ITEM_WONDER_GUMMI = 136, - ITEM_GRAVELYROCK = 137, - ITEM_UNNAMED_0x8A = 138, - ITEM_UPGRADE = 139, - ITEM_KINGS_ROCK = 140, - ITEM_THUNDERSTONE = 141, - ITEM_DEEPSEASCALE = 142, - ITEM_DEEPSEATOOTH = 143, - ITEM_SUN_STONE = 144, - ITEM_MOON_STONE = 145, - ITEM_FIRE_STONE = 146, - ITEM_WATER_STONE = 147, - ITEM_METAL_COAT = 148, - ITEM_LEAF_STONE = 149, - ITEM_DRAGON_SCALE = 150, - ITEM_LINK_CABLE = 151, - ITEM_DUBIOUS_DISC = 152, - ITEM_PROTECTOR = 153, - ITEM_REAPER_CLOTH = 154, - ITEM_RAZOR_FANG = 155, - ITEM_RAZOR_CLAW = 156, - ITEM_ELECTIRIZER = 157, - ITEM_MAGMARIZER = 158, - ITEM_OVAL_STONE = 159, - ITEM_DAWN_STONE = 160, - ITEM_SHINY_STONE = 161, - ITEM_DUSK_STONE = 162, - ITEM_CORONET_ROCK = 163, - ITEM_MOSSY_ROCK = 164, - ITEM_FROZEN_ROCK = 165, - ITEM_UNNAMED_0xA6 = 166, - ITEM_GONE_PEBBLE = 167, - ITEM_WANDER_GUMMI = 168, - ITEM_PRIZE_TICKET = 169, - ITEM_SILVER_TICKET = 170, - ITEM_GOLD_TICKET = 171, - ITEM_PRISM_TICKET = 172, - ITEM_MYSTERY_PART = 173, - ITEM_SECRET_SLAB = 174, - ITEM_UNNAMED_0xAF = 175, - ITEM_UNNAMED_0xB0 = 176, - ITEM_UNNAMED_0xB1 = 177, - ITEM_WONDER_EGG = 178, - ITEM_GRACIDEA = 179, - ITEM_SKY_GIFT = 180, - ITEM_UNNAMED_0xB5 = 181, - ITEM_KEY = 182, - ITEM_POKE = 183, - ITEM_UNNAMED_0xB8 = 184, - ITEM_UNNAMED_0xB9 = 185, - ITEM_LOST_LOOT = 186, - ITEM_TM_USED_TM = 187, - ITEM_TM_FOCUS_PUNCH = 188, - ITEM_TM_DRAGON_CLAW = 189, - ITEM_TM_WATER_PULSE = 190, - ITEM_TM_CALM_MIND = 191, - ITEM_TM_ROAR = 192, - ITEM_TM_TOXIC = 193, - ITEM_TM_HAIL = 194, - ITEM_TM_BULK_UP = 195, - ITEM_TM_BULLET_SEED = 196, - ITEM_TM_HIDDEN_POWER = 197, - ITEM_UNNAMED_0xC6 = 198, - ITEM_TM_TAUNT = 199, - ITEM_TM_ICE_BEAM = 200, - ITEM_TM_BLIZZARD = 201, - ITEM_TM_HYPER_BEAM = 202, - ITEM_TM_LIGHT_SCREEN = 203, - ITEM_TM_PROTECT = 204, - ITEM_UNNAMED_0xCD = 205, - ITEM_TM_GIGA_DRAIN = 206, - ITEM_TM_SAFEGUARD = 207, - ITEM_TM_FRUSTRATION = 208, - ITEM_TM_SOLARBEAM = 209, - ITEM_TM_IRON_TAIL = 210, - ITEM_TM_THUNDERBOLT = 211, - ITEM_TM_THUNDER = 212, - ITEM_TM_EARTHQUAKE = 213, - ITEM_TM_RETURN = 214, - ITEM_TM_DIG = 215, - ITEM_TM_PSYCHIC = 216, - ITEM_TM_SHADOW_BALL = 217, - ITEM_TM_BRICK_BREAK = 218, - ITEM_UNNAMED_0xDB = 219, - ITEM_TM_REFLECT = 220, - ITEM_TM_SHOCK_WAVE = 221, - ITEM_TM_FLAMETHROWER = 222, - ITEM_TM_SLUDGE_BOMB = 223, - ITEM_UNNAMED_0xE0 = 224, - ITEM_TM_FIRE_BLAST = 225, - ITEM_UNNAMED_0xE2 = 226, - ITEM_TM_AERIAL_ACE = 227, - ITEM_TM_TORMENT = 228, - ITEM_TM_FACADE = 229, - ITEM_TM_SECRET_POWER = 230, - ITEM_TM_REST = 231, - ITEM_TM_ATTRACT = 232, - ITEM_TM_THIEF = 233, - ITEM_TM_STEEL_WING = 234, - ITEM_TM_SKILL_SWAP = 235, - ITEM_UNNAMED_0xEC = 236, - ITEM_TM_OVERHEAT = 237, - ITEM_TM_ROOST = 238, - ITEM_TM_FOCUS_BLAST = 239, - ITEM_TM_ENERGY_BALL = 240, - ITEM_TM_FALSE_SWIPE = 241, - ITEM_TM_BRINE = 242, - ITEM_TM_FLING = 243, - ITEM_TM_CHARGE_BEAM = 244, - ITEM_TM_ENDURE = 245, - ITEM_TM_DRAGON_PULSE = 246, - ITEM_TM_DRAIN_PUNCH = 247, - ITEM_TM_WILL_O_WISP = 248, - ITEM_TM_SILVER_WIND = 249, - ITEM_TM_EMBARGO = 250, - ITEM_TM_EXPLOSION = 251, - ITEM_TM_SHADOW_CLAW = 252, - ITEM_TM_PAYBACK = 253, - ITEM_TM_RECYCLE = 254, - ITEM_TM_GIGA_IMPACT = 255, - ITEM_TM_ROCK_POLISH = 256, - ITEM_TM_WIDE_SLASH = 257, - ITEM_UNNAMED_0x102 = 258, - ITEM_UNNAMED_0x103 = 259, - ITEM_TM_VACUUM_CUT = 260, - ITEM_TM_DIVE = 261, - ITEM_TM_FLASH = 262, - ITEM_TM_STONE_EDGE = 263, - ITEM_TM_AVALANCHE = 264, - ITEM_TM_THUNDER_WAVE = 265, - ITEM_TM_GYRO_BALL = 266, - ITEM_TM_SWORDS_DANCE = 267, - ITEM_TM_STEALTH_ROCK = 268, - ITEM_TM_PSYCH_UP = 269, - ITEM_TM_CAPTIVATE = 270, - ITEM_TM_DARK_PULSE = 271, - ITEM_TM_ROCK_SLIDE = 272, - ITEM_TM_X_SCISSOR = 273, - ITEM_TM_SLEEP_TALK = 274, - ITEM_TM_NATURAL_GIFT = 275, - ITEM_TM_POISON_JAB = 276, - ITEM_TM_DREAM_EATER = 277, - ITEM_TM_GRASS_KNOT = 278, - ITEM_TM_SWAGGER = 279, - ITEM_TM_PLUCK = 280, - ITEM_TM_U_TURN = 281, - ITEM_TM_SUBSTITUTE = 282, - ITEM_TM_FLASH_CANNON = 283, - ITEM_TM_TRICK_ROOM = 284, - ITEM_TM_CUT = 285, - ITEM_TM_FLY = 286, - ITEM_TM_SURF = 287, - ITEM_TM_STRENGTH = 288, - ITEM_TM_DEFOG = 289, - ITEM_TM_ROCK_SMASH = 290, - ITEM_TM_WATERFALL = 291, - ITEM_TM_ROCK_CLIMB = 292, - ITEM_UNNAMED_0x125 = 293, - ITEM_UNNAMED_0x126 = 294, - ITEM_UNNAMED_0x127 = 295, - ITEM_UNNAMED_0x128 = 296, - ITEM_UNNAMED_0x129 = 297, - ITEM_UNNAMED_0x12A = 298, - ITEM_UNNAMED_0x12B = 299, - ITEM_UNNAMED_0x12C = 300, - ITEM_HAIL_ORB = 301, - ITEM_SUNNY_ORB = 302, - ITEM_RAINY_ORB = 303, - ITEM_EVASION_ORB = 304, - ITEM_SANDY_ORB = 305, - ITEM_ROCKY_ORB = 306, - ITEM_SNATCH_ORB = 307, - ITEM_SEE_TRAP_ORB = 308, - ITEM_MUG_ORB = 309, - ITEM_REBOUND_ORB = 310, - ITEM_LOB_ORB = 311, - ITEM_SWITCHER_ORB = 312, - ITEM_BLOWBACK_ORB = 313, - ITEM_WARP_ORB = 314, - ITEM_TRANSFER_ORB = 315, - ITEM_SLOW_ORB = 316, - ITEM_QUICK_ORB = 317, - ITEM_LUMINOUS_ORB = 318, - ITEM_PETRIFY_ORB = 319, - ITEM_STAYAWAY_ORB = 320, - ITEM_POUNCE_ORB = 321, - ITEM_TRAWL_ORB = 322, - ITEM_CLEANSE_ORB = 323, - ITEM_UNNAMED_0x144 = 324, - ITEM_DECOY_ORB = 325, - ITEM_SLUMBER_ORB = 326, - ITEM_TOTTER_ORB = 327, - ITEM_TWO_EDGE_ORB = 328, - ITEM_SILENCE_ORB = 329, - ITEM_ESCAPE_ORB = 330, - ITEM_SCANNER_ORB = 331, - ITEM_RADAR_ORB = 332, - ITEM_DROUGHT_ORB = 333, - ITEM_TRAPBUST_ORB = 334, - ITEM_ROLLCALL_ORB = 335, - ITEM_INVISIFY_ORB = 336, - ITEM_ONE_SHOT_ORB = 337, - ITEM_IDENTIFY_ORB = 338, - ITEM_UNNAMED_0x153 = 339, - ITEM_SHOCKER_ORB = 340, - ITEM_SIZEBUST_ORB = 341, - ITEM_ONE_ROOM_ORB = 342, - ITEM_FILL_IN_ORB = 343, - ITEM_TRAPPER_ORB = 344, - ITEM_UNNAMED_0x159 = 345, - ITEM_ITEMIZER_ORB = 346, - ITEM_HURL_ORB = 347, - ITEM_MOBILE_ORB = 348, - ITEM_UNNAMED_0x15D = 349, - ITEM_STAIRS_ORB = 350, - ITEM_LONGTOSS_ORB = 351, - ITEM_PIERCE_ORB = 352, - ITEM_UNNAMED_0x161 = 353, - ITEM_SPURN_ORB = 354, - ITEM_FOE_HOLD_ORB = 355, - ITEM_ALL_MACH_ORB = 356, - ITEM_FOE_FEAR_ORB = 357, - ITEM_ALL_HIT_ORB = 358, - ITEM_FOE_SEAL_ORB = 359, - ITEM_UNNAMED_0x168 = 360, - ITEM_UNNAMED_0x169 = 361, - ITEM_LINK_BOX = 362, - ITEM_UNNAMED_0x16B = 363, - ITEM_GORGEOUS_BOX_1 = 364, - ITEM_GORGEOUS_BOX_2 = 365, - ITEM_GORGEOUS_BOX_3 = 366, - ITEM_HEAVY_BOX_1 = 367, - ITEM_HEAVY_BOX_2 = 368, - ITEM_HEAVY_BOX_3 = 369, - ITEM_SHINY_BOX_1 = 370, - ITEM_SHINY_BOX_2 = 371, - ITEM_SHINY_BOX_3 = 372, - ITEM_NIFTY_BOX_1 = 373, - ITEM_NIFTY_BOX_2 = 374, - ITEM_NIFTY_BOX_3 = 375, - ITEM_DAINTY_BOX_1 = 376, - ITEM_DAINTY_BOX_2 = 377, - ITEM_DAINTY_BOX_3 = 378, - ITEM_GLITTERY_BOX_1 = 379, - ITEM_GLITTERY_BOX_2 = 380, - ITEM_GLITTERY_BOX_3 = 381, - ITEM_PRETTY_BOX_1 = 382, - ITEM_PRETTY_BOX_2 = 383, - ITEM_PRETTY_BOX_3 = 384, - ITEM_DELUXE_BOX_1 = 385, - ITEM_DELUXE_BOX_2 = 386, - ITEM_DELUXE_BOX_3 = 387, - ITEM_LIGHT_BOX_1 = 388, - ITEM_LIGHT_BOX_2 = 389, - ITEM_LIGHT_BOX_3 = 390, - ITEM_CUTE_BOX_1 = 391, - ITEM_CUTE_BOX_2 = 392, - ITEM_CUTE_BOX_3 = 393, - ITEM_HARD_BOX_1 = 394, - ITEM_HARD_BOX_2 = 395, - ITEM_HARD_BOX_3 = 396, - ITEM_SINISTER_BOX_1 = 397, - ITEM_SINISTER_BOX_2 = 398, - ITEM_SINISTER_BOX_3 = 399, - ITEM_A_STONE = 400, - ITEM_B_STONE = 401, - ITEM_C_STONE = 402, - ITEM_D_STONE = 403, - ITEM_E_STONE = 404, - ITEM_F_STONE = 405, - ITEM_G_STONE = 406, - ITEM_H_STONE = 407, - ITEM_I_STONE = 408, - ITEM_J_STONE = 409, - ITEM_K_STONE = 410, - ITEM_L_STONE = 411, - ITEM_M_STONE = 412, - ITEM_N_STONE = 413, - ITEM_O_STONE = 414, - ITEM_P_STONE = 415, - ITEM_Q_STONE = 416, - ITEM_R_STONE = 417, - ITEM_S_STONE = 418, - ITEM_T_STONE = 419, - ITEM_U_STONE = 420, - ITEM_V_STONE = 421, - ITEM_W_STONE = 422, - ITEM_X_STONE = 423, - ITEM_Y_STONE = 424, - ITEM_Z_STONE = 425, - ITEM_EXCLAMATION_STONE = 426, - ITEM_QUESTION_STONE = 427, - ITEM_SILVER_BOW = 428, - ITEM_BROWN_BOW = 429, - ITEM_RED_BOW = 430, - ITEM_PINK_BOW = 431, - ITEM_ORANGE_BOW = 432, - ITEM_YELLOW_BOW = 433, - ITEM_LIME_BOW = 434, - ITEM_GREEN_BOW = 435, - ITEM_VIRIDIAN_BOW = 436, - ITEM_MINTY_BOW = 437, - ITEM_SKY_BLUE_BOW = 438, - ITEM_BLUE_BOW = 439, - ITEM_COBALT_BOW = 440, - ITEM_PURPLE_BOW = 441, - ITEM_VIOLET_BOW = 442, - ITEM_FUCHSIA_BOW = 443, - ITEM_PRISM_RUFF = 444, - ITEM_AQUA_COLLAR = 445, - ITEM_VOLT_COLLAR = 446, - ITEM_FIRE_COLLAR = 447, - ITEM_LIGHT_COLLAR = 448, - ITEM_DUSK_COLLAR = 449, - ITEM_VIRID_COLLAR = 450, - ITEM_ICY_COLLAR = 451, - ITEM_PEP_SASH = 452, - ITEM_COUNTER_RUFF = 453, - ITEM_VICTORY_BELT = 454, - ITEM_POWER_BANGLE = 455, - ITEM_THUNDERSHARD = 456, - ITEM_FALLEN_STAR = 457, - ITEM_FLUFF_DUST = 458, - ITEM_EGG_SHARD = 459, - ITEM_HEROIC_MEDAL = 460, - ITEM_CHIC_SHARD = 461, - ITEM_YELLOW_JEWEL = 462, - ITEM_RED_JEWEL = 463, - ITEM_BLUE_JEWEL = 464, - ITEM_LAUGH_DUST = 465, - ITEM_GUARD_SAND = 466, - ITEM_PURPLE_JEWEL = 467, - ITEM_WHITE_JEWEL = 468, - ITEM_BRAVE_DUST = 469, - ITEM_HEAL_DEW = 470, - ITEM_MARINE_CACHE = 471, - ITEM_FREEZE_VEIL = 472, - ITEM_THUNDER_VEIL = 473, - ITEM_FIRE_VEIL = 474, - ITEM_HAVOC_ROBE = 475, - ITEM_LIFE_RING = 476, - ITEM_BOLT_FANG = 477, - ITEM_FLARE_FANG = 478, - ITEM_AQUA_MANTLE = 479, - ITEM_SILVER_VEIL = 480, - ITEM_RAINBOW_VEIL = 481, - ITEM_CHRONO_VEIL = 482, - ITEM_ROCK_SASH = 483, - ITEM_ICE_SASH = 484, - ITEM_STEEL_SASH = 485, - ITEM_HEART_BROOCH = 486, - ITEM_EON_VEIL = 487, - ITEM_SEABED_VEIL = 488, - ITEM_TERRA_RING = 489, - ITEM_SKYHIGH_VEIL = 490, - ITEM_WISH_MANTLE = 491, - ITEM_REVIVE_ROBE = 492, - ITEM_SHADOW_VEIL = 493, - ITEM_PLASMA_VEIL = 494, - ITEM_EDIFY_ROBE = 495, - ITEM_CHARITY_ROBE = 496, - ITEM_HOPE_ROBE = 497, - ITEM_TIME_SHIELD = 498, - ITEM_AIR_BLADE = 499, - ITEM_SEARING_RING = 500, - ITEM_ANCIENT_RING = 501, - ITEM_NETHER_VEIL = 502, - ITEM_LUNAR_VEIL = 503, - ITEM_TIDAL_CAPE = 504, - ITEM_ECLIPSE_ROBE = 505, - ITEM_WHITE_SILK = 506, - ITEM_NORMAL_DUST = 507, - ITEM_WHITE_GEM = 508, - ITEM_JOY_GLOBE = 509, - ITEM_RED_SILK = 510, - ITEM_FIRE_DUST = 511, - ITEM_FIERY_GEM = 512, - ITEM_FIERY_GLOBE = 513, - ITEM_BLUE_SILK = 514, - ITEM_WATER_DUST = 515, - ITEM_AQUA_GEM = 516, - ITEM_AQUA_GLOBE = 517, - ITEM_GRASS_SILK = 518, - ITEM_GRASS_DUST = 519, - ITEM_GRASS_GEM = 520, - ITEM_SOOTHE_GLOBE = 521, - ITEM_YELLOW_SILK = 522, - ITEM_THUNDER_DUST = 523, - ITEM_THUNDER_GEM = 524, - ITEM_VOLT_GLOBE = 525, - ITEM_CLEAR_SILK = 526, - ITEM_ICY_DUST = 527, - ITEM_ICY_GEM = 528, - ITEM_ICY_GLOBE = 529, - ITEM_ORANGE_SILK = 530, - ITEM_COURAGE_DUST = 531, - ITEM_FIGHT_GEM = 532, - ITEM_POWER_GLOBE = 533, - ITEM_PINK_SILK = 534, - ITEM_POISON_DUST = 535, - ITEM_POISON_GEM = 536, - ITEM_POISON_GLOBE = 537, - ITEM_BROWN_SILK = 538, - ITEM_GROUND_DUST = 539, - ITEM_EARTH_GEM = 540, - ITEM_TERRA_GLOBE = 541, - ITEM_SKY_SILK = 542, - ITEM_SKY_DUST = 543, - ITEM_SKY_GEM = 544, - ITEM_SKY_GLOBE = 545, - ITEM_GOLD_SILK = 546, - ITEM_PSYCHE_DUST = 547, - ITEM_PSYCHE_GEM = 548, - ITEM_PSYCHE_GLOBE = 549, - ITEM_GREEN_SILK = 550, - ITEM_WONDER_DUST = 551, - ITEM_GUARD_GEM = 552, - ITEM_DEFEND_GLOBE = 553, - ITEM_GRAY_SILK = 554, - ITEM_ROCK_DUST = 555, - ITEM_STONE_GEM = 556, - ITEM_ROCK_GLOBE = 557, - ITEM_PURPLE_SILK = 558, - ITEM_SHADY_DUST = 559, - ITEM_SHADOW_GEM = 560, - ITEM_NETHER_GLOBE = 561, - ITEM_ROYAL_SILK = 562, - ITEM_DRAGON_DUST = 563, - ITEM_DRAGON_GEM = 564, - ITEM_DRAGON_GLOBE = 565, - ITEM_BLACK_SILK = 566, - ITEM_DARK_DUST = 567, - ITEM_DARK_GEM = 568, - ITEM_DUSK_GLOBE = 569, - ITEM_IRON_SILK = 570, - ITEM_STEEL_DUST = 571, - ITEM_METAL_GEM = 572, - ITEM_STEEL_GLOBE = 573, - ITEM_BULBA_CLAW = 574, - ITEM_BULBA_FANG = 575, - ITEM_GRASS_GUARD = 576, - ITEM_LEAFY_TIE = 577, - ITEM_IVY_CLAW = 578, - ITEM_IVY_FANG = 579, - ITEM_IVY_CREST = 580, - ITEM_PLANT_TORC = 581, - ITEM_VENUS_CLAW = 582, - ITEM_VENUS_FANG = 583, - ITEM_VENUS_SEAL = 584, - ITEM_SOLAR_SASH = 585, - ITEM_CHAR_CLAW = 586, - ITEM_CHAR_FANG = 587, - ITEM_FIERY_HEART = 588, - ITEM_HEAT_ARMLET = 589, - ITEM_CHARME_CLAW = 590, - ITEM_CHARME_FANG = 591, - ITEM_CHARME_CREST = 592, - ITEM_KINDLE_SCARF = 593, - ITEM_CHARIZ_CLAW = 594, - ITEM_CHARIZ_FANG = 595, - ITEM_CHARIZ_SEAL = 596, - ITEM_FLAME_BANGLE = 597, - ITEM_SQUIRT_FOAM = 598, - ITEM_SQUIRT_CARD = 599, - ITEM_WATER_GUARD = 600, - ITEM_AQUA_TIE = 601, - ITEM_WARTOR_CLAW = 602, - ITEM_WARTOR_FANG = 603, - ITEM_WARTOR_CREST = 604, - ITEM_BUBBLEBANGLE = 605, - ITEM_BLASTO_CLAW = 606, - ITEM_BLASTO_CARD = 607, - ITEM_BLASTO_SEAL = 608, - ITEM_HYDRO_BAND = 609, - ITEM_PICHU_HAIR = 610, - ITEM_PICHU_CARD = 611, - ITEM_EXPRESS_TAG = 612, - ITEM_SHOCKER_CAPE = 613, - ITEM_PIKACHU_HAIR = 614, - ITEM_PIKACHU_CARD = 615, - ITEM_VOLT_CHARM = 616, - ITEM_VOLT_TORC = 617, - ITEM_RAICHU_HAIR = 618, - ITEM_RAICHU_CARD = 619, - ITEM_RAICHU_CREST = 620, - ITEM_ZAPPER_SCARF = 621, - ITEM_MEOWTH_CLAW = 622, - ITEM_MEOWTH_FANG = 623, - ITEM_COIN_CHARM = 624, - ITEM_BLING_RUFF = 625, - ITEM_PERSIAN_CLAW = 626, - ITEM_PERSIAN_FANG = 627, - ITEM_INSIGHT_ROCK = 628, - ITEM_NOBLE_SCARF = 629, - ITEM_CHIKO_CLAW = 630, - ITEM_CHIKO_CARD = 631, - ITEM_DAWN_JEWEL = 632, - ITEM_FRESH_BOW = 633, - ITEM_BAYLEEF_CLAW = 634, - ITEM_BAYLEEF_CARD = 635, - ITEM_BAYLEEF_SEAL = 636, - ITEM_SPICE_BOW = 637, - ITEM_MEGANI_CLAW = 638, - ITEM_MEGANI_CARD = 639, - ITEM_SHINY_CHARM = 640, - ITEM_BRIGHT_VEIL = 641, - ITEM_CYNDA_HAIR = 642, - ITEM_CYNDA_CLAW = 643, - ITEM_BLAZING_ROCK = 644, - ITEM_STORM_SASH = 645, - ITEM_QUILA_HAIR = 646, - ITEM_QUILA_CARD = 647, - ITEM_QUILA_CREST = 648, - ITEM_VOLCANO_TORC = 649, - ITEM_TYPHLO_GASP = 650, - ITEM_TYPHLO_FANG = 651, - ITEM_TYPHLO_SEAL = 652, - ITEM_BLAST_BANGLE = 653, - ITEM_TOTODI_DEW = 654, - ITEM_TOTODI_FANG = 655, - ITEM_WATER_HEART = 656, - ITEM_WASH_BOW = 657, - ITEM_CROCO_FANG = 658, - ITEM_CROCO_CARD = 659, - ITEM_SWIRL_ROCK = 660, - ITEM_ANGER_SCARF = 661, - ITEM_FERAL_CLAW = 662, - ITEM_FERAL_FANG = 663, - ITEM_FERAL_CREST = 664, - ITEM_HYDRO_JAW = 665, - ITEM_TREECK_THORN = 666, - ITEM_TREECK_CARD = 667, - ITEM_FOREST_ORE = 668, - ITEM_GUARD_RING = 669, - ITEM_GROVY_SHOOT = 670, - ITEM_GROVY_CARD = 671, - ITEM_JUNGLE_TAG = 672, - ITEM_GRASS_BLADE = 673, - ITEM_SCEPT_CLAW = 674, - ITEM_SCEPT_CARD = 675, - ITEM_SCEPT_SEAL = 676, - ITEM_DRAIN_BANGLE = 677, - ITEM_TORCHIC_HAIR = 678, - ITEM_TORCHIC_CARD = 679, - ITEM_HOT_PEBBLE = 680, - ITEM_FIRE_CAPE = 681, - ITEM_COMBUS_SWEAT = 682, - ITEM_COMBUS_CLAW = 683, - ITEM_CHARGE_TAG = 684, - ITEM_GUTSY_BAND = 685, - ITEM_BLAZI_CLAW = 686, - ITEM_BLAZI_CARD = 687, - ITEM_BLAZI_SEAL = 688, - ITEM_BLAZE_TORC = 689, - ITEM_MUDKIP_MUD = 690, - ITEM_MUDKIP_CARD = 691, - ITEM_MUD_JEWEL = 692, - ITEM_SPEED_SCARF = 693, - ITEM_MARSH_MUD = 694, - ITEM_MARSH_CARD = 695, - ITEM_MARSH_CREST = 696, - ITEM_MARSH_TORC = 697, - ITEM_SWAMP_MUD = 698, - ITEM_SWAMP_CARD = 699, - ITEM_SWAMP_SEAL = 700, - ITEM_SWAMP_BANGLE = 701, - ITEM_SKITTY_FANG = 702, - ITEM_SKITTY_CARD = 703, - ITEM_SMILE_PEBBLE = 704, - ITEM_HEAL_PENDANT = 705, - ITEM_DELCAT_HAIR = 706, - ITEM_DELCAT_FANG = 707, - ITEM_PRIM_PEBBLE = 708, - ITEM_GUARD_COLLAR = 709, - ITEM_LUCKY_LEAF = 710, - ITEM_TURTWIG_CARD = 711, - ITEM_SPROUT_ROCK = 712, - ITEM_LEAFY_HAT = 713, - ITEM_GROTLE_TWIG = 714, - ITEM_GROTLE_CLAW = 715, - ITEM_GROTLE_CREST = 716, - ITEM_WOODY_SCARF = 717, - ITEM_TORT_CLAW = 718, - ITEM_TORT_HORN = 719, - ITEM_TORT_SEAL = 720, - ITEM_FOREST_TORC = 721, - ITEM_CHIM_HAIR = 722, - ITEM_CHIM_FANG = 723, - ITEM_NIMBLE_CHARM = 724, - ITEM_EMBER_CAP = 725, - ITEM_MONFER_HAIR = 726, - ITEM_MONFER_FANG = 727, - ITEM_MONFER_CREST = 728, - ITEM_BURST_SASH = 729, - ITEM_INFERN_HAIR = 730, - ITEM_INFERN_FANG = 731, - ITEM_INFERN_SEAL = 732, - ITEM_BLAZING_RUFF = 733, - ITEM_PIPLUP_FOAM = 734, - ITEM_PIPLUP_CARD = 735, - ITEM_SEA_ORE = 736, - ITEM_WATER_CAPE = 737, - ITEM_PRIN_FOAM = 738, - ITEM_PRIN_CARD = 739, - ITEM_PRIN_CREST = 740, - ITEM_AQUA_BLADE = 741, - ITEM_EMPOL_CLAW = 742, - ITEM_EMPOL_HORN = 743, - ITEM_EMPOL_SEAL = 744, - ITEM_MARINE_CROWN = 745, - ITEM_MUNCH_DROOL = 746, - ITEM_MUNCH_CLAW = 747, - ITEM_TUMMY_CHARM = 748, - ITEM_GLUTTON_CAPE = 749, - ITEM_SNORLAX_GASP = 750, - ITEM_SNORLAX_FANG = 751, - ITEM_VALOR_CHARM = 752, - ITEM_GLEE_SCARF = 753, - ITEM_SCYTHER_FANG = 754, - ITEM_SCYTHER_CARD = 755, - ITEM_AMBUSH_ROCK = 756, - ITEM_STRIKE_RUFF = 757, - ITEM_SCIZOR_WING = 758, - ITEM_SCIZOR_CARD = 759, - ITEM_STEEL_CHARM = 760, - ITEM_RED_ARMLET = 761, - ITEM_LAPRAS_SONG = 762, - ITEM_LAPRAS_CARD = 763, - ITEM_WAVY_CHARM = 764, - ITEM_MYSTIC_SCARF = 765, - ITEM_EEVEE_TAIL = 766, - ITEM_EEVEE_CARD = 767, - ITEM_EVOLVE_CHARM = 768, - ITEM_EEVEE = 769, - ITEM_CLEFFA_DEW = 770, - ITEM_CLEFFA_CARD = 771, - ITEM_STARRY_ORE = 772, - ITEM_COMET_RING = 773, - ITEM_CLEF_CLAW = 774, - ITEM_CLEF_FANG = 775, - ITEM_MOON_JEWEL = 776, - ITEM_MOON_SCARF = 777, - ITEM_CLEFA_CLAW = 778, - ITEM_CLEFA_CARD = 779, - ITEM_MOON_ROCK = 780, - ITEM_FAIRY_BOW = 781, - ITEM_IGGLY_DEW = 782, - ITEM_IGGLY_CARD = 783, - ITEM_BOUNCY_CHARM = 784, - ITEM_PRETTY_BOW = 785, - ITEM_JIGGLY_SONG = 786, - ITEM_JIGGLY_CARD = 787, - ITEM_SLUMBER_ROCK = 788, - ITEM_SNOOZE_RING = 789, - ITEM_WIGGLY_HAIR = 790, - ITEM_WIGGLY_CARD = 791, - ITEM_BUDDY_ROCK = 792, - ITEM_FRIEND_TORC = 793, - ITEM_TOGEPI_DEW = 794, - ITEM_TOGEPI_CARD = 795, - ITEM_PURE_HEART = 796, - ITEM_ANGEL_SCARF = 797, - ITEM_TOGETIC_WING = 798, - ITEM_TOGETIC_CARD = 799, - ITEM_HAPPY_ROCK = 800, - ITEM_LUCK_BROOCH = 801, - ITEM_TOGEK_WING = 802, - ITEM_TOGEK_CARD = 803, - ITEM_OVATION_ROCK = 804, - ITEM_GLITTER_ROBE = 805, - ITEM_SNEASEL_CLAW = 806, - ITEM_SNEASEL_CARD = 807, - ITEM_DUSK_JEWEL = 808, - ITEM_CRUEL_RING = 809, - ITEM_WEAVILE_CLAW = 810, - ITEM_WEAVILE_FANG = 811, - ITEM_VILE_TAG = 812, - ITEM_RUIN_ARMLET = 813, - ITEM_TEDDI_CLAW = 814, - ITEM_TEDDI_CARD = 815, - ITEM_HONEY_ROCK = 816, - ITEM_HEAL_SCARF = 817, - ITEM_URSA_CLAW = 818, - ITEM_URSA_FANG = 819, - ITEM_CALMING_ROCK = 820, - ITEM_HIBER_SCARF = 821, - ITEM_TYRO_SWEAT = 822, - ITEM_TYRO_CARD = 823, - ITEM_MUSCLE_CHARM = 824, - ITEM_TYROGUE = 825, - ITEM_SMOOCH_SONG = 826, - ITEM_SMOOCH_CARD = 827, - ITEM_KISS_CHARM = 828, - ITEM_HEART_TIARA = 829, - ITEM_JYNX_SONG = 830, - ITEM_JYNX_CARD = 831, - ITEM_FROZEN_ORE = 832, - ITEM_RUIN_SCARF = 833, - ITEM_ELEKID_CLAW = 834, - ITEM_ELEKID_CARD = 835, - ITEM_JOLT_CHARM = 836, - ITEM_CURRENT_RING = 837, - ITEM_ELECTA_CLAW = 838, - ITEM_ELECTA_FANG = 839, - ITEM_CHARGE_SEAL = 840, - ITEM_VOLT_BANGLE = 841, - ITEM_ELECTI_CLAW = 842, - ITEM_ELECTI_CARD = 843, - ITEM_VOLTAIC_ROCK = 844, - ITEM_VOLTAIC_BAND = 845, - ITEM_MAGBY_CLAW = 846, - ITEM_MAGBY_CARD = 847, - ITEM_EMBER_JEWEL = 848, - ITEM_COAL_RING = 849, - ITEM_MAGMAR_CLAW = 850, - ITEM_MAGMAR_CARD = 851, - ITEM_ERUPT_ORE = 852, - ITEM_MAGMA_SCARF = 853, - ITEM_MAGMOR_CLAW = 854, - ITEM_MAGMOR_CARD = 855, - ITEM_VULCAN_ROCK = 856, - ITEM_BURNING_TORC = 857, - ITEM_AZURI_DEW = 858, - ITEM_AZURI_CARD = 859, - ITEM_FOUNT_CHARM = 860, - ITEM_WATER_FLOAT = 861, - ITEM_MARILL_DEW = 862, - ITEM_MARILL_CARD = 863, - ITEM_SURFER_ROCK = 864, - ITEM_BRINE_SCARF = 865, - ITEM_AZUMA_DEW = 866, - ITEM_AZUMA_CARD = 867, - ITEM_STREAM_CHARM = 868, - ITEM_DOTTED_SCARF = 869, - ITEM_PLUSLE_TAIL = 870, - ITEM_PLUSLE_CARD = 871, - ITEM_CHEER_ROCK = 872, - ITEM_PULSE_BOW = 873, - ITEM_MINUN_TAIL = 874, - ITEM_MINUN_CARD = 875, - ITEM_VOLT_HEART = 876, - ITEM_SPARK_TIE = 877, - ITEM_CAST_DEW = 878, - ITEM_CAST_CARD = 879, - ITEM_CLOUD_ROCK = 880, - ITEM_WEATHER_CAPE = 881, - ITEM_WYNAUT_TAIL = 882, - ITEM_WYNAUT_CARD = 883, - ITEM_GRIN_CHARM = 884, - ITEM_CHEERY_SCARF = 885, - ITEM_WOBBU_SWEAT = 886, - ITEM_WOBBU_CARD = 887, - ITEM_ENDURE_ROCK = 888, - ITEM_SUFFER_SCARF = 889, - ITEM_BIDOOF_TOOTH = 890, - ITEM_BIDOOF_CARD = 891, - ITEM_FALL_CHARM = 892, - ITEM_STOLID_SCARF = 893, - ITEM_BIBA_TOOTH = 894, - ITEM_BIBA_CARD = 895, - ITEM_RIVER_CHARM = 896, - ITEM_DAM_SCARF = 897, - ITEM_SHINX_CLAW = 898, - ITEM_SHINX_FANG = 899, - ITEM_FLASH_TAG = 900, - ITEM_ENERGY_SCARF = 901, - ITEM_LUXIO_CLAW = 902, - ITEM_LUXIO_FANG = 903, - ITEM_SPARK_TAG = 904, - ITEM_SPARK_SCARF = 905, - ITEM_LUXRAY_CLAW = 906, - ITEM_LUXRAY_FANG = 907, - ITEM_GLARE_TAG = 908, - ITEM_GLARE_SASH = 909, - ITEM_PACHI_TOOTH = 910, - ITEM_PACHI_CARD = 911, - ITEM_ROUSE_CHARM = 912, - ITEM_MIRACLE_BOW = 913, - ITEM_BUIZEL_FANG = 914, - ITEM_BUIZEL_CARD = 915, - ITEM_SWIMMER_ROCK = 916, - ITEM_SCREW_TORC = 917, - ITEM_FLOAT_FANG = 918, - ITEM_FLOAT_CARD = 919, - ITEM_RESCUE_ROCK = 920, - ITEM_FLOAT_AID = 921, - ITEM_DRIFLOO_GASP = 922, - ITEM_DRIFLOO_CARD = 923, - ITEM_WIND_HEART = 924, - ITEM_DRAFT_RING = 925, - ITEM_DRIFBLI_GASP = 926, - ITEM_DRIFBLI_CARD = 927, - ITEM_EASY_CHARM = 928, - ITEM_BREEZE_SCARF = 929, - ITEM_CHERUBI_SEED = 930, - ITEM_CHERUBI_CARD = 931, - ITEM_CUTE_ORE = 932, - ITEM_CHARM_BOW = 933, - ITEM_CHERRIM_DEW = 934, - ITEM_CHERRIM_CARD = 935, - ITEM_SWEET_AROMA = 936, - ITEM_PETAL_DRESS = 937, - ITEM_BONSLY_DEW = 938, - ITEM_BONSLY_CARD = 939, - ITEM_ARID_TAG = 940, - ITEM_TEARY_CAPE = 941, - ITEM_SUDO_SWEAT = 942, - ITEM_SUDO_CARD = 943, - ITEM_DRAIN_ROCK = 944, - ITEM_FAKE_TORC = 945, - ITEM_JUNIOR_BEAM = 946, - ITEM_JUNIOR_CARD = 947, - ITEM_MIMIC_PEBBLE = 948, - ITEM_COPY_MASK = 949, - ITEM_MIME_KEY = 950, - ITEM_MIME_CARD = 951, - ITEM_BULWARK_ROCK = 952, - ITEM_BARRIER_BOW = 953, - ITEM_HAPPINY_DEW = 954, - ITEM_HAPPINY_CARD = 955, - ITEM_PLAY_TAG = 956, - ITEM_NURTURE_CAPE = 957, - ITEM_CHANSEY_SONG = 958, - ITEM_CHANSEY_CARD = 959, - ITEM_LUCKY_CHARM = 960, - ITEM_LUCKY_SCARF = 961, - ITEM_BLISSEY_SONG = 962, - ITEM_BLISSEY_CARD = 963, - ITEM_AMITY_ROCK = 964, - ITEM_FAITH_RING = 965, - ITEM_GIBLE_FANG = 966, - ITEM_GIBLE_CARD = 967, - ITEM_DRAGON_JEWEL = 968, - ITEM_DRAGON_TIE = 969, - ITEM_GABITE_CLAW = 970, - ITEM_GABITE_FANG = 971, - ITEM_STAR_ROCK = 972, - ITEM_METEOR_TORC = 973, - ITEM_GAR_CLAW = 974, - ITEM_GAR_FANG = 975, - ITEM_SPEED_TAG = 976, - ITEM_MACH_SCARF = 977, - ITEM_RIOLU_TAIL = 978, - ITEM_RIOLU_CARD = 979, - ITEM_VALIANT_ROCK = 980, - ITEM_EMIT_RING = 981, - ITEM_LUCARIO_FANG = 982, - ITEM_LUCARIO_CARD = 983, - ITEM_PLEDGE_ROCK = 984, - ITEM_RAVAGE_RING = 985, - ITEM_MANTYKE_BEAM = 986, - ITEM_MANTYKE_CARD = 987, - ITEM_WAFT_ROCK = 988, - ITEM_OCEAN_BOW = 989, - ITEM_MANTINE_FOAM = 990, - ITEM_MANTINE_CARD = 991, - ITEM_SUNSET_ROCK = 992, - ITEM_HORIZON_BOW = 993, - ITEM_PHIONE_SONG = 994, - ITEM_PHIONE_CARD = 995, - ITEM_WAVE_JEWEL = 996, - ITEM_RIPPLE_CAPE = 997, - ITEM_VULPIX_TAIL = 998, - ITEM_VULPIX_CARD = 999, - ITEM_VULPIX_TAG = 1000, - ITEM_GLOWING_BOW = 1001, - ITEM_NINE_HAIR = 1002, - ITEM_NINE_CARD = 1003, - ITEM_NINE_SEAL = 1004, - ITEM_AFIRE_COLLAR = 1005, - ITEM_PHANPY_CLAW = 1006, - ITEM_PHANPY_CARD = 1007, - ITEM_PHANPY_TAG = 1008, - ITEM_VALUE_RUFF = 1009, - ITEM_DONPHAN_FANG = 1010, - ITEM_DONPHAN_CARD = 1011, - ITEM_DON_CREST = 1012, - ITEM_ARMOR_SCARF = 1013, - ITEM_CATER_BELT = 1014, - ITEM_DEFENSE_BOW = 1015, - ITEM_GLITTERY_BOW = 1016, - ITEM_WEEDLE_BOW = 1017, - ITEM_KAKUNA_SCARF = 1018, - ITEM_CHARGE_SCARF = 1019, - ITEM_PIDGEY_BOW = 1020, - ITEM_PIDGEO_SCARF = 1021, - ITEM_PIDGEOT_TORC = 1022, - ITEM_RATTA_SCARF = 1023, - ITEM_OVERCOME_BOW = 1024, - ITEM_QUIRKY_BOW = 1025, - ITEM_WING_SCARF = 1026, - ITEM_LEASH_BOW = 1027, - ITEM_SHOCK_RUFF = 1028, - ITEM_SAND_SCARF = 1029, - ITEM_SANDY_TORC = 1030, - ITEM_POINTY_SCARF = 1031, - ITEM_RETURN_SCARF = 1032, - ITEM_IMPACT_TORC = 1033, - ITEM_HALVE_SCARF = 1034, - ITEM_THORNY_SCARF = 1035, - ITEM_KING_SASH = 1036, - ITEM_DODGE_BOW = 1037, - ITEM_ABSORB_SCARF = 1038, - ITEM_ODD_BOW = 1039, - ITEM_GUARD_HAT = 1040, - ITEM_AROMA_SCARF = 1041, - ITEM_MOVING_SCARF = 1042, - ITEM_FIRM_HAT = 1043, - ITEM_GAZE_GOGGLES = 1044, - ITEM_VENOMOTH_BOW = 1045, - ITEM_DIGLETT_HAT = 1046, - ITEM_DUGTRIO_BOW = 1047, - ITEM_PSYDUCK_HAT = 1048, - ITEM_PADDLE_SCARF = 1049, - ITEM_MANKEY_TORC = 1050, - ITEM_NULLIFY_BELT = 1051, - ITEM_GROWL_SCARF = 1052, - ITEM_LEGEND_BOW = 1053, - ITEM_DAMP_BOW = 1054, - ITEM_POLI_BOW = 1055, - ITEM_BOLD_BELT = 1056, - ITEM_PREDICT_TORC = 1057, - ITEM_PSYCHIC_TORC = 1058, - ITEM_SPARKLE_RUFF = 1059, - ITEM_IMPISH_BAND = 1060, - ITEM_STRONG_BELT = 1061, - ITEM_MACHAMP_BELT = 1062, - ITEM_BELL_BOW = 1063, - ITEM_DIGEST_SCARF = 1064, - ITEM_VICTREE_TORC = 1065, - ITEM_TANGLE_BOW = 1066, - ITEM_TENTA_CAPE = 1067, - ITEM_GEODUDE_TORC = 1068, - ITEM_ROCKY_TORC = 1069, - ITEM_RUGGED_SASH = 1070, - ITEM_HEATED_BOW = 1071, - ITEM_SUNLIGHT_BOW = 1072, - ITEM_SLOWPOKE_HAT = 1073, - ITEM_SLOW_SCARF = 1074, - ITEM_MAGNE_TORC = 1075, - ITEM_MAGNETON_BOW = 1076, - ITEM_BULLSEYE_BOW = 1077, - ITEM_BUDDY_TORC = 1078, - ITEM_FIGHT_TORC = 1079, - ITEM_GENTLE_BOW = 1080, - ITEM_NORTH_TORC = 1081, - ITEM_GRIMY_SCARF = 1082, - ITEM_SLIMY_BOW = 1083, - ITEM_SHELL_TORC = 1084, - ITEM_COVER_ARMOR = 1085, - ITEM_GASTLY_VEIL = 1086, - ITEM_SLIP_SCARF = 1087, - ITEM_SUNGLASSES = 1088, - ITEM_TRUST_BROOCH = 1089, - ITEM_DROWZEE_TIE = 1090, - ITEM_DREAM_COIN = 1091, - ITEM_KRABBY_BOW = 1092, - ITEM_SUPER_SASH = 1093, - ITEM_BALL_SCARF = 1094, - ITEM_ELECTRO_BOW = 1095, - ITEM_REPEL_SCARF = 1096, - ITEM_EXEGGU_SASH = 1097, - ITEM_CUBONE_SCARF = 1098, - ITEM_MAROWAK_TORC = 1099, - ITEM_LICKY_SCARF = 1100, - ITEM_KOFFING_BOW = 1101, - ITEM_WEEZ_SCARF = 1102, - ITEM_SOLID_SHIELD = 1103, - ITEM_PIERCE_DRILL = 1104, - ITEM_STICKY_BOW = 1105, - ITEM_KANG_APRON = 1106, - ITEM_HORSEA_BOW = 1107, - ITEM_SWIRL_SCARF = 1108, - ITEM_GOLDEEN_BOW = 1109, - ITEM_SEAKING_BOW = 1110, - ITEM_RECOVER_TORC = 1111, - ITEM_STARMIE_BELT = 1112, - ITEM_PINSIR_SASH = 1113, - ITEM_RUSHING_BOW = 1114, - ITEM_MAGIKARP_BOW = 1115, - ITEM_TEMPEST_SASH = 1116, - ITEM_DITTO_TORC = 1117, - ITEM_AI_BROOCH = 1118, - ITEM_SPIKE_BROOCH = 1119, - ITEM_AGED_SCARF = 1120, - ITEM_KABUTO_HAT = 1121, - ITEM_KABU_TORC = 1122, - ITEM_OLD_BROOCH = 1123, - ITEM_DRAGON_SASH = 1124, - ITEM_ALOFT_MANTLE = 1125, - ITEM_MIRAGE_CAPE = 1126, - ITEM_SENTRET_RUFF = 1127, - ITEM_BODY_COLLAR = 1128, - ITEM_EXPOSE_SPECS = 1129, - ITEM_NOCTOWL_TORC = 1130, - ITEM_MORNING_BOW = 1131, - ITEM_LEDIAN_BOW = 1132, - ITEM_SPINA_SCARF = 1133, - ITEM_ARIADOS_BOW = 1134, - ITEM_SLASH_BOW = 1135, - ITEM_SHINE_TORC = 1136, - ITEM_LANTURN_BOW = 1137, - ITEM_LIVELY_SCARF = 1138, - ITEM_XATU_BOW = 1139, - ITEM_WOOL_BOW = 1140, - ITEM_FLUFFY_SCARF = 1141, - ITEM_SACRED_SCARF = 1142, - ITEM_BRIGHT_TIARA = 1143, - ITEM_RAIN_CROWN = 1144, - ITEM_ZEPHYR_BOW = 1145, - ITEM_SKIP_SCARF = 1146, - ITEM_COTTON_TORC = 1147, - ITEM_REVENGE_RUFF = 1148, - ITEM_HASTY_BOW = 1149, - ITEM_SUN_SCARF = 1150, - ITEM_CHITIN_BOW = 1151, - ITEM_WOOPER_BOW = 1152, - ITEM_QUAG_TORC = 1153, - ITEM_MURKROW_HAT = 1154, - ITEM_KING_CAP = 1155, - ITEM_MISDREA_CAPE = 1156, - ITEM_CRYPTIC_SASH = 1157, - ITEM_REVERSE_BOW = 1158, - ITEM_ROBUST_BOW = 1159, - ITEM_DENSE_PONCHO = 1160, - ITEM_ESCAPE_SCARF = 1161, - ITEM_TAKEOFF_RUFF = 1162, - ITEM_QUARTZ_TORC = 1163, - ITEM_SNUB_CAPE = 1164, - ITEM_STERN_SASH = 1165, - ITEM_QWILFISH_BOW = 1166, - ITEM_SHUCKLE_BOW = 1167, - ITEM_HORN_TORC = 1168, - ITEM_LAVA_BOW = 1169, - ITEM_TORRID_SCARF = 1170, - ITEM_FRIGID_BOW = 1171, - ITEM_FROST_TORC = 1172, - ITEM_EAGER_BROOCH = 1173, - ITEM_REACH_BOW = 1174, - ITEM_PSY_BOW = 1175, - ITEM_SNOW_BROOCH = 1176, - ITEM_SKAR_CAPE = 1177, - ITEM_DARK_CHOKER = 1178, - ITEM_PIT_FANG = 1179, - ITEM_TORNADO_BOW = 1180, - ITEM_VIRTUAL_BOW = 1181, - ITEM_DELUSION_BOW = 1182, - ITEM_PAINT_SCARF = 1183, - ITEM_MILKY_SCARF = 1184, - ITEM_LARVITAR_BOW = 1185, - ITEM_PUPITA_SCARF = 1186, - ITEM_CRASH_CLAW = 1187, - ITEM_POOCH_COLLAR = 1188, - ITEM_DARK_FANG = 1189, - ITEM_MERRY_SCARF = 1190, - ITEM_LINOONE_RUFF = 1191, - ITEM_WURMPLE_BOW = 1192, - ITEM_TOUGH_SCARF = 1193, - ITEM_VIVID_SILK = 1194, - ITEM_GUARD_BOW = 1195, - ITEM_DUSTOX_BOW = 1196, - ITEM_KELP_HAT = 1197, - ITEM_JOLLY_SCARF = 1198, - ITEM_LUDICOLO_HAT = 1199, - ITEM_SEEDOT_HAT = 1200, - ITEM_NUZLEAF_BOW = 1201, - ITEM_SHIFTRY_BELT = 1202, - ITEM_TAILLOW_BOW = 1203, - ITEM_MIDAIR_SCARF = 1204, - ITEM_WINGULL_BOW = 1205, - ITEM_STOCK_SCARF = 1206, - ITEM_SENSING_HAT = 1207, - ITEM_MAGICAL_BOW = 1208, - ITEM_CARING_SCARF = 1209, - ITEM_BLISS_SCARF = 1210, - ITEM_BLOCKING_BOW = 1211, - ITEM_MOBILE_BOW = 1212, - ITEM_THWART_BOW = 1213, - ITEM_SLAK_SCARF = 1214, - ITEM_VIGOR_SASH = 1215, - ITEM_LAZY_RUFF = 1216, - ITEM_NOVICE_SCARF = 1217, - ITEM_NINJA_RUFF = 1218, - ITEM_AWE_MANTLE = 1219, - ITEM_GOOD_EARRING = 1220, - ITEM_NICE_BANGLE = 1221, - ITEM_GREAT_TORC = 1222, - ITEM_MAKUHIT_BELT = 1223, - ITEM_THRUST_BELT = 1224, - ITEM_NOSE_TORC = 1225, - ITEM_SABLE_SCOPE = 1226, - ITEM_DECEIT_MASK = 1227, - ITEM_IRON_TORC = 1228, - ITEM_METAL_BANGLE = 1229, - ITEM_IRON_HELMET = 1230, - ITEM_INTUIT_BOW = 1231, - ITEM_PONDER_SASH = 1232, - ITEM_PUNISH_TORC = 1233, - ITEM_PROTECT_MASK = 1234, - ITEM_NEON_SCARF = 1235, - ITEM_EVENING_BOW = 1236, - ITEM_THORNED_TORC = 1237, - ITEM_GULPIN_BOW = 1238, - ITEM_SWALOT_BELT = 1239, - ITEM_CARVA_SASH = 1240, - ITEM_VICIOUS_BOW = 1241, - ITEM_SPOUT_SCARF = 1242, - ITEM_HUGE_BOW = 1243, - ITEM_NUMEL_BOW = 1244, - ITEM_ERUPT_SCARF = 1245, - ITEM_SOOTY_SASH = 1246, - ITEM_SPRING_BOW = 1247, - ITEM_SCHEME_SCARF = 1248, - ITEM_HULA_BOW = 1249, - ITEM_DESERT_BOW = 1250, - ITEM_VIBRA_SCARF = 1251, - ITEM_RED_GLASSES = 1252, - ITEM_DESERT_SASH = 1253, - ITEM_CACTURNE_HAT = 1254, - ITEM_TUFT_BOW = 1255, - ITEM_CLOUD_RUFF = 1256, - ITEM_STRONG_SASH = 1257, - ITEM_SEVIPER_BOW = 1258, - ITEM_LUNATON_TORC = 1259, - ITEM_SOLROCK_BOW = 1260, - ITEM_SOAK_SCARF = 1261, - ITEM_WHISCASH_BOW = 1262, - ITEM_BOSSY_SCARF = 1263, - ITEM_COWER_SASH = 1264, - ITEM_BAL_BROOCH = 1265, - ITEM_CLAYDOL_TORC = 1266, - ITEM_BIND_SCARF = 1267, - ITEM_CRADILY_BOW = 1268, - ITEM_GUARD_CLAW = 1269, - ITEM_RIGID_CAPE = 1270, - ITEM_ADMIRE_SCARF = 1271, - ITEM_GRACE_SCARF = 1272, - ITEM_KECLEON_TORC = 1273, - ITEM_SHUPPET_CAPE = 1274, - ITEM_OMINOUS_TORC = 1275, - ITEM_DUSKULL_RUFF = 1276, - ITEM_ILLUSION_BOW = 1277, - ITEM_TROPIUS_BOW = 1278, - ITEM_CHIME_SCARF = 1279, - ITEM_PERISH_TORC = 1280, - ITEM_CHILLY_HAT = 1281, - ITEM_HAIL_SCARF = 1282, - ITEM_SLEET_BOW = 1283, - ITEM_SAFE_SCARF = 1284, - ITEM_WALREIN_TORC = 1285, - ITEM_CLAM_BROOCH = 1286, - ITEM_DEEP_TORC = 1287, - ITEM_GORE_SCARF = 1288, - ITEM_RELI_TORC = 1289, - ITEM_LUVDISC_TORC = 1290, - ITEM_CRAG_HELMET = 1291, - ITEM_OUTLAST_BOW = 1292, - ITEM_SALA_CAPE = 1293, - ITEM_BELDUM_TORC = 1294, - ITEM_METANG_SCARF = 1295, - ITEM_META_TORC = 1296, - ITEM_STARLY_BOW = 1297, - ITEM_REGRET_TORC = 1298, - ITEM_GUTS_SASH = 1299, - ITEM_STILL_BOW = 1300, - ITEM_KRICKE_TORC = 1301, - ITEM_BUDEW_SCARF = 1302, - ITEM_BOUQUET_CAPE = 1303, - ITEM_HARD_HELMET = 1304, - ITEM_SKULL_HELMET = 1305, - ITEM_REBOUND_BOW = 1306, - ITEM_BLOCK_BROOCH = 1307, - ITEM_STRAW_CAPE = 1308, - ITEM_WORMA_BOW = 1309, - ITEM_MOTHIM_BOW = 1310, - ITEM_NECTAR_BOW = 1311, - ITEM_VESPI_TORC = 1312, - ITEM_AWAKE_BOW = 1313, - ITEM_GASTRO_TORC = 1314, - ITEM_AMBIPOM_BOW = 1315, - ITEM_DEFROST_RUFF = 1316, - ITEM_ALLURE_COAT = 1317, - ITEM_MAGIC_HAT = 1318, - ITEM_HONCH_CAPE = 1319, - ITEM_GLAMEOW_BOW = 1320, - ITEM_SCARY_BELT = 1321, - ITEM_CHING_TORC = 1322, - ITEM_STINKY_SCARF = 1323, - ITEM_STENCH_SASH = 1324, - ITEM_IMAGE_BROOCH = 1325, - ITEM_MIRROR_TORC = 1326, - ITEM_CHATOT_SCARF = 1327, - ITEM_THICK_SCARF = 1328, - ITEM_GRIT_VEIL = 1329, - ITEM_SKORUPI_BOW = 1330, - ITEM_DUST_SCARF = 1331, - ITEM_CROA_TORC = 1332, - ITEM_TOXI_BELT = 1333, - ITEM_CARNI_BOW = 1334, - ITEM_SWIM_BOW = 1335, - ITEM_LUMI_TORC = 1336, - ITEM_SNOWY_TORC = 1337, - ITEM_FROZEN_CAPE = 1338, - ITEM_BUILDER_SASH = 1339, - ITEM_FLABBY_BELT = 1340, - ITEM_RHYPERI_TORC = 1341, - ITEM_CLINGING_BOW = 1342, - ITEM_YANMEGA_BOW = 1343, - ITEM_GLISCOR_CAPE = 1344, - ITEM_GLACIER_CAPE = 1345, - ITEM_BEST_SCARF = 1346, - ITEM_GALLANT_TORC = 1347, - ITEM_PROBO_HAT = 1348, - ITEM_UNLUCKY_SASH = 1349, - ITEM_FROSLASS_BOW = 1350, - ITEM_PURIFY_VEIL = 1351, - ITEM_UNNAMED_0x548 = 1352, - ITEM_UNNAMED_0x549 = 1353, - ITEM_UNNAMED_0x54A = 1354, - ITEM_UNNAMED_0x54B = 1355, - ITEM_UNNAMED_0x54C = 1356, - ITEM_UNNAMED_0x54D = 1357, - ITEM_UNNAMED_0x54E = 1358, - ITEM_UNNAMED_0x54F = 1359, - ITEM_UNNAMED_0x550 = 1360, - ITEM_UNNAMED_0x551 = 1361, - ITEM_UNNAMED_0x552 = 1362, - ITEM_UNNAMED_0x553 = 1363, - ITEM_UNNAMED_0x554 = 1364, - ITEM_UNNAMED_0x555 = 1365, - ITEM_UNNAMED_0x556 = 1366, - ITEM_UNNAMED_0x557 = 1367, - ITEM_UNNAMED_0x558 = 1368, - ITEM_UNNAMED_0x559 = 1369, - ITEM_UNNAMED_0x55A = 1370, - ITEM_UNNAMED_0x55B = 1371, - ITEM_UNNAMED_0x55C = 1372, - ITEM_UNNAMED_0x55D = 1373, - ITEM_UNNAMED_0x55E = 1374, - ITEM_UNNAMED_0x55F = 1375, - ITEM_UNNAMED_0x560 = 1376, - ITEM_UNNAMED_0x561 = 1377, - ITEM_UNNAMED_0x562 = 1378, - ITEM_UNNAMED_0x563 = 1379, - ITEM_UNNAMED_0x564 = 1380, - ITEM_UNNAMED_0x565 = 1381, - ITEM_UNNAMED_0x566 = 1382, - ITEM_UNNAMED_0x567 = 1383, - ITEM_UNNAMED_0x568 = 1384, - ITEM_UNNAMED_0x569 = 1385, - ITEM_UNNAMED_0x56A = 1386, - ITEM_UNNAMED_0x56B = 1387, - ITEM_UNNAMED_0x56C = 1388, - ITEM_UNNAMED_0x56D = 1389, - ITEM_UNNAMED_0x56E = 1390, - ITEM_UNNAMED_0x56F = 1391, - ITEM_UNNAMED_0x570 = 1392, - ITEM_UNNAMED_0x571 = 1393, - ITEM_UNNAMED_0x572 = 1394, - ITEM_UNNAMED_0x573 = 1395, - ITEM_UNNAMED_0x574 = 1396, - ITEM_UNNAMED_0x575 = 1397, - ITEM_UNNAMED_0x576 = 1398, - ITEM_UNNAMED_0x577 = 1399, -}; - - // Move ID enum move_id { MOVE_NOTHING = 0, @@ -3269,19 +1850,19 @@ enum action { ACTION_SEND_HOME = 52, // 0x34: Send a pokémon home ACTION_UNK_35 = 53, ACTION_GIVE_ITEM = 54, // 0X36: Give held item - ACTION_TAKE_ITEM = 35, // 0x37: Take a held item - ACTION_UNK_38 = 36, + ACTION_TAKE_ITEM = 55, // 0x37: Take a held item + ACTION_UNK_38 = 56, // 0x39: had second thoughts! - Used as a failsafe when trying to take an illegal // action - ACTION_SECOND_THOUGHTS = 37, - ACTION_SWAP_ITEM = 38, // 0x3A: Swapping an item - ACTION_CHANGE_LEADER = 39, // 0x3B: Change the team's leader - ACTION_SET_ITEM = 40, // 0x3C: Set item - ACTION_UNSET_ITEM = 41, // 0x3D: Unset item - ACTION_UNK_3E = 42, - ACTION_PICK_UP_AI = 43, // 0x3F: Pick up an item (AI) - ACTION_UNK_40 = 44, - ACTION_THROW_ARC_PLAYER = 45, // 0x41: Throw a Gravelerock or a similar item (player) + ACTION_SECOND_THOUGHTS = 57, + ACTION_SWAP_ITEM = 58, // 0x3A: Swapping an item + ACTION_CHANGE_LEADER = 59, // 0x3B: Change the team's leader + ACTION_SET_ITEM = 60, // 0x3C: Set item + ACTION_UNSET_ITEM = 61, // 0x3D: Unset item + ACTION_UNK_3E = 62, + ACTION_PICK_UP_AI = 63, // 0x3F: Pick up an item (AI) + ACTION_UNK_40 = 64, + ACTION_THROW_ARC_PLAYER = 65, // 0x41: Throw a Gravelerock or a similar item (player) ACTION_PAD = 0xffff, // To force the enum on 16 bits }; diff --git a/include/item.h b/include/item.h new file mode 100644 index 00000000..ec43a9b2 --- /dev/null +++ b/include/item.h @@ -0,0 +1,1486 @@ +#ifndef PMDSKY_ITEM_H +#define PMDSKY_ITEM_H + +// Item ID +enum item_id { + ITEM_NOTHING = 0, + ITEM_STICK = 1, + ITEM_IRON_THORN = 2, + ITEM_SILVER_SPIKE = 3, + ITEM_GOLD_FANG = 4, + ITEM_CACNEA_SPIKE = 5, + ITEM_CORSOLA_TWIG = 6, + ITEM_GRAVELEROCK = 7, + ITEM_GEO_PEBBLE = 8, + ITEM_GOLD_THORN = 9, + ITEM_RARE_FOSSIL = 10, + ITEM_UNNAMED_0xB = 11, + ITEM_UNNAMED_0xC = 12, + ITEM_NO_SLIP_CAP = 13, + ITEM_Y_RAY_SPECS = 14, + ITEM_GAGGLE_SPECS = 15, + ITEM_MOBILE_SCARF = 16, + ITEM_HEAL_RIBBON = 17, + ITEM_TWIST_BAND = 18, + ITEM_SCOPE_LENS = 19, + ITEM_PATSY_BAND = 20, + ITEM_NO_STICK_CAP = 21, + ITEM_PIERCE_BAND = 22, + ITEM_JOY_RIBBON = 23, + ITEM_X_RAY_SPECS = 24, + ITEM_PERSIM_BAND = 25, + ITEM_POWER_BAND = 26, + ITEM_PECHA_SCARF = 27, + ITEM_INSOMNISCOPE = 28, + ITEM_WARP_SCARF = 29, + ITEM_TIGHT_BELT = 30, + ITEM_SNEAK_SCARF = 31, + ITEM_GOLD_RIBBON = 32, + ITEM_GOGGLE_SPECS = 33, + ITEM_DIET_RIBBON = 34, + ITEM_TRAP_SCARF = 35, + ITEM_RACKET_BAND = 36, + ITEM_DEF_SCARF = 37, + ITEM_STAMINA_BAND = 38, + ITEM_PLAIN_RIBBON = 39, + ITEM_SPECIAL_BAND = 40, + ITEM_ZINC_BAND = 41, + ITEM_DETECT_BAND = 42, + ITEM_SPACE_GLOBE = 43, + ITEM_DODGE_SCARF = 44, + ITEM_BOUNCE_BAND = 45, + ITEM_CURVE_BAND = 46, + ITEM_WHIFF_SPECS = 47, + ITEM_NO_AIM_SCOPE = 48, + ITEM_LOCKON_SPECS = 49, + ITEM_MUNCH_BELT = 50, + ITEM_PASS_SCARF = 51, + ITEM_WEATHER_BAND = 52, + ITEM_FRIEND_BOW = 53, + ITEM_BEAUTY_SCARF = 54, + ITEM_SUN_RIBBON = 55, + ITEM_LUNAR_RIBBON = 56, + ITEM_GOLDEN_MASK = 57, + ITEM_AMBER_TEAR = 58, + ITEM_ICY_FLUTE = 59, + ITEM_FIERY_DRUM = 60, + ITEM_TERRA_CYMBAL = 61, + ITEM_AQUA_MONICA = 62, + ITEM_ROCK_HORN = 63, + ITEM_GRASS_CORNET = 64, + ITEM_SKY_MELODICA = 65, + ITEM_MIRACLE_CHEST = 66, + ITEM_WONDER_CHEST = 67, + ITEM_IQ_BOOSTER = 68, + ITEM_HEAL_SEED = 69, + ITEM_ORAN_BERRY = 70, + ITEM_SITRUS_BERRY = 71, + ITEM_EYEDROP_SEED = 72, + ITEM_REVIVER_SEED = 73, + ITEM_BLINKER_SEED = 74, + ITEM_DOOM_SEED = 75, + ITEM_X_EYE_SEED = 76, + ITEM_LIFE_SEED = 77, + ITEM_RAWST_BERRY = 78, + ITEM_HUNGER_SEED = 79, + ITEM_QUICK_SEED = 80, + ITEM_PECHA_BERRY = 81, + ITEM_CHERI_BERRY = 82, + ITEM_TOTTER_SEED = 83, + ITEM_SLEEP_SEED = 84, + ITEM_PLAIN_SEED = 85, + ITEM_WARP_SEED = 86, + ITEM_BLAST_SEED = 87, + ITEM_GINSENG = 88, + ITEM_JOY_SEED = 89, + ITEM_CHESTO_BERRY = 90, + ITEM_STUN_SEED = 91, + ITEM_GABITE_SCALE = 92, + ITEM_GOLDEN_SEED = 93, + ITEM_VILE_SEED = 94, + ITEM_PURE_SEED = 95, + ITEM_VIOLENT_SEED = 96, + ITEM_VANISH_SEED = 97, + ITEM_UNNAMED_0x62 = 98, + ITEM_MAX_ELIXIR = 99, + ITEM_PROTEIN = 100, + ITEM_CALCIUM = 101, + ITEM_IRON = 102, + ITEM_NECTAR = 103, + ITEM_DROPEYE_SEED = 104, + ITEM_REVISER_SEED = 105, + ITEM_SLIP_SEED = 106, + ITEM_VIA_SEED = 107, + ITEM_ZINC = 108, + ITEM_APPLE = 109, + ITEM_BIG_APPLE = 110, + ITEM_GRIMY_FOOD = 111, + ITEM_HUGE_APPLE = 112, + ITEM_UNNAMED_0x71 = 113, + ITEM_UNNAMED_0x72 = 114, + ITEM_GOLDEN_APPLE = 115, + ITEM_MIX_ELIXIR = 116, + ITEM_OREN_BERRY = 117, + ITEM_DOUGH_SEED = 118, + ITEM_WHITE_GUMMI = 119, + ITEM_RED_GUMMI = 120, + ITEM_BLUE_GUMMI = 121, + ITEM_GRASS_GUMMI = 122, + ITEM_YELLOW_GUMMI = 123, + ITEM_CLEAR_GUMMI = 124, + ITEM_ORANGE_GUMMI = 125, + ITEM_PINK_GUMMI = 126, + ITEM_BROWN_GUMMI = 127, + ITEM_SKY_GUMMI = 128, + ITEM_GOLD_GUMMI = 129, + ITEM_GREEN_GUMMI = 130, + ITEM_GRAY_GUMMI = 131, + ITEM_PURPLE_GUMMI = 132, + ITEM_ROYAL_GUMMI = 133, + ITEM_BLACK_GUMMI = 134, + ITEM_SILVER_GUMMI = 135, + ITEM_WONDER_GUMMI = 136, + ITEM_GRAVELYROCK = 137, + ITEM_UNNAMED_0x8A = 138, + ITEM_UPGRADE = 139, + ITEM_KINGS_ROCK = 140, + ITEM_THUNDERSTONE = 141, + ITEM_DEEPSEASCALE = 142, + ITEM_DEEPSEATOOTH = 143, + ITEM_SUN_STONE = 144, + ITEM_MOON_STONE = 145, + ITEM_FIRE_STONE = 146, + ITEM_WATER_STONE = 147, + ITEM_METAL_COAT = 148, + ITEM_LEAF_STONE = 149, + ITEM_DRAGON_SCALE = 150, + ITEM_LINK_CABLE = 151, + ITEM_DUBIOUS_DISC = 152, + ITEM_PROTECTOR = 153, + ITEM_REAPER_CLOTH = 154, + ITEM_RAZOR_FANG = 155, + ITEM_RAZOR_CLAW = 156, + ITEM_ELECTIRIZER = 157, + ITEM_MAGMARIZER = 158, + ITEM_OVAL_STONE = 159, + ITEM_DAWN_STONE = 160, + ITEM_SHINY_STONE = 161, + ITEM_DUSK_STONE = 162, + ITEM_CORONET_ROCK = 163, + ITEM_MOSSY_ROCK = 164, + ITEM_FROZEN_ROCK = 165, + ITEM_UNNAMED_0xA6 = 166, + ITEM_GONE_PEBBLE = 167, + ITEM_WANDER_GUMMI = 168, + ITEM_PRIZE_TICKET = 169, + ITEM_SILVER_TICKET = 170, + ITEM_GOLD_TICKET = 171, + ITEM_PRISM_TICKET = 172, + ITEM_MYSTERY_PART = 173, + ITEM_SECRET_SLAB = 174, + ITEM_UNNAMED_0xAF = 175, + ITEM_UNNAMED_0xB0 = 176, + ITEM_UNNAMED_0xB1 = 177, + ITEM_WONDER_EGG = 178, + ITEM_GRACIDEA = 179, + ITEM_SKY_GIFT = 180, + ITEM_UNNAMED_0xB5 = 181, + ITEM_KEY = 182, + ITEM_POKE = 183, + ITEM_UNNAMED_0xB8 = 184, + ITEM_UNNAMED_0xB9 = 185, + ITEM_LOST_LOOT = 186, + ITEM_TM_USED_TM = 187, + ITEM_TM_FOCUS_PUNCH = 188, + ITEM_TM_DRAGON_CLAW = 189, + ITEM_TM_WATER_PULSE = 190, + ITEM_TM_CALM_MIND = 191, + ITEM_TM_ROAR = 192, + ITEM_TM_TOXIC = 193, + ITEM_TM_HAIL = 194, + ITEM_TM_BULK_UP = 195, + ITEM_TM_BULLET_SEED = 196, + ITEM_TM_HIDDEN_POWER = 197, + ITEM_UNNAMED_0xC6 = 198, + ITEM_TM_TAUNT = 199, + ITEM_TM_ICE_BEAM = 200, + ITEM_TM_BLIZZARD = 201, + ITEM_TM_HYPER_BEAM = 202, + ITEM_TM_LIGHT_SCREEN = 203, + ITEM_TM_PROTECT = 204, + ITEM_UNNAMED_0xCD = 205, + ITEM_TM_GIGA_DRAIN = 206, + ITEM_TM_SAFEGUARD = 207, + ITEM_TM_FRUSTRATION = 208, + ITEM_TM_SOLARBEAM = 209, + ITEM_TM_IRON_TAIL = 210, + ITEM_TM_THUNDERBOLT = 211, + ITEM_TM_THUNDER = 212, + ITEM_TM_EARTHQUAKE = 213, + ITEM_TM_RETURN = 214, + ITEM_TM_DIG = 215, + ITEM_TM_PSYCHIC = 216, + ITEM_TM_SHADOW_BALL = 217, + ITEM_TM_BRICK_BREAK = 218, + ITEM_UNNAMED_0xDB = 219, + ITEM_TM_REFLECT = 220, + ITEM_TM_SHOCK_WAVE = 221, + ITEM_TM_FLAMETHROWER = 222, + ITEM_TM_SLUDGE_BOMB = 223, + ITEM_UNNAMED_0xE0 = 224, + ITEM_TM_FIRE_BLAST = 225, + ITEM_UNNAMED_0xE2 = 226, + ITEM_TM_AERIAL_ACE = 227, + ITEM_TM_TORMENT = 228, + ITEM_TM_FACADE = 229, + ITEM_TM_SECRET_POWER = 230, + ITEM_TM_REST = 231, + ITEM_TM_ATTRACT = 232, + ITEM_TM_THIEF = 233, + ITEM_TM_STEEL_WING = 234, + ITEM_TM_SKILL_SWAP = 235, + ITEM_UNNAMED_0xEC = 236, + ITEM_TM_OVERHEAT = 237, + ITEM_TM_ROOST = 238, + ITEM_TM_FOCUS_BLAST = 239, + ITEM_TM_ENERGY_BALL = 240, + ITEM_TM_FALSE_SWIPE = 241, + ITEM_TM_BRINE = 242, + ITEM_TM_FLING = 243, + ITEM_TM_CHARGE_BEAM = 244, + ITEM_TM_ENDURE = 245, + ITEM_TM_DRAGON_PULSE = 246, + ITEM_TM_DRAIN_PUNCH = 247, + ITEM_TM_WILL_O_WISP = 248, + ITEM_TM_SILVER_WIND = 249, + ITEM_TM_EMBARGO = 250, + ITEM_TM_EXPLOSION = 251, + ITEM_TM_SHADOW_CLAW = 252, + ITEM_TM_PAYBACK = 253, + ITEM_TM_RECYCLE = 254, + ITEM_TM_GIGA_IMPACT = 255, + ITEM_TM_ROCK_POLISH = 256, + ITEM_TM_WIDE_SLASH = 257, + ITEM_UNNAMED_0x102 = 258, + ITEM_UNNAMED_0x103 = 259, + ITEM_TM_VACUUM_CUT = 260, + ITEM_TM_DIVE = 261, + ITEM_TM_FLASH = 262, + ITEM_TM_STONE_EDGE = 263, + ITEM_TM_AVALANCHE = 264, + ITEM_TM_THUNDER_WAVE = 265, + ITEM_TM_GYRO_BALL = 266, + ITEM_TM_SWORDS_DANCE = 267, + ITEM_TM_STEALTH_ROCK = 268, + ITEM_TM_PSYCH_UP = 269, + ITEM_TM_CAPTIVATE = 270, + ITEM_TM_DARK_PULSE = 271, + ITEM_TM_ROCK_SLIDE = 272, + ITEM_TM_X_SCISSOR = 273, + ITEM_TM_SLEEP_TALK = 274, + ITEM_TM_NATURAL_GIFT = 275, + ITEM_TM_POISON_JAB = 276, + ITEM_TM_DREAM_EATER = 277, + ITEM_TM_GRASS_KNOT = 278, + ITEM_TM_SWAGGER = 279, + ITEM_TM_PLUCK = 280, + ITEM_TM_U_TURN = 281, + ITEM_TM_SUBSTITUTE = 282, + ITEM_TM_FLASH_CANNON = 283, + ITEM_TM_TRICK_ROOM = 284, + ITEM_TM_CUT = 285, + ITEM_TM_FLY = 286, + ITEM_TM_SURF = 287, + ITEM_TM_STRENGTH = 288, + ITEM_TM_DEFOG = 289, + ITEM_TM_ROCK_SMASH = 290, + ITEM_TM_WATERFALL = 291, + ITEM_TM_ROCK_CLIMB = 292, + ITEM_UNNAMED_0x125 = 293, + ITEM_UNNAMED_0x126 = 294, + ITEM_UNNAMED_0x127 = 295, + ITEM_UNNAMED_0x128 = 296, + ITEM_UNNAMED_0x129 = 297, + ITEM_UNNAMED_0x12A = 298, + ITEM_UNNAMED_0x12B = 299, + ITEM_UNNAMED_0x12C = 300, + ITEM_HAIL_ORB = 301, + ITEM_SUNNY_ORB = 302, + ITEM_RAINY_ORB = 303, + ITEM_EVASION_ORB = 304, + ITEM_SANDY_ORB = 305, + ITEM_ROCKY_ORB = 306, + ITEM_SNATCH_ORB = 307, + ITEM_SEE_TRAP_ORB = 308, + ITEM_MUG_ORB = 309, + ITEM_REBOUND_ORB = 310, + ITEM_LOB_ORB = 311, + ITEM_SWITCHER_ORB = 312, + ITEM_BLOWBACK_ORB = 313, + ITEM_WARP_ORB = 314, + ITEM_TRANSFER_ORB = 315, + ITEM_SLOW_ORB = 316, + ITEM_QUICK_ORB = 317, + ITEM_LUMINOUS_ORB = 318, + ITEM_PETRIFY_ORB = 319, + ITEM_STAYAWAY_ORB = 320, + ITEM_POUNCE_ORB = 321, + ITEM_TRAWL_ORB = 322, + ITEM_CLEANSE_ORB = 323, + ITEM_UNNAMED_0x144 = 324, + ITEM_DECOY_ORB = 325, + ITEM_SLUMBER_ORB = 326, + ITEM_TOTTER_ORB = 327, + ITEM_TWO_EDGE_ORB = 328, + ITEM_SILENCE_ORB = 329, + ITEM_ESCAPE_ORB = 330, + ITEM_SCANNER_ORB = 331, + ITEM_RADAR_ORB = 332, + ITEM_DROUGHT_ORB = 333, + ITEM_TRAPBUST_ORB = 334, + ITEM_ROLLCALL_ORB = 335, + ITEM_INVISIFY_ORB = 336, + ITEM_ONE_SHOT_ORB = 337, + ITEM_IDENTIFY_ORB = 338, + ITEM_UNNAMED_0x153 = 339, + ITEM_SHOCKER_ORB = 340, + ITEM_SIZEBUST_ORB = 341, + ITEM_ONE_ROOM_ORB = 342, + ITEM_FILL_IN_ORB = 343, + ITEM_TRAPPER_ORB = 344, + ITEM_UNNAMED_0x159 = 345, + ITEM_ITEMIZER_ORB = 346, + ITEM_HURL_ORB = 347, + ITEM_MOBILE_ORB = 348, + ITEM_UNNAMED_0x15D = 349, + ITEM_STAIRS_ORB = 350, + ITEM_LONGTOSS_ORB = 351, + ITEM_PIERCE_ORB = 352, + ITEM_UNNAMED_0x161 = 353, + ITEM_SPURN_ORB = 354, + ITEM_FOE_HOLD_ORB = 355, + ITEM_ALL_MACH_ORB = 356, + ITEM_FOE_FEAR_ORB = 357, + ITEM_ALL_HIT_ORB = 358, + ITEM_FOE_SEAL_ORB = 359, + ITEM_UNNAMED_0x168 = 360, + ITEM_UNNAMED_0x169 = 361, + ITEM_LINK_BOX = 362, + ITEM_UNNAMED_0x16B = 363, + ITEM_GORGEOUS_BOX_1 = 364, + ITEM_GORGEOUS_BOX_2 = 365, + ITEM_GORGEOUS_BOX_3 = 366, + ITEM_HEAVY_BOX_1 = 367, + ITEM_HEAVY_BOX_2 = 368, + ITEM_HEAVY_BOX_3 = 369, + ITEM_SHINY_BOX_1 = 370, + ITEM_SHINY_BOX_2 = 371, + ITEM_SHINY_BOX_3 = 372, + ITEM_NIFTY_BOX_1 = 373, + ITEM_NIFTY_BOX_2 = 374, + ITEM_NIFTY_BOX_3 = 375, + ITEM_DAINTY_BOX_1 = 376, + ITEM_DAINTY_BOX_2 = 377, + ITEM_DAINTY_BOX_3 = 378, + ITEM_GLITTERY_BOX_1 = 379, + ITEM_GLITTERY_BOX_2 = 380, + ITEM_GLITTERY_BOX_3 = 381, + ITEM_PRETTY_BOX_1 = 382, + ITEM_PRETTY_BOX_2 = 383, + ITEM_PRETTY_BOX_3 = 384, + ITEM_DELUXE_BOX_1 = 385, + ITEM_DELUXE_BOX_2 = 386, + ITEM_DELUXE_BOX_3 = 387, + ITEM_LIGHT_BOX_1 = 388, + ITEM_LIGHT_BOX_2 = 389, + ITEM_LIGHT_BOX_3 = 390, + ITEM_CUTE_BOX_1 = 391, + ITEM_CUTE_BOX_2 = 392, + ITEM_CUTE_BOX_3 = 393, + ITEM_HARD_BOX_1 = 394, + ITEM_HARD_BOX_2 = 395, + ITEM_HARD_BOX_3 = 396, + ITEM_SINISTER_BOX_1 = 397, + ITEM_SINISTER_BOX_2 = 398, + ITEM_SINISTER_BOX_3 = 399, + ITEM_A_STONE = 400, + ITEM_B_STONE = 401, + ITEM_C_STONE = 402, + ITEM_D_STONE = 403, + ITEM_E_STONE = 404, + ITEM_F_STONE = 405, + ITEM_G_STONE = 406, + ITEM_H_STONE = 407, + ITEM_I_STONE = 408, + ITEM_J_STONE = 409, + ITEM_K_STONE = 410, + ITEM_L_STONE = 411, + ITEM_M_STONE = 412, + ITEM_N_STONE = 413, + ITEM_O_STONE = 414, + ITEM_P_STONE = 415, + ITEM_Q_STONE = 416, + ITEM_R_STONE = 417, + ITEM_S_STONE = 418, + ITEM_T_STONE = 419, + ITEM_U_STONE = 420, + ITEM_V_STONE = 421, + ITEM_W_STONE = 422, + ITEM_X_STONE = 423, + ITEM_Y_STONE = 424, + ITEM_Z_STONE = 425, + ITEM_EXCLAMATION_STONE = 426, + ITEM_QUESTION_STONE = 427, + ITEM_SILVER_BOW = 428, + ITEM_BROWN_BOW = 429, + ITEM_RED_BOW = 430, + ITEM_PINK_BOW = 431, + ITEM_ORANGE_BOW = 432, + ITEM_YELLOW_BOW = 433, + ITEM_LIME_BOW = 434, + ITEM_GREEN_BOW = 435, + ITEM_VIRIDIAN_BOW = 436, + ITEM_MINTY_BOW = 437, + ITEM_SKY_BLUE_BOW = 438, + ITEM_BLUE_BOW = 439, + ITEM_COBALT_BOW = 440, + ITEM_PURPLE_BOW = 441, + ITEM_VIOLET_BOW = 442, + ITEM_FUCHSIA_BOW = 443, + ITEM_PRISM_RUFF = 444, + ITEM_AQUA_COLLAR = 445, + ITEM_VOLT_COLLAR = 446, + ITEM_FIRE_COLLAR = 447, + ITEM_LIGHT_COLLAR = 448, + ITEM_DUSK_COLLAR = 449, + ITEM_VIRID_COLLAR = 450, + ITEM_ICY_COLLAR = 451, + ITEM_PEP_SASH = 452, + ITEM_COUNTER_RUFF = 453, + ITEM_VICTORY_BELT = 454, + ITEM_POWER_BANGLE = 455, + ITEM_THUNDERSHARD = 456, + ITEM_FALLEN_STAR = 457, + ITEM_FLUFF_DUST = 458, + ITEM_EGG_SHARD = 459, + ITEM_HEROIC_MEDAL = 460, + ITEM_CHIC_SHARD = 461, + ITEM_YELLOW_JEWEL = 462, + ITEM_RED_JEWEL = 463, + ITEM_BLUE_JEWEL = 464, + ITEM_LAUGH_DUST = 465, + ITEM_GUARD_SAND = 466, + ITEM_PURPLE_JEWEL = 467, + ITEM_WHITE_JEWEL = 468, + ITEM_BRAVE_DUST = 469, + ITEM_HEAL_DEW = 470, + ITEM_MARINE_CACHE = 471, + ITEM_FREEZE_VEIL = 472, + ITEM_THUNDER_VEIL = 473, + ITEM_FIRE_VEIL = 474, + ITEM_HAVOC_ROBE = 475, + ITEM_LIFE_RING = 476, + ITEM_BOLT_FANG = 477, + ITEM_FLARE_FANG = 478, + ITEM_AQUA_MANTLE = 479, + ITEM_SILVER_VEIL = 480, + ITEM_RAINBOW_VEIL = 481, + ITEM_CHRONO_VEIL = 482, + ITEM_ROCK_SASH = 483, + ITEM_ICE_SASH = 484, + ITEM_STEEL_SASH = 485, + ITEM_HEART_BROOCH = 486, + ITEM_EON_VEIL = 487, + ITEM_SEABED_VEIL = 488, + ITEM_TERRA_RING = 489, + ITEM_SKYHIGH_VEIL = 490, + ITEM_WISH_MANTLE = 491, + ITEM_REVIVE_ROBE = 492, + ITEM_SHADOW_VEIL = 493, + ITEM_PLASMA_VEIL = 494, + ITEM_EDIFY_ROBE = 495, + ITEM_CHARITY_ROBE = 496, + ITEM_HOPE_ROBE = 497, + ITEM_TIME_SHIELD = 498, + ITEM_AIR_BLADE = 499, + ITEM_SEARING_RING = 500, + ITEM_ANCIENT_RING = 501, + ITEM_NETHER_VEIL = 502, + ITEM_LUNAR_VEIL = 503, + ITEM_TIDAL_CAPE = 504, + ITEM_ECLIPSE_ROBE = 505, + ITEM_WHITE_SILK = 506, + ITEM_NORMAL_DUST = 507, + ITEM_WHITE_GEM = 508, + ITEM_JOY_GLOBE = 509, + ITEM_RED_SILK = 510, + ITEM_FIRE_DUST = 511, + ITEM_FIERY_GEM = 512, + ITEM_FIERY_GLOBE = 513, + ITEM_BLUE_SILK = 514, + ITEM_WATER_DUST = 515, + ITEM_AQUA_GEM = 516, + ITEM_AQUA_GLOBE = 517, + ITEM_GRASS_SILK = 518, + ITEM_GRASS_DUST = 519, + ITEM_GRASS_GEM = 520, + ITEM_SOOTHE_GLOBE = 521, + ITEM_YELLOW_SILK = 522, + ITEM_THUNDER_DUST = 523, + ITEM_THUNDER_GEM = 524, + ITEM_VOLT_GLOBE = 525, + ITEM_CLEAR_SILK = 526, + ITEM_ICY_DUST = 527, + ITEM_ICY_GEM = 528, + ITEM_ICY_GLOBE = 529, + ITEM_ORANGE_SILK = 530, + ITEM_COURAGE_DUST = 531, + ITEM_FIGHT_GEM = 532, + ITEM_POWER_GLOBE = 533, + ITEM_PINK_SILK = 534, + ITEM_POISON_DUST = 535, + ITEM_POISON_GEM = 536, + ITEM_POISON_GLOBE = 537, + ITEM_BROWN_SILK = 538, + ITEM_GROUND_DUST = 539, + ITEM_EARTH_GEM = 540, + ITEM_TERRA_GLOBE = 541, + ITEM_SKY_SILK = 542, + ITEM_SKY_DUST = 543, + ITEM_SKY_GEM = 544, + ITEM_SKY_GLOBE = 545, + ITEM_GOLD_SILK = 546, + ITEM_PSYCHE_DUST = 547, + ITEM_PSYCHE_GEM = 548, + ITEM_PSYCHE_GLOBE = 549, + ITEM_GREEN_SILK = 550, + ITEM_WONDER_DUST = 551, + ITEM_GUARD_GEM = 552, + ITEM_DEFEND_GLOBE = 553, + ITEM_GRAY_SILK = 554, + ITEM_ROCK_DUST = 555, + ITEM_STONE_GEM = 556, + ITEM_ROCK_GLOBE = 557, + ITEM_PURPLE_SILK = 558, + ITEM_SHADY_DUST = 559, + ITEM_SHADOW_GEM = 560, + ITEM_NETHER_GLOBE = 561, + ITEM_ROYAL_SILK = 562, + ITEM_DRAGON_DUST = 563, + ITEM_DRAGON_GEM = 564, + ITEM_DRAGON_GLOBE = 565, + ITEM_BLACK_SILK = 566, + ITEM_DARK_DUST = 567, + ITEM_DARK_GEM = 568, + ITEM_DUSK_GLOBE = 569, + ITEM_IRON_SILK = 570, + ITEM_STEEL_DUST = 571, + ITEM_METAL_GEM = 572, + ITEM_STEEL_GLOBE = 573, + ITEM_BULBA_CLAW = 574, + ITEM_BULBA_FANG = 575, + ITEM_GRASS_GUARD = 576, + ITEM_LEAFY_TIE = 577, + ITEM_IVY_CLAW = 578, + ITEM_IVY_FANG = 579, + ITEM_IVY_CREST = 580, + ITEM_PLANT_TORC = 581, + ITEM_VENUS_CLAW = 582, + ITEM_VENUS_FANG = 583, + ITEM_VENUS_SEAL = 584, + ITEM_SOLAR_SASH = 585, + ITEM_CHAR_CLAW = 586, + ITEM_CHAR_FANG = 587, + ITEM_FIERY_HEART = 588, + ITEM_HEAT_ARMLET = 589, + ITEM_CHARME_CLAW = 590, + ITEM_CHARME_FANG = 591, + ITEM_CHARME_CREST = 592, + ITEM_KINDLE_SCARF = 593, + ITEM_CHARIZ_CLAW = 594, + ITEM_CHARIZ_FANG = 595, + ITEM_CHARIZ_SEAL = 596, + ITEM_FLAME_BANGLE = 597, + ITEM_SQUIRT_FOAM = 598, + ITEM_SQUIRT_CARD = 599, + ITEM_WATER_GUARD = 600, + ITEM_AQUA_TIE = 601, + ITEM_WARTOR_CLAW = 602, + ITEM_WARTOR_FANG = 603, + ITEM_WARTOR_CREST = 604, + ITEM_BUBBLEBANGLE = 605, + ITEM_BLASTO_CLAW = 606, + ITEM_BLASTO_CARD = 607, + ITEM_BLASTO_SEAL = 608, + ITEM_HYDRO_BAND = 609, + ITEM_PICHU_HAIR = 610, + ITEM_PICHU_CARD = 611, + ITEM_EXPRESS_TAG = 612, + ITEM_SHOCKER_CAPE = 613, + ITEM_PIKACHU_HAIR = 614, + ITEM_PIKACHU_CARD = 615, + ITEM_VOLT_CHARM = 616, + ITEM_VOLT_TORC = 617, + ITEM_RAICHU_HAIR = 618, + ITEM_RAICHU_CARD = 619, + ITEM_RAICHU_CREST = 620, + ITEM_ZAPPER_SCARF = 621, + ITEM_MEOWTH_CLAW = 622, + ITEM_MEOWTH_FANG = 623, + ITEM_COIN_CHARM = 624, + ITEM_BLING_RUFF = 625, + ITEM_PERSIAN_CLAW = 626, + ITEM_PERSIAN_FANG = 627, + ITEM_INSIGHT_ROCK = 628, + ITEM_NOBLE_SCARF = 629, + ITEM_CHIKO_CLAW = 630, + ITEM_CHIKO_CARD = 631, + ITEM_DAWN_JEWEL = 632, + ITEM_FRESH_BOW = 633, + ITEM_BAYLEEF_CLAW = 634, + ITEM_BAYLEEF_CARD = 635, + ITEM_BAYLEEF_SEAL = 636, + ITEM_SPICE_BOW = 637, + ITEM_MEGANI_CLAW = 638, + ITEM_MEGANI_CARD = 639, + ITEM_SHINY_CHARM = 640, + ITEM_BRIGHT_VEIL = 641, + ITEM_CYNDA_HAIR = 642, + ITEM_CYNDA_CLAW = 643, + ITEM_BLAZING_ROCK = 644, + ITEM_STORM_SASH = 645, + ITEM_QUILA_HAIR = 646, + ITEM_QUILA_CARD = 647, + ITEM_QUILA_CREST = 648, + ITEM_VOLCANO_TORC = 649, + ITEM_TYPHLO_GASP = 650, + ITEM_TYPHLO_FANG = 651, + ITEM_TYPHLO_SEAL = 652, + ITEM_BLAST_BANGLE = 653, + ITEM_TOTODI_DEW = 654, + ITEM_TOTODI_FANG = 655, + ITEM_WATER_HEART = 656, + ITEM_WASH_BOW = 657, + ITEM_CROCO_FANG = 658, + ITEM_CROCO_CARD = 659, + ITEM_SWIRL_ROCK = 660, + ITEM_ANGER_SCARF = 661, + ITEM_FERAL_CLAW = 662, + ITEM_FERAL_FANG = 663, + ITEM_FERAL_CREST = 664, + ITEM_HYDRO_JAW = 665, + ITEM_TREECK_THORN = 666, + ITEM_TREECK_CARD = 667, + ITEM_FOREST_ORE = 668, + ITEM_GUARD_RING = 669, + ITEM_GROVY_SHOOT = 670, + ITEM_GROVY_CARD = 671, + ITEM_JUNGLE_TAG = 672, + ITEM_GRASS_BLADE = 673, + ITEM_SCEPT_CLAW = 674, + ITEM_SCEPT_CARD = 675, + ITEM_SCEPT_SEAL = 676, + ITEM_DRAIN_BANGLE = 677, + ITEM_TORCHIC_HAIR = 678, + ITEM_TORCHIC_CARD = 679, + ITEM_HOT_PEBBLE = 680, + ITEM_FIRE_CAPE = 681, + ITEM_COMBUS_SWEAT = 682, + ITEM_COMBUS_CLAW = 683, + ITEM_CHARGE_TAG = 684, + ITEM_GUTSY_BAND = 685, + ITEM_BLAZI_CLAW = 686, + ITEM_BLAZI_CARD = 687, + ITEM_BLAZI_SEAL = 688, + ITEM_BLAZE_TORC = 689, + ITEM_MUDKIP_MUD = 690, + ITEM_MUDKIP_CARD = 691, + ITEM_MUD_JEWEL = 692, + ITEM_SPEED_SCARF = 693, + ITEM_MARSH_MUD = 694, + ITEM_MARSH_CARD = 695, + ITEM_MARSH_CREST = 696, + ITEM_MARSH_TORC = 697, + ITEM_SWAMP_MUD = 698, + ITEM_SWAMP_CARD = 699, + ITEM_SWAMP_SEAL = 700, + ITEM_SWAMP_BANGLE = 701, + ITEM_SKITTY_FANG = 702, + ITEM_SKITTY_CARD = 703, + ITEM_SMILE_PEBBLE = 704, + ITEM_HEAL_PENDANT = 705, + ITEM_DELCAT_HAIR = 706, + ITEM_DELCAT_FANG = 707, + ITEM_PRIM_PEBBLE = 708, + ITEM_GUARD_COLLAR = 709, + ITEM_LUCKY_LEAF = 710, + ITEM_TURTWIG_CARD = 711, + ITEM_SPROUT_ROCK = 712, + ITEM_LEAFY_HAT = 713, + ITEM_GROTLE_TWIG = 714, + ITEM_GROTLE_CLAW = 715, + ITEM_GROTLE_CREST = 716, + ITEM_WOODY_SCARF = 717, + ITEM_TORT_CLAW = 718, + ITEM_TORT_HORN = 719, + ITEM_TORT_SEAL = 720, + ITEM_FOREST_TORC = 721, + ITEM_CHIM_HAIR = 722, + ITEM_CHIM_FANG = 723, + ITEM_NIMBLE_CHARM = 724, + ITEM_EMBER_CAP = 725, + ITEM_MONFER_HAIR = 726, + ITEM_MONFER_FANG = 727, + ITEM_MONFER_CREST = 728, + ITEM_BURST_SASH = 729, + ITEM_INFERN_HAIR = 730, + ITEM_INFERN_FANG = 731, + ITEM_INFERN_SEAL = 732, + ITEM_BLAZING_RUFF = 733, + ITEM_PIPLUP_FOAM = 734, + ITEM_PIPLUP_CARD = 735, + ITEM_SEA_ORE = 736, + ITEM_WATER_CAPE = 737, + ITEM_PRIN_FOAM = 738, + ITEM_PRIN_CARD = 739, + ITEM_PRIN_CREST = 740, + ITEM_AQUA_BLADE = 741, + ITEM_EMPOL_CLAW = 742, + ITEM_EMPOL_HORN = 743, + ITEM_EMPOL_SEAL = 744, + ITEM_MARINE_CROWN = 745, + ITEM_MUNCH_DROOL = 746, + ITEM_MUNCH_CLAW = 747, + ITEM_TUMMY_CHARM = 748, + ITEM_GLUTTON_CAPE = 749, + ITEM_SNORLAX_GASP = 750, + ITEM_SNORLAX_FANG = 751, + ITEM_VALOR_CHARM = 752, + ITEM_GLEE_SCARF = 753, + ITEM_SCYTHER_FANG = 754, + ITEM_SCYTHER_CARD = 755, + ITEM_AMBUSH_ROCK = 756, + ITEM_STRIKE_RUFF = 757, + ITEM_SCIZOR_WING = 758, + ITEM_SCIZOR_CARD = 759, + ITEM_STEEL_CHARM = 760, + ITEM_RED_ARMLET = 761, + ITEM_LAPRAS_SONG = 762, + ITEM_LAPRAS_CARD = 763, + ITEM_WAVY_CHARM = 764, + ITEM_MYSTIC_SCARF = 765, + ITEM_EEVEE_TAIL = 766, + ITEM_EEVEE_CARD = 767, + ITEM_EVOLVE_CHARM = 768, + ITEM_EEVEE = 769, + ITEM_CLEFFA_DEW = 770, + ITEM_CLEFFA_CARD = 771, + ITEM_STARRY_ORE = 772, + ITEM_COMET_RING = 773, + ITEM_CLEF_CLAW = 774, + ITEM_CLEF_FANG = 775, + ITEM_MOON_JEWEL = 776, + ITEM_MOON_SCARF = 777, + ITEM_CLEFA_CLAW = 778, + ITEM_CLEFA_CARD = 779, + ITEM_MOON_ROCK = 780, + ITEM_FAIRY_BOW = 781, + ITEM_IGGLY_DEW = 782, + ITEM_IGGLY_CARD = 783, + ITEM_BOUNCY_CHARM = 784, + ITEM_PRETTY_BOW = 785, + ITEM_JIGGLY_SONG = 786, + ITEM_JIGGLY_CARD = 787, + ITEM_SLUMBER_ROCK = 788, + ITEM_SNOOZE_RING = 789, + ITEM_WIGGLY_HAIR = 790, + ITEM_WIGGLY_CARD = 791, + ITEM_BUDDY_ROCK = 792, + ITEM_FRIEND_TORC = 793, + ITEM_TOGEPI_DEW = 794, + ITEM_TOGEPI_CARD = 795, + ITEM_PURE_HEART = 796, + ITEM_ANGEL_SCARF = 797, + ITEM_TOGETIC_WING = 798, + ITEM_TOGETIC_CARD = 799, + ITEM_HAPPY_ROCK = 800, + ITEM_LUCK_BROOCH = 801, + ITEM_TOGEK_WING = 802, + ITEM_TOGEK_CARD = 803, + ITEM_OVATION_ROCK = 804, + ITEM_GLITTER_ROBE = 805, + ITEM_SNEASEL_CLAW = 806, + ITEM_SNEASEL_CARD = 807, + ITEM_DUSK_JEWEL = 808, + ITEM_CRUEL_RING = 809, + ITEM_WEAVILE_CLAW = 810, + ITEM_WEAVILE_FANG = 811, + ITEM_VILE_TAG = 812, + ITEM_RUIN_ARMLET = 813, + ITEM_TEDDI_CLAW = 814, + ITEM_TEDDI_CARD = 815, + ITEM_HONEY_ROCK = 816, + ITEM_HEAL_SCARF = 817, + ITEM_URSA_CLAW = 818, + ITEM_URSA_FANG = 819, + ITEM_CALMING_ROCK = 820, + ITEM_HIBER_SCARF = 821, + ITEM_TYRO_SWEAT = 822, + ITEM_TYRO_CARD = 823, + ITEM_MUSCLE_CHARM = 824, + ITEM_TYROGUE = 825, + ITEM_SMOOCH_SONG = 826, + ITEM_SMOOCH_CARD = 827, + ITEM_KISS_CHARM = 828, + ITEM_HEART_TIARA = 829, + ITEM_JYNX_SONG = 830, + ITEM_JYNX_CARD = 831, + ITEM_FROZEN_ORE = 832, + ITEM_RUIN_SCARF = 833, + ITEM_ELEKID_CLAW = 834, + ITEM_ELEKID_CARD = 835, + ITEM_JOLT_CHARM = 836, + ITEM_CURRENT_RING = 837, + ITEM_ELECTA_CLAW = 838, + ITEM_ELECTA_FANG = 839, + ITEM_CHARGE_SEAL = 840, + ITEM_VOLT_BANGLE = 841, + ITEM_ELECTI_CLAW = 842, + ITEM_ELECTI_CARD = 843, + ITEM_VOLTAIC_ROCK = 844, + ITEM_VOLTAIC_BAND = 845, + ITEM_MAGBY_CLAW = 846, + ITEM_MAGBY_CARD = 847, + ITEM_EMBER_JEWEL = 848, + ITEM_COAL_RING = 849, + ITEM_MAGMAR_CLAW = 850, + ITEM_MAGMAR_CARD = 851, + ITEM_ERUPT_ORE = 852, + ITEM_MAGMA_SCARF = 853, + ITEM_MAGMOR_CLAW = 854, + ITEM_MAGMOR_CARD = 855, + ITEM_VULCAN_ROCK = 856, + ITEM_BURNING_TORC = 857, + ITEM_AZURI_DEW = 858, + ITEM_AZURI_CARD = 859, + ITEM_FOUNT_CHARM = 860, + ITEM_WATER_FLOAT = 861, + ITEM_MARILL_DEW = 862, + ITEM_MARILL_CARD = 863, + ITEM_SURFER_ROCK = 864, + ITEM_BRINE_SCARF = 865, + ITEM_AZUMA_DEW = 866, + ITEM_AZUMA_CARD = 867, + ITEM_STREAM_CHARM = 868, + ITEM_DOTTED_SCARF = 869, + ITEM_PLUSLE_TAIL = 870, + ITEM_PLUSLE_CARD = 871, + ITEM_CHEER_ROCK = 872, + ITEM_PULSE_BOW = 873, + ITEM_MINUN_TAIL = 874, + ITEM_MINUN_CARD = 875, + ITEM_VOLT_HEART = 876, + ITEM_SPARK_TIE = 877, + ITEM_CAST_DEW = 878, + ITEM_CAST_CARD = 879, + ITEM_CLOUD_ROCK = 880, + ITEM_WEATHER_CAPE = 881, + ITEM_WYNAUT_TAIL = 882, + ITEM_WYNAUT_CARD = 883, + ITEM_GRIN_CHARM = 884, + ITEM_CHEERY_SCARF = 885, + ITEM_WOBBU_SWEAT = 886, + ITEM_WOBBU_CARD = 887, + ITEM_ENDURE_ROCK = 888, + ITEM_SUFFER_SCARF = 889, + ITEM_BIDOOF_TOOTH = 890, + ITEM_BIDOOF_CARD = 891, + ITEM_FALL_CHARM = 892, + ITEM_STOLID_SCARF = 893, + ITEM_BIBA_TOOTH = 894, + ITEM_BIBA_CARD = 895, + ITEM_RIVER_CHARM = 896, + ITEM_DAM_SCARF = 897, + ITEM_SHINX_CLAW = 898, + ITEM_SHINX_FANG = 899, + ITEM_FLASH_TAG = 900, + ITEM_ENERGY_SCARF = 901, + ITEM_LUXIO_CLAW = 902, + ITEM_LUXIO_FANG = 903, + ITEM_SPARK_TAG = 904, + ITEM_SPARK_SCARF = 905, + ITEM_LUXRAY_CLAW = 906, + ITEM_LUXRAY_FANG = 907, + ITEM_GLARE_TAG = 908, + ITEM_GLARE_SASH = 909, + ITEM_PACHI_TOOTH = 910, + ITEM_PACHI_CARD = 911, + ITEM_ROUSE_CHARM = 912, + ITEM_MIRACLE_BOW = 913, + ITEM_BUIZEL_FANG = 914, + ITEM_BUIZEL_CARD = 915, + ITEM_SWIMMER_ROCK = 916, + ITEM_SCREW_TORC = 917, + ITEM_FLOAT_FANG = 918, + ITEM_FLOAT_CARD = 919, + ITEM_RESCUE_ROCK = 920, + ITEM_FLOAT_AID = 921, + ITEM_DRIFLOO_GASP = 922, + ITEM_DRIFLOO_CARD = 923, + ITEM_WIND_HEART = 924, + ITEM_DRAFT_RING = 925, + ITEM_DRIFBLI_GASP = 926, + ITEM_DRIFBLI_CARD = 927, + ITEM_EASY_CHARM = 928, + ITEM_BREEZE_SCARF = 929, + ITEM_CHERUBI_SEED = 930, + ITEM_CHERUBI_CARD = 931, + ITEM_CUTE_ORE = 932, + ITEM_CHARM_BOW = 933, + ITEM_CHERRIM_DEW = 934, + ITEM_CHERRIM_CARD = 935, + ITEM_SWEET_AROMA = 936, + ITEM_PETAL_DRESS = 937, + ITEM_BONSLY_DEW = 938, + ITEM_BONSLY_CARD = 939, + ITEM_ARID_TAG = 940, + ITEM_TEARY_CAPE = 941, + ITEM_SUDO_SWEAT = 942, + ITEM_SUDO_CARD = 943, + ITEM_DRAIN_ROCK = 944, + ITEM_FAKE_TORC = 945, + ITEM_JUNIOR_BEAM = 946, + ITEM_JUNIOR_CARD = 947, + ITEM_MIMIC_PEBBLE = 948, + ITEM_COPY_MASK = 949, + ITEM_MIME_KEY = 950, + ITEM_MIME_CARD = 951, + ITEM_BULWARK_ROCK = 952, + ITEM_BARRIER_BOW = 953, + ITEM_HAPPINY_DEW = 954, + ITEM_HAPPINY_CARD = 955, + ITEM_PLAY_TAG = 956, + ITEM_NURTURE_CAPE = 957, + ITEM_CHANSEY_SONG = 958, + ITEM_CHANSEY_CARD = 959, + ITEM_LUCKY_CHARM = 960, + ITEM_LUCKY_SCARF = 961, + ITEM_BLISSEY_SONG = 962, + ITEM_BLISSEY_CARD = 963, + ITEM_AMITY_ROCK = 964, + ITEM_FAITH_RING = 965, + ITEM_GIBLE_FANG = 966, + ITEM_GIBLE_CARD = 967, + ITEM_DRAGON_JEWEL = 968, + ITEM_DRAGON_TIE = 969, + ITEM_GABITE_CLAW = 970, + ITEM_GABITE_FANG = 971, + ITEM_STAR_ROCK = 972, + ITEM_METEOR_TORC = 973, + ITEM_GAR_CLAW = 974, + ITEM_GAR_FANG = 975, + ITEM_SPEED_TAG = 976, + ITEM_MACH_SCARF = 977, + ITEM_RIOLU_TAIL = 978, + ITEM_RIOLU_CARD = 979, + ITEM_VALIANT_ROCK = 980, + ITEM_EMIT_RING = 981, + ITEM_LUCARIO_FANG = 982, + ITEM_LUCARIO_CARD = 983, + ITEM_PLEDGE_ROCK = 984, + ITEM_RAVAGE_RING = 985, + ITEM_MANTYKE_BEAM = 986, + ITEM_MANTYKE_CARD = 987, + ITEM_WAFT_ROCK = 988, + ITEM_OCEAN_BOW = 989, + ITEM_MANTINE_FOAM = 990, + ITEM_MANTINE_CARD = 991, + ITEM_SUNSET_ROCK = 992, + ITEM_HORIZON_BOW = 993, + ITEM_PHIONE_SONG = 994, + ITEM_PHIONE_CARD = 995, + ITEM_WAVE_JEWEL = 996, + ITEM_RIPPLE_CAPE = 997, + ITEM_VULPIX_TAIL = 998, + ITEM_VULPIX_CARD = 999, + ITEM_VULPIX_TAG = 1000, + ITEM_GLOWING_BOW = 1001, + ITEM_NINE_HAIR = 1002, + ITEM_NINE_CARD = 1003, + ITEM_NINE_SEAL = 1004, + ITEM_AFIRE_COLLAR = 1005, + ITEM_PHANPY_CLAW = 1006, + ITEM_PHANPY_CARD = 1007, + ITEM_PHANPY_TAG = 1008, + ITEM_VALUE_RUFF = 1009, + ITEM_DONPHAN_FANG = 1010, + ITEM_DONPHAN_CARD = 1011, + ITEM_DON_CREST = 1012, + ITEM_ARMOR_SCARF = 1013, + ITEM_CATER_BELT = 1014, + ITEM_DEFENSE_BOW = 1015, + ITEM_GLITTERY_BOW = 1016, + ITEM_WEEDLE_BOW = 1017, + ITEM_KAKUNA_SCARF = 1018, + ITEM_CHARGE_SCARF = 1019, + ITEM_PIDGEY_BOW = 1020, + ITEM_PIDGEO_SCARF = 1021, + ITEM_PIDGEOT_TORC = 1022, + ITEM_RATTA_SCARF = 1023, + ITEM_OVERCOME_BOW = 1024, + ITEM_QUIRKY_BOW = 1025, + ITEM_WING_SCARF = 1026, + ITEM_LEASH_BOW = 1027, + ITEM_SHOCK_RUFF = 1028, + ITEM_SAND_SCARF = 1029, + ITEM_SANDY_TORC = 1030, + ITEM_POINTY_SCARF = 1031, + ITEM_RETURN_SCARF = 1032, + ITEM_IMPACT_TORC = 1033, + ITEM_HALVE_SCARF = 1034, + ITEM_THORNY_SCARF = 1035, + ITEM_KING_SASH = 1036, + ITEM_DODGE_BOW = 1037, + ITEM_ABSORB_SCARF = 1038, + ITEM_ODD_BOW = 1039, + ITEM_GUARD_HAT = 1040, + ITEM_AROMA_SCARF = 1041, + ITEM_MOVING_SCARF = 1042, + ITEM_FIRM_HAT = 1043, + ITEM_GAZE_GOGGLES = 1044, + ITEM_VENOMOTH_BOW = 1045, + ITEM_DIGLETT_HAT = 1046, + ITEM_DUGTRIO_BOW = 1047, + ITEM_PSYDUCK_HAT = 1048, + ITEM_PADDLE_SCARF = 1049, + ITEM_MANKEY_TORC = 1050, + ITEM_NULLIFY_BELT = 1051, + ITEM_GROWL_SCARF = 1052, + ITEM_LEGEND_BOW = 1053, + ITEM_DAMP_BOW = 1054, + ITEM_POLI_BOW = 1055, + ITEM_BOLD_BELT = 1056, + ITEM_PREDICT_TORC = 1057, + ITEM_PSYCHIC_TORC = 1058, + ITEM_SPARKLE_RUFF = 1059, + ITEM_IMPISH_BAND = 1060, + ITEM_STRONG_BELT = 1061, + ITEM_MACHAMP_BELT = 1062, + ITEM_BELL_BOW = 1063, + ITEM_DIGEST_SCARF = 1064, + ITEM_VICTREE_TORC = 1065, + ITEM_TANGLE_BOW = 1066, + ITEM_TENTA_CAPE = 1067, + ITEM_GEODUDE_TORC = 1068, + ITEM_ROCKY_TORC = 1069, + ITEM_RUGGED_SASH = 1070, + ITEM_HEATED_BOW = 1071, + ITEM_SUNLIGHT_BOW = 1072, + ITEM_SLOWPOKE_HAT = 1073, + ITEM_SLOW_SCARF = 1074, + ITEM_MAGNE_TORC = 1075, + ITEM_MAGNETON_BOW = 1076, + ITEM_BULLSEYE_BOW = 1077, + ITEM_BUDDY_TORC = 1078, + ITEM_FIGHT_TORC = 1079, + ITEM_GENTLE_BOW = 1080, + ITEM_NORTH_TORC = 1081, + ITEM_GRIMY_SCARF = 1082, + ITEM_SLIMY_BOW = 1083, + ITEM_SHELL_TORC = 1084, + ITEM_COVER_ARMOR = 1085, + ITEM_GASTLY_VEIL = 1086, + ITEM_SLIP_SCARF = 1087, + ITEM_SUNGLASSES = 1088, + ITEM_TRUST_BROOCH = 1089, + ITEM_DROWZEE_TIE = 1090, + ITEM_DREAM_COIN = 1091, + ITEM_KRABBY_BOW = 1092, + ITEM_SUPER_SASH = 1093, + ITEM_BALL_SCARF = 1094, + ITEM_ELECTRO_BOW = 1095, + ITEM_REPEL_SCARF = 1096, + ITEM_EXEGGU_SASH = 1097, + ITEM_CUBONE_SCARF = 1098, + ITEM_MAROWAK_TORC = 1099, + ITEM_LICKY_SCARF = 1100, + ITEM_KOFFING_BOW = 1101, + ITEM_WEEZ_SCARF = 1102, + ITEM_SOLID_SHIELD = 1103, + ITEM_PIERCE_DRILL = 1104, + ITEM_STICKY_BOW = 1105, + ITEM_KANG_APRON = 1106, + ITEM_HORSEA_BOW = 1107, + ITEM_SWIRL_SCARF = 1108, + ITEM_GOLDEEN_BOW = 1109, + ITEM_SEAKING_BOW = 1110, + ITEM_RECOVER_TORC = 1111, + ITEM_STARMIE_BELT = 1112, + ITEM_PINSIR_SASH = 1113, + ITEM_RUSHING_BOW = 1114, + ITEM_MAGIKARP_BOW = 1115, + ITEM_TEMPEST_SASH = 1116, + ITEM_DITTO_TORC = 1117, + ITEM_AI_BROOCH = 1118, + ITEM_SPIKE_BROOCH = 1119, + ITEM_AGED_SCARF = 1120, + ITEM_KABUTO_HAT = 1121, + ITEM_KABU_TORC = 1122, + ITEM_OLD_BROOCH = 1123, + ITEM_DRAGON_SASH = 1124, + ITEM_ALOFT_MANTLE = 1125, + ITEM_MIRAGE_CAPE = 1126, + ITEM_SENTRET_RUFF = 1127, + ITEM_BODY_COLLAR = 1128, + ITEM_EXPOSE_SPECS = 1129, + ITEM_NOCTOWL_TORC = 1130, + ITEM_MORNING_BOW = 1131, + ITEM_LEDIAN_BOW = 1132, + ITEM_SPINA_SCARF = 1133, + ITEM_ARIADOS_BOW = 1134, + ITEM_SLASH_BOW = 1135, + ITEM_SHINE_TORC = 1136, + ITEM_LANTURN_BOW = 1137, + ITEM_LIVELY_SCARF = 1138, + ITEM_XATU_BOW = 1139, + ITEM_WOOL_BOW = 1140, + ITEM_FLUFFY_SCARF = 1141, + ITEM_SACRED_SCARF = 1142, + ITEM_BRIGHT_TIARA = 1143, + ITEM_RAIN_CROWN = 1144, + ITEM_ZEPHYR_BOW = 1145, + ITEM_SKIP_SCARF = 1146, + ITEM_COTTON_TORC = 1147, + ITEM_REVENGE_RUFF = 1148, + ITEM_HASTY_BOW = 1149, + ITEM_SUN_SCARF = 1150, + ITEM_CHITIN_BOW = 1151, + ITEM_WOOPER_BOW = 1152, + ITEM_QUAG_TORC = 1153, + ITEM_MURKROW_HAT = 1154, + ITEM_KING_CAP = 1155, + ITEM_MISDREA_CAPE = 1156, + ITEM_CRYPTIC_SASH = 1157, + ITEM_REVERSE_BOW = 1158, + ITEM_ROBUST_BOW = 1159, + ITEM_DENSE_PONCHO = 1160, + ITEM_ESCAPE_SCARF = 1161, + ITEM_TAKEOFF_RUFF = 1162, + ITEM_QUARTZ_TORC = 1163, + ITEM_SNUB_CAPE = 1164, + ITEM_STERN_SASH = 1165, + ITEM_QWILFISH_BOW = 1166, + ITEM_SHUCKLE_BOW = 1167, + ITEM_HORN_TORC = 1168, + ITEM_LAVA_BOW = 1169, + ITEM_TORRID_SCARF = 1170, + ITEM_FRIGID_BOW = 1171, + ITEM_FROST_TORC = 1172, + ITEM_EAGER_BROOCH = 1173, + ITEM_REACH_BOW = 1174, + ITEM_PSY_BOW = 1175, + ITEM_SNOW_BROOCH = 1176, + ITEM_SKAR_CAPE = 1177, + ITEM_DARK_CHOKER = 1178, + ITEM_PIT_FANG = 1179, + ITEM_TORNADO_BOW = 1180, + ITEM_VIRTUAL_BOW = 1181, + ITEM_DELUSION_BOW = 1182, + ITEM_PAINT_SCARF = 1183, + ITEM_MILKY_SCARF = 1184, + ITEM_LARVITAR_BOW = 1185, + ITEM_PUPITA_SCARF = 1186, + ITEM_CRASH_CLAW = 1187, + ITEM_POOCH_COLLAR = 1188, + ITEM_DARK_FANG = 1189, + ITEM_MERRY_SCARF = 1190, + ITEM_LINOONE_RUFF = 1191, + ITEM_WURMPLE_BOW = 1192, + ITEM_TOUGH_SCARF = 1193, + ITEM_VIVID_SILK = 1194, + ITEM_GUARD_BOW = 1195, + ITEM_DUSTOX_BOW = 1196, + ITEM_KELP_HAT = 1197, + ITEM_JOLLY_SCARF = 1198, + ITEM_LUDICOLO_HAT = 1199, + ITEM_SEEDOT_HAT = 1200, + ITEM_NUZLEAF_BOW = 1201, + ITEM_SHIFTRY_BELT = 1202, + ITEM_TAILLOW_BOW = 1203, + ITEM_MIDAIR_SCARF = 1204, + ITEM_WINGULL_BOW = 1205, + ITEM_STOCK_SCARF = 1206, + ITEM_SENSING_HAT = 1207, + ITEM_MAGICAL_BOW = 1208, + ITEM_CARING_SCARF = 1209, + ITEM_BLISS_SCARF = 1210, + ITEM_BLOCKING_BOW = 1211, + ITEM_MOBILE_BOW = 1212, + ITEM_THWART_BOW = 1213, + ITEM_SLAK_SCARF = 1214, + ITEM_VIGOR_SASH = 1215, + ITEM_LAZY_RUFF = 1216, + ITEM_NOVICE_SCARF = 1217, + ITEM_NINJA_RUFF = 1218, + ITEM_AWE_MANTLE = 1219, + ITEM_GOOD_EARRING = 1220, + ITEM_NICE_BANGLE = 1221, + ITEM_GREAT_TORC = 1222, + ITEM_MAKUHIT_BELT = 1223, + ITEM_THRUST_BELT = 1224, + ITEM_NOSE_TORC = 1225, + ITEM_SABLE_SCOPE = 1226, + ITEM_DECEIT_MASK = 1227, + ITEM_IRON_TORC = 1228, + ITEM_METAL_BANGLE = 1229, + ITEM_IRON_HELMET = 1230, + ITEM_INTUIT_BOW = 1231, + ITEM_PONDER_SASH = 1232, + ITEM_PUNISH_TORC = 1233, + ITEM_PROTECT_MASK = 1234, + ITEM_NEON_SCARF = 1235, + ITEM_EVENING_BOW = 1236, + ITEM_THORNED_TORC = 1237, + ITEM_GULPIN_BOW = 1238, + ITEM_SWALOT_BELT = 1239, + ITEM_CARVA_SASH = 1240, + ITEM_VICIOUS_BOW = 1241, + ITEM_SPOUT_SCARF = 1242, + ITEM_HUGE_BOW = 1243, + ITEM_NUMEL_BOW = 1244, + ITEM_ERUPT_SCARF = 1245, + ITEM_SOOTY_SASH = 1246, + ITEM_SPRING_BOW = 1247, + ITEM_SCHEME_SCARF = 1248, + ITEM_HULA_BOW = 1249, + ITEM_DESERT_BOW = 1250, + ITEM_VIBRA_SCARF = 1251, + ITEM_RED_GLASSES = 1252, + ITEM_DESERT_SASH = 1253, + ITEM_CACTURNE_HAT = 1254, + ITEM_TUFT_BOW = 1255, + ITEM_CLOUD_RUFF = 1256, + ITEM_STRONG_SASH = 1257, + ITEM_SEVIPER_BOW = 1258, + ITEM_LUNATON_TORC = 1259, + ITEM_SOLROCK_BOW = 1260, + ITEM_SOAK_SCARF = 1261, + ITEM_WHISCASH_BOW = 1262, + ITEM_BOSSY_SCARF = 1263, + ITEM_COWER_SASH = 1264, + ITEM_BAL_BROOCH = 1265, + ITEM_CLAYDOL_TORC = 1266, + ITEM_BIND_SCARF = 1267, + ITEM_CRADILY_BOW = 1268, + ITEM_GUARD_CLAW = 1269, + ITEM_RIGID_CAPE = 1270, + ITEM_ADMIRE_SCARF = 1271, + ITEM_GRACE_SCARF = 1272, + ITEM_KECLEON_TORC = 1273, + ITEM_SHUPPET_CAPE = 1274, + ITEM_OMINOUS_TORC = 1275, + ITEM_DUSKULL_RUFF = 1276, + ITEM_ILLUSION_BOW = 1277, + ITEM_TROPIUS_BOW = 1278, + ITEM_CHIME_SCARF = 1279, + ITEM_PERISH_TORC = 1280, + ITEM_CHILLY_HAT = 1281, + ITEM_HAIL_SCARF = 1282, + ITEM_SLEET_BOW = 1283, + ITEM_SAFE_SCARF = 1284, + ITEM_WALREIN_TORC = 1285, + ITEM_CLAM_BROOCH = 1286, + ITEM_DEEP_TORC = 1287, + ITEM_GORE_SCARF = 1288, + ITEM_RELI_TORC = 1289, + ITEM_LUVDISC_TORC = 1290, + ITEM_CRAG_HELMET = 1291, + ITEM_OUTLAST_BOW = 1292, + ITEM_SALA_CAPE = 1293, + ITEM_BELDUM_TORC = 1294, + ITEM_METANG_SCARF = 1295, + ITEM_META_TORC = 1296, + ITEM_STARLY_BOW = 1297, + ITEM_REGRET_TORC = 1298, + ITEM_GUTS_SASH = 1299, + ITEM_STILL_BOW = 1300, + ITEM_KRICKE_TORC = 1301, + ITEM_BUDEW_SCARF = 1302, + ITEM_BOUQUET_CAPE = 1303, + ITEM_HARD_HELMET = 1304, + ITEM_SKULL_HELMET = 1305, + ITEM_REBOUND_BOW = 1306, + ITEM_BLOCK_BROOCH = 1307, + ITEM_STRAW_CAPE = 1308, + ITEM_WORMA_BOW = 1309, + ITEM_MOTHIM_BOW = 1310, + ITEM_NECTAR_BOW = 1311, + ITEM_VESPI_TORC = 1312, + ITEM_AWAKE_BOW = 1313, + ITEM_GASTRO_TORC = 1314, + ITEM_AMBIPOM_BOW = 1315, + ITEM_DEFROST_RUFF = 1316, + ITEM_ALLURE_COAT = 1317, + ITEM_MAGIC_HAT = 1318, + ITEM_HONCH_CAPE = 1319, + ITEM_GLAMEOW_BOW = 1320, + ITEM_SCARY_BELT = 1321, + ITEM_CHING_TORC = 1322, + ITEM_STINKY_SCARF = 1323, + ITEM_STENCH_SASH = 1324, + ITEM_IMAGE_BROOCH = 1325, + ITEM_MIRROR_TORC = 1326, + ITEM_CHATOT_SCARF = 1327, + ITEM_THICK_SCARF = 1328, + ITEM_GRIT_VEIL = 1329, + ITEM_SKORUPI_BOW = 1330, + ITEM_DUST_SCARF = 1331, + ITEM_CROA_TORC = 1332, + ITEM_TOXI_BELT = 1333, + ITEM_CARNI_BOW = 1334, + ITEM_SWIM_BOW = 1335, + ITEM_LUMI_TORC = 1336, + ITEM_SNOWY_TORC = 1337, + ITEM_FROZEN_CAPE = 1338, + ITEM_BUILDER_SASH = 1339, + ITEM_FLABBY_BELT = 1340, + ITEM_RHYPERI_TORC = 1341, + ITEM_CLINGING_BOW = 1342, + ITEM_YANMEGA_BOW = 1343, + ITEM_GLISCOR_CAPE = 1344, + ITEM_GLACIER_CAPE = 1345, + ITEM_BEST_SCARF = 1346, + ITEM_GALLANT_TORC = 1347, + ITEM_PROBO_HAT = 1348, + ITEM_UNLUCKY_SASH = 1349, + ITEM_FROSLASS_BOW = 1350, + ITEM_PURIFY_VEIL = 1351, + ITEM_UNNAMED_0x548 = 1352, + ITEM_UNNAMED_0x549 = 1353, + ITEM_UNNAMED_0x54A = 1354, + ITEM_UNNAMED_0x54B = 1355, + ITEM_UNNAMED_0x54C = 1356, + ITEM_UNNAMED_0x54D = 1357, + ITEM_UNNAMED_0x54E = 1358, + ITEM_UNNAMED_0x54F = 1359, + ITEM_UNNAMED_0x550 = 1360, + ITEM_UNNAMED_0x551 = 1361, + ITEM_UNNAMED_0x552 = 1362, + ITEM_UNNAMED_0x553 = 1363, + ITEM_UNNAMED_0x554 = 1364, + ITEM_UNNAMED_0x555 = 1365, + ITEM_UNNAMED_0x556 = 1366, + ITEM_UNNAMED_0x557 = 1367, + ITEM_UNNAMED_0x558 = 1368, + ITEM_UNNAMED_0x559 = 1369, + ITEM_UNNAMED_0x55A = 1370, + ITEM_UNNAMED_0x55B = 1371, + ITEM_UNNAMED_0x55C = 1372, + ITEM_UNNAMED_0x55D = 1373, + ITEM_UNNAMED_0x55E = 1374, + ITEM_UNNAMED_0x55F = 1375, + ITEM_UNNAMED_0x560 = 1376, + ITEM_UNNAMED_0x561 = 1377, + ITEM_UNNAMED_0x562 = 1378, + ITEM_UNNAMED_0x563 = 1379, + ITEM_UNNAMED_0x564 = 1380, + ITEM_UNNAMED_0x565 = 1381, + ITEM_UNNAMED_0x566 = 1382, + ITEM_UNNAMED_0x567 = 1383, + ITEM_UNNAMED_0x568 = 1384, + ITEM_UNNAMED_0x569 = 1385, + ITEM_UNNAMED_0x56A = 1386, + ITEM_UNNAMED_0x56B = 1387, + ITEM_UNNAMED_0x56C = 1388, + ITEM_UNNAMED_0x56D = 1389, + ITEM_UNNAMED_0x56E = 1390, + ITEM_UNNAMED_0x56F = 1391, + ITEM_UNNAMED_0x570 = 1392, + ITEM_UNNAMED_0x571 = 1393, + ITEM_UNNAMED_0x572 = 1394, + ITEM_UNNAMED_0x573 = 1395, + ITEM_UNNAMED_0x574 = 1396, + ITEM_UNNAMED_0x575 = 1397, + ITEM_UNNAMED_0x576 = 1398, + ITEM_UNNAMED_0x577 = 1399, +}; + +enum item_category { + CATEGORY_THROWN_LINE = 0, + CATEGORY_THROWN_ARC = 1, + CATEGORY_BERRIES_SEEDS_VITAMINS = 2, + CATEGORY_FOOD_GUMMIES = 3, + CATEGORY_HELD_ITEMS = 4, + CATEGORY_TMS_HMS = 5, + CATEGORY_POKE = 6, // Money + CATEGORY_UNK_7 = 7, + CATEGORY_OTHER = 8, + CATEGORY_ORBS = 9, + CATEGORY_LINK_BOX = 10, + CATEGORY_USED_TM = 11, + CATEGORY_TREASURE_BOXES_1 = 12, + CATEGORY_TREASURE_BOXES_2 = 13, + CATEGORY_TREASURE_BOXES_3 = 14, + CATEGORY_EXCLUSIVE_ITEMS = 15, +}; + +enum item_flag { + ITEM_FLAG_EXISTS = 1 << 0, + ITEM_FLAG_IN_SHOP = 1 << 1, // in a Kecleon shop + ITEM_FLAG_UNPAID = 1 << 2, // Picked up in Kecleon shop but not paid for yet + ITEM_FLAG_STICKY = 1 << 3, + ITEM_FLAG_SET = 1 << 4 // This item can be thrown by pressing L+R instead of having to go to the bag menu. +}; + +enum item_ai_flag { + ITEM_AI_FLAG_TARGET_SELF, + ITEM_AI_FLAG_TARGET_ALLY, + ITEM_AI_FLAG_TARGET_ENEMY, + NUM_ITEM_AI_FLAGS +}; + +enum item_target_flag { + ITEM_TARGET_OTHER = 1 << 0, + ITEM_TARGET_ALLY = 1 << 1 +}; + +#define GROUND_ITEM_TOOLBOX_INDEX 0x80 +#define HELD_ITEM_TOOLBOX_INDEX 0x81 +#define INVENTORY_SIZE 52 +#define NUMBER_OF_ITEM_IDS (ITEM_UNNAMED_0x577 + 1) + +// Item info +struct item { + // 0x0: flags: 1-byte bitfield + volatile u8 flags; + // bool8 f_exists : 1; // Validity flag + // bool8 f_in_shop : 1; // In a Kecleon Shop + // bool8 f_unpaid : 1; // Picked up from a Kecleon Shop but not paid for yet + // bool8 f_sticky : 1; // Sticky + // bool8 f_set : 1; // Usable by L+R + // bool8 flag_unk5 : 1; + // // For stolen items to recover from outlaws (has red X)? Could be for other items for other + // // ypes of missions? (Uncertain) + // bool8 f_unk_mission_item1 : 1; + // // For stolen items to recover from outlaws (has red X)? Could be for other items for other + // // types of missions? (Uncertain) Definitely used temporarily when sorting the items in + // // storage. + // bool8 f_unk_mission_item2 : 1; + // 0x1: For bag items. 0 for none, 1 if held by the leader, 2 for the second party member, etc. + u8 held_by; + // 0x2: Only for stackable items. Will be 0 if unapplicable. For Poké, this is an "amount code" + // rather than the literal amount (see MONEY_QUANTITY_TABLE) + u16 quantity; + enum item_id id; // 0x4 +}; + +struct bag_items_inner { + /* 0x0 */ struct item bag_items[INVENTORY_SIZE]; +}; + +struct bag_items { + u8 fill0[0x384]; + /* 0x384 */ struct bag_items_inner *bag_items; +}; + +#endif //PMDSKY_ITEM_H diff --git a/include/overlay_29_0230E8F0.h b/include/overlay_29_0230E8F0.h deleted file mode 100644 index e1b78991..00000000 --- a/include/overlay_29_0230E8F0.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef PMDSKY_OVERLAY_29_0230E8F0_H -#define PMDSKY_OVERLAY_29_0230E8F0_H - -#include "dungeon_mode.h" - -// Checks if an entity pointer points to a valid entity (not entity type 0, which represents no entity). -bool8 EntityIsValid__0230E8F0(struct entity *entity); - -#endif //PMDSKY_OVERLAY_29_0230E8F0_H diff --git a/include/overlay_29_0232E250.h b/include/overlay_29_0232E250.h index 27d0a03d..35c8e17c 100644 --- a/include/overlay_29_0232E250.h +++ b/include/overlay_29_0232E250.h @@ -3,6 +3,7 @@ #include "dungeon_mode.h" #include "dungeon_mode_common.h" +#include "item.h" // Checks if an entity pointer points to a valid entity (not entity type 0, which represents no entity). bool8 EntityIsValidMoveEffects__0232E250(struct entity *entity); diff --git a/include/overlay_31_02382820.h b/include/overlay_31_02382820.h index cd49cb94..3ecb4bf3 100644 --- a/include/overlay_31_02382820.h +++ b/include/overlay_31_02382820.h @@ -1,5 +1,5 @@ -#ifndef PMDSKY_OVERLAY_3102382820_H -#define PMDSKY_OVERLAY_3102382820_H +#ifndef PMDSKY_OVERLAY_31_02382820_H +#define PMDSKY_OVERLAY_31_02382820_H #include "main_020348E4.h" #include "util.h" @@ -94,4 +94,4 @@ void StairsSubheadingCallback(struct Window* window); -#endif //PMDSKY_OVERLAY_3102382820_H +#endif //PMDSKY_OVERLAY_31_02382820_H diff --git a/main.lsf b/main.lsf index dde4c04a..08f35eff 100644 --- a/main.lsf +++ b/main.lsf @@ -220,6 +220,9 @@ Overlay OVY_28 Overlay OVY_29 { After OVY_10 + Object asm/overlay_29_rodata_0234FD04.o + Object asm/overlay_29_data_023534E0.o + Object asm/overlay_29_bss_02353860.o Object src/poly_text.o Object asm/overlay_29_022DC314.o Object src/overlay_29_022DEAB0.o @@ -246,7 +249,7 @@ Overlay OVY_29 Object asm/overlay_29_022EE36C.o Object src/overlay_29_022EF7A0.o Object asm/overlay_29_022EF7C4.o - Object src/dungeon_util_1.o + Object src/dungeon_util.o Object asm/overlay_29_022EFA6C.o Object src/overlay_29_022F0590.o Object asm/overlay_29_022F05B4.o @@ -300,8 +303,10 @@ Overlay OVY_29 Object asm/overlay_29_02308FE0.o Object src/overlay_29_0230A994.o Object asm/overlay_29_0230A9B8.o - Object src/overlay_29_0230E8F0.o - Object asm/overlay_29_0230E914.o + Object src/dungeon_ai_items.o + Object asm/overlay_29_data_02353700.o + Object asm/overlay_29_bss_0237CA18.o + Object asm/overlay_29_0230EDB0.o Object src/overlay_29_0230F008.o Object asm/overlay_29_0230F02C.o Object src/overlay_29_0230F980.o @@ -344,8 +349,8 @@ Overlay OVY_29 Object asm/overlay_29_0232145C.o Object src/overlay_29_02322DB8.o Object asm/overlay_29_02322DDC.o - Object asm/overlay_29_02352A54.o Object src/dungeon_move.o + Object asm/overlay_29_rodata_02352A6C.o Object asm/overlay_29_02324698.o Object src/overlay_29_02325620.o Object asm/overlay_29_02325644.o @@ -385,7 +390,6 @@ Overlay OVY_29 Object asm/overlay_29_0234DDF4.o Object src/overlay_29_0234EC14.o Object asm/overlay_29_0234EC38.o - Object asm/overlay_29_0238280C.o } Overlay OVY_30 { diff --git a/src/dg_random.c b/src/dg_random.c index 03ea550f..45ac4769 100644 --- a/src/dg_random.c +++ b/src/dg_random.c @@ -26,7 +26,7 @@ s32 DungeonRandRange(s32 from, s32 to) } } -u8 DungeonRandOutcome__022EAB20(s32 percentChance) +bool8 DungeonRandOutcome__022EAB20(s32 percentChance) { if ((((DungeonRand16Bit() & 0xFFFF) * 100) >> 16) < percentChance) { @@ -35,7 +35,7 @@ u8 DungeonRandOutcome__022EAB20(s32 percentChance) return FALSE; } -u8 DungeonRandOutcome__022EAB50(s32 percentChance) +bool8 DungeonRandOutcome__022EAB50(s32 percentChance) { if ((((DungeonRand16Bit() & 0xFFFF) * 100) >> 16) < percentChance) { diff --git a/src/dungeon_ai.c b/src/dungeon_ai.c index f8325a2b..4b270974 100644 --- a/src/dungeon_ai.c +++ b/src/dungeon_ai.c @@ -1,8 +1,9 @@ #include "dungeon_ai.h" #include "dg_random.h" +#include "direction.h" #include "dungeon_capabilities_1.h" +#include "dungeon_util_static.h" #include "dungeon_util.h" -#include "dungeon_util_1.h" #ifdef JAPAN #define CANNOT_USE_ITEM_MESSAGE 0xB2D diff --git a/src/dungeon_ai_items.c b/src/dungeon_ai_items.c new file mode 100644 index 00000000..fb2ada99 --- /dev/null +++ b/src/dungeon_ai_items.c @@ -0,0 +1,213 @@ +#include "dungeon_ai_items.h" +#include "dg_random.h" +#include "direction.h" +#include "dungeon_capabilities_1.h" +#include "dungeon_util_static.h" +#include "item.h" + +#define NUM_POTENTIAL_ROCK_TARGETS 20 + +u32 AI_THROWN_ITEM_PROBABILITIES[NUM_DIRECTIONS] = {0}; +u32 AI_THROWN_ITEM_DIRECTIONS[NUM_DIRECTIONS] = {0}; + +extern volatile s32 AI_THROWN_ITEM_ACTION_CHOICE_COUNT; +extern struct bag_items *BAG_ITEMS_PTR_MIRROR; + +extern void GetPossibleAiThrownItemDirections(struct entity *pokemon, s32 thrown_ai_flag, struct item *item, bool8 ignore_roll_chance); +extern void SetMonsterActionFields(struct action_data *action_pointer, u16 action); +extern bool8 IqSkillIsEnabled(struct entity *pokemon, u8 iq_skill); +extern const struct tile *GetTile(s32 x, s32 y); +extern bool8 TestItemAiFlag(s16 id, s32 aiFlag); +extern enum item_category GetItemCategoryVeneer(s16 index); +extern void GetPossibleAiArcItemTargets(struct entity *pokemon, struct item *item, struct position potential_targets[], bool8 ignore_roll_chance); +extern s32 GetDirectionTowardsPosition(struct position *origin_pos, struct position *target_pos); +extern struct item *GetItemInfo(struct entity *entity); +extern u32 GetAiUseItemProbability(struct entity *target_pokemon, struct item *item, u32 item_target_flags); +extern bool8 MonsterCanThrowItems(struct monster *pokemon); + +bool8 EntityIsValid__0230E8F0(struct entity *entity) +{ + if (entity == NULL) + { + return FALSE; + } + return entity->type != ENTITY_NOTHING; +} + +void AiDecideUseItem(struct entity *pokemon) +{ + struct monster *pokemon_info = GetEntInfo(pokemon); + struct item *item; + struct position potential_target_positions[NUM_POTENTIAL_ROCK_TARGETS]; + s32 i; + u32 chosen_target_index; + if (CheckVariousConditions(pokemon)) + { + pokemon_info->use_held_item = FALSE; + return; + } + if (pokemon_info->use_held_item) + { + u8 selected_toolbox_index; + item = &pokemon_info->held_item; + if (!ItemExists(item->flags)) + return; + + selected_toolbox_index = HELD_ITEM_TOOLBOX_INDEX; + enum item_category item_type = GetItemCategoryVeneer(item->id); + if (item_type == CATEGORY_THROWN_LINE) + { + GetPossibleAiThrownItemDirections(pokemon, ITEM_AI_FLAG_TARGET_ENEMY, item, TRUE); + for (i = 0; i < AI_THROWN_ITEM_ACTION_CHOICE_COUNT; i++) + { + if (DungeonRandOutcome__022EAB20(AI_THROWN_ITEM_PROBABILITIES[i])) + { + SetMonsterActionFields(&pokemon_info->action, ACTION_THROW_ITEM_AI); + pokemon_info->action.action_parameters[0].action_use_idx = selected_toolbox_index; + pokemon_info->action.action_parameters[0].item_pos.x = pokemon->pos.x; + pokemon_info->action.action_parameters[0].item_pos.y = pokemon->pos.y; + pokemon_info->action.direction = (enum direction_id) (AI_THROWN_ITEM_DIRECTIONS[i] & DIRECTION_MASK); + break; + } + } + if (i == AI_THROWN_ITEM_ACTION_CHOICE_COUNT) + { + SetMonsterActionFields(&pokemon_info->action, ACTION_SECOND_THOUGHTS); + } + } + else if (item_type == CATEGORY_THROWN_ARC) + { + GetPossibleAiArcItemTargets(pokemon, item, potential_target_positions, TRUE); + if (AI_THROWN_ITEM_ACTION_CHOICE_COUNT != 0) + { + chosen_target_index = DungeonRandInt(AI_THROWN_ITEM_ACTION_CHOICE_COUNT); + SetMonsterActionFields(&pokemon_info->action, ACTION_THROW_ITEM_AI); + pokemon_info->action.action_parameters[0].action_use_idx = selected_toolbox_index; + pokemon_info->action.action_parameters[0].item_pos.x = pokemon->pos.x; + pokemon_info->action.action_parameters[0].item_pos.y = pokemon->pos.y; + pokemon_info->action.direction = (enum direction_id) (GetDirectionTowardsPosition(&pokemon->pos, &potential_target_positions[chosen_target_index]) & DIRECTION_MASK); + pokemon_info->action.item_target_position = potential_target_positions[chosen_target_index]; + } + else + { + SetMonsterActionFields(&pokemon_info->action, ACTION_SECOND_THOUGHTS); + } + } + else if (item_type == CATEGORY_BERRIES_SEEDS_VITAMINS || item_type == CATEGORY_FOOD_GUMMIES) + { + SetMonsterActionFields(&pokemon_info->action, ACTION_EAT_AI); + pokemon_info->action.action_parameters[0].action_use_idx = selected_toolbox_index; + pokemon_info->action.action_parameters[0].item_pos.x = pokemon->pos.x; + pokemon_info->action.action_parameters[0].item_pos.y = pokemon->pos.y; + } + else + { + SetMonsterActionFields(&pokemon_info->action, ACTION_SECOND_THOUGHTS); + } + } + else if (IqSkillIsEnabled(pokemon, IQ_ITEM_MASTER)) + { + s32 thrown_ai_flag; + for (s32 toolbox_index = 1; toolbox_index < INVENTORY_SIZE; toolbox_index++) + { + u8 selected_toolbox_index; + if (toolbox_index == 1) + { + item = &pokemon_info->held_item; + selected_toolbox_index = HELD_ITEM_TOOLBOX_INDEX; + } + else if (toolbox_index == 0) + { + // This seems unused. toolbox_index can never be 0. + const struct tile *map_tile = GetTile(pokemon->pos.x, pokemon->pos.y); + if (map_tile->object != NULL && map_tile->object->type == ENTITY_ITEM) + { + item = GetItemInfo(map_tile->object); + selected_toolbox_index = GROUND_ITEM_TOOLBOX_INDEX; + } + else + { + continue; + } + } + else if (pokemon_info->is_team_leader) + { + item = &BAG_ITEMS_PTR_MIRROR->bag_items->bag_items[toolbox_index - 2]; + selected_toolbox_index = toolbox_index - 1; + } + else + { + return; + } + + u8 item_flags = item->flags; + if (!ItemExists(item_flags) || item->flags & ITEM_FLAG_IN_SHOP) + continue; + + if (ItemSticky(item_flags)) + continue; + + if (TestItemAiFlag(item->id, ITEM_AI_FLAG_TARGET_SELF)) + { + u32 item_weight = GetAiUseItemProbability(pokemon, item, ITEM_TARGET_ALLY); + if (item_weight != 0) + { + enum item_category item_type = GetItemCategoryVeneer(item->id); + if (!(item_type == CATEGORY_ORBS && !pokemon_info->is_not_team_member) && DungeonRandOutcome__022EAB20(item_weight)) + { + if (item_type == CATEGORY_ORBS) + SetMonsterActionFields(&pokemon_info->action, ACTION_USE_ORB); + else + SetMonsterActionFields(&pokemon_info->action, ACTION_EAT_AI); + + pokemon_info->action.action_parameters[0].action_use_idx = selected_toolbox_index; + pokemon_info->action.action_parameters[0].item_pos.x = pokemon->pos.x; + pokemon_info->action.action_parameters[0].item_pos.y = pokemon->pos.y; + return; + } + } + } + + if (MonsterCanThrowItems(pokemon_info)) + { + for (thrown_ai_flag = ITEM_AI_FLAG_TARGET_ALLY; thrown_ai_flag < NUM_ITEM_AI_FLAGS; thrown_ai_flag++) + { + if (TestItemAiFlag(item->id, thrown_ai_flag)) + { + if (GetItemCategoryVeneer(item->id) == CATEGORY_THROWN_ARC) + { + GetPossibleAiArcItemTargets(pokemon, item, potential_target_positions, FALSE); + if (AI_THROWN_ITEM_ACTION_CHOICE_COUNT != 0) + { + chosen_target_index = DungeonRandInt(AI_THROWN_ITEM_ACTION_CHOICE_COUNT); + SetMonsterActionFields(&pokemon_info->action, ACTION_THROW_ITEM_AI); + pokemon_info->action.action_parameters[0].action_use_idx = selected_toolbox_index; + pokemon_info->action.action_parameters[0].item_pos.x = pokemon->pos.x; + pokemon_info->action.action_parameters[0].item_pos.y = pokemon->pos.y; + pokemon_info->action.direction = (enum direction_id) (GetDirectionTowardsPosition(&pokemon->pos, &potential_target_positions[chosen_target_index]) & DIRECTION_MASK); + pokemon_info->action.item_target_position = potential_target_positions[chosen_target_index]; + return; + } + } + else + { + GetPossibleAiThrownItemDirections(pokemon, thrown_ai_flag, item, FALSE); + for (i = 0; i < AI_THROWN_ITEM_ACTION_CHOICE_COUNT; i++) + { + if (DungeonRandOutcome__022EAB20(AI_THROWN_ITEM_PROBABILITIES[i])) + { + SetMonsterActionFields(&pokemon_info->action, ACTION_THROW_ITEM_AI); + pokemon_info->action.action_parameters[0].action_use_idx = selected_toolbox_index; + pokemon_info->action.action_parameters[0].item_pos.x = pokemon->pos.x; + pokemon_info->action.action_parameters[0].item_pos.y = pokemon->pos.y; + pokemon_info->action.direction = (enum direction_id) (AI_THROWN_ITEM_DIRECTIONS[i] & DIRECTION_MASK); + return; + } + } + } + } + } + } + } + } +} diff --git a/src/dungeon_ai_targeting.c b/src/dungeon_ai_targeting.c index fc683f5e..05e8ca2f 100644 --- a/src/dungeon_ai_targeting.c +++ b/src/dungeon_ai_targeting.c @@ -1,7 +1,7 @@ #include "dungeon_ai_targeting.h" #include "dungeon_pokemon_attributes.h" #include "dungeon_pokemon_attributes_1.h" -#include "dungeon_util.h" +#include "dungeon_util_static.h" #include "overlay_29_023000E4.h" bool8 ShouldMonsterRunAway(struct entity *pokemon) diff --git a/src/dungeon_capabilities.c b/src/dungeon_capabilities.c index ac17a815..ce34933a 100644 --- a/src/dungeon_capabilities.c +++ b/src/dungeon_capabilities.c @@ -1,6 +1,6 @@ #include "dungeon_capabilities.h" #include "dungeon_statuses.h" -#include "dungeon_util.h" +#include "dungeon_util_static.h" extern bool8 CheckVariousStatuses(struct entity *entity); diff --git a/src/dungeon_capabilities_1.c b/src/dungeon_capabilities_1.c index 5f7c8f0d..dd749711 100644 --- a/src/dungeon_capabilities_1.c +++ b/src/dungeon_capabilities_1.c @@ -3,7 +3,7 @@ #include "dungeon_capabilities.h" #include "dungeon_capabilities_2.h" #include "dungeon_move.h" -#include "dungeon_util.h" +#include "dungeon_util_static.h" #include "joined_at_checks.h" bool8 CheckVariousConditions(struct entity *pokemon) diff --git a/src/dungeon_capabilities_2.c b/src/dungeon_capabilities_2.c index 6368c1dd..5a00a8fb 100644 --- a/src/dungeon_capabilities_2.c +++ b/src/dungeon_capabilities_2.c @@ -1,5 +1,5 @@ #include "dungeon_capabilities_2.h" -#include "dungeon_util.h" +#include "dungeon_util_static.h" bool8 CheckVariousStatuses(struct entity *pokemon) { diff --git a/src/dungeon_move.c b/src/dungeon_move.c index f684c9c6..4de7a54a 100644 --- a/src/dungeon_move.c +++ b/src/dungeon_move.c @@ -1,5 +1,5 @@ #include "dungeon_move.h" -#include "dungeon_util.h" +#include "dungeon_util_static.h" #include "overlay_29_02321438.h" const enum status_two_turn_id TWO_TURN_STATUSES[11] = diff --git a/src/dungeon_pokemon_attributes.c b/src/dungeon_pokemon_attributes.c index 286ff739..4f3566dc 100644 --- a/src/dungeon_pokemon_attributes.c +++ b/src/dungeon_pokemon_attributes.c @@ -1,5 +1,5 @@ #include "dungeon_pokemon_attributes.h" -#include "dungeon_util.h" +#include "dungeon_util_static.h" #include "overlay_29_02301A60.h" bool8 NoGastroAcidStatus(struct entity *entity, enum ability_id ability) diff --git a/src/dungeon_pokemon_attributes_1.c b/src/dungeon_pokemon_attributes_1.c index 6e9a8f51..d2bcb476 100644 --- a/src/dungeon_pokemon_attributes_1.c +++ b/src/dungeon_pokemon_attributes_1.c @@ -1,5 +1,5 @@ #include "dungeon_pokemon_attributes_1.h" -#include "dungeon_util.h" +#include "dungeon_util_static.h" bool8 IsTacticSet(struct entity *pokemon, enum tactic_id tactic_id) { diff --git a/src/dungeon_statuses.c b/src/dungeon_statuses.c index 708a6a44..5f2a8815 100644 --- a/src/dungeon_statuses.c +++ b/src/dungeon_statuses.c @@ -1,5 +1,6 @@ #include "dungeon_statuses.h" -#include "dungeon_util.h" +#include "dungeon_util_static.h" +#include "item.h" #include "overlay_29_02315118.h" extern bool8 ItemIsActive__0231513C(struct entity *entity, enum item_id item_id); diff --git a/src/dungeon_util_1.c b/src/dungeon_util.c similarity index 96% rename from src/dungeon_util_1.c rename to src/dungeon_util.c index 2a206d3a..f7483c35 100644 --- a/src/dungeon_util_1.c +++ b/src/dungeon_util.c @@ -1,5 +1,5 @@ -#include "dungeon_util_1.h" #include "dungeon_util.h" +#include "dungeon_util_static.h" bool8 ShouldRunMonsterAi(struct entity *pokemon) { diff --git a/src/overlay_29_0230E8F0.c b/src/overlay_29_0230E8F0.c deleted file mode 100644 index ab9c13bd..00000000 --- a/src/overlay_29_0230E8F0.c +++ /dev/null @@ -1,10 +0,0 @@ -#include "overlay_29_0230E8F0.h" - -bool8 EntityIsValid__0230E8F0(struct entity *entity) -{ - if (entity == NULL) - { - return FALSE; - } - return entity->type != ENTITY_NOTHING; -} diff --git a/tools/extract_function/split_data.py b/tools/extract_function/split_data.py index f407e74f..0746b407 100644 --- a/tools/extract_function/split_data.py +++ b/tools/extract_function/split_data.py @@ -30,12 +30,16 @@ SYMBOL_START = '\t.global ' symbol_line = None new_symbol_address = None hex_regex = re.compile('_[0-9A-F]{8}$') +data_type = None for i, line in enumerate(original_lines): if line.startswith(f'{SYMBOL_START}{symbol_name}'): symbol_line = i + elif line.startswith('\t.data') or line.startswith('\t.rodata') or line.startswith('\t.bss'): + data_type = line[line.index('.') + 1:].rstrip() if symbol_line is not None and line.startswith(SYMBOL_START) and hex_regex.search(line) is not None: new_symbol_address = line[-9:-1] + break if symbol_line is None: print(f'Failed to find symbol {symbol_name}.') @@ -55,9 +59,7 @@ LSF_FILE_PATH = 'main.lsf' with open(LSF_FILE_PATH, 'r') as lsf_file: lsf_lines = lsf_file.readlines() - extract_file_name = f'{file_prefix}{new_symbol_address}' - -new_asm_base_name = f"{file_prefix}{new_symbol_address}" +new_asm_base_name = f"{file_prefix}{data_type}_{new_symbol_address}" # If needed, add the extracted function's new .o file to main.lsf. merge_prev_file = None @@ -82,7 +84,7 @@ new_asm_name = f'{new_asm_base_name}.s' new_asm_header = f"""\t.include "asm/macros.inc" \t.include "{new_inc_file_name}" -\t.rodata +\t.{data_type} """ new_asm_file_path = os.path.join(ASM_FOLDER, new_asm_name) print('Creating', new_asm_file_path)