summaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
authoryenatch <yenatch@gmail.com>2015-10-04 14:39:27 -0400
committeryenatch <yenatch@gmail.com>2015-10-04 14:39:27 -0400
commit7176eff7aafda5378305a593c459d158ac27601f (patch)
tree85706da5f60a75f4a1aa8a12aa1b77638a538867 /engine
parent2e74d969f700f7eda40a84a75dfe8b4183d09683 (diff)
parent2770cfc354b883f0e3f7e632374051ed9b5e936a (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.asm4
-rw-r--r--engine/events_2.asm66
-rw-r--r--engine/specials.asm70
-rwxr-xr-xengine/time.asm464
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