mirror of
https://github.com/thornAvery/jep-hack.git
synced 2025-09-17 02:30:50 +12:00

This adds Rock Climb functionality to Strong Arm and Dive functionality to Water Sport, as discussed in the server. HMs have been added, but we need 16bit Items to add Wind Ride, and I haven't finished their functionality.
The Rock Climb tile is a bit terrible, it's not easy to notice. Maybe change so that it works well with yellow or another colour?
This does not build due to issues with effect_commands.asm, but since Zeta is meant to be working on the mapping and Water Sport anyway, it seems to be up his alley.
I ported over much of the underwater assets Rangi was using as they looked very pretty. I imagine it'll be fun to utilise going forward. May as well, right?
I shall now lay down in a dark room.
Review: c21561ea71 (diff-5508f3b794fc68821ba35e94b6a293b2aaaa16c02a1b34fac70d03fd2f74c4b2R113)
120 lines
1.4 KiB
NASM
120 lines
1.4 KiB
NASM
ResetMapBufferEventFlags::
|
|
xor a
|
|
ld hl, wEventFlags
|
|
ld [hli], a
|
|
ret
|
|
|
|
ResetBikeFlags::
|
|
xor a
|
|
ld hl, wBikeFlags
|
|
ld [hli], a
|
|
ld [hl], a
|
|
ret
|
|
|
|
ResetFlashIfOutOfCave::
|
|
ld a, [wEnvironment]
|
|
cp ROUTE
|
|
jr z, .outdoors
|
|
cp TOWN
|
|
jr z, .outdoors
|
|
ret
|
|
|
|
.outdoors
|
|
ld hl, wStatusFlags
|
|
res STATUSFLAGS_FLASH_F, [hl]
|
|
ret
|
|
|
|
EventFlagAction::
|
|
ld hl, wEventFlags
|
|
call FlagAction
|
|
ret
|
|
|
|
ResetDiveMap::
|
|
xor a
|
|
ld [wDiveMapGroup], a
|
|
ld [wDiveMapNumber], a
|
|
ret
|
|
|
|
FlagAction::
|
|
; Perform action b on bit de in flag array hl.
|
|
|
|
; inputs:
|
|
; b: function
|
|
; 0 RESET_FLAG clear bit
|
|
; 1 SET_FLAG set bit
|
|
; 2 CHECK_FLAG check bit
|
|
; de: bit number
|
|
; hl: pointer to the flag array
|
|
|
|
; get index within the byte
|
|
ld a, e
|
|
and 7
|
|
|
|
; shift de right by three bits (get the index within memory)
|
|
rept 3
|
|
srl d
|
|
rr e
|
|
endr
|
|
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 SET_FLAG
|
|
jr c, .clearbit ; RESET_FLAG
|
|
jr z, .setbit ; SET_FLAG
|
|
|
|
; 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
|
|
|
|
CheckReceivedDex::
|
|
ld de, ENGINE_POKEDEX
|
|
ld b, CHECK_FLAG
|
|
farcall EngineFlagAction
|
|
ld a, c
|
|
and a
|
|
ret
|
|
|
|
xor_a::
|
|
xor a
|
|
ret
|
|
|
|
xor_a_dec_a::
|
|
xor a
|
|
dec a
|
|
ret
|
|
|