More splits; map setup labels
This commit is contained in:
2667
engine/billspc.asm
Executable file
2667
engine/billspc.asm
Executable file
File diff suppressed because it is too large
Load Diff
2560
engine/card_flip.asm
Executable file
2560
engine/card_flip.asm
Executable file
File diff suppressed because it is too large
Load Diff
@@ -131,7 +131,7 @@ Function109847:: ; 109847
|
||||
ld a, $5
|
||||
ld [rSVBK], a
|
||||
|
||||
call WhiteBGMap
|
||||
call ClearBGPalettes
|
||||
call ClearTileMap
|
||||
call ClearSprites
|
||||
|
||||
@@ -210,7 +210,7 @@ Function109847:: ; 109847
|
||||
jr .asm_1098de
|
||||
|
||||
.asm_1098ee
|
||||
call WhiteBGMap
|
||||
call ClearBGPalettes
|
||||
xor a
|
||||
ld [hLCDStatCustom], a
|
||||
ld [hBGMapAddress], a
|
||||
|
@@ -6,7 +6,7 @@ Function1dd702: ; 1dd702
|
||||
; 1dd709
|
||||
|
||||
Function1dd709: ; 1dd709
|
||||
call WhiteBGMap
|
||||
call ClearBGPalettes
|
||||
call ClearTileMap
|
||||
call ClearSprites
|
||||
call DisableLCD
|
||||
|
615
engine/dummy_game.asm
Executable file
615
engine/dummy_game.asm
Executable file
@@ -0,0 +1,615 @@
|
||||
_DummyGame: ; e1e5b (38:5e5b)
|
||||
call Functione1e67
|
||||
call DelayFrame
|
||||
.asm_e1e61
|
||||
call Functione1ebb
|
||||
jr nc, .asm_e1e61
|
||||
ret
|
||||
|
||||
Functione1e67: ; e1e67 (38:5e67)
|
||||
call DisableLCD
|
||||
ld b, $8
|
||||
call GetSGBLayout
|
||||
callab Function8cf53
|
||||
ld hl, LZ_e2221
|
||||
ld de, VTiles2 tile $00
|
||||
call Decompress
|
||||
ld hl, Unknown_e00ed
|
||||
ld de, VTiles0 tile $00
|
||||
ld bc, $40
|
||||
ld a, BANK(Unknown_e00ed)
|
||||
call FarCopyBytes
|
||||
ld a, $8
|
||||
ld hl, wc300
|
||||
ld [hli], a
|
||||
ld [hl], $0
|
||||
hlcoord 0, 0
|
||||
ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
|
||||
xor a
|
||||
call ByteFill
|
||||
xor a
|
||||
ld [hSCY], a
|
||||
ld [hSCX], a
|
||||
ld [rWY], a
|
||||
ld [wJumptableIndex], a
|
||||
ld a, $1
|
||||
ld [hBGMapMode], a
|
||||
ld a, $e3
|
||||
ld [rLCDC], a
|
||||
ld a, $e4
|
||||
call DmgToCgbBGPals
|
||||
ld a, $e0
|
||||
call Functioncf8
|
||||
ret
|
||||
|
||||
Functione1ebb: ; e1ebb (38:5ebb)
|
||||
ld a, [wJumptableIndex]
|
||||
bit 7, a
|
||||
jr nz, .asm_e1ed0
|
||||
call Functione1ed2
|
||||
callab Function8cf69
|
||||
call DelayFrame
|
||||
and a
|
||||
ret
|
||||
.asm_e1ed0
|
||||
scf
|
||||
ret
|
||||
|
||||
Functione1ed2: ; e1ed2 (38:5ed2)
|
||||
ld a, [wJumptableIndex]
|
||||
ld e, a
|
||||
ld d, 0
|
||||
ld hl, Jumptable_e1ee1
|
||||
rept 2
|
||||
add hl, de
|
||||
endr
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
jp [hl]
|
||||
; e1ee1 (38:5ee1)
|
||||
|
||||
Jumptable_e1ee1: ; e1ee1
|
||||
dw Functione1ef3
|
||||
dw Functione1efb
|
||||
dw Functione1f1c
|
||||
dw Functione1f42
|
||||
dw Functione1f61
|
||||
dw Functione1f8b
|
||||
dw Functione1fba
|
||||
dw Functione1fcc
|
||||
dw Functione2000
|
||||
; e1ef3
|
||||
|
||||
Functione1ef3: ; e1ef3
|
||||
call Functione2152
|
||||
ld hl, wJumptableIndex
|
||||
inc [hl]
|
||||
ret
|
||||
; e1efb
|
||||
|
||||
Functione1efb: ; e1efb
|
||||
call Functione00ed
|
||||
jr nc, .asm_e1f06
|
||||
ld hl, wJumptableIndex
|
||||
set 7, [hl]
|
||||
ret
|
||||
|
||||
.asm_e1f06
|
||||
call Functione209d
|
||||
ld hl, wJumptableIndex
|
||||
inc [hl]
|
||||
xor a
|
||||
ld [wc708], a
|
||||
ld hl, wc703
|
||||
rept 4
|
||||
ld [hli], a
|
||||
endr
|
||||
ld [hl], a
|
||||
ld [wc709], a
|
||||
|
||||
Functione1f1c: ; e1f1c
|
||||
ld hl, wc708
|
||||
ld a, [hl]
|
||||
cp $2d
|
||||
jr nc, .asm_e1f30
|
||||
inc [hl]
|
||||
call Functione2183
|
||||
xor a
|
||||
ld [wc6fd], a
|
||||
call Functione2128
|
||||
ret
|
||||
|
||||
.asm_e1f30
|
||||
ld de, $341c
|
||||
ld a, $c
|
||||
call Function3b2a
|
||||
ld a, $5
|
||||
ld [wc702], a
|
||||
ld hl, wJumptableIndex
|
||||
inc [hl]
|
||||
ret
|
||||
; e1f42
|
||||
|
||||
Functione1f42: ; e1f42
|
||||
ld a, [wc702]
|
||||
hlcoord 17, 0
|
||||
add $f6
|
||||
ld [hl], a
|
||||
ld hl, wc702
|
||||
ld a, [hl]
|
||||
and a
|
||||
jr nz, .asm_e1f58
|
||||
ld a, $7
|
||||
ld [wJumptableIndex], a
|
||||
ret
|
||||
|
||||
.asm_e1f58
|
||||
dec [hl]
|
||||
xor a
|
||||
ld [wcf64], a
|
||||
ld hl, wJumptableIndex
|
||||
inc [hl]
|
||||
|
||||
Functione1f61: ; e1f61
|
||||
ld a, [wcf64]
|
||||
and a
|
||||
ret z
|
||||
dec a
|
||||
ld e, a
|
||||
ld d, $0
|
||||
ld hl, wc6d0
|
||||
add hl, de
|
||||
ld a, [hl]
|
||||
cp $ff
|
||||
ret z
|
||||
ld [wc6fd], a
|
||||
ld [wPlayerMinimized], a
|
||||
ld a, e
|
||||
ld [EnemyScreens], a
|
||||
call Functione2183
|
||||
call Functione2128
|
||||
xor a
|
||||
ld [wcf64], a
|
||||
ld hl, wJumptableIndex
|
||||
inc [hl]
|
||||
ret
|
||||
; e1f8b
|
||||
|
||||
Functione1f8b: ; e1f8b
|
||||
ld a, [wcf64]
|
||||
and a
|
||||
ret z
|
||||
dec a
|
||||
ld hl, EnemyScreens
|
||||
cp [hl]
|
||||
ret z
|
||||
ld e, a
|
||||
ld d, $0
|
||||
ld hl, wc6d0
|
||||
add hl, de
|
||||
ld a, [hl]
|
||||
cp $ff
|
||||
ret z
|
||||
ld [wc6fd], a
|
||||
ld [PlayerScreens], a
|
||||
ld a, e
|
||||
ld [wc701], a
|
||||
call Functione2183
|
||||
call Functione2128
|
||||
ld a, $40
|
||||
ld [wc708], a
|
||||
ld hl, wJumptableIndex
|
||||
inc [hl]
|
||||
|
||||
Functione1fba: ; e1fba
|
||||
ld hl, wc708
|
||||
ld a, [hl]
|
||||
and a
|
||||
jr z, .asm_e1fc3
|
||||
dec [hl]
|
||||
ret
|
||||
|
||||
.asm_e1fc3
|
||||
call Functione2010
|
||||
ld a, $3
|
||||
ld [wJumptableIndex], a
|
||||
ret
|
||||
; e1fcc
|
||||
|
||||
Functione1fcc: ; e1fcc
|
||||
ld a, [hJoypadPressed]
|
||||
and A_BUTTON
|
||||
ret z
|
||||
xor a
|
||||
ld [wc708], a
|
||||
.asm_e1fd5
|
||||
ld hl, wc708
|
||||
ld a, [hl]
|
||||
cp $2d
|
||||
jr nc, .asm_e1ff9
|
||||
inc [hl]
|
||||
push af
|
||||
call Functione2183
|
||||
pop af
|
||||
push hl
|
||||
ld e, a
|
||||
ld d, $0
|
||||
ld hl, wc6d0
|
||||
add hl, de
|
||||
ld a, [hl]
|
||||
pop hl
|
||||
cp $ff
|
||||
jr z, .asm_e1fd5
|
||||
ld [wc6fd], a
|
||||
call Functione2128
|
||||
jr .asm_e1fd5
|
||||
|
||||
.asm_e1ff9
|
||||
call WaitPressAorB_BlinkCursor
|
||||
ld hl, wJumptableIndex
|
||||
inc [hl]
|
||||
|
||||
Functione2000: ; e2000
|
||||
call Functione00ed
|
||||
jr nc, .asm_e200b
|
||||
ld hl, wJumptableIndex
|
||||
set 7, [hl]
|
||||
ret
|
||||
|
||||
.asm_e200b
|
||||
xor a
|
||||
ld [wJumptableIndex], a
|
||||
ret
|
||||
; e2010
|
||||
|
||||
Functione2010: ; e2010
|
||||
ld hl, wPlayerMinimized
|
||||
ld a, [hli]
|
||||
cp [hl]
|
||||
jr nz, .asm_e2066
|
||||
ld a, [EnemyScreens]
|
||||
call Functione2183
|
||||
call Functione2142
|
||||
ld a, [wc701]
|
||||
call Functione2183
|
||||
call Functione2142
|
||||
ld a, [EnemyScreens]
|
||||
ld e, a
|
||||
ld d, $0
|
||||
ld hl, wc6d0
|
||||
add hl, de
|
||||
ld [hl], $ff
|
||||
ld a, [wc701]
|
||||
ld e, a
|
||||
ld d, $0
|
||||
ld hl, wc6d0
|
||||
add hl, de
|
||||
ld [hl], $ff
|
||||
ld hl, wc703
|
||||
.asm_e2044
|
||||
ld a, [hli]
|
||||
and a
|
||||
jr nz, .asm_e2044
|
||||
dec hl
|
||||
ld a, [wPlayerMinimized]
|
||||
ld [hl], a
|
||||
ld [wc6fd], a
|
||||
ld hl, wc709
|
||||
ld e, [hl]
|
||||
rept 2
|
||||
inc [hl]
|
||||
endr
|
||||
ld d, $0
|
||||
hlcoord 5, 0
|
||||
add hl, de
|
||||
call Functione2128
|
||||
ld hl, UnknownText_0xe2083
|
||||
call PrintText
|
||||
ret
|
||||
|
||||
.asm_e2066
|
||||
xor a
|
||||
ld [wc6fd], a
|
||||
ld a, [EnemyScreens]
|
||||
call Functione2183
|
||||
call Functione2128
|
||||
ld a, [wc701]
|
||||
call Functione2183
|
||||
call Functione2128
|
||||
ld hl, UnknownText_0xe2098
|
||||
call PrintText
|
||||
ret
|
||||
; e2083
|
||||
|
||||
UnknownText_0xe2083: ; 0xe2083
|
||||
start_asm
|
||||
; 0xe2084
|
||||
|
||||
Functione2084: ; e2084
|
||||
push bc
|
||||
hlcoord 2, 13
|
||||
call Functione2128
|
||||
ld hl, UnknownText_0xe2093
|
||||
pop bc
|
||||
rept 3
|
||||
inc bc
|
||||
endr
|
||||
ret
|
||||
; e2093
|
||||
|
||||
UnknownText_0xe2093: ; 0xe2093
|
||||
; , yeah!
|
||||
text_jump UnknownText_0x1c1a5b
|
||||
db "@"
|
||||
; 0xe2098
|
||||
|
||||
UnknownText_0xe2098: ; 0xe2098
|
||||
; Darn…
|
||||
text_jump UnknownText_0x1c1a65
|
||||
db "@"
|
||||
; 0xe209d
|
||||
|
||||
Functione209d: ; e209d
|
||||
ld hl, wc6d0
|
||||
ld bc, $2d
|
||||
xor a
|
||||
call ByteFill
|
||||
call Functione2101
|
||||
ld c, $2
|
||||
ld b, [hl]
|
||||
call Functione20e5
|
||||
ld c, $8
|
||||
ld b, [hl]
|
||||
call Functione20e5
|
||||
ld c, $4
|
||||
ld b, [hl]
|
||||
call Functione20e5
|
||||
ld c, $7
|
||||
ld b, [hl]
|
||||
call Functione20e5
|
||||
ld c, $3
|
||||
ld b, [hl]
|
||||
call Functione20e5
|
||||
ld c, $6
|
||||
ld b, [hl]
|
||||
call Functione20e5
|
||||
ld c, $1
|
||||
ld b, [hl]
|
||||
call Functione20e5
|
||||
ld c, $5
|
||||
ld hl, wc6d0
|
||||
ld b, $2d
|
||||
.asm_e20db
|
||||
ld a, [hl]
|
||||
and a
|
||||
jr nz, .asm_e20e0
|
||||
ld [hl], c
|
||||
|
||||
.asm_e20e0
|
||||
inc hl
|
||||
dec b
|
||||
jr nz, .asm_e20db
|
||||
ret
|
||||
; e20e5
|
||||
|
||||
Functione20e5: ; e20e5
|
||||
push hl
|
||||
ld de, wc6d0
|
||||
.asm_e20e9
|
||||
call Random
|
||||
and $3f
|
||||
cp $2d
|
||||
jr nc, .asm_e20e9
|
||||
ld l, a
|
||||
ld h, $0
|
||||
add hl, de
|
||||
ld a, [hl]
|
||||
and a
|
||||
jr nz, .asm_e20e9
|
||||
ld [hl], c
|
||||
dec b
|
||||
jr nz, .asm_e20e9
|
||||
pop hl
|
||||
inc hl
|
||||
ret
|
||||
; e2101
|
||||
|
||||
Functione2101: ; e2101
|
||||
ld a, [MenuSelection2]
|
||||
dec a
|
||||
ld l, a
|
||||
ld h, 0
|
||||
rept 3
|
||||
add hl, hl
|
||||
endr
|
||||
ld de, Unknown_e2110
|
||||
add hl, de
|
||||
ret
|
||||
; e2110
|
||||
|
||||
Unknown_e2110: ; e2110
|
||||
db $02, $03, $06, $06, $06, $08, $08, $06
|
||||
db $02, $02, $04, $06, $06, $08, $08, $09
|
||||
db $02, $02, $02, $04, $07, $08, $08, $0c
|
||||
; e2128
|
||||
|
||||
Functione2128: ; e2128
|
||||
ld a, [wc6fd]
|
||||
sla a
|
||||
sla a
|
||||
add $4
|
||||
ld [hli], a
|
||||
inc a
|
||||
ld [hld], a
|
||||
inc a
|
||||
ld bc, SCREEN_WIDTH
|
||||
add hl, bc
|
||||
ld [hli], a
|
||||
inc a
|
||||
ld [hl], a
|
||||
ld c, 3
|
||||
call DelayFrames
|
||||
ret
|
||||
; e2142
|
||||
|
||||
Functione2142: ; e2142
|
||||
ld a, $1
|
||||
ld [hli], a
|
||||
ld [hld], a
|
||||
ld bc, SCREEN_WIDTH
|
||||
add hl, bc
|
||||
ld [hli], a
|
||||
ld [hl], a
|
||||
ld c, 3
|
||||
call DelayFrames
|
||||
ret
|
||||
; e2152
|
||||
|
||||
Functione2152: ; e2152
|
||||
hlcoord 0, 0
|
||||
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
|
||||
ld a, $1
|
||||
call ByteFill
|
||||
hlcoord 0, 0
|
||||
ld de, String_e2177
|
||||
call PlaceString
|
||||
hlcoord 15, 0
|
||||
ld de, String_e217d
|
||||
call PlaceString
|
||||
ld hl, UnknownText_0xe2176
|
||||
call PrintText
|
||||
ret
|
||||
; e2176
|
||||
|
||||
UnknownText_0xe2176: ; 0xe2176
|
||||
db "@"
|
||||
; 0xe2177
|
||||
|
||||
String_e2177: db "とったもの@"
|
||||
String_e217d: db "あと かい@"
|
||||
; e2183
|
||||
|
||||
Functione2183: ; e2183
|
||||
ld d, $0
|
||||
.asm_e2185
|
||||
sub $9
|
||||
jr c, .asm_e218c
|
||||
inc d
|
||||
jr .asm_e2185
|
||||
|
||||
.asm_e218c
|
||||
add $9
|
||||
ld e, a
|
||||
hlcoord 1, 2
|
||||
ld bc, $28
|
||||
.asm_e2195
|
||||
ld a, d
|
||||
and a
|
||||
jr z, .asm_e219d
|
||||
add hl, bc
|
||||
dec d
|
||||
jr .asm_e2195
|
||||
|
||||
.asm_e219d
|
||||
sla e
|
||||
add hl, de
|
||||
ret
|
||||
; e21a1
|
||||
|
||||
Functione21a1: ; e21a1 (38:61a1)
|
||||
ld a, [wJumptableIndex]
|
||||
cp $7
|
||||
jr nc, .quit
|
||||
call JoyTextDelay
|
||||
ld hl, hJoypadPressed ; $ffa3
|
||||
ld a, [hl]
|
||||
and A_BUTTON
|
||||
jr nz, .pressed_a
|
||||
ld a, [hl]
|
||||
and D_LEFT
|
||||
jr nz, .pressed_left
|
||||
ld a, [hl]
|
||||
and D_RIGHT
|
||||
jr nz, .pressed_right
|
||||
ld a, [hl]
|
||||
and D_UP
|
||||
jr nz, .pressed_up
|
||||
ld a, [hl]
|
||||
and D_DOWN
|
||||
jr nz, .pressed_down
|
||||
ret
|
||||
|
||||
.quit
|
||||
ld hl, 0
|
||||
add hl, bc
|
||||
ld [hl], $0
|
||||
ret
|
||||
|
||||
.pressed_a
|
||||
ld hl, $c
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
inc a
|
||||
ld [wcf64], a
|
||||
ret
|
||||
|
||||
.pressed_left
|
||||
ld hl, $6
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
and a
|
||||
ret z
|
||||
sub $10
|
||||
ld [hl], a
|
||||
ld hl, $c
|
||||
add hl, bc
|
||||
dec [hl]
|
||||
ret
|
||||
|
||||
.pressed_right
|
||||
ld hl, $6
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
cp $80
|
||||
ret z
|
||||
add $10
|
||||
ld [hl], a
|
||||
ld hl, $c
|
||||
add hl, bc
|
||||
inc [hl]
|
||||
ret
|
||||
|
||||
.pressed_up
|
||||
ld hl, $7
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
and a
|
||||
ret z
|
||||
sub $10
|
||||
ld [hl], a
|
||||
ld hl, $c
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
sub $9
|
||||
ld [hl], a
|
||||
ret
|
||||
|
||||
.pressed_down
|
||||
ld hl, $7
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
cp $40
|
||||
ret z
|
||||
add $10
|
||||
ld [hl], a
|
||||
ld hl, $c
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
add $9
|
||||
ld [hl], a
|
||||
ret
|
||||
; e2221 (38:6221)
|
||||
|
||||
LZ_e2221: ; e2221
|
||||
INCBIN "gfx/unknown/0e2221.2bpp.lz"
|
@@ -138,7 +138,7 @@ EnterMap: ; 9673e
|
||||
call ClearAllScriptFlags3
|
||||
|
||||
ld a, [hMapEntryMethod]
|
||||
cp MAPSETUP_07
|
||||
cp MAPSETUP_CONNECTION
|
||||
jr nz, .dontset
|
||||
call SetAll_ScriptFlags3
|
||||
.dontset
|
||||
@@ -322,9 +322,9 @@ PlayerEvents: ; 9681f
|
||||
ld [ScriptRunning], a
|
||||
call DoPlayerEvent
|
||||
ld a, [ScriptRunning]
|
||||
cp PLAYEREVENT_4
|
||||
cp PLAYEREVENT_CONNECTION
|
||||
jr z, .ok2
|
||||
cp PLAYEREVENT_9
|
||||
cp PLAYEREVENT_JOYCHANGEFACING
|
||||
jr z, .ok2
|
||||
|
||||
xor a
|
||||
@@ -1050,8 +1050,10 @@ DoPlayerEvent: ; 96beb
|
||||
ld a, [ScriptRunning]
|
||||
and a
|
||||
ret z
|
||||
|
||||
cp PLAYEREVENT_MAPSCRIPT ; run script
|
||||
ret z
|
||||
|
||||
cp NUM_PLAYER_EVENTS
|
||||
ret nc
|
||||
|
||||
@@ -1071,24 +1073,24 @@ endr
|
||||
; 96c0c
|
||||
|
||||
PlayerEventScriptPointers: ; 96c0c
|
||||
dba Invalid_0x96c2d ; 0
|
||||
dba SeenByTrainerScript ; 1
|
||||
dba TalkToTrainerScript ; 2
|
||||
dba FindItemInBallScript ; 3
|
||||
dba UnknownScript_0x96c4d ; 4
|
||||
dba WarpToNewMapScript ; 5
|
||||
dba FallIntoMapScript ; 6
|
||||
dba Script_OverworldWhiteout ; 7
|
||||
dba HatchEggScript ; 8
|
||||
dba UnknownScript_0x96c4f ; 9
|
||||
dba Invalid_0x96c2d ; 10
|
||||
dba Invalid_0x96c2d ; 0
|
||||
dba SeenByTrainerScript ; 1
|
||||
dba TalkToTrainerScript ; 2
|
||||
dba FindItemInBallScript ; 3
|
||||
dba UnknownScript_0x96c4d ; 4
|
||||
dba WarpToNewMapScript ; 5
|
||||
dba FallIntoMapScript ; 6
|
||||
dba Script_OverworldWhiteout ; 7
|
||||
dba HatchEggScript ; 8
|
||||
dba UnknownScript_0x96c4f ; 9
|
||||
dba Invalid_0x96c2d ; 10
|
||||
; 96c2d
|
||||
|
||||
Invalid_0x96c2d: ; 96c2d
|
||||
end
|
||||
; 96c2e
|
||||
|
||||
UnknownScript_0x96c2e: ; 96c2e
|
||||
; unreferenced
|
||||
end
|
||||
; 96c2f
|
||||
|
||||
@@ -1099,12 +1101,12 @@ HatchEggScript: ; 96c2f
|
||||
|
||||
WarpToNewMapScript: ; 96c34
|
||||
warpsound
|
||||
newloadmap MAPSETUP_05
|
||||
newloadmap MAPSETUP_DOOR
|
||||
end
|
||||
; 96c38
|
||||
|
||||
FallIntoMapScript: ; 96c38
|
||||
newloadmap MAPSETUP_06
|
||||
newloadmap MAPSETUP_FALL
|
||||
playsound SFX_KINESIS
|
||||
applymovement PLAYER, MovementData_0x96c48
|
||||
playsound SFX_STRENGTH
|
||||
@@ -1123,7 +1125,7 @@ LandAfterPitfallScript: ; 96c4a
|
||||
; 96c4d
|
||||
|
||||
UnknownScript_0x96c4d: ; 4
|
||||
reloadandreturn MAPSETUP_07
|
||||
reloadandreturn MAPSETUP_CONNECTION
|
||||
; 96c4f
|
||||
|
||||
UnknownScript_0x96c4f: ; 9
|
||||
|
863
engine/events_3.asm
Executable file
863
engine/events_3.asm
Executable file
@@ -0,0 +1,863 @@
|
||||
ReturnFromMapSetupScript:: ; b8000
|
||||
xor a
|
||||
ld [hBGMapMode], a
|
||||
; For some reson, GameFreak chose to use a callba here instead of just falling through.
|
||||
; No other function in the game references the function at 2E:400A, here labeled
|
||||
; ReturnFromMapSetupScript.inefficientcallba.
|
||||
callba .inefficientcallba ; this is a waste of 6 ROM bytes and 2 stack bytes
|
||||
ret
|
||||
; b800a
|
||||
|
||||
.inefficientcallba: ; b800a
|
||||
ld a, [MapGroup]
|
||||
ld b, a
|
||||
ld a, [MapNumber]
|
||||
ld c, a
|
||||
call GetWorldMapLocation
|
||||
ld [wCurrentLandmark], a
|
||||
call .CheckNationalParkGate
|
||||
jr z, .nationalparkgate
|
||||
|
||||
call GetMapPermission
|
||||
cp GATE
|
||||
jr nz, .not_gate
|
||||
|
||||
.nationalparkgate
|
||||
ld a, -1
|
||||
ld [wCurrentLandmark], a
|
||||
|
||||
.not_gate
|
||||
ld hl, wEnteredMapFromContinue
|
||||
bit 1, [hl]
|
||||
res 1, [hl]
|
||||
jr nz, .dont_do_map_sign
|
||||
|
||||
call .CheckMovingWithinLandmark
|
||||
jr z, .dont_do_map_sign
|
||||
ld a, [wCurrentLandmark]
|
||||
ld [wPreviousLandmark], a
|
||||
|
||||
call .CheckSpecialMap
|
||||
jr z, .dont_do_map_sign
|
||||
|
||||
; Display for 60 frames
|
||||
ld a, 60
|
||||
ld [wLandmarkSignTimer], a
|
||||
call LoadMapNameSignGFX
|
||||
call InitMapNameFrame
|
||||
callba Function104303
|
||||
ret
|
||||
|
||||
.dont_do_map_sign
|
||||
ld a, [wCurrentLandmark]
|
||||
ld [wPreviousLandmark], a
|
||||
ld a, $90
|
||||
ld [rWY], a
|
||||
ld [hWY], a
|
||||
xor a
|
||||
ld [hLCDStatCustom], a
|
||||
ret
|
||||
; b8064
|
||||
|
||||
.CheckMovingWithinLandmark: ; b8064
|
||||
ld a, [wCurrentLandmark]
|
||||
ld c, a
|
||||
ld a, [wPreviousLandmark]
|
||||
cp c
|
||||
ret z
|
||||
cp $0
|
||||
ret
|
||||
; b8070
|
||||
|
||||
.CheckSpecialMap: ; b8070
|
||||
cp -1
|
||||
ret z
|
||||
cp SPECIAL_MAP
|
||||
ret z
|
||||
cp RADIO_TOWER
|
||||
ret z
|
||||
cp LAV_RADIO_TOWER
|
||||
ret z
|
||||
cp UNDERGROUND
|
||||
ret z
|
||||
cp INDIGO_PLATEAU
|
||||
ret z
|
||||
cp POWER_PLANT
|
||||
ret z
|
||||
ld a, $1
|
||||
and a
|
||||
ret
|
||||
; b8089
|
||||
|
||||
.CheckNationalParkGate: ; b8089
|
||||
ld a, [MapGroup]
|
||||
cp GROUP_ROUTE_35_NATIONAL_PARK_GATE
|
||||
ret nz
|
||||
ld a, [MapNumber]
|
||||
cp MAP_ROUTE_35_NATIONAL_PARK_GATE
|
||||
ret z
|
||||
cp MAP_ROUTE_36_NATIONAL_PARK_GATE
|
||||
ret
|
||||
; b8098
|
||||
|
||||
|
||||
PlaceMapNameSign:: ; b8098 (2e:4098)
|
||||
ld hl, wLandmarkSignTimer
|
||||
ld a, [hl]
|
||||
and a
|
||||
jr z, .disappear
|
||||
dec [hl]
|
||||
cp 60
|
||||
ret z
|
||||
cp 59
|
||||
jr nz, .skip2
|
||||
call InitMapNameFrame
|
||||
call PlaceMapNameCenterAlign
|
||||
callba Function104303
|
||||
.skip2
|
||||
ld a, $80
|
||||
ld a, $70
|
||||
ld [rWY], a
|
||||
ld [hWY], a
|
||||
ret
|
||||
|
||||
.disappear
|
||||
ld a, $90
|
||||
ld [rWY], a
|
||||
ld [hWY], a
|
||||
xor a
|
||||
ld [hLCDStatCustom], a
|
||||
ret
|
||||
|
||||
|
||||
LoadMapNameSignGFX: ; b80c6
|
||||
ld de, MapEntryFrameGFX
|
||||
ld hl, VTiles2 tile $60
|
||||
lb bc, BANK(MapEntryFrameGFX), $e
|
||||
call Get2bpp
|
||||
ret
|
||||
; b80d3
|
||||
|
||||
InitMapNameFrame: ; b80d3
|
||||
hlcoord 0, 0
|
||||
ld b, 2
|
||||
ld c, 18
|
||||
call InitMapSignAttrMap
|
||||
call PlaceMapNameFrame
|
||||
ret
|
||||
; b80e1
|
||||
|
||||
|
||||
PlaceMapNameCenterAlign: ; b80e1 (2e:40e1)
|
||||
ld a, [wCurrentLandmark]
|
||||
ld e, a
|
||||
callba GetLandmarkName
|
||||
call .GetNameLength
|
||||
ld a, SCREEN_WIDTH
|
||||
sub c
|
||||
srl a
|
||||
ld b, $0
|
||||
ld c, a
|
||||
hlcoord 0, 2
|
||||
add hl, bc
|
||||
ld de, StringBuffer1
|
||||
call PlaceString
|
||||
ret
|
||||
|
||||
.GetNameLength: ; b8101 (2e:4101)
|
||||
ld c, 0
|
||||
push hl
|
||||
ld hl, StringBuffer1
|
||||
.loop
|
||||
ld a, [hli]
|
||||
cp "@"
|
||||
jr z, .stop
|
||||
cp "%"
|
||||
jr z, .loop
|
||||
inc c
|
||||
jr .loop
|
||||
.stop
|
||||
pop hl
|
||||
ret
|
||||
|
||||
|
||||
InitMapSignAttrMap: ; b8115
|
||||
ld de, AttrMap - TileMap
|
||||
add hl, de
|
||||
rept 2
|
||||
inc b
|
||||
endr
|
||||
rept 2
|
||||
inc c
|
||||
endr
|
||||
ld a, $87
|
||||
.loop
|
||||
push bc
|
||||
push hl
|
||||
.inner_loop
|
||||
ld [hli], a
|
||||
dec c
|
||||
jr nz, .inner_loop
|
||||
pop hl
|
||||
ld de, SCREEN_WIDTH
|
||||
add hl, de
|
||||
pop bc
|
||||
dec b
|
||||
jr nz, .loop
|
||||
ret
|
||||
; b812f
|
||||
|
||||
PlaceMapNameFrame: ; b812f
|
||||
hlcoord 0, 0
|
||||
; top left
|
||||
ld a, $61
|
||||
ld [hli], a
|
||||
; top row
|
||||
ld a, $62
|
||||
call .FillTopBottom
|
||||
; top right
|
||||
ld a, $64
|
||||
ld [hli], a
|
||||
; left, first line
|
||||
ld a, $65
|
||||
ld [hli], a
|
||||
; first line
|
||||
call .FillMiddle
|
||||
; right, first line
|
||||
ld a, $6b
|
||||
ld [hli], a
|
||||
; left, second line
|
||||
ld a, $66
|
||||
ld [hli], a
|
||||
; second line
|
||||
call .FillMiddle
|
||||
; right, second line
|
||||
ld a, $6c
|
||||
ld [hli], a
|
||||
; bottom left
|
||||
ld a, $67
|
||||
ld [hli], a
|
||||
; bottom
|
||||
ld a, $68
|
||||
call .FillTopBottom
|
||||
; bottom right
|
||||
ld a, $6a
|
||||
ld [hl], a
|
||||
ret
|
||||
; b815b
|
||||
|
||||
.FillMiddle: ; b815b
|
||||
ld c, 18
|
||||
ld a, $6d
|
||||
.loop
|
||||
ld [hli], a
|
||||
dec c
|
||||
jr nz, .loop
|
||||
ret
|
||||
; b8164
|
||||
|
||||
.FillTopBottom: ; b8164
|
||||
ld c, 5
|
||||
jr .enterloop
|
||||
|
||||
.continueloop
|
||||
rept 2
|
||||
ld [hli], a
|
||||
endr
|
||||
|
||||
.enterloop
|
||||
inc a
|
||||
rept 2
|
||||
ld [hli], a
|
||||
endr
|
||||
dec a
|
||||
dec c
|
||||
jr nz, .continueloop
|
||||
ret
|
||||
; b8172
|
||||
|
||||
CheckForSignpostItems: ; b8172
|
||||
; Checks to see if there are hidden items on the screen that have not yet been found. If it finds one, returns carry.
|
||||
call GetMapScriptHeaderBank
|
||||
ld [Buffer1], a
|
||||
; Get the coordinate of the bottom right corner of the screen, and load it in wd1ec/wd1ed.
|
||||
ld a, [XCoord]
|
||||
add SCREEN_WIDTH / 4
|
||||
ld [wd1ed], a
|
||||
ld a, [YCoord]
|
||||
add SCREEN_HEIGHT / 4
|
||||
ld [wd1ec], a
|
||||
; Get the pointer for the first signpost header in the map...
|
||||
ld hl, wdc02
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
; ... before even checking to see if there are any signposts on this map.
|
||||
ld a, [wCurrentMapSignpostCount]
|
||||
and a
|
||||
jr z, .nosignpostitems
|
||||
; For i = 1:wCurrentMapSignpostCount...
|
||||
.loop
|
||||
; Store the counter in Buffer2, and store the signpost header pointer in the stack.
|
||||
ld [Buffer2], a
|
||||
push hl
|
||||
; Get the Y coordinate of the signpost.
|
||||
call .GetFarByte
|
||||
ld e, a
|
||||
; Is the Y coordinate of the signpost on the screen? If not, go to the next signpost.
|
||||
ld a, [wd1ec]
|
||||
sub e
|
||||
jr c, .next
|
||||
cp SCREEN_HEIGHT / 2
|
||||
jr nc, .next
|
||||
; Is the X coordinate of the signpost on the screen? If not, go to the next signpost.
|
||||
call .GetFarByte
|
||||
ld d, a
|
||||
ld a, [wd1ed]
|
||||
sub d
|
||||
jr c, .next
|
||||
cp SCREEN_WIDTH / 2
|
||||
jr nc, .next
|
||||
; Is this signpost a hidden item? If not, go to the next signpost.
|
||||
call .GetFarByte
|
||||
cp SIGNPOST_ITEM
|
||||
jr nz, .next
|
||||
; Has this item already been found? If not, set off the Itemfinder.
|
||||
ld a, [Buffer1]
|
||||
call GetFarHalfword
|
||||
ld a, [Buffer1]
|
||||
call GetFarHalfword
|
||||
ld d, h
|
||||
ld e, l
|
||||
ld b, CHECK_FLAG
|
||||
call EventFlagAction
|
||||
ld a, c
|
||||
and a
|
||||
jr z, .itemnearby
|
||||
|
||||
.next
|
||||
; Restore the signpost header pointer and increment it by the length of a signpost header.
|
||||
pop hl
|
||||
ld bc, 5
|
||||
add hl, bc
|
||||
; Restore the signpost counter and decrement it. If it hits zero, there are no hidden items in range.
|
||||
ld a, [Buffer2]
|
||||
dec a
|
||||
jr nz, .loop
|
||||
|
||||
.nosignpostitems
|
||||
xor a
|
||||
ret
|
||||
|
||||
.itemnearby
|
||||
pop hl
|
||||
scf
|
||||
ret
|
||||
; b81e2
|
||||
|
||||
.GetFarByte: ; b81e2
|
||||
ld a, [Buffer1]
|
||||
call GetFarByte
|
||||
inc hl
|
||||
ret
|
||||
; b81ea
|
||||
|
||||
|
||||
TreeMonEncounter: ; b81ea
|
||||
callba MobileFn_1060ef
|
||||
|
||||
xor a
|
||||
ld [TempWildMonSpecies], a
|
||||
ld [CurPartyLevel], a
|
||||
|
||||
ld hl, TreeMonMaps
|
||||
call GetTreeMonSet
|
||||
jr nc, .no_battle
|
||||
|
||||
call GetTreeMons
|
||||
jr nc, .no_battle
|
||||
|
||||
call GetTreeMon
|
||||
jr nc, .no_battle
|
||||
|
||||
ld a, BATTLETYPE_TREE
|
||||
ld [BattleType], a
|
||||
ld a, 1
|
||||
ld [ScriptVar], a
|
||||
ret
|
||||
|
||||
.no_battle
|
||||
xor a
|
||||
ld [ScriptVar], a
|
||||
ret
|
||||
; b8219
|
||||
|
||||
RockMonEncounter: ; b8219
|
||||
|
||||
xor a
|
||||
ld [TempWildMonSpecies], a
|
||||
ld [CurPartyLevel], a
|
||||
|
||||
ld hl, RockMonMaps
|
||||
call GetTreeMonSet
|
||||
jr nc, .no_battle
|
||||
|
||||
call GetTreeMons
|
||||
jr nc, .no_battle
|
||||
|
||||
ld a, 10
|
||||
call RandomRange
|
||||
cp 4
|
||||
jr nc, .no_battle
|
||||
|
||||
call SelectTreeMon
|
||||
jr nc, .no_battle
|
||||
|
||||
ret
|
||||
|
||||
.no_battle
|
||||
xor a
|
||||
ret
|
||||
; b823e
|
||||
|
||||
db $05 ; ????
|
||||
|
||||
GetTreeMonSet: ; b823f
|
||||
; Return carry and treemon set in a
|
||||
; if the current map is in table hl.
|
||||
ld a, [MapNumber]
|
||||
ld e, a
|
||||
ld a, [MapGroup]
|
||||
ld d, a
|
||||
.loop
|
||||
ld a, [hli]
|
||||
cp -1
|
||||
jr z, .not_in_table
|
||||
|
||||
cp d
|
||||
jr nz, .skip2
|
||||
|
||||
ld a, [hli]
|
||||
cp e
|
||||
jr nz, .skip1
|
||||
|
||||
jr .in_table
|
||||
|
||||
.skip2
|
||||
inc hl
|
||||
.skip1
|
||||
inc hl
|
||||
jr .loop
|
||||
|
||||
.not_in_table
|
||||
xor a
|
||||
ret
|
||||
|
||||
.in_table
|
||||
ld a, [hl]
|
||||
scf
|
||||
ret
|
||||
; b825e
|
||||
|
||||
TreeMonMaps: ; b825e
|
||||
treemon_map: macro
|
||||
map \1
|
||||
db \2 ; treemon set
|
||||
endm
|
||||
treemon_map ROUTE_26, 4
|
||||
treemon_map ROUTE_27, 4
|
||||
treemon_map ROUTE_28, 0
|
||||
treemon_map ROUTE_29, 3
|
||||
treemon_map ROUTE_30, 3
|
||||
treemon_map ROUTE_31, 3
|
||||
treemon_map ROUTE_32, 4
|
||||
treemon_map ROUTE_33, 2
|
||||
treemon_map ROUTE_34, 3
|
||||
treemon_map ROUTE_35, 3
|
||||
treemon_map ROUTE_36, 3
|
||||
treemon_map ROUTE_37, 3
|
||||
treemon_map ROUTE_38, 3
|
||||
treemon_map ROUTE_39, 3
|
||||
treemon_map ROUTE_40, 0
|
||||
treemon_map ROUTE_41, 0
|
||||
treemon_map ROUTE_42, 2
|
||||
treemon_map ROUTE_43, 5
|
||||
treemon_map ROUTE_44, 1
|
||||
treemon_map ROUTE_45, 1
|
||||
treemon_map ROUTE_46, 1
|
||||
treemon_map NEW_BARK_TOWN, 0
|
||||
treemon_map CHERRYGROVE_CITY, 0
|
||||
treemon_map VIOLET_CITY, 0
|
||||
treemon_map AZALEA_TOWN, 2
|
||||
treemon_map CIANWOOD_CITY, 0
|
||||
treemon_map GOLDENROD_CITY, 0
|
||||
treemon_map OLIVINE_CITY, 0
|
||||
treemon_map ECRUTEAK_CITY, 0
|
||||
treemon_map MAHOGANY_TOWN, 0
|
||||
treemon_map LAKE_OF_RAGE, 5
|
||||
treemon_map BLACKTHORN_CITY, 0
|
||||
treemon_map SILVER_CAVE_OUTSIDE, 0
|
||||
treemon_map ILEX_FOREST, 6
|
||||
db -1
|
||||
; b82c5
|
||||
|
||||
RockMonMaps: ; b82c5
|
||||
treemon_map CIANWOOD_CITY, 7
|
||||
treemon_map ROUTE_40, 7
|
||||
treemon_map DARK_CAVE_VIOLET_ENTRANCE, 7
|
||||
treemon_map SLOWPOKE_WELL_B1F, 7
|
||||
db -1
|
||||
; b82d2
|
||||
|
||||
GetTreeMons: ; b82d2
|
||||
; Return the address of TreeMon table a in hl.
|
||||
; Return nc if table a doesn't exist.
|
||||
|
||||
cp 8
|
||||
jr nc, .quit
|
||||
|
||||
and a
|
||||
jr z, .quit
|
||||
|
||||
ld e, a
|
||||
ld d, 0
|
||||
ld hl, TreeMons
|
||||
rept 2
|
||||
add hl, de
|
||||
endr
|
||||
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
|
||||
scf
|
||||
ret
|
||||
|
||||
.quit
|
||||
xor a
|
||||
ret
|
||||
; b82e8
|
||||
|
||||
TreeMons: ; b82e8
|
||||
dw TreeMons1
|
||||
dw TreeMons1
|
||||
dw TreeMons2
|
||||
dw TreeMons3
|
||||
dw TreeMons4
|
||||
dw TreeMons5
|
||||
dw TreeMons6
|
||||
dw RockMons
|
||||
dw TreeMons1
|
||||
|
||||
; Two tables each (normal, rare).
|
||||
; Structure:
|
||||
; db %, species, level
|
||||
|
||||
TreeMons1: ; b82fa
|
||||
db 50, SPEAROW, 10
|
||||
db 15, SPEAROW, 10
|
||||
db 15, SPEAROW, 10
|
||||
db 10, AIPOM, 10
|
||||
db 5, AIPOM, 10
|
||||
db 5, AIPOM, 10
|
||||
db -1
|
||||
|
||||
db 50, SPEAROW, 10
|
||||
db 15, HERACROSS, 10
|
||||
db 15, HERACROSS, 10
|
||||
db 10, AIPOM, 10
|
||||
db 5, AIPOM, 10
|
||||
db 5, AIPOM, 10
|
||||
db -1
|
||||
|
||||
TreeMons2: ; b8320
|
||||
db 50, SPEAROW, 10
|
||||
db 15, EKANS, 10
|
||||
db 15, SPEAROW, 10
|
||||
db 10, AIPOM, 10
|
||||
db 5, AIPOM, 10
|
||||
db 5, AIPOM, 10
|
||||
db -1
|
||||
|
||||
db 50, SPEAROW, 10
|
||||
db 15, HERACROSS, 10
|
||||
db 15, HERACROSS, 10
|
||||
db 10, AIPOM, 10
|
||||
db 5, AIPOM, 10
|
||||
db 5, AIPOM, 10
|
||||
db -1
|
||||
|
||||
TreeMons3: ; b8346
|
||||
db 50, HOOTHOOT, 10
|
||||
db 15, SPINARAK, 10
|
||||
db 15, LEDYBA, 10
|
||||
db 10, EXEGGCUTE, 10
|
||||
db 5, EXEGGCUTE, 10
|
||||
db 5, EXEGGCUTE, 10
|
||||
db -1
|
||||
|
||||
db 50, HOOTHOOT, 10
|
||||
db 15, PINECO, 10
|
||||
db 15, PINECO, 10
|
||||
db 10, EXEGGCUTE, 10
|
||||
db 5, EXEGGCUTE, 10
|
||||
db 5, EXEGGCUTE, 10
|
||||
db -1
|
||||
|
||||
TreeMons4: ; b836c
|
||||
db 50, HOOTHOOT, 10
|
||||
db 15, EKANS, 10
|
||||
db 15, HOOTHOOT, 10
|
||||
db 10, EXEGGCUTE, 10
|
||||
db 5, EXEGGCUTE, 10
|
||||
db 5, EXEGGCUTE, 10
|
||||
db -1
|
||||
|
||||
db 50, HOOTHOOT, 10
|
||||
db 15, PINECO, 10
|
||||
db 15, PINECO, 10
|
||||
db 10, EXEGGCUTE, 10
|
||||
db 5, EXEGGCUTE, 10
|
||||
db 5, EXEGGCUTE, 10
|
||||
db -1
|
||||
|
||||
TreeMons5: ; b8392
|
||||
db 50, HOOTHOOT, 10
|
||||
db 15, VENONAT, 10
|
||||
db 15, HOOTHOOT, 10
|
||||
db 10, EXEGGCUTE, 10
|
||||
db 5, EXEGGCUTE, 10
|
||||
db 5, EXEGGCUTE, 10
|
||||
db -1
|
||||
|
||||
db 50, HOOTHOOT, 10
|
||||
db 15, PINECO, 10
|
||||
db 15, PINECO, 10
|
||||
db 10, EXEGGCUTE, 10
|
||||
db 5, EXEGGCUTE, 10
|
||||
db 5, EXEGGCUTE, 10
|
||||
db -1
|
||||
|
||||
TreeMons6: ; b83b8
|
||||
db 50, HOOTHOOT, 10
|
||||
db 15, PINECO, 10
|
||||
db 15, PINECO, 10
|
||||
db 10, NOCTOWL, 10
|
||||
db 5, BUTTERFREE, 10
|
||||
db 5, BEEDRILL, 10
|
||||
db -1
|
||||
|
||||
db 50, HOOTHOOT, 10
|
||||
db 15, CATERPIE, 10
|
||||
db 15, WEEDLE, 10
|
||||
db 10, HOOTHOOT, 10
|
||||
db 5, METAPOD, 10
|
||||
db 5, KAKUNA, 10
|
||||
db -1
|
||||
|
||||
RockMons: ; b83de
|
||||
db 90, KRABBY, 15
|
||||
db 10, SHUCKLE, 15
|
||||
db -1
|
||||
; b83e5
|
||||
|
||||
GetTreeMon: ; b83e5
|
||||
push hl
|
||||
call GetTreeScore
|
||||
pop hl
|
||||
and a
|
||||
jr z, .bad
|
||||
cp 1
|
||||
jr z, .good
|
||||
cp 2
|
||||
jr z, .rare
|
||||
ret
|
||||
|
||||
.bad
|
||||
ld a, 10
|
||||
call RandomRange
|
||||
and a
|
||||
jr nz, NoTreeMon
|
||||
jr SelectTreeMon
|
||||
|
||||
.good
|
||||
ld a, 10
|
||||
call RandomRange
|
||||
cp 5
|
||||
jr nc, NoTreeMon
|
||||
jr SelectTreeMon
|
||||
|
||||
.rare
|
||||
ld a, 10
|
||||
call RandomRange
|
||||
cp 8
|
||||
jr nc, NoTreeMon
|
||||
jr .skip
|
||||
.skip
|
||||
ld a, [hli]
|
||||
cp -1
|
||||
jr nz, .skip
|
||||
call SelectTreeMon
|
||||
ret
|
||||
; b841f
|
||||
|
||||
SelectTreeMon: ; b841f
|
||||
; Read a TreeMons table and pick one monster at random.
|
||||
|
||||
ld a, 100
|
||||
call RandomRange
|
||||
.loop
|
||||
sub [hl]
|
||||
jr c, .ok
|
||||
rept 3
|
||||
inc hl
|
||||
endr
|
||||
jr .loop
|
||||
|
||||
.ok
|
||||
ld a, [hli]
|
||||
cp $ff
|
||||
jr z, NoTreeMon
|
||||
|
||||
ld a, [hli]
|
||||
ld [TempWildMonSpecies], a
|
||||
ld a, [hl]
|
||||
ld [CurPartyLevel], a
|
||||
scf
|
||||
ret
|
||||
|
||||
NoTreeMon: ; b843b
|
||||
xor a
|
||||
ld [TempWildMonSpecies], a
|
||||
ld [CurPartyLevel], a
|
||||
ret
|
||||
; b8443
|
||||
|
||||
GetTreeScore: ; b8443
|
||||
call .CoordScore
|
||||
ld [Buffer1], a
|
||||
call .OTIDScore
|
||||
ld [Buffer2], a
|
||||
ld c, a
|
||||
ld a, [Buffer1]
|
||||
sub c
|
||||
jr z, .rare
|
||||
jr nc, .ok
|
||||
add 10
|
||||
.ok
|
||||
cp 5
|
||||
jr c, .good
|
||||
|
||||
.bad
|
||||
xor a
|
||||
ret
|
||||
|
||||
.good
|
||||
ld a, 1
|
||||
ret
|
||||
|
||||
.rare
|
||||
ld a, 2
|
||||
ret
|
||||
; b8466
|
||||
|
||||
.CoordScore: ; b8466
|
||||
call GetFacingTileCoord
|
||||
ld hl, 0
|
||||
ld c, e
|
||||
ld b, 0
|
||||
ld a, d
|
||||
|
||||
and a
|
||||
jr z, .next
|
||||
.loop
|
||||
add hl, bc
|
||||
dec a
|
||||
jr nz, .loop
|
||||
.next
|
||||
|
||||
add hl, bc
|
||||
ld c, d
|
||||
add hl, bc
|
||||
|
||||
ld a, h
|
||||
ld [hDividend], a
|
||||
ld a, l
|
||||
ld [hDividend + 1], a
|
||||
ld a, 5
|
||||
ld [hDivisor], a
|
||||
ld b, 2
|
||||
call Divide
|
||||
|
||||
ld a, [hQuotient + 1]
|
||||
ld [hDividend], a
|
||||
ld a, [hQuotient + 2]
|
||||
ld [hDividend + 1], a
|
||||
ld a, 10
|
||||
ld [hDivisor], a
|
||||
ld b, 2
|
||||
call Divide
|
||||
|
||||
ld a, [hQuotient + 3]
|
||||
ret
|
||||
; b849d
|
||||
|
||||
.OTIDScore: ; b849d
|
||||
ld a, [PlayerID]
|
||||
ld [hDividend], a
|
||||
ld a, [PlayerID + 1]
|
||||
ld [hDividend + 1], a
|
||||
ld a, 10
|
||||
ld [hDivisor], a
|
||||
ld b, 2
|
||||
call Divide
|
||||
ld a, [hQuotient + 3]
|
||||
ret
|
||||
; b84b3
|
||||
|
||||
LoadFishingGFX: ; b84b3
|
||||
ld a, [rVBK]
|
||||
push af
|
||||
ld a, $1
|
||||
ld [rVBK], a
|
||||
|
||||
ld de, FishingGFX
|
||||
ld a, [PlayerGender]
|
||||
bit 0, a
|
||||
jr z, .got_gender
|
||||
ld de, KrisFishingGFX
|
||||
.got_gender
|
||||
|
||||
ld hl, VTiles0 tile $02
|
||||
call .LoadGFX
|
||||
ld hl, VTiles0 tile $06
|
||||
call .LoadGFX
|
||||
ld hl, VTiles0 tile $0a
|
||||
call .LoadGFX
|
||||
ld hl, VTiles1 tile $7c
|
||||
call .LoadGFX
|
||||
|
||||
pop af
|
||||
ld [rVBK], a
|
||||
ret
|
||||
; b84e3
|
||||
|
||||
.LoadGFX: ; b84e3
|
||||
lb bc, BANK(FishingGFX), 2
|
||||
push de
|
||||
call Get2bpp
|
||||
pop de
|
||||
ld hl, 2 tiles
|
||||
add hl, de
|
||||
ld d, h
|
||||
ld e, l
|
||||
ret
|
||||
; b84f2
|
||||
|
||||
FishingGFX: ; b84f2
|
||||
INCBIN "gfx/overworld/chris_fish.2bpp"
|
||||
; b8582
|
||||
|
||||
KrisFishingGFX: ; b8582
|
||||
INCBIN "gfx/overworld/kris_fish.2bpp"
|
||||
; b8612
|
@@ -372,7 +372,7 @@ INCBIN "gfx/evo/bubble_large.2bpp"
|
||||
INCBIN "gfx/evo/bubble.2bpp"
|
||||
|
||||
Function4e881: ; 4e881
|
||||
call WhiteBGMap
|
||||
call ClearBGPalettes
|
||||
call ClearTileMap
|
||||
call ClearSprites
|
||||
call DisableLCD
|
||||
@@ -405,7 +405,7 @@ UnknownText_0x4e8bd: ; 0x4e8bd
|
||||
|
||||
|
||||
Function4e8c2: ; 4e8c2
|
||||
call WhiteBGMap
|
||||
call ClearBGPalettes
|
||||
call ClearTileMap
|
||||
call ClearSprites
|
||||
call DisableLCD
|
||||
|
916
engine/flypoints.asm
Executable file
916
engine/flypoints.asm
Executable file
@@ -0,0 +1,916 @@
|
||||
_FlyMap: ; 91af3
|
||||
call ClearBGPalettes
|
||||
call ClearTileMap
|
||||
call ClearSprites
|
||||
ld hl, hInMenu
|
||||
ld a, [hl]
|
||||
push af
|
||||
ld [hl], $1
|
||||
xor a
|
||||
ld [hBGMapMode], a
|
||||
callba Function8cf53
|
||||
call Function91ff2
|
||||
ld de, GFX_922e1
|
||||
ld hl, VTiles2 tile $30
|
||||
lb bc, BANK(GFX_922e1), 6
|
||||
call Request1bpp
|
||||
call FlyMap
|
||||
call Function91c8f
|
||||
ld b, $2
|
||||
call GetSGBLayout
|
||||
call SetPalettes
|
||||
.loop
|
||||
call JoyTextDelay
|
||||
ld hl, hJoyPressed
|
||||
ld a, [hl]
|
||||
and B_BUTTON
|
||||
jr nz, .pressedB
|
||||
ld a, [hl]
|
||||
and A_BUTTON
|
||||
jr nz, .pressedA
|
||||
call FlyMapScroll
|
||||
call GetMapCursorCoordinates
|
||||
callba Function8cf69
|
||||
call DelayFrame
|
||||
jr .loop
|
||||
|
||||
.pressedB
|
||||
ld a, -1
|
||||
jr .exit
|
||||
|
||||
.pressedA
|
||||
ld a, [wd002]
|
||||
ld l, a
|
||||
ld h, 0
|
||||
add hl, hl
|
||||
ld de, Flypoints + 1
|
||||
add hl, de
|
||||
ld a, [hl]
|
||||
|
||||
.exit
|
||||
ld [wd002], a
|
||||
pop af
|
||||
ld [hInMenu], a
|
||||
call ClearBGPalettes
|
||||
ld a, $90
|
||||
ld [hWY], a
|
||||
xor a
|
||||
ld [hBGMapAddress], a
|
||||
ld a, VBGMap0 / $100
|
||||
ld [hBGMapAddress + 1], a
|
||||
ld a, [wd002]
|
||||
ld e, a
|
||||
ret
|
||||
; 91b73
|
||||
|
||||
FlyMapScroll: ; 91b73
|
||||
ld a, [StartFlypoint]
|
||||
ld e, a
|
||||
ld a, [EndFlypoint]
|
||||
ld d, a
|
||||
ld hl, hJoyLast
|
||||
ld a, [hl]
|
||||
and D_UP
|
||||
jr nz, .ScrollNext
|
||||
ld a, [hl]
|
||||
and D_DOWN
|
||||
jr nz, .ScrollPrev
|
||||
ret
|
||||
|
||||
.ScrollNext
|
||||
ld hl, wd002
|
||||
ld a, [hl]
|
||||
cp d
|
||||
jr nz, .NotAtEndYet
|
||||
ld a, e
|
||||
dec a
|
||||
ld [hl], a
|
||||
|
||||
.NotAtEndYet
|
||||
inc [hl]
|
||||
call CheckIfVisitedFlypoint
|
||||
jr z, .ScrollNext
|
||||
jr .Finally
|
||||
|
||||
.ScrollPrev
|
||||
ld hl, wd002
|
||||
ld a, [hl]
|
||||
cp e
|
||||
jr nz, .NotAtStartYet
|
||||
ld a, d
|
||||
inc a
|
||||
ld [hl], a
|
||||
|
||||
.NotAtStartYet
|
||||
dec [hl]
|
||||
call CheckIfVisitedFlypoint
|
||||
jr z, .ScrollPrev
|
||||
|
||||
.Finally
|
||||
call TownMapBubble
|
||||
call WaitBGMap
|
||||
xor a
|
||||
ld [hBGMapMode], a
|
||||
ret
|
||||
; 91bb5
|
||||
|
||||
TownMapBubble: ; 91bb5
|
||||
; Draw the bubble containing the location text in the town map HUD
|
||||
|
||||
; Top-left corner
|
||||
hlcoord 1, 0
|
||||
ld a, $30
|
||||
ld [hli], a
|
||||
|
||||
; Top row
|
||||
ld bc, 16
|
||||
ld a, " "
|
||||
call ByteFill
|
||||
|
||||
; Top-right corner
|
||||
ld a, $31
|
||||
ld [hl], a
|
||||
hlcoord 1, 1
|
||||
|
||||
|
||||
; Middle row
|
||||
ld bc, 18
|
||||
ld a, " "
|
||||
call ByteFill
|
||||
|
||||
|
||||
; Bottom-left corner
|
||||
hlcoord 1, 2
|
||||
ld a, $32
|
||||
ld [hli], a
|
||||
|
||||
; Bottom row
|
||||
ld bc, 16
|
||||
ld a, " "
|
||||
call ByteFill
|
||||
|
||||
; Bottom-right corner
|
||||
ld a, $33
|
||||
ld [hl], a
|
||||
|
||||
|
||||
; Print "Where?"
|
||||
hlcoord 2, 0
|
||||
ld de, .Where
|
||||
call PlaceString
|
||||
|
||||
; Print the name of the default flypoint
|
||||
call .Name
|
||||
|
||||
; Up/down arrows
|
||||
hlcoord 18, 1
|
||||
ld [hl], $34
|
||||
ret
|
||||
|
||||
.Where
|
||||
db "Where?@"
|
||||
|
||||
.Name
|
||||
; We need the map location of the default flypoint
|
||||
ld a, [wd002]
|
||||
ld l, a
|
||||
ld h, 0
|
||||
add hl, hl ; two bytes per flypoint
|
||||
ld de, Flypoints
|
||||
add hl, de
|
||||
ld e, [hl]
|
||||
|
||||
callba GetLandmarkName
|
||||
|
||||
hlcoord 2, 1
|
||||
ld de, StringBuffer1
|
||||
call PlaceString
|
||||
ret
|
||||
; 91c17
|
||||
|
||||
GetMapCursorCoordinates: ; 91c17
|
||||
ld a, [wd002]
|
||||
ld l, a
|
||||
ld h, $0
|
||||
add hl, hl
|
||||
ld de, Flypoints
|
||||
add hl, de
|
||||
ld e, [hl]
|
||||
callba GetLandmarkCoords
|
||||
ld a, [wd003]
|
||||
ld c, a
|
||||
ld a, [wd004]
|
||||
ld b, a
|
||||
ld hl, $4
|
||||
add hl, bc
|
||||
ld [hl], e
|
||||
ld hl, $5
|
||||
add hl, bc
|
||||
ld [hl], d
|
||||
ret
|
||||
; 91c3c
|
||||
|
||||
CheckIfVisitedFlypoint: ; 91c3c
|
||||
; Check if the flypoint loaded in [hl] has been visited yet.
|
||||
push bc
|
||||
push de
|
||||
push hl
|
||||
ld l, [hl]
|
||||
ld h, 0
|
||||
add hl, hl
|
||||
ld de, Flypoints + 1
|
||||
add hl, de
|
||||
ld c, [hl]
|
||||
call HasVisitedSpawn
|
||||
pop hl
|
||||
pop de
|
||||
pop bc
|
||||
and a
|
||||
ret
|
||||
; 91c50
|
||||
|
||||
HasVisitedSpawn: ; 91c50
|
||||
; Check if spawn point c has been visited.
|
||||
ld hl, VisitedSpawns
|
||||
ld b, CHECK_FLAG
|
||||
ld d, 0
|
||||
predef FlagPredef
|
||||
ld a, c
|
||||
ret
|
||||
; 91c5e
|
||||
|
||||
Flypoints: ; 91c5e
|
||||
; landmark, spawn point
|
||||
|
||||
const_def
|
||||
|
||||
flypoint: MACRO
|
||||
; \1\@FLY EQUS "FLY_\1"
|
||||
; \1\@SPAWN EQUS "SPAWN_\1"
|
||||
; const \1\@FLY
|
||||
; db \2, \1\@SPAWN
|
||||
const FLY_\1
|
||||
db \2, SPAWN_\1
|
||||
ENDM
|
||||
|
||||
; Johto
|
||||
flypoint NEW_BARK, NEW_BARK_TOWN
|
||||
flypoint CHERRYGROVE, CHERRYGROVE_CITY
|
||||
flypoint VIOLET, VIOLET_CITY
|
||||
flypoint AZALEA, AZALEA_TOWN
|
||||
flypoint GOLDENROD, GOLDENROD_CITY
|
||||
flypoint ECRUTEAK, ECRUTEAK_CITY
|
||||
flypoint OLIVINE, OLIVINE_CITY
|
||||
flypoint CIANWOOD, CIANWOOD_CITY
|
||||
flypoint MAHOGANY, MAHOGANY_TOWN
|
||||
flypoint LAKE, LAKE_OF_RAGE
|
||||
flypoint BLACKTHORN, BLACKTHORN_CITY
|
||||
flypoint MT_SILVER, SILVER_CAVE
|
||||
|
||||
; Kanto
|
||||
KANTO_FLYPOINT EQU const_value
|
||||
|
||||
flypoint PALLET, PALLET_TOWN
|
||||
flypoint VIRIDIAN, VIRIDIAN_CITY
|
||||
flypoint PEWTER, PEWTER_CITY
|
||||
flypoint CERULEAN, CERULEAN_CITY
|
||||
flypoint VERMILION, VERMILION_CITY
|
||||
flypoint ROCK_TUNNEL, ROCK_TUNNEL
|
||||
flypoint LAVENDER, LAVENDER_TOWN
|
||||
flypoint CELADON, CELADON_CITY
|
||||
flypoint SAFFRON, SAFFRON_CITY
|
||||
flypoint FUCHSIA, FUCHSIA_CITY
|
||||
flypoint CINNABAR, CINNABAR_ISLAND
|
||||
flypoint INDIGO, INDIGO_PLATEAU
|
||||
|
||||
db -1
|
||||
; 91c8f
|
||||
|
||||
Function91c8f: ; 91c8f
|
||||
ret
|
||||
; 91c90
|
||||
|
||||
FlyMap: ; 91c90
|
||||
|
||||
ld a, [MapGroup]
|
||||
ld b, a
|
||||
ld a, [MapNumber]
|
||||
ld c, a
|
||||
call GetWorldMapLocation
|
||||
|
||||
; If we're not in a valid location, i.e. Pokecenter floor 2F,
|
||||
; the backup map information is used
|
||||
|
||||
cp SPECIAL_MAP
|
||||
jr nz, .CheckRegion
|
||||
|
||||
ld a, [BackupMapGroup]
|
||||
ld b, a
|
||||
ld a, [BackupMapNumber]
|
||||
ld c, a
|
||||
call GetWorldMapLocation
|
||||
|
||||
.CheckRegion
|
||||
; The first 46 locations are part of Johto. The rest are in Kanto
|
||||
cp KANTO_LANDMARK
|
||||
jr nc, .KantoFlyMap
|
||||
|
||||
.JohtoFlyMap
|
||||
; Note that .NoKanto should be modified in tandem with this branch
|
||||
|
||||
push af
|
||||
|
||||
; Start from New Bark Town
|
||||
ld a, FLY_NEW_BARK
|
||||
ld [wd002], a
|
||||
|
||||
; Flypoints begin at New Bark Town...
|
||||
ld [StartFlypoint], a
|
||||
; ..and end at Silver Cave
|
||||
ld a, FLY_MT_SILVER
|
||||
ld [EndFlypoint], a
|
||||
|
||||
; Fill out the map
|
||||
call FillJohtoMap
|
||||
call .MapHud
|
||||
pop af
|
||||
call TownMapPlayerIcon
|
||||
ret
|
||||
|
||||
.KantoFlyMap
|
||||
|
||||
; The event that there are no flypoints enabled in a map is not
|
||||
; accounted for. As a result, if you attempt to select a flypoint
|
||||
; when there are none enabled, the game will crash. Additionally,
|
||||
; the flypoint selection has a default starting point that
|
||||
; can be flown to even if none are enabled
|
||||
|
||||
; To prevent both of these things from happening when the player
|
||||
; enters Kanto, fly access is restricted until Indigo Plateau is
|
||||
; visited and its flypoint enabled
|
||||
|
||||
push af
|
||||
ld c, SPAWN_INDIGO
|
||||
call HasVisitedSpawn
|
||||
and a
|
||||
jr z, .NoKanto
|
||||
|
||||
; Kanto's map is only loaded if we've visited Indigo Plateau
|
||||
|
||||
; Flypoints begin at Pallet Town...
|
||||
ld a, FLY_PALLET
|
||||
ld [StartFlypoint], a
|
||||
; ...and end at Indigo Plateau
|
||||
ld a, FLY_INDIGO
|
||||
ld [EndFlypoint], a
|
||||
|
||||
; Because Indigo Plateau is the first flypoint the player
|
||||
; visits, it's made the default flypoint
|
||||
ld [wd002], a
|
||||
|
||||
; Fill out the map
|
||||
call FillKantoMap
|
||||
call .MapHud
|
||||
pop af
|
||||
call TownMapPlayerIcon
|
||||
ret
|
||||
|
||||
.NoKanto
|
||||
; If Indigo Plateau hasn't been visited, we use Johto's map instead
|
||||
|
||||
; Start from New Bark Town
|
||||
ld a, FLY_NEW_BARK
|
||||
ld [wd002], a
|
||||
|
||||
; Flypoints begin at New Bark Town...
|
||||
ld [StartFlypoint], a
|
||||
; ..and end at Silver Cave
|
||||
ld a, FLY_MT_SILVER
|
||||
ld [EndFlypoint], a
|
||||
|
||||
call FillJohtoMap
|
||||
|
||||
pop af
|
||||
|
||||
.MapHud
|
||||
call TownMapBubble
|
||||
call TownMapPals
|
||||
|
||||
ld hl, VBGMap0 ; BG Map 0
|
||||
call TownMapBGUpdate
|
||||
|
||||
call TownMapMon
|
||||
ld a, c
|
||||
ld [wd003], a
|
||||
ld a, b
|
||||
ld [wd004], a
|
||||
ret
|
||||
; 91d11
|
||||
|
||||
Function91d11: ; 91d11
|
||||
ld a, [wd002]
|
||||
push af
|
||||
ld a, [wd003]
|
||||
push af
|
||||
ld a, e
|
||||
ld [wd002], a
|
||||
call ClearSprites
|
||||
xor a
|
||||
ld [hBGMapMode], a
|
||||
ld a, $1
|
||||
ld [hInMenu], a
|
||||
ld de, GFX_922d1
|
||||
ld hl, VTiles0 tile $7f
|
||||
lb bc, BANK(GFX_922d1), 1
|
||||
call Request2bpp ; actually 1bpp
|
||||
call Function91ed0
|
||||
ld hl, VTiles0 tile $78
|
||||
ld c, $4
|
||||
call Request2bpp
|
||||
call Function91ff2
|
||||
call FillKantoMap
|
||||
call Function91de9
|
||||
call TownMapPals
|
||||
ld hl, VBGMap1
|
||||
call TownMapBGUpdate
|
||||
call FillJohtoMap
|
||||
call Function91de9
|
||||
call TownMapPals
|
||||
ld hl, VBGMap0
|
||||
call TownMapBGUpdate
|
||||
ld b, $2
|
||||
call GetSGBLayout
|
||||
call SetPalettes
|
||||
xor a
|
||||
ld [hBGMapMode], a
|
||||
xor a
|
||||
call Function91e1e
|
||||
.asm_91d6e
|
||||
call JoyTextDelay
|
||||
ld hl, hJoyPressed
|
||||
ld a, [hl]
|
||||
and A_BUTTON | B_BUTTON
|
||||
jr nz, .asm_91d8f
|
||||
ld a, [hJoypadDown]
|
||||
and SELECT
|
||||
jr nz, .asm_91d87
|
||||
call Function91d9b
|
||||
call Function91dcd
|
||||
jr .asm_91d8a
|
||||
|
||||
.asm_91d87
|
||||
call Function91e5a
|
||||
|
||||
.asm_91d8a
|
||||
call DelayFrame
|
||||
jr .asm_91d6e
|
||||
|
||||
.asm_91d8f
|
||||
call ClearSprites
|
||||
pop af
|
||||
ld [wd003], a
|
||||
pop af
|
||||
ld [wd002], a
|
||||
ret
|
||||
; 91d9b
|
||||
|
||||
Function91d9b: ; 91d9b
|
||||
ld a, [hl]
|
||||
and $20
|
||||
jr nz, .asm_91da6
|
||||
ld a, [hl]
|
||||
and $10
|
||||
jr nz, .asm_91db7
|
||||
ret
|
||||
|
||||
.asm_91da6
|
||||
ld a, [hWY]
|
||||
cp $90
|
||||
ret z
|
||||
call ClearSprites
|
||||
ld a, $90
|
||||
ld [hWY], a
|
||||
xor a
|
||||
call Function91e1e
|
||||
ret
|
||||
|
||||
.asm_91db7
|
||||
ld a, [StatusFlags]
|
||||
bit 6, a
|
||||
ret z
|
||||
ld a, [hWY]
|
||||
and a
|
||||
ret z
|
||||
call ClearSprites
|
||||
xor a
|
||||
ld [hWY], a
|
||||
ld a, $1
|
||||
call Function91e1e
|
||||
ret
|
||||
; 91dcd
|
||||
|
||||
Function91dcd: ; 91dcd
|
||||
ld a, [hVBlankCounter]
|
||||
ld e, a
|
||||
and $f
|
||||
ret nz
|
||||
ld a, e
|
||||
and $10
|
||||
jr nz, .asm_91ddc
|
||||
call ClearSprites
|
||||
ret
|
||||
|
||||
.asm_91ddc
|
||||
hlcoord 0, 0
|
||||
ld de, Sprites
|
||||
ld bc, $a0
|
||||
call CopyBytes
|
||||
ret
|
||||
; 91de9
|
||||
|
||||
Function91de9: ; 91de9
|
||||
hlcoord 0, 0
|
||||
ld bc, SCREEN_WIDTH
|
||||
ld a, $7f
|
||||
call ByteFill
|
||||
hlcoord 0, 1
|
||||
ld a, $6
|
||||
ld [hli], a
|
||||
ld bc, SCREEN_HEIGHT
|
||||
ld a, $7
|
||||
call ByteFill
|
||||
ld [hl], $17
|
||||
call GetPokemonName
|
||||
hlcoord 2, 0
|
||||
call PlaceString
|
||||
ld h, b
|
||||
ld l, c
|
||||
ld de, String_91e16
|
||||
call PlaceString
|
||||
ret
|
||||
; 91e16
|
||||
|
||||
String_91e16:
|
||||
db "'S NEST@"
|
||||
; 91e1e
|
||||
|
||||
Function91e1e: ; 91e1e
|
||||
ld [wd003], a
|
||||
ld e, a
|
||||
callba Function2a01f
|
||||
decoord 0, 0
|
||||
ld hl, Sprites
|
||||
.asm_91e2e
|
||||
ld a, [de]
|
||||
and a
|
||||
jr z, .asm_91e4d
|
||||
push de
|
||||
ld e, a
|
||||
push hl
|
||||
callba GetLandmarkCoords
|
||||
pop hl
|
||||
ld a, d
|
||||
sub $4
|
||||
ld [hli], a
|
||||
ld a, e
|
||||
sub $4
|
||||
ld [hli], a
|
||||
ld a, $7f
|
||||
ld [hli], a
|
||||
xor a
|
||||
ld [hli], a
|
||||
pop de
|
||||
inc de
|
||||
jr .asm_91e2e
|
||||
|
||||
.asm_91e4d
|
||||
ld hl, Sprites
|
||||
decoord 0, 0
|
||||
ld bc, $a0
|
||||
call CopyBytes
|
||||
ret
|
||||
; 91e5a
|
||||
|
||||
Function91e5a: ; 91e5a
|
||||
call Function91ea9
|
||||
ret c
|
||||
|
||||
ld a, [wd002]
|
||||
ld e, a
|
||||
callba GetLandmarkCoords
|
||||
ld c, e
|
||||
ld b, d
|
||||
ld de, Unknown_91e9c
|
||||
ld hl, Sprites
|
||||
.asm_91e70
|
||||
ld a, [de]
|
||||
cp $80
|
||||
jr z, .asm_91e91
|
||||
|
||||
add b
|
||||
ld [hli], a
|
||||
inc de
|
||||
|
||||
ld a, [de]
|
||||
add c
|
||||
ld [hli], a
|
||||
inc de
|
||||
|
||||
ld a, [de]
|
||||
add $78
|
||||
ld [hli], a
|
||||
inc de
|
||||
|
||||
push bc
|
||||
ld c, 0
|
||||
ld a, [PlayerGender]
|
||||
bit 0, a
|
||||
jr z, .asm_91e8c
|
||||
inc c
|
||||
.asm_91e8c
|
||||
ld a, c
|
||||
ld [hli], a
|
||||
pop bc
|
||||
|
||||
jr .asm_91e70
|
||||
|
||||
.asm_91e91
|
||||
ld hl, Sprites + $10
|
||||
ld bc, SpritesEnd - (Sprites + $10)
|
||||
xor a
|
||||
call ByteFill
|
||||
ret
|
||||
; 91e9c
|
||||
|
||||
Unknown_91e9c: ; 91e9c
|
||||
db -8, -8, 0
|
||||
db -8, 0, 1
|
||||
db 0, -8, 2
|
||||
db 0, 0, 3
|
||||
db $80 ; terminator
|
||||
; 91ea9
|
||||
|
||||
Function91ea9: ; 91ea9
|
||||
ld a, [wd002]
|
||||
cp FAST_SHIP
|
||||
jr z, .johto
|
||||
cp KANTO_LANDMARK
|
||||
jr c, .johto
|
||||
|
||||
.kanto
|
||||
ld a, [wd003]
|
||||
and a
|
||||
jr z, .clear
|
||||
jr .ok
|
||||
|
||||
.johto
|
||||
ld a, [wd003]
|
||||
and a
|
||||
jr nz, .clear
|
||||
|
||||
.ok
|
||||
and a
|
||||
ret
|
||||
|
||||
.clear
|
||||
ld hl, Sprites
|
||||
ld bc, SpritesEnd - Sprites
|
||||
xor a
|
||||
call ByteFill
|
||||
scf
|
||||
ret
|
||||
; 91ed0
|
||||
|
||||
Function91ed0: ; 91ed0
|
||||
ld a, [wd002]
|
||||
cp FAST_SHIP
|
||||
jr z, .asm_91ede
|
||||
callba GetPlayerIcon
|
||||
ret
|
||||
|
||||
.asm_91ede
|
||||
ld de, FastShipGFX
|
||||
ld b, BANK(FastShipGFX)
|
||||
ret
|
||||
; 91ee4
|
||||
|
||||
TownMapBGUpdate: ; 91ee4
|
||||
; Update BG Map tiles and attributes
|
||||
|
||||
; BG Map address
|
||||
ld a, l
|
||||
ld [hBGMapAddress], a
|
||||
ld a, h
|
||||
ld [hBGMapAddress + 1], a
|
||||
|
||||
; Only update palettes on CGB
|
||||
ld a, [hCGB]
|
||||
and a
|
||||
jr z, .tiles
|
||||
|
||||
; BG Map mode 2 (palettes)
|
||||
ld a, 2
|
||||
ld [hBGMapMode], a
|
||||
|
||||
; The BG Map is updated in thirds, so we wait
|
||||
; 3 frames to update the whole screen's palettes.
|
||||
ld c, 3
|
||||
call DelayFrames
|
||||
|
||||
.tiles
|
||||
; Update BG Map tiles
|
||||
call WaitBGMap
|
||||
|
||||
; Turn off BG Map update
|
||||
xor a
|
||||
ld [hBGMapMode], a
|
||||
ret
|
||||
; 91eff
|
||||
|
||||
FillJohtoMap: ; 91eff
|
||||
ld de, JohtoMap
|
||||
jr FillTownMap
|
||||
|
||||
FillKantoMap: ; 91f04
|
||||
ld de, KantoMap
|
||||
|
||||
FillTownMap: ; 91f07
|
||||
hlcoord 0, 0
|
||||
.loop
|
||||
ld a, [de]
|
||||
cp $ff
|
||||
ret z
|
||||
ld a, [de]
|
||||
ld [hli], a
|
||||
inc de
|
||||
jr .loop
|
||||
; 91f13
|
||||
|
||||
TownMapPals: ; 91f13
|
||||
; Assign palettes based on tile ids
|
||||
|
||||
hlcoord 0, 0
|
||||
decoord 0, 0, AttrMap
|
||||
ld bc, 360
|
||||
.loop
|
||||
; Current tile
|
||||
ld a, [hli]
|
||||
push hl
|
||||
|
||||
; HP/borders use palette 0
|
||||
cp $60
|
||||
jr nc, .pal0
|
||||
|
||||
; The palette data is condensed to nybbles,
|
||||
; least-significant first.
|
||||
ld hl, TownMapPalMap
|
||||
srl a
|
||||
jr c, .odd
|
||||
|
||||
; Even-numbered tile ids take the bottom nybble...
|
||||
add l
|
||||
ld l, a
|
||||
ld a, h
|
||||
adc 0
|
||||
ld h, a
|
||||
ld a, [hl]
|
||||
and %111
|
||||
jr .update
|
||||
|
||||
.odd
|
||||
; ...and odd ids take the top.
|
||||
add l
|
||||
ld l, a
|
||||
ld a, h
|
||||
adc 0
|
||||
ld h, a
|
||||
ld a, [hl]
|
||||
swap a
|
||||
and %111
|
||||
jr .update
|
||||
|
||||
.pal0
|
||||
xor a
|
||||
|
||||
.update
|
||||
pop hl
|
||||
ld [de], a
|
||||
inc de
|
||||
dec bc
|
||||
ld a, b
|
||||
or c
|
||||
jr nz, .loop
|
||||
ret
|
||||
|
||||
TownMapPalMap:
|
||||
db $11, $21, $22, $00, $11, $13, $54, $54, $11, $21, $22, $00
|
||||
db $11, $10, $01, $00, $11, $21, $22, $00, $00, $00, $00, $00
|
||||
db $00, $00, $44, $04, $00, $00, $00, $00, $33, $33, $33, $33
|
||||
db $33, $33, $33, $03, $33, $33, $33, $33, $00, $00, $00, $00
|
||||
; 91f7b
|
||||
|
||||
TownMapMon: ; 91f7b
|
||||
; Draw the FlyMon icon at town map location in
|
||||
|
||||
; Get FlyMon species
|
||||
ld a, [CurPartyMon]
|
||||
ld hl, PartySpecies
|
||||
ld e, a
|
||||
ld d, $0
|
||||
add hl, de
|
||||
ld a, [hl]
|
||||
ld [wd265], a
|
||||
|
||||
; Get FlyMon icon
|
||||
ld e, 8 ; starting tile in VRAM
|
||||
callba GetSpeciesIcon
|
||||
|
||||
; Animation/palette
|
||||
ld de, 0
|
||||
ld a, $0
|
||||
call Function3b2a
|
||||
|
||||
ld hl, 3
|
||||
add hl, bc
|
||||
ld [hl], 8
|
||||
ld hl, 2
|
||||
add hl, bc
|
||||
ld [hl], 0
|
||||
ret
|
||||
; 91fa6
|
||||
|
||||
TownMapPlayerIcon: ; 91fa6
|
||||
; Draw the player icon at town map location in a
|
||||
push af
|
||||
|
||||
callba GetPlayerIcon
|
||||
|
||||
; Standing icon
|
||||
ld hl, VTiles0 tile $10
|
||||
ld c, 4 ; # tiles
|
||||
call Request2bpp
|
||||
|
||||
; Walking icon
|
||||
ld hl, $c0
|
||||
add hl, de
|
||||
ld d, h
|
||||
ld e, l
|
||||
ld hl, VTiles0 tile $14
|
||||
ld c, 4 ; # tiles
|
||||
ld a, BANK(ChrisSpriteGFX) ; does nothing
|
||||
call Request2bpp
|
||||
|
||||
; Animation/palette
|
||||
ld de, 0
|
||||
ld b, $0a ; Male
|
||||
ld a, [PlayerGender]
|
||||
bit 0, a
|
||||
jr z, .asm_91fd3
|
||||
ld b, $1e ; Female
|
||||
.asm_91fd3
|
||||
ld a, b
|
||||
call Function3b2a
|
||||
|
||||
ld hl, $3
|
||||
add hl, bc
|
||||
ld [hl], $10
|
||||
|
||||
pop af
|
||||
ld e, a
|
||||
push bc
|
||||
callba GetLandmarkCoords
|
||||
pop bc
|
||||
|
||||
ld hl, 4
|
||||
add hl, bc
|
||||
ld [hl], e
|
||||
ld hl, 5
|
||||
add hl, bc
|
||||
ld [hl], d
|
||||
ret
|
||||
; 0x91ff2
|
||||
|
||||
Function91ff2: ; 91ff2
|
||||
ld hl, TownMapGFX
|
||||
ld de, VTiles2
|
||||
lb bc, BANK(TownMapGFX), $30
|
||||
call DecompressRequest2bpp
|
||||
ret
|
||||
; 91fff
|
||||
|
||||
|
||||
JohtoMap: ; 91fff
|
||||
INCBIN "gfx/misc/johto.bin"
|
||||
; 92168
|
||||
|
||||
KantoMap: ; 92168
|
||||
INCBIN "gfx/misc/kanto.bin"
|
||||
; 922d1
|
||||
|
||||
|
||||
GFX_922d1: ; 922d1
|
||||
INCBIN "gfx/unknown/0922d1.2bpp"
|
||||
GFX_922e1: ; 922e1
|
||||
INCBIN "gfx/unknown/0922e1.2bpp"
|
||||
GFX_92301: ; 92301
|
||||
INCBIN "gfx/unknown/092301.2bpp"
|
@@ -1,6 +1,6 @@
|
||||
LinkCommunications: ; 28000
|
||||
call WhiteBGMap
|
||||
ld c, $50
|
||||
call ClearBGPalettes
|
||||
ld c, 80
|
||||
call DelayFrames
|
||||
call ClearScreen
|
||||
call ClearSprites
|
||||
@@ -8,7 +8,7 @@ LinkCommunications: ; 28000
|
||||
xor a
|
||||
ld [hSCX], a
|
||||
ld [hSCY], a
|
||||
ld c, $50
|
||||
ld c, 80
|
||||
call DelayFrames
|
||||
call ClearScreen
|
||||
call UpdateSprites
|
||||
@@ -431,7 +431,7 @@ Function28177: ; 28177
|
||||
ld de, OTName
|
||||
ld bc, NAME_LENGTH
|
||||
call CopyBytes
|
||||
call Function222a
|
||||
call ReturnToMapFromSubmenu
|
||||
ld a, [wc2d7]
|
||||
push af
|
||||
ld a, $1
|
||||
@@ -509,7 +509,7 @@ UnknownText_0x283ed: ; 0x283ed
|
||||
|
||||
Function283f2: ; 283f2
|
||||
ld a, $1
|
||||
ld [$ffcc], a
|
||||
ld [hFFCC], a
|
||||
.asm_283f6
|
||||
ld a, [hl]
|
||||
ld [hSerialSend], a
|
||||
@@ -521,14 +521,14 @@ Function283f2: ; 283f2
|
||||
.asm_28401
|
||||
dec a
|
||||
jr nz, .asm_28401
|
||||
ld a, [$ffcc]
|
||||
ld a, [hFFCC]
|
||||
and a
|
||||
ld a, b
|
||||
pop bc
|
||||
jr z, .asm_28411
|
||||
dec hl
|
||||
xor a
|
||||
ld [$ffcc], a
|
||||
ld [hFFCC], a
|
||||
jr .asm_283f6
|
||||
|
||||
.asm_28411
|
||||
@@ -2172,7 +2172,7 @@ Function28fa1: ; 28fa1
|
||||
Function28fdb: ; 28fdb
|
||||
xor a
|
||||
ld [wJumptableIndex], a
|
||||
call WhiteBGMap
|
||||
call ClearBGPalettes
|
||||
call ClearSprites
|
||||
call ClearTileMap
|
||||
call DisableLCD
|
||||
@@ -2495,7 +2495,7 @@ Function29220: ; 29220
|
||||
; 29229
|
||||
|
||||
Function29229: ; 29229
|
||||
call WhiteBGMap
|
||||
call ClearBGPalettes
|
||||
call ClearTileMap
|
||||
call ClearSprites
|
||||
call DisableLCD
|
||||
@@ -2623,7 +2623,7 @@ Function292ec: ; 292ec
|
||||
|
||||
Function292f6: ; 292f6
|
||||
push af
|
||||
call WhiteBGMap
|
||||
call ClearBGPalettes
|
||||
call WaitTop
|
||||
ld a, VBGMap1 / $100
|
||||
ld [hBGMapAddress + 1], a
|
||||
@@ -3902,7 +3902,7 @@ Function29dba: ; 29dba
|
||||
|
||||
Function29e0c: ; 29e0c
|
||||
xor a
|
||||
ld [$ffca], a
|
||||
ld [hFFCA], a
|
||||
ld a, [wcf5b]
|
||||
ld h, a
|
||||
ld a, [wcf5c]
|
||||
|
@@ -655,7 +655,7 @@ Function467b: ; 467b
|
||||
ld hl, OBJECT_12
|
||||
add hl, bc
|
||||
ld [hl], a
|
||||
ld hl, OBJECT_27
|
||||
ld hl, OBJECT_MOVEMENT_BYTE_INDEX
|
||||
add hl, bc
|
||||
rept 3
|
||||
ld [hli], a
|
||||
@@ -848,28 +848,28 @@ RestoreDefaultMovement: ; 4769
|
||||
; 4780
|
||||
|
||||
ClearObjectStructField27: ; 4780
|
||||
ld hl, OBJECT_27
|
||||
ld hl, OBJECT_MOVEMENT_BYTE_INDEX
|
||||
add hl, bc
|
||||
ld [hl], 0
|
||||
ret
|
||||
; 4787
|
||||
|
||||
IncrementObjectStructField27: ; 4787
|
||||
ld hl, OBJECT_27
|
||||
ld hl, OBJECT_MOVEMENT_BYTE_INDEX
|
||||
add hl, bc
|
||||
inc [hl]
|
||||
ret
|
||||
; 478d
|
||||
|
||||
DecrementObjectStructField27: ; 478d
|
||||
ld hl, OBJECT_27
|
||||
ld hl, OBJECT_MOVEMENT_BYTE_INDEX
|
||||
add hl, bc
|
||||
dec [hl]
|
||||
ret
|
||||
; 4793
|
||||
|
||||
JumptoObjectStructField27: ; 4793
|
||||
ld hl, OBJECT_27
|
||||
ld hl, OBJECT_MOVEMENT_BYTE_INDEX
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
pop hl
|
||||
@@ -1043,17 +1043,17 @@ Function47dd: ; 47dd
|
||||
|
||||
.ObeyDPad: ; 487c
|
||||
ld hl, Function5000
|
||||
jp Function5041
|
||||
jp HandleMovementData
|
||||
; 4882
|
||||
|
||||
.Movement08: ; 4882
|
||||
ld hl, Function5015
|
||||
jp Function5041
|
||||
jp HandleMovementData
|
||||
; 4888
|
||||
|
||||
.Movement09: ; 4888
|
||||
ld hl, Function5026
|
||||
jp Function5041
|
||||
jp HandleMovementData
|
||||
; 488e
|
||||
|
||||
.Movement0a: ; 488e
|
||||
@@ -1070,7 +1070,7 @@ Function47dd: ; 47dd
|
||||
|
||||
.Movement0d: ; 4897
|
||||
ld hl, Function5000
|
||||
jp Function5041
|
||||
jp HandleMovementData
|
||||
; 489d
|
||||
|
||||
.Movement0e: ; 489d
|
||||
@@ -1079,12 +1079,12 @@ Function47dd: ; 47dd
|
||||
|
||||
.Follow: ; 48a0
|
||||
ld hl, Function54e6
|
||||
jp Function5041
|
||||
jp HandleMovementData
|
||||
; 48a6
|
||||
|
||||
.Script: ; 48a6
|
||||
ld hl, Function500e
|
||||
jp Function5041
|
||||
jp HandleMovementData
|
||||
; 48ac
|
||||
|
||||
.Strength: ; 48ac
|
||||
@@ -1149,12 +1149,15 @@ Function47dd: ; 47dd
|
||||
ld hl, OBJECT_MAP_X
|
||||
add hl, bc
|
||||
ld d, [hl]
|
||||
|
||||
ld hl, OBJECT_MAP_Y
|
||||
add hl, bc
|
||||
ld e, [hl]
|
||||
|
||||
ld hl, OBJECT_32
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
|
||||
push bc
|
||||
call GetObjectStruct
|
||||
ld hl, OBJECT_DIRECTION_WALKING
|
||||
@@ -1162,6 +1165,7 @@ Function47dd: ; 47dd
|
||||
ld a, [hl]
|
||||
cp STANDING
|
||||
jr z, .standing
|
||||
|
||||
ld hl, OBJECT_NEXT_MAP_X
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
@@ -2400,11 +2404,14 @@ UpdateJumpPosition: ; 4fd5
|
||||
; 5000
|
||||
|
||||
Function5000: ; unscripted?
|
||||
; copy [wc3de] to [wc2df]
|
||||
ld a, [wc2de]
|
||||
ld hl, wc2df
|
||||
ld [hl], a
|
||||
ld a, $3e
|
||||
; load [wc2de] with movement_step_sleep_1
|
||||
ld a, movement_step_sleep_1
|
||||
ld [wc2de], a
|
||||
; recover the previous value of [wc2de]
|
||||
ld a, [hl]
|
||||
ret
|
||||
; 500e
|
||||
@@ -2416,7 +2423,7 @@ Function500e: ; scripted
|
||||
; 5015
|
||||
|
||||
Function5015: ; 5015
|
||||
ld hl, OBJECT_27
|
||||
ld hl, OBJECT_MOVEMENT_BYTE_INDEX
|
||||
add hl, bc
|
||||
ld e, [hl]
|
||||
inc [hl]
|
||||
@@ -2431,7 +2438,7 @@ Function5015: ; 5015
|
||||
; 5026
|
||||
|
||||
Function5026: ; 5026
|
||||
ld hl, OBJECT_27
|
||||
ld hl, OBJECT_MOVEMENT_BYTE_INDEX
|
||||
add hl, bc
|
||||
ld e, [hl]
|
||||
inc [hl]
|
||||
@@ -2446,16 +2453,16 @@ Function5026: ; 5026
|
||||
; 5037
|
||||
|
||||
Function5037: ; 5037
|
||||
ld hl, Function503d
|
||||
jp Function5041
|
||||
ld hl, GetMovementPerson
|
||||
jp HandleMovementData
|
||||
; 503d
|
||||
|
||||
Function503d: ; 503d
|
||||
GetMovementPerson: ; 503d
|
||||
ld a, [wMovementPerson]
|
||||
ret
|
||||
; 5041
|
||||
|
||||
Function5041: ; 5041
|
||||
HandleMovementData: ; 5041
|
||||
call CopyMovementPointer
|
||||
.loop
|
||||
xor a
|
||||
@@ -2484,7 +2491,7 @@ GetMovementByte: ; 505e
|
||||
jp [hl]
|
||||
; 5065
|
||||
|
||||
Function5065: ; 5065
|
||||
ContinueReadingMovement: ; 5065
|
||||
ld a, 1
|
||||
ld [wc2ea], a
|
||||
ret
|
||||
@@ -2563,7 +2570,8 @@ Function54e6: ; 54e6
|
||||
.done
|
||||
call Function550a
|
||||
ret c
|
||||
ld a, $3e
|
||||
|
||||
ld a, movement_step_sleep_1
|
||||
ret
|
||||
; 550a
|
||||
|
||||
@@ -2585,7 +2593,7 @@ Function550a: ; 550a
|
||||
.nope
|
||||
ld a, $ff
|
||||
ld [wObjectFollow_Follower], a
|
||||
ld a, $47
|
||||
ld a, movement_step_end
|
||||
scf
|
||||
ret
|
||||
; 5529
|
||||
@@ -2696,6 +2704,7 @@ Function5582: ; 5582
|
||||
Function55ac: ; 55ac
|
||||
call FindFirstEmptyObjectStruct
|
||||
ret nc
|
||||
|
||||
ld d, h
|
||||
ld e, l
|
||||
callba Function8286
|
||||
@@ -2703,11 +2712,14 @@ Function55ac: ; 55ac
|
||||
; 55b9
|
||||
|
||||
Function55b9: ; 55b9
|
||||
; load into wc2f0:
|
||||
; -1, -1, [de], [de + 1], [de + 2], [hMapObjectIndexBuffer], [MapX], [MapY], -1
|
||||
ld hl, wc2f0
|
||||
ld [hl], -1
|
||||
inc hl
|
||||
ld [hl], -1
|
||||
inc hl
|
||||
|
||||
ld a, [de]
|
||||
inc de
|
||||
ld [hli], a
|
||||
@@ -2716,8 +2728,10 @@ Function55b9: ; 55b9
|
||||
ld [hli], a
|
||||
ld a, [de]
|
||||
ld [hli], a
|
||||
|
||||
ld a, [hMapObjectIndexBuffer]
|
||||
ld [hli], a
|
||||
|
||||
push hl
|
||||
ld hl, OBJECT_MAP_X
|
||||
add hl, bc
|
||||
@@ -2726,6 +2740,7 @@ Function55b9: ; 55b9
|
||||
add hl, bc
|
||||
ld e, [hl]
|
||||
pop hl
|
||||
|
||||
ld [hl], d
|
||||
inc hl
|
||||
ld [hl], e
|
||||
@@ -2786,17 +2801,21 @@ Function561d: ; 561d
|
||||
Function5629: ; 5629
|
||||
cp NUM_OBJECTS
|
||||
ret nc
|
||||
|
||||
call GetMapObject
|
||||
ld hl, MAPOBJECT_OBJECT_STRUCT_ID
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
cp -1
|
||||
ret z
|
||||
|
||||
cp NUM_OBJECT_STRUCTS
|
||||
ret nc
|
||||
|
||||
call GetObjectStruct
|
||||
call GetObjectSprite
|
||||
ret z
|
||||
|
||||
call Function5673
|
||||
ret
|
||||
; 5645
|
||||
@@ -2977,9 +2996,9 @@ Function56cd: ; 56cd
|
||||
|
||||
.ok7
|
||||
ld a, d
|
||||
ld [$ffbf], a
|
||||
ld [hFFBF], a
|
||||
.loop
|
||||
ld a, [$ffbf]
|
||||
ld a, [hFFBF]
|
||||
ld d, a
|
||||
ld a, [hUsedSpriteTile]
|
||||
add e
|
||||
@@ -3180,7 +3199,7 @@ ResetFollower: ; 5847
|
||||
cp -1
|
||||
ret z
|
||||
call GetObjectStruct
|
||||
callba Function58e3
|
||||
callba Function58e3 ; no need to bankswitch
|
||||
ld a, -1
|
||||
ld [wObjectFollow_Follower], a
|
||||
ret
|
||||
@@ -3294,16 +3313,19 @@ Function58e3: ; 58e3
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
cp -1
|
||||
jp z, Function5903
|
||||
jp z, Function5903 ; a jr would have been appropriate here
|
||||
|
||||
push bc
|
||||
call GetMapObject
|
||||
ld hl, MAPOBJECT_MOVEMENT
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
pop bc
|
||||
|
||||
ld hl, OBJECT_MOVEMENTTYPE
|
||||
add hl, bc
|
||||
ld [hl], a
|
||||
|
||||
ld hl, OBJECT_09
|
||||
add hl, bc
|
||||
ld [hl], 0
|
||||
@@ -3322,6 +3344,7 @@ Function5903: ; 5903
|
||||
ld hl, OBJECT_MOVEMENTTYPE
|
||||
add hl, bc
|
||||
ld [hl], a
|
||||
|
||||
ld hl, OBJECT_09
|
||||
add hl, bc
|
||||
ld [hl], 0
|
||||
@@ -3495,7 +3518,7 @@ Function59f3: ; 59f3
|
||||
.next
|
||||
ld a, [hli]
|
||||
ld d, a
|
||||
and %11110000
|
||||
and $f0
|
||||
ret z
|
||||
cp c
|
||||
jr nz, .next
|
||||
@@ -3503,20 +3526,20 @@ Function59f3: ; 59f3
|
||||
push bc
|
||||
push hl
|
||||
ld a, d
|
||||
and %00001111
|
||||
call Function5ac2
|
||||
call Function5a0d
|
||||
and $f
|
||||
call .GetObjectStructPointer
|
||||
call .asm_5a0d
|
||||
pop hl
|
||||
pop bc
|
||||
jr .next
|
||||
; 5a0d
|
||||
|
||||
Function5a0d: ; 5a0d
|
||||
.asm_5a0d: ; 5a0d
|
||||
ld hl, OBJECT_SPRITE_TILE
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
and %01111111
|
||||
ld [$ffc1], a
|
||||
ld [hFFC1], a
|
||||
|
||||
xor a
|
||||
bit 7, [hl]
|
||||
@@ -3550,7 +3573,7 @@ Function5a0d: ; 5a0d
|
||||
jr z, .skip4
|
||||
or %10000000
|
||||
.skip4
|
||||
ld [$ffc2], a
|
||||
ld [hFFC2], a
|
||||
|
||||
ld hl, OBJECT_SPRITE_X
|
||||
add hl, bc
|
||||
@@ -3565,7 +3588,7 @@ Function5a0d: ; 5a0d
|
||||
ld e, a
|
||||
ld a, [wd14c]
|
||||
add e
|
||||
ld [$ffbf], a
|
||||
ld [hFFBF], a
|
||||
|
||||
ld hl, OBJECT_SPRITE_Y
|
||||
add hl, bc
|
||||
@@ -3580,7 +3603,7 @@ Function5a0d: ; 5a0d
|
||||
ld e, a
|
||||
ld a, [wd14d]
|
||||
add e
|
||||
ld [$ffc0], a
|
||||
ld [hFFC0], a
|
||||
|
||||
ld hl, OBJECT_FACING_STEP
|
||||
add hl, bc
|
||||
@@ -3609,14 +3632,14 @@ Function5a0d: ; 5a0d
|
||||
jr nc, .full
|
||||
|
||||
.addsprite
|
||||
ld a, [$ffc0]
|
||||
ld a, [hFFC0]
|
||||
add [hl]
|
||||
inc hl
|
||||
|
||||
ld [bc], a
|
||||
inc c
|
||||
|
||||
ld a, [$ffbf]
|
||||
ld a, [hFFBF]
|
||||
add [hl]
|
||||
inc hl
|
||||
|
||||
@@ -3626,7 +3649,7 @@ Function5a0d: ; 5a0d
|
||||
ld e, [hl]
|
||||
inc hl
|
||||
|
||||
ld a, [$ffc1]
|
||||
ld a, [hFFC1]
|
||||
bit 2, e
|
||||
jr z, .nope1
|
||||
xor a
|
||||
@@ -3640,7 +3663,7 @@ Function5a0d: ; 5a0d
|
||||
ld a, e
|
||||
bit 1, a
|
||||
jr z, .nope2
|
||||
ld a, [$ffc2]
|
||||
ld a, [hFFC2]
|
||||
or e
|
||||
.nope2
|
||||
and %11110000
|
||||
@@ -3665,7 +3688,7 @@ Function5a0d: ; 5a0d
|
||||
ret
|
||||
; 5ac2
|
||||
|
||||
Function5ac2: ; 5ac2
|
||||
.GetObjectStructPointer: ; 5ac2
|
||||
ld c, a
|
||||
ld b, 0
|
||||
ld hl, .Addresses
|
||||
|
@@ -17,28 +17,28 @@ endr
|
||||
; 15377
|
||||
|
||||
MapSetupScripts: ; 15377
|
||||
dw MapSetupScript1
|
||||
dw MapSetupScript2
|
||||
dw MapSetupScript3
|
||||
dw MapSetupScript4
|
||||
dw MapSetupScript5
|
||||
dw MapSetupScript6
|
||||
dw MapSetupScript7
|
||||
dw MapSetupScript8
|
||||
dw MapSetupScript9
|
||||
dw MapSetupScript10
|
||||
dw MapSetupScript11
|
||||
dw MapSetupScript12
|
||||
dw MapSetupScript_Warp
|
||||
dw MapSetupScript_Continue
|
||||
dw MapSetupScript_ReloadMap
|
||||
dw MapSetupScript_Teleport
|
||||
dw MapSetupScript_Door
|
||||
dw MapSetupScript_Fall
|
||||
dw MapSetupScript_Connection
|
||||
dw MapSetupScript_LinkReturn
|
||||
dw MapSetupScript_Train
|
||||
dw MapSetupScript_Submenu
|
||||
dw MapSetupScript_BadWarp
|
||||
dw MapSetupScript_Fly
|
||||
; 1538f
|
||||
|
||||
MapSetupScript4: ; 1538f
|
||||
MapSetupScript_Teleport: ; 1538f
|
||||
db map_prolong_sprites
|
||||
|
||||
MapSetupScript12: ; 15390
|
||||
MapSetupScript_Fly: ; 15390
|
||||
db map_fade_out_palettes
|
||||
db map_keep_roam
|
||||
|
||||
MapSetupScript1: ; 15392
|
||||
MapSetupScript_Warp: ; 15392
|
||||
db map_lcd_off
|
||||
db map_sound_off
|
||||
db map_load_spawn
|
||||
@@ -63,7 +63,7 @@ MapSetupScript1: ; 15392
|
||||
db map_wildmons
|
||||
db map_end_setup_script
|
||||
|
||||
MapSetupScript11: ; 153a9
|
||||
MapSetupScript_BadWarp: ; 153a9
|
||||
db map_load_spawn
|
||||
db map_attributes
|
||||
db map_change_callback
|
||||
@@ -87,7 +87,7 @@ MapSetupScript11: ; 153a9
|
||||
db map_wildmons
|
||||
db map_end_setup_script
|
||||
|
||||
MapSetupScript7: ; 153bf
|
||||
MapSetupScript_Connection: ; 153bf
|
||||
db map_animations_off
|
||||
db map_load_connection
|
||||
db map_attributes
|
||||
@@ -106,13 +106,13 @@ MapSetupScript7: ; 153bf
|
||||
db map_animations_on
|
||||
db map_end_setup_script
|
||||
|
||||
MapSetupScript6: ; 153d0
|
||||
MapSetupScript_Fall: ; 153d0
|
||||
db map_prolong_sprites
|
||||
|
||||
MapSetupScript5: ; 153d1
|
||||
MapSetupScript_Door: ; 153d1
|
||||
db map_fade_out_palettes
|
||||
|
||||
MapSetupScript9: ; 153d2
|
||||
MapSetupScript_Train: ; 153d2
|
||||
db map_load_warp
|
||||
db map_attributes
|
||||
db map_warp_face
|
||||
@@ -135,7 +135,7 @@ MapSetupScript9: ; 153d2
|
||||
db map_update_roam
|
||||
db map_end_setup_script
|
||||
|
||||
MapSetupScript3: ; 153e7
|
||||
MapSetupScript_ReloadMap: ; 153e7
|
||||
db map_fade
|
||||
db map_clear_bg_palettes
|
||||
db map_lcd_off
|
||||
@@ -153,7 +153,7 @@ MapSetupScript3: ; 153e7
|
||||
db map_wildmons
|
||||
db map_end_setup_script
|
||||
|
||||
MapSetupScript8: ; 153f7
|
||||
MapSetupScript_LinkReturn: ; 153f7
|
||||
db map_fade
|
||||
db map_lcd_off
|
||||
db map_sound_off
|
||||
@@ -172,7 +172,7 @@ MapSetupScript8: ; 153f7
|
||||
db map_text_scroll_off
|
||||
db map_end_setup_script
|
||||
|
||||
MapSetupScript2: ; 15408
|
||||
MapSetupScript_Continue: ; 15408
|
||||
db map_lcd_off
|
||||
db map_sound_off
|
||||
db map_attributes_2
|
||||
@@ -192,7 +192,7 @@ MapSetupScript2: ; 15408
|
||||
db map_wildmons
|
||||
db map_end_setup_script
|
||||
|
||||
MapSetupScript10: ; 1541a
|
||||
MapSetupScript_Submenu: ; 1541a
|
||||
db map_load_blocks
|
||||
db map_connection_blocks
|
||||
db map_end_setup_script
|
||||
@@ -245,7 +245,7 @@ endr
|
||||
MapSetupCommands: ; 15440
|
||||
dba EnableLCD ; 00
|
||||
dba DisableLCD ; 01
|
||||
dba SoundRestart ; 02
|
||||
dba MapSetup_Sound_Off ; 02
|
||||
dba PlayMapMusic ; 03
|
||||
dba RestartMapMusic ; 04
|
||||
dba FadeToMapMusic ; 05
|
||||
@@ -271,9 +271,9 @@ MapSetupCommands: ; 15440
|
||||
dba LoadWarpData ; 19
|
||||
dba LoadMapAttributes ; 1a
|
||||
dba LoadMapAttributes_IgnoreHidden ; 1b
|
||||
dba WhiteBGMap ; 1c
|
||||
dba FadeBlackBGMap ; 1d
|
||||
dba FadeInBGMap ; 1e
|
||||
dba ClearBGPalettes ; 1c
|
||||
dba FadeOutPalettes ; 1d
|
||||
dba FadeInPalettes ; 1e
|
||||
dba GetCoordOfUpperLeftCorner ; 1f
|
||||
dba RestoreFacingAfterWarp ; 20
|
||||
dba SpawnInFacingDown ; 21
|
||||
|
@@ -61,32 +61,32 @@ MovementPointers: ; 5075
|
||||
dw Movement_fix_facing ; 3b
|
||||
dw Movement_3c ; 3c
|
||||
dw Movement_hide_person ; 3d
|
||||
dw Movement_show_person ; 3e
|
||||
dw Movement_3f ; 3f
|
||||
dw Movement_40 ; 40
|
||||
dw Movement_41 ; 41
|
||||
dw Movement_42 ; 42
|
||||
dw Movement_43 ; 43
|
||||
dw Movement_44 ; 44
|
||||
dw Movement_accelerate_last ; 45
|
||||
dw Movement_step_sleep_1 ; 3e
|
||||
dw Movement_step_sleep_2 ; 3f
|
||||
dw Movement_step_sleep_3 ; 40
|
||||
dw Movement_step_sleep_4 ; 41
|
||||
dw Movement_step_sleep_5 ; 42
|
||||
dw Movement_step_sleep_6 ; 43
|
||||
dw Movement_step_sleep_7 ; 44
|
||||
dw Movement_step_sleep_8 ; 45
|
||||
dw Movement_step_sleep ; 46
|
||||
dw Movement_step_end ; 47
|
||||
dw Movement_48 ; 48
|
||||
dw Movement_remove_person ; 49
|
||||
dw Movement_4a ; 4a
|
||||
dw Movement_step_loop ; 4a
|
||||
dw Movement_4b ; 4b
|
||||
dw Movement_teleport_from ; 4c
|
||||
dw Movement_teleport_to ; 4d
|
||||
dw Movement_skyfall ; 4e
|
||||
dw Movement_step_wait5 ; 4f
|
||||
dw Movement_50 ; 50
|
||||
dw Movement_51 ; 51
|
||||
dw Movement_52 ; 52
|
||||
dw Movement_fish_got_bite ; 51
|
||||
dw Movement_fish_cast_rod ; 52
|
||||
dw Movement_hide_emote ; 53
|
||||
dw Movement_show_emote ; 54
|
||||
dw Movement_step_shake ; 55
|
||||
dw Movement_56 ; 56
|
||||
dw Movement_57 ; 57
|
||||
dw Movement_rock_smash ; 57
|
||||
dw Movement_58 ; 58
|
||||
dw Movement_59 ; 59
|
||||
; 5129
|
||||
@@ -139,7 +139,7 @@ Movement_step_wait5: ; 5145
|
||||
ld [hl], $3
|
||||
ld hl, OBJECT_DIRECTION_WALKING
|
||||
add hl, bc
|
||||
ld [hl], $ff
|
||||
ld [hl], STANDING
|
||||
ret
|
||||
; 516a
|
||||
|
||||
@@ -156,14 +156,14 @@ Movement_58: ; 516a
|
||||
ld [hl], a
|
||||
ld hl, OBJECT_DIRECTION_WALKING
|
||||
add hl, bc
|
||||
ld [hl], $ff
|
||||
ld [hl], STANDING
|
||||
ld hl, OBJECT_09
|
||||
add hl, bc
|
||||
ld [hl], $12
|
||||
ret
|
||||
; 5189
|
||||
|
||||
Movement_51: ; 5189
|
||||
Movement_fish_got_bite: ; 5189
|
||||
ld hl, OBJECT_11
|
||||
add hl, bc
|
||||
ld [hl], $6
|
||||
@@ -173,7 +173,7 @@ Movement_51: ; 5189
|
||||
ret
|
||||
; 5196
|
||||
|
||||
Movement_57: ; 5196
|
||||
Movement_rock_smash: ; 5196
|
||||
call GetMovementByte
|
||||
ld hl, OBJECT_STEP_DURATION
|
||||
add hl, bc
|
||||
@@ -187,7 +187,7 @@ Movement_57: ; 5196
|
||||
ret
|
||||
; 51ab
|
||||
|
||||
Movement_52: ; 51ab
|
||||
Movement_fish_cast_rod: ; 51ab
|
||||
ld hl, OBJECT_11
|
||||
add hl, bc
|
||||
ld [hl], $6
|
||||
@@ -197,11 +197,11 @@ Movement_52: ; 51ab
|
||||
ret
|
||||
; 51b8
|
||||
|
||||
Movement_4a: ; 51b8
|
||||
ld hl, OBJECT_27
|
||||
Movement_step_loop: ; 51b8
|
||||
ld hl, OBJECT_MOVEMENT_BYTE_INDEX
|
||||
add hl, bc
|
||||
ld [hl], $0
|
||||
jp Function5065
|
||||
jp ContinueReadingMovement
|
||||
; 51c1
|
||||
|
||||
Movement_step_end: ; 51c1
|
||||
@@ -209,11 +209,14 @@ Movement_step_end: ; 51c1
|
||||
ld hl, OBJECT_MOVEMENTTYPE
|
||||
add hl, bc
|
||||
ld [hl], a
|
||||
ld hl, OBJECT_27
|
||||
|
||||
ld hl, OBJECT_MOVEMENT_BYTE_INDEX
|
||||
add hl, bc
|
||||
ld [hl], $0
|
||||
|
||||
ld hl, VramState
|
||||
res 7, [hl]
|
||||
|
||||
ld hl, OBJECT_09
|
||||
add hl, bc
|
||||
ld [hl], $1
|
||||
@@ -225,16 +228,20 @@ Movement_48: ; 51db
|
||||
ld hl, OBJECT_MOVEMENTTYPE
|
||||
add hl, bc
|
||||
ld [hl], a
|
||||
ld hl, OBJECT_27
|
||||
|
||||
ld hl, OBJECT_MOVEMENT_BYTE_INDEX
|
||||
add hl, bc
|
||||
ld [hl], $0
|
||||
|
||||
call GetMovementByte
|
||||
ld hl, OBJECT_STEP_DURATION
|
||||
add hl, bc
|
||||
ld [hl], a
|
||||
|
||||
ld hl, OBJECT_09
|
||||
add hl, bc
|
||||
ld [hl], $3
|
||||
|
||||
ld hl, VramState
|
||||
res 7, [hl]
|
||||
ret
|
||||
@@ -245,10 +252,10 @@ Movement_remove_person: ; 51fd
|
||||
ld hl, wObjectFollow_Leader
|
||||
ld a, [hMapObjectIndexBuffer]
|
||||
cp [hl]
|
||||
jr nz, .asm_520a
|
||||
ld [hl], $ff
|
||||
jr nz, .not_leading
|
||||
ld [hl], -1
|
||||
|
||||
.asm_520a
|
||||
.not_leading
|
||||
ld hl, VramState
|
||||
res 7, [hl]
|
||||
ret
|
||||
@@ -258,43 +265,45 @@ Movement_4b: ; 5210
|
||||
ld hl, OBJECT_11
|
||||
add hl, bc
|
||||
ld [hl], $1
|
||||
|
||||
ld hl, OBJECT_09
|
||||
add hl, bc
|
||||
ld [hl], $4
|
||||
|
||||
ld hl, VramState
|
||||
res 7, [hl]
|
||||
ret
|
||||
; 5222
|
||||
|
||||
Movement_show_person: ; 5222
|
||||
Movement_step_sleep_1: ; 5222
|
||||
ld a, $1
|
||||
jr Function5247
|
||||
|
||||
Movement_3f: ; 5226
|
||||
Movement_step_sleep_2: ; 5226
|
||||
ld a, $2
|
||||
jr Function5247
|
||||
|
||||
Movement_40: ; 522a
|
||||
Movement_step_sleep_3: ; 522a
|
||||
ld a, $3
|
||||
jr Function5247
|
||||
|
||||
Movement_41: ; 522e
|
||||
Movement_step_sleep_4: ; 522e
|
||||
ld a, $4
|
||||
jr Function5247
|
||||
|
||||
Movement_42: ; 5232
|
||||
Movement_step_sleep_5: ; 5232
|
||||
ld a, $5
|
||||
jr Function5247
|
||||
|
||||
Movement_43: ; 5236
|
||||
Movement_step_sleep_6: ; 5236
|
||||
ld a, $6
|
||||
jr Function5247
|
||||
|
||||
Movement_44: ; 523a
|
||||
Movement_step_sleep_7: ; 523a
|
||||
ld a, $7
|
||||
jr Function5247
|
||||
|
||||
Movement_accelerate_last: ; 523e
|
||||
Movement_step_sleep_8: ; 523e
|
||||
ld a, $8
|
||||
jr Function5247
|
||||
|
||||
@@ -309,15 +318,18 @@ Function5247: ; 5247
|
||||
ld hl, OBJECT_STEP_DURATION
|
||||
add hl, bc
|
||||
ld [hl], a
|
||||
|
||||
ld hl, OBJECT_09
|
||||
add hl, bc
|
||||
ld [hl], $3
|
||||
|
||||
ld hl, OBJECT_11
|
||||
add hl, bc
|
||||
ld [hl], $1
|
||||
|
||||
ld hl, OBJECT_DIRECTION_WALKING
|
||||
add hl, bc
|
||||
ld [hl], $ff
|
||||
ld [hl], STANDING
|
||||
ret
|
||||
; 525f
|
||||
|
||||
@@ -334,7 +346,7 @@ Movement_50: ; 525f
|
||||
ld [hl], $3
|
||||
ld hl, OBJECT_DIRECTION_WALKING
|
||||
add hl, bc
|
||||
ld [hl], $ff
|
||||
ld [hl], STANDING
|
||||
ret
|
||||
; 5279
|
||||
|
||||
@@ -351,7 +363,7 @@ Movement_56: ; 5279
|
||||
ld [hl], $b
|
||||
ld hl, OBJECT_DIRECTION_WALKING
|
||||
add hl, bc
|
||||
ld [hl], $ff
|
||||
ld [hl], STANDING
|
||||
ret
|
||||
; 5293
|
||||
|
||||
@@ -359,52 +371,52 @@ Movement_38: ; 5293
|
||||
ld hl, OBJECT_FLAGS1
|
||||
add hl, bc
|
||||
res 3, [hl]
|
||||
jp Function5065
|
||||
jp ContinueReadingMovement
|
||||
; 529c
|
||||
|
||||
Movement_39: ; 529c
|
||||
ld hl, OBJECT_FLAGS1
|
||||
add hl, bc
|
||||
set 3, [hl]
|
||||
jp Function5065
|
||||
jp ContinueReadingMovement
|
||||
; 52a5
|
||||
|
||||
Movement_remove_fixed_facing: ; 52a5
|
||||
ld hl, OBJECT_FLAGS1
|
||||
add hl, bc
|
||||
res 2, [hl]
|
||||
jp Function5065
|
||||
jp ContinueReadingMovement
|
||||
; 52ae
|
||||
|
||||
Movement_fix_facing: ; 52ae
|
||||
ld hl, OBJECT_FLAGS1
|
||||
add hl, bc
|
||||
set 2, [hl]
|
||||
jp Function5065
|
||||
jp ContinueReadingMovement
|
||||
; 52b7
|
||||
|
||||
Movement_3c: ; 52b7
|
||||
ld hl, OBJECT_FLAGS1
|
||||
add hl, bc
|
||||
res 0, [hl]
|
||||
jp Function5065
|
||||
jp ContinueReadingMovement
|
||||
; 52c0
|
||||
|
||||
Movement_hide_person: ; 52c0
|
||||
ld hl, OBJECT_FLAGS1
|
||||
add hl, bc
|
||||
set 0, [hl]
|
||||
jp Function5065
|
||||
jp ContinueReadingMovement
|
||||
; 52c9
|
||||
|
||||
Movement_hide_emote: ; 52c9
|
||||
call Function5579
|
||||
jp Function5065
|
||||
jp ContinueReadingMovement
|
||||
; 52cf
|
||||
|
||||
Movement_show_emote: ; 52cf
|
||||
call Function5547
|
||||
jp Function5065
|
||||
jp ContinueReadingMovement
|
||||
; 52d5
|
||||
|
||||
Movement_step_shake: ; 52d5
|
||||
@@ -413,7 +425,7 @@ Movement_step_shake: ; 52d5
|
||||
|
||||
call GetMovementByte
|
||||
call Function5565
|
||||
jp Function5065
|
||||
jp ContinueReadingMovement
|
||||
; 52de
|
||||
|
||||
Movement_turn_head_down: ; 52de
|
||||
@@ -441,7 +453,7 @@ TurnHead: ; 52ee
|
||||
ld [hl], $1
|
||||
ld hl, OBJECT_DIRECTION_WALKING
|
||||
add hl, bc
|
||||
ld [hl], $ff
|
||||
ld [hl], STANDING
|
||||
ret
|
||||
; 5300
|
||||
|
||||
|
@@ -40,7 +40,7 @@ NamingScreen: ; 116c1
|
||||
; 116f8
|
||||
|
||||
Function116f8: ; 116f8
|
||||
call WhiteBGMap
|
||||
call ClearBGPalettes
|
||||
ld b, $8
|
||||
call GetSGBLayout
|
||||
call DisableLCD
|
||||
|
@@ -594,7 +594,7 @@ Function103fd: ; 103fd
|
||||
ld [Options], a
|
||||
ld a, $8
|
||||
ld [PartyMenuActionText], a
|
||||
call WhiteBGMap
|
||||
call ClearBGPalettes
|
||||
callba Function5004f
|
||||
callba Function50405
|
||||
callba Function503e0
|
||||
@@ -922,7 +922,7 @@ Function105dc: ; 105dc (4:45dc)
|
||||
ret
|
||||
|
||||
.asm_1066c: ; 1066c (4:466c)
|
||||
call WhiteBGMap
|
||||
call ClearBGPalettes
|
||||
jr .asm_1067e
|
||||
|
||||
.BattleOnly: ; 10671 (4:4671)
|
||||
@@ -1401,7 +1401,7 @@ Function108d4: ; 108d4 (4:48d4)
|
||||
|
||||
|
||||
Function10955: ; 10955
|
||||
call WhiteBGMap
|
||||
call ClearBGPalettes
|
||||
call ClearTileMap
|
||||
call ClearSprites
|
||||
call DisableLCD
|
||||
|
@@ -2,10 +2,10 @@ SelectMonFromParty: ; 50000
|
||||
call DisableSpriteUpdates
|
||||
xor a
|
||||
ld [PartyMenuActionText], a
|
||||
call WhiteBGMap
|
||||
call ClearBGPalettes
|
||||
call Function5003f
|
||||
call WaitBGMap
|
||||
call Function32f9
|
||||
call SetPalettes
|
||||
call DelayFrame
|
||||
call PartyMenuSelect
|
||||
call Function2b74
|
||||
@@ -17,12 +17,12 @@ Function5001d: ; 5001d
|
||||
ld a, b
|
||||
ld [PartyMenuActionText], a
|
||||
call DisableSpriteUpdates
|
||||
call WhiteBGMap
|
||||
call ClearBGPalettes
|
||||
call Function5003f
|
||||
call WaitBGMap
|
||||
ld b, $a
|
||||
call GetSGBLayout
|
||||
call Function32f9
|
||||
call SetPalettes
|
||||
call DelayFrame
|
||||
call PartyMenuSelect
|
||||
call Function2b74
|
||||
@@ -57,43 +57,42 @@ WritePartyMenuTilemap: ; 0x5005f
|
||||
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
|
||||
ld a, " "
|
||||
call ByteFill ; blank the tilemap
|
||||
call Function50396 ; This reads from a pointer table???
|
||||
call GetPartyMenuTilemapPointers ; This reads from a pointer table???
|
||||
.loop
|
||||
ld a, [hli]
|
||||
cp -1
|
||||
jr z, .asm_50084 ; 0x5007a $8
|
||||
cp $ff
|
||||
jr z, .end ; 0x5007a $8
|
||||
push hl
|
||||
ld hl, .jumptable
|
||||
ld hl, .Jumptable
|
||||
rst JumpTable
|
||||
pop hl
|
||||
jr .loop ; 0x50082 $f3
|
||||
|
||||
.asm_50084
|
||||
.end
|
||||
pop af
|
||||
ld [Options], a
|
||||
ret
|
||||
; 0x50089
|
||||
|
||||
.jumptable: ; 50089
|
||||
dw .displaynicks ; 0
|
||||
dw .drawhpbars ; 1
|
||||
dw Function50138 ; 2
|
||||
dw Function50176 ; 3
|
||||
dw Function501b2 ; 4
|
||||
dw Function501e0 ; 5
|
||||
dw Function5022f ; 6
|
||||
dw Function502b1 ; 7
|
||||
dw Function50307 ; 8
|
||||
.Jumptable: ; 50089
|
||||
dw PlacePartyNicknames
|
||||
dw PlacePartyHPBar
|
||||
dw PlacePartyMenuHPDigits
|
||||
dw PlacePartyMonLevel
|
||||
dw PlacePartyMonStatus
|
||||
dw PlacePartyMonTMHMCompatibility
|
||||
dw PlacePartyMonEvoStoneCompatibility
|
||||
dw PlacePartyMonGender
|
||||
dw PlacePartyMonMobileBattleSelection
|
||||
; 5009b
|
||||
|
||||
.displaynicks: ; 5009b
|
||||
PlacePartyNicknames: ; 5009b
|
||||
hlcoord 3, 1
|
||||
ld a, [PartyCount]
|
||||
and a
|
||||
jr z, .done
|
||||
jr z, .end
|
||||
ld c, a
|
||||
ld b, $0
|
||||
.loop2
|
||||
.loop
|
||||
push bc
|
||||
push hl
|
||||
push hl
|
||||
@@ -103,28 +102,28 @@ WritePartyMenuTilemap: ; 0x5005f
|
||||
pop hl
|
||||
call PlaceString
|
||||
pop hl
|
||||
ld de, $0028
|
||||
ld de, 2 * SCREEN_WIDTH
|
||||
add hl, de
|
||||
pop bc
|
||||
inc b
|
||||
dec c
|
||||
jr nz, .loop2
|
||||
jr nz, .loop
|
||||
|
||||
.done
|
||||
.end
|
||||
rept 2
|
||||
dec hl
|
||||
endr
|
||||
ld de, .cancelstring
|
||||
ld de, .CANCEL
|
||||
call PlaceString
|
||||
ret
|
||||
; 500c8
|
||||
|
||||
.cancelstring: ; 500c8
|
||||
.CANCEL: ; 500c8
|
||||
db "CANCEL@"
|
||||
; 500cf
|
||||
|
||||
|
||||
.drawhpbars: ; 500cf
|
||||
PlacePartyHPBar: ; 500cf
|
||||
xor a
|
||||
ld [wcda9], a
|
||||
ld a, [PartyCount]
|
||||
@@ -133,17 +132,17 @@ endr
|
||||
ld c, a
|
||||
ld b, $0
|
||||
hlcoord 11, 2
|
||||
.loop3
|
||||
.loop
|
||||
push bc
|
||||
push hl
|
||||
call Function50389
|
||||
call PartyMenuCheckEgg
|
||||
jr z, .skip
|
||||
push hl
|
||||
call _fillhpbar
|
||||
call PlacePartymonHPBar
|
||||
pop hl
|
||||
ld d, 6
|
||||
ld b, 0
|
||||
call DrawHPBar
|
||||
ld d, $6
|
||||
ld b, $0
|
||||
call DrawBattleHPBar
|
||||
ld hl, wcd9b
|
||||
ld a, [wcda9]
|
||||
ld c, a
|
||||
@@ -157,31 +156,31 @@ endr
|
||||
ld hl, wcda9
|
||||
inc [hl]
|
||||
pop hl
|
||||
ld de, $0028
|
||||
ld de, 2 * SCREEN_WIDTH
|
||||
add hl, de
|
||||
pop bc
|
||||
inc b
|
||||
dec c
|
||||
jr nz, .loop3
|
||||
jr nz, .loop
|
||||
ld b, $a
|
||||
call GetSGBLayout
|
||||
ret
|
||||
; 50117
|
||||
|
||||
_fillhpbar: ; 50117
|
||||
PlacePartymonHPBar: ; 50117
|
||||
ld a, b
|
||||
ld bc, PartyMon2 - PartyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
ld hl, PartyMon1HP
|
||||
call AddNTimes
|
||||
ld a, [hli]
|
||||
or [hl]
|
||||
jr nz, .notfainted
|
||||
jr nz, .not_fainted
|
||||
xor a
|
||||
ld e, a
|
||||
ld c, a
|
||||
ret
|
||||
|
||||
.notfainted
|
||||
.not_fainted
|
||||
dec hl
|
||||
ld a, [hli]
|
||||
ld b, a
|
||||
@@ -191,25 +190,25 @@ _fillhpbar: ; 50117
|
||||
ld d, a
|
||||
ld a, [hli]
|
||||
ld e, a
|
||||
predef ComputeHPBarLength
|
||||
predef DrawPartyMenuHPBar
|
||||
ret
|
||||
; 50138
|
||||
|
||||
Function50138: ; 50138
|
||||
PlacePartyMenuHPDigits: ; 50138
|
||||
ld a, [PartyCount]
|
||||
and a
|
||||
ret z
|
||||
ld c, a
|
||||
ld b, $0
|
||||
hlcoord 13, 1
|
||||
.asm_50143
|
||||
.loop
|
||||
push bc
|
||||
push hl
|
||||
call Function50389
|
||||
jr z, .asm_5016b
|
||||
call PartyMenuCheckEgg
|
||||
jr z, .next
|
||||
push hl
|
||||
ld a, b
|
||||
ld bc, PartyMon2 - PartyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
ld hl, PartyMon1HP
|
||||
call AddNTimes
|
||||
ld e, l
|
||||
@@ -219,7 +218,7 @@ Function50138: ; 50138
|
||||
lb bc, 2, 3
|
||||
call PrintNum
|
||||
pop de
|
||||
ld a, $f3
|
||||
ld a, "/"
|
||||
ld [hli], a
|
||||
rept 2
|
||||
inc de
|
||||
@@ -227,32 +226,32 @@ endr
|
||||
lb bc, 2, 3
|
||||
call PrintNum
|
||||
|
||||
.asm_5016b
|
||||
.next
|
||||
pop hl
|
||||
ld de, $0028
|
||||
ld de, 2 * SCREEN_WIDTH
|
||||
add hl, de
|
||||
pop bc
|
||||
inc b
|
||||
dec c
|
||||
jr nz, .asm_50143
|
||||
jr nz, .loop
|
||||
ret
|
||||
; 50176
|
||||
|
||||
Function50176: ; 50176
|
||||
PlacePartyMonLevel: ; 50176
|
||||
ld a, [PartyCount]
|
||||
and a
|
||||
ret z
|
||||
ld c, a
|
||||
ld b, 0
|
||||
hlcoord 8, 2
|
||||
.asm_50181
|
||||
.loop
|
||||
push bc
|
||||
push hl
|
||||
call Function50389
|
||||
jr z, .asm_501a7
|
||||
call PartyMenuCheckEgg
|
||||
jr z, .next
|
||||
push hl
|
||||
ld a, b
|
||||
ld bc, PartyMon2 - PartyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
ld hl, PartyMon1Level
|
||||
call AddNTimes
|
||||
ld e, l
|
||||
@@ -260,70 +259,72 @@ Function50176: ; 50176
|
||||
pop hl
|
||||
ld a, [de]
|
||||
cp 100 ; This is distinct from MAX_LEVEL.
|
||||
jr nc, .asm_501a1
|
||||
jr nc, .ThreeDigits
|
||||
ld a, "<LV>"
|
||||
ld [hli], a
|
||||
ld bc, $4102
|
||||
.asm_501a1
|
||||
lb bc, PRINTNUM_RIGHTALIGN | 1, 2
|
||||
; jr .okay
|
||||
.ThreeDigits
|
||||
lb bc, PRINTNUM_RIGHTALIGN | 1, 3
|
||||
; .okay
|
||||
call PrintNum
|
||||
|
||||
.asm_501a7
|
||||
.next
|
||||
pop hl
|
||||
ld de, SCREEN_WIDTH * 2
|
||||
add hl, de
|
||||
pop bc
|
||||
inc b
|
||||
dec c
|
||||
jr nz, .asm_50181
|
||||
jr nz, .loop
|
||||
ret
|
||||
; 501b2
|
||||
|
||||
Function501b2: ; 501b2
|
||||
PlacePartyMonStatus: ; 501b2
|
||||
ld a, [PartyCount]
|
||||
and a
|
||||
ret z
|
||||
ld c, a
|
||||
ld b, 0
|
||||
hlcoord 5, 2
|
||||
.asm_501bd
|
||||
.loop
|
||||
push bc
|
||||
push hl
|
||||
call Function50389
|
||||
jr z, .asm_501d5
|
||||
call PartyMenuCheckEgg
|
||||
jr z, .next
|
||||
push hl
|
||||
ld a, b
|
||||
ld bc, PartyMon2 - PartyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
ld hl, PartyMon1Status
|
||||
call AddNTimes
|
||||
ld e, l
|
||||
ld d, h
|
||||
pop hl
|
||||
call Function50d0a
|
||||
call PlaceStatusString
|
||||
|
||||
.asm_501d5
|
||||
.next
|
||||
pop hl
|
||||
ld de, SCREEN_WIDTH * 2
|
||||
add hl, de
|
||||
pop bc
|
||||
inc b
|
||||
dec c
|
||||
jr nz, .asm_501bd
|
||||
jr nz, .loop
|
||||
ret
|
||||
; 501e0
|
||||
|
||||
Function501e0: ; 501e0
|
||||
PlacePartyMonTMHMCompatibility: ; 501e0
|
||||
ld a, [PartyCount]
|
||||
and a
|
||||
ret z
|
||||
ld c, a
|
||||
ld b, 0
|
||||
hlcoord 12, 2
|
||||
.asm_501eb
|
||||
.loop
|
||||
push bc
|
||||
push hl
|
||||
call Function50389
|
||||
jr z, .asm_5020a
|
||||
call PartyMenuCheckEgg
|
||||
jr z, .next
|
||||
push hl
|
||||
ld hl, PartySpecies
|
||||
ld e, b
|
||||
@@ -333,56 +334,56 @@ Function501e0: ; 501e0
|
||||
ld [CurPartySpecies], a
|
||||
predef CanLearnTMHMMove
|
||||
pop hl
|
||||
call Function50215
|
||||
call .PlaceAbleNotAble
|
||||
call PlaceString
|
||||
|
||||
.asm_5020a
|
||||
.next
|
||||
pop hl
|
||||
ld de, SCREEN_WIDTH * 2
|
||||
add hl, de
|
||||
pop bc
|
||||
inc b
|
||||
dec c
|
||||
jr nz, .asm_501eb
|
||||
jr nz, .loop
|
||||
ret
|
||||
; 50215
|
||||
|
||||
Function50215: ; 50215
|
||||
.PlaceAbleNotAble: ; 50215
|
||||
ld a, c
|
||||
and a
|
||||
jr nz, .asm_5021d
|
||||
ld de, String_50226
|
||||
jr nz, .able
|
||||
ld de, .string_not_able
|
||||
ret
|
||||
|
||||
.asm_5021d
|
||||
ld de, String_50221
|
||||
.able
|
||||
ld de, .string_able
|
||||
ret
|
||||
; 50221
|
||||
|
||||
String_50221: ; 50221
|
||||
.string_able: ; 50221
|
||||
db "ABLE@"
|
||||
; 50226
|
||||
|
||||
String_50226: ; 50226
|
||||
.string_not_able: ; 50226
|
||||
db "NOT ABLE@"
|
||||
; 5022f
|
||||
|
||||
|
||||
Function5022f: ; 5022f
|
||||
PlacePartyMonEvoStoneCompatibility: ; 5022f
|
||||
ld a, [PartyCount]
|
||||
and a
|
||||
ret z
|
||||
ld c, a
|
||||
ld b, 0
|
||||
hlcoord 12, 2
|
||||
.asm_5023a
|
||||
.loop
|
||||
push bc
|
||||
push hl
|
||||
call Function50389
|
||||
jr z, .asm_5025d
|
||||
call PartyMenuCheckEgg
|
||||
jr z, .next
|
||||
push hl
|
||||
ld a, b
|
||||
ld bc, PartyMon2 - PartyMon1
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
ld hl, PartyMon1Species
|
||||
call AddNTimes
|
||||
ld a, [hl]
|
||||
@@ -393,22 +394,22 @@ Function5022f: ; 5022f
|
||||
rept 2
|
||||
add hl, de
|
||||
endr
|
||||
call Function50268
|
||||
call .DetermineCompatibility
|
||||
pop hl
|
||||
call PlaceString
|
||||
|
||||
.asm_5025d
|
||||
.next
|
||||
pop hl
|
||||
ld de, $0028
|
||||
ld de, 2 * SCREEN_WIDTH
|
||||
add hl, de
|
||||
pop bc
|
||||
inc b
|
||||
dec c
|
||||
jr nz, .asm_5023a
|
||||
jr nz, .loop
|
||||
ret
|
||||
; 50268
|
||||
|
||||
Function50268: ; 50268
|
||||
.DetermineCompatibility: ; 50268
|
||||
ld de, StringBuffer1
|
||||
ld a, BANK(EvosAttacksPointers)
|
||||
ld bc, 2
|
||||
@@ -422,15 +423,15 @@ Function50268: ; 50268
|
||||
ld bc, $a
|
||||
call FarCopyBytes
|
||||
ld hl, StringBuffer1
|
||||
.asm_50287
|
||||
.loop2
|
||||
ld a, [hli]
|
||||
and a
|
||||
jr z, .asm_5029f
|
||||
jr z, .nope
|
||||
rept 2
|
||||
inc hl
|
||||
endr
|
||||
cp EVOLVE_ITEM
|
||||
jr nz, .asm_50287
|
||||
jr nz, .loop2
|
||||
rept 2
|
||||
dec hl
|
||||
endr
|
||||
@@ -439,35 +440,35 @@ endr
|
||||
rept 2
|
||||
inc hl
|
||||
endr
|
||||
jr nz, .asm_50287
|
||||
ld de, String_502a3
|
||||
jr nz, .loop2
|
||||
ld de, .string_able
|
||||
ret
|
||||
|
||||
.asm_5029f
|
||||
ld de, String_502a8
|
||||
.nope
|
||||
ld de, .string_not_able
|
||||
ret
|
||||
; 502a3
|
||||
|
||||
String_502a3: ; 502a3
|
||||
.string_able: ; 502a3
|
||||
db "ABLE@"
|
||||
; 502a8
|
||||
String_502a8: ; 502a8
|
||||
.string_not_able: ; 502a8
|
||||
db "NOT ABLE@"
|
||||
; 502b1
|
||||
|
||||
|
||||
Function502b1: ; 502b1
|
||||
PlacePartyMonGender: ; 502b1
|
||||
ld a, [PartyCount]
|
||||
and a
|
||||
ret z
|
||||
ld c, a
|
||||
ld b, 0
|
||||
hlcoord 12, 2
|
||||
.asm_502bc
|
||||
.loop
|
||||
push bc
|
||||
push hl
|
||||
call Function50389
|
||||
jr z, .asm_502e3
|
||||
call PartyMenuCheckEgg
|
||||
jr z, .next
|
||||
ld [CurPartySpecies], a
|
||||
push hl
|
||||
ld a, b
|
||||
@@ -475,86 +476,86 @@ Function502b1: ; 502b1
|
||||
xor a
|
||||
ld [MonType], a
|
||||
call GetGender
|
||||
ld de, String_502fe
|
||||
jr c, .asm_502df
|
||||
ld de, String_502ee
|
||||
jr nz, .asm_502df
|
||||
ld de, String_502f5
|
||||
ld de, .unknown
|
||||
jr c, .got_gender
|
||||
ld de, .male
|
||||
jr nz, .got_gender
|
||||
ld de, .female
|
||||
|
||||
.asm_502df
|
||||
.got_gender
|
||||
pop hl
|
||||
call PlaceString
|
||||
|
||||
.asm_502e3
|
||||
.next
|
||||
pop hl
|
||||
ld de, $0028
|
||||
ld de, 2 * SCREEN_WIDTH
|
||||
add hl, de
|
||||
pop bc
|
||||
inc b
|
||||
dec c
|
||||
jr nz, .asm_502bc
|
||||
jr nz, .loop
|
||||
ret
|
||||
; 502ee
|
||||
|
||||
String_502ee: ; 502ee
|
||||
.male: ; 502ee
|
||||
db "♂…MALE@"
|
||||
; 502f5
|
||||
|
||||
String_502f5: ; 502f5
|
||||
.female: ; 502f5
|
||||
db "♀…FEMALE@"
|
||||
; 502fe
|
||||
|
||||
String_502fe: ; 502fe
|
||||
.unknown: ; 502fe
|
||||
db "…UNKNOWN@"
|
||||
; 50307
|
||||
|
||||
|
||||
Function50307: ; 50307
|
||||
PlacePartyMonMobileBattleSelection: ; 50307
|
||||
ld a, [PartyCount]
|
||||
and a
|
||||
ret z
|
||||
ld c, a
|
||||
ld b, 0
|
||||
hlcoord 12, 1
|
||||
.asm_50312
|
||||
.loop
|
||||
push bc
|
||||
push hl
|
||||
ld de, String_50372
|
||||
ld de, .String_Sanka_Shinai
|
||||
call PlaceString
|
||||
pop hl
|
||||
ld de, $0028
|
||||
ld de, 2 * SCREEN_WIDTH
|
||||
add hl, de
|
||||
pop bc
|
||||
inc b
|
||||
dec c
|
||||
jr nz, .asm_50312
|
||||
jr nz, .loop
|
||||
ld a, l
|
||||
ld e, $b
|
||||
ld e, PKMN_NAME_LENGTH
|
||||
sub e
|
||||
ld l, a
|
||||
ld a, h
|
||||
sbc $0
|
||||
ld h, a
|
||||
ld de, String_50379
|
||||
ld de, .String_Kettei_Yameru
|
||||
call PlaceString
|
||||
ld b, $3
|
||||
ld c, $0
|
||||
ld hl, wd002
|
||||
ld a, [hl]
|
||||
.asm_5033b
|
||||
.loop2
|
||||
push hl
|
||||
push bc
|
||||
hlcoord 12, 1
|
||||
.asm_50340
|
||||
.loop3
|
||||
and a
|
||||
jr z, .asm_5034a
|
||||
ld de, $0028
|
||||
jr z, .done
|
||||
ld de, 2 * SCREEN_WIDTH
|
||||
add hl, de
|
||||
dec a
|
||||
jr .asm_50340
|
||||
jr .loop3
|
||||
|
||||
.asm_5034a
|
||||
ld de, String_5036b
|
||||
.done
|
||||
ld de, .String_Banme
|
||||
push hl
|
||||
call PlaceString
|
||||
pop hl
|
||||
@@ -562,7 +563,7 @@ Function50307: ; 50307
|
||||
push bc
|
||||
push hl
|
||||
ld a, c
|
||||
ld hl, Strings_50383
|
||||
ld hl, .Strings_1_2_3
|
||||
call GetNthString
|
||||
ld d, h
|
||||
ld e, l
|
||||
@@ -575,24 +576,24 @@ Function50307: ; 50307
|
||||
inc c
|
||||
dec b
|
||||
ret z
|
||||
jr .asm_5033b
|
||||
jr .loop2
|
||||
; 5036b
|
||||
|
||||
String_5036b: ; 5036b
|
||||
.String_Banme: ; 5036b
|
||||
db " ばんめ @" ; Place
|
||||
; 50372
|
||||
String_50372: ; 50372
|
||||
.String_Sanka_Shinai: ; 50372
|
||||
db "さんかしない@" ; Cancel
|
||||
; 50379
|
||||
String_50379: ; 50379
|
||||
.String_Kettei_Yameru: ; 50379
|
||||
db "けってい やめる@" ; Quit
|
||||
; 50383
|
||||
Strings_50383: ; 50383
|
||||
.Strings_1_2_3: ; 50383
|
||||
db "1@", "2@", "3@" ; 1st, 2nd, 3rd
|
||||
; 50389
|
||||
|
||||
|
||||
Function50389: ; 50389
|
||||
PartyMenuCheckEgg: ; 50389
|
||||
ld a, PartySpecies % $100
|
||||
add b
|
||||
ld e, a
|
||||
@@ -604,15 +605,15 @@ Function50389: ; 50389
|
||||
ret
|
||||
; 50396
|
||||
|
||||
Function50396: ; 50396
|
||||
GetPartyMenuTilemapPointers: ; 50396
|
||||
ld a, [PartyMenuActionText]
|
||||
and $f0
|
||||
jr nz, .override
|
||||
jr nz, .skip
|
||||
ld a, [PartyMenuActionText]
|
||||
and $f
|
||||
ld e, a
|
||||
ld d, 0
|
||||
ld hl, .selectmonmenuoptions
|
||||
ld hl, .Pointers
|
||||
rept 2
|
||||
add hl, de
|
||||
endr
|
||||
@@ -621,31 +622,32 @@ endr
|
||||
ld l, a
|
||||
ret
|
||||
|
||||
.override
|
||||
ld hl, .default
|
||||
.skip
|
||||
ld hl, .Default
|
||||
ret
|
||||
; 503b2
|
||||
|
||||
.selectmonmenuoptions: ; 503b2
|
||||
dw .default
|
||||
dw .default
|
||||
dw .default
|
||||
dw .unknown1
|
||||
dw .default
|
||||
dw .unknown2
|
||||
dw .trade
|
||||
dw .trade
|
||||
dw .default
|
||||
dw .unknown3
|
||||
.Pointers: ; 503b2
|
||||
dw .Default
|
||||
dw .Default
|
||||
dw .Default
|
||||
dw .TMHM
|
||||
dw .Default
|
||||
dw .EvoStone
|
||||
dw .Gender
|
||||
dw .Gender
|
||||
dw .Default
|
||||
dw .Mobile
|
||||
; 503c6
|
||||
|
||||
.default: db 0, 1, 2, 3, 4, -1
|
||||
.unknown1: db 0, 5, 3, 4, -1
|
||||
.unknown2: db 0, 6, 3, 4, -1
|
||||
.trade: db 0, 7, 3, 4, -1
|
||||
.unknown3: db 0, 8, 3, 4, -1
|
||||
.Default: db 0, 1, 2, 3, 4, $ff
|
||||
.TMHM: db 0, 5, 3, 4, $ff
|
||||
.EvoStone: db 0, 6, 3, 4, $ff
|
||||
.Gender: db 0, 7, 3, 4, $ff
|
||||
.Mobile: db 0, 8, 3, 4, $ff
|
||||
; 503e0
|
||||
|
||||
|
||||
Function503e0: ; 503e0
|
||||
ld hl, PartyCount
|
||||
ld a, [hli]
|
||||
@@ -653,7 +655,7 @@ Function503e0: ; 503e0
|
||||
ret z
|
||||
ld c, a
|
||||
xor a
|
||||
ld [hConnectedMapWidth], a
|
||||
ld [hObjectStructIndexBuffer], a
|
||||
.asm_503ea
|
||||
push bc
|
||||
push hl
|
||||
@@ -661,9 +663,9 @@ Function503e0: ; 503e0
|
||||
ld a, BANK(Function8e83f)
|
||||
ld e, $0
|
||||
rst FarCall
|
||||
ld a, [hConnectedMapWidth]
|
||||
ld a, [hObjectStructIndexBuffer]
|
||||
inc a
|
||||
ld [hConnectedMapWidth], a
|
||||
ld [hObjectStructIndexBuffer], a
|
||||
pop hl
|
||||
pop bc
|
||||
dec c
|
||||
@@ -671,6 +673,7 @@ Function503e0: ; 503e0
|
||||
callab Function8cf69
|
||||
ret
|
||||
; 50405
|
||||
|
||||
Function50405: ; 50405
|
||||
xor a
|
||||
ld [wd0e3], a
|
||||
@@ -692,7 +695,7 @@ Function50405: ; 50405
|
||||
ld a, $1
|
||||
|
||||
.asm_50424
|
||||
ld [wcfa9], a
|
||||
ld [MenuSelection2], a
|
||||
ld a, $3
|
||||
ld [wcfa8], a
|
||||
ret
|
||||
@@ -713,7 +716,7 @@ Function5042d: ; 0x5042d
|
||||
.asm_50444
|
||||
ld a, $1
|
||||
.asm_50446
|
||||
ld [wcfa9], a
|
||||
ld [MenuSelection2], a
|
||||
ld a, $3
|
||||
ld [wcfa8], a
|
||||
ret
|
||||
@@ -738,7 +741,7 @@ PartyMenuSelect: ; 0x50457
|
||||
ld a, [PartyCount]
|
||||
inc a
|
||||
ld b, a
|
||||
ld a, [wcfa9] ; menu selection?
|
||||
ld a, [MenuSelection2] ; menu selection?
|
||||
cp b
|
||||
jr z, .exitmenu ; CANCEL
|
||||
ld [wd0d8], a
|
||||
@@ -746,7 +749,7 @@ PartyMenuSelect: ; 0x50457
|
||||
ld b, a
|
||||
bit 1, b
|
||||
jr nz, .exitmenu ; B button?
|
||||
ld a, [wcfa9]
|
||||
ld a, [MenuSelection2]
|
||||
dec a
|
||||
ld [CurPartyMon], a
|
||||
ld c, a
|
||||
@@ -773,7 +776,7 @@ PartyMenuSelect: ; 0x50457
|
||||
|
||||
PrintPartyMenuText: ; 5049a
|
||||
hlcoord 0, 14
|
||||
ld bc, $0212
|
||||
lb bc, 2, 18
|
||||
call TextBox
|
||||
ld a, [PartyCount]
|
||||
and a
|
||||
@@ -920,6 +923,7 @@ UnknownText_0x505bc: ; 0x505bc
|
||||
db "@"
|
||||
; 0x505c1
|
||||
|
||||
|
||||
Function505c1: ; 505c1
|
||||
ld e, a
|
||||
ld d, 0
|
||||
|
@@ -60,7 +60,7 @@ Pokedex: ; 40000
|
||||
; 40063
|
||||
|
||||
InitPokedex: ; 40063
|
||||
call WhiteBGMap
|
||||
call ClearBGPalettes
|
||||
call ClearSprites
|
||||
call ClearTileMap
|
||||
call Function414b7
|
||||
@@ -487,7 +487,7 @@ Function4034f: ; 4034f
|
||||
ld [wcf64], a
|
||||
pop af
|
||||
ld [wcf65], a
|
||||
call WhiteBGMap
|
||||
call ClearBGPalettes
|
||||
call DisableLCD
|
||||
call Function414fb
|
||||
call Function4038d
|
||||
|
@@ -1079,9 +1079,11 @@ ApplyMovement: ; 971fa
|
||||
ld a, c
|
||||
callba SetFlagsForMovement_1
|
||||
pop bc
|
||||
|
||||
push bc
|
||||
call SetFlagsForMovement_2
|
||||
pop bc
|
||||
|
||||
call GetScriptByte
|
||||
ld l, a
|
||||
call GetScriptByte
|
||||
@@ -1090,6 +1092,7 @@ ApplyMovement: ; 971fa
|
||||
ld b, a
|
||||
call GetMovementData
|
||||
ret c
|
||||
|
||||
ld a, SCRIPT_WAIT_MOVEMENT
|
||||
ld [ScriptMode], a
|
||||
call StopScript
|
||||
@@ -1102,6 +1105,7 @@ SetFlagsForMovement_2: ; 0x97221
|
||||
; 0x97228
|
||||
|
||||
Script_applymovement2: ; 0x97228
|
||||
; apply movement to last talked
|
||||
; script command 0x6a
|
||||
; parameters:
|
||||
; data (MovementPointerLabelParam)
|
||||
@@ -1426,12 +1430,12 @@ ShowEmoteScript: ; 973b6
|
||||
|
||||
.Show
|
||||
show_emote
|
||||
show_person
|
||||
step_sleep_1
|
||||
step_end
|
||||
|
||||
.Hide
|
||||
hide_emote
|
||||
show_person
|
||||
step_sleep_1
|
||||
step_end
|
||||
; 973c7
|
||||
|
||||
@@ -1460,8 +1464,8 @@ Script_earthquake: ; 0x973c7
|
||||
; 973eb
|
||||
|
||||
EarthquakeMovement: ; 973eb
|
||||
step_shake 16
|
||||
step_sleep 16
|
||||
step_shake 16 ; the 16 gets overwritten with the script byte
|
||||
step_sleep 16 ; the 16 gets overwritten with the lower 6 bits of the script byte
|
||||
step_end
|
||||
EarthquakeMovementEnd
|
||||
; 973f0
|
||||
@@ -2847,6 +2851,7 @@ Script_warp: ; 0x97a1d
|
||||
call LoadMapStatus
|
||||
call StopScript
|
||||
ret
|
||||
|
||||
.not_ok
|
||||
call GetScriptByte
|
||||
call GetScriptByte
|
||||
@@ -3117,6 +3122,7 @@ Script_end: ; 0x97b74
|
||||
call ExitScriptSubroutine
|
||||
jr c, .resume
|
||||
ret
|
||||
|
||||
.resume
|
||||
xor a
|
||||
ld [ScriptRunning], a
|
||||
|
2112
engine/slot_machine.asm
Executable file
2112
engine/slot_machine.asm
Executable file
File diff suppressed because it is too large
Load Diff
@@ -65,14 +65,14 @@ SpecialsPointers:: ; c029
|
||||
add_special Special_SlotMachine
|
||||
add_special Special_CardFlip
|
||||
add_special Special_DummyNonfunctionalGameCornerGame
|
||||
add_special Special_WhiteBGMapBufferScreen
|
||||
add_special FadeBlackBGMap
|
||||
add_special Special_ClearBGPalettesBufferScreen
|
||||
add_special FadeOutPalettes
|
||||
add_special Special_BattleTowerFade
|
||||
add_special Special_FadeBlackQuickly
|
||||
add_special FadeInBGMap
|
||||
add_special FadeInPalettes
|
||||
add_special Special_FadeInQuickly
|
||||
add_special Special_ReloadSpritesNoPalettes
|
||||
add_special WhiteBGMap
|
||||
add_special ClearBGPalettes
|
||||
add_special UpdateTimePals
|
||||
add_special ClearTileMap
|
||||
add_special UpdateSprites
|
||||
@@ -465,8 +465,8 @@ UnknownText_0xc3d6: ; 0xc3d6
|
||||
db "@"
|
||||
; 0xc3db
|
||||
|
||||
Special_WhiteBGMapBufferScreen: ; c3db
|
||||
call WhiteBGMap
|
||||
Special_ClearBGPalettesBufferScreen: ; c3db
|
||||
call ClearBGPalettes
|
||||
call BufferScreen
|
||||
ret
|
||||
; c3e2
|
||||
|
@@ -139,7 +139,7 @@ endr
|
||||
; 126b7
|
||||
|
||||
.Clear ; 126b7
|
||||
call WhiteBGMap
|
||||
call ClearBGPalettes
|
||||
call Call_ExitMenu
|
||||
call Function2bae
|
||||
call .DrawMenuAccount_
|
||||
@@ -529,7 +529,7 @@ StartMenu_Pokemon: ; 12976
|
||||
.choosemenu
|
||||
xor a
|
||||
ld [PartyMenuActionText], a ; Choose a POKéMON.
|
||||
call WhiteBGMap
|
||||
call ClearBGPalettes
|
||||
|
||||
.menu
|
||||
callba Function5004f
|
||||
@@ -1449,7 +1449,7 @@ MonMenu_RockSmash: ; 12f3b
|
||||
; 12f50
|
||||
|
||||
MonMenu_SweetScent: ; 12f50
|
||||
callba DoMovementFunctionc
|
||||
callba SweetScentFromMenu
|
||||
ld b, $4
|
||||
ld a, $2
|
||||
ret
|
||||
@@ -1466,7 +1466,7 @@ Function12f5b: ; 12f5b
|
||||
ld a, b
|
||||
ld [Options], a
|
||||
push af
|
||||
call WhiteBGMap
|
||||
call ClearBGPalettes
|
||||
pop af
|
||||
ret
|
||||
; 12f73
|
||||
@@ -1527,7 +1527,7 @@ ManagePokemonMoves: ; 12fba
|
||||
call MoveScreenLoop
|
||||
pop af
|
||||
ld [Options], a
|
||||
call WhiteBGMap
|
||||
call ClearBGPalettes
|
||||
|
||||
.egg
|
||||
ld a, $0
|
||||
@@ -1753,7 +1753,7 @@ String_1316b: ; 1316b
|
||||
; 13172
|
||||
|
||||
SetUpMoveScreenBG: ; 13172
|
||||
call WhiteBGMap
|
||||
call ClearBGPalettes
|
||||
call ClearTileMap
|
||||
call ClearSprites
|
||||
xor a
|
||||
|
@@ -302,7 +302,7 @@ RadioTowerRocketsScript:
|
||||
end
|
||||
|
||||
BugContestResultsWarpScript:
|
||||
special WhiteBGMap
|
||||
special ClearBGPalettes
|
||||
scall BugContestResults_CopyContestantsToResults
|
||||
setevent EVENT_ROUTE_36_NATIONAL_PARK_GATE_OFFICER_CONTEST_DAY
|
||||
clearevent EVENT_ROUTE_36_NATIONAL_PARK_GATE_OFFICER_NOT_CONTEST_DAY
|
||||
|
@@ -116,7 +116,7 @@ _UpdateTimePals:: ; 8c070
|
||||
ret
|
||||
; 8c079
|
||||
|
||||
FadeInBGMap:: ; 8c079
|
||||
FadeInPalettes:: ; 8c079
|
||||
ld c, $12
|
||||
call GetTimePalFade
|
||||
ld b, $4
|
||||
@@ -124,7 +124,7 @@ FadeInBGMap:: ; 8c079
|
||||
ret
|
||||
; 8c084
|
||||
|
||||
FadeBlackBGMap:: ; 8c084
|
||||
FadeOutPalettes:: ; 8c084
|
||||
call Function8c0c1
|
||||
ld c, $9
|
||||
call GetTimePalFade
|
||||
|
@@ -1,6 +1,6 @@
|
||||
_TitleScreen: ; 10ed67
|
||||
|
||||
call WhiteBGMap
|
||||
call ClearBGPalettes
|
||||
call ClearSprites
|
||||
call ClearTileMap
|
||||
|
||||
|
Reference in New Issue
Block a user