diff options
author | yenatch <yenatch@gmail.com> | 2015-10-04 14:39:27 -0400 |
---|---|---|
committer | yenatch <yenatch@gmail.com> | 2015-10-04 14:39:27 -0400 |
commit | 7176eff7aafda5378305a593c459d158ac27601f (patch) | |
tree | 85706da5f60a75f4a1aa8a12aa1b77638a538867 /engine | |
parent | 2e74d969f700f7eda40a84a75dfe8b4183d09683 (diff) | |
parent | 2770cfc354b883f0e3f7e632374051ed9b5e936a (diff) |
Merge pull request #311 from PikalaxALT/master
Bank 4 time functions moved out of main.asm
Diffstat (limited to 'engine')
-rw-r--r-- | engine/events.asm | 4 | ||||
-rw-r--r-- | engine/events_2.asm | 66 | ||||
-rw-r--r-- | engine/specials.asm | 70 | ||||
-rwxr-xr-x | engine/time.asm | 464 |
4 files changed, 534 insertions, 70 deletions
diff --git a/engine/events.asm b/engine/events.asm index ae28e0c38..3fedf691d 100644 --- a/engine/events.asm +++ b/engine/events.asm @@ -382,7 +382,7 @@ CheckTileEvent: ; 96874 call CheckBit4_ScriptFlags3 jr z, .ok - call Function97cc0 + call RockSmashEncounter ret c jr .ok @@ -582,7 +582,7 @@ CheckAPressOW: ; 96999 ret c call TryReadSign ret c - call Function97c5f + call CheckFacingTileEvent ret c xor a ret diff --git a/engine/events_2.asm b/engine/events_2.asm index 019894298..5a8ce7c2c 100644 --- a/engine/events_2.asm +++ b/engine/events_2.asm @@ -44,7 +44,7 @@ Function97c4f:: ; 97c4f ret ; 97c5f -Function97c5f:: ; 97c5f +CheckFacingTileEvent:: ; 97c5f call GetFacingTileCoord ld [EngineBuffer1], a ld c, a @@ -95,41 +95,41 @@ Function97c5f:: ; 97c5f ; 97cc0 -Function97cc0:: ; 97cc0 +RockSmashEncounter:: ; 97cc0 ; Rock Smash encounter call Function968c7 - jr c, .asm_97ce2 - call Function97cfd - jr nc, .asm_97ce2 + jr c, .nope + call CanUseSweetScent + jr nc, .nope ld hl, StatusFlags2 bit 2, [hl] - jr nz, .asm_97cdb + jr nz, .bug_contest callba TryWildEncounter - jr nz, .asm_97ce2 - jr .asm_97ce6 + jr nz, .nope + jr .ok -.asm_97cdb - call Function97d23 - jr nc, .asm_97ce2 - jr .asm_97ced +.bug_contest + call _TryWildEncounter_BugContest + jr nc, .nope + jr .ok_bug_contest -.asm_97ce2 +.nope ld a, 1 and a ret -.asm_97ce6 +.ok ld a, BANK(RockSmashBattleScript) ld hl, RockSmashBattleScript - jr .asm_97cf4 + jr .done -.asm_97ced +.ok_bug_contest ld a, BANK(BugCatchingContestBattleScript) ld hl, BugCatchingContestBattleScript - jr .asm_97cf4 + jr .done -.asm_97cf4 +.done call CallScript scf ret @@ -142,45 +142,45 @@ RockSmashBattleScript: ; 97cf9 end ; 97cfd -Function97cfd:: ; 97cfd +CanUseSweetScent:: ; 97cfd ld hl, StatusFlags bit 5, [hl] - jr nz, .asm_97d21 + jr nz, .no ld a, [wPermission] cp $4 - jr z, .asm_97d17 + jr z, .ice_check cp $7 - jr z, .asm_97d17 + jr z, .ice_check callba Function149dd - jr nc, .asm_97d21 + jr nc, .no -.asm_97d17 +.ice_check ld a, [StandingTile] call CheckIceTile - jr z, .asm_97d21 + jr z, .no scf ret -.asm_97d21 +.no and a ret ; 97d23 -Function97d23: ; 97d23 +_TryWildEncounter_BugContest: ; 97d23 call TryWildEncounter_BugContest ret nc - call Function97d31 + call ChooseWildEncounter_BugContest callba CheckRepelEffect ret ; 97d31 -Function97d31:: ; 97d31 +ChooseWildEncounter_BugContest:: ; 97d31 ; Pick a random mon out of ContestMons. -.asm_97d31 +.loop call Random cp 100 << 1 - jr nc, .asm_97d31 + jr nc, .loop srl a ld hl, ContestMons @@ -232,10 +232,10 @@ TryWildEncounter_BugContest: ; 97d64 ld a, [StandingTile] call CheckSuperTallGrassTile ld b, $66 - jr z, .asm_97d70 + jr z, .ok ld b, $33 -.asm_97d70 +.ok callba ApplyMusicEffectOnEncounterRate callba ApplyCleanseTagEffectOnEncounterRate call Random diff --git a/engine/specials.asm b/engine/specials.asm index 5a10090ec..58cf5d646 100644 --- a/engine/specials.asm +++ b/engine/specials.asm @@ -83,11 +83,11 @@ SpecialsPointers:: ; c029 add_special PlayMapMusic add_special RestartMapMusic add_special HealMachineAnim - add_special Function8379 - add_special Functionc25a - add_special Functionc268 - add_special Functionc276 - add_special Functionc284 + add_special Special_SurfStartStep + add_special Special_FindGreaterThanThatLevel + add_special Special_FindAtLeastThatHappy + add_special Special_FindThatSpecies + add_special Special_FindThatSpeciesYourTrainerID add_special Functionc3ef add_special Function17421 add_special Function17440 @@ -163,7 +163,7 @@ SpecialsPointers:: ; c029 add_special Function103612 add_special SpecialHoOhChamber add_special Function102142 - add_special Function4989a + add_special Special_CelebiShrineEvent add_special Function49bf9 add_special SpecialPokeSeer add_special SpecialBuenasPassword @@ -186,8 +186,8 @@ SpecialsPointers:: ; c029 add_special Function4ae12 add_special LoadMapPalettes add_special Function4a927 - add_special Function90a54 - add_special Function90a88 + add_special Special_InitialSetDSTFlag + add_special Special_InitialClearDSTFlag add_special SpecialNone ; c224 @@ -225,40 +225,40 @@ SpecialSeenMon: ; c252 ret ; c25a -Functionc25a: ; c25a +Special_FindGreaterThanThatLevel: ; c25a ld a, [ScriptVar] ld b, a - callba Function4dbd2 - jr z, Functionc298 - jr Functionc292 + callba _FindGreaterThanThatLevel + jr z, FoundNone + jr FoundOne -Functionc268: ; c268 +Special_FindAtLeastThatHappy: ; c268 ld a, [ScriptVar] ld b, a - callba Function4dbd9 - jr z, Functionc298 - jr Functionc292 + callba _FindAtLeastThatHappy + jr z, FoundNone + jr FoundOne -Functionc276: ; c276 +Special_FindThatSpecies: ; c276 ld a, [ScriptVar] ld b, a - callba Function4dbe0 - jr z, Functionc298 - jr Functionc292 + callba _FindThatSpecies + jr z, FoundNone + jr FoundOne -Functionc284: ; c284 +Special_FindThatSpeciesYourTrainerID: ; c284 ld a, [ScriptVar] ld b, a - callba Function4dbe6 - jr z, Functionc298 - jr Functionc292 + callba _FindThatSpeciesYourTrainerID + jr z, FoundNone + jr FoundOne -Functionc292: ; c292 +FoundOne: ; c292 ld a, $1 ld [ScriptVar], a ret -Functionc298: ; c298 +FoundNone: ; c298 xor a ld [ScriptVar], a ret @@ -314,9 +314,9 @@ Special_KrissHousePC: ; c2e7 ; c2f6 Special_CheckMysteryGift: ; c2f6 - ld a, BANK(s0_abe2) + ld a, BANK(sMysteryGiftItem) call GetSRAMBank - ld a, [s0_abe2] + ld a, [sMysteryGiftItem] and a jr z, .no inc a @@ -328,9 +328,9 @@ Special_CheckMysteryGift: ; c2f6 ; c309 Special_GetMysteryGiftItem: ; c309 - ld a, BANK(s0_abe2) + ld a, BANK(sMysteryGiftItem) call GetSRAMBank - ld a, [s0_abe2] + ld a, [sMysteryGiftItem] ld [CurItem], a ld a, $1 ld [wd10c], a @@ -338,12 +338,12 @@ Special_GetMysteryGiftItem: ; c309 call ReceiveItem jr nc, .asm_c33d xor a - ld [s0_abe2], a + ld [sMysteryGiftItem], a call CloseSRAM ld a, [CurItem] ld [wd265], a call GetItemName - ld hl, UnknownText_0xc345 + ld hl, .ReceiveItemText call PrintText ld a, $1 ld [ScriptVar], a @@ -356,7 +356,7 @@ Special_GetMysteryGiftItem: ; c309 ret ; c345 -UnknownText_0xc345: ; 0xc345 +.ReceiveItemText: ; 0xc345 ; received item text_jump UnknownText_0x1bd3be db "@" @@ -639,8 +639,8 @@ Functionc4ac: ; c4ac ; c4b9 SpecialTrainerHouse: ; 0xc4b9 - ld a, BANK(s0_abfd) + ld a, BANK(sMysteryGiftTrainerHouseFlag) call GetSRAMBank - ld a, [s0_abfd] + ld a, [sMysteryGiftTrainerHouseFlag] ld [ScriptVar], a jp CloseSRAM diff --git a/engine/time.asm b/engine/time.asm new file mode 100755 index 000000000..d47c4fbaa --- /dev/null +++ b/engine/time.asm @@ -0,0 +1,464 @@ +Function113d6: ; 113d6 + call Function114dd + ret +; 113da + +Function113da: ; 113da + xor a + ld [wdc2d], a + ld [wdc3a], a + ld [wdc1c], a + ret +; 113e5 + +Function113e5:: ; 113e5 + xor a + ld [wd464], a + +Function113e9: ; 113e9 + ld a, [wd464] + cp 3 + jr c, .asm_113f2 + ld a, 3 + +.asm_113f2 + ld e, a + ld d, 0 + ld hl, .data_113fd + add hl, de + ld a, [hl] + jp Function1142e +; 113fd + +.data_113fd + db 20, 10, 5, 3 +; 11401 + +Function11401: ; 11401 + call Function1143c + ret nc + ld hl, wd464 + ld a, [hl] + cp 3 + jr nc, .asm_1140e + inc [hl] + +.asm_1140e + call Function113e9 + scf + ret +; 11413 + +Function11413: ; 11413 + ld a, 1 + +Function11415: ; 11415 + ld [hl], a + push hl + call UpdateTime + pop hl + inc hl + call Function11621 + ret +; 11420 + +Function11420: ; 11420 + inc hl + push hl + call Function115cf + call Function115c8 + pop hl + dec hl + call Function11586 + ret +; 1142e + +Function1142e: ; 1142e + ld hl, wd465 + ld [hl], a + call UpdateTime + ld hl, wd466 + call Function1162e + ret +; 1143c + +Function1143c: ; 1143c + ld hl, wd466 + call Function115d6 + call Function115ae + ld hl, wd465 + call Function11586 + ret +; 1144c + +Function1144c: ; 1144c + ld hl, wdc1c + jp Function11413 +; 11452 + +Function11452:: ; 11452 + ld hl, wdc1c + call Function11420 + ret nc + xor a + ld hl, DailyFlags +rept 3 + ld [hli], a +endr + ld [hl], a + ld hl, wDailyRematchFlags +rept 4 + ld [hli], a +endr + ld hl, wDailyPhoneItemFlags +rept 4 + ld [hli], a +endr + ld hl, wDailyPhoneTimeOfDayFlags +rept 4 + ld [hli], a +endr + ld hl, wdc58 + ld a, [hl] + and a + jr z, .asm_11480 + dec [hl] + jr nz, .asm_11483 + +.asm_11480 + call Function11485 + +.asm_11483 + jr Function1144c +; 11485 + +Function11485: ; 11485 + call Random + and 3 + add 3 + ld [wdc58], a + ret +; 11490 + +Function11490: ; 11490 + ld a, $14 + ld [wd46c], a + ld a, $0 + ld [wd46d], a + call UpdateTime + ld hl, wdc35 + call Function11613 + ret +; 114a4 + + +Function114a4:: ; 114a4 (4:54a4) + ld hl, wdc35 + call Function115db + ld a, [wcfd7] + and a + jr nz, .asm_114d4 + ld a, [wcfd6] + and a + jr nz, .asm_114d4 + ld a, [wcfd4] + ld b, a + ld a, [wd46d] + sub b + jr nc, .asm_114c2 + add $3c +.asm_114c2 + ld [wd46d], a + ld a, [wcfd5] + ld b, a + ld a, [wd46c] + sbc b + ld [wd46c], a + jr c, .asm_114d4 + and a + ret +.asm_114d4 + xor a + ld [wd46c], a + ld [wd46d], a + scf + ret + + +Function114dd: ; 114dd + call UpdateTime + ld hl, wdc23 + call Function11621 + ret +; 114e7 + +Function114e7:: ; 114e7 + ld hl, wdc23 + call Function115cf + call Function115c8 + and a + jr z, .asm_114fa + + ld b, a + callba ApplyPokerusTick + +.asm_114fa + xor a + ret +; 114fc + +Function114fc: ; 114fc + ld a, $2 + ld hl, wdc3a + ld [hl], a + call UpdateTime + ld hl, wdc3b + call Function11621 + ret +; 1150c + +Function1150c: ; 1150c + ld hl, wdc3b + call Function115cf + call Function115c8 + ld hl, wdc3a + call Function11586 + ret +; 1151c + +Function1151c: ; 1151c + ld hl, DailyFlags + set 2, [hl] + ret +; 11522 + +Function11522: ; 11522 + and a + ld hl, DailyFlags + bit 2, [hl] + ret nz + scf + ret +; 1152b + +Function1152b: ; 1152b + call Function11534 + ld hl, wdc2d + jp Function11415 +; 11534 + +Function11534: ; 11534 + call GetWeekday + ld c, a + ld a, $5 + sub c + jr z, .asm_1153f + jr nc, .asm_11541 + +.asm_1153f + add $7 + +.asm_11541 + ret +; 11542 + +Function11542: ; 11542 + ld hl, wdc2d + jp Function11420 +; 11548 + +Function11548: ; 11548 + ld a, BANK(s0_abfa) + call GetSRAMBank + ld hl, s0_abfa + ld a, [hli] + ld [Buffer1], a + ld a, [hl] + ld [Buffer2], a + call CloseSRAM + ld hl, Buffer1 + call Function11420 + jr nc, .asm_11572 + ld hl, Buffer1 + call Function11413 + call CloseSRAM + callba Function1050c8 + +.asm_11572 + ld a, BANK(s0_abfa) + call GetSRAMBank + ld hl, Buffer1 + ld a, [hli] + ld [s0_abfa], a + ld a, [hl] + ld [s0_abfa + 1], a + call CloseSRAM + ret +; 11586 + +Function11586: ; 11586 + cp -1 + jr z, .skip + ld c, a + ld a, [hl] + sub c + jr nc, .ok + xor a + +.ok + ld [hl], a + jr z, .skip + xor a + ret + +.skip + xor a + ld [hl], a + scf + ret +; 11599 + +Function11599: ; 11599 + ld a, [wcfd7] + and a + jr nz, Function115cc + ld a, [wcfd6] + and a + jr nz, Function115cc + ld a, [wcfd5] + jr nz, Function115cc + ld a, [wcfd4] + ret +; 115ae + +Function115ae: ; 115ae + ld a, [wcfd7] + and a + jr nz, Function115cc + ld a, [wcfd6] + and a + jr nz, Function115cc + ld a, [wcfd5] + ret +; 115be + +Function115be: ; 115be + ld a, [wcfd7] + and a + jr nz, Function115cc + ld a, [wcfd6] + ret +; 115c8 + +Function115c8: ; 115c8 + ld a, [wcfd7] + ret +; 115cc + +Function115cc: ; 115cc + ld a, $ff + ret +; 115cf + +Function115cf: ; 115cf + xor a + jr Function11605 +; 115d2 + +Function115d2: ; 115d2 + inc hl + xor a + jr Function115f8 +; 115d6 + +Function115d6: ; 115d6 +rept 2 + inc hl +endr + xor a + jr Function115eb +; 115db + +Function115db: ; 115db +rept 3 + inc hl +endr + ld a, [hSeconds] + ld c, a + sub [hl] + jr nc, .asm_115e6 + add 60 +.asm_115e6 + ld [hl], c + dec hl + ld [wcfd4], a + +Function115eb: ; 115eb + ld a, [hMinutes] + ld c, a + sbc [hl] + jr nc, .asm_115f3 + add 60 +.asm_115f3 + ld [hl], c + dec hl + ld [wcfd5], a + +Function115f8: ; 115f8 + ld a, [hHours] + ld c, a + sbc [hl] + jr nc, .asm_11600 + add 24 +.asm_11600 + ld [hl], c + dec hl + ld [wcfd6], a + +Function11605 + ld a, [CurDay] + ld c, a + sbc [hl] + jr nc, .skip + add 20 * 7 +.skip + ld [hl], c + ld [wcfd7], a + ret +; 11613 + +Function11613: ; 11613 + ld a, [CurDay] + ld [hli], a + ld a, [hHours] + ld [hli], a + ld a, [hMinutes] + ld [hli], a + ld a, [hSeconds] + ld [hli], a + ret +; 11621 + +Function11621: ; 11621 + ld a, [CurDay] + ld [hl], a + ret +; 11626 + +Function11626: ; 11626 + ld a, [CurDay] + ld [hli], a + ld a, [hHours] + ld [hli], a + ret +; 1162e + +Function1162e: ; 1162e + ld a, [CurDay] + ld [hli], a + ld a, [hHours] + ld [hli], a + ld a, [hMinutes] + ld [hli], a + ret +; 11639
\ No newline at end of file |