parse and display level messages from puzzle files
This commit is contained in:
parent
7cdf223a9f
commit
6e7ba299b2
|
@ -15,7 +15,7 @@ ROSW,DIEM,CHAH|CHEW,DISH,ROAM
|
|||
ECVS,GNIE,AADD|ACID,ENDS,GAVE
|
||||
UAIY,CNTO,TLAL|CLAY,TAIL,UNTO
|
||||
ERKE,HIIT,DDAG|DRAG,EDIT,HIKE
|
||||
UIIK,KSEP,WHCR|KICK,USER,WHIP,WICK
|
||||
UIIK,KSEP,WHCR|KICK,USER,WHIP,WICK|LETTERS CAN BE REUSED
|
||||
IECF,RHET,WTAH|ITCH,REEF,WHAT,WHET
|
||||
AADM,CWMS,SDIE|ADDS,CAME,SWIM,SAME
|
||||
MOUG,SRAH,BUCL|BRAG,MUCH,SOUL,SUCH
|
||||
|
@ -32,7 +32,7 @@ ERWS,FCHO,ROEE|ECHO,FREE,ROWS,FOES
|
|||
GEKF,DAIE,MRAP|DEAF,GRIP,MAKE,DRIP
|
||||
WNRF,KUGS,SIOW|KNOW,SURF,WIGS,SNOW
|
||||
TRCD,EOIT,AMLH|ARCH,EMIT,TOLD,ARID
|
||||
FAER,PVNP,OLAT|FLAP,OVER,PANT,FLAT,PLAT
|
||||
FAER,PVNP,OLAT|FLAP,OVER,PANT,FLAT,PLAT|A 3-WORD SOLUTION EXISTS
|
||||
QUSH,POGZ,SIIE|POSE,QUIZ,SIGH,PUSH,POSH
|
||||
GITS,EOOY,FASD|EASY,FITS,GOOD,EATS,FOOD
|
||||
SEIR,OOET,TMUM|OMIT,SEEM,TOUR,SOUR,TOUT
|
||||
|
@ -50,7 +50,7 @@ OPRL,BAAT,ZEIO|BAIT,OPAL,ZERO,BEAT,ZEAL
|
|||
DNIY,SOLP,JURL|DOLL,JURY,SNIP,DULL,SOIL
|
||||
OAIE,GOZW,PLOL|GLOW,OOZE,PAIL,PLOW,POOL,GAZE
|
||||
FXST,EUFY,DEIS|DEFY,EXIT,FUSS,DEFT,DUST,FESS
|
||||
TOAK,BERE,ABL |ABLE,BEAK,TORE,TEAK,TOAK
|
||||
TOAK,BERE,ABL |ABLE,BEAK,TORE,TEAK,TOAK|DON'T PANIC!
|
||||
TAID,SKPP, E|SAID,SKIP,TAPE,SKID
|
||||
SISK,TADN,L GY|LADY,SIGN,TASK,TIDY
|
||||
TLOT,MUBP,S SA|MUST,SLOP,TUBA,SLOT
|
||||
|
|
|
@ -15,7 +15,7 @@ VEIFM,KUAAL,QNNLE|KNIFE,QUALM,VENAL
|
|||
IUIAH,SHPLY,WMGCR|IMPLY,SUGAR,WHICH
|
||||
TMBAD,GUELR,SAARE|GUARD,SMEAR,TABLE
|
||||
GORRP,SHANL,FEIAG|FERAL,GOING,SHARP
|
||||
THDED,FEIGH,CUNKY|CEDED,FUNKY,THIGH,TUNED
|
||||
THDED,FEIGH,CUNKY|CEDED,FUNKY,THIGH,TUNED|LETTERS CAN BE REUSED
|
||||
LOOTT,SUEEE,QWBBY|LOBBY,QUOTE,SWEET,SOOTY
|
||||
AUSLW,BEGEE,RRNON|ARSON,BUGLE,RENEW,ARGON
|
||||
SAAMR,BRKAN,UWBEP|BAKER,SWAMP,URBAN,SABER
|
||||
|
@ -31,7 +31,7 @@ SGASD,TREOO,ILLAH|IGLOO,SLASH,TREAD,TRASH
|
|||
FPFNT,HELTE,SAESY|FALSE,HEFTY,SPENT,SALTY
|
||||
TUROR,HOING,VYTSE|HORSE,TUTOR,VYING,TYING
|
||||
WOETT,PBSSH,OIDIE|OBESE,POSIT,WIDTH,POSSE
|
||||
DISLY,CHAET,UPIRD|CHILD,DIARY,UPSET,CHART,CHARD
|
||||
DISLY,CHAET,UPIRD|CHILD,DIARY,UPSET,CHART,CHARD|A 3-WORD SOLUTION EXISTS
|
||||
SOLUY,PTRSA,TIPKT|POLKA,STRUT,TIPSY,SILKY,TOPSY
|
||||
DOLAD,HRUNY,REOWN|DROWN,HOUND,RELAY,DELAY,ROUND
|
||||
SAAER,LRUKH,BNYSE|BRUSH,LAYER,SNAKE,BRAKE,BRASH
|
||||
|
@ -62,7 +62,7 @@ LUATS,GIILH,TEFCT|GUILT,LIFTS,TEACH,GIFTS,TEATS,TUFTS,LEACH,LEFTS
|
|||
GPONP,SRRGS,LAIUE|GROUP,LARGE,SPINS,GAINS,GRINS,SPINE,GROGS,SPRUE,SARGE
|
||||
COLKS,SDVET,AUOPR|ADOPT,COVER,SULKS,COOKS,COVES,COVET,COOPT,COOPS,SOLES
|
||||
LASAD,AOREL,MICLE|AISLE,LACED,MORAL,AIRED,LOCAL,MIRED,LASED,MACED,MOREL
|
||||
AGREC,LRGVE,BOAI |AGREE,BRAVE,LOGIC,AGAVE
|
||||
AGREC,LRGVE,BOAI |AGREE,BRAVE,LOGIC,AGAVE|DON'T PANIC!
|
||||
PLOWP,BCECN,SI OE|BLOWN,PIECE,SCOOP,SLOOP
|
||||
PIPMY,REULP,SLL |PLUMP,REPLY,SILLY,SLUMP
|
||||
RHNRE,WAASH,SM GF|RANGE,SMASH,WHARF,SHARE
|
||||
|
|
|
@ -15,7 +15,7 @@ TORCFT,GEVIIN,PHNERL|GOVERN,PENCIL,THRIFT
|
|||
TOCOOD,UWLNTL,SNEVEY|SOLVED,TWENTY,UNCOOL
|
||||
PISACE,RERSET,OFFUMY|OFFSET,PIRACY,RESUME
|
||||
NCSCUC,SOTNFY,REEIIE|NOTIFY,RESCUE,SCENIC
|
||||
RVYRNG,ARFLSE,CEEIEX|AVERSE,CRYING,REFLEX,REFINE
|
||||
RVYRNG,ARFLSE,CEEIEX|AVERSE,CRYING,REFLEX,REFINE|LETTERS CAN BE REUSED
|
||||
MASECL,INUUIT,STNDAO|INSECT,MANUAL,STUDIO,SANDAL
|
||||
SAMENG,CHTMID,EOIILT|COMMIT,EATING,SHIELD,COMING
|
||||
UOETUT,LSCFSL,HEAUER|HEATER,LOCUST,USEFUL,LOAFER
|
||||
|
@ -31,7 +31,7 @@ PORRLT,TNIOAY,UHOSON|POORLY,THROAT,UNISON,POISON
|
|||
AISELB,SBKIRT,LPRONY|ABSORB,LIKELY,SPRINT,ABSENT
|
||||
BAVKEN,OEIGST,RRSIIE|BASKET,ORIGIN,REVISE,RESIST
|
||||
IAQATE,PTLLIL,SEAUEC|ITALIC,PALATE,SEQUEL,SALUTE
|
||||
COLAER,DETDIN,FRAYOL|CRAYON,DETAIL,FOLDER,COLDER,DETAIN
|
||||
COLAER,DETDIN,FRAYOL|CRAYON,DETAIL,FOLDER,COLDER,DETAIN|A 3-WORD SOLUTION EXISTS
|
||||
AFCVPY,OCLURD,WOFOES|AFFORD,OCCUPY,WOLVES,ACCORD,OCCURS
|
||||
SQNEAL,UIRAEH,WNUKSD|SQUASH,UNREAL,WINKED,SQUEAL,UNREAD
|
||||
URANLE,SEGGUG,PININT|PEANUT,SINGLE,URGING,PINING,SENILE
|
||||
|
@ -63,7 +63,7 @@ OULSLD,WYELEY,EITDIT|EYELID,OUTSET,WILDLY,EYELET,OUTLET,WILLED
|
|||
VESULT,INTTVD,GROOEE|GROOVE,INSULT,VETTED,INSOLE,VESTED,VETOED
|
||||
OINBCS,FEECEE,HUJALK|FEEBLE,HIJACK,OUNCES,FENCES,FINALE,FINALS
|
||||
COAAEE,DECXLL,SHRIDD|COAXED,DECADE,SHRILL,DECIDE,DECILE,DOCILE
|
||||
PCTARY,DOETCN,AE IOH|ACTION,DETACH,POETRY,POTION
|
||||
PCTARY,DOETCN,AE IOH|ACTION,DETACH,POETRY,POTION|DON'T PANIC!
|
||||
IEARRT,NNNENY,HUVGB |HUNGRY,INVENT,NEARBY,INVERT
|
||||
SERBNE,FCUABY, TLOP |FELONY,SCRAPE,STUBBY,STROBE
|
||||
RAYTER,GOPHHM, HGG D|GAGGED,GOPHER,RHYTHM,RAGGED
|
||||
|
|
|
@ -15,7 +15,7 @@ DEUSFES,UPWARRT,STSFEDD|DESSERT,STUFFED,UPWARDS
|
|||
ANAVREY,GRGEIND,VIOLETT|ANGERED,GRAVITY,VIOLENT
|
||||
STECUOT,DIAGDED,FRSEKSM|DISGUST,FREEDOM,STACKED
|
||||
PMNITOR,IUAGORE,JARPESY|IMAGERY,JANITOR,PURPOSE
|
||||
OPNQOTN,BOLLAEE,CAERUOR|BALLOON,CONQUER,OPERATE,COLLATE
|
||||
OPNQOTN,BOLLAEE,CAERUOR|BALLOON,CONQUER,OPERATE,COLLATE|LETTERS CAN BE REUSED
|
||||
CIPIRAE,ENLLTGL,DAAAING|CAPITAL,DIALING,ENLARGE,CALLING
|
||||
DPNTEEY,OAPOITT,VERISSD|DENTIST,OPPOSED,VARIETY,DEPOSED
|
||||
FAERIFY,SHCKAED,TINTLSF|FANTASY,SHERIFF,TICKLED,TACKLED
|
||||
|
@ -31,7 +31,7 @@ BESPSNG,MDYIIEL,OUESCAY|BEEPING,MUSICAL,ODYSSEY,MESSING
|
|||
CKAPBIE,FORGTVR,SHEMIEC|CHAMBER,FORGIVE,SKEPTIC,CHAPTER
|
||||
WECRYOT,PRRTTEG,DAINHPR|DECRYPT,PRINTER,WARTHOG,PAINTER
|
||||
SEMATLE,GIPIIDR,RRETNAY|GREATLY,RIPTIDE,SEMINAR,REPTILE
|
||||
LOACOUG,SPHKEVE,ACOIINT|ACHIEVE,LOOKOUT,SPACING,LOOKING,SOAKING
|
||||
LOACOUG,SPHKEVE,ACOIINT|ACHIEVE,LOOKOUT,SPACING,LOOKING,SOAKING|A 3-WORD SOLUTION EXISTS
|
||||
WMUNEES,BRISGLT,SASDKTE|BASSETT,SMUDGES,WRINKLE,BRIDGES,BRISKET
|
||||
HENGINS,CULMPTG,JAIIHER|CALMING,HEIGHTS,JUNIPER,CALIPER,HANGING
|
||||
CUIEFDY,RTRBNES,SHMALLD|CHIEFLY,RUMBLED,STRANDS,RUMBLES,SHIELDS
|
||||
|
@ -63,7 +63,7 @@ SETIRPY,RMEKING,THORAES|RETIRES,SMOKING,THERAPY,RETRIES,SEEKING,SHORING
|
|||
SLALIUS,PNIYFRT,IPFDECL|INFLICT,PLAYFUL,SPIDERS,PLAYERS,SLAYERS,SLIDERS
|
||||
RATBENG,OUCIIAS,VIBMOUL|OATMEAL,RUBBING,VICIOUS,RATIONS,RIBBING,RIBBONS
|
||||
SAUUDLS,LOGNIRG,JIMPANY|JAGUARS,LIMPING,SOUNDLY,LAUNDRY,SIGNALS,SIGNING
|
||||
WUITEEL,INCLHAR,NE GI D|INITIAL,NUCLEAR,WEIGHED,NEITHER
|
||||
WUITEEL,INCLHAR,NE GI D|INITIAL,NUCLEAR,WEIGHED,NEITHER|DON'T PANIC!
|
||||
IESTDED,HOIRINR,WNHAL G|HOSTING,INHALED,WEIRDER,INHALER
|
||||
TNOTFLE,GRYWING,ALUF M |ANYTIME,GLOWING,TRUFFLE,GROWING
|
||||
SAUMAIN,HUSTTUL, RNFED|HARMFUL,HAUNTED,SUSTAIN,HURTFUL
|
||||
|
|
|
@ -191,6 +191,7 @@ LoadPuzzleFromMemory
|
|||
@lineLoop
|
||||
+INCADDR $FE
|
||||
@addLine
|
||||
; ($FE) -> characters for 1 line of this puzzle (no prefix)
|
||||
jsr AddLineToPuzzle
|
||||
ldx gWorldID
|
||||
lda kPuzzleWidths, x
|
||||
|
@ -199,13 +200,15 @@ LoadPuzzleFromMemory
|
|||
sta $FE
|
||||
bcc +
|
||||
inc $FF
|
||||
+
|
||||
ldy #0
|
||||
+ ldy #0
|
||||
lda ($FE), y
|
||||
cmp #$2C ; ,
|
||||
beq @lineLoop
|
||||
cmp #$2C ; ','
|
||||
beq @lineLoop ; if next byte is ',' then there is another line so loop back to parse it
|
||||
; otherwise the next byte is a delimiter between lines and target words
|
||||
; (probably '|' but we don't actually check it)
|
||||
@targetWordLoop
|
||||
+INCADDR $FE
|
||||
; ($FE) -> characters for 1 target word of this puzzle (no prefix)
|
||||
jsr AddTargetWordToPuzzle
|
||||
ldx gWorldID
|
||||
lda kPuzzleWidths, x
|
||||
|
@ -214,12 +217,31 @@ LoadPuzzleFromMemory
|
|||
sta $FE
|
||||
bcc +
|
||||
inc $FF
|
||||
+
|
||||
ldy #0
|
||||
+ ldy #0
|
||||
lda ($FE), y
|
||||
cmp #$2C ; ,
|
||||
beq @targetWordLoop
|
||||
rts
|
||||
cmp #$2C ; ','
|
||||
beq @targetWordLoop ; if next byte is ',' then there is another target word so loop back to parse it
|
||||
cmp #$7C ; if next byte is '|' then there is a message, otherwise we're done
|
||||
bne @exit
|
||||
|
||||
+INCADDR $FE
|
||||
@messageLoop
|
||||
lda ($FE), y
|
||||
cmp #$0A
|
||||
beq @setMessage
|
||||
cmp #$0D
|
||||
beq @setMessage
|
||||
iny
|
||||
sta @messageBuffer, y
|
||||
bne @messageLoop
|
||||
@setMessage
|
||||
sty @messageBuffer
|
||||
+LDADDR @messageBuffer
|
||||
jsr SetNextMessage
|
||||
@exit rts
|
||||
@messageBuffer
|
||||
!byte 40
|
||||
!raw " "
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; HasPuzzleBeenCompleted
|
||||
|
|
|
@ -9,29 +9,58 @@
|
|||
; - HideMessage
|
||||
;
|
||||
|
||||
;0123456789012345678901
|
||||
; press ? for help
|
||||
;
|
||||
;0123456789012345678901
|
||||
;letters can be reused
|
||||
;
|
||||
;0123456789012345678901
|
||||
;3-word solution exists
|
||||
;
|
||||
;0123456789012345678901
|
||||
; don't panic!
|
||||
;
|
||||
|
||||
showingMessage ; [byte][private]
|
||||
!byte 0 ; 1 = currently showing message, 0 = not
|
||||
|
||||
currentMessage ; [private]
|
||||
!byte 20
|
||||
!raw "01234567890123456789"
|
||||
!byte 40
|
||||
!raw " "
|
||||
|
||||
noMessage ; [private]
|
||||
!byte 20
|
||||
!raw " "
|
||||
!byte 40
|
||||
!raw " "
|
||||
|
||||
SetNextMessage
|
||||
; copies a new message into private buffer
|
||||
; (does not display the new message on screen)
|
||||
; in: A/Y points to length-prefixed string (max 20 characters)
|
||||
; if new message is shorter than max length, it will be centered
|
||||
; in: A/Y points to length-prefixed string
|
||||
+ST16 $FE
|
||||
ldy #0
|
||||
lda ($FE), y
|
||||
tay ; Y = string length
|
||||
- lda ($FE), y
|
||||
ldy noMessage
|
||||
- lda noMessage, y
|
||||
sta currentMessage, y
|
||||
dey
|
||||
bpl -
|
||||
ldy #0
|
||||
lda ($FE), y ; A = string length
|
||||
tay
|
||||
clc
|
||||
adc #1
|
||||
lsr
|
||||
sta $FD
|
||||
lda currentMessage
|
||||
lsr
|
||||
clc
|
||||
adc $FD
|
||||
tax
|
||||
- lda ($FE), y
|
||||
sta currentMessage, x
|
||||
dex
|
||||
dey
|
||||
bne -
|
||||
rts
|
||||
|
||||
HideMessage
|
||||
|
@ -40,7 +69,7 @@ HideMessage
|
|||
pha
|
||||
lda showingMessage
|
||||
beq +
|
||||
+PRINT_AT noMessage, 7, 10
|
||||
+PRINT_AT noMessage, 7, 0
|
||||
lda #0
|
||||
sta showingMessage
|
||||
+ pla
|
||||
|
@ -50,7 +79,7 @@ ShowMessage
|
|||
; should really only call once
|
||||
; will clear message before showing the new one, so there may be a small flicker
|
||||
jsr HideMessage
|
||||
+PRINT_AT currentMessage, 7, 10
|
||||
+PRINT_AT currentMessage, 7, 0
|
||||
lda #1
|
||||
sta showingMessage
|
||||
rts
|
||||
|
|
|
@ -285,15 +285,9 @@ AnimatePuzzleIntoPlace
|
|||
iny
|
||||
@max cpy #$FD ; SMC
|
||||
bne --
|
||||
rts
|
||||
; +LDADDR test_message
|
||||
; jsr SetNextMessage
|
||||
; jmp ShowMessage
|
||||
;
|
||||
;test_message
|
||||
; !byte 18
|
||||
; !raw " PRESS ? FOR HELP"
|
||||
jmp ShowMessage
|
||||
|
||||
;
|
||||
;------------------------------------------------------------------------------
|
||||
; DrawPuzzleChrome
|
||||
; draw all elements on puzzle screen that are not the actual puzzle
|
||||
|
|
Loading…
Reference in New Issue