Merge pull request #3 from LadyMisticus/master

Bridge Code!
This commit is contained in:
Llinos Evans 2023-10-23 11:32:21 +01:00 committed by GitHub
commit 0d7a23c6ea
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 84 additions and 1 deletions

View file

@ -84,4 +84,5 @@ MapScenes::
scene_var MOUNT_MOON_SQUARE, wMountMoonSquareSceneID
scene_var MOBILE_TRADE_ROOM, wMobileTradeRoomSceneID
scene_var MOBILE_BATTLE_ROOM, wMobileBattleRoomSceneID
scene_var CERULEAN_CAVE_1F, wCeruleanCave1FSceneID
db -1 ; end

View file

@ -1503,6 +1503,9 @@ SaveScreen_LoadConnection::
jr nz, .row
ret
GenericFinishBridge::
ld a, 1
ld [wOverworldDelaySkip], a
GetMovementPermissions::
xor a
ld [wTilePermissions], a

View file

@ -63,3 +63,13 @@ MACRO end_water_wildmons
assert WATER_WILDDATA_LENGTH == @ - {CURRENT_WATER_WILDMONS_LABEL}, \
"def_water_wildmons {CURRENT_WATER_WILDMONS_MAP}: expected {d:WATER_WILDDATA_LENGTH} bytes"
ENDM
MACRO jmp
if _NARG == 1
jp \1
else
jp \1, \2
shift
endc
assert warn, (\1) - @ > 127 || (\1) - @ < -129, "jp can be jr"
ENDM

View file

@ -94,3 +94,11 @@ if _NARG == 0
sine_table 32
endc
ENDM
MACRO changebridgeblock
; lb de, \1 + 4, \2 + 4
; call GetBlockLocation
ld hl, wOverworldMapBlocks + (\2 / 2 + 3) * (\4_WIDTH + 6) + \1 / 2 + 3
; hard-coding the above calculation for efficiency
ld [hl], \3
ENDM

View file

@ -1077,4 +1077,13 @@ MACRO checkmaplockedmons
db checkmaplockedmons_command
ENDM
MACRO callthisasm
; "callasm .asm\@" causes a "File stack dump too long, got truncated"
; error due to the long filename:linenumber trace of nested macros.
db callasm_command
dba .asm\@
end
.asm\@
ENDM
DEF NUM_EVENT_COMMANDS EQU const_value

View file

@ -2,6 +2,48 @@ CeruleanCave1F_MapScripts:
def_scene_scripts
def_callbacks
CeruleanCave1FTileScript:
checkscene
iftrue .underfoot
callasm CeruleanCave1F_OverheadBridgeAsm
endcallback
.underfoot:
callasm CeruleanCave1F_UnderfootBridgeAsm
endcallback
CeruleanCave1F_OverheadBridgeAsm:
changebridgeblock 20, 2, $ea, CERULEAN_CAVE_1F
changebridgeblock 22, 2, $eb, CERULEAN_CAVE_1F
changebridgeblock 20, 4, $ee, CERULEAN_CAVE_1F
changebridgeblock 22, 4, $ef, CERULEAN_CAVE_1F
changebridgeblock 20, 6, $59, CERULEAN_CAVE_1F
changebridgeblock 22, 6, $5b, CERULEAN_CAVE_1F
jmp BufferScreen
CeruleanCave1F_UnderfootBridgeAsm:
changebridgeblock 20, 2, $e8, CERULEAN_CAVE_1F
changebridgeblock 22, 2, $e9, CERULEAN_CAVE_1F
changebridgeblock 20, 4, $ec, CERULEAN_CAVE_1F
changebridgeblock 22, 4, $ed, CERULEAN_CAVE_1F
changebridgeblock 20, 6, $55, CERULEAN_CAVE_1F
changebridgeblock 22, 6, $57, CERULEAN_CAVE_1F
jmp BufferScreen
CeruleanCave1FBridgeOverheadTrigger:
callasm CeruleanCave1F_OverheadBridgeAsm
callthisasm
xor a
jr CeruleanCave1F_FinishBridge
CeruleanCave1FBridgeUnderfootTrigger:
callasm CeruleanCave1F_UnderfootBridgeAsm
callthisasm
ld a, $1
CeruleanCave1F_FinishBridge:
ld [wWalkingOnBridge], a
ld [wCeruleanCave1FSceneID], a ; setscene a
jmp GenericFinishBridge
CeruleanCave1F_MapEvents:
def_warp_events
@ -15,6 +57,12 @@ CeruleanCave1F_MapEvents:
warp_event 5, 15, CERULEAN_CAVE_2F, 6
def_coord_events
coord_event 20, 4, 1, CeruleanCave1FBridgeOverheadTrigger
coord_event 20, 5, 1, CeruleanCave1FBridgeOverheadTrigger
coord_event 23, 4, 1, CeruleanCave1FBridgeOverheadTrigger
coord_event 23, 5, 1, CeruleanCave1FBridgeOverheadTrigger
coord_event 21, 7, 0, CeruleanCave1FBridgeUnderfootTrigger
coord_event 22, 7, 0, CeruleanCave1FBridgeUnderfootTrigger
def_bg_events
bg_event 10, 13, BGEVENT_ITEM + ULTRA_BALL, EVENT_CERULEAN_CAVE_1F_HIDDEN_ULTRA_BALL

View file

@ -1838,7 +1838,7 @@ wBufferMon:: party_struct wBufferMon
ds 8
wMonOrItemNameBuffer:: ds NAME_LENGTH
ds NAME_LENGTH
wOverworldDelaySkip:: db
SECTION UNION "Miscellaneous WRAM 1", WRAMX
@ -3120,6 +3120,7 @@ wFastShipB1FSceneID:: db
wMountMoonSquareSceneID:: db
wMobileTradeRoomSceneID:: db
wMobileBattleRoomSceneID:: db
wCeruleanCave1FSceneID:: db
ds 49
@ -3235,6 +3236,9 @@ wdc41:: ds 1
wdc42:: ds 8
wBuenasPassword:: db
wBlueCardBalance:: db
wWalkingOnBridge:: db
wDailyRematchFlags:: ds 4
wDailyPhoneItemFlags:: ds 4
wDailyPhoneTimeOfDayFlags:: ds 4