ref: 726c4bc1d61ed8ac1975de12f30d34135a624d05
parent: c50b49bd6257ab6aba27210dc0e241414b723d87
author: PikalaxALT <PikalaxALT@gmail.com>
date: Fri Oct 2 18:49:26 EDT 2015
Moved time-related functions in bank 4 to engine/time.asm
--- /dev/null
+++ b/engine/time.asm
@@ -1,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 $ff
+ jr z, .asm_11595
+ ld c, a
+ ld a, [hl]
+ sub c
+ jr nc, .asm_11590
+ xor a
+
+.asm_11590
+ ld [hl], a
+ jr z, .asm_11595
+ xor a
+ ret
+
+.asm_11595
+ 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
--- a/main.asm
+++ b/main.asm
@@ -10284,472 +10284,8 @@
INCLUDE "engine/pack.asm"
+INCLUDE "engine/time.asm"
-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 $ff
- jr z, .asm_11595
- ld c, a
- ld a, [hl]
- sub c
- jr nc, .asm_11590
- xor a
-
-.asm_11590
- ld [hl], a
- jr z, .asm_11595
- xor a
- ret
-
-.asm_11595
- 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, .asm_1160e
- add 140
-.asm_1160e
- 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
-
CanLearnTMHMMove: ; 11639
ld a, [CurPartySpecies]
ld [CurSpecies], a
@@ -93615,3 +93151,4 @@
ELSE
INCBIN "misc/stadium2_1.bin"
ENDC
+
--- a/maps/ElmsLab.asm
+++ b/maps/ElmsLab.asm
@@ -105,10 +105,10 @@
checkevent EVENT_TOLD_ELM_ABOUT_TOGEPI_OVER_THE_PHONE
iffalse ElmCheckTogepiEgg
writebyte TOGEPI
- special Functionc284
+ special Special_FindThatSpeciesYourTrainerID
iftrue ShowElmTogepiScript
writebyte TOGETIC
- special Functionc284
+ special Special_FindThatSpeciesYourTrainerID
iftrue ShowElmTogepiScript
writetext UnknownText_0x79a40
closetext
@@ -117,10 +117,10 @@
ElmEggHatchedScript:
writebyte TOGEPI
- special Functionc284
+ special Special_FindThatSpeciesYourTrainerID
iftrue ShowElmTogepiScript
writebyte TOGETIC
- special Functionc284
+ special Special_FindThatSpeciesYourTrainerID
iftrue ShowElmTogepiScript
jump ElmCheckGotEggAgain
--- a/maps/LakeofRageMagikarpHouse.asm
+++ b/maps/LakeofRageMagikarpHouse.asm
@@ -37,7 +37,7 @@
UnknownScript_0x19a6e0:
writebyte MAGIKARP
- special Functionc276
+ special Special_FindThatSpecies
iffalse UnknownScript_0x19a6d7
writetext UnknownText_0x19a93e
closetext