pitch-dark/src/ui.artwork.a

88 lines
2.4 KiB
Plaintext
Raw Normal View History

2018-04-02 19:43:11 +00:00
;license:MIT
;(c) 2018 by 4am
;
; User interface - functions to load and display double hi-res artwork
;
; Public functions
; - DisplayArtwork
;
2018-04-17 20:25:38 +00:00
2018-04-02 19:43:11 +00:00
kArtworkRootDirectory ; length-prefixed pathname of DHGR graphic files
!byte 8
!raw "ARTWORK/"
2018-06-20 02:41:48 +00:00
kArtworkGSRootDirectory ; length-prefixed pathname of SHGR graphic files
!byte 10
!raw "ARTWORKGS/"
2018-04-02 19:43:11 +00:00
;------------------------------------------------------------------------------
; DisplayArtwork
; load and display double hi-res artwork, then wait for key or mouse click
;
; in: WeeGUI initialized
; out: all registers and flags clobbered
;------------------------------------------------------------------------------
DisplayArtwork
2019-01-11 22:32:49 +00:00
WeCanHazSHR
ldx #0 ; SMC
- jsr ResetPath
2018-04-02 19:43:11 +00:00
+LDADDR kArtworkRootDirectory
2018-06-20 02:41:48 +00:00
dex
bne +
lda $C029
ora #$40
sta $C029 ; set GS NEWVIDEO mode to turn off linearize
2018-06-20 02:41:48 +00:00
+LDADDR kArtworkGSRootDirectory
+ phx
2018-04-02 19:43:11 +00:00
jsr AddToPath
jsr okvs_get
!word gGlobalPrefsStore
!word kLastPlayed
2018-06-20 02:41:48 +00:00
jsr AddToPath ; gPathname = 'ARTWORK[GS]/<game shortname>'
plx
phx
beq @loadSHR
2018-04-02 19:43:11 +00:00
2018-04-19 02:01:24 +00:00
jsr LoadDHRFile ; load artwork from file
2018-04-02 19:43:11 +00:00
!word gPathname
!word kProDOSFileBuffer
2018-06-20 02:41:48 +00:00
plx
2018-04-19 02:01:24 +00:00
bcc +
jmp SoftBell
2018-04-19 02:01:24 +00:00
+ sta $C000 ; display double hi-res page 1
2018-04-02 19:43:11 +00:00
sta $C00D
sta $C05E
sta $C001
sta $C057
sta $C052
sta $C054
sta $C050
2018-06-20 02:41:48 +00:00
bcc @waitKey
@loadSHR
jsr LoadSHRFile ; load artwork from file
!word gPathname
!word kProDOSFileBuffer
plx
bcc +
ldx #0
bra -
+ lda $C029
2019-01-11 22:32:49 +00:00
ora #$81
2018-06-20 02:41:48 +00:00
sta $C029 ; set GS NEWVIDEO mode to turn on SHR mode
2018-04-11 19:12:36 +00:00
2018-07-06 22:29:15 +00:00
@waitKey
phx
jsr ClearPendingInput
2018-07-06 22:29:15 +00:00
- jsr AnyKeyOrClick
bcc -
sta $C051 ; back to text
sta $C056 ; turn off hires
2018-06-20 02:41:48 +00:00
plx
bne +
lda $C029
2019-01-11 22:32:49 +00:00
and #$7F
2018-06-20 02:41:48 +00:00
sta $C029 ; back to text GS-style
+ jmp ClearPendingInput