shithub: pokecrystal

Download patch

ref: 4f0c9cecf9a4c9dec50e2a5fce8392c2217068e0
parent: a1806d6e816369ad5452c4a008d7cd5802f1ec45
author: Rangi <remy.oukaour+rangi42@gmail.com>
date: Sun Jul 22 20:25:53 EDT 2018

StringCmp → CompareBytes; CompareLong → CompareBytesLong
hStringCmpString[1/2] → h[EnemyMon/PartyMon1]Speed

--- a/engine/battle/core.asm
+++ b/engine/battle/core.asm
@@ -530,7 +530,7 @@
 	ld de, wBattleMonSpeed
 	ld hl, wEnemyMonSpeed
 	ld c, 2
-	call StringCmp
+	call CompareBytes
 	jr z, .speed_tie
 	jp nc, .player_first
 	jp .enemy_first
@@ -3715,19 +3715,19 @@
 	inc a
 	ld [wNumFleeAttempts], a
 	ld a, [hli]
-	ld [hStringCmpString2 + 0], a
+	ld [hPartyMon1Speed + 0], a
 	ld a, [hl]
-	ld [hStringCmpString2 + 1], a
+	ld [hPartyMon1Speed + 1], a
 	ld a, [de]
 	inc de
-	ld [hStringCmpString1 + 0], a
+	ld [hEnemyMonSpeed + 0], a
 	ld a, [de]
-	ld [hStringCmpString1 + 1], a
+	ld [hEnemyMonSpeed + 1], a
 	call Call_LoadTempTileMapToTileMap
-	ld de, hStringCmpString2
-	ld hl, hStringCmpString1
-	ld c, $2
-	call StringCmp
+	ld de, hPartyMon1Speed
+	ld hl, hEnemyMonSpeed
+	ld c, 2
+	call CompareBytes
 	jr nc, .can_escape
 
 	xor a
@@ -3739,9 +3739,9 @@
 	ld [hDividend + 0], a
 	ld a, [hProduct + 3]
 	ld [hDividend + 1], a
-	ld a, [hStringCmpString1 + 0]
+	ld a, [hEnemyMonSpeed + 0]
 	ld b, a
-	ld a, [hStringCmpString1 + 1]
+	ld a, [hEnemyMonSpeed + 1]
 	srl b
 	rr a
 	srl b
@@ -8712,7 +8712,7 @@
 	push de
 	ld bc, 12
 	ld de, wStringBuffer1
-	call CompareLong
+	call CompareBytesLong
 	pop de
 	pop hl
 	jr c, .done
@@ -8821,7 +8821,7 @@
 	pop hl
 	push bc
 	ld c, 3
-	call StringCmp
+	call CompareBytes
 	pop bc
 	jr z, .equal
 	jr nc, .done2
--- a/engine/battle/effect_commands.asm
+++ b/engine/battle/effect_commands.asm
@@ -6154,7 +6154,7 @@
 	push de
 	push bc
 	ld c, 2
-	call StringCmp
+	call CompareBytes
 	pop bc
 	pop de
 	pop hl
@@ -6573,7 +6573,7 @@
 
 ; Don't bother healing if HP is already full.
 	push bc
-	call StringCmp
+	call CompareBytes
 	pop bc
 	jr z, .Full
 
--- a/engine/battle/move_effects/false_swipe.asm
+++ b/engine/battle/move_effects/false_swipe.asm
@@ -13,7 +13,7 @@
 	ld c, 2
 	push hl
 	push de
-	call StringCmp
+	call CompareBytes
 	pop de
 	pop hl
 	jr c, .done
--- a/engine/events/bug_contest/judging.asm
+++ b/engine/events/bug_contest/judging.asm
@@ -171,7 +171,7 @@
 	ld de, wBugContestTempScore
 	ld hl, wBugContestFirstPlaceScore
 	ld c, 2
-	call StringCmp
+	call CompareBytes
 	jr c, .not_first_place
 	ld hl, wBugContestSecondPlaceWinnerID
 	ld de, wBugContestThirdPlaceWinnerID
@@ -189,7 +189,7 @@
 	ld de, wBugContestTempScore
 	ld hl, wBugContestSecondPlaceScore
 	ld c, 2
-	call StringCmp
+	call CompareBytes
 	jr c, .not_second_place
 	ld hl, wBugContestSecondPlaceWinnerID
 	ld de, wBugContestThirdPlaceWinnerID
