through CheckStandardWildEncounter
This commit is contained in:
+13
-909
@@ -5,902 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start GetInteractedBackgroundEventScript
|
||||
GetInteractedBackgroundEventScript: @ 806D0E4
|
||||
push {r4-r7,lr}
|
||||
lsls r1, 24
|
||||
lsrs r7, r1, 24
|
||||
lsls r2, 24
|
||||
lsrs r6, r2, 24
|
||||
ldr r4, _0806D118 @ =gMapHeader
|
||||
ldrh r1, [r0]
|
||||
subs r1, 0x7
|
||||
lsls r1, 16
|
||||
lsrs r1, 16
|
||||
ldrh r2, [r0, 0x2]
|
||||
subs r2, 0x7
|
||||
lsls r2, 16
|
||||
lsrs r2, 16
|
||||
ldrb r3, [r0, 0x4]
|
||||
adds r0, r4, 0
|
||||
bl FindInvisibleObjectEventByPosition
|
||||
adds r5, r0, 0
|
||||
cmp r5, 0
|
||||
beq _0806D164
|
||||
ldr r0, [r5, 0x8]
|
||||
cmp r0, 0
|
||||
bne _0806D120
|
||||
ldr r0, _0806D11C @ =Test_EventScript_Sign
|
||||
b _0806D1E6
|
||||
.align 2, 0
|
||||
_0806D118: .4byte gMapHeader
|
||||
_0806D11C: .4byte Test_EventScript_Sign
|
||||
_0806D120:
|
||||
adds r0, r7, 0
|
||||
adds r1, r6, 0
|
||||
bl sub_806D898
|
||||
lsls r0, 24
|
||||
lsrs r2, r0, 24
|
||||
ldrb r0, [r5, 0x5]
|
||||
cmp r0, 0x7
|
||||
bhi _0806D1D8
|
||||
lsls r0, 2
|
||||
ldr r1, _0806D13C @ =_0806D140
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_0806D13C: .4byte _0806D140
|
||||
.align 2, 0
|
||||
_0806D140:
|
||||
.4byte _0806D1D8
|
||||
.4byte _0806D160
|
||||
.4byte _0806D168
|
||||
.4byte _0806D16E
|
||||
.4byte _0806D174
|
||||
.4byte _0806D17A
|
||||
.4byte _0806D17A
|
||||
.4byte _0806D17A
|
||||
_0806D160:
|
||||
cmp r6, 0x2
|
||||
beq _0806D1D8
|
||||
_0806D164:
|
||||
movs r0, 0
|
||||
b _0806D1E6
|
||||
_0806D168:
|
||||
cmp r6, 0x1
|
||||
beq _0806D1D8
|
||||
b _0806D164
|
||||
_0806D16E:
|
||||
cmp r6, 0x4
|
||||
beq _0806D1D8
|
||||
b _0806D164
|
||||
_0806D174:
|
||||
cmp r6, 0x3
|
||||
beq _0806D1D8
|
||||
b _0806D164
|
||||
_0806D17A:
|
||||
ldr r0, [r5, 0x8]
|
||||
movs r1, 0x3
|
||||
bl GetHiddenItemAttr
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
cmp r0, 0x1
|
||||
beq _0806D164
|
||||
ldr r0, [r5, 0x8]
|
||||
movs r1, 0
|
||||
bl GetHiddenItemAttr
|
||||
ldr r1, _0806D1C4 @ =gSpecialVar_0x8005
|
||||
strh r0, [r1]
|
||||
ldr r0, [r5, 0x8]
|
||||
movs r1, 0x1
|
||||
bl GetHiddenItemAttr
|
||||
ldr r4, _0806D1C8 @ =gSpecialVar_0x8004
|
||||
strh r0, [r4]
|
||||
ldr r0, [r5, 0x8]
|
||||
movs r1, 0x2
|
||||
bl GetHiddenItemAttr
|
||||
ldr r1, _0806D1CC @ =gSpecialVar_0x8006
|
||||
strh r0, [r1]
|
||||
ldrh r0, [r4]
|
||||
bl FlagGet
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
beq _0806D164
|
||||
ldr r0, _0806D1D0 @ =gSpecialVar_Facing
|
||||
strh r6, [r0]
|
||||
ldr r0, _0806D1D4 @ =EventScript_FoundHiddenItem
|
||||
b _0806D1E6
|
||||
.align 2, 0
|
||||
_0806D1C4: .4byte gSpecialVar_0x8005
|
||||
_0806D1C8: .4byte gSpecialVar_0x8004
|
||||
_0806D1CC: .4byte gSpecialVar_0x8006
|
||||
_0806D1D0: .4byte gSpecialVar_Facing
|
||||
_0806D1D4: .4byte EventScript_FoundHiddenItem
|
||||
_0806D1D8:
|
||||
cmp r2, 0xFF
|
||||
beq _0806D1E0
|
||||
bl sub_8069A20
|
||||
_0806D1E0:
|
||||
ldr r0, _0806D1EC @ =gSpecialVar_Facing
|
||||
strh r6, [r0]
|
||||
ldr r0, [r5, 0x8]
|
||||
_0806D1E6:
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_0806D1EC: .4byte gSpecialVar_Facing
|
||||
thumb_func_end GetInteractedBackgroundEventScript
|
||||
|
||||
thumb_func_start GetInteractedMetatileScript
|
||||
GetInteractedMetatileScript: @ 806D1F0
|
||||
push {r4,r5,lr}
|
||||
lsls r1, 24
|
||||
lsrs r4, r1, 24
|
||||
lsls r2, 24
|
||||
lsrs r5, r2, 24
|
||||
ldr r0, _0806D210 @ =gSpecialVar_Facing
|
||||
strh r5, [r0]
|
||||
adds r0, r4, 0
|
||||
bl MetatileBehavior_IsPC
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0806D218
|
||||
ldr r0, _0806D214 @ =EventScript_PC
|
||||
b _0806D53E
|
||||
.align 2, 0
|
||||
_0806D210: .4byte gSpecialVar_Facing
|
||||
_0806D214: .4byte EventScript_PC
|
||||
_0806D218:
|
||||
adds r0, r4, 0
|
||||
bl MetatileBehavior_IsRegionMap
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0806D230
|
||||
ldr r0, _0806D22C @ =EventScript_WallTownMap
|
||||
b _0806D53E
|
||||
.align 2, 0
|
||||
_0806D22C: .4byte EventScript_WallTownMap
|
||||
_0806D230:
|
||||
adds r0, r4, 0
|
||||
bl MetatileBehavior_IsBookshelf
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0806D248
|
||||
ldr r0, _0806D244 @ =gUnknown_81A7606
|
||||
b _0806D53E
|
||||
.align 2, 0
|
||||
_0806D244: .4byte gUnknown_81A7606
|
||||
_0806D248:
|
||||
adds r0, r4, 0
|
||||
bl MetatileBehavior_IsPokeMartShelf
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0806D260
|
||||
ldr r0, _0806D25C @ =gUnknown_81A760F
|
||||
b _0806D53E
|
||||
.align 2, 0
|
||||
_0806D25C: .4byte gUnknown_81A760F
|
||||
_0806D260:
|
||||
adds r0, r4, 0
|
||||
bl MetatileBehavior_IsFood
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0806D278
|
||||
ldr r0, _0806D274 @ =gUnknown_81A7618
|
||||
b _0806D53E
|
||||
.align 2, 0
|
||||
_0806D274: .4byte gUnknown_81A7618
|
||||
_0806D278:
|
||||
adds r0, r4, 0
|
||||
bl MetatileBehavior_IsImpressiveMachine
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0806D290
|
||||
ldr r0, _0806D28C @ =gUnknown_81A7633
|
||||
b _0806D53E
|
||||
.align 2, 0
|
||||
_0806D28C: .4byte gUnknown_81A7633
|
||||
_0806D290:
|
||||
adds r0, r4, 0
|
||||
bl MetatileBehavior_IsBlueprints
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0806D2A8
|
||||
ldr r0, _0806D2A4 @ =gUnknown_81A763C
|
||||
b _0806D53E
|
||||
.align 2, 0
|
||||
_0806D2A4: .4byte gUnknown_81A763C
|
||||
_0806D2A8:
|
||||
adds r0, r4, 0
|
||||
bl MetatileBehavior_IsVideoGame
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0806D2C0
|
||||
ldr r0, _0806D2BC @ =gUnknown_81A7621
|
||||
b _0806D53E
|
||||
.align 2, 0
|
||||
_0806D2BC: .4byte gUnknown_81A7621
|
||||
_0806D2C0:
|
||||
adds r0, r4, 0
|
||||
bl MetatileBehavior_IsBurglary
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0806D2D8
|
||||
ldr r0, _0806D2D4 @ =gUnknown_81A7645
|
||||
b _0806D53E
|
||||
.align 2, 0
|
||||
_0806D2D4: .4byte gUnknown_81A7645
|
||||
_0806D2D8:
|
||||
adds r0, r4, 0
|
||||
bl MetatileBehavior_IsComputer
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0806D2F0
|
||||
ldr r0, _0806D2EC @ =gUnknown_81A762A
|
||||
b _0806D53E
|
||||
.align 2, 0
|
||||
_0806D2EC: .4byte gUnknown_81A762A
|
||||
_0806D2F0:
|
||||
adds r0, r4, 0
|
||||
bl MetatileBehavior_IsMBA3
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0806D308
|
||||
ldr r0, _0806D304 @ =TrainerTower_EventScript_ShowTime
|
||||
b _0806D53E
|
||||
.align 2, 0
|
||||
_0806D304: .4byte TrainerTower_EventScript_ShowTime
|
||||
_0806D308:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl MetatileBehavior_IsPlayerFacingTVScreen
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0806D320
|
||||
ldr r0, _0806D31C @ =gUnknown_81A764E
|
||||
b _0806D53E
|
||||
.align 2, 0
|
||||
_0806D31C: .4byte gUnknown_81A764E
|
||||
_0806D320:
|
||||
adds r0, r4, 0
|
||||
bl MetatileBehavior_IsCabinet
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0806D338
|
||||
ldr r0, _0806D334 @ =gUnknown_81A7657
|
||||
b _0806D53E
|
||||
.align 2, 0
|
||||
_0806D334: .4byte gUnknown_81A7657
|
||||
_0806D338:
|
||||
adds r0, r4, 0
|
||||
bl MetatileBehavior_IsKitchen
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0806D350
|
||||
ldr r0, _0806D34C @ =gUnknown_81A7660
|
||||
b _0806D53E
|
||||
.align 2, 0
|
||||
_0806D34C: .4byte gUnknown_81A7660
|
||||
_0806D350:
|
||||
adds r0, r4, 0
|
||||
bl MetatileBehavior_IsDresser
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0806D368
|
||||
ldr r0, _0806D364 @ =gUnknown_81A7669
|
||||
b _0806D53E
|
||||
.align 2, 0
|
||||
_0806D364: .4byte gUnknown_81A7669
|
||||
_0806D368:
|
||||
adds r0, r4, 0
|
||||
bl MetatileBehavior_IsSnacks
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0806D380
|
||||
ldr r0, _0806D37C @ =gUnknown_81A7672
|
||||
b _0806D53E
|
||||
.align 2, 0
|
||||
_0806D37C: .4byte gUnknown_81A7672
|
||||
_0806D380:
|
||||
adds r0, r4, 0
|
||||
bl MetatileBehavior_IsPainting
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0806D398
|
||||
ldr r0, _0806D394 @ =gUnknown_81A767B
|
||||
b _0806D53E
|
||||
.align 2, 0
|
||||
_0806D394: .4byte gUnknown_81A767B
|
||||
_0806D398:
|
||||
adds r0, r4, 0
|
||||
bl MetatileBehavior_IsPowerPlantMachine
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0806D3B0
|
||||
ldr r0, _0806D3AC @ =gUnknown_81A7684
|
||||
b _0806D53E
|
||||
.align 2, 0
|
||||
_0806D3AC: .4byte gUnknown_81A7684
|
||||
_0806D3B0:
|
||||
adds r0, r4, 0
|
||||
bl MetatileBehavior_IsTelephone
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0806D3C8
|
||||
ldr r0, _0806D3C4 @ =gUnknown_81A768D
|
||||
b _0806D53E
|
||||
.align 2, 0
|
||||
_0806D3C4: .4byte gUnknown_81A768D
|
||||
_0806D3C8:
|
||||
adds r0, r4, 0
|
||||
bl MetatileBehavior_IsAdvertisingPoster
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0806D3E0
|
||||
ldr r0, _0806D3DC @ =gUnknown_81A7696
|
||||
b _0806D53E
|
||||
.align 2, 0
|
||||
_0806D3DC: .4byte gUnknown_81A7696
|
||||
_0806D3E0:
|
||||
adds r0, r4, 0
|
||||
bl MetatileBehavior_IsTastyFood
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0806D3F8
|
||||
ldr r0, _0806D3F4 @ =gUnknown_81A769F
|
||||
b _0806D53E
|
||||
.align 2, 0
|
||||
_0806D3F4: .4byte gUnknown_81A769F
|
||||
_0806D3F8:
|
||||
adds r0, r4, 0
|
||||
bl MetatileBehavior_IsTrashBin
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0806D410
|
||||
ldr r0, _0806D40C @ =gUnknown_81A76A8
|
||||
b _0806D53E
|
||||
.align 2, 0
|
||||
_0806D40C: .4byte gUnknown_81A76A8
|
||||
_0806D410:
|
||||
adds r0, r4, 0
|
||||
bl MetatileBehavior_IsCup
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0806D428
|
||||
ldr r0, _0806D424 @ =gUnknown_81A76B1
|
||||
b _0806D53E
|
||||
.align 2, 0
|
||||
_0806D424: .4byte gUnknown_81A76B1
|
||||
_0806D428:
|
||||
adds r0, r4, 0
|
||||
bl MetatileBehavior_ReturnFalse_19
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0806D440
|
||||
ldr r0, _0806D43C @ =gUnknown_81A76BA
|
||||
b _0806D53E
|
||||
.align 2, 0
|
||||
_0806D43C: .4byte gUnknown_81A76BA
|
||||
_0806D440:
|
||||
adds r0, r4, 0
|
||||
bl MetatileBehavior_ReturnFalse_20
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0806D458
|
||||
ldr r0, _0806D454 @ =gUnknown_81A76C3
|
||||
b _0806D53E
|
||||
.align 2, 0
|
||||
_0806D454: .4byte gUnknown_81A76C3
|
||||
_0806D458:
|
||||
adds r0, r4, 0
|
||||
bl MetatileBehavior_IsBlinkingLights
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0806D470
|
||||
ldr r0, _0806D46C @ =gUnknown_81A76CC
|
||||
b _0806D53E
|
||||
.align 2, 0
|
||||
_0806D46C: .4byte gUnknown_81A76CC
|
||||
_0806D470:
|
||||
adds r0, r4, 0
|
||||
bl MetatileBehavior_IsMB9F
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0806D488
|
||||
ldr r0, _0806D484 @ =gUnknown_81A76D5
|
||||
b _0806D53E
|
||||
.align 2, 0
|
||||
_0806D484: .4byte gUnknown_81A76D5
|
||||
_0806D488:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl MetatileBehavior_IsPlayerFacingMB_8D
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0806D4A0
|
||||
ldr r0, _0806D49C @ =CableClub_EventScript_81BBFD8
|
||||
b _0806D53E
|
||||
.align 2, 0
|
||||
_0806D49C: .4byte CableClub_EventScript_81BBFD8
|
||||
_0806D4A0:
|
||||
adds r0, r4, 0
|
||||
bl MetatileBehavior_IsQuestionnaire
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0806D4B8
|
||||
ldr r0, _0806D4B4 @ =EventScript_Questionnaire
|
||||
b _0806D53E
|
||||
.align 2, 0
|
||||
_0806D4B4: .4byte EventScript_Questionnaire
|
||||
_0806D4B8:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl MetatileBehavior_IsPlayerFacingBattleRecords
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0806D4D0
|
||||
ldr r0, _0806D4CC @ =CableClub_EventScript_ShowBattleRecords
|
||||
b _0806D53E
|
||||
.align 2, 0
|
||||
_0806D4CC: .4byte CableClub_EventScript_ShowBattleRecords
|
||||
_0806D4D0:
|
||||
adds r0, r4, 0
|
||||
bl MetatileBehavior_IsIndigoPlateauMark
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0806D4EC
|
||||
bl sub_8069A20
|
||||
ldr r0, _0806D4E8 @ =gUnknown_81A76F0
|
||||
b _0806D53E
|
||||
.align 2, 0
|
||||
_0806D4E8: .4byte gUnknown_81A76F0
|
||||
_0806D4EC:
|
||||
adds r0, r4, 0
|
||||
bl MetatileBehavior_IsIndigoPlateauMark2
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0806D508
|
||||
bl sub_8069A20
|
||||
ldr r0, _0806D504 @ =gUnknown_81A76F9
|
||||
b _0806D53E
|
||||
.align 2, 0
|
||||
_0806D504: .4byte gUnknown_81A76F9
|
||||
_0806D508:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl MetatileBehavior_IsPlayerFacingPokeMartSign
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0806D524
|
||||
bl sub_8069A20
|
||||
ldr r0, _0806D520 @ =gUnknown_81A76DE
|
||||
b _0806D53E
|
||||
.align 2, 0
|
||||
_0806D520: .4byte gUnknown_81A76DE
|
||||
_0806D524:
|
||||
adds r0, r4, 0
|
||||
adds r1, r5, 0
|
||||
bl MetatileBehavior_IsPlayerFacingPokemonCenterSign
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
beq _0806D538
|
||||
movs r0, 0
|
||||
b _0806D53E
|
||||
_0806D538:
|
||||
bl sub_8069A20
|
||||
ldr r0, _0806D544 @ =gUnknown_81A76E7
|
||||
_0806D53E:
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_0806D544: .4byte gUnknown_81A76E7
|
||||
thumb_func_end GetInteractedMetatileScript
|
||||
|
||||
thumb_func_start GetInteractedWaterScript
|
||||
GetInteractedWaterScript: @ 806D548
|
||||
push {r4,lr}
|
||||
lsls r1, 24
|
||||
lsrs r4, r1, 24
|
||||
adds r0, r4, 0
|
||||
bl MetatileBehavior_IsSemiDeepWater
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0806D570
|
||||
bl PartyHasMonWithSurf
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0806D570
|
||||
ldr r0, _0806D56C @ =EventScript_CurrentTooFast
|
||||
b _0806D5E2
|
||||
.align 2, 0
|
||||
_0806D56C: .4byte EventScript_CurrentTooFast
|
||||
_0806D570:
|
||||
ldr r0, _0806D59C @ =0x00000824
|
||||
bl FlagGet
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0806D5A4
|
||||
bl PartyHasMonWithSurf
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0806D5A4
|
||||
bl IsPlayerFacingSurfableFishableWater
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0806D5A4
|
||||
ldr r0, _0806D5A0 @ =EventScript_UseSurf
|
||||
b _0806D5E2
|
||||
.align 2, 0
|
||||
_0806D59C: .4byte 0x00000824
|
||||
_0806D5A0: .4byte EventScript_UseSurf
|
||||
_0806D5A4:
|
||||
adds r0, r4, 0
|
||||
bl MetatileBehavior_IsWaterfall
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0806D5E0
|
||||
ldr r0, _0806D5D0 @ =0x00000826
|
||||
bl FlagGet
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0806D5D8
|
||||
bl IsPlayerSurfingNorth
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0806D5D8
|
||||
ldr r0, _0806D5D4 @ =EventScript_Waterfall
|
||||
b _0806D5E2
|
||||
.align 2, 0
|
||||
_0806D5D0: .4byte 0x00000826
|
||||
_0806D5D4: .4byte EventScript_Waterfall
|
||||
_0806D5D8:
|
||||
ldr r0, _0806D5DC @ =EventScript_CantUseWaterfall
|
||||
b _0806D5E2
|
||||
.align 2, 0
|
||||
_0806D5DC: .4byte EventScript_CantUseWaterfall
|
||||
_0806D5E0:
|
||||
movs r0, 0
|
||||
_0806D5E2:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end GetInteractedWaterScript
|
||||
|
||||
thumb_func_start TryStartStepBasedScript
|
||||
TryStartStepBasedScript: @ 806D5E8
|
||||
push {r4-r6,lr}
|
||||
adds r5, r0, 0
|
||||
lsls r1, 16
|
||||
lsrs r4, r1, 16
|
||||
adds r6, r4, 0
|
||||
bl sub_806D660
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
beq _0806D650
|
||||
adds r0, r5, 0
|
||||
adds r1, r4, 0
|
||||
bl sub_806DA10
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
beq _0806D650
|
||||
adds r0, r4, 0
|
||||
bl sub_806D694
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
beq _0806D650
|
||||
adds r0, r4, 0
|
||||
bl sub_806D698
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
beq _0806D650
|
||||
ldr r0, _0806D654 @ =gPlayerAvatar
|
||||
ldrb r1, [r0]
|
||||
movs r0, 0x40
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _0806D658
|
||||
lsls r0, r6, 24
|
||||
lsrs r0, 24
|
||||
bl MetatileBehavior_IsForcedMovementTile
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0806D658
|
||||
bl UpdateRepelCounter
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0806D658
|
||||
_0806D650:
|
||||
movs r0, 0x1
|
||||
b _0806D65A
|
||||
.align 2, 0
|
||||
_0806D654: .4byte gPlayerAvatar
|
||||
_0806D658:
|
||||
movs r0, 0
|
||||
_0806D65A:
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end TryStartStepBasedScript
|
||||
|
||||
thumb_func_start sub_806D660
|
||||
sub_806D660: @ 806D660
|
||||
push {r4,lr}
|
||||
ldr r4, _0806D688 @ =gMapHeader
|
||||
ldrh r1, [r0]
|
||||
subs r1, 0x7
|
||||
lsls r1, 16
|
||||
lsrs r1, 16
|
||||
ldrh r2, [r0, 0x2]
|
||||
subs r2, 0x7
|
||||
lsls r2, 16
|
||||
lsrs r2, 16
|
||||
ldrb r3, [r0, 0x4]
|
||||
adds r0, r4, 0
|
||||
bl mapheader_trigger_activate_at
|
||||
cmp r0, 0
|
||||
beq _0806D68C
|
||||
bl ScriptContext1_SetupScript
|
||||
movs r0, 0x1
|
||||
b _0806D68E
|
||||
.align 2, 0
|
||||
_0806D688: .4byte gMapHeader
|
||||
_0806D68C:
|
||||
movs r0, 0
|
||||
_0806D68E:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_806D660
|
||||
|
||||
thumb_func_start sub_806D694
|
||||
sub_806D694: @ 806D694
|
||||
movs r0, 0
|
||||
bx lr
|
||||
thumb_func_end sub_806D694
|
||||
|
||||
thumb_func_start sub_806D698
|
||||
sub_806D698: @ 806D698
|
||||
push {r4,lr}
|
||||
lsls r0, 16
|
||||
lsrs r4, r0, 16
|
||||
bl InUnionRoom
|
||||
cmp r0, 0x1
|
||||
beq _0806D72C
|
||||
ldr r0, _0806D6E0 @ =gQuestLogState
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x2
|
||||
beq _0806D72C
|
||||
bl AdjustFriendship_step
|
||||
ldr r0, _0806D6E4 @ =gPlayerAvatar
|
||||
ldrb r1, [r0]
|
||||
movs r0, 0x40
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _0806D720
|
||||
lsls r0, r4, 24
|
||||
lsrs r0, 24
|
||||
bl MetatileBehavior_IsForcedMovementTile
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0806D720
|
||||
bl sub_810C4EC
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0806D6EC
|
||||
ldr r0, _0806D6E8 @ =gUnknown_81A8CED
|
||||
bl ScriptContext1_SetupScript
|
||||
b _0806D730
|
||||
.align 2, 0
|
||||
_0806D6E0: .4byte gQuestLogState
|
||||
_0806D6E4: .4byte gPlayerAvatar
|
||||
_0806D6E8: .4byte gUnknown_81A8CED
|
||||
_0806D6EC:
|
||||
bl DoPoisonFieldEffect_step
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _0806D704
|
||||
ldr r0, _0806D700 @ =EventScript_FieldPoison
|
||||
bl ScriptContext1_SetupScript
|
||||
b _0806D730
|
||||
.align 2, 0
|
||||
_0806D700: .4byte EventScript_FieldPoison
|
||||
_0806D704:
|
||||
bl ShouldEggHatch
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0806D720
|
||||
movs r0, 0xD
|
||||
bl IncrementGameStat
|
||||
ldr r0, _0806D71C @ =EventScript_EggHatch
|
||||
bl ScriptContext1_SetupScript
|
||||
b _0806D730
|
||||
.align 2, 0
|
||||
_0806D71C: .4byte EventScript_EggHatch
|
||||
_0806D720:
|
||||
bl SafariZoneTakeStep
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
beq _0806D730
|
||||
_0806D72C:
|
||||
movs r0, 0
|
||||
b _0806D732
|
||||
_0806D730:
|
||||
movs r0, 0x1
|
||||
_0806D732:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_806D698
|
||||
|
||||
thumb_func_start sub_806D738
|
||||
sub_806D738: @ 806D738
|
||||
push {lr}
|
||||
ldr r0, _0806D748 @ =0x00004021
|
||||
movs r1, 0
|
||||
bl VarSet
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0806D748: .4byte 0x00004021
|
||||
thumb_func_end sub_806D738
|
||||
|
||||
thumb_func_start AdjustFriendship_step
|
||||
AdjustFriendship_step: @ 806D74C
|
||||
push {r4,r5,lr}
|
||||
ldr r0, _0806D780 @ =0x00004021
|
||||
bl GetVarPointer
|
||||
ldrh r1, [r0]
|
||||
adds r1, 0x1
|
||||
strh r1, [r0]
|
||||
ldrh r1, [r0]
|
||||
movs r2, 0x7F
|
||||
ands r1, r2
|
||||
strh r1, [r0]
|
||||
cmp r1, 0
|
||||
bne _0806D77A
|
||||
ldr r5, _0806D784 @ =gPlayerParty
|
||||
movs r4, 0x5
|
||||
_0806D76A:
|
||||
adds r0, r5, 0
|
||||
movs r1, 0x5
|
||||
bl AdjustFriendship
|
||||
adds r5, 0x64
|
||||
subs r4, 0x1
|
||||
cmp r4, 0
|
||||
bge _0806D76A
|
||||
_0806D77A:
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0806D780: .4byte 0x00004021
|
||||
_0806D784: .4byte gPlayerParty
|
||||
thumb_func_end AdjustFriendship_step
|
||||
|
||||
thumb_func_start ClearPoisonStepCounter
|
||||
ClearPoisonStepCounter: @ 806D788
|
||||
push {lr}
|
||||
ldr r0, _0806D798 @ =0x00004022
|
||||
movs r1, 0
|
||||
bl VarSet
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0806D798: .4byte 0x00004022
|
||||
thumb_func_end ClearPoisonStepCounter
|
||||
|
||||
thumb_func_start DoPoisonFieldEffect_step
|
||||
DoPoisonFieldEffect_step: @ 806D79C
|
||||
push {r4,lr}
|
||||
ldr r0, _0806D7D8 @ =gMapHeader
|
||||
ldrb r0, [r0, 0x17]
|
||||
cmp r0, 0x9
|
||||
beq _0806D7E0
|
||||
ldr r0, _0806D7DC @ =0x00004022
|
||||
bl GetVarPointer
|
||||
adds r4, r0, 0
|
||||
ldrh r0, [r4]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4]
|
||||
ldrh r0, [r4]
|
||||
movs r1, 0x5
|
||||
bl __umodsi3
|
||||
strh r0, [r4]
|
||||
lsls r0, 16
|
||||
cmp r0, 0
|
||||
bne _0806D7E0
|
||||
bl DoPoisonFieldEffect
|
||||
cmp r0, 0x1
|
||||
beq _0806D7E0
|
||||
cmp r0, 0x1
|
||||
ble _0806D7E0
|
||||
cmp r0, 0x2
|
||||
bne _0806D7E0
|
||||
movs r0, 0x1
|
||||
b _0806D7E2
|
||||
.align 2, 0
|
||||
_0806D7D8: .4byte gMapHeader
|
||||
_0806D7DC: .4byte 0x00004022
|
||||
_0806D7E0:
|
||||
movs r0, 0
|
||||
_0806D7E2:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end DoPoisonFieldEffect_step
|
||||
|
||||
thumb_func_start RestartWildEncounterImmunitySteps
|
||||
RestartWildEncounterImmunitySteps: @ 806D7E8
|
||||
push {lr}
|
||||
bl ResetEncounterRateModifiers
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end RestartWildEncounterImmunitySteps
|
||||
|
||||
thumb_func_start CheckStandardWildEncounter
|
||||
CheckStandardWildEncounter: @ 806D7F4
|
||||
push {lr}
|
||||
bl TryStandardWildEncounter
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end CheckStandardWildEncounter
|
||||
|
||||
thumb_func_start sub_806D804
|
||||
sub_806D804: @ 806D804
|
||||
push {r4-r7,lr}
|
||||
@@ -1069,7 +173,7 @@ sub_806D928: @ 806D928
|
||||
lsrs r2, 16
|
||||
ldrb r3, [r0, 0x4]
|
||||
adds r0, r4, 0
|
||||
bl FindInvisibleObjectEventByPosition
|
||||
bl GetBackgroundEventAtPosition
|
||||
cmp r0, 0
|
||||
bne _0806D950
|
||||
movs r0, 0
|
||||
@@ -1080,13 +184,13 @@ _0806D950:
|
||||
ldr r0, [r0, 0x8]
|
||||
cmp r0, 0
|
||||
bne _0806D958
|
||||
ldr r0, _0806D960 @ =Test_EventScript_Sign
|
||||
ldr r0, _0806D960 @ =EventScript_TestSignpostMsg
|
||||
_0806D958:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_0806D960: .4byte Test_EventScript_Sign
|
||||
_0806D960: .4byte EventScript_TestSignpostMsg
|
||||
thumb_func_end sub_806D928
|
||||
|
||||
thumb_func_start TryArrowWarp
|
||||
@@ -1173,8 +277,8 @@ _0806DA02:
|
||||
bx r1
|
||||
thumb_func_end TryArrowWarp
|
||||
|
||||
thumb_func_start sub_806DA10
|
||||
sub_806DA10: @ 806DA10
|
||||
thumb_func_start TryStartWarpEventScript
|
||||
TryStartWarpEventScript: @ 806DA10
|
||||
push {r4-r7,lr}
|
||||
adds r6, r0, 0
|
||||
lsls r1, 16
|
||||
@@ -1278,7 +382,7 @@ _0806DAEE:
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_806DA10
|
||||
thumb_func_end TryStartWarpEventScript
|
||||
|
||||
thumb_func_start sub_806DAF4
|
||||
sub_806DAF4: @ 806DAF4
|
||||
@@ -1662,8 +766,8 @@ _0806DDB8:
|
||||
bx r1
|
||||
thumb_func_end trigger_activate
|
||||
|
||||
thumb_func_start mapheader_trigger_activate_at
|
||||
mapheader_trigger_activate_at: @ 806DDC0
|
||||
thumb_func_start GetCoordEventScriptAtPosition
|
||||
GetCoordEventScriptAtPosition: @ 806DDC0
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
@@ -1719,7 +823,7 @@ _0806DE18:
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end mapheader_trigger_activate_at
|
||||
thumb_func_end GetCoordEventScriptAtPosition
|
||||
|
||||
thumb_func_start sub_806DE28
|
||||
sub_806DE28: @ 806DE28
|
||||
@@ -1814,7 +918,7 @@ sub_806DEC4: @ 806DEC4
|
||||
lsrs r2, 16
|
||||
ldrb r3, [r0, 0x4]
|
||||
adds r0, r4, 0
|
||||
bl mapheader_trigger_activate_at
|
||||
bl GetCoordEventScriptAtPosition
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
@@ -1822,8 +926,8 @@ sub_806DEC4: @ 806DEC4
|
||||
_0806DEE8: .4byte gMapHeader
|
||||
thumb_func_end sub_806DEC4
|
||||
|
||||
thumb_func_start FindInvisibleObjectEventByPosition
|
||||
FindInvisibleObjectEventByPosition: @ 806DEEC
|
||||
thumb_func_start GetBackgroundEventAtPosition
|
||||
GetBackgroundEventAtPosition: @ 806DEEC
|
||||
push {r4-r7,lr}
|
||||
lsls r1, 16
|
||||
lsrs r7, r1, 16
|
||||
@@ -1868,7 +972,7 @@ _0806DF34:
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end FindInvisibleObjectEventByPosition
|
||||
thumb_func_end GetBackgroundEventAtPosition
|
||||
|
||||
thumb_func_start dive_warp
|
||||
dive_warp: @ 806DF3C
|
||||
|
||||
@@ -158,7 +158,7 @@ EventScript_NoRoomToPickUpItem:: @ 81A682D
|
||||
setvar VAR_RESULT, FALSE
|
||||
return
|
||||
|
||||
EventScript_FoundHiddenItem:: @ 81A6843
|
||||
EventScript_HiddenItemScript:: @ 81A6843
|
||||
lockall
|
||||
textcolor 3
|
||||
waitse
|
||||
|
||||
@@ -2,7 +2,7 @@ Test_EventScript_NPC:: @ 81C5552
|
||||
msgbox Test_Text_WelcomeToWorldOfPokemon, MSGBOX_NPC
|
||||
end
|
||||
|
||||
Test_EventScript_Sign:: @ 81C555B
|
||||
EventScript_TestSignpostMsg:: @ 81C555B
|
||||
msgbox Test_Text_ThisIsASignpost, MSGBOX_SIGN
|
||||
end
|
||||
|
||||
|
||||
@@ -7,4 +7,6 @@
|
||||
#define BG_EVENT_PLAYER_FACING_EAST 3
|
||||
#define BG_EVENT_PLAYER_FACING_WEST 4
|
||||
|
||||
#define BG_EVENT_HIDDEN_ITEM 7
|
||||
|
||||
#endif // GUARD_CONSTANTS_EVENT_BG_H
|
||||
|
||||
@@ -49,10 +49,10 @@
|
||||
// Counts up every step. Wraps around at 128.
|
||||
// When wraparound occurs, the friendship of
|
||||
// every party poke gets a slight boost.
|
||||
#define VAR_FRIENDSHIP_STEP_COUNT 0x4021
|
||||
#define VAR_HAPPINESS_STEP_COUNTER 0x4021
|
||||
|
||||
// Maybe unused?
|
||||
#define VAR_0x4022 0x4022
|
||||
#define VAR_POISON_STEP_COUNTER 0x4022
|
||||
|
||||
// Step counter. Caps at 1500. If you enter a map with
|
||||
// renewable hidden items and this counter is capped,
|
||||
@@ -81,8 +81,8 @@
|
||||
#define VAR_QUEST_LOG_MON_COUNTS 0x4027
|
||||
#define VAR_MENEWS_JISAN_STEP_COUNTER 0x4028
|
||||
#define VAR_0x4029 0x4029
|
||||
#define VAR_HAPPINESS_STEP_COUNTER 0x402A
|
||||
#define VAR_POISON_STEP_COUNTER 0x402B
|
||||
#define VAR_0x402A 0x402A
|
||||
#define VAR_0x402B 0x402B
|
||||
#define VAR_RESET_RTC_ENABLE 0x402C
|
||||
#define VAR_0x402D 0x402D
|
||||
#define VAR_0x402E 0x402E
|
||||
|
||||
@@ -29,5 +29,6 @@ bool8 sub_8071614(void);
|
||||
void EggHatch(void);
|
||||
u8 GetEggStepsToSubtract(void);
|
||||
u16 sub_80722E0(void);
|
||||
bool8 ShouldEggHatch(void);
|
||||
|
||||
#endif // GUARD_DAYCARE_H
|
||||
|
||||
+43
-1
@@ -1161,7 +1161,7 @@ extern const u8 EventScript_TryDoNormalTrainerBattle[];
|
||||
extern const u8 EventScript_TryDoDoubleRematchBattle[];
|
||||
extern const u8 EventScript_TryDoRematchBattle[];
|
||||
extern const u8 EventScript_DoTrainerBattleFromApproach[];
|
||||
extern const u8 Test_EventScript_Sign[];
|
||||
extern const u8 EventScript_TestSignpostMsg[];
|
||||
|
||||
// new_game
|
||||
extern const u8 EventScript_ResetAllMapFlags[];
|
||||
@@ -1215,5 +1215,47 @@ extern const u8 EventScript_FldEffFlash[];
|
||||
// field_control_avatar
|
||||
extern const u8 gUnknown_81A7ADB[];
|
||||
extern const u8 PalletTown_PlayersHouse_2F_EventScript_PC[];
|
||||
extern const u8 EventScript_HiddenItemScript[];
|
||||
extern const u8 EventScript_PC[];
|
||||
extern const u8 EventScript_WallTownMap[];
|
||||
extern const u8 gUnknown_81A7606[];
|
||||
extern const u8 gUnknown_81A760F[];
|
||||
extern const u8 gUnknown_81A7618[];
|
||||
extern const u8 gUnknown_81A7633[];
|
||||
extern const u8 gUnknown_81A763C[];
|
||||
extern const u8 gUnknown_81A7621[];
|
||||
extern const u8 gUnknown_81A7645[];
|
||||
extern const u8 gUnknown_81A762A[];
|
||||
extern const u8 TrainerTower_EventScript_ShowTime[];
|
||||
extern const u8 gUnknown_81A764E[];
|
||||
extern const u8 gUnknown_81A7657[];
|
||||
extern const u8 gUnknown_81A7660[];
|
||||
extern const u8 gUnknown_81A7669[];
|
||||
extern const u8 gUnknown_81A7672[];
|
||||
extern const u8 gUnknown_81A767B[];
|
||||
extern const u8 gUnknown_81A7684[];
|
||||
extern const u8 gUnknown_81A768D[];
|
||||
extern const u8 gUnknown_81A7696[];
|
||||
extern const u8 gUnknown_81A769F[];
|
||||
extern const u8 gUnknown_81A76A8[];
|
||||
extern const u8 gUnknown_81A76B1[];
|
||||
extern const u8 gUnknown_81A76BA[];
|
||||
extern const u8 gUnknown_81A76C3[];
|
||||
extern const u8 gUnknown_81A76CC[];
|
||||
extern const u8 gUnknown_81A76D5[];
|
||||
extern const u8 CableClub_EventScript_81BBFD8[];
|
||||
extern const u8 EventScript_Questionnaire[];
|
||||
extern const u8 CableClub_EventScript_ShowBattleRecords[];
|
||||
extern const u8 gUnknown_81A76F0[];
|
||||
extern const u8 gUnknown_81A76F9[];
|
||||
extern const u8 gUnknown_81A76DE[];
|
||||
extern const u8 gUnknown_81A76E7[];
|
||||
extern const u8 EventScript_CurrentTooFast[];
|
||||
extern const u8 EventScript_UseSurf[];
|
||||
extern const u8 EventScript_Waterfall[];
|
||||
extern const u8 EventScript_CantUseWaterfall[];
|
||||
extern const u8 gUnknown_81A8CED[];
|
||||
extern const u8 EventScript_FieldPoison[];
|
||||
extern const u8 EventScript_EggHatch[];
|
||||
|
||||
#endif //GUARD_EVENT_SCRIPTS_H
|
||||
|
||||
@@ -14,5 +14,6 @@ bool8 sub_810CF04(u8 a0);
|
||||
u8 sub_810CF54();
|
||||
void sub_810D0D0(void);
|
||||
void sub_810CB90(void);
|
||||
bool8 sub_810C4EC(void);
|
||||
|
||||
#endif //GUARD_VS_SEEKER_H
|
||||
|
||||
@@ -45,6 +45,6 @@ void DisableWildEncounters(bool8 state);
|
||||
u8 GetUnownLetterByPersonalityLoByte(u32 personality);
|
||||
bool8 SweetScentWildEncounter(void);
|
||||
void SeedWildEncounterRng(u16 randVal);
|
||||
void ResetEncounterRateModifiers(void);
|
||||
void ResetEncounterRateModifiers(void);bool8 TryStandardWildEncounter(u32 currMetatileBehavior);
|
||||
|
||||
#endif // GUARD_WILD_ENCOUNTER_H
|
||||
|
||||
+2
-2
@@ -974,7 +974,7 @@ const u8 *BattleSetup_GetScriptAddrAfterBattle(void)
|
||||
if (sTrainerBattleEndScript != NULL)
|
||||
return sTrainerBattleEndScript;
|
||||
else
|
||||
return Test_EventScript_Sign;
|
||||
return EventScript_TestSignpostMsg;
|
||||
}
|
||||
|
||||
const u8 *BattleSetup_GetTrainerPostBattleScript(void)
|
||||
@@ -982,7 +982,7 @@ const u8 *BattleSetup_GetTrainerPostBattleScript(void)
|
||||
if (sTrainerABattleScriptRetAddr != NULL)
|
||||
return sTrainerABattleScriptRetAddr;
|
||||
else
|
||||
return Test_EventScript_Sign;
|
||||
return EventScript_TestSignpostMsg;
|
||||
}
|
||||
|
||||
void ShowTrainerCantBattleSpeech(void)
|
||||
|
||||
+302
-3
@@ -1,12 +1,14 @@
|
||||
#include "global.h"
|
||||
#include "gflib.h"
|
||||
#include "bike.h"
|
||||
#include "daycare.h"
|
||||
#include "event_data.h"
|
||||
#include "event_object_movement.h"
|
||||
#include "event_scripts.h"
|
||||
#include "fieldmap.h"
|
||||
#include "field_control_avatar.h"
|
||||
#include "field_player_avatar.h"
|
||||
#include "field_poison.h"
|
||||
#include "field_specials.h"
|
||||
#include "item_menu.h"
|
||||
#include "link.h"
|
||||
@@ -15,11 +17,16 @@
|
||||
#include "overworld.h"
|
||||
#include "renewable_hidden_items.h"
|
||||
#include "quest_log.h"
|
||||
#include "safari_zone.h"
|
||||
#include "script.h"
|
||||
#include "start_menu.h"
|
||||
#include "trainer_see.h"
|
||||
#include "vs_seeker.h"
|
||||
#include "wild_encounter.h"
|
||||
#include "constants/songs.h"
|
||||
#include "constants/event_bg.h"
|
||||
#include "constants/event_objects.h"
|
||||
#include "constants/maps.h"
|
||||
|
||||
void sub_806CA4C(struct FieldInput *input, u16 *newKeys, u16 *heldKeys);
|
||||
bool8 sub_80699D4(void);
|
||||
@@ -27,15 +34,24 @@ void sub_806CDF8(u8 taskId);
|
||||
void GetPlayerPosition(struct MapPosition * position);
|
||||
void GetInFrontOfPlayerPosition(struct MapPosition * position);
|
||||
u16 GetPlayerCurMetatileBehavior(void);
|
||||
bool8 TryStartStepBasedScript(struct MapPosition * position, u16 metatileBehavior, u8 playerDirection);
|
||||
bool8 TryArrowWarp(struct MapPosition * position, u16 metatileBehavior, u8 playerDirection);
|
||||
bool8 TryDoorWarp(struct MapPosition * position, u16 metatileBehavior, u8 playerDirection);
|
||||
bool8 TryStartInteractionScript(struct MapPosition * position, u16 metatileBehavior, u8 playerDirection);
|
||||
const u8 *GetInteractionScript(struct MapPosition * position, u8 metatileBehavior, u8 playerDirection);
|
||||
const u8 *GetInteractedObjectEventScript(struct MapPosition * position, u8 metatileBehavior, u8 playerDirection);
|
||||
const u8 *GetInteractedBackgroundEventScript(struct MapPosition * position, u8 metatileBehavior, u8 playerDirection);
|
||||
const struct BgEvent *GetBackgroundEventAtPosition(struct MapHeader *, u16, u16, u8);
|
||||
const u8 *GetInteractedMetatileScript(struct MapPosition * position, u8 metatileBehavior, u8 playerDirection);
|
||||
const u8 *GetInteractedWaterScript(struct MapPosition * position, u8 metatileBehavior, u8 playerDirection);
|
||||
bool8 TryStartStepBasedScript(struct MapPosition * position, u16 metatileBehavior, u16 playerDirection);
|
||||
bool8 TryStartCoordEventScript(struct MapPosition * position);
|
||||
bool8 TryStartMiscWalkingScripts(u16 metatileBehavior);
|
||||
bool8 TryStartStepCountScript(u16 metatileBehavior);
|
||||
void UpdateHappinessStepCounter(void);
|
||||
bool8 UpdatePoisonStepCounter(void);
|
||||
u8 sub_806D898(u8 metatileBehvaior, u8 direction);
|
||||
const u8 *GetCoordEventScriptAtPosition(struct MapHeader * mapHeader, u16 x, u16 y, u8 z);
|
||||
bool8 TryStartWarpEventScript(struct MapPosition * position, u16 metatileBehavior);
|
||||
bool8 TryArrowWarp(struct MapPosition * position, u16 metatileBehavior, u8 playerDirection);
|
||||
bool8 TryDoorWarp(struct MapPosition * position, u16 metatileBehavior, u8 playerDirection);
|
||||
bool8 sub_806D804(struct MapPosition * position, u16 metatileBehavior, u8 playerDirection);
|
||||
bool8 CheckStandardWildEncounter(u32 encounter);
|
||||
|
||||
@@ -426,3 +442,286 @@ const u8 *GetInteractedObjectEventScript(struct MapPosition *position, u8 metati
|
||||
script = GetRamScript(gSpecialVar_LastTalked, script);
|
||||
return script;
|
||||
}
|
||||
|
||||
const u8 *GetInteractedBackgroundEventScript(struct MapPosition *position, u8 metatileBehavior, u8 direction)
|
||||
{
|
||||
u8 r2;
|
||||
const struct BgEvent *bgEvent = GetBackgroundEventAtPosition(&gMapHeader, position->x - 7, position->y - 7, position->height);
|
||||
|
||||
if (bgEvent == NULL)
|
||||
return NULL;
|
||||
if (bgEvent->bgUnion.script == NULL)
|
||||
return EventScript_TestSignpostMsg;
|
||||
|
||||
r2 = sub_806D898(metatileBehavior, direction);
|
||||
|
||||
switch (bgEvent->kind)
|
||||
{
|
||||
case BG_EVENT_PLAYER_FACING_ANY:
|
||||
default:
|
||||
break;
|
||||
case BG_EVENT_PLAYER_FACING_NORTH:
|
||||
if (direction != DIR_NORTH)
|
||||
return NULL;
|
||||
break;
|
||||
case BG_EVENT_PLAYER_FACING_SOUTH:
|
||||
if (direction != DIR_SOUTH)
|
||||
return NULL;
|
||||
break;
|
||||
case BG_EVENT_PLAYER_FACING_EAST:
|
||||
if (direction != DIR_EAST)
|
||||
return NULL;
|
||||
break;
|
||||
case BG_EVENT_PLAYER_FACING_WEST:
|
||||
if (direction != DIR_WEST)
|
||||
return NULL;
|
||||
break;
|
||||
case 5:
|
||||
case 6:
|
||||
case BG_EVENT_HIDDEN_ITEM:
|
||||
if (GetHiddenItemAttr((u32)bgEvent->bgUnion.script, HIDDEN_ITEM_UNDERFOOT) == TRUE)
|
||||
return NULL;
|
||||
gSpecialVar_0x8005 = GetHiddenItemAttr((u32)bgEvent->bgUnion.script, HIDDEN_ITEM_ID);
|
||||
gSpecialVar_0x8004 = GetHiddenItemAttr((u32)bgEvent->bgUnion.script, HIDDEN_ITEM_FLAG);
|
||||
gSpecialVar_0x8006 = GetHiddenItemAttr((u32)bgEvent->bgUnion.script, HIDDEN_ITEM_QUANTITY);
|
||||
if (FlagGet(gSpecialVar_0x8004) == TRUE)
|
||||
return NULL;
|
||||
gSpecialVar_Facing = direction;
|
||||
return EventScript_HiddenItemScript;
|
||||
}
|
||||
|
||||
if (r2 != 0xFF)
|
||||
sub_8069A20();
|
||||
gSpecialVar_Facing = direction;
|
||||
return bgEvent->bgUnion.script;
|
||||
}
|
||||
|
||||
const u8 *GetInteractedMetatileScript(struct MapPosition *position, u8 metatileBehavior, u8 direction)
|
||||
{
|
||||
gSpecialVar_Facing = direction;
|
||||
if (MetatileBehavior_IsPC(metatileBehavior) == TRUE)
|
||||
return EventScript_PC;
|
||||
if (MetatileBehavior_IsRegionMap(metatileBehavior) == TRUE)
|
||||
return EventScript_WallTownMap;
|
||||
if (MetatileBehavior_IsBookshelf(metatileBehavior) == TRUE)
|
||||
return gUnknown_81A7606;
|
||||
if (MetatileBehavior_IsPokeMartShelf(metatileBehavior) == TRUE)
|
||||
return gUnknown_81A760F;
|
||||
if (MetatileBehavior_IsFood(metatileBehavior) == TRUE)
|
||||
return gUnknown_81A7618;
|
||||
if (MetatileBehavior_IsImpressiveMachine(metatileBehavior) == TRUE)
|
||||
return gUnknown_81A7633;
|
||||
if (MetatileBehavior_IsBlueprints(metatileBehavior) == TRUE)
|
||||
return gUnknown_81A763C;
|
||||
if (MetatileBehavior_IsVideoGame(metatileBehavior) == TRUE)
|
||||
return gUnknown_81A7621;
|
||||
if (MetatileBehavior_IsBurglary(metatileBehavior) == TRUE)
|
||||
return gUnknown_81A7645;
|
||||
if (MetatileBehavior_IsComputer(metatileBehavior) == TRUE)
|
||||
return gUnknown_81A762A;
|
||||
if (MetatileBehavior_IsMBA3(metatileBehavior) == TRUE)
|
||||
return TrainerTower_EventScript_ShowTime;
|
||||
if (MetatileBehavior_IsPlayerFacingTVScreen(metatileBehavior, direction) == TRUE)
|
||||
return gUnknown_81A764E;
|
||||
if (MetatileBehavior_IsCabinet(metatileBehavior) == TRUE)
|
||||
return gUnknown_81A7657;
|
||||
if (MetatileBehavior_IsKitchen(metatileBehavior) == TRUE)
|
||||
return gUnknown_81A7660;
|
||||
if (MetatileBehavior_IsDresser(metatileBehavior) == TRUE)
|
||||
return gUnknown_81A7669;
|
||||
if (MetatileBehavior_IsSnacks(metatileBehavior) == TRUE)
|
||||
return gUnknown_81A7672;
|
||||
if (MetatileBehavior_IsPainting(metatileBehavior) == TRUE)
|
||||
return gUnknown_81A767B;
|
||||
if (MetatileBehavior_IsPowerPlantMachine(metatileBehavior) == TRUE)
|
||||
return gUnknown_81A7684;
|
||||
if (MetatileBehavior_IsTelephone(metatileBehavior) == TRUE)
|
||||
return gUnknown_81A768D;
|
||||
if (MetatileBehavior_IsAdvertisingPoster(metatileBehavior) == TRUE)
|
||||
return gUnknown_81A7696;
|
||||
if (MetatileBehavior_IsTastyFood(metatileBehavior) == TRUE)
|
||||
return gUnknown_81A769F;
|
||||
if (MetatileBehavior_IsTrashBin(metatileBehavior) == TRUE)
|
||||
return gUnknown_81A76A8;
|
||||
if (MetatileBehavior_IsCup(metatileBehavior) == TRUE)
|
||||
return gUnknown_81A76B1;
|
||||
if (MetatileBehavior_ReturnFalse_19(metatileBehavior) == TRUE)
|
||||
return gUnknown_81A76BA;
|
||||
if (MetatileBehavior_ReturnFalse_20(metatileBehavior) == TRUE)
|
||||
return gUnknown_81A76C3;
|
||||
if (MetatileBehavior_IsBlinkingLights(metatileBehavior) == TRUE)
|
||||
return gUnknown_81A76CC;
|
||||
if (MetatileBehavior_IsMB9F(metatileBehavior) == TRUE)
|
||||
return gUnknown_81A76D5;
|
||||
if (MetatileBehavior_IsPlayerFacingMB_8D(metatileBehavior, direction) == TRUE)
|
||||
return CableClub_EventScript_81BBFD8;
|
||||
if (MetatileBehavior_IsQuestionnaire(metatileBehavior) == TRUE)
|
||||
return EventScript_Questionnaire;
|
||||
if (MetatileBehavior_IsPlayerFacingBattleRecords(metatileBehavior, direction) == TRUE)
|
||||
return CableClub_EventScript_ShowBattleRecords;
|
||||
if (MetatileBehavior_IsIndigoPlateauMark(metatileBehavior) == TRUE)
|
||||
{
|
||||
sub_8069A20();
|
||||
return gUnknown_81A76F0;
|
||||
}
|
||||
if (MetatileBehavior_IsIndigoPlateauMark2(metatileBehavior) == TRUE)
|
||||
{
|
||||
sub_8069A20();
|
||||
return gUnknown_81A76F9;
|
||||
}
|
||||
if (MetatileBehavior_IsPlayerFacingPokeMartSign(metatileBehavior, direction) == TRUE)
|
||||
{
|
||||
sub_8069A20();
|
||||
return gUnknown_81A76DE;
|
||||
}
|
||||
if (MetatileBehavior_IsPlayerFacingPokemonCenterSign(metatileBehavior, direction) == TRUE)
|
||||
{
|
||||
sub_8069A20();
|
||||
return gUnknown_81A76E7;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
const u8 *GetInteractedWaterScript(struct MapPosition *unused1, u8 metatileBehavior, u8 direction)
|
||||
{
|
||||
if (MetatileBehavior_IsSemiDeepWater(metatileBehavior) == TRUE &&PartyHasMonWithSurf() == TRUE)
|
||||
return EventScript_CurrentTooFast;
|
||||
if (FlagGet(FLAG_BADGE05_GET) == TRUE && PartyHasMonWithSurf() == TRUE && IsPlayerFacingSurfableFishableWater() == TRUE)
|
||||
return EventScript_UseSurf;
|
||||
|
||||
if (MetatileBehavior_IsWaterfall(metatileBehavior) == TRUE)
|
||||
{
|
||||
if (FlagGet(FLAG_BADGE07_GET) == TRUE && IsPlayerSurfingNorth() == TRUE)
|
||||
return EventScript_Waterfall;
|
||||
else
|
||||
return EventScript_CantUseWaterfall;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
bool8 TryStartStepBasedScript(struct MapPosition *position, u16 metatileBehavior, u16 direction)
|
||||
{
|
||||
if (TryStartCoordEventScript(position) == TRUE)
|
||||
return TRUE;
|
||||
if (TryStartWarpEventScript(position, metatileBehavior) == TRUE)
|
||||
return TRUE;
|
||||
if (TryStartMiscWalkingScripts(metatileBehavior) == TRUE)
|
||||
return TRUE;
|
||||
if (TryStartStepCountScript(metatileBehavior) == TRUE)
|
||||
return TRUE;
|
||||
if (!(gPlayerAvatar.flags & 0x40) && !MetatileBehavior_IsForcedMovementTile(metatileBehavior) && UpdateRepelCounter() == TRUE)
|
||||
return TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 TryStartCoordEventScript(struct MapPosition *position)
|
||||
{
|
||||
const u8 *script = GetCoordEventScriptAtPosition(&gMapHeader, position->x - 7, position->y - 7, position->height);
|
||||
|
||||
if (script == NULL)
|
||||
return FALSE;
|
||||
ScriptContext1_SetupScript(script);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
bool8 TryStartMiscWalkingScripts(u16 metatileBehavior)
|
||||
{
|
||||
// Dummied
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 TryStartStepCountScript(u16 metatileBehavior)
|
||||
{
|
||||
if (InUnionRoom() == TRUE)
|
||||
return FALSE;
|
||||
if (gQuestLogState == QL_STATE_2)
|
||||
return FALSE;
|
||||
|
||||
UpdateHappinessStepCounter();
|
||||
|
||||
if (!(gPlayerAvatar.flags & 0x40) && !MetatileBehavior_IsForcedMovementTile(metatileBehavior))
|
||||
{
|
||||
if (sub_810C4EC() == TRUE)
|
||||
{
|
||||
ScriptContext1_SetupScript(gUnknown_81A8CED);
|
||||
return TRUE;
|
||||
}
|
||||
else if (UpdatePoisonStepCounter() == TRUE)
|
||||
{
|
||||
ScriptContext1_SetupScript(EventScript_FieldPoison);
|
||||
return TRUE;
|
||||
}
|
||||
else if (ShouldEggHatch())
|
||||
{
|
||||
IncrementGameStat(GAME_STAT_HATCHED_EGGS);
|
||||
ScriptContext1_SetupScript(EventScript_EggHatch);
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
if (SafariZoneTakeStep() == TRUE)
|
||||
return TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void Unref_ClearHappinessStepCounter(void)
|
||||
{
|
||||
VarSet(VAR_HAPPINESS_STEP_COUNTER, 0);
|
||||
}
|
||||
|
||||
void UpdateHappinessStepCounter(void)
|
||||
{
|
||||
u16 *ptr = GetVarPointer(VAR_HAPPINESS_STEP_COUNTER);
|
||||
int i;
|
||||
|
||||
(*ptr)++;
|
||||
(*ptr) %= 128;
|
||||
if (*ptr == 0)
|
||||
{
|
||||
struct Pokemon *mon = gPlayerParty;
|
||||
for (i = 0; i < PARTY_SIZE; i++)
|
||||
{
|
||||
AdjustFriendship(mon, FRIENDSHIP_EVENT_WALKING);
|
||||
mon++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ClearPoisonStepCounter(void)
|
||||
{
|
||||
VarSet(VAR_POISON_STEP_COUNTER, 0);
|
||||
}
|
||||
|
||||
bool8 UpdatePoisonStepCounter(void)
|
||||
{
|
||||
u16 *ptr;
|
||||
|
||||
if (gMapHeader.mapType != MAP_TYPE_SECRET_BASE)
|
||||
{
|
||||
ptr = GetVarPointer(VAR_POISON_STEP_COUNTER);
|
||||
(*ptr)++;
|
||||
(*ptr) %= 5;
|
||||
if (*ptr == 0)
|
||||
{
|
||||
switch (DoPoisonFieldEffect())
|
||||
{
|
||||
case FLDPSN_NONE:
|
||||
return FALSE;
|
||||
case FLDPSN_PSN:
|
||||
return FALSE;
|
||||
case FLDPSN_FNT:
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void RestartWildEncounterImmunitySteps(void)
|
||||
{
|
||||
ResetEncounterRateModifiers();
|
||||
}
|
||||
|
||||
bool8 CheckStandardWildEncounter(u32 encounter)
|
||||
{
|
||||
return TryStandardWildEncounter(encounter);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user