14
charmap.asm
@ -181,17 +181,25 @@ pushc
|
|||||||
charmap "\r", $0d
|
charmap "\r", $0d
|
||||||
popc
|
popc
|
||||||
|
|
||||||
; Background tile equivalences (vTiles1)
|
;; Background tile equivalences (vTiles1)
|
||||||
DEF OVERWORLD_FRAME_FIRST_TILE EQU "┌"
|
DEF OVERWORLD_FRAME_FIRST_TILE EQU "┌"
|
||||||
DEF BOARD_MENU_BG_FIRST_TILE EQU "A"
|
DEF BOARD_MENU_BG_FIRST_TILE EQU "A"
|
||||||
|
|
||||||
; Object tile locations (vTiles0)
|
;; Object tile locations (vTiles0)
|
||||||
DEF SECONDARY_SPRITES_FIRST_TILE EQU $20
|
DEF SECONDARY_SPRITES_FIRST_TILE EQU $20
|
||||||
|
|
||||||
|
; Menu and overworld
|
||||||
DEF BOARD_MENU_OAM_FIRST_TILE EQU SECONDARY_SPRITES_FIRST_TILE
|
DEF BOARD_MENU_OAM_FIRST_TILE EQU SECONDARY_SPRITES_FIRST_TILE
|
||||||
DEF DIE_ROLL_OAM_FIRST_TILE EQU BOARD_MENU_OAM_FIRST_TILE + 45 ; max(BOARD_MENU_ITEM_SIZE * NUM_BOARD_MENU_ITEMS, DIE_SIZE * 10)
|
DEF DIE_ROLL_OAM_FIRST_TILE EQU BOARD_MENU_OAM_FIRST_TILE + 45 ; max(BOARD_MENU_ITEM_SIZE * NUM_BOARD_MENU_ITEMS, DIE_SIZE * 10)
|
||||||
DEF DIE_NUMBERS_OAM_FIRST_TILE EQU BOARD_MENU_OAM_FIRST_TILE
|
DEF DIE_NUMBERS_OAM_FIRST_TILE EQU BOARD_MENU_OAM_FIRST_TILE
|
||||||
|
|
||||||
|
; Branch space
|
||||||
DEF BRANCH_ARROWS_OAM_FIRST_TILE EQU DIE_NUMBERS_OAM_FIRST_TILE + 40 ; DIE_NUMBER_SIZE * 10
|
DEF BRANCH_ARROWS_OAM_FIRST_TILE EQU DIE_NUMBERS_OAM_FIRST_TILE + 40 ; DIE_NUMBER_SIZE * 10
|
||||||
|
DEF BRANCH_LEGEND_OAM_FIRST_TILE EQU BRANCH_ARROWS_OAM_FIRST_TILE + 4 ; BRANCH_ARROWS_OAM_FIRST_TILE + NUM_DIRECTIONS
|
||||||
|
|
||||||
DEF VIEW_MAP_MODE_OAM_FIRST_TILE EQU BOARD_MENU_OAM_FIRST_TILE + 45 ; max(BRANCH_ARROWS_OAM_FIRST_TILE + NUM_DIRECTIONS, BOARD_MENU_ITEM_SIZE * NUM_BOARD_MENU_ITEMS)
|
; View map mode (from overworld or from branch space)
|
||||||
|
DEF VIEW_MAP_MODE_ARROWS_OAM_FIRST_TILE EQU BOARD_MENU_OAM_FIRST_TILE + 45 ; max(BRANCH_ARROWS_OAM_FIRST_TILE + NUM_DIRECTIONS, BOARD_MENU_ITEM_SIZE * NUM_BOARD_MENU_ITEMS)
|
||||||
|
DEF VIEW_MAP_MODE_LEGEND_OAM_FIRST_FILE EQU VIEW_MAP_MODE_ARROWS_OAM_FIRST_TILE + 4 ; VIEW_MAP_MODE_ARROWS_OAM_FIRST_TILE + NUM_DIRECTIONS
|
||||||
|
|
||||||
|
; Talker event
|
||||||
|
DEF TALKER_EVENT_LEGEND_OAM_FIRST_TILE EQU DIE_NUMBERS_OAM_FIRST_TILE + 40 ; DIE_NUMBER_SIZE * 10
|
||||||
|
@ -11,8 +11,9 @@ DEF AUTO_INPUT EQU $ff
|
|||||||
const SECONDARYSPRITES_BOARD_MENU_F ; 0
|
const SECONDARYSPRITES_BOARD_MENU_F ; 0
|
||||||
const SECONDARYSPRITES_DIE_ROLL_F ; 1
|
const SECONDARYSPRITES_DIE_ROLL_F ; 1
|
||||||
const SECONDARYSPRITES_SPACES_LEFT_F ; 2
|
const SECONDARYSPRITES_SPACES_LEFT_F ; 2
|
||||||
const SECONDARYSPRITES_BRANCH_ARROWS_F ; 3
|
const SECONDARYSPRITES_BRANCH_SPACE_F ; 3
|
||||||
const SECONDARYSPRITES_VIEW_MAP_MODE_F ; 4
|
const SECONDARYSPRITES_VIEW_MAP_MODE_F ; 4
|
||||||
|
const SECONDARYSPRITES_TALKER_EVENT_F ; 5
|
||||||
|
|
||||||
; wCurDexMode::
|
; wCurDexMode::
|
||||||
const_def
|
const_def
|
||||||
|
@ -1,3 +1,45 @@
|
|||||||
|
; OAM tile grid
|
||||||
|
/*
|
||||||
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
||||||
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||||
|
| | | | | | | | | | | | | | | | | | | | | 2
|
||||||
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||||
|
| | | | | | | | | | | | | | | | | | | | | 3
|
||||||
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||||
|
| | | | | | | | | | | | | | | | | | | | | 4
|
||||||
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||||
|
| | | | | | | | | | | | | | | | | | | | | 5
|
||||||
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||||
|
| | | | | | | | | | | | | | | | | | | | | 6
|
||||||
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||||
|
| | | | | | | | | | | | | | | | | | | | | 7
|
||||||
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||||
|
| | | | | | | | | | | | | | | | | | | | | 8
|
||||||
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||||
|
| | | | | | | | | | | | | | | | | | | | | 9
|
||||||
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||||
|
| | | | | | | | | | | | | | | | | | | | |10
|
||||||
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||||
|
| | | | | | | | | | | | | | | | | | | | |11
|
||||||
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||||
|
| | | | | | | | | | | | | | | | | | | | |12
|
||||||
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||||
|
| | | | | | | | | | | | | | | | | | | | |13
|
||||||
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||||
|
| | | | | | | | | | | | | | | | | | | | |14
|
||||||
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||||
|
| | | | | | | | | | | | | | | | | | | | |15
|
||||||
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||||
|
| | | | | | | | | | | | | | | | | | | | |16
|
||||||
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||||
|
| | | | | | | | | | | | | | | | | | | | |17
|
||||||
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||||
|
| | | | | | | | | | | | | | | | | | | | |18
|
||||||
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||||
|
| | | | | | | | | | | | | | | | | | | | |19
|
||||||
|
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|
||||||
|
*/
|
||||||
|
|
||||||
BoardMenuOAM:
|
BoardMenuOAM:
|
||||||
; BOARDMENUITEM_DIE
|
; BOARDMENUITEM_DIE
|
||||||
dbsprite 2, 16, 4, 0, BOARD_MENU_OAM_FIRST_TILE, PAL_OW_MISC
|
dbsprite 2, 16, 4, 0, BOARD_MENU_OAM_FIRST_TILE, PAL_OW_MISC
|
||||||
@ -121,9 +163,42 @@ BranchArrowsOAM:
|
|||||||
dbsprite 9, 8, 4, 0, BRANCH_ARROWS_OAM_FIRST_TILE + 2, PAL_OW_RED ; up
|
dbsprite 9, 8, 4, 0, BRANCH_ARROWS_OAM_FIRST_TILE + 2, PAL_OW_RED ; up
|
||||||
dbsprite 9, 12, 4, 0, BRANCH_ARROWS_OAM_FIRST_TILE + 3, PAL_OW_RED ; down
|
dbsprite 9, 12, 4, 0, BRANCH_ARROWS_OAM_FIRST_TILE + 3, PAL_OW_RED ; down
|
||||||
|
|
||||||
|
BranchLegendOAM:
|
||||||
|
; the PAL_ argument is unused (actual palette comes from the player gender)
|
||||||
|
dbsprite 2, 16, 0, 4, BRANCH_LEGEND_OAM_FIRST_TILE + 2, PAL_OW_RED ; dpad icon
|
||||||
|
dbsprite 3, 16, 0, 4, BRANCH_LEGEND_OAM_FIRST_TILE + 5, PAL_OW_RED ; "choose" icon
|
||||||
|
dbsprite 4, 16, 0, 4, BRANCH_LEGEND_OAM_FIRST_TILE + 6, PAL_OW_RED ;
|
||||||
|
dbsprite 5, 16, 0, 4, BRANCH_LEGEND_OAM_FIRST_TILE + 7, PAL_OW_RED ;
|
||||||
|
dbsprite 2, 18, 0, 0, BRANCH_LEGEND_OAM_FIRST_TILE + 3, PAL_OW_RED ; select icon
|
||||||
|
dbsprite 3, 18, 0, 0, BRANCH_LEGEND_OAM_FIRST_TILE + 8, PAL_OW_RED ; "view" icon
|
||||||
|
dbsprite 4, 18, 0, 0, BRANCH_LEGEND_OAM_FIRST_TILE + 9, PAL_OW_RED ;
|
||||||
|
dbsprite 5, 18, 0, 0, BRANCH_LEGEND_OAM_FIRST_TILE + 10, PAL_OW_RED ;
|
||||||
|
|
||||||
ViewMapModeArrowsOAM:
|
ViewMapModeArrowsOAM:
|
||||||
; the PAL_ argument is unused (actual palette comes from the player gender)
|
; the PAL_ argument is unused (actual palette comes from the player gender)
|
||||||
dbsprite 10, 18, 4, 4, VIEW_MAP_MODE_OAM_FIRST_TILE + 3, PAL_OW_RED ; down
|
dbsprite 10, 18, 4, 4, VIEW_MAP_MODE_ARROWS_OAM_FIRST_TILE + 3, PAL_OW_RED ; down
|
||||||
dbsprite 10, 2, 4, 4, VIEW_MAP_MODE_OAM_FIRST_TILE + 2, PAL_OW_RED ; up
|
dbsprite 10, 2, 4, 4, VIEW_MAP_MODE_ARROWS_OAM_FIRST_TILE + 2, PAL_OW_RED ; up
|
||||||
dbsprite 1, 10, 4, 0, VIEW_MAP_MODE_OAM_FIRST_TILE + 1, PAL_OW_RED ; left
|
dbsprite 1, 10, 4, 0, VIEW_MAP_MODE_ARROWS_OAM_FIRST_TILE + 1, PAL_OW_RED ; left
|
||||||
dbsprite 19, 10, 4, 0, VIEW_MAP_MODE_OAM_FIRST_TILE, PAL_OW_RED ; right
|
dbsprite 19, 10, 4, 0, VIEW_MAP_MODE_ARROWS_OAM_FIRST_TILE, PAL_OW_RED ; right
|
||||||
|
|
||||||
|
ViewMapModeLegendOAM:
|
||||||
|
; the PAL_ argument is unused (actual palette comes from the player gender)
|
||||||
|
dbsprite 2, 16, 0, 4, VIEW_MAP_MODE_LEGEND_OAM_FIRST_FILE + 2, PAL_OW_RED ; dpad icon
|
||||||
|
dbsprite 3, 16, 0, 4, VIEW_MAP_MODE_LEGEND_OAM_FIRST_FILE + 5, PAL_OW_RED ; "move" icon
|
||||||
|
dbsprite 4, 16, 0, 4, VIEW_MAP_MODE_LEGEND_OAM_FIRST_FILE + 6, PAL_OW_RED ;
|
||||||
|
dbsprite 5, 16, 0, 4, VIEW_MAP_MODE_LEGEND_OAM_FIRST_FILE + 7, PAL_OW_RED ;
|
||||||
|
dbsprite 2, 18, 0, 0, VIEW_MAP_MODE_LEGEND_OAM_FIRST_FILE + 1, PAL_OW_RED ; B icon
|
||||||
|
dbsprite 3, 18, 0, 0, VIEW_MAP_MODE_LEGEND_OAM_FIRST_FILE + 8, PAL_OW_RED ; "back" icon
|
||||||
|
dbsprite 4, 18, 0, 0, VIEW_MAP_MODE_LEGEND_OAM_FIRST_FILE + 9, PAL_OW_RED ;
|
||||||
|
dbsprite 5, 18, 0, 0, VIEW_MAP_MODE_LEGEND_OAM_FIRST_FILE + 10, PAL_OW_RED ;
|
||||||
|
|
||||||
|
TalkerEventLegendOAM:
|
||||||
|
; the PAL_ argument is unused (actual palette comes from the player gender)
|
||||||
|
dbsprite 2, 16, 0, 4, TALKER_EVENT_LEGEND_OAM_FIRST_TILE + 0, PAL_OW_RED ; A icon
|
||||||
|
dbsprite 3, 16, 0, 4, TALKER_EVENT_LEGEND_OAM_FIRST_TILE + 5, PAL_OW_RED ; "talk" icon
|
||||||
|
dbsprite 4, 16, 0, 4, TALKER_EVENT_LEGEND_OAM_FIRST_TILE + 6, PAL_OW_RED ;
|
||||||
|
dbsprite 5, 16, 0, 4, TALKER_EVENT_LEGEND_OAM_FIRST_TILE + 7, PAL_OW_RED ;
|
||||||
|
dbsprite 2, 18, 0, 0, TALKER_EVENT_LEGEND_OAM_FIRST_TILE + 1, PAL_OW_RED ; B icon
|
||||||
|
dbsprite 3, 18, 0, 0, TALKER_EVENT_LEGEND_OAM_FIRST_TILE + 8, PAL_OW_RED ; "skip" icon
|
||||||
|
dbsprite 4, 18, 0, 0, TALKER_EVENT_LEGEND_OAM_FIRST_TILE + 9, PAL_OW_RED ;
|
||||||
|
dbsprite 5, 18, 0, 0, TALKER_EVENT_LEGEND_OAM_FIRST_TILE + 10, PAL_OW_RED ;
|
||||||
|
@ -176,9 +176,9 @@ ArriveToBranchSpaceScript:
|
|||||||
call LoadTempSpaceBranchData
|
call LoadTempSpaceBranchData
|
||||||
call .DisableDirectionsRequiringLockedTechniques
|
call .DisableDirectionsRequiringLockedTechniques
|
||||||
; draw arrows for valid directions
|
; draw arrows for valid directions
|
||||||
farcall LoadBranchArrowsGFX
|
farcall LoadBranchSpaceGFX
|
||||||
ld hl, wDisplaySecondarySprites
|
ld hl, wDisplaySecondarySprites
|
||||||
set SECONDARYSPRITES_BRANCH_ARROWS_F, [hl]
|
set SECONDARYSPRITES_BRANCH_SPACE_F, [hl]
|
||||||
; update sprites
|
; update sprites
|
||||||
jp UpdateActiveSprites
|
jp UpdateActiveSprites
|
||||||
|
|
||||||
@ -260,7 +260,7 @@ PromptPlayerToChooseBranchDirection:
|
|||||||
ld a, [hl]
|
ld a, [hl]
|
||||||
ld [wCurSpaceNextSpace], a
|
ld [wCurSpaceNextSpace], a
|
||||||
ld hl, wDisplaySecondarySprites
|
ld hl, wDisplaySecondarySprites
|
||||||
res SECONDARYSPRITES_BRANCH_ARROWS_F, [hl]
|
res SECONDARYSPRITES_BRANCH_SPACE_F, [hl]
|
||||||
ld a, TRUE
|
ld a, TRUE
|
||||||
ldh [hScriptVar], a
|
ldh [hScriptVar], a
|
||||||
jp PlayClickSFX
|
jp PlayClickSFX
|
||||||
@ -292,7 +292,7 @@ PromptPlayerToChooseBranchDirection:
|
|||||||
set INVISIBLE_F, [hl]
|
set INVISIBLE_F, [hl]
|
||||||
ld hl, wDisplaySecondarySprites
|
ld hl, wDisplaySecondarySprites
|
||||||
res SECONDARYSPRITES_SPACES_LEFT_F, [hl]
|
res SECONDARYSPRITES_SPACES_LEFT_F, [hl]
|
||||||
res SECONDARYSPRITES_BRANCH_ARROWS_F, [hl]
|
res SECONDARYSPRITES_BRANCH_SPACE_F, [hl]
|
||||||
farcall MockPlayerObject
|
farcall MockPlayerObject
|
||||||
call UpdateSprites
|
call UpdateSprites
|
||||||
farcall LoadViewMapModeGFX
|
farcall LoadViewMapModeGFX
|
||||||
|
@ -63,9 +63,15 @@ SeenByTalkerScript::
|
|||||||
and TALKEREVENTTYPE_MASK
|
and TALKEREVENTTYPE_MASK
|
||||||
cp TALKEREVENTTYPE_MANDATORY
|
cp TALKEREVENTTYPE_MANDATORY
|
||||||
jr z, .skip
|
jr z, .skip
|
||||||
|
farcall LoadTalkerEventLegendGFX
|
||||||
|
ld hl, wDisplaySecondarySprites
|
||||||
|
set SECONDARYSPRITES_TALKER_EVENT_F, [hl]
|
||||||
|
call UpdateActiveSprites
|
||||||
call JoyWaitAorB
|
call JoyWaitAorB
|
||||||
call PlayClickSFX
|
call PlayClickSFX
|
||||||
call WaitSFX
|
call WaitSFX
|
||||||
|
ld hl, wDisplaySecondarySprites
|
||||||
|
res SECONDARYSPRITES_TALKER_EVENT_F, [hl]
|
||||||
ldh a, [hJoyPressed]
|
ldh a, [hJoyPressed]
|
||||||
bit A_BUTTON_F, a
|
bit A_BUTTON_F, a
|
||||||
jr z, .skip ; jump if b was pressed
|
jr z, .skip ; jump if b was pressed
|
||||||
|
@ -39,11 +39,21 @@ LoadBoardMenuDieNumbersGFX::
|
|||||||
.DieNumbersOAMGFX:
|
.DieNumbersOAMGFX:
|
||||||
INCBIN "gfx/board/die_numbers.2bpp"
|
INCBIN "gfx/board/die_numbers.2bpp"
|
||||||
|
|
||||||
LoadBranchArrowsGFX::
|
LoadBranchSpaceGFX::
|
||||||
ld de, .BranchArrowsOAMGFX
|
ld de, .BranchArrowsOAMGFX
|
||||||
ld hl, vTiles0 + BRANCH_ARROWS_OAM_FIRST_TILE * LEN_2BPP_TILE
|
ld hl, vTiles0 + BRANCH_ARROWS_OAM_FIRST_TILE * LEN_2BPP_TILE
|
||||||
lb bc, BANK(.BranchArrowsOAMGFX), NUM_DIRECTIONS
|
lb bc, BANK(.BranchArrowsOAMGFX), NUM_DIRECTIONS
|
||||||
call Get2bppViaHDMA
|
call Get2bppViaHDMA
|
||||||
|
ld hl, vTiles0 + BRANCH_LEGEND_OAM_FIRST_TILE * LEN_2BPP_TILE
|
||||||
|
call LoadLegendButtonsGFX
|
||||||
|
ld de, LegendChooseOAMGFX
|
||||||
|
ld hl, vTiles0 + (BRANCH_LEGEND_OAM_FIRST_TILE + 5) * LEN_2BPP_TILE
|
||||||
|
lb bc, BANK(LegendChooseOAMGFX), 3
|
||||||
|
call Get2bppViaHDMA
|
||||||
|
ld de, LegendViewOAMGFX
|
||||||
|
ld hl, vTiles0 + (BRANCH_LEGEND_OAM_FIRST_TILE + 8) * LEN_2BPP_TILE
|
||||||
|
lb bc, BANK(LegendViewOAMGFX), 3
|
||||||
|
call Get2bppViaHDMA
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.BranchArrowsOAMGFX:
|
.BranchArrowsOAMGFX:
|
||||||
@ -51,10 +61,60 @@ INCBIN "gfx/board/branch_arrows.2bpp"
|
|||||||
|
|
||||||
LoadViewMapModeGFX::
|
LoadViewMapModeGFX::
|
||||||
ld de, .ViewMapModeArrowsOAMGFX
|
ld de, .ViewMapModeArrowsOAMGFX
|
||||||
ld hl, vTiles0 + VIEW_MAP_MODE_OAM_FIRST_TILE * LEN_2BPP_TILE
|
ld hl, vTiles0 + VIEW_MAP_MODE_ARROWS_OAM_FIRST_TILE * LEN_2BPP_TILE
|
||||||
lb bc, BANK(.ViewMapModeArrowsOAMGFX), NUM_DIRECTIONS
|
lb bc, BANK(.ViewMapModeArrowsOAMGFX), NUM_DIRECTIONS
|
||||||
call Get2bppViaHDMA
|
call Get2bppViaHDMA
|
||||||
|
ld hl, vTiles0 + VIEW_MAP_MODE_LEGEND_OAM_FIRST_FILE * LEN_2BPP_TILE
|
||||||
|
call LoadLegendButtonsGFX
|
||||||
|
ld de, LegendMoveOAMGFX
|
||||||
|
ld hl, vTiles0 + (VIEW_MAP_MODE_LEGEND_OAM_FIRST_FILE + 5) * LEN_2BPP_TILE
|
||||||
|
lb bc, BANK(LegendMoveOAMGFX), 3
|
||||||
|
call Get2bppViaHDMA
|
||||||
|
ld de, LegendBackOAMGFX
|
||||||
|
ld hl, vTiles0 + (VIEW_MAP_MODE_LEGEND_OAM_FIRST_FILE + 8) * LEN_2BPP_TILE
|
||||||
|
lb bc, BANK(LegendBackOAMGFX), 3
|
||||||
|
call Get2bppViaHDMA
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.ViewMapModeArrowsOAMGFX:
|
.ViewMapModeArrowsOAMGFX:
|
||||||
INCBIN "gfx/board/view_map_arrows.2bpp"
|
INCBIN "gfx/board/view_map_arrows.2bpp"
|
||||||
|
|
||||||
|
LoadTalkerEventLegendGFX::
|
||||||
|
ld hl, vTiles0 + TALKER_EVENT_LEGEND_OAM_FIRST_TILE * LEN_2BPP_TILE
|
||||||
|
call LoadLegendButtonsGFX
|
||||||
|
ld de, LegendTalkOAMGFX
|
||||||
|
ld hl, vTiles0 + (TALKER_EVENT_LEGEND_OAM_FIRST_TILE + 5) * LEN_2BPP_TILE
|
||||||
|
lb bc, BANK(LegendTalkOAMGFX), 3
|
||||||
|
call Get2bppViaHDMA
|
||||||
|
ld de, LegendSkipOAMGFX
|
||||||
|
ld hl, vTiles0 + (TALKER_EVENT_LEGEND_OAM_FIRST_TILE + 8) * LEN_2BPP_TILE
|
||||||
|
lb bc, BANK(LegendTalkOAMGFX), 3
|
||||||
|
call Get2bppViaHDMA
|
||||||
|
ret
|
||||||
|
|
||||||
|
LoadLegendButtonsGFX:
|
||||||
|
ld de, .LegendButtonsOAMGFX
|
||||||
|
lb bc, BANK(.LegendButtonsOAMGFX), 5
|
||||||
|
call Get2bppViaHDMA
|
||||||
|
ret
|
||||||
|
|
||||||
|
.LegendButtonsOAMGFX:
|
||||||
|
INCBIN "gfx/legend/buttons.2bpp"
|
||||||
|
|
||||||
|
LegendTalkOAMGFX:
|
||||||
|
INCBIN "gfx/legend/talk.2bpp"
|
||||||
|
|
||||||
|
LegendSkipOAMGFX:
|
||||||
|
INCBIN "gfx/legend/skip.2bpp"
|
||||||
|
|
||||||
|
LegendChooseOAMGFX:
|
||||||
|
INCBIN "gfx/legend/choose.2bpp"
|
||||||
|
|
||||||
|
LegendViewOAMGFX:
|
||||||
|
INCBIN "gfx/legend/view.2bpp"
|
||||||
|
|
||||||
|
LegendMoveOAMGFX:
|
||||||
|
INCBIN "gfx/legend/move.2bpp"
|
||||||
|
|
||||||
|
LegendBackOAMGFX:
|
||||||
|
INCBIN "gfx/legend/back.2bpp"
|
||||||
|
@ -3112,10 +3112,12 @@ InitSecondarySprites:
|
|||||||
call nz, InitDieRollSprites
|
call nz, InitDieRollSprites
|
||||||
bit SECONDARYSPRITES_SPACES_LEFT_F, a
|
bit SECONDARYSPRITES_SPACES_LEFT_F, a
|
||||||
call nz, InitSpacesLeftNumberSprites
|
call nz, InitSpacesLeftNumberSprites
|
||||||
bit SECONDARYSPRITES_BRANCH_ARROWS_F, a
|
bit SECONDARYSPRITES_BRANCH_SPACE_F, a
|
||||||
call nz, InitBranchArrowsSprites
|
call nz, InitBranchArrowsSprites
|
||||||
bit SECONDARYSPRITES_VIEW_MAP_MODE_F, a
|
bit SECONDARYSPRITES_VIEW_MAP_MODE_F, a
|
||||||
call nz, InitViewMapModeSprites
|
call nz, InitViewMapModeSprites
|
||||||
|
bit SECONDARYSPRITES_TALKER_EVENT_F, a
|
||||||
|
call nz, InitTalkerEventSprites
|
||||||
ret
|
ret
|
||||||
|
|
||||||
InitBoardMenuSprites:
|
InitBoardMenuSprites:
|
||||||
@ -3200,6 +3202,7 @@ InitSpacesLeftNumberSprites:
|
|||||||
InitBranchArrowsSprites:
|
InitBranchArrowsSprites:
|
||||||
push af
|
push af
|
||||||
|
|
||||||
|
;; arrows
|
||||||
; find the beginning of free space in OAM, and assure there's space for 4 objects
|
; find the beginning of free space in OAM, and assure there's space for 4 objects
|
||||||
ldh a, [hUsedSpriteIndex]
|
ldh a, [hUsedSpriteIndex]
|
||||||
cp (NUM_SPRITE_OAM_STRUCTS * SPRITEOAMSTRUCT_LENGTH) - (NUM_DIRECTIONS * SPRITEOAMSTRUCT_LENGTH) + 1
|
cp (NUM_SPRITE_OAM_STRUCTS * SPRITEOAMSTRUCT_LENGTH) - (NUM_DIRECTIONS * SPRITEOAMSTRUCT_LENGTH) + 1
|
||||||
@ -3252,6 +3255,35 @@ InitBranchArrowsSprites:
|
|||||||
dec c
|
dec c
|
||||||
jr nz, .loop
|
jr nz, .loop
|
||||||
|
|
||||||
|
;; legend
|
||||||
|
; find the beginning of free space in OAM, and assure there's space for 8 objects
|
||||||
|
ldh a, [hUsedSpriteIndex]
|
||||||
|
cp (NUM_SPRITE_OAM_STRUCTS * SPRITEOAMSTRUCT_LENGTH) - (8 * SPRITEOAMSTRUCT_LENGTH) + 1
|
||||||
|
jr nc, .oam_full
|
||||||
|
; copy the sprite data of the legend to the available space in OAM.
|
||||||
|
; the palette byte overrides that data as it matches the player's color palette.
|
||||||
|
ld e, a
|
||||||
|
ld d, HIGH(wShadowOAM)
|
||||||
|
gender_to_pal
|
||||||
|
ld b, a
|
||||||
|
ld c, 8 ; number of objects
|
||||||
|
ld hl, BranchLegendOAM
|
||||||
|
.loop2
|
||||||
|
push bc
|
||||||
|
ld bc, SPRITEOAMSTRUCT_LENGTH - 1
|
||||||
|
call CopyBytes
|
||||||
|
pop bc
|
||||||
|
ld a, b ; palette
|
||||||
|
ld [de], a
|
||||||
|
inc hl
|
||||||
|
inc de
|
||||||
|
dec c
|
||||||
|
jr nz, .loop2
|
||||||
|
|
||||||
|
ldh a, [hUsedSpriteIndex]
|
||||||
|
add (8 * SPRITEOAMSTRUCT_LENGTH)
|
||||||
|
ldh [hUsedSpriteIndex], a
|
||||||
|
|
||||||
.oam_full
|
.oam_full
|
||||||
pop af
|
pop af
|
||||||
ret
|
ret
|
||||||
@ -3259,6 +3291,7 @@ InitBranchArrowsSprites:
|
|||||||
InitViewMapModeSprites:
|
InitViewMapModeSprites:
|
||||||
push af
|
push af
|
||||||
|
|
||||||
|
;; arrows
|
||||||
; find the beginning of free space in OAM, and assure there's space for 4 objects
|
; find the beginning of free space in OAM, and assure there's space for 4 objects
|
||||||
ldh a, [hUsedSpriteIndex]
|
ldh a, [hUsedSpriteIndex]
|
||||||
cp (NUM_SPRITE_OAM_STRUCTS * SPRITEOAMSTRUCT_LENGTH) - (NUM_DIRECTIONS * SPRITEOAMSTRUCT_LENGTH) + 1
|
cp (NUM_SPRITE_OAM_STRUCTS * SPRITEOAMSTRUCT_LENGTH) - (NUM_DIRECTIONS * SPRITEOAMSTRUCT_LENGTH) + 1
|
||||||
@ -3307,6 +3340,68 @@ InitViewMapModeSprites:
|
|||||||
dec c
|
dec c
|
||||||
jr nz, .loop
|
jr nz, .loop
|
||||||
|
|
||||||
|
;; legend
|
||||||
|
; find the beginning of free space in OAM, and assure there's space for 8 objects
|
||||||
|
ldh a, [hUsedSpriteIndex]
|
||||||
|
cp (NUM_SPRITE_OAM_STRUCTS * SPRITEOAMSTRUCT_LENGTH) - (8 * SPRITEOAMSTRUCT_LENGTH) + 1
|
||||||
|
jr nc, .oam_full
|
||||||
|
; copy the sprite data of the legend to the available space in OAM.
|
||||||
|
; the palette byte overrides that data as it matches the player's color palette.
|
||||||
|
ld e, a
|
||||||
|
ld d, HIGH(wShadowOAM)
|
||||||
|
gender_to_pal
|
||||||
|
ld b, a
|
||||||
|
ld c, 8 ; number of objects
|
||||||
|
ld hl, ViewMapModeLegendOAM
|
||||||
|
.loop2
|
||||||
|
push bc
|
||||||
|
ld bc, SPRITEOAMSTRUCT_LENGTH - 1
|
||||||
|
call CopyBytes
|
||||||
|
pop bc
|
||||||
|
ld a, b ; palette
|
||||||
|
ld [de], a
|
||||||
|
inc hl
|
||||||
|
inc de
|
||||||
|
dec c
|
||||||
|
jr nz, .loop2
|
||||||
|
|
||||||
|
ldh a, [hUsedSpriteIndex]
|
||||||
|
add (8 * SPRITEOAMSTRUCT_LENGTH)
|
||||||
|
ldh [hUsedSpriteIndex], a
|
||||||
|
|
||||||
|
.oam_full
|
||||||
|
pop af
|
||||||
|
ret
|
||||||
|
|
||||||
|
InitTalkerEventSprites:
|
||||||
|
; find the beginning of free space in OAM, and assure there's space for 8 objects
|
||||||
|
ldh a, [hUsedSpriteIndex]
|
||||||
|
cp (NUM_SPRITE_OAM_STRUCTS * SPRITEOAMSTRUCT_LENGTH) - (8 * SPRITEOAMSTRUCT_LENGTH) + 1
|
||||||
|
jr nc, .oam_full
|
||||||
|
; copy the sprite data of the legend to the available space in OAM.
|
||||||
|
; the palette byte overrides that data as it matches the player's color palette.
|
||||||
|
ld e, a
|
||||||
|
ld d, HIGH(wShadowOAM)
|
||||||
|
gender_to_pal
|
||||||
|
ld b, a
|
||||||
|
ld c, 8 ; number of objects
|
||||||
|
ld hl, TalkerEventLegendOAM
|
||||||
|
.loop2
|
||||||
|
push bc
|
||||||
|
ld bc, SPRITEOAMSTRUCT_LENGTH - 1
|
||||||
|
call CopyBytes
|
||||||
|
pop bc
|
||||||
|
ld a, b ; palette
|
||||||
|
ld [de], a
|
||||||
|
inc hl
|
||||||
|
inc de
|
||||||
|
dec c
|
||||||
|
jr nz, .loop2
|
||||||
|
|
||||||
|
ldh a, [hUsedSpriteIndex]
|
||||||
|
add (8 * SPRITEOAMSTRUCT_LENGTH)
|
||||||
|
ldh [hUsedSpriteIndex], a
|
||||||
|
|
||||||
.oam_full
|
.oam_full
|
||||||
pop af
|
pop af
|
||||||
ret
|
ret
|
||||||
|
@ -1241,9 +1241,15 @@ Script_reloadmapafterviewmapmode:
|
|||||||
jr z, .in_board_menu
|
jr z, .in_board_menu
|
||||||
|
|
||||||
; .in_branch_space
|
; .in_branch_space
|
||||||
|
; load branch space gfx (overwritten by view map mode gfx)
|
||||||
|
; refresh sprites first without view map mode objects to avoid visual glitch
|
||||||
|
ld hl, wDisplaySecondarySprites
|
||||||
|
res SECONDARYSPRITES_VIEW_MAP_MODE_F, [hl]
|
||||||
|
call UpdateActiveSprites
|
||||||
|
farcall LoadBranchSpaceGFX
|
||||||
ld hl, wDisplaySecondarySprites
|
ld hl, wDisplaySecondarySprites
|
||||||
set SECONDARYSPRITES_SPACES_LEFT_F, [hl]
|
set SECONDARYSPRITES_SPACES_LEFT_F, [hl]
|
||||||
set SECONDARYSPRITES_BRANCH_ARROWS_F, [hl]
|
set SECONDARYSPRITES_BRANCH_SPACE_F, [hl]
|
||||||
ld hl, wPlayerSpriteSetupFlags
|
ld hl, wPlayerSpriteSetupFlags
|
||||||
; get the facing direction from the mocked object's facing direction
|
; get the facing direction from the mocked object's facing direction
|
||||||
ld a, [wMapObject{d:LAST_OBJECT}Movement]
|
ld a, [wMapObject{d:LAST_OBJECT}Movement]
|
||||||
|
BIN
gfx/legend/back.png
Executable file
After Width: | Height: | Size: 213 B |
BIN
gfx/legend/buttons.png
Executable file
After Width: | Height: | Size: 252 B |
BIN
gfx/legend/choose.png
Executable file
After Width: | Height: | Size: 206 B |
BIN
gfx/legend/move.png
Executable file
After Width: | Height: | Size: 215 B |
BIN
gfx/legend/skip.png
Executable file
After Width: | Height: | Size: 219 B |
BIN
gfx/legend/talk.png
Executable file
After Width: | Height: | Size: 206 B |
BIN
gfx/legend/view.png
Executable file
After Width: | Height: | Size: 213 B |