shithub: pokecrystal

Download patch

ref: 353b4ac6da0800497d1fffa239628428342ddec1
parent: 6e5876377f93f0801c8de54954d40994d5f06d6e
author: yenatch <[email protected]>
date: Sat Sep 7 13:35:41 EDT 2013

fix up TreeMons/RockMons

--- a/main.asm
+++ b/main.asm
@@ -72429,33 +72429,39 @@
 INCBIN "baserom.gbc", $b81ea, $b8219 - $b81ea
 
 Functionb8219: ; b8219
-; deals strictly with rockmon encounter
+; get a RockMon encounter
+
 	xor a
 	ld [$d22e], a
 	ld [CurPartyLevel], a
-	ld hl, WildRockMonMapTable
+
+	ld hl, RockMonMaps
 	call GetTreeMonEncounterTable
 	jr nc, .quit
-	call LoadWildTreeMonData
+
+	call LoadTreeMonData
 	jr nc, .quit
-	ld a, $0a
+
+	ld a, 10
 	call Function2fb1
-	cp a, $04
+	cp 4
 	jr nc, .quit
-	call $441f
+
+	call Functionb841f
 	jr nc, .quit
+
 	ret
+
 .quit
 	xor a
 	ret
 ; b823e
 
-db $05 ; ????
+	db $05 ; ????
 
 GetTreeMonEncounterTable: ; b823f
-; reads a map-sensitive encounter table
-; compares current map with maps in the table
-; if there is a match, encounter table # is loaded into a
+; Return carry and table id in a
+; if MapGroup and MapNumber are in table hl
 	ld a, [MapNumber]
 	ld e, a
 	ld a, [MapGroup]
@@ -72462,7 +72468,7 @@
 	ld d, a
 .loop
 	ld a, [hli]
-	cp a, $ff
+	cp $ff
 	jr z, .quit
 	cp d
 	jr nz, .skip2
@@ -72486,55 +72492,60 @@
 
 INCBIN "baserom.gbc", $B825E, $b82c5 - $b825e
 
-WildRockMonMapTable: ; b82c5
-	db GROUP_CIANWOOD_CITY, MAP_CIANWOOD_CITY, $07
-	db GROUP_ROUTE_40, MAP_ROUTE_40, $07
-	db GROUP_DARK_CAVE_VIOLET_ENTRANCE, MAP_DARK_CAVE_VIOLET_ENTRANCE, $07
-	db GROUP_SLOWPOKE_WELL_B1F, MAP_SLOWPOKE_WELL_B1F, $07
+RockMonMaps: ; b82c5
+	db GROUP_CIANWOOD_CITY, MAP_CIANWOOD_CITY, 7
+	db GROUP_ROUTE_40, MAP_ROUTE_40, 7
+	db GROUP_DARK_CAVE_VIOLET_ENTRANCE, MAP_DARK_CAVE_VIOLET_ENTRANCE, 7
+	db GROUP_SLOWPOKE_WELL_B1F, MAP_SLOWPOKE_WELL_B1F, 7
 	db $ff ; end
 ; b82d2
 
-LoadWildTreeMonData: ; b82d2
-; input: a = table number
-; returns wildtreemontable pointer in hl
-; sets carry if successful
-	cp a, $08 ; which table?
-	jr nc, .quit ; only 8 tables
+LoadTreeMonData: ; b82d2
+; Return TreeMon pointer a in hl
+; Return carry on success
+
+; only 7 tables
+	cp 8
+	jr nc, .quit
+
 	and a
-	jr z, .quit ; 0 is invalid
+	jr z, .quit
+
 	ld e, a
-	ld d, $00
-	ld hl, WildTreeMonPointerTable
+	ld d, 0
+	ld hl, TreeMonPointers
 	add hl, de
 	add hl, de
-	ld a, [hli] ; store pointer in hl
+
+	ld a, [hli]
 	ld h, [hl]
 	ld l, a
+
 	scf
 	ret
+
 .quit
 	xor a
 	ret
 ; b82e8
 
-WildTreeMonPointerTable: ; b82e8
+TreeMonPointers: ; b82e8
 ; seems to point to "normal" tree encounter data
-; as such only odd-numbered tables are used
-; rockmon is 13th
-	dw WildTreeMonTable1  ; filler
-	dw WildTreeMonTable1  ; 1
-	dw WildTreeMonTable3  ; 2
-	dw WildTreeMonTable5  ; 3
-	dw WildTreeMonTable7  ; 4
-	dw WildTreeMonTable9  ; 5
-	dw WildTreeMonTable11 ; 6
-	dw WildRockMonTable   ; 7
-	dw WildTreeMonTable1  ; 8
+; so only odd-numbered tables are used
+	dw TreeMons1  ; filler
+	dw TreeMons1  ; 1
+	dw TreeMons3  ; 2
+	dw TreeMons5  ; 3
+	dw TreeMons7  ; 4
+	dw TreeMons9  ; 5
+	dw TreeMons11 ; 6
+	dw RockMons   ; 7
+	dw TreeMons1  ; filler
 ; b82fa
 
 ; structure: % species level
 
