diff --git a/asm/include/itcm.inc b/asm/include/itcm.inc index 2f3cdf09..d802b9c5 100644 --- a/asm/include/itcm.inc +++ b/asm/include/itcm.inc @@ -148,7 +148,6 @@ .public ov29_0231B008 .public ov29_02338350 .public ov29_02348D00 -.public ov29_0235171E .public ov29_0235177C .public ov29_02353530 .public RENDER_3D diff --git a/asm/include/overlay_29_022E9618.inc b/asm/include/overlay_29_022E9618.inc index 97407486..bffcdf16 100644 --- a/asm/include/overlay_29_022E9618.inc +++ b/asm/include/overlay_29_022E9618.inc @@ -38,7 +38,6 @@ .public ov29_0234B854 .public ov29_02351628 .public ov29_02351658 -.public ov29_0235171E .public ov29_0235179C .public ov29_023517A0 .public ov29_023517A2 diff --git a/asm/include/overlay_29_022EE36C.inc b/asm/include/overlay_29_022EE36C.inc index f9ef2317..8b165e6c 100644 --- a/asm/include/overlay_29_022EE36C.inc +++ b/asm/include/overlay_29_022EE36C.inc @@ -60,7 +60,6 @@ .public ov29_02344B44 .public ov29_02346344 .public ov29_0234B084 -.public ov29_0235171E .public RemoveEmptyItemsInBagWrapper .public RemoveGroundItem .public RemoveHeldItemNoHole diff --git a/asm/include/overlay_29_022F05B4.inc b/asm/include/overlay_29_022F05B4.inc index 81b8969a..a2a0f1ad 100644 --- a/asm/include/overlay_29_022F05B4.inc +++ b/asm/include/overlay_29_022F05B4.inc @@ -151,7 +151,6 @@ .public ov29_0234E8F8 .public ov29_0234FC50 .public ov29_0234FCA8 -.public ov29_0235171E .public ov29_023526A8 .public ov29_023526B8 .public ov29_023526C8 diff --git a/asm/include/overlay_29_022F59C4.inc b/asm/include/overlay_29_022F59C4.inc index 071456d2..080bbd08 100644 --- a/asm/include/overlay_29_022F59C4.inc +++ b/asm/include/overlay_29_022F59C4.inc @@ -59,7 +59,6 @@ .public ov29_0234B0B4 .public ov29_0234CFA0 .public ov29_0234D304 -.public ov29_0235171E .public ov29_02352750 .public ov29_02352758 .public ov29_0237CA80 diff --git a/asm/include/overlay_29_022F7388.inc b/asm/include/overlay_29_022F7388.inc index cc24a2c4..e863e2c3 100644 --- a/asm/include/overlay_29_022F7388.inc +++ b/asm/include/overlay_29_022F7388.inc @@ -89,7 +89,6 @@ .public ov29_0234B0B4 .public ov29_0234B1A4 .public ov29_0234EF24 -.public ov29_0235171E .public ov29_0237C9B0 .public PopulateActiveMonsterPtrs .public RemoveHolderForItemInBag diff --git a/asm/include/overlay_29_022F9744.inc b/asm/include/overlay_29_022F9744.inc index 80ac4591..5a1fe5eb 100644 --- a/asm/include/overlay_29_022F9744.inc +++ b/asm/include/overlay_29_022F9744.inc @@ -94,7 +94,6 @@ .public ov29_0234B034 .public ov29_0234B084 .public ov29_0234B09C -.public ov29_0235171E .public PointCameraToMonster .public RandInt .public RemoveEquivItem diff --git a/asm/include/overlay_29_022FC9C0.inc b/asm/include/overlay_29_022FC9C0.inc index 4218f434..2bd95be1 100644 --- a/asm/include/overlay_29_022FC9C0.inc +++ b/asm/include/overlay_29_022FC9C0.inc @@ -86,7 +86,6 @@ .public ov29_023021F0 .public ov29_02304A48 .public ov29_02307DC0 -.public ov29_0235171E .public ov29_02351E28 .public ov29_0235276C .public ov29_0237C690 diff --git a/asm/include/overlay_29_022FE4BC.inc b/asm/include/overlay_29_022FE4BC.inc index 711f8edb..021f4490 100644 --- a/asm/include/overlay_29_022FE4BC.inc +++ b/asm/include/overlay_29_022FE4BC.inc @@ -60,7 +60,6 @@ .public ov29_02346888 .public ov29_0234B024 .public ov29_0234BA54 -.public ov29_0235171E .public ov29_0237C9C0 .public ov29_0237CA68 .public ov29_0237CA6C diff --git a/asm/include/overlay_29_02300D00.inc b/asm/include/overlay_29_02300D00.inc index ca7d458b..18e207d0 100644 --- a/asm/include/overlay_29_02300D00.inc +++ b/asm/include/overlay_29_02300D00.inc @@ -10,7 +10,6 @@ .public IsCurrentTilesetBackground .public IsTacticSet .public ItemIsActive__022FF898 -.public ov29_0235171E .public ov29_02352770 .public ov29_02352778 .public ov29_02352780 diff --git a/asm/include/overlay_29_02302A5C.inc b/asm/include/overlay_29_02302A5C.inc index 1d8ccafc..3f85d335 100644 --- a/asm/include/overlay_29_02302A5C.inc +++ b/asm/include/overlay_29_02302A5C.inc @@ -63,7 +63,6 @@ .public ov29_0234D304 .public ov29_0234D484 .public ov29_0234FAEC -.public ov29_0235171E .public ov29_023527F0 .public ov29_0235280C .public ov29_02352810 diff --git a/asm/include/overlay_29_02319FB0.inc b/asm/include/overlay_29_02319FB0.inc index b95b7e8b..5e153a5f 100644 --- a/asm/include/overlay_29_02319FB0.inc +++ b/asm/include/overlay_29_02319FB0.inc @@ -1,42 +1,25 @@ #pragma once -.public _s32_div_f .public AbilityIsActiveVeneer -.public abs -.public AreMovesEnabled .public CanAttackInDirection .public DIRECTIONS_XY .public DUNGEON_PTR .public DungeonRandInt -.public DungeonRandOutcome__022EAB20 -.public EntityIsValid__02319F8C -.public ExclusiveItemEffectFlagTest .public GetDirectionTowardsPosition .public GetMoveAccuracyOrAiChance .public GetMoveTypeForMonster -.public GetNumberOfAttacks .public GetTile .public GetTreatmentBetweenMonsters .public HasHeldItem .public IqSkillIsEnabled .public IsBlinded -.public IsFloorOver -.public IsMonster__0231A9D4 .public IsMonsterSleeping -.public LogMessageByIdWithPopupCheckUser .public MonsterHasNegativeStatus -.public ov10_022C459C -.public ov29_022E3ED0 -.public ov29_022FA574 +.public _s32_div_f .public ov29_023007DC .public ov29_0230B7D4 .public ov29_0230F8D0 -.public ov29_0232145C .public ov29_02333FD0 -.public ov29_0235171E .public ov29_0237CA18 .public ov29_0237CA20 .public ov29_0237CA28 .public ov29_0237CA48 -.public SubstitutePlaceholderStringTags -.public TryActivateTruant -.public UpdateMovePp diff --git a/asm/include/overlay_29_0231A7A0.inc b/asm/include/overlay_29_0231A7A0.inc new file mode 100644 index 00000000..66174729 --- /dev/null +++ b/asm/include/overlay_29_0231A7A0.inc @@ -0,0 +1,18 @@ +#pragma once +.public AreMovesEnabled +.public DUNGEON_PTR +.public DungeonRandOutcome__022EAB20 +.public EntityIsValid__02319F8C +.public ExclusiveItemEffectFlagTest +.public GetNumberOfAttacks +.public IqSkillIsEnabled +.public IsFloorOver +.public IsMonster__0231A9D4 +.public LogMessageByIdWithPopupCheckUser +.public SubstitutePlaceholderStringTags +.public TryActivateTruant +.public UpdateMovePp +.public ov10_022C459C +.public ov29_022E3ED0 +.public ov29_022FA574 +.public ov29_0232145C diff --git a/asm/include/overlay_29_0231EDFC.inc b/asm/include/overlay_29_0231EDFC.inc index 92945ccb..fc36772c 100644 --- a/asm/include/overlay_29_0231EDFC.inc +++ b/asm/include/overlay_29_0231EDFC.inc @@ -25,7 +25,6 @@ .public ov29_02304A48 .public ov29_0232033C .public ov29_02321238 -.public ov29_0235171E .public ShouldDisplayEntityWrapper .public sub_020018D0 .public SubstitutePlaceholderStringTags diff --git a/asm/include/overlay_29_023201A0.inc b/asm/include/overlay_29_023201A0.inc index 053228e7..cd93bb1f 100644 --- a/asm/include/overlay_29_023201A0.inc +++ b/asm/include/overlay_29_023201A0.inc @@ -25,7 +25,6 @@ .public ov29_02320AA4 .public ov29_02321238 .public ov29_02336694 -.public ov29_0235171E .public ov29_023529B8 .public ov29_02353700 .public RemoveGroundItem diff --git a/asm/include/overlay_29_02322DDC.inc b/asm/include/overlay_29_02322DDC.inc index 246c8c69..08a6293b 100644 --- a/asm/include/overlay_29_02322DDC.inc +++ b/asm/include/overlay_29_02322DDC.inc @@ -53,7 +53,6 @@ .public ov29_0234B034 .public ov29_0234B084 .public ov29_0234B4CC -.public ov29_0235171E .public ov29_0235175C .public ov29_02352A54 .public ov29_02352A6C diff --git a/asm/include/overlay_29_0232A3FC.inc b/asm/include/overlay_29_0232A3FC.inc index fd84e652..6610490c 100644 --- a/asm/include/overlay_29_0232A3FC.inc +++ b/asm/include/overlay_29_0232A3FC.inc @@ -79,7 +79,6 @@ .public ov29_02324D60 .public ov29_02332F18 .public ov29_0234B084 -.public ov29_0235171E .public ov29_02352B1C .public ov29_0237CA84 .public POISON_TAIL_POISON_CHANCE diff --git a/asm/include/overlay_29_0232C524.inc b/asm/include/overlay_29_0232C524.inc index ded6aa9d..972a2e62 100644 --- a/asm/include/overlay_29_0232C524.inc +++ b/asm/include/overlay_29_0232C524.inc @@ -93,7 +93,6 @@ .public ov29_0234B084 .public ov29_0234B0B4 .public ov29_0234BA54 -.public ov29_0235171E .public ov29_02352B38 .public ov29_02352B3C .public PrepareTrapperTrap diff --git a/asm/include/overlay_29_rodata_0234FD04.inc b/asm/include/overlay_29_rodata_0234FD04.inc index 6731e1b9..f5b46a61 100644 --- a/asm/include/overlay_29_rodata_0234FD04.inc +++ b/asm/include/overlay_29_rodata_0234FD04.inc @@ -192,6 +192,3 @@ .public ov29_023502D4 .public ov29_023502DC .public ov29_023502E4 -.public ov29_02351974 -.public ov29_02351B00 -.public ov29_02351C94 diff --git a/asm/include/overlay_29_rodata_0235173C.inc b/asm/include/overlay_29_rodata_0235173C.inc new file mode 100644 index 00000000..3a5ceb8e --- /dev/null +++ b/asm/include/overlay_29_rodata_0235173C.inc @@ -0,0 +1,4 @@ +#pragma once +.public ov29_02351974 +.public ov29_02351B00 +.public ov29_02351C94 diff --git a/asm/itcm.s b/asm/itcm.s index 9e90b17c..06460700 100644 --- a/asm/itcm.s +++ b/asm/itcm.s @@ -3074,7 +3074,7 @@ _01FFA754: ldr r0, _01FFB2B8 ; =DIRECTIONS_XY ldrsh r5, [r4, #4] ldrsh r2, [r0, r3] - ldr r1, _01FFB2BC ; =ov29_0235171E + ldr r1, _01FFB2BC ; =DIRECTIONS_XY + 2 mov r0, #1 add r2, r5, r2 strh r2, [sb, #0x8c] @@ -3711,7 +3711,7 @@ _01FFB080: add r0, r1, r0 cmp r3, r0 bne _01FFB0D4 - ldr r0, _01FFB2BC ; =ov29_0235171E + ldr r0, _01FFB2BC ; =DIRECTIONS_XY + 2 ldrsh r1, [r4, #6] ldrsh r0, [r0, r2] ldrsh r2, [sb, #0x8e] @@ -3857,7 +3857,7 @@ _01FFB2AC: .word 0x000003E7 _01FFB2B0: .word 0x000F423F _01FFB2B4: .word DUNGEON_PTR _01FFB2B8: .word DIRECTIONS_XY -_01FFB2BC: .word ov29_0235171E +_01FFB2BC: .word DIRECTIONS_XY + 2 _01FFB2C0: .word 0xFFF0BDC1 _01FFB2C4: .word ov29_0235177C arm_func_end AiMovement @@ -3935,7 +3935,7 @@ _01FFB38C: mov r3, r8, lsl #2 ldrsh r2, [r0, r3] ldrsh r4, [sl, #4] - ldr r1, _01FFB628 ; =ov29_0235171E + ldr r1, _01FFB628 ; =DIRECTIONS_XY + 2 mov r0, #1 add r2, r4, r2 strh r2, [sb, #0x8c] @@ -3982,7 +3982,7 @@ _01FFB3F0: ldr r0, _01FFB624 ; =DIRECTIONS_XY ldrsh r4, [sl, #4] ldrsh r2, [r0, r3] - ldr r1, _01FFB628 ; =ov29_0235171E + ldr r1, _01FFB628 ; =DIRECTIONS_XY + 2 mov r0, #1 add r2, r4, r2 strh r2, [sb, #0x8c] @@ -4005,7 +4005,7 @@ _01FFB460: ldr r0, _01FFB624 ; =DIRECTIONS_XY ldrsh r4, [sl, #4] ldrsh r2, [r0, r3] - ldr r1, _01FFB628 ; =ov29_0235171E + ldr r1, _01FFB628 ; =DIRECTIONS_XY + 2 mov r0, #1 add r2, r4, r2 strh r2, [sb, #0x8c] @@ -4104,7 +4104,7 @@ _01FFB5D8: ldr r0, _01FFB624 ; =DIRECTIONS_XY ldrsh r4, [sl, #4] ldrsh r2, [r0, r3] - ldr r1, _01FFB628 ; =ov29_0235171E + ldr r1, _01FFB628 ; =DIRECTIONS_XY + 2 mov r0, #1 add r2, r4, r2 strh r2, [sb, #0x8c] @@ -4117,7 +4117,7 @@ _01FFB5D8: _01FFB61C: .word DUNGEON_PTR _01FFB620: .word ov29_0235177C _01FFB624: .word DIRECTIONS_XY -_01FFB628: .word ov29_0235171E +_01FFB628: .word DIRECTIONS_XY + 2 arm_func_end CalculateAiTargetPos arm_func_start sub_01FFB62C diff --git a/asm/overlay_29_022E9618.s b/asm/overlay_29_022E9618.s index 51b9a02f..6bd2e9d1 100644 --- a/asm/overlay_29_022E9618.s +++ b/asm/overlay_29_022E9618.s @@ -386,7 +386,7 @@ ov29_022E9A9C: ; 0x022E9A9C mov r2, r4, lsl #2 ldrsh r1, [r0, r2] ldrsh r3, [sb, #4] - ldr r0, _022E9CA4 ; =ov29_0235171E + ldr r0, _022E9CA4 ; =DIRECTIONS_XY + 2 add r1, r1, r1, lsl #1 add r1, r3, r1 strh r1, [sl] @@ -493,7 +493,7 @@ _022E9C44: ldrsh r2, [sb, #4] mov r1, r1, lsl #2 ldrsh r1, [r0, r1] - ldr r0, _022E9CA4 ; =ov29_0235171E + ldr r0, _022E9CA4 ; =DIRECTIONS_XY + 2 add r1, r2, r1, lsl #1 strh r1, [sl] ldrb r1, [r8, #0x4c] @@ -512,7 +512,7 @@ _022E9C98: ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 _022E9CA0: .word DIRECTIONS_XY -_022E9CA4: .word ov29_0235171E +_022E9CA4: .word DIRECTIONS_XY + 2 _022E9CA8: .word DUNGEON_PTR _022E9CAC: .word ov29_0235179C _022E9CB0: .word ov29_023517A0 diff --git a/asm/overlay_29_022EE36C.s b/asm/overlay_29_022EE36C.s index 2e51b951..ba916e1a 100644 --- a/asm/overlay_29_022EE36C.s +++ b/asm/overlay_29_022EE36C.s @@ -925,7 +925,7 @@ _022EEDC4: mov r1, r1, lsl #0x1d mov r4, r1, lsr #0x1b ldrsh r2, [r0, r4] - ldr r1, _022EEE48 ; =ov29_0235171E + ldr r1, _022EEE48 ; =DIRECTIONS_XY + 2 mov r0, r6 add r2, r3, r2 strh r2, [sp, #0xc] @@ -948,7 +948,7 @@ _022EEE38: .align 2, 0 _022EEE40: .word 0x0000130F _022EEE44: .word DIRECTIONS_XY -_022EEE48: .word ov29_0235171E +_022EEE48: .word DIRECTIONS_XY + 2 _022EEE4C: .word DISPLACEMENTS_WITHIN_2_SMALLEST_FIRST arm_func_end ApplyTripTrapEffect diff --git a/asm/overlay_29_022F05B4.s b/asm/overlay_29_022F05B4.s index e0ed5079..a71a3918 100644 --- a/asm/overlay_29_022F05B4.s +++ b/asm/overlay_29_022F05B4.s @@ -3109,7 +3109,7 @@ ShouldLeaderKeepRunning: ; 0x022F308C ldrb r1, [r5, #0x78b] ldr r3, _022F35D8 ; =DIRECTIONS_XY mov r5, r7, lsl #2 - ldr r2, _022F35DC ; =ov29_0235171E + ldr r2, _022F35DC ; =DIRECTIONS_XY + 2 ldrsh r6, [r3, r5] mov r8, r0 cmp r1, #0 @@ -3187,7 +3187,7 @@ _022F31C4: mov r5, r1, lsr #0x1b mov fp, r0, lsr #0x1b ldrsh r1, [r6, r5] - ldr r8, _022F35DC ; =ov29_0235171E + ldr r8, _022F35DC ; =DIRECTIONS_XY + 2 mov r3, r2, lsr #0x1b add r1, sl, r1 ldrsh r2, [r6, r3] @@ -3462,7 +3462,7 @@ _022F35CC: .align 2, 0 _022F35D4: .word DUNGEON_PTR _022F35D8: .word DIRECTIONS_XY -_022F35DC: .word ov29_0235171E +_022F35DC: .word DIRECTIONS_XY + 2 arm_func_end ShouldLeaderKeepRunning arm_func_start ov29_022F35E0 diff --git a/asm/overlay_29_022F59C4.s b/asm/overlay_29_022F59C4.s index c1cf5fc6..844e110a 100644 --- a/asm/overlay_29_022F59C4.s +++ b/asm/overlay_29_022F59C4.s @@ -684,7 +684,7 @@ _022F6198: ldrsh r3, [sl, #4] mov r1, r1, lsl #2 ldrsh r2, [r0, r1] - ldr r1, _022F620C ; =ov29_0235171E + ldr r1, _022F620C ; =DIRECTIONS_XY + 2 add r0, sp, #8 add r2, r3, r2 strh r2, [sp, #8] @@ -713,7 +713,7 @@ _022F6200: .word 0x00000BCD _022F6204: .word 0x00000BCE #endif _022F6208: .word DIRECTIONS_XY -_022F620C: .word ov29_0235171E +_022F620C: .word DIRECTIONS_XY + 2 arm_func_end ov29_022F6058 arm_func_start ov29_022F6210 diff --git a/asm/overlay_29_022F7388.s b/asm/overlay_29_022F7388.s index 802db1d0..e44b3e5b 100644 --- a/asm/overlay_29_022F7388.s +++ b/asm/overlay_29_022F7388.s @@ -1763,7 +1763,7 @@ ov29_022F87C0: ; 0x022F87C0 beq _022F8820 ldrb r2, [r5, #0x4c] ldr r1, _022F8828 ; =DIRECTIONS_XY - ldr r0, _022F882C ; =ov29_0235171E + ldr r0, _022F882C ; =DIRECTIONS_XY + 2 mov ip, r2, lsl #2 ldrsh lr, [r4, #4] ldrsh r3, [r1, ip] @@ -1783,7 +1783,7 @@ _022F8820: ldmia sp!, {r3, r4, r5, pc} .align 2, 0 _022F8828: .word DIRECTIONS_XY -_022F882C: .word ov29_0235171E +_022F882C: .word DIRECTIONS_XY + 2 arm_func_end ov29_022F87C0 arm_func_start ov29_022F8830 @@ -1794,7 +1794,7 @@ ov29_022F8830: ; 0x022F8830 ldr r0, _022F88B8 ; =DIRECTIONS_XY ldrb r2, [r5, #0x4c] ldrsh r3, [r4, #4] - ldr r1, _022F88BC ; =ov29_0235171E + ldr r1, _022F88BC ; =DIRECTIONS_XY + 2 mov r2, r2, lsl #2 ldrsh r0, [r0, r2] add r0, r3, r0 @@ -1825,7 +1825,7 @@ _022F88B0: ldmia sp!, {r3, r4, r5, pc} .align 2, 0 _022F88B8: .word DIRECTIONS_XY -_022F88BC: .word ov29_0235171E +_022F88BC: .word DIRECTIONS_XY + 2 arm_func_end ov29_022F8830 arm_func_start ov29_022F88C0 @@ -1836,7 +1836,7 @@ ov29_022F88C0: ; 0x022F88C0 ldr r0, _022F89A4 ; =DIRECTIONS_XY ldrb r2, [r4, #0x4c] ldrsh r3, [r5, #4] - ldr r1, _022F89A8 ; =ov29_0235171E + ldr r1, _022F89A8 ; =DIRECTIONS_XY + 2 mov r2, r2, lsl #2 ldrsh r0, [r0, r2] add r0, r3, r0 @@ -1861,7 +1861,7 @@ ov29_022F88C0: ; 0x022F88C0 ldrsh r2, [r5, #4] mov r1, r1, lsl #2 ldrsh r0, [r0, r1] - ldr r1, _022F89A8 ; =ov29_0235171E + ldr r1, _022F89A8 ; =DIRECTIONS_XY + 2 add r0, r2, r0, lsl #1 strh r0, [sp] ldrb r2, [r4, #0x4c] @@ -1890,7 +1890,7 @@ _022F899C: ldmia sp!, {r3, r4, r5, pc} .align 2, 0 _022F89A4: .word DIRECTIONS_XY -_022F89A8: .word ov29_0235171E +_022F89A8: .word DIRECTIONS_XY + 2 arm_func_end ov29_022F88C0 arm_func_start ov29_022F89AC @@ -2350,7 +2350,7 @@ ov29_022F8FF8: ; 0x022F8FF8 ldr ip, _022F9050 ; =DIRECTIONS_XY ldrb lr, [r2, #0x4c] ldrsh r4, [r1, #4] - ldr r3, _022F9054 ; =ov29_0235171E + ldr r3, _022F9054 ; =DIRECTIONS_XY + 2 mov lr, lr, lsl #2 ldrsh ip, [ip, lr] add r4, r4, ip @@ -2369,7 +2369,7 @@ ov29_022F8FF8: ; 0x022F8FF8 ldmia sp!, {r4, pc} .align 2, 0 _022F9050: .word DIRECTIONS_XY -_022F9054: .word ov29_0235171E +_022F9054: .word DIRECTIONS_XY + 2 arm_func_end ov29_022F8FF8 arm_func_start ov29_022F9058 @@ -2451,7 +2451,7 @@ UpdateAiTargetPos: ; 0x022F9144 add r1, lr, #0x100 mov r3, r3, lsl #2 ldrsh r3, [r2, r3] - ldr r2, _022F9190 ; =ov29_0235171E + ldr r2, _022F9190 ; =DIRECTIONS_XY + 2 add r3, ip, r3 #ifdef JAPAN strh r3, [r1, #0x7a] @@ -2471,7 +2471,7 @@ UpdateAiTargetPos: ; 0x022F9144 ldmia sp!, {r3, pc} .align 2, 0 _022F918C: .word DIRECTIONS_XY -_022F9190: .word ov29_0235171E +_022F9190: .word DIRECTIONS_XY + 2 arm_func_end UpdateAiTargetPos arm_func_start SetMonsterTypeAndAbility diff --git a/asm/overlay_29_022F9744.s b/asm/overlay_29_022F9744.s index 201c7ab7..c3f5408c 100644 --- a/asm/overlay_29_022F9744.s +++ b/asm/overlay_29_022F9744.s @@ -924,7 +924,7 @@ _022FA210: mov r2, r2, lsl #2 ldrsh r3, [r1, r2] ldrsh ip, [r6, #4] - ldr r2, _022FA2EC ; =ov29_0235171E + ldr r2, _022FA2EC ; =DIRECTIONS_XY + 2 mov r1, #0xff add r3, ip, r3 strh r3, [r0, #0x7e + OV29_022FA1D8_OFFSET] @@ -970,7 +970,7 @@ _022FA2B8: ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _022FA2E8: .word DIRECTIONS_XY -_022FA2EC: .word ov29_0235171E +_022FA2EC: .word DIRECTIONS_XY + 2 arm_func_end ov29_022FA1D8 arm_func_start ov29_022FA2F0 diff --git a/asm/overlay_29_022FC9C0.s b/asm/overlay_29_022FC9C0.s index 50fe1462..21bd1abe 100644 --- a/asm/overlay_29_022FC9C0.s +++ b/asm/overlay_29_022FC9C0.s @@ -803,7 +803,7 @@ _022FD420: strh r7, [sp, #4] ldrb r3, [r1] ldr r2, _022FD788 ; =DIRECTIONS_XY - ldr r1, _022FD78C ; =ov29_0235171E + ldr r1, _022FD78C ; =DIRECTIONS_XY + 2 mov r3, r3, lsl #2 ldrsh r2, [r2, r3] ldrsh r1, [r1, r3] @@ -1014,7 +1014,7 @@ _022FD77C: .word 0x000001A2 _022FD780: .word DUNGEON_PTR _022FD784: .word ov29_0237C9C0 _022FD788: .word DIRECTIONS_XY -_022FD78C: .word ov29_0235171E +_022FD78C: .word DIRECTIONS_XY + 2 _022FD790: .word ov29_0237C690 _022FD794: .word LEADER_PTR _022FD798: .word ov10_022C4520 diff --git a/asm/overlay_29_022FE4BC.s b/asm/overlay_29_022FE4BC.s index e48724a3..f3d1a74a 100644 --- a/asm/overlay_29_022FE4BC.s +++ b/asm/overlay_29_022FE4BC.s @@ -883,7 +883,7 @@ _022FE818: ldrh r3, [r6] ldr r2, _022FED88 ; =DIRECTIONS_XY mov r8, r1, lsl #2 - ldr r0, _022FED8C ; =ov29_0235171E + ldr r0, _022FED8C ; =DIRECTIONS_XY + 2 ldrsh ip, [sb, #4] ldrsh r7, [r2, r8] ldrsh r5, [sb, #6] @@ -1306,7 +1306,7 @@ _022FED7C: .word ov29_0237C9C0 _022FED80: .word ov29_0237CA6C _022FED84: .word ov29_0237CA68 _022FED88: .word DIRECTIONS_XY -_022FED8C: .word ov29_0235171E +_022FED8C: .word DIRECTIONS_XY + 2 #ifdef JAPAN _0230017C: .word 0x00000163 _022FED90: .word 0x00000B31 diff --git a/asm/overlay_29_02300D00.s b/asm/overlay_29_02300D00.s index 9fb97d6d..3dfbcf4a 100644 --- a/asm/overlay_29_02300D00.s +++ b/asm/overlay_29_02300D00.s @@ -125,7 +125,7 @@ CanMonsterMoveInDirection: ; 0x02300E78 bl GetMobilityTypeCheckSlipAndFloating ldr r2, _02300F24 ; =DIRECTIONS_XY mov ip, r5, lsl #2 - ldr r1, _02300F28 ; =ov29_0235171E + ldr r1, _02300F28 ; =DIRECTIONS_XY + 2 ldrsh r3, [r2, ip] ldrsh lr, [r6, #4] mov r4, r0 @@ -194,7 +194,7 @@ _02302330: ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _02300F24: .word DIRECTIONS_XY -_02300F28: .word ov29_0235171E +_02300F28: .word DIRECTIONS_XY + 2 _02300F2C: .word ov29_02352798 arm_func_end CanMonsterMoveInDirection @@ -252,7 +252,7 @@ ov29_02300FCC: ; 0x02300FCC mov r4, r1 ldr r1, _02301050 ; =DIRECTIONS_XY mov ip, r4, lsl #2 - ldr r0, _02301054 ; =ov29_0235171E + ldr r0, _02301054 ; =DIRECTIONS_XY + 2 ldrsh r3, [r1, ip] ldrsh lr, [r5, #4] ldrsh r1, [r0, ip] @@ -282,7 +282,7 @@ ov29_02300FCC: ; 0x02300FCC ldmia sp!, {r3, r4, r5, pc} .align 2, 0 _02301050: .word DIRECTIONS_XY -_02301054: .word ov29_0235171E +_02301054: .word DIRECTIONS_XY + 2 _02301058: .word ov29_02352790 arm_func_end ov29_02300FCC @@ -296,7 +296,7 @@ ov29_0230105C: ; 0x0230105C bl GetMobilityTypeCheckSlipAndFloating ldr r2, _0230110C ; =DIRECTIONS_XY mov ip, r5, lsl #2 - ldr r1, _02301110 ; =ov29_0235171E + ldr r1, _02301110 ; =DIRECTIONS_XY + 2 ldrsh r3, [r2, ip] ldrsh lr, [r6, #4] mov r4, r0 @@ -372,7 +372,7 @@ _023024DC_JP: ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _0230110C: .word DIRECTIONS_XY -_02301110: .word ov29_0235171E +_02301110: .word DIRECTIONS_XY + 2 _02301114: .word ov29_02352788 arm_func_end ov29_0230105C @@ -408,7 +408,7 @@ ov29_02301158: ; 0x02301158 bl GetMobilityTypeCheckSlipAndFloating ldr r2, _02301228 ; =DIRECTIONS_XY mov ip, r5, lsl #2 - ldr r1, _0230122C ; =ov29_0235171E + ldr r1, _0230122C ; =DIRECTIONS_XY + 2 ldrsh r3, [r2, ip] ldrsh lr, [r6, #4] mov r4, r0 @@ -487,7 +487,7 @@ _02302654: ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _02301228: .word DIRECTIONS_XY -_0230122C: .word ov29_0235171E +_0230122C: .word DIRECTIONS_XY + 2 _02301230: .word ov29_02352780 arm_func_end ov29_02301158 @@ -503,7 +503,7 @@ CanAttackInDirection: ; 0x02301234 ldr r1, _023012EC ; =DIRECTIONS_XY mov ip, r5, lsl #2 cmp r4, #1 - ldr r0, _023012F0 ; =ov29_0235171E + ldr r0, _023012F0 ; =DIRECTIONS_XY + 2 ldrsh r3, [r1, ip] ldrsh lr, [r6, #4] ldrsh r1, [r0, ip] @@ -579,7 +579,7 @@ _02302778: ldmia sp!, {r4, r5, r6, pc} .align 2, 0 _023012EC: .word DIRECTIONS_XY -_023012F0: .word ov29_0235171E +_023012F0: .word DIRECTIONS_XY + 2 _023012F4: .word ov29_02352778 arm_func_end CanAttackInDirection @@ -596,7 +596,7 @@ CanAiMonsterMoveInDirection: ; 0x023012F8 strb r1, [r6] ldr r2, _02301484 ; =DIRECTIONS_XY mov r4, r7, lsl #2 - ldr r1, _02301488 ; =ov29_0235171E + ldr r1, _02301488 ; =DIRECTIONS_XY + 2 ldrsh r3, [r2, r4] ldrsh ip, [r8, #4] mov r5, r0 @@ -726,7 +726,7 @@ _0230295C: ldmia sp!, {r4, r5, r6, r7, r8, pc} .align 2, 0 _02301484: .word DIRECTIONS_XY -_02301488: .word ov29_0235171E +_02301488: .word DIRECTIONS_XY + 2 _0230148C: .word DUNGEON_PTR _02301490: .word SECONDARY_TERRAIN_TYPES _02301494: .word ov29_02352770 diff --git a/asm/overlay_29_02302A5C.s b/asm/overlay_29_02302A5C.s index 7bcb9064..099d9ddf 100644 --- a/asm/overlay_29_02302A5C.s +++ b/asm/overlay_29_02302A5C.s @@ -1468,7 +1468,7 @@ _02303D8C: strb r2, [sp, #6] ldrsh r3, [r0, r5] ldrsh r4, [r7, #4] - ldr r1, _02303E08 ; =ov29_0235171E + ldr r1, _02303E08 ; =DIRECTIONS_XY + 2 add r0, sp, #4 add r3, r4, r3 strh r3, [sp, #0xe] @@ -1491,7 +1491,7 @@ _02303DFC: .word 0x00000F29 #endif _02303E00: .word 0x0000013F _02303E04: .word DIRECTIONS_XY -_02303E08: .word ov29_0235171E +_02303E08: .word DIRECTIONS_XY + 2 arm_func_end EvolveMonster arm_func_start ov29_02303E0C diff --git a/asm/overlay_29_02319FB0.s b/asm/overlay_29_02319FB0.s index 498ddf8d..de79fead 100644 --- a/asm/overlay_29_02319FB0.s +++ b/asm/overlay_29_02319FB0.s @@ -505,265 +505,3 @@ _0231A688: .align 2, 0 _0231A690: .word DIRECTIONS_XY arm_func_end ov29_0231A460 - - arm_func_start IsTargetInRange -IsTargetInRange: ; 0x0231A694 - stmdb sp!, {r4, r5, r6, r7, r8, sb, sl, lr} - mov sb, r0 - mov r5, r1 - ldrsh r1, [sb, #6] - ldrsh r0, [r5, #6] - mov r8, r2 - mov r7, r3 - sub r0, r1, r0 - bl abs - ldrsh r2, [sb, #4] - ldrsh r1, [r5, #4] - mov r6, r0 - sub r0, r2, r1 - bl abs - mov r4, r0 - cmp r4, r6 - movle r4, r6 - cmp r4, r7 - mov r0, sb - mov r1, #3 - movgt r4, r7 - bl IqSkillIsEnabled - cmp r0, #0 - bne _0231A708 - cmp r4, r7 - movle r0, #1 - movgt r0, #0 - and r0, r0, #0xff - ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} -_0231A708: - ldr r1, _0231A798 ; =DIRECTIONS_XY - mov r2, r8, lsl #2 - ldr r0, _0231A79C ; =ov29_0235171E - ldrsh r7, [sb, #4] - ldrsh r8, [sb, #6] - ldrsh sb, [r1, r2] - ldrsh sl, [r0, r2] - mov r6, #0 - b _0231A788 -_0231A72C: - add r7, r7, sb - add r8, r8, sl - cmp r7, #1 - cmpge r8, #1 - blt _0231A790 - cmp r7, #0x37 - cmplt r8, #0x1f - bge _0231A790 - mov r0, r7 - mov r1, r8 - bl GetTile - ldrh r1, [r0] - tst r1, #3 - moveq r0, #0 - ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} - ldr r0, [r0, #0xc] - cmp r0, r5 - moveq r0, #1 - ldmeqia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} - cmp r0, #0 - movne r0, #0 - ldmneia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} - add r6, r6, #1 -_0231A788: - cmp r6, r4 - ble _0231A72C -_0231A790: - mov r0, #0 - ldmia sp!, {r4, r5, r6, r7, r8, sb, sl, pc} - .align 2, 0 -_0231A798: .word DIRECTIONS_XY -_0231A79C: .word ov29_0235171E - arm_func_end IsTargetInRange - - arm_func_start ShouldUsePp -ShouldUsePp: ; 0x0231A7A0 - stmdb sp!, {r3, r4, r5, r6, r7, lr} - mov r4, #0 - mov r1, #0x52 - mov r7, r0 - mov r5, r4 - mov r6, r4 - bl ExclusiveItemEffectIsActive__0231A87C - cmp r0, #0 - mov r0, r7 - mov r1, #0x1f - movne r4, #1 - bl IqSkillIsEnabled - cmp r0, #0 - movne r5, #1 - cmp r5, #0 - beq _0231A81C - ldr r0, _0231A870 ; =ov10_022C459C - ldrsh r0, [r0] - bl DungeonRandOutcome__022EAB20 - cmp r0, #0 - beq _0231A81C - mov r0, r7 - bl ov29_022E3ED0 - mov r0, #0 - mov r1, r7 - mov r2, r0 - bl SubstitutePlaceholderStringTags - ldr r1, _0231A874 ; =0x00000DF5 - mov r0, r7 - bl LogMessageByIdWithPopupCheckUser - mov r6, #1 -_0231A81C: - cmp r6, #0 - bne _0231A868 - cmp r4, #0 - beq _0231A868 - ldr r0, _0231A870 ; =ov10_022C459C - ldrsh r0, [r0] - bl DungeonRandOutcome__022EAB20 - cmp r0, #0 - beq _0231A868 - mov r0, r7 - bl ov29_022E3ED0 - mov r0, #0 - mov r1, r7 - mov r2, r0 - bl SubstitutePlaceholderStringTags - ldr r1, _0231A878 ; =0x00000DF7 - mov r0, r7 - bl LogMessageByIdWithPopupCheckUser - mov r6, #1 -_0231A868: - mov r0, r6 - ldmia sp!, {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_0231A870: .word ov10_022C459C -#ifdef JAPAN -_0231A874: .word 0x00000B35 -_0231A878: .word 0x00000B37 -#else -_0231A874: .word 0x00000DF5 -_0231A878: .word 0x00000DF7 -#endif - arm_func_end ShouldUsePp - - arm_func_start ExclusiveItemEffectIsActive__0231A87C -ExclusiveItemEffectIsActive__0231A87C: ; 0x0231A87C - stmdb sp!, {r3, lr} - ldr r2, [r0, #0xb4] - ldrb r0, [r2, #6] - cmp r0, #0 - movne r0, #0 - ldmneia sp!, {r3, pc} -#ifdef JAPAN - add r0, r2, #0x224 -#else - add r0, r2, #0x228 -#endif - bl ExclusiveItemEffectFlagTest - ldmia sp!, {r3, pc} - arm_func_end ExclusiveItemEffectIsActive__0231A87C - - arm_func_start ov29_0231A8A0 -ov29_0231A8A0: ; 0x0231A8A0 -#ifdef JAPAN -#define OV29_0231A8A0_OFFSET -4 -#else -#define OV29_0231A8A0_OFFSET 0 -#endif - stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, lr} - sub sp, sp, #4 - mov sb, r0 - mov r7, #0 - bl IsMonster__0231A9D4 - cmp r0, #0 - beq _0231A910 - ldr r0, _0231A9CC ; =DUNGEON_PTR - ldr r4, [sb, #0xb4] - ldr r0, [r0] - add r0, r0, #0x4000 -#ifdef JAPAN - ldrb r0, [r0, #0x36] -#else - ldrb r0, [r0, #0xda] -#endif - bl AreMovesEnabled - cmp r0, #0 - bne _0231A8EC - ldr r1, _0231A9D0 ; =0x00000DFD - mov r0, sb - bl LogMessageByIdWithPopupCheckUser - b _0231A9C4 -_0231A8EC: - mov r1, r7 - mov r0, sb - strb r1, [r4, #0x23f + OV29_0231A8A0_OFFSET] - bl ShouldUsePp - cmp r0, #0 - movne r7, #1 - strneb r7, [r4, #0x23f + OV29_0231A8A0_OFFSET] - mov r0, #0 - strb r0, [r4, #0x23e + OV29_0231A8A0_OFFSET] -_0231A910: - mov r6, #0 - mov r4, #1 - mov r5, r6 - mov sl, r4 - b _0231A970 -_0231A924: - ldr r8, [sb, #0xb4] - mov r0, sb - str r5, [sp] - ldrb r1, [r8, #0x4e] - mov r2, r4 - mov r3, r5 - bl ov29_0232145C - mov r0, sb - bl EntityIsValid__02319F8C - cmp r0, #0 - beq _0231A984 - bl IsFloorOver - cmp r0, #0 - ldreqb r0, [r8, #0x23e + OV29_0231A8A0_OFFSET] - cmpeq r0, #0 - ldreqb r0, [r8, #0x163 + OV29_0231A8A0_OFFSET] - cmpeq r0, #0 - bne _0231A984 - add r6, r6, #1 -_0231A970: - mov r0, sb - mov r1, sl - bl GetNumberOfAttacks - cmp r6, r0 - blt _0231A924 -_0231A984: - mov r0, sb - bl EntityIsValid__02319F8C - cmp r0, #0 - beq _0231A9BC - cmp r7, #0 - moveq r1, #1 - movne r1, #0 - ldr r4, [sb, #0xb4] - mov r0, sb - and r1, r1, #0xff - bl UpdateMovePp - ldrb r1, [r4, #0x4e] - mov r0, sb - bl ov29_022FA574 -_0231A9BC: - mov r0, sb - bl TryActivateTruant -_0231A9C4: - add sp, sp, #4 - ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, pc} - .align 2, 0 -_0231A9CC: .word DUNGEON_PTR -#ifdef JAPAN -_0231A9D0: .word 0x00000B3D -#else -_0231A9D0: .word 0x00000DFD -#endif - arm_func_end ov29_0231A8A0 diff --git a/asm/overlay_29_0231A7A0.s b/asm/overlay_29_0231A7A0.s new file mode 100644 index 00000000..bf0eb1c9 --- /dev/null +++ b/asm/overlay_29_0231A7A0.s @@ -0,0 +1,190 @@ + .include "asm/macros.inc" + .include "overlay_29_0231A7A0.inc" + + .text + + arm_func_start ShouldUsePp +ShouldUsePp: ; 0x0231A7A0 + stmdb sp!, {r3, r4, r5, r6, r7, lr} + mov r4, #0 + mov r1, #0x52 + mov r7, r0 + mov r5, r4 + mov r6, r4 + bl ExclusiveItemEffectIsActive__0231A87C + cmp r0, #0 + mov r0, r7 + mov r1, #0x1f + movne r4, #1 + bl IqSkillIsEnabled + cmp r0, #0 + movne r5, #1 + cmp r5, #0 + beq _0231A81C + ldr r0, _0231A870 ; =ov10_022C459C + ldrsh r0, [r0] + bl DungeonRandOutcome__022EAB20 + cmp r0, #0 + beq _0231A81C + mov r0, r7 + bl ov29_022E3ED0 + mov r0, #0 + mov r1, r7 + mov r2, r0 + bl SubstitutePlaceholderStringTags + ldr r1, _0231A874 ; =0x00000DF5 + mov r0, r7 + bl LogMessageByIdWithPopupCheckUser + mov r6, #1 +_0231A81C: + cmp r6, #0 + bne _0231A868 + cmp r4, #0 + beq _0231A868 + ldr r0, _0231A870 ; =ov10_022C459C + ldrsh r0, [r0] + bl DungeonRandOutcome__022EAB20 + cmp r0, #0 + beq _0231A868 + mov r0, r7 + bl ov29_022E3ED0 + mov r0, #0 + mov r1, r7 + mov r2, r0 + bl SubstitutePlaceholderStringTags + ldr r1, _0231A878 ; =0x00000DF7 + mov r0, r7 + bl LogMessageByIdWithPopupCheckUser + mov r6, #1 +_0231A868: + mov r0, r6 + ldmia sp!, {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_0231A870: .word ov10_022C459C +#ifdef JAPAN +_0231A874: .word 0x00000B35 +_0231A878: .word 0x00000B37 +#else +_0231A874: .word 0x00000DF5 +_0231A878: .word 0x00000DF7 +#endif + arm_func_end ShouldUsePp + + arm_func_start ExclusiveItemEffectIsActive__0231A87C +ExclusiveItemEffectIsActive__0231A87C: ; 0x0231A87C + stmdb sp!, {r3, lr} + ldr r2, [r0, #0xb4] + ldrb r0, [r2, #6] + cmp r0, #0 + movne r0, #0 + ldmneia sp!, {r3, pc} +#ifdef JAPAN + add r0, r2, #0x224 +#else + add r0, r2, #0x228 +#endif + bl ExclusiveItemEffectFlagTest + ldmia sp!, {r3, pc} + arm_func_end ExclusiveItemEffectIsActive__0231A87C + + arm_func_start ov29_0231A8A0 +ov29_0231A8A0: ; 0x0231A8A0 +#ifdef JAPAN +#define OV29_0231A8A0_OFFSET -4 +#else +#define OV29_0231A8A0_OFFSET 0 +#endif + stmdb sp!, {r3, r4, r5, r6, r7, r8, sb, sl, lr} + sub sp, sp, #4 + mov sb, r0 + mov r7, #0 + bl IsMonster__0231A9D4 + cmp r0, #0 + beq _0231A910 + ldr r0, _0231A9CC ; =DUNGEON_PTR + ldr r4, [sb, #0xb4] + ldr r0, [r0] + add r0, r0, #0x4000 +#ifdef JAPAN + ldrb r0, [r0, #0x36] +#else + ldrb r0, [r0, #0xda] +#endif + bl AreMovesEnabled + cmp r0, #0 + bne _0231A8EC + ldr r1, _0231A9D0 ; =0x00000DFD + mov r0, sb + bl LogMessageByIdWithPopupCheckUser + b _0231A9C4 +_0231A8EC: + mov r1, r7 + mov r0, sb + strb r1, [r4, #0x23f + OV29_0231A8A0_OFFSET] + bl ShouldUsePp + cmp r0, #0 + movne r7, #1 + strneb r7, [r4, #0x23f + OV29_0231A8A0_OFFSET] + mov r0, #0 + strb r0, [r4, #0x23e + OV29_0231A8A0_OFFSET] +_0231A910: + mov r6, #0 + mov r4, #1 + mov r5, r6 + mov sl, r4 + b _0231A970 +_0231A924: + ldr r8, [sb, #0xb4] + mov r0, sb + str r5, [sp] + ldrb r1, [r8, #0x4e] + mov r2, r4 + mov r3, r5 + bl ov29_0232145C + mov r0, sb + bl EntityIsValid__02319F8C + cmp r0, #0 + beq _0231A984 + bl IsFloorOver + cmp r0, #0 + ldreqb r0, [r8, #0x23e + OV29_0231A8A0_OFFSET] + cmpeq r0, #0 + ldreqb r0, [r8, #0x163 + OV29_0231A8A0_OFFSET] + cmpeq r0, #0 + bne _0231A984 + add r6, r6, #1 +_0231A970: + mov r0, sb + mov r1, sl + bl GetNumberOfAttacks + cmp r6, r0 + blt _0231A924 +_0231A984: + mov r0, sb + bl EntityIsValid__02319F8C + cmp r0, #0 + beq _0231A9BC + cmp r7, #0 + moveq r1, #1 + movne r1, #0 + ldr r4, [sb, #0xb4] + mov r0, sb + and r1, r1, #0xff + bl UpdateMovePp + ldrb r1, [r4, #0x4e] + mov r0, sb + bl ov29_022FA574 +_0231A9BC: + mov r0, sb + bl TryActivateTruant +_0231A9C4: + add sp, sp, #4 + ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, pc} + .align 2, 0 +_0231A9CC: .word DUNGEON_PTR +#ifdef JAPAN +_0231A9D0: .word 0x00000B3D +#else +_0231A9D0: .word 0x00000DFD +#endif + arm_func_end ov29_0231A8A0 diff --git a/asm/overlay_29_0231EDFC.s b/asm/overlay_29_0231EDFC.s index 0a8352cd..5b7494fc 100644 --- a/asm/overlay_29_0231EDFC.s +++ b/asm/overlay_29_0231EDFC.s @@ -299,7 +299,7 @@ _0231F1B0: bl _s32_div_f ldrsh sl, [sp, #0x40] mov r1, #0x18 - ldr r2, _0231F560 ; =ov29_0235171E + ldr r2, _0231F560 ; =DIRECTIONS_XY + 2 mov r3, r6, lsl #2 smulbb r1, sl, r1 add r1, r1, #0xc @@ -527,7 +527,7 @@ _0231F550: .word DUNGEON_PTR _0231F554: .word 0x00000E48 + OV29_0231EDFC_OFFSET _0231F558: .word 0x00000E47 + OV29_0231EDFC_OFFSET _0231F55C: .word 0x00000212 -_0231F560: .word ov29_0235171E +_0231F560: .word DIRECTIONS_XY + 2 _0231F564: .word 0x00000163 _0231F568: .word ov10_022C4458 _0231F56C: .word 0x00000259 diff --git a/asm/overlay_29_023201A0.s b/asm/overlay_29_023201A0.s index 7e6743f3..5602abf2 100644 --- a/asm/overlay_29_023201A0.s +++ b/asm/overlay_29_023201A0.s @@ -38,7 +38,7 @@ ov29_023201D0: ; 0x023201D0 strh r0, [sp] ldrh r3, [sl, #6] ldrsh r6, [r1, r2] - ldr r0, _02320334 ; =ov29_0235171E + ldr r0, _02320334 ; =DIRECTIONS_XY + 2 ldrsh r1, [sp] ldrsh r7, [r0, r2] strh r3, [sp, #2] @@ -117,7 +117,7 @@ _02320328: ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, pc} .align 2, 0 _02320330: .word DIRECTIONS_XY -_02320334: .word ov29_0235171E +_02320334: .word DIRECTIONS_XY + 2 _02320338: .word 0x00000212 arm_func_end ov29_023201D0 diff --git a/asm/overlay_29_02322DDC.s b/asm/overlay_29_02322DDC.s index 9c134cdf..56e061ff 100644 --- a/asm/overlay_29_02322DDC.s +++ b/asm/overlay_29_02322DDC.s @@ -266,7 +266,7 @@ ov29_023230FC: ; 0x023230FC _02323160: ldrsh r2, [r8, #4] ldr r0, _023238F8 ; =DIRECTIONS_XY - ldr r1, _023238FC ; =ov29_0235171E + ldr r1, _023238FC ; =DIRECTIONS_XY + 2 strh r2, [sp, #0xbc] ldrsh r2, [r8, #6] mov r4, #0 @@ -356,7 +356,7 @@ _02323250: ldr r0, _023238F8 ; =DIRECTIONS_XY strh r2, [sp, #0xb8] ldrsh r2, [r5, #6] - ldr r1, _023238FC ; =ov29_0235171E + ldr r1, _023238FC ; =DIRECTIONS_XY + 2 strh r2, [sp, #0xba] ldrb r2, [sb, #0x4c] add r2, r2, #4 @@ -372,7 +372,7 @@ _023232E4: ldr r3, _023238F8 ; =DIRECTIONS_XY strh r0, [sp, #0xbc] ldrsh r1, [r8, #6] - ldr r2, _023238FC ; =ov29_0235171E + ldr r2, _023238FC ; =DIRECTIONS_XY + 2 mov r0, #0x18 strh r1, [sp, #0xbe] ldrb r1, [sb, #0x4c] @@ -788,7 +788,7 @@ _023238EC: .align 2, 0 _023238F4: .word ov29_02352A54 _023238F8: .word DIRECTIONS_XY -_023238FC: .word ov29_0235171E +_023238FC: .word DIRECTIONS_XY + 2 _02323900: .word ov29_0235175C _02323904: .word 0x00000FFF _02323908: .word ov29_02352A6C @@ -843,7 +843,7 @@ _02323984: ldr r4, _02323C30 ; =DIRECTIONS_XY ldrb r1, [r0, #0x4c] ldrsh r0, [sl, #4] - ldr r5, _02323C34 ; =ov29_0235171E + ldr r5, _02323C34 ; =DIRECTIONS_XY + 2 add r1, r1, #4 strh r0, [sp, #0x34] and r0, r1, #7 @@ -1032,7 +1032,7 @@ _02323BE0: ldmia sp!, {r3, r4, r5, r6, r7, r8, sb, sl, fp, pc} .align 2, 0 _02323C30: .word DIRECTIONS_XY -_02323C34: .word ov29_0235171E +_02323C34: .word DIRECTIONS_XY + 2 _02323C38: .word ov29_02352A8C _02323C3C: .word DUNGEON_PTR #ifdef JAPAN diff --git a/asm/overlay_29_0232A3FC.s b/asm/overlay_29_0232A3FC.s index 4b145a6c..b20fd36c 100644 --- a/asm/overlay_29_0232A3FC.s +++ b/asm/overlay_29_0232A3FC.s @@ -352,7 +352,7 @@ _0232A7B4: bl LogMessageByIdWithPopupCheckUserTarget ldrb r1, [r4, #0x4c] ldr r0, _0232A82C ; =DIRECTIONS_XY - ldr r5, _0232A830 ; =ov29_0235171E + ldr r5, _0232A830 ; =DIRECTIONS_XY + 2 mov r1, r1, lsl #2 ldrsh r1, [r0, r1] add r2, sp, #4 @@ -383,7 +383,7 @@ _0232A824: .word 0x00000EE8 _0232A828: .word 0x00000EE7 #endif _0232A82C: .word DIRECTIONS_XY -_0232A830: .word ov29_0235171E +_0232A830: .word DIRECTIONS_XY + 2 arm_func_end DoMoveKnockOff arm_func_start ov29_0232A834 diff --git a/asm/overlay_29_0232C524.s b/asm/overlay_29_0232C524.s index 98cfebb0..d1e2280d 100644 --- a/asm/overlay_29_0232C524.s +++ b/asm/overlay_29_0232C524.s @@ -905,7 +905,7 @@ _0232CFB8: ldrsh r3, [r6, #4] mov r1, r1, lsl #2 ldrsh r2, [r0, r1] - ldr r1, _0232D0E8 ; =ov29_0235171E + ldr r1, _0232D0E8 ; =DIRECTIONS_XY + 2 add r0, sp, #0 add r2, r3, r2 strh r2, [sp] @@ -985,12 +985,12 @@ _0232D0D0: #ifdef JAPAN _0232D0E0: .word 0x00000C4D _0232D0E4: .word DIRECTIONS_XY -_0232D0E8: .word ov29_0235171E +_0232D0E8: .word DIRECTIONS_XY + 2 _0232D0EC: .word 0x00000C4C #else _0232D0E0: .word 0x00000F0B _0232D0E4: .word DIRECTIONS_XY -_0232D0E8: .word ov29_0235171E +_0232D0E8: .word DIRECTIONS_XY + 2 _0232D0EC: .word 0x00000F0A #endif arm_func_end DoMoveFillIn diff --git a/asm/overlay_29_rodata_0234FD04.s b/asm/overlay_29_rodata_0234FD04.s index a5b726e4..3dcabada 100644 --- a/asm/overlay_29_rodata_0234FD04.s +++ b/asm/overlay_29_rodata_0234FD04.s @@ -1726,459 +1726,3 @@ ov29_023516E8: ov29_023516FC: .byte 0x02, 0x06, 0x04, 0x00, 0x02, 0x00, 0x04, 0x06, 0x04, 0x00, 0x06, 0x02, 0x04, 0x02, 0x06, 0x00 .byte 0x06, 0x02, 0x00, 0x04, 0x06, 0x04, 0x02, 0x00, 0x00, 0x04, 0x02, 0x06, 0x00, 0x06, 0x02, 0x04 - .global DIRECTIONS_XY -DIRECTIONS_XY: - .byte 0x00, 0x00 - .global ov29_0235171E -ov29_0235171E: - .byte 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0xFF, 0xFF - .byte 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x01, 0x00 - .global ov29_0235173C -ov29_0235173C: - .byte 0x00, 0x00 - .global ov29_0235173E -ov29_0235173E: - .byte 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0xFF - .byte 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x01 - .global ov29_0235175C -ov29_0235175C: - .byte 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00 - .byte 0x00, 0x04, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00 - .global ov29_0235177C -ov29_0235177C: - .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00 - .byte 0xFE, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00 - .global ov29_0235179C -ov29_0235179C: - .word ov29_02351974 - .global ov29_023517A0 -ov29_023517A0: - .byte 0x01, 0x00 - .global ov29_023517A2 -ov29_023517A2: - .byte 0x01, 0x00 - .word ov29_02351B00 - .byte 0x01, 0x00, 0x01, 0x00 - .word ov29_02351C94 - .byte 0x01, 0x00, 0x01, 0x00 - .word ov29_02351B00 - .byte 0x01, 0x00, 0xFF, 0xFF - .word ov29_02351974 - .byte 0xFF, 0xFF, 0xFF, 0xFF - .word ov29_02351B00 - .byte 0xFF, 0xFF, 0xFF, 0xFF - .word ov29_02351C94 - .byte 0xFF, 0xFF, 0xFF, 0xFF - .word ov29_02351B00 - .byte 0xFF, 0xFF, 0x01, 0x00 - .global DISPLACEMENTS_WITHIN_2_LARGEST_FIRST -DISPLACEMENTS_WITHIN_2_LARGEST_FIRST: - .byte 0x00, 0x00, 0xFE, 0xFF, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x00, 0x00 - .byte 0x02, 0x00, 0xFE, 0xFF, 0xFE, 0xFF, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0xFE, 0xFF, 0xFE, 0xFF - .byte 0xFF, 0xFF, 0xFE, 0xFF, 0x01, 0x00, 0xFE, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0xFF, 0xFF - .byte 0xFE, 0xFF, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0xFF, 0xFF, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00 - .byte 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00 - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x63, 0x00, 0x63, 0x00 - .global DISPLACEMENTS_WITHIN_2_SMALLEST_FIRST -DISPLACEMENTS_WITHIN_2_SMALLEST_FIRST: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF - .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x01, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0xFE, 0xFF, 0xFE, 0xFF - .byte 0xFF, 0xFF, 0xFE, 0xFF, 0x00, 0x00, 0xFE, 0xFF, 0x01, 0x00, 0xFE, 0xFF, 0x02, 0x00, 0xFE, 0xFF - .byte 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0xFF, 0xFF, 0xFE, 0xFF, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .byte 0xFE, 0xFF, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0xFE, 0xFF, 0x02, 0x00, 0xFF, 0xFF, 0x02, 0x00 - .byte 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x63, 0x00, 0x63, 0x00 - .global DISPLACEMENTS_WITHIN_3 -DISPLACEMENTS_WITHIN_3: - .byte 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x01, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0xFE, 0xFF, 0x00, 0x00 - .byte 0x00, 0x00, 0xFE, 0xFF, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0xFF, 0xFF, 0x01, 0x00, 0x01, 0x00 - .byte 0x02, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0xFE, 0xFF, 0xFF, 0xFF - .byte 0xFE, 0xFF, 0x01, 0x00, 0xFD, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0x00, 0x00, 0x03, 0x00 - .byte 0x01, 0x00, 0xFE, 0xFF, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0xFF, 0xFF, 0x02, 0x00, 0x01, 0x00 - .byte 0x03, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xFE, 0xFF, 0xFE, 0xFF - .byte 0xFE, 0xFF, 0x02, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0x01, 0x00, 0x01, 0x00, 0xFD, 0xFF - .byte 0x01, 0x00, 0x03, 0x00, 0x02, 0x00, 0xFE, 0xFF, 0x02, 0x00, 0x02, 0x00, 0x03, 0x00, 0xFF, 0xFF - .byte 0x03, 0x00, 0x01, 0x00, 0xFE, 0xFF, 0xFD, 0xFF, 0xFE, 0xFF, 0x03, 0x00, 0xFD, 0xFF, 0xFE, 0xFF - .byte 0xFD, 0xFF, 0x02, 0x00, 0x02, 0x00, 0xFD, 0xFF, 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0xFE, 0xFF - .byte 0x03, 0x00, 0x02, 0x00, 0xFD, 0xFF, 0xFD, 0xFF, 0xFD, 0xFF, 0x03, 0x00, 0x03, 0x00, 0xFD, 0xFF - .byte 0x03, 0x00, 0x03, 0x00, 0x63, 0x00, 0x63, 0x00 - .global ov29_02351974 -ov29_02351974: - .byte 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00 - .byte 0x01, 0x00, 0x02, 0x00, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x03, 0x00 - .byte 0xFF, 0xFF, 0x03, 0x00, 0x02, 0x00, 0x03, 0x00, 0xFE, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00 - .byte 0x01, 0x00, 0x04, 0x00, 0xFF, 0xFF, 0x04, 0x00, 0x02, 0x00, 0x04, 0x00, 0xFE, 0xFF, 0x04, 0x00 - .byte 0x03, 0x00, 0x04, 0x00, 0xFD, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x01, 0x00, 0x05, 0x00 - .byte 0xFF, 0xFF, 0x05, 0x00, 0x02, 0x00, 0x05, 0x00, 0xFE, 0xFF, 0x05, 0x00, 0x03, 0x00, 0x05, 0x00 - .byte 0xFD, 0xFF, 0x05, 0x00, 0x04, 0x00, 0x05, 0x00, 0xFC, 0xFF, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00 - .byte 0x01, 0x00, 0x06, 0x00, 0xFF, 0xFF, 0x06, 0x00, 0x02, 0x00, 0x06, 0x00, 0xFE, 0xFF, 0x06, 0x00 - .byte 0x03, 0x00, 0x06, 0x00, 0xFD, 0xFF, 0x06, 0x00, 0x04, 0x00, 0x06, 0x00, 0xFC, 0xFF, 0x06, 0x00 - .byte 0x05, 0x00, 0x06, 0x00, 0xFB, 0xFF, 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x01, 0x00, 0x07, 0x00 - .byte 0xFF, 0xFF, 0x07, 0x00, 0x02, 0x00, 0x07, 0x00, 0xFE, 0xFF, 0x07, 0x00, 0x03, 0x00, 0x07, 0x00 - .byte 0xFD, 0xFF, 0x07, 0x00, 0x04, 0x00, 0x07, 0x00, 0xFC, 0xFF, 0x07, 0x00, 0x05, 0x00, 0x07, 0x00 - .byte 0xFB, 0xFF, 0x07, 0x00, 0x06, 0x00, 0x07, 0x00, 0xFA, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x08, 0x00 - .byte 0x01, 0x00, 0x08, 0x00, 0xFF, 0xFF, 0x08, 0x00, 0x02, 0x00, 0x08, 0x00, 0xFE, 0xFF, 0x08, 0x00 - .byte 0x03, 0x00, 0x08, 0x00, 0xFD, 0xFF, 0x08, 0x00, 0x04, 0x00, 0x08, 0x00, 0xFC, 0xFF, 0x08, 0x00 - .byte 0x05, 0x00, 0x08, 0x00, 0xFB, 0xFF, 0x08, 0x00, 0x06, 0x00, 0x08, 0x00, 0xFA, 0xFF, 0x08, 0x00 - .byte 0x07, 0x00, 0x08, 0x00, 0xF9, 0xFF, 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x01, 0x00, 0x09, 0x00 - .byte 0xFF, 0xFF, 0x09, 0x00, 0x02, 0x00, 0x09, 0x00, 0xFE, 0xFF, 0x09, 0x00, 0x03, 0x00, 0x09, 0x00 - .byte 0xFD, 0xFF, 0x09, 0x00, 0x04, 0x00, 0x09, 0x00, 0xFC, 0xFF, 0x09, 0x00, 0x05, 0x00, 0x09, 0x00 - .byte 0xFB, 0xFF, 0x09, 0x00, 0x06, 0x00, 0x09, 0x00, 0xFA, 0xFF, 0x09, 0x00, 0x07, 0x00, 0x09, 0x00 - .byte 0xF9, 0xFF, 0x09, 0x00, 0x08, 0x00, 0x09, 0x00, 0xF8, 0xFF, 0x09, 0x00, 0x00, 0x00, 0x0A, 0x00 - .byte 0x01, 0x00, 0x0A, 0x00, 0xFF, 0xFF, 0x0A, 0x00, 0x02, 0x00, 0x0A, 0x00, 0xFE, 0xFF, 0x0A, 0x00 - .byte 0x03, 0x00, 0x0A, 0x00, 0xFD, 0xFF, 0x0A, 0x00, 0x04, 0x00, 0x0A, 0x00, 0xFC, 0xFF, 0x0A, 0x00 - .byte 0x05, 0x00, 0x0A, 0x00, 0xFB, 0xFF, 0x0A, 0x00, 0x06, 0x00, 0x0A, 0x00, 0xFA, 0xFF, 0x0A, 0x00 - .byte 0x07, 0x00, 0x0A, 0x00, 0xF9, 0xFF, 0x0A, 0x00, 0x08, 0x00, 0x0A, 0x00, 0xF8, 0xFF, 0x0A, 0x00 - .byte 0x63, 0x00, 0x63, 0x00 - .global ov29_02351B00 -ov29_02351B00: - .byte 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00 - .byte 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x02, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x02, 0x00, 0x02, 0x00, 0x04, 0x00, 0x04, 0x00, 0x01, 0x00 - .byte 0x01, 0x00, 0x04, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x05, 0x00 - .byte 0x05, 0x00, 0x03, 0x00, 0x03, 0x00, 0x05, 0x00, 0x05, 0x00, 0x02, 0x00, 0x02, 0x00, 0x05, 0x00 - .byte 0x05, 0x00, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x05, 0x00 - .byte 0x05, 0x00, 0x06, 0x00, 0x06, 0x00, 0x04, 0x00, 0x04, 0x00, 0x06, 0x00, 0x06, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x06, 0x00, 0x06, 0x00, 0x02, 0x00, 0x02, 0x00, 0x06, 0x00, 0x06, 0x00, 0x01, 0x00 - .byte 0x01, 0x00, 0x06, 0x00, 0x07, 0x00, 0x07, 0x00, 0x07, 0x00, 0x06, 0x00, 0x06, 0x00, 0x07, 0x00 - .byte 0x07, 0x00, 0x05, 0x00, 0x05, 0x00, 0x07, 0x00, 0x07, 0x00, 0x04, 0x00, 0x04, 0x00, 0x07, 0x00 - .byte 0x07, 0x00, 0x03, 0x00, 0x03, 0x00, 0x07, 0x00, 0x07, 0x00, 0x02, 0x00, 0x02, 0x00, 0x07, 0x00 - .byte 0x07, 0x00, 0x01, 0x00, 0x01, 0x00, 0x07, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x07, 0x00 - .byte 0x07, 0x00, 0x08, 0x00, 0x08, 0x00, 0x06, 0x00, 0x06, 0x00, 0x08, 0x00, 0x08, 0x00, 0x05, 0x00 - .byte 0x05, 0x00, 0x08, 0x00, 0x08, 0x00, 0x04, 0x00, 0x04, 0x00, 0x08, 0x00, 0x08, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x08, 0x00, 0x08, 0x00, 0x02, 0x00, 0x02, 0x00, 0x08, 0x00, 0x08, 0x00, 0x01, 0x00 - .byte 0x01, 0x00, 0x08, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x08, 0x00, 0x08, 0x00, 0x09, 0x00 - .byte 0x09, 0x00, 0x07, 0x00, 0x07, 0x00, 0x09, 0x00, 0x09, 0x00, 0x06, 0x00, 0x06, 0x00, 0x09, 0x00 - .byte 0x09, 0x00, 0x05, 0x00, 0x05, 0x00, 0x09, 0x00, 0x09, 0x00, 0x04, 0x00, 0x04, 0x00, 0x09, 0x00 - .byte 0x09, 0x00, 0x03, 0x00, 0x03, 0x00, 0x09, 0x00, 0x09, 0x00, 0x02, 0x00, 0x02, 0x00, 0x09, 0x00 - .byte 0x09, 0x00, 0x01, 0x00, 0x01, 0x00, 0x09, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x09, 0x00 - .byte 0x09, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x08, 0x00, 0x08, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x07, 0x00 - .byte 0x07, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x06, 0x00, 0x06, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x05, 0x00 - .byte 0x05, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x04, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x03, 0x00 - .byte 0x03, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x02, 0x00, 0x02, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x01, 0x00 - .byte 0x01, 0x00, 0x0A, 0x00, 0x63, 0x00, 0x63, 0x00 - .global ov29_02351C94 -ov29_02351C94: - .byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0xFF, 0xFF, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0xFF, 0xFF - .byte 0x03, 0x00, 0x01, 0x00, 0x03, 0x00, 0xFE, 0xFF, 0x03, 0x00, 0x02, 0x00, 0x04, 0x00, 0x00, 0x00 - .byte 0x04, 0x00, 0xFF, 0xFF, 0x04, 0x00, 0x01, 0x00, 0x04, 0x00, 0xFE, 0xFF, 0x04, 0x00, 0x02, 0x00 - .byte 0x04, 0x00, 0xFD, 0xFF, 0x04, 0x00, 0x03, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0xFF, 0xFF - .byte 0x05, 0x00, 0x01, 0x00, 0x05, 0x00, 0xFE, 0xFF, 0x05, 0x00, 0x02, 0x00, 0x05, 0x00, 0xFD, 0xFF - .byte 0x05, 0x00, 0x03, 0x00, 0x05, 0x00, 0xFC, 0xFF, 0x05, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00 - .byte 0x06, 0x00, 0xFF, 0xFF, 0x06, 0x00, 0x01, 0x00, 0x06, 0x00, 0xFE, 0xFF, 0x06, 0x00, 0x02, 0x00 - .byte 0x06, 0x00, 0xFD, 0xFF, 0x06, 0x00, 0x03, 0x00, 0x06, 0x00, 0xFC, 0xFF, 0x06, 0x00, 0x04, 0x00 - .byte 0x06, 0x00, 0xFB, 0xFF, 0x06, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0xFF, 0xFF - .byte 0x07, 0x00, 0x01, 0x00, 0x07, 0x00, 0xFE, 0xFF, 0x07, 0x00, 0x02, 0x00, 0x07, 0x00, 0xFD, 0xFF - .byte 0x07, 0x00, 0x03, 0x00, 0x07, 0x00, 0xFC, 0xFF, 0x07, 0x00, 0x04, 0x00, 0x07, 0x00, 0xFB, 0xFF - .byte 0x07, 0x00, 0x05, 0x00, 0x07, 0x00, 0xFA, 0xFF, 0x07, 0x00, 0x06, 0x00, 0x08, 0x00, 0x00, 0x00 - .byte 0x08, 0x00, 0xFF, 0xFF, 0x08, 0x00, 0x01, 0x00, 0x08, 0x00, 0xFE, 0xFF, 0x08, 0x00, 0x02, 0x00 - .byte 0x08, 0x00, 0xFD, 0xFF, 0x08, 0x00, 0x03, 0x00, 0x08, 0x00, 0xFC, 0xFF, 0x08, 0x00, 0x04, 0x00 - .byte 0x08, 0x00, 0xFB, 0xFF, 0x08, 0x00, 0x05, 0x00, 0x08, 0x00, 0xFA, 0xFF, 0x08, 0x00, 0x06, 0x00 - .byte 0x08, 0x00, 0xF9, 0xFF, 0x08, 0x00, 0x07, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0xFF, 0xFF - .byte 0x09, 0x00, 0x01, 0x00, 0x09, 0x00, 0xFE, 0xFF, 0x09, 0x00, 0x02, 0x00, 0x09, 0x00, 0xFD, 0xFF - .byte 0x09, 0x00, 0x03, 0x00, 0x09, 0x00, 0xFC, 0xFF, 0x09, 0x00, 0x04, 0x00, 0x09, 0x00, 0xFB, 0xFF - .byte 0x09, 0x00, 0x05, 0x00, 0x09, 0x00, 0xFA, 0xFF, 0x09, 0x00, 0x06, 0x00, 0x09, 0x00, 0xF9, 0xFF - .byte 0x09, 0x00, 0x07, 0x00, 0x09, 0x00, 0xF8, 0xFF, 0x09, 0x00, 0x08, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x0A, 0x00, 0xFF, 0xFF, 0x0A, 0x00, 0x01, 0x00, 0x0A, 0x00, 0xFE, 0xFF, 0x0A, 0x00, 0x02, 0x00 - .byte 0x0A, 0x00, 0xFD, 0xFF, 0x0A, 0x00, 0x03, 0x00, 0x0A, 0x00, 0xFC, 0xFF, 0x0A, 0x00, 0x04, 0x00 - .byte 0x0A, 0x00, 0xFB, 0xFF, 0x0A, 0x00, 0x05, 0x00, 0x0A, 0x00, 0xFA, 0xFF, 0x0A, 0x00, 0x06, 0x00 - .byte 0x0A, 0x00, 0xF9, 0xFF, 0x0A, 0x00, 0x07, 0x00, 0x0A, 0x00, 0xF8, 0xFF, 0x0A, 0x00, 0x08, 0x00 - .byte 0x0A, 0x00, 0xF7, 0xFF, 0x0A, 0x00, 0x09, 0x00, 0x63, 0x00, 0x63, 0x00 - .global ov29_02351E28 -ov29_02351E28: - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0xFF, 0xFF, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0xFE, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF - .byte 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0xFF, 0xFF, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00 - .byte 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0x01, 0x00 - .byte 0xFD, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0xFE, 0xFF - .byte 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0xFF, 0xFF, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00 - .byte 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xFE, 0xFF, 0xFE, 0xFF, 0xFE, 0xFF, 0x02, 0x00 - .byte 0xFD, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0x01, 0x00, 0x01, 0x00, 0xFD, 0xFF, 0x01, 0x00, 0x03, 0x00 - .byte 0x02, 0x00, 0xFE, 0xFF, 0x02, 0x00, 0x02, 0x00, 0x03, 0x00, 0xFF, 0xFF, 0x03, 0x00, 0x01, 0x00 - .byte 0xFE, 0xFF, 0xFD, 0xFF, 0xFE, 0xFF, 0x03, 0x00, 0xFD, 0xFF, 0xFE, 0xFF, 0xFD, 0xFF, 0x02, 0x00 - .byte 0x02, 0x00, 0xFD, 0xFF, 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0xFE, 0xFF, 0x03, 0x00, 0x02, 0x00 - .byte 0xFD, 0xFF, 0xFD, 0xFF, 0xFD, 0xFF, 0x03, 0x00, 0x03, 0x00, 0xFD, 0xFF, 0x03, 0x00, 0x03, 0x00 - .byte 0xFC, 0xFF, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x00, 0x00, 0x04, 0x00 - .byte 0xFC, 0xFF, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00 - .byte 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0xFF, 0xFF, 0x01, 0x00, 0xFC, 0xFF, 0x01, 0x00, 0x04, 0x00 - .byte 0xFC, 0xFF, 0x02, 0x00, 0x04, 0x00, 0x02, 0x00, 0xFE, 0xFF, 0xFC, 0xFF, 0xFE, 0xFF, 0x04, 0x00 - .byte 0xFC, 0xFF, 0xFE, 0xFF, 0x04, 0x00, 0xFE, 0xFF, 0x02, 0x00, 0xFC, 0xFF, 0x02, 0x00, 0x04, 0x00 - .byte 0xFC, 0xFF, 0x03, 0x00, 0x04, 0x00, 0x03, 0x00, 0xFD, 0xFF, 0xFC, 0xFF, 0xFD, 0xFF, 0x04, 0x00 - .byte 0xFC, 0xFF, 0xFD, 0xFF, 0x04, 0x00, 0xFD, 0xFF, 0x03, 0x00, 0xFC, 0xFF, 0x03, 0x00, 0x04, 0x00 - .byte 0xFC, 0xFF, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0xFC, 0xFF, 0xFC, 0xFF, 0xFC, 0xFF, 0x04, 0x00 - .byte 0xFB, 0xFF, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xFF, 0x00, 0x00, 0x05, 0x00 - .byte 0xFB, 0xFF, 0xFF, 0xFF, 0x05, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xFF, 0x05, 0x00 - .byte 0xFB, 0xFF, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00, 0x01, 0x00, 0xFB, 0xFF, 0x01, 0x00, 0x05, 0x00 - .byte 0xFB, 0xFF, 0xFE, 0xFF, 0x05, 0x00, 0xFE, 0xFF, 0xFE, 0xFF, 0xFB, 0xFF, 0xFE, 0xFF, 0x05, 0x00 - .byte 0xFB, 0xFF, 0x02, 0x00, 0x05, 0x00, 0x02, 0x00, 0x02, 0x00, 0xFB, 0xFF, 0x02, 0x00, 0x05, 0x00 - .byte 0xFB, 0xFF, 0xFD, 0xFF, 0x05, 0x00, 0xFD, 0xFF, 0xFD, 0xFF, 0xFB, 0xFF, 0xFD, 0xFF, 0x05, 0x00 - .byte 0xFB, 0xFF, 0x03, 0x00, 0x05, 0x00, 0x03, 0x00, 0x03, 0x00, 0xFB, 0xFF, 0x03, 0x00, 0x05, 0x00 - .byte 0xFB, 0xFF, 0xFC, 0xFF, 0x05, 0x00, 0xFC, 0xFF, 0xFC, 0xFF, 0xFB, 0xFF, 0xFC, 0xFF, 0x05, 0x00 - .byte 0xFB, 0xFF, 0x04, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0xFB, 0xFF, 0x04, 0x00, 0x05, 0x00 - .byte 0xFB, 0xFF, 0xFB, 0xFF, 0x05, 0x00, 0xFB, 0xFF, 0xFB, 0xFF, 0xFB, 0xFF, 0xFB, 0xFF, 0x05, 0x00 - .byte 0x63, 0x00, 0x63, 0x00 - .global ITEM_CATEGORY_ACTIONS -ITEM_CATEGORY_ACTIONS: - .byte 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x10, 0x00 - .byte 0x00, 0x00, 0x12, 0x00, 0x12, 0x00, 0x31, 0x00, 0x2C, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .global ov29_02352030 -ov29_02352030: -#ifdef JAPAN - .byte 0xE5, 0x1C -#else - .byte 0x8B, 0x08 -#endif - .global ov29_02352032 -ov29_02352032: -#ifdef JAPAN - .byte 0xE6, 0x1C, 0xE7, 0x1C, 0xE8, 0x1C, 0xE9, 0x1C, 0xEA, 0x1C - .byte 0xEB, 0x1C, 0xEC, 0x1C, 0xED, 0x1C, 0xEE, 0x1C, 0xEF, 0x1C, 0xF0, 0x1C, 0xF1, 0x1C, 0xF2, 0x1C - .byte 0xF3, 0x1C, 0xF4, 0x1C, 0xF5, 0x1C, 0xF6, 0x1C, 0xF7, 0x1C, 0xF8, 0x1C, 0xF9, 0x1C, 0xFA, 0x1C - .byte 0xFB, 0x1C, 0xFC, 0x1C, 0xFD, 0x1C, 0xFE, 0x1C, 0xFF, 0x1C, 0x00, 0x1D, 0x01, 0x1D, 0x02, 0x1D - .byte 0x03, 0x1D, 0x04, 0x1D -#else - .byte 0x8C, 0x08, 0x8D, 0x08, 0x8E, 0x08, 0x8F, 0x08, 0x90, 0x08 - .byte 0x91, 0x08, 0x92, 0x08, 0x93, 0x08, 0x94, 0x08, 0x95, 0x08, 0x96, 0x08, 0x97, 0x08, 0x98, 0x08 - .byte 0x99, 0x08, 0x9A, 0x08, 0x9B, 0x08, 0x9C, 0x08, 0x9D, 0x08, 0x9E, 0x08, 0x9F, 0x08, 0xA0, 0x08 - .byte 0xA1, 0x08, 0xA2, 0x08, 0xA3, 0x08, 0xA4, 0x08, 0xA5, 0x08, 0xA6, 0x08, 0xA7, 0x08, 0xA8, 0x08 - .byte 0xA9, 0x08, 0xAA, 0x08 -#endif - .global ov29_02352070 -ov29_02352070: - .byte 0x58, 0x00, 0x00, 0x00 - .global ov29_02352074 -ov29_02352074: -#ifdef JAPAN - .byte 0x57, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x58, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x59, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x5A, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x5B, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x5C, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x5D, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x5E, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x5F, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x60, 0x23, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x61, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x62, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x63, 0x23, 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00 - .byte 0x64, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x65, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x66, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x67, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x68, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x69, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x6A, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x6B, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x6C, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x6D, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x6E, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x6F, 0x23, 0x00, 0x00, 0xE7, 0x03, 0x00, 0x00 - .byte 0x70, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x71, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x72, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x73, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x74, 0x23, 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00, 0x75, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x76, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x77, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x78, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x79, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x7A, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x7B, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x7C, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x7D, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x7E, 0x23, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x7F, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x80, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x81, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x82, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x83, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x84, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x85, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x86, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x87, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x88, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x89, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x8A, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x8B, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x8C, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x8D, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x8E, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x8F, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x90, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x91, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x92, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x93, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x94, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x95, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x96, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x97, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x98, 0x23, 0x00, 0x00 -#else - .byte 0x87, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x88, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x89, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x8A, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x8B, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x8C, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x8D, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x8E, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x8F, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x90, 0x09, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x91, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x92, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x93, 0x09, 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00 - .byte 0x94, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x95, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x96, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x97, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x98, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x99, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x9A, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x9B, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x9C, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x9D, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0x9E, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x9F, 0x09, 0x00, 0x00, 0xE7, 0x03, 0x00, 0x00 - .byte 0xA0, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xA1, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0xA2, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xA3, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0xA4, 0x09, 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00, 0xA5, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0xA6, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xA7, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0xA8, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xA9, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0xAA, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xAB, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0xAC, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xAD, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0xAE, 0x09, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0xAF, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0xB0, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xB1, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0xB2, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xB3, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0xB4, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xB5, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0xB6, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xB7, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0xB8, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xB9, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0xBA, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xBB, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0xBC, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xBD, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0xBE, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xBF, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0xC0, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xC1, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0xC2, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xC3, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0xC4, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xC5, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0xC6, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xC7, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 - .byte 0xC8, 0x09, 0x00, 0x00 -#endif - .byte 0x05, 0x00, 0x00, 0x00 - .global FRACTIONAL_TURN_SEQUENCE -FRACTIONAL_TURN_SEQUENCE: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 - .global ov29_023522B6 -ov29_023522B6: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00 - .byte 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0E, 0x00 - .byte 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x12, 0x00 - .byte 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x16, 0x00, 0x17, 0x00, 0x18, 0x00, 0x00, 0x00, 0x19, 0x00, 0x1A, 0x00, 0x1B, 0x00, 0x00, 0x00 - .byte 0x1C, 0x00, 0x1D, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x20, 0x00, 0x21, 0x00, 0x00, 0x00 - .byte 0x22, 0x00, 0x23, 0x00, 0x24, 0x00, 0x00, 0x00, 0x25, 0x00, 0x26, 0x00, 0x27, 0x00, 0x00, 0x00 - .byte 0x28, 0x00, 0x29, 0x00, 0x2A, 0x00, 0x2B, 0x00, 0x2C, 0x00, 0x2D, 0x00, 0x2E, 0x00, 0x2F, 0x00 - .byte 0x30, 0x00, 0x31, 0x00, 0x32, 0x00, 0x33, 0x00, 0x34, 0x00, 0x35, 0x00, 0x36, 0x00, 0x37, 0x00 - .byte 0x38, 0x00, 0x39, 0x00, 0x3A, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3D, 0x00, 0x3E, 0x00, 0x3F, 0x00 - .byte 0x40, 0x00, 0x00, 0x00 - .global ov29_02352380 -ov29_02352380: - .byte 0x67, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00 - .byte 0x69, 0x00, 0x00, 0x00 - .global ov29_02352390 -ov29_02352390: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x01, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF - .byte 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF - .byte 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF - .byte 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF - .byte 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF - .byte 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF - .byte 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF - .byte 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF - .byte 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF - .byte 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF - .byte 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF - .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x01, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF - .byte 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF - .byte 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF - .byte 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF - .byte 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF - .byte 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF - .byte 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF - .byte 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF - .byte 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF - .byte 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF - .byte 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF - .byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x01, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF - .byte 0x03, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF - .byte 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF - .byte 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF - .byte 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF - .byte 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF - .byte 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF - .byte 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF - .byte 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF - .byte 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF - .byte 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF - .byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x01, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF - .byte 0x03, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xFF, 0xFF, 0xFF - .byte 0x05, 0x00, 0x00, 0x00, 0xFA, 0xFF, 0xFF, 0xFF, 0x06, 0x00, 0x00, 0x00, 0xF9, 0xFF, 0xFF, 0xFF - .byte 0x07, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF - .byte 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF - .byte 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF - .byte 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF - .byte 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF - .byte 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF - .byte 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF - .byte 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF - .byte 0x08, 0x00, 0x00, 0x00 - .global ov29_02352690 -ov29_02352690: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .global ov29_02352698 -ov29_02352698: - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .global ov29_023526A0 -ov29_023526A0: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .global ov29_023526A8 -ov29_023526A8: - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x16, 0x02, 0x08, 0x05, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .global ov29_023526B8 -ov29_023526B8: - .byte 0x5B, 0x43, 0x53, 0x3A - .byte 0x56, 0x5D, 0x5B, 0x67, 0x6F, 0x6C, 0x64, 0x3A, 0x30, 0x5D, 0x00, 0x00 - .global ov29_023526C8 -ov29_023526C8: - .byte 0x00, 0x00, 0x01, 0x01 - .byte 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00 - .global ov29_023526D8 -ov29_023526D8: - .byte 0xFF, 0xFF, 0xFF, 0xFF - .byte 0x01, 0x00, 0xFF, 0xFF, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00 - .byte 0xFF, 0xFF, 0x00, 0x00 - .global ov29_023526F0 -ov29_023526F0: - .byte 0x00, 0x00 - .global ov29_023526F2 -ov29_023526F2: - .byte 0x01, 0x00 - .global ov29_023526F4 -ov29_023526F4: - .byte 0xDA, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00 - .byte 0x01, 0x00, 0x01, 0x00, 0xDB, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .byte 0xDC, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xFF, 0xFF, 0xDB, 0x01, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xDA, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xDB, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00 - .byte 0xDC, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0xFF, 0xFF, 0x01, 0x00, 0xDB, 0x01, 0x00, 0x00 - .byte 0x01, 0x01, 0x00, 0x00 - .global ov29_02352750 -ov29_02352750: - .byte 0x6D, 0x6F, 0x76, 0x65, 0x3A, 0x00, 0x00, 0x00 - .global ov29_02352758 -ov29_02352758: - .byte 0x81, 0x45, 0x81, 0x45 - .byte 0x81, 0x45, 0x00, 0x00 - .global ov29_02352760 -ov29_02352760: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .global BELLY_DRAIN_IN_WALLS_INT -BELLY_DRAIN_IN_WALLS_INT: - .byte 0x05, 0x00, 0x00, 0x00 - .global ov29_0235276C -ov29_0235276C: - .byte 0x00, 0x00, 0x00, 0x00 - .global ov29_02352770 -ov29_02352770: - .byte 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80 - .global ov29_02352778 -ov29_02352778: - .byte 0x01, 0x02, 0x04, 0x08 - .byte 0x10, 0x20, 0x40, 0x80 - .global ov29_02352780 -ov29_02352780: - .byte 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80 - .global ov29_02352788 -ov29_02352788: - .byte 0x01, 0x02, 0x04, 0x08 - .byte 0x10, 0x20, 0x40, 0x80 - .global ov29_02352790 -ov29_02352790: - .byte 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80 - .global ov29_02352798 -ov29_02352798: - .byte 0x01, 0x02, 0x04, 0x08 - .byte 0x10, 0x20, 0x40, 0x80 diff --git a/asm/overlay_29_rodata_0235173C.s b/asm/overlay_29_rodata_0235173C.s new file mode 100644 index 00000000..566125b5 --- /dev/null +++ b/asm/overlay_29_rodata_0235173C.s @@ -0,0 +1,453 @@ + .include "asm/macros.inc" + .include "overlay_29_rodata_0235173C.inc" + + .rodata + .global ov29_0235173C +ov29_0235173C: + .byte 0x00, 0x00 + .global ov29_0235173E +ov29_0235173E: + .byte 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0xFF + .byte 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x01 + .global ov29_0235175C +ov29_0235175C: + .byte 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00 + .byte 0x00, 0x04, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00 + .global ov29_0235177C +ov29_0235177C: + .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00 + .byte 0xFE, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00 + .global ov29_0235179C +ov29_0235179C: + .word ov29_02351974 + .global ov29_023517A0 +ov29_023517A0: + .byte 0x01, 0x00 + .global ov29_023517A2 +ov29_023517A2: + .byte 0x01, 0x00 + .word ov29_02351B00 + .byte 0x01, 0x00, 0x01, 0x00 + .word ov29_02351C94 + .byte 0x01, 0x00, 0x01, 0x00 + .word ov29_02351B00 + .byte 0x01, 0x00, 0xFF, 0xFF + .word ov29_02351974 + .byte 0xFF, 0xFF, 0xFF, 0xFF + .word ov29_02351B00 + .byte 0xFF, 0xFF, 0xFF, 0xFF + .word ov29_02351C94 + .byte 0xFF, 0xFF, 0xFF, 0xFF + .word ov29_02351B00 + .byte 0xFF, 0xFF, 0x01, 0x00 + .global DISPLACEMENTS_WITHIN_2_LARGEST_FIRST +DISPLACEMENTS_WITHIN_2_LARGEST_FIRST: + .byte 0x00, 0x00, 0xFE, 0xFF, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x00, 0x00 + .byte 0x02, 0x00, 0xFE, 0xFF, 0xFE, 0xFF, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0xFE, 0xFF, 0xFE, 0xFF + .byte 0xFF, 0xFF, 0xFE, 0xFF, 0x01, 0x00, 0xFE, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0xFF, 0xFF + .byte 0xFE, 0xFF, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0xFF, 0xFF, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00 + .byte 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00 + .byte 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x63, 0x00, 0x63, 0x00 + .global DISPLACEMENTS_WITHIN_2_SMALLEST_FIRST +DISPLACEMENTS_WITHIN_2_SMALLEST_FIRST: + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF + .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF + .byte 0x01, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0xFE, 0xFF, 0xFE, 0xFF + .byte 0xFF, 0xFF, 0xFE, 0xFF, 0x00, 0x00, 0xFE, 0xFF, 0x01, 0x00, 0xFE, 0xFF, 0x02, 0x00, 0xFE, 0xFF + .byte 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0xFF, 0xFF, 0xFE, 0xFF, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .byte 0xFE, 0xFF, 0x01, 0x00, 0x02, 0x00, 0x01, 0x00, 0xFE, 0xFF, 0x02, 0x00, 0xFF, 0xFF, 0x02, 0x00 + .byte 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x63, 0x00, 0x63, 0x00 + .global DISPLACEMENTS_WITHIN_3 +DISPLACEMENTS_WITHIN_3: + .byte 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00, 0x01, 0x00 + .byte 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0xFE, 0xFF, 0x00, 0x00 + .byte 0x00, 0x00, 0xFE, 0xFF, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0xFF, 0xFF, 0x01, 0x00, 0x01, 0x00 + .byte 0x02, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0xFE, 0xFF, 0xFF, 0xFF + .byte 0xFE, 0xFF, 0x01, 0x00, 0xFD, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0x00, 0x00, 0x03, 0x00 + .byte 0x01, 0x00, 0xFE, 0xFF, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0xFF, 0xFF, 0x02, 0x00, 0x01, 0x00 + .byte 0x03, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xFE, 0xFF, 0xFE, 0xFF + .byte 0xFE, 0xFF, 0x02, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0x01, 0x00, 0x01, 0x00, 0xFD, 0xFF + .byte 0x01, 0x00, 0x03, 0x00, 0x02, 0x00, 0xFE, 0xFF, 0x02, 0x00, 0x02, 0x00, 0x03, 0x00, 0xFF, 0xFF + .byte 0x03, 0x00, 0x01, 0x00, 0xFE, 0xFF, 0xFD, 0xFF, 0xFE, 0xFF, 0x03, 0x00, 0xFD, 0xFF, 0xFE, 0xFF + .byte 0xFD, 0xFF, 0x02, 0x00, 0x02, 0x00, 0xFD, 0xFF, 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0xFE, 0xFF + .byte 0x03, 0x00, 0x02, 0x00, 0xFD, 0xFF, 0xFD, 0xFF, 0xFD, 0xFF, 0x03, 0x00, 0x03, 0x00, 0xFD, 0xFF + .byte 0x03, 0x00, 0x03, 0x00, 0x63, 0x00, 0x63, 0x00 + .global ov29_02351974 +ov29_02351974: + .byte 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00 + .byte 0x01, 0x00, 0x02, 0x00, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x03, 0x00 + .byte 0xFF, 0xFF, 0x03, 0x00, 0x02, 0x00, 0x03, 0x00, 0xFE, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00 + .byte 0x01, 0x00, 0x04, 0x00, 0xFF, 0xFF, 0x04, 0x00, 0x02, 0x00, 0x04, 0x00, 0xFE, 0xFF, 0x04, 0x00 + .byte 0x03, 0x00, 0x04, 0x00, 0xFD, 0xFF, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x01, 0x00, 0x05, 0x00 + .byte 0xFF, 0xFF, 0x05, 0x00, 0x02, 0x00, 0x05, 0x00, 0xFE, 0xFF, 0x05, 0x00, 0x03, 0x00, 0x05, 0x00 + .byte 0xFD, 0xFF, 0x05, 0x00, 0x04, 0x00, 0x05, 0x00, 0xFC, 0xFF, 0x05, 0x00, 0x00, 0x00, 0x06, 0x00 + .byte 0x01, 0x00, 0x06, 0x00, 0xFF, 0xFF, 0x06, 0x00, 0x02, 0x00, 0x06, 0x00, 0xFE, 0xFF, 0x06, 0x00 + .byte 0x03, 0x00, 0x06, 0x00, 0xFD, 0xFF, 0x06, 0x00, 0x04, 0x00, 0x06, 0x00, 0xFC, 0xFF, 0x06, 0x00 + .byte 0x05, 0x00, 0x06, 0x00, 0xFB, 0xFF, 0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x01, 0x00, 0x07, 0x00 + .byte 0xFF, 0xFF, 0x07, 0x00, 0x02, 0x00, 0x07, 0x00, 0xFE, 0xFF, 0x07, 0x00, 0x03, 0x00, 0x07, 0x00 + .byte 0xFD, 0xFF, 0x07, 0x00, 0x04, 0x00, 0x07, 0x00, 0xFC, 0xFF, 0x07, 0x00, 0x05, 0x00, 0x07, 0x00 + .byte 0xFB, 0xFF, 0x07, 0x00, 0x06, 0x00, 0x07, 0x00, 0xFA, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x08, 0x00 + .byte 0x01, 0x00, 0x08, 0x00, 0xFF, 0xFF, 0x08, 0x00, 0x02, 0x00, 0x08, 0x00, 0xFE, 0xFF, 0x08, 0x00 + .byte 0x03, 0x00, 0x08, 0x00, 0xFD, 0xFF, 0x08, 0x00, 0x04, 0x00, 0x08, 0x00, 0xFC, 0xFF, 0x08, 0x00 + .byte 0x05, 0x00, 0x08, 0x00, 0xFB, 0xFF, 0x08, 0x00, 0x06, 0x00, 0x08, 0x00, 0xFA, 0xFF, 0x08, 0x00 + .byte 0x07, 0x00, 0x08, 0x00, 0xF9, 0xFF, 0x08, 0x00, 0x00, 0x00, 0x09, 0x00, 0x01, 0x00, 0x09, 0x00 + .byte 0xFF, 0xFF, 0x09, 0x00, 0x02, 0x00, 0x09, 0x00, 0xFE, 0xFF, 0x09, 0x00, 0x03, 0x00, 0x09, 0x00 + .byte 0xFD, 0xFF, 0x09, 0x00, 0x04, 0x00, 0x09, 0x00, 0xFC, 0xFF, 0x09, 0x00, 0x05, 0x00, 0x09, 0x00 + .byte 0xFB, 0xFF, 0x09, 0x00, 0x06, 0x00, 0x09, 0x00, 0xFA, 0xFF, 0x09, 0x00, 0x07, 0x00, 0x09, 0x00 + .byte 0xF9, 0xFF, 0x09, 0x00, 0x08, 0x00, 0x09, 0x00, 0xF8, 0xFF, 0x09, 0x00, 0x00, 0x00, 0x0A, 0x00 + .byte 0x01, 0x00, 0x0A, 0x00, 0xFF, 0xFF, 0x0A, 0x00, 0x02, 0x00, 0x0A, 0x00, 0xFE, 0xFF, 0x0A, 0x00 + .byte 0x03, 0x00, 0x0A, 0x00, 0xFD, 0xFF, 0x0A, 0x00, 0x04, 0x00, 0x0A, 0x00, 0xFC, 0xFF, 0x0A, 0x00 + .byte 0x05, 0x00, 0x0A, 0x00, 0xFB, 0xFF, 0x0A, 0x00, 0x06, 0x00, 0x0A, 0x00, 0xFA, 0xFF, 0x0A, 0x00 + .byte 0x07, 0x00, 0x0A, 0x00, 0xF9, 0xFF, 0x0A, 0x00, 0x08, 0x00, 0x0A, 0x00, 0xF8, 0xFF, 0x0A, 0x00 + .byte 0x63, 0x00, 0x63, 0x00 + .global ov29_02351B00 +ov29_02351B00: + .byte 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x01, 0x00 + .byte 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0x03, 0x00, 0x02, 0x00, 0x02, 0x00, 0x03, 0x00 + .byte 0x03, 0x00, 0x01, 0x00, 0x01, 0x00, 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0x03, 0x00 + .byte 0x03, 0x00, 0x04, 0x00, 0x04, 0x00, 0x02, 0x00, 0x02, 0x00, 0x04, 0x00, 0x04, 0x00, 0x01, 0x00 + .byte 0x01, 0x00, 0x04, 0x00, 0x05, 0x00, 0x05, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0x05, 0x00 + .byte 0x05, 0x00, 0x03, 0x00, 0x03, 0x00, 0x05, 0x00, 0x05, 0x00, 0x02, 0x00, 0x02, 0x00, 0x05, 0x00 + .byte 0x05, 0x00, 0x01, 0x00, 0x01, 0x00, 0x05, 0x00, 0x06, 0x00, 0x06, 0x00, 0x06, 0x00, 0x05, 0x00 + .byte 0x05, 0x00, 0x06, 0x00, 0x06, 0x00, 0x04, 0x00, 0x04, 0x00, 0x06, 0x00, 0x06, 0x00, 0x03, 0x00 + .byte 0x03, 0x00, 0x06, 0x00, 0x06, 0x00, 0x02, 0x00, 0x02, 0x00, 0x06, 0x00, 0x06, 0x00, 0x01, 0x00 + .byte 0x01, 0x00, 0x06, 0x00, 0x07, 0x00, 0x07, 0x00, 0x07, 0x00, 0x06, 0x00, 0x06, 0x00, 0x07, 0x00 + .byte 0x07, 0x00, 0x05, 0x00, 0x05, 0x00, 0x07, 0x00, 0x07, 0x00, 0x04, 0x00, 0x04, 0x00, 0x07, 0x00 + .byte 0x07, 0x00, 0x03, 0x00, 0x03, 0x00, 0x07, 0x00, 0x07, 0x00, 0x02, 0x00, 0x02, 0x00, 0x07, 0x00 + .byte 0x07, 0x00, 0x01, 0x00, 0x01, 0x00, 0x07, 0x00, 0x08, 0x00, 0x08, 0x00, 0x08, 0x00, 0x07, 0x00 + .byte 0x07, 0x00, 0x08, 0x00, 0x08, 0x00, 0x06, 0x00, 0x06, 0x00, 0x08, 0x00, 0x08, 0x00, 0x05, 0x00 + .byte 0x05, 0x00, 0x08, 0x00, 0x08, 0x00, 0x04, 0x00, 0x04, 0x00, 0x08, 0x00, 0x08, 0x00, 0x03, 0x00 + .byte 0x03, 0x00, 0x08, 0x00, 0x08, 0x00, 0x02, 0x00, 0x02, 0x00, 0x08, 0x00, 0x08, 0x00, 0x01, 0x00 + .byte 0x01, 0x00, 0x08, 0x00, 0x09, 0x00, 0x09, 0x00, 0x09, 0x00, 0x08, 0x00, 0x08, 0x00, 0x09, 0x00 + .byte 0x09, 0x00, 0x07, 0x00, 0x07, 0x00, 0x09, 0x00, 0x09, 0x00, 0x06, 0x00, 0x06, 0x00, 0x09, 0x00 + .byte 0x09, 0x00, 0x05, 0x00, 0x05, 0x00, 0x09, 0x00, 0x09, 0x00, 0x04, 0x00, 0x04, 0x00, 0x09, 0x00 + .byte 0x09, 0x00, 0x03, 0x00, 0x03, 0x00, 0x09, 0x00, 0x09, 0x00, 0x02, 0x00, 0x02, 0x00, 0x09, 0x00 + .byte 0x09, 0x00, 0x01, 0x00, 0x01, 0x00, 0x09, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x09, 0x00 + .byte 0x09, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x08, 0x00, 0x08, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x07, 0x00 + .byte 0x07, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x06, 0x00, 0x06, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x05, 0x00 + .byte 0x05, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x04, 0x00, 0x04, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x03, 0x00 + .byte 0x03, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x02, 0x00, 0x02, 0x00, 0x0A, 0x00, 0x0A, 0x00, 0x01, 0x00 + .byte 0x01, 0x00, 0x0A, 0x00, 0x63, 0x00, 0x63, 0x00 + .global ov29_02351C94 +ov29_02351C94: + .byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 + .byte 0x02, 0x00, 0xFF, 0xFF, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0xFF, 0xFF + .byte 0x03, 0x00, 0x01, 0x00, 0x03, 0x00, 0xFE, 0xFF, 0x03, 0x00, 0x02, 0x00, 0x04, 0x00, 0x00, 0x00 + .byte 0x04, 0x00, 0xFF, 0xFF, 0x04, 0x00, 0x01, 0x00, 0x04, 0x00, 0xFE, 0xFF, 0x04, 0x00, 0x02, 0x00 + .byte 0x04, 0x00, 0xFD, 0xFF, 0x04, 0x00, 0x03, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0xFF, 0xFF + .byte 0x05, 0x00, 0x01, 0x00, 0x05, 0x00, 0xFE, 0xFF, 0x05, 0x00, 0x02, 0x00, 0x05, 0x00, 0xFD, 0xFF + .byte 0x05, 0x00, 0x03, 0x00, 0x05, 0x00, 0xFC, 0xFF, 0x05, 0x00, 0x04, 0x00, 0x06, 0x00, 0x00, 0x00 + .byte 0x06, 0x00, 0xFF, 0xFF, 0x06, 0x00, 0x01, 0x00, 0x06, 0x00, 0xFE, 0xFF, 0x06, 0x00, 0x02, 0x00 + .byte 0x06, 0x00, 0xFD, 0xFF, 0x06, 0x00, 0x03, 0x00, 0x06, 0x00, 0xFC, 0xFF, 0x06, 0x00, 0x04, 0x00 + .byte 0x06, 0x00, 0xFB, 0xFF, 0x06, 0x00, 0x05, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0xFF, 0xFF + .byte 0x07, 0x00, 0x01, 0x00, 0x07, 0x00, 0xFE, 0xFF, 0x07, 0x00, 0x02, 0x00, 0x07, 0x00, 0xFD, 0xFF + .byte 0x07, 0x00, 0x03, 0x00, 0x07, 0x00, 0xFC, 0xFF, 0x07, 0x00, 0x04, 0x00, 0x07, 0x00, 0xFB, 0xFF + .byte 0x07, 0x00, 0x05, 0x00, 0x07, 0x00, 0xFA, 0xFF, 0x07, 0x00, 0x06, 0x00, 0x08, 0x00, 0x00, 0x00 + .byte 0x08, 0x00, 0xFF, 0xFF, 0x08, 0x00, 0x01, 0x00, 0x08, 0x00, 0xFE, 0xFF, 0x08, 0x00, 0x02, 0x00 + .byte 0x08, 0x00, 0xFD, 0xFF, 0x08, 0x00, 0x03, 0x00, 0x08, 0x00, 0xFC, 0xFF, 0x08, 0x00, 0x04, 0x00 + .byte 0x08, 0x00, 0xFB, 0xFF, 0x08, 0x00, 0x05, 0x00, 0x08, 0x00, 0xFA, 0xFF, 0x08, 0x00, 0x06, 0x00 + .byte 0x08, 0x00, 0xF9, 0xFF, 0x08, 0x00, 0x07, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0xFF, 0xFF + .byte 0x09, 0x00, 0x01, 0x00, 0x09, 0x00, 0xFE, 0xFF, 0x09, 0x00, 0x02, 0x00, 0x09, 0x00, 0xFD, 0xFF + .byte 0x09, 0x00, 0x03, 0x00, 0x09, 0x00, 0xFC, 0xFF, 0x09, 0x00, 0x04, 0x00, 0x09, 0x00, 0xFB, 0xFF + .byte 0x09, 0x00, 0x05, 0x00, 0x09, 0x00, 0xFA, 0xFF, 0x09, 0x00, 0x06, 0x00, 0x09, 0x00, 0xF9, 0xFF + .byte 0x09, 0x00, 0x07, 0x00, 0x09, 0x00, 0xF8, 0xFF, 0x09, 0x00, 0x08, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x0A, 0x00, 0xFF, 0xFF, 0x0A, 0x00, 0x01, 0x00, 0x0A, 0x00, 0xFE, 0xFF, 0x0A, 0x00, 0x02, 0x00 + .byte 0x0A, 0x00, 0xFD, 0xFF, 0x0A, 0x00, 0x03, 0x00, 0x0A, 0x00, 0xFC, 0xFF, 0x0A, 0x00, 0x04, 0x00 + .byte 0x0A, 0x00, 0xFB, 0xFF, 0x0A, 0x00, 0x05, 0x00, 0x0A, 0x00, 0xFA, 0xFF, 0x0A, 0x00, 0x06, 0x00 + .byte 0x0A, 0x00, 0xF9, 0xFF, 0x0A, 0x00, 0x07, 0x00, 0x0A, 0x00, 0xF8, 0xFF, 0x0A, 0x00, 0x08, 0x00 + .byte 0x0A, 0x00, 0xF7, 0xFF, 0x0A, 0x00, 0x09, 0x00, 0x63, 0x00, 0x63, 0x00 + .global ov29_02351E28 +ov29_02351E28: + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0xFF, 0xFF, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF + .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0xFE, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF + .byte 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0xFF, 0xFF, 0x01, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00 + .byte 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0x01, 0x00 + .byte 0xFD, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0xFE, 0xFF + .byte 0x01, 0x00, 0x02, 0x00, 0x02, 0x00, 0xFF, 0xFF, 0x02, 0x00, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00 + .byte 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0xFE, 0xFF, 0xFE, 0xFF, 0xFE, 0xFF, 0x02, 0x00 + .byte 0xFD, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0x01, 0x00, 0x01, 0x00, 0xFD, 0xFF, 0x01, 0x00, 0x03, 0x00 + .byte 0x02, 0x00, 0xFE, 0xFF, 0x02, 0x00, 0x02, 0x00, 0x03, 0x00, 0xFF, 0xFF, 0x03, 0x00, 0x01, 0x00 + .byte 0xFE, 0xFF, 0xFD, 0xFF, 0xFE, 0xFF, 0x03, 0x00, 0xFD, 0xFF, 0xFE, 0xFF, 0xFD, 0xFF, 0x02, 0x00 + .byte 0x02, 0x00, 0xFD, 0xFF, 0x02, 0x00, 0x03, 0x00, 0x03, 0x00, 0xFE, 0xFF, 0x03, 0x00, 0x02, 0x00 + .byte 0xFD, 0xFF, 0xFD, 0xFF, 0xFD, 0xFF, 0x03, 0x00, 0x03, 0x00, 0xFD, 0xFF, 0x03, 0x00, 0x03, 0x00 + .byte 0xFC, 0xFF, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0x00, 0x00, 0x04, 0x00 + .byte 0xFC, 0xFF, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00 + .byte 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0xFF, 0xFF, 0x01, 0x00, 0xFC, 0xFF, 0x01, 0x00, 0x04, 0x00 + .byte 0xFC, 0xFF, 0x02, 0x00, 0x04, 0x00, 0x02, 0x00, 0xFE, 0xFF, 0xFC, 0xFF, 0xFE, 0xFF, 0x04, 0x00 + .byte 0xFC, 0xFF, 0xFE, 0xFF, 0x04, 0x00, 0xFE, 0xFF, 0x02, 0x00, 0xFC, 0xFF, 0x02, 0x00, 0x04, 0x00 + .byte 0xFC, 0xFF, 0x03, 0x00, 0x04, 0x00, 0x03, 0x00, 0xFD, 0xFF, 0xFC, 0xFF, 0xFD, 0xFF, 0x04, 0x00 + .byte 0xFC, 0xFF, 0xFD, 0xFF, 0x04, 0x00, 0xFD, 0xFF, 0x03, 0x00, 0xFC, 0xFF, 0x03, 0x00, 0x04, 0x00 + .byte 0xFC, 0xFF, 0x04, 0x00, 0x04, 0x00, 0x04, 0x00, 0xFC, 0xFF, 0xFC, 0xFF, 0xFC, 0xFF, 0x04, 0x00 + .byte 0xFB, 0xFF, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFB, 0xFF, 0x00, 0x00, 0x05, 0x00 + .byte 0xFB, 0xFF, 0xFF, 0xFF, 0x05, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xFF, 0x05, 0x00 + .byte 0xFB, 0xFF, 0x01, 0x00, 0x05, 0x00, 0x01, 0x00, 0x01, 0x00, 0xFB, 0xFF, 0x01, 0x00, 0x05, 0x00 + .byte 0xFB, 0xFF, 0xFE, 0xFF, 0x05, 0x00, 0xFE, 0xFF, 0xFE, 0xFF, 0xFB, 0xFF, 0xFE, 0xFF, 0x05, 0x00 + .byte 0xFB, 0xFF, 0x02, 0x00, 0x05, 0x00, 0x02, 0x00, 0x02, 0x00, 0xFB, 0xFF, 0x02, 0x00, 0x05, 0x00 + .byte 0xFB, 0xFF, 0xFD, 0xFF, 0x05, 0x00, 0xFD, 0xFF, 0xFD, 0xFF, 0xFB, 0xFF, 0xFD, 0xFF, 0x05, 0x00 + .byte 0xFB, 0xFF, 0x03, 0x00, 0x05, 0x00, 0x03, 0x00, 0x03, 0x00, 0xFB, 0xFF, 0x03, 0x00, 0x05, 0x00 + .byte 0xFB, 0xFF, 0xFC, 0xFF, 0x05, 0x00, 0xFC, 0xFF, 0xFC, 0xFF, 0xFB, 0xFF, 0xFC, 0xFF, 0x05, 0x00 + .byte 0xFB, 0xFF, 0x04, 0x00, 0x05, 0x00, 0x04, 0x00, 0x04, 0x00, 0xFB, 0xFF, 0x04, 0x00, 0x05, 0x00 + .byte 0xFB, 0xFF, 0xFB, 0xFF, 0x05, 0x00, 0xFB, 0xFF, 0xFB, 0xFF, 0xFB, 0xFF, 0xFB, 0xFF, 0x05, 0x00 + .byte 0x63, 0x00, 0x63, 0x00 + .global ITEM_CATEGORY_ACTIONS +ITEM_CATEGORY_ACTIONS: + .byte 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x10, 0x00 + .byte 0x00, 0x00, 0x12, 0x00, 0x12, 0x00, 0x31, 0x00, 0x2C, 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .global ov29_02352030 +ov29_02352030: +#ifdef JAPAN + .byte 0xE5, 0x1C +#else + .byte 0x8B, 0x08 +#endif + .global ov29_02352032 +ov29_02352032: +#ifdef JAPAN + .byte 0xE6, 0x1C, 0xE7, 0x1C, 0xE8, 0x1C, 0xE9, 0x1C, 0xEA, 0x1C + .byte 0xEB, 0x1C, 0xEC, 0x1C, 0xED, 0x1C, 0xEE, 0x1C, 0xEF, 0x1C, 0xF0, 0x1C, 0xF1, 0x1C, 0xF2, 0x1C + .byte 0xF3, 0x1C, 0xF4, 0x1C, 0xF5, 0x1C, 0xF6, 0x1C, 0xF7, 0x1C, 0xF8, 0x1C, 0xF9, 0x1C, 0xFA, 0x1C + .byte 0xFB, 0x1C, 0xFC, 0x1C, 0xFD, 0x1C, 0xFE, 0x1C, 0xFF, 0x1C, 0x00, 0x1D, 0x01, 0x1D, 0x02, 0x1D + .byte 0x03, 0x1D, 0x04, 0x1D +#else + .byte 0x8C, 0x08, 0x8D, 0x08, 0x8E, 0x08, 0x8F, 0x08, 0x90, 0x08 + .byte 0x91, 0x08, 0x92, 0x08, 0x93, 0x08, 0x94, 0x08, 0x95, 0x08, 0x96, 0x08, 0x97, 0x08, 0x98, 0x08 + .byte 0x99, 0x08, 0x9A, 0x08, 0x9B, 0x08, 0x9C, 0x08, 0x9D, 0x08, 0x9E, 0x08, 0x9F, 0x08, 0xA0, 0x08 + .byte 0xA1, 0x08, 0xA2, 0x08, 0xA3, 0x08, 0xA4, 0x08, 0xA5, 0x08, 0xA6, 0x08, 0xA7, 0x08, 0xA8, 0x08 + .byte 0xA9, 0x08, 0xAA, 0x08 +#endif + .global ov29_02352070 +ov29_02352070: + .byte 0x58, 0x00, 0x00, 0x00 + .global ov29_02352074 +ov29_02352074: +#ifdef JAPAN + .byte 0x57, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x58, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x59, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x5A, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x5B, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x5C, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x5D, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x5E, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x5F, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x60, 0x23, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x61, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x62, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x63, 0x23, 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00 + .byte 0x64, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x65, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x66, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x67, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x68, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x69, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x6A, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x6B, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x6C, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x6D, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x6E, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x6F, 0x23, 0x00, 0x00, 0xE7, 0x03, 0x00, 0x00 + .byte 0x70, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x71, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x72, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x73, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x74, 0x23, 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00, 0x75, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x76, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x77, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x78, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x79, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x7A, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x7B, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x7C, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x7D, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x7E, 0x23, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x7F, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x80, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x81, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x82, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x83, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x84, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x85, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x86, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x87, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x88, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x89, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x8A, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x8B, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x8C, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x8D, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x8E, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x8F, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x90, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x91, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x92, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x93, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x94, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x95, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x96, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x97, 0x23, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x98, 0x23, 0x00, 0x00 +#else + .byte 0x87, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x88, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x89, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x8A, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x8B, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x8C, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x8D, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x8E, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x8F, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x90, 0x09, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x91, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x92, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x93, 0x09, 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00 + .byte 0x94, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x95, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x96, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x97, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x98, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x99, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x9A, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x9B, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x9C, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x9D, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0x9E, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x9F, 0x09, 0x00, 0x00, 0xE7, 0x03, 0x00, 0x00 + .byte 0xA0, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xA1, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0xA2, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xA3, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0xA4, 0x09, 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00, 0xA5, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0xA6, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xA7, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0xA8, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xA9, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0xAA, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xAB, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0xAC, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xAD, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0xAE, 0x09, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0xAF, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0xB0, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xB1, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0xB2, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xB3, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0xB4, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xB5, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0xB6, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xB7, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0xB8, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xB9, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0xBA, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xBB, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0xBC, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xBD, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0xBE, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xBF, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0xC0, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xC1, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0xC2, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xC3, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0xC4, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xC5, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0xC6, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xC7, 0x09, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00 + .byte 0xC8, 0x09, 0x00, 0x00 +#endif + .byte 0x05, 0x00, 0x00, 0x00 + .global FRACTIONAL_TURN_SEQUENCE +FRACTIONAL_TURN_SEQUENCE: + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 + .global ov29_023522B6 +ov29_023522B6: + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00 + .byte 0x00, 0x00, 0x0B, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x00, 0x00, 0x0E, 0x00 + .byte 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x12, 0x00 + .byte 0x00, 0x00, 0x13, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x16, 0x00, 0x17, 0x00, 0x18, 0x00, 0x00, 0x00, 0x19, 0x00, 0x1A, 0x00, 0x1B, 0x00, 0x00, 0x00 + .byte 0x1C, 0x00, 0x1D, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x20, 0x00, 0x21, 0x00, 0x00, 0x00 + .byte 0x22, 0x00, 0x23, 0x00, 0x24, 0x00, 0x00, 0x00, 0x25, 0x00, 0x26, 0x00, 0x27, 0x00, 0x00, 0x00 + .byte 0x28, 0x00, 0x29, 0x00, 0x2A, 0x00, 0x2B, 0x00, 0x2C, 0x00, 0x2D, 0x00, 0x2E, 0x00, 0x2F, 0x00 + .byte 0x30, 0x00, 0x31, 0x00, 0x32, 0x00, 0x33, 0x00, 0x34, 0x00, 0x35, 0x00, 0x36, 0x00, 0x37, 0x00 + .byte 0x38, 0x00, 0x39, 0x00, 0x3A, 0x00, 0x3B, 0x00, 0x3C, 0x00, 0x3D, 0x00, 0x3E, 0x00, 0x3F, 0x00 + .byte 0x40, 0x00, 0x00, 0x00 + .global ov29_02352380 +ov29_02352380: + .byte 0x67, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00, 0x68, 0x00, 0x00, 0x00 + .byte 0x69, 0x00, 0x00, 0x00 + .global ov29_02352390 +ov29_02352390: + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF + .byte 0x01, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF + .byte 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF + .byte 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF + .byte 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF + .byte 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF + .byte 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF + .byte 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF + .byte 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF + .byte 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF + .byte 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF + .byte 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF + .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF + .byte 0x01, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF + .byte 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF + .byte 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF + .byte 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF + .byte 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF + .byte 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF + .byte 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF + .byte 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF + .byte 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF + .byte 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF + .byte 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF + .byte 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF + .byte 0x01, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF + .byte 0x03, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF + .byte 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF + .byte 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF + .byte 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF + .byte 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF + .byte 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF + .byte 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF + .byte 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF + .byte 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF + .byte 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF + .byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF + .byte 0x01, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0x02, 0x00, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF + .byte 0x03, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x04, 0x00, 0x00, 0x00, 0xFB, 0xFF, 0xFF, 0xFF + .byte 0x05, 0x00, 0x00, 0x00, 0xFA, 0xFF, 0xFF, 0xFF, 0x06, 0x00, 0x00, 0x00, 0xF9, 0xFF, 0xFF, 0xFF + .byte 0x07, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF + .byte 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF + .byte 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF + .byte 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF + .byte 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF + .byte 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF + .byte 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF + .byte 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0x08, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF + .byte 0x08, 0x00, 0x00, 0x00 + .global ov29_02352690 +ov29_02352690: + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .global ov29_02352698 +ov29_02352698: + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .global ov29_023526A0 +ov29_023526A0: + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .global ov29_023526A8 +ov29_023526A8: + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x16, 0x02, 0x08, 0x05, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .global ov29_023526B8 +ov29_023526B8: + .byte 0x5B, 0x43, 0x53, 0x3A + .byte 0x56, 0x5D, 0x5B, 0x67, 0x6F, 0x6C, 0x64, 0x3A, 0x30, 0x5D, 0x00, 0x00 + .global ov29_023526C8 +ov29_023526C8: + .byte 0x00, 0x00, 0x01, 0x01 + .byte 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00 + .global ov29_023526D8 +ov29_023526D8: + .byte 0xFF, 0xFF, 0xFF, 0xFF + .byte 0x01, 0x00, 0xFF, 0xFF, 0x01, 0x00, 0x01, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00 + .byte 0xFF, 0xFF, 0x00, 0x00 + .global ov29_023526F0 +ov29_023526F0: + .byte 0x00, 0x00 + .global ov29_023526F2 +ov29_023526F2: + .byte 0x01, 0x00 + .global ov29_023526F4 +ov29_023526F4: + .byte 0xDA, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00 + .byte 0x01, 0x00, 0x01, 0x00, 0xDB, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 + .byte 0xDC, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xFF, 0xFF, 0xDB, 0x01, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xDA, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 + .byte 0xFF, 0xFF, 0xFF, 0xFF, 0xDB, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x00, 0x00 + .byte 0xDC, 0x01, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0xFF, 0xFF, 0x01, 0x00, 0xDB, 0x01, 0x00, 0x00 + .byte 0x01, 0x01, 0x00, 0x00 + .global ov29_02352750 +ov29_02352750: + .byte 0x6D, 0x6F, 0x76, 0x65, 0x3A, 0x00, 0x00, 0x00 + .global ov29_02352758 +ov29_02352758: + .byte 0x81, 0x45, 0x81, 0x45 + .byte 0x81, 0x45, 0x00, 0x00 + .global ov29_02352760 +ov29_02352760: + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .global BELLY_DRAIN_IN_WALLS_INT +BELLY_DRAIN_IN_WALLS_INT: + .byte 0x05, 0x00, 0x00, 0x00 + .global ov29_0235276C +ov29_0235276C: + .byte 0x00, 0x00, 0x00, 0x00 + .global ov29_02352770 +ov29_02352770: + .byte 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80 + .global ov29_02352778 +ov29_02352778: + .byte 0x01, 0x02, 0x04, 0x08 + .byte 0x10, 0x20, 0x40, 0x80 + .global ov29_02352780 +ov29_02352780: + .byte 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80 + .global ov29_02352788 +ov29_02352788: + .byte 0x01, 0x02, 0x04, 0x08 + .byte 0x10, 0x20, 0x40, 0x80 + .global ov29_02352790 +ov29_02352790: + .byte 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80 + .global ov29_02352798 +ov29_02352798: + .byte 0x01, 0x02, 0x04, 0x08 + .byte 0x10, 0x20, 0x40, 0x80 diff --git a/include/dungeon.h b/include/dungeon.h index e02fc462..b29f6cec 100644 --- a/include/dungeon.h +++ b/include/dungeon.h @@ -10,6 +10,14 @@ #define DUNGEON_MAX_SIZE_X 56 #define DUNGEON_MAX_SIZE_Y 32 +enum TerrainType +{ + // These 3 seem to indicate the 'main' type of the terrain. See helper functions for how they're set. + TERRAIN_TYPE_WALL = 0, // x0 When neither TERRAIN_TYPE_NORMAL nor TERRAIN_TYPE_SECONDARY are set + TERRAIN_TYPE_NORMAL = 1 << 0, // x1 + TERRAIN_TYPE_SECONDARY = 1 << 1, // Water or lava depending on the dungeon. x2 +}; + // Dungeon state struct dungeon { u8 field_0x0; // 0x0: Initialized to 0x0. diff --git a/include/dungeon_ai_attack_1.h b/include/dungeon_ai_attack_1.h new file mode 100644 index 00000000..e53a29ef --- /dev/null +++ b/include/dungeon_ai_attack_1.h @@ -0,0 +1,15 @@ +#ifndef PMDSKY_DUNGEON_AI_ATTACK_1_H +#define PMDSKY_DUNGEON_AI_ATTACK_1_H + +#include "dungeon_mode.h" + +// Returns true if the target is within range of the user's move, false otherwise. +// If the user does not have Course Checker, it simply checks if the distance between user and target is less or equal than the move range. +// Otherwise, it will iterate through all tiles in the direction specified, checking for walls or other monsters in the way, and return false if they are found. +// user: user pointer +// target: target pointer +// direction: direction ID +// n_tiles: move range (in number of tiles) +bool8 IsTargetInRange(struct entity *user, struct entity *target, enum direction_id direction, s32 n_tiles); + +#endif //PMDSKY_DUNGEON_AI_ATTACK_1_H diff --git a/include/dungeon_mode.h b/include/dungeon_mode.h index e6c31ba4..b14f18f6 100644 --- a/include/dungeon_mode.h +++ b/include/dungeon_mode.h @@ -1041,33 +1041,33 @@ struct room_data { // Tile data struct tile { // 0x0: terrain_flags: 2-byte bitfield - //u16 terrain_flags; - enum terrain_type terrain_type : 2; + u16 terrain_flags; + // enum terrain_type terrain_type : 2; // This tile can be corner-cut when walking. Seemingly only used during dungeon generation. - bool8 f_corner_cuttable : 1; + // bool f_corner_cuttable : 1; // Includes room tiles right next to a hallway, and branching points within corridors. // Only applies to natural halls, not ones made by Absolute Mover, not "hallways" made of // secondary terrain, etc. Used by the AI for navigation. - bool8 f_natural_junction : 1; + // bool f_natural_junction : 1; // This tile is impassable, even with Absolute Mover/Mobile Scarf. Used for the map border, // key chamber walls, walls in boss battle rooms, etc. - bool8 f_impassable_wall : 1; - bool8 f_in_kecleon_shop : 1; // In a Kecleon Shop - bool8 f_in_monster_house : 1; // In a Monster House - bool8 terrain_flags_unk7 : 1; + // bool f_impassable_wall : 1; + // bool f_in_kecleon_shop : 1; // In a Kecleon Shop + // bool f_in_monster_house : 1; // In a Monster House + // bool terrain_flags_unk7 : 1; // Cannot be broken by Absolute Mover. Set naturally on key doors. - bool8 f_unbreakable : 1; + // bool f_unbreakable : 1; // Tile is any type of "stairs" (normal stairs, Hidden Stairs, Warp Zone) - bool8 f_stairs : 1; - bool8 terrain_flags_unk10 : 1; - bool8 f_key_door : 1; // Tile is a key door - bool8 f_key_door_key_locked : 1; // Key door is locked and requires a Key to open + // bool f_stairs : 1; + // bool terrain_flags_unk10 : 1; + // bool f_key_door : 1; // Tile is a key door + // bool f_key_door_key_locked : 1; // Key door is locked and requires a Key to open // Key door is locked and requires an escort to open (for Sealed Chamber missions) - bool8 f_key_door_escort_locked : 1; - bool8 terrain_flags_unk14 : 1; + // bool f_key_door_escort_locked : 1; + // bool terrain_flags_unk14 : 1; // Tile is open terrain but unreachable from the stairs spawn point. Only set during dungeon // generation. - bool8 f_unreachable_from_stairs : 1; + // bool f_unreachable_from_stairs : 1; // 0x2: Seems to be used for spawning entities during dungeon generation, and for visibility // during dungeon play diff --git a/include/dungeon_util.h b/include/dungeon_util.h index e295b6d7..9d73cb2f 100644 --- a/include/dungeon_util.h +++ b/include/dungeon_util.h @@ -3,6 +3,15 @@ #include "dungeon_mode.h" +// An array mapping each direction index to its x and y displacements. +// Directions start with 0=down and proceed counterclockwise (see enum direction_id). Displacements for x and y are interleaved and encoded as 2-byte signed integers. +// For example, the first two integers are [0, 1], which correspond to the x and y displacements for the "down" direction (positive y means down). +extern const struct position DIRECTIONS_XY[NUM_DIRECTIONS]; + +// Checks a monster's monster_behavior to see whether or not the monster should use AI. Only called on monsters with +// a monster_behavior greater than or equal to BEHAVIOR_FIXED_ENEMY. Returns false for BEHAVIOR_FIXED_ENEMY, +// BEHAVIOR_WANDERING_ENEMY_0x8, BEHAVIOR_SECRET_BAZAAR_KIRLIA, BEHAVIOR_SECRET_BAZAAR_MIME_JR, +// BEHAVIOR_SECRET_BAZAAR_SWALOT, BEHAVIOR_SECRET_BAZAAR_LICKILICKY, and BEHAVIOR_SECRET_BAZAAR_SHEDINJA. bool8 ShouldRunMonsterAi(struct entity *monster); #endif //PMDSKY_DUNGEON_UTIL_H diff --git a/main.lsf b/main.lsf index 3dc807cd..60ce1a56 100644 --- a/main.lsf +++ b/main.lsf @@ -262,6 +262,7 @@ Overlay OVY_29 Object src/overlay_29_022EF7A0.o Object asm/overlay_29_022EF7C4.o Object src/dungeon_util.o + Object asm/overlay_29_rodata_0235173C.o Object asm/overlay_29_022EFA6C.o Object src/overlay_29_022F0590.o Object asm/overlay_29_022F05B4.o @@ -355,6 +356,8 @@ Overlay OVY_29 Object asm/overlay_29_02318E70.o Object src/overlay_29_02319F8C.o Object asm/overlay_29_02319FB0.o + Object src/dungeon_ai_attack_1.o + Object asm/overlay_29_0231A7A0.o Object src/overlay_29_0231A9D4.o Object asm/overlay_29_0231A9F8.o Object src/overlay_29_0231B194.o diff --git a/src/dungeon_ai_attack_1.c b/src/dungeon_ai_attack_1.c new file mode 100644 index 00000000..12179657 --- /dev/null +++ b/src/dungeon_ai_attack_1.c @@ -0,0 +1,52 @@ +#include "dungeon_ai_attack_1.h" +#include "dungeon.h" +#include "dungeon_map_access.h" +#include "dungeon_util.h" +#include "main_0208655C.h" + +static inline s32 Max(s32 x, s32 y) +{ + return x > y ? x : y; +} + +extern bool8 IqSkillIsEnabled(struct entity *entity, u8 iq_skill); + +bool8 IsTargetInRange(struct entity *user, struct entity *target, enum direction_id direction, s32 n_tiles) +{ + s32 effective_max_range = Max(abs(user->pos.x - target->pos.x), abs(user->pos.y - target->pos.y)); + + if (effective_max_range > n_tiles) + effective_max_range = n_tiles; + + if (!IqSkillIsEnabled(user, IQ_COURSE_CHECKER)) + // BUG: effective_max_range is already capped at max_range, so this condition always evaluates to TRUE. + // The AI also has range checks elsewhere, so this doesn't become an issue in most cases. + // If the AI has the Long Toss or Pierce statuses and Course Checker is disabled, + // this incorrect check causes the AI to throw items at targets further than 10 tiles away. + return effective_max_range <= n_tiles; + + s32 i; + s32 current_pos_x = user->pos.x; + s32 current_pos_y = user->pos.y; + s32 adjacent_tile_offset_x = DIRECTIONS_XY[direction].x; + s32 adjacent_tile_offset_y = DIRECTIONS_XY[direction].y; + for (i = 0; i <= effective_max_range; i++) + { + current_pos_x += adjacent_tile_offset_x; + current_pos_y += adjacent_tile_offset_y; + if (current_pos_x < 1 || current_pos_y < 1 || + current_pos_x >= DUNGEON_MAX_SIZE_X - 1 || current_pos_y >= DUNGEON_MAX_SIZE_Y - 1) + break; + + const struct tile *map_tile = GetTile(current_pos_x, current_pos_y); + if (!(map_tile->terrain_flags & (TERRAIN_TYPE_NORMAL | TERRAIN_TYPE_SECONDARY))) + return FALSE; + + if (map_tile->monster == target) + return TRUE; + + if (map_tile->monster != NULL) + return FALSE; + } + return FALSE; +} diff --git a/src/dungeon_util.c b/src/dungeon_util.c index 66255c68..90c8ff06 100644 --- a/src/dungeon_util.c +++ b/src/dungeon_util.c @@ -1,6 +1,17 @@ #include "dungeon_util.h" #include "dungeon_util_static.h" +const struct position DIRECTIONS_XY[] = { + {0, 1}, + {1, 1}, + {1, 0}, + {1, -1}, + {0, -1}, + {-1, -1}, + {-1, 0}, + {-1, 1} +}; + bool8 ShouldRunMonsterAi(struct entity *monster) { struct monster *pokemon_info = GetEntInfo(monster);