From ae1b5712ef8aae43c9ccecb5aaf9459170f27cf2 Mon Sep 17 00:00:00 2001 From: Jeremy Penner Date: Sat, 16 Feb 2019 19:21:02 -0500 Subject: [PATCH] Jorth words for pausing the game & displaying text --- footer.tif | Bin 4236 -> 4332 bytes game.exe | Bin 108505 -> 108563 bytes game.jor | 76 +++++++++++++++++++++++++++++++++++++---------------- game.prj | Bin 5150 -> 5265 bytes kbd.h | 1 + testbed.c | 6 +++-- tiff.c | 2 +- tiff.h | 2 +- 8 files changed, 60 insertions(+), 27 deletions(-) diff --git a/footer.tif b/footer.tif index 7302738173b08f04852a84679960afbfff5802f4..431f11333a35de1b69f0f8a4f381737b0ca29803 100755 GIT binary patch literal 4332 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 DtnXX& delta 6883 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 diff --git a/game.jor b/game.jor index e29a9cb..546e3df 100755 --- a/game.jor +++ b/game.jor @@ -77,6 +77,37 @@ defentity player : now! ( timer -- ) ticks swap ! ; +( F O O T E R ) +var footer-y +0 footer-y ! + +: draw-footer footer-y @ split-screen ; + +: text1 6 4 rot text ; +: text2 6 12 rot text ; +: clear s" " dup text1 text2 ; + +var footer-timer + +: move-footer-to ( ytarget -- ) + footer-y @ swap ( from to -- ) + footer-timer now! + begin + 2dup 10 footer-timer lerp ( from to now -- ) + dup footer-y ! + over != ( from to -- ) + while + suspend + repeat drop drop ; + +: show-footer 24 move-footer-to ; +: hide-footer 0 move-footer-to ; + +: say1 ( s -- ) clear text1 show-footer ^ENTER wait-key ; +: say2 ( s1 s2 -- ) clear text2 text1 show-footer ^ENTER wait-key ; + +( T I C K ) + : tick-player 0 ^LEFT key-down if 3 - W player entity.dir ! then ^RIGHT key-down if 3 + E player entity.dir ! then @@ -85,32 +116,30 @@ defentity player ^DOWN key-down if 3 + S player entity.dir ! then player entity.y +! ; -var MODE-TRAVEL -var MODE-TEXT -var split-timer +var MODE-MOVE +var MODE-WAIT -: enter-mode-text - split-timer now! - MODE-TEXT @ ' tick redefine ; +( J O B ) +: listen-for-jobs activate blah + begin receive + MODE-WAIT @ ' tick redefine + execute + hide-footer + MODE-MOVE @ ' tick redefine + again ; -: mode-travel +task const JOB +JOB listen-for-jobs + +: hello-world s" Hello, world!" say1 s" How are you" s" today?" say2 ; + +: mode-move tick-player ^SPACE key-pressed if - enter-mode-text + ' hello-world JOB send then ; -' mode-travel MODE-TRAVEL ! - -: mode-text-hide - 24 0 10 split-timer lerp dup split-screen - 0 = if ' mode-travel ' tick redefine then ; - -: mode-text-show - 0 24 10 split-timer lerp split-screen - ^SPACE key-pressed if - split-timer now! - ' mode-text-hide ' tick redefine - then ; -' mode-text-show MODE-TEXT ! +' mode-move MODE-MOVE ! +' noop MODE-WAIT ! : draw-player player entity.x @ @@ -126,7 +155,8 @@ var split-timer draw-player 50 50 0 draw-sprite 600 600 2 draw-sprite - draw-screen ; + draw-screen + draw-footer ; -MODE-TRAVEL @ ' tick redefine +MODE-MOVE @ ' tick redefine ' full-draw ' draw redefine diff --git a/game.prj b/game.prj index 0919c51b53d003cedee88105ccccb45183ef90f7..17f475ba7ca4a1a5d9fd664a4c9095cc26fad713 100755 GIT binary patch delta 377 zcmbQIF;R1aIvaC9b--pVHXaV%#|!-Z3fLGJ1Q-|?_D*)@JI(A~9WYst|1zs2gD;Tv zlK*mj8?y>fR)o2MDT_IlxtGbFS%G;L(>A96K)}I#glRG3Z>Dt&?2PZ2E-_g%ax-mU z%wY0jC}EOd@?rYO@P}b9!#~E4jC&dL8NGn!2rvjTI93Pvu`?)e#E5Z#Nft24%AmH; z!cUgL0w~MOAhX26kBMRW0{?nHeujosetujGi6vokPz`3Hq~DEtSRAL1Gu;^gY0=M1!ygF%kLXN?8aPKa#~d;b6DUtj~W zP?kZSp@V^);XjDu?F6M<^gI|8{)4o7JHd?NWw;9rG>9Q!2Tqm}mY>Wacww@V(BsLL X!qWU8`4CSxH=y1BfgYHgEW8^4$4+V8 delta 259 zcmbQJIZtDQIvewe+5Vfg*myX2?=H3QD_~<_5MW?n*fZIg?=H5O#Uf&!JUDDgF%kLXN`p)JA(p8j2H`; zlx3&}iv0i2Z*L7^$TG+?bTF_p{0DKoouHJ9o(IE!kWOzWm&wP3o{56Y;$=9x#KI3^ j3KK)~5{t>V1m!2M5til$iHCT)x#>AG{0E6&6W$E~+QCw2 diff --git a/kbd.h b/kbd.h index 9fefd03..624a7b7 100755 --- a/kbd.h +++ b/kbd.h @@ -16,6 +16,7 @@ unsigned char kbd_wait(); #define keyIsDown(k) (keybuf[k] & KEY_SIGNAL) #define keyWasPressed(k) ((keybuf[k] & 0x0f) == KEY_PRESSED) +#define consumeKey(k) (keybuf[k] = keyWasPressed(k) ? KEY_DOWN : keybuf[k]) #define keyWasReleased(k) ((keybuf[k] & 0x0f) == KEY_RELEASED) #define K_ESC 1 diff --git a/testbed.c b/testbed.c index 13d46e3..d80216b 100755 --- a/testbed.c +++ b/testbed.c @@ -115,7 +115,9 @@ void f_seremit() { } void f_keyWasPressed() { - TOP().i = keyWasPressed(TOP().i); + int k = TOP().i; + TOP().i = keyWasPressed(k); + consumeKey(k); } void f_keyIsDown() { TOP().i = keyIsDown(TOP().i); @@ -136,7 +138,7 @@ void f_splitscreen() { DROP(1); } -void f_text() { // ( col y s -- ) +void f_text() { // ( col line s -- ) text_draw(ST2().u + (ST1().u * PAGE_STRIDE), TOP().s); DROP(3); } diff --git a/tiff.c b/tiff.c index 72ee169..cdb2a2f 100755 --- a/tiff.c +++ b/tiff.c @@ -70,7 +70,7 @@ int tifLoadEGA(FILE *f, TifImageMeta_t meta, unsigned int vidOffset, int maxY, u volatile unsigned char far *out = &VID[vidOffset]; unsigned char b, g, r, i; - if (meta.width > MAX_WIDTH || (meta.width % 16) != 0) { + if (meta.width > MAX_WIDTH || (meta.width % 8) != 0) { return 0; } setWriteMode(0); diff --git a/tiff.h b/tiff.h index 3e1101f..3af7942 100755 --- a/tiff.h +++ b/tiff.h @@ -10,7 +10,7 @@ typedef struct { unsigned long stripOffsets; } TifImageMeta_t; -#define MAX_WIDTH 320 +#define MAX_WIDTH 328 TifImageMeta_t tifLoadMeta(FILE *f); int tifLoadEGA(FILE *f, TifImageMeta_t meta, unsigned int vidOffset, int maxY, unsigned int w);