@@ -203,7 +203,7 @@
 	ld de, wBugContestTempScore
 	ld hl, wBugContestThirdPlaceScore
 	ld c, 2
-	call StringCmp
+	call CompareBytes
 	jr c, .done
 	ld hl, wBugContestThirdPlaceWinnerID
 	call CopyTempContestant
--- a/engine/events/magikarp.asm
+++ b/engine/events/magikarp.asm
@@ -36,7 +36,7 @@
 	ld hl, wMagikarpLength
 	ld de, wBestMagikarpLengthFeet
 	ld c, 2
-	call StringCmp
+	call CompareBytes
 	jr nc, .not_long_enough
 
 	; NEW RECORD!!! Let's save that.
--- a/engine/pokemon/evolve.asm
+++ b/engine/pokemon/evolve.asm
@@ -99,7 +99,7 @@
 	ld de, wTempMonAttack
 	ld hl, wTempMonDefense
 	ld c, 2
-	call StringCmp
+	call CompareBytes
 	ld a, ATK_EQ_DEF
 	jr z, .got_tyrogue_evo
 	ld a, ATK_LT_DEF
--- a/home.asm
+++ b/home.asm
@@ -162,55 +162,8 @@
 	rst Bankswitch
 	ret
 
-QueueScript::
-; Push pointer hl in the current bank to wQueuedScriptBank.
-	ld a, [hROMBank]
-
-FarQueueScript::
-; Push pointer a:hl to wQueuedScriptBank.
-	ld [wQueuedScriptBank], a
-	ld a, l
-	ld [wQueuedScriptAddr], a
-	ld a, h
-	ld [wQueuedScriptAddr + 1], a
-	ret
-
-StringCmp::
-; Compare c bytes at de and hl.
-; Return z if they all match.
-.loop
-	ld a, [de]
-	cp [hl]
-	ret nz
-	inc de
-	inc hl
-	dec c
-	jr nz, .loop
-	ret
-
-CompareLong::
-; Compare bc bytes at de and hl.
-; Return carry if they all match.
-
-	ld a, [de]
-	cp [hl]
-	jr nz, .Diff
-
-	inc de
-	inc hl
-	dec bc
-
-	ld a, b
-	or c
-	jr nz, CompareLong
-
-	scf
-	ret
-
-.Diff:
-	and a
-	ret
-
+INCLUDE "home/queue_script.asm"
+INCLUDE "home/compare.asm"
 INCLUDE "home/tilemap.asm"
 INCLUDE "home/hp_pals.asm"
 
--- /dev/null
+++ b/home/compare.asm
@@ -1,0 +1,35 @@
+CompareBytes::
+; Compare c bytes at de and hl.
+; Return z if they all match.
+.loop
+	ld a, [de]
+	cp [hl]
+	ret nz
+	inc de
+	inc hl
+	dec c
+	jr nz, .loop
+	ret
+
+CompareBytesLong::
+; Compare bc bytes at de and hl.
+; Return carry if they all match.
+.loop
+	ld a, [de]
+	cp [hl]
+	jr nz, .diff
+
+	inc de
+	inc hl
+	dec bc
+
+	ld a, b
+	or c
+	jr nz, .loop
+
+	scf
+	ret
+
+.diff:
+	and a
+	ret
--- /dev/null
+++ b/home/queue_script.asm
@@ -1,0 +1,12 @@
+QueueScript::
+; Push pointer hl in the current bank to wQueuedScriptBank.
+	ld a, [hROMBank]
+
+FarQueueScript::
+; Push pointer a:hl to wQueuedScriptBank.
+	ld [wQueuedScriptBank], a
+	ld a, l
+	ld [wQueuedScriptAddr], a
+	ld a, h
+	ld [wQueuedScriptAddr + 1], a
+	ret
--- a/hram.asm
+++ b/hram.asm
@@ -48,8 +48,8 @@
 
 hPastLeadingZeroes EQU $ffb3
 
-hStringCmpString1  EQU $ffb1
-hStringCmpString2  EQU $ffb5
+hEnemyMonSpeed  EQU $ffb1
+hPartyMon1Speed EQU $ffb5
 
 hDividend          EQU $ffb3 ; length in b register, before 'call Divide' (max 4 bytes)
 hDivisor           EQU $ffb7 ; 1 byte long