-WildTreeMonTable1: ; b82fa
+TreeMons1: ; b82fa
 	db 50, SPEAROW, 10
 	db 15, SPEAROW, 10
 	db 15, SPEAROW, 10
@@ -72544,7 +72555,7 @@
 	db $ff ; end
 ; b830d
 
-WildTreeMonTable2 ; b830d
+TreeMons2 ; b830d
 ; unused
 	db 50, SPEAROW, 10
 	db 15, HERACROSS, 10
@@ -72555,7 +72566,7 @@
 	db $ff ; end
 ; b8320
 
-WildTreeMonTable3: ; b8320
+TreeMons3: ; b8320
 	db 50, SPEAROW, 10
 	db 15, EKANS, 10
 	db 15, SPEAROW, 10
@@ -72565,7 +72576,7 @@
 	db $ff ; end
 ; b8333
 
-WildTreeMonTable4: ; b8333
+TreeMons4: ; b8333
 ; unused
 	db 50, SPEAROW, 10
 	db 15, HERACROSS, 10
@@ -72576,7 +72587,7 @@
 	db $ff ; end
 ; b8346
 
-WildTreeMonTable5: ; b8346
+TreeMons5: ; b8346
 	db 50, HOOTHOOT, 10
 	db 15, SPINARAK, 10
 	db 15, LEDYBA, 10
@@ -72586,7 +72597,7 @@
 	db $ff ; end
 ; b8359
 
-WildTreeMonTable6: ; b8359
+TreeMons6: ; b8359
 ; unused
 	db 50, HOOTHOOT, 10
 	db 15, PINECO, 10
@@ -72597,7 +72608,7 @@
 	db $ff ; end
 ; b836c
 
-WildTreeMonTable7: ; b836c
+TreeMons7: ; b836c
 	db 50, HOOTHOOT, 10
 	db 15, EKANS, 10
 	db 15, HOOTHOOT, 10
@@ -72607,7 +72618,7 @@
 	db $ff ; end
 ; b837f
 
-WildTreeMonTable8: ; b837f
+TreeMons8: ; b837f
 ; unused
 	db 50, HOOTHOOT, 10
 	db 15, PINECO, 10
@@ -72618,7 +72629,7 @@
 	db $ff ; end
 ; b8392
 
-WildTreeMonTable9: ; b8392
+TreeMons9: ; b8392
 	db 50, HOOTHOOT, 10
 	db 15, VENONAT, 10
 	db 15, HOOTHOOT, 10
@@ -72628,7 +72639,7 @@
 	db $ff ; end
 ; b83a5
 
-WildTreeMonTable10: ; b83a5
+TreeMons10: ; b83a5
 ; unused
 	db 50, HOOTHOOT, 10
 	db 15, PINECO, 10
@@ -72639,7 +72650,7 @@
 	db $ff ; end
 ; b83b8
 
-WildTreeMonTable11: ; b83b8
+TreeMons11: ; b83b8
 	db 50, HOOTHOOT, 10
 	db 15, PINECO, 10
 	db 15, PINECO, 10
@@ -72649,7 +72660,7 @@
 	db $ff ; end
 ; b83cb
 
-WildTreeMonTable12; b83cb
+TreeMons12; b83cb
 ; unused
 	db 50, HOOTHOOT, 10
 	db 15, CATERPIE, 10
@@ -72660,13 +72671,46 @@
 	db $ff ; end
 ; b83de
 
-WildRockMonTable: ; b83de
+RockMons: ; b83de
 	db 90, KRABBY, 15
 	db 10, SHUCKLE, 15
 	db $ff ; end
 ; b83e5
 
-INCBIN "baserom.gbc", $b83e5, $b8f8f - $b83e5
+INCBIN "baserom.gbc", $b83e5, $b841f - $b83e5
+
+Functionb841f: ; b841f
+; Read a TreeMons table.
+
+	ld a, 100
+	call Function2fb1
+.asm_b8424
+	sub [hl]
+	jr c, .asm_b842c
+	inc hl
+	inc hl
+	inc hl
+	jr .asm_b8424
+
+.asm_b842c
+	ld a, [hli]
+	cp $ff
+	jr z, .asm_b843b
+	ld a, [hli]
+	ld [$d22e], a
+	ld a, [hl]
+	ld [CurPartyLevel], a
+	scf
+	ret
+
+.asm_b843b
+	xor a
+	ld [$d22e], a
+	ld [CurPartyLevel], a
+	ret
+; b8443
+
+INCBIN "baserom.gbc", $b8443, $b8f8f - $b8443
 
 Functionb8f8f: ; b8f8f
 	ld a, c