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