shithub: pokecrystal

Download patch

ref: 82c3bb464f192c8d2ab29a8ef5bd8440f4567065
parent: f513cdd8883336096031f91b00791864ded473f9
author: yenatch <[email protected]>
date: Sat Sep 7 20:19:52 EDT 2013

split flag action asm into common/flag.asm

--- /dev/null
+++ b/common/flag.asm
@@ -1,0 +1,113 @@
+Function2e50: ; 2e50
+	xor a
+	ld hl, EventFlags
+	ld [hli], a
+	ret
+; 2e56
+
+Function2e56: ; 2e56
+	xor a
+	ld hl, BikeFlags
+	ld [hli], a
+	ld [hl], a
+	ret
+; 2e5d
+
+Function2e5d: ; 2e5d
+	ld a, [$d19a]
+	cp $2
+	jr z, .asm_2e69
+	cp $1
+	jr z, .asm_2e69
+	ret
+
+.asm_2e69
+	ld hl, StatusFlags
+	res 2, [hl]
+	ret
+; 2e6f
+
+
+EventFlagAction: ; 0x2e6f
+	ld hl, EventFlags
+	call FlagAction
+	ret
+
+FlagAction: ; 0x2e76
+; Perform action b on bit de in flag array hl.
+
+; inputs:
+; b: function
+;    0 clear bit
+;    1 set bit
+;    2 check bit
+; de: bit number
+; hl: index within bit table
+
+	; get index within the byte
+	ld a, e
+	and 7
+
+	; shift de right by three bits (get the index within memory)
+	srl d
+	rr e
+	srl d
+	rr e
+	srl d
+	rr e
+	add hl, de
+
+	; implement a decoder
+	ld c, 1
+	rrca
+	jr nc, .one
+	rlc c
+.one
+	rrca
+	jr nc, .two
+	rlc c
+	rlc c
+.two
+	rrca
+	jr nc, .three
+	swap c
+.three
+
+	; check b's value: 0, 1, 2
+	ld a, b
+	cp 1
+	jr c, .clearbit ; 0
+	jr z, .setbit ; 1
+
+	; check bit
+	ld a, [hl]
+	and c
+	ld c, a
+	ret
+
+.setbit
+	; set bit
+	ld a, [hl]
+	or c
+	ld [hl], a
+	ret
+
+.clearbit
+	; clear bit
+	ld a, c
+	cpl
+	and [hl]
+	ld [hl], a
+	ret
+; 0x2ead
+
+
+Function2ead: ; 2ead
+	ld de, ENGINE_POKEDEX
+	ld b, CHECK_FLAG
+	callba EngineFlagAction
+	ld a, c
+	and a
+	ret
+; 2ebb
+
--- a/main.asm
+++ b/main.asm
@@ -706,118 +706,9 @@
 	ret
 ; 2e50
 
-Function2e50: ; 2e50
-	xor a
-	ld hl, EventFlags
-	ld [hli], a
-	ret
-; 2e56
 
-Function2e56: ; 2e56
-	xor a
-	ld hl, BikeFlags
-	ld [hli], a
-	ld [hl], a
-	ret
-; 2e5d
+INCLUDE "common/flag.asm"
 
-Function2e5d: ; 2e5d
-	ld a, [$d19a]
-	cp $2
-	jr z, .asm_2e69
-	cp $1
-	jr z, .asm_2e69
-	ret
-
-.asm_2e69
-	ld hl, StatusFlags
-	res 2, [hl]
-	ret
-; 2e6f
-
-
-EventFlagAction: ; 0x2e6f
-	ld hl, EventFlags
-	call FlagAction
-	ret
-
-FlagAction: ; 0x2e76
-; Perform a function on a bit in memory.
-
-; inputs:
-; b: function
-;    0 clear bit
-;    1 set bit
-;    2 check bit
-; de: bit number
-; hl: index within bit table
-
-	; get index within the byte
-	ld a, e
-	and $7
-
-	; shift de right by three bits (get the index within memory)
-	srl d
-	rr e
-	srl d
-	rr e
-	srl d
-	rr e
-	add hl, de
-
-	; implement a decoder
-	ld c, $1
-	rrca
-	jr nc, .one
-	rlc c
-.one
-	rrca
-	jr nc, .two
-	rlc c
-	rlc c
-.two
-	rrca
-	jr nc, .three
-	swap c
-.three
-
-	; check b's value: 0, 1, 2
-	ld a, b
-	cp 1
-	jr c, .clearbit ; 0
-	jr z, .setbit ; 1
-
-	; check bit
-	ld a, [hl]
-	and c
-	ld c, a
-	ret
-
-.setbit
-	; set bit
-	ld a, [hl]
-	or c
-	ld [hl], a
-	ret
-
-.clearbit
-	; clear bit
-	ld a, c
-	cpl
-	and [hl]
-	ld [hl], a
-	ret
-; 0x2ead
-
-
-Function2ead: ; 2ead
-	ld de, ENGINE_POKEDEX
-	ld b, CHECK_FLAG
-	callba EngineFlagAction
-	ld a, c
-	and a
-	ret
-; 2ebb
 
 Function2ebb: ; 2ebb
 	ld a, [$c2cc]