Add menu journal code skeleton and tilemaps
This commit is contained in:
186
Menu/menu_journal.asm
Normal file
186
Menu/menu_journal.asm
Normal file
@@ -0,0 +1,186 @@
|
|||||||
|
; Book of Secrets Journal Menu
|
||||||
|
; Journal States
|
||||||
|
JOURNAL_STATE_FIRST_PAGE = $0000
|
||||||
|
JOURNAL_STATE_MIDDLE_PAGE = $0001
|
||||||
|
JOURNAL_STATE_LAST_PAGE = $0002
|
||||||
|
|
||||||
|
Journal_Handler:
|
||||||
|
{
|
||||||
|
PHB : PHK : PLB
|
||||||
|
; Check for L button press
|
||||||
|
LDA.b $F6 : BIT.b #$20 : BEQ .check_right
|
||||||
|
REP #$30
|
||||||
|
JSR Journal_PrevPage
|
||||||
|
JSL Menu_DrawJournal
|
||||||
|
JSR Journal_DrawEntry
|
||||||
|
BRA .draw_page
|
||||||
|
|
||||||
|
.check_right
|
||||||
|
; Check for R button press
|
||||||
|
LDA.b $F6 : BIT.b #$10 : BEQ .draw_page
|
||||||
|
REP #$30
|
||||||
|
JSR Journal_NextPage
|
||||||
|
JSL Menu_DrawJournal
|
||||||
|
JSR Journal_DrawEntry
|
||||||
|
.draw_page
|
||||||
|
SEP #$30
|
||||||
|
PLB
|
||||||
|
RTL
|
||||||
|
}
|
||||||
|
|
||||||
|
Journal_PrevPage:
|
||||||
|
{
|
||||||
|
LDA.l JournalState
|
||||||
|
AND.w #$00FF : CMP.w #JOURNAL_STATE_FIRST_PAGE
|
||||||
|
BEQ .wrap_to_last
|
||||||
|
DEC A
|
||||||
|
STA.l JournalState
|
||||||
|
RTS
|
||||||
|
|
||||||
|
.wrap_to_last
|
||||||
|
LDA.w #JOURNAL_STATE_LAST_PAGE
|
||||||
|
STA.l JournalState
|
||||||
|
RTS
|
||||||
|
}
|
||||||
|
|
||||||
|
Journal_NextPage:
|
||||||
|
{
|
||||||
|
LDA.l JournalState
|
||||||
|
AND.w #$00FF : CMP.w #JOURNAL_STATE_LAST_PAGE
|
||||||
|
BEQ .wrap_to_first
|
||||||
|
INC A
|
||||||
|
STA.l JournalState
|
||||||
|
RTS
|
||||||
|
|
||||||
|
.wrap_to_first
|
||||||
|
LDA.w #JOURNAL_STATE_FIRST_PAGE
|
||||||
|
STA.l JournalState
|
||||||
|
RTS
|
||||||
|
}
|
||||||
|
|
||||||
|
Journal_DrawEntry:
|
||||||
|
{
|
||||||
|
REP #$30
|
||||||
|
LDX.w #$0000
|
||||||
|
LDY.w #$0000
|
||||||
|
.loop
|
||||||
|
LDA.w BookEntries, X : STA.w $1292, Y
|
||||||
|
INY #2 : INX #2
|
||||||
|
CPY.w #$001F : BCC .loop
|
||||||
|
SEP #$30
|
||||||
|
RTS
|
||||||
|
}
|
||||||
|
|
||||||
|
BookEntries:
|
||||||
|
dw "THIS_IS_A_TEST__"
|
||||||
|
dw "______________ "
|
||||||
|
dw "______________ "
|
||||||
|
|
||||||
|
Menu_DrawJournal:
|
||||||
|
{
|
||||||
|
PHB : PHK : PLB
|
||||||
|
LDA.l JournalState
|
||||||
|
ASL : TAX
|
||||||
|
JSR (.page_drawers, X)
|
||||||
|
SEP #$30
|
||||||
|
PLB
|
||||||
|
RTL
|
||||||
|
|
||||||
|
.page_drawers
|
||||||
|
dw Journal_DrawFirstPage
|
||||||
|
dw Journal_DrawMiddlePage
|
||||||
|
dw Journal_DrawLastPage
|
||||||
|
}
|
||||||
|
|
||||||
|
Journal_DrawFirstPage:
|
||||||
|
{
|
||||||
|
REP #$30
|
||||||
|
LDX.w #$FE
|
||||||
|
|
||||||
|
.loop
|
||||||
|
LDA.w .first_page_tilemap, X
|
||||||
|
STA.w $1000, X
|
||||||
|
LDA.w .first_page_tilemap+$100, X
|
||||||
|
STA.w $1100, X
|
||||||
|
LDA.w .first_page_tilemap+$200, X
|
||||||
|
STA.w $1200, X
|
||||||
|
LDA.w .first_page_tilemap+$300, X
|
||||||
|
STA.w $1300, X
|
||||||
|
LDA.w .first_page_tilemap+$400, X
|
||||||
|
STA.w $1400, X
|
||||||
|
LDA.w .first_page_tilemap+$500, X
|
||||||
|
STA.w $1500, X
|
||||||
|
LDA.w .first_page_tilemap+$600, X
|
||||||
|
STA.w $1600, X
|
||||||
|
LDA.w .first_page_tilemap+$700, X
|
||||||
|
STA.w $1700, X
|
||||||
|
DEX : DEX
|
||||||
|
BPL .loop
|
||||||
|
RTS
|
||||||
|
|
||||||
|
.first_page_tilemap
|
||||||
|
incbin "tilemaps/journal_begin.bin"
|
||||||
|
}
|
||||||
|
|
||||||
|
Journal_DrawMiddlePage:
|
||||||
|
{
|
||||||
|
REP #$30
|
||||||
|
LDX.w #$FE
|
||||||
|
|
||||||
|
.loop
|
||||||
|
LDA.w .middle_page_tilemap, X
|
||||||
|
STA.w $1000, X
|
||||||
|
LDA.w .middle_page_tilemap+$100, X
|
||||||
|
STA.w $1100, X
|
||||||
|
LDA.w .middle_page_tilemap+$200, X
|
||||||
|
STA.w $1200, X
|
||||||
|
LDA.w .middle_page_tilemap+$300, X
|
||||||
|
STA.w $1300, X
|
||||||
|
LDA.w .middle_page_tilemap+$400, X
|
||||||
|
STA.w $1400, X
|
||||||
|
LDA.w .middle_page_tilemap+$500, X
|
||||||
|
STA.w $1500, X
|
||||||
|
LDA.w .middle_page_tilemap+$600, X
|
||||||
|
STA.w $1600, X
|
||||||
|
LDA.w .middle_page_tilemap+$700, X
|
||||||
|
STA.w $1700, X
|
||||||
|
DEX : DEX
|
||||||
|
BPL .loop
|
||||||
|
|
||||||
|
RTS
|
||||||
|
|
||||||
|
.middle_page_tilemap
|
||||||
|
incbin "tilemaps/journal_mid.bin"
|
||||||
|
}
|
||||||
|
|
||||||
|
Journal_DrawLastPage:
|
||||||
|
{
|
||||||
|
REP #$30
|
||||||
|
LDX.w #$FE
|
||||||
|
|
||||||
|
.loop
|
||||||
|
LDA.w .last_page_tilemap, X
|
||||||
|
STA.w $1000, X
|
||||||
|
LDA.w .last_page_tilemap+$100, X
|
||||||
|
STA.w $1100, X
|
||||||
|
LDA.w .last_page_tilemap+$200, X
|
||||||
|
STA.w $1200, X
|
||||||
|
LDA.w .last_page_tilemap+$300, X
|
||||||
|
STA.w $1300, X
|
||||||
|
LDA.w .last_page_tilemap+$400, X
|
||||||
|
STA.w $1400, X
|
||||||
|
LDA.w .last_page_tilemap+$500, X
|
||||||
|
STA.w $1500, X
|
||||||
|
LDA.w .last_page_tilemap+$600, X
|
||||||
|
STA.w $1600, X
|
||||||
|
LDA.w .last_page_tilemap+$700, X
|
||||||
|
STA.w $1700, X
|
||||||
|
DEX : DEX
|
||||||
|
BPL .loop
|
||||||
|
|
||||||
|
RTS
|
||||||
|
|
||||||
|
.last_page_tilemap
|
||||||
|
incbin "tilemaps/journal_end.bin"
|
||||||
|
}
|
||||||
|
|
||||||
BIN
Menu/tilemaps/journal_begin.bin
Normal file
BIN
Menu/tilemaps/journal_begin.bin
Normal file
Binary file not shown.
BIN
Menu/tilemaps/journal_end.bin
Normal file
BIN
Menu/tilemaps/journal_end.bin
Normal file
Binary file not shown.
BIN
Menu/tilemaps/journal_mid.bin
Normal file
BIN
Menu/tilemaps/journal_mid.bin
Normal file
Binary file not shown.
Reference in New Issue
Block a user