From d221f0d5313a01e0fe88b51b283fe8813f06ce91 Mon Sep 17 00:00:00 2001 From: d_m Date: Sun, 28 Jul 2024 22:37:52 -0400 Subject: [PATCH] add bear sprite --- kodiak.chr | Bin 0 -> 4096 bytes kodiak.chr.nmt | Bin 0 -> 768 bytes kodiak.tal | 37 +++++++++++++++++++++++++++++++++++++ sprites.tal | 40 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 77 insertions(+) create mode 100644 kodiak.chr create mode 100644 kodiak.chr.nmt create mode 100644 sprites.tal diff --git a/kodiak.chr b/kodiak.chr new file mode 100644 index 0000000000000000000000000000000000000000..023bd164b9f1278a3d92c260ea45ccdd322badeb GIT binary patch literal 4096 zcmeGfyKaLp@DQjdQbam1WQc%~F=M7g8TpIuk*bWSLbVyQ5k4S4P^sULpJ=`#BSU0* zw&OgIz^O#l66J(!&d0rc=6nZGg>e9*(P$jUWHwtY0Qwe8CX>GBvBP1vtA4G=b@Gso z3Z*_G^`SzkkD)$J2Sq2s9sosWg5GGaPXDzBrU3?DAq3s`2ZJpI%5lcf{bIl8?>_;Z zycXyv;>un$`D`zjU!l`WI)19aFiqQ5h(9AG2Za{`W4PZE%(7%#h1|hxb1=`2VEp+J z@YM>&pC5rj;rBj!0;Y-bGZv6c6@E9f3^e8y*B!d9_;Glo0fJ=_ETN}Puh07Ux}KW?qxzX9J8M#=yH literal 0 HcmV?d00001 diff --git a/kodiak.chr.nmt b/kodiak.chr.nmt new file mode 100644 index 0000000000000000000000000000000000000000..a528f77140da55e8b5d8c3459efadd02f34f5cc2 GIT binary patch literal 768 zcmc(Z%MpVx3`E!FYoA<#N^l93kP;|?5_lb?Th5C#}7iAE#uNGthCC?P``tudgZ zl$>x0XShsbG@q?)`TOz0C%oY^ti+4aKMaEi xiC~0G7zmHIF8w`F6ftpB_x`(`jb|iGgtg8^pYzPbCvhZB#8ns0yTAY5{{qKUG(Z3V literal 0 HcmV?d00001 diff --git a/kodiak.tal b/kodiak.tal index ea04eaa..758a097 100644 --- a/kodiak.tal +++ b/kodiak.tal @@ -47,6 +47,7 @@ &mouse-x $2 ( previous x-coordinate ) &mouse-y $2 ] ( previous y-coordinate ) @auto $4 ( sorted foundation for auto-move: C D S H ) + @frame $1 ( frame counter ) |0100 @@ -77,6 +78,7 @@ ;on-mouse .Mouse/vect DEO2 ;on-key .Controller/vect DEO2 + ;on-refresh .Screen/vect DEO2 JMP2r @dump-byte ( byte^ -- ) @@ -131,6 +133,7 @@ @draw ( -> ) draw-background + draw-decorations draw-stock draw-waste draw-foundation @@ -180,6 +183,24 @@ #00 OVR STZ ( s^ ; s<-0 ) #01 SUB JMP2r ( s-1^ ) +@draw-bear-head ( x* y* head* -> ) + .Screen/addr DEO2 ( x* y* ; s/addr<-head ) + .Screen/y DEO2 ( y* x* ; s/y<- ) + .Screen/x DEO2 ( y* x* ; s/x<- ) + #16 .Screen/auto DEO ( y* x* ; s/auto<-0x16 ) + #80 .Screen/sprite DEOk DEO JMP2r ( y* x* ; draw 2x2 tiles ) + +@draw-bear ( x* y* head* -> ) + STH2 OVR2 OVR2 STH2r draw-bear-head ( x* y* ) + ;sprites #0140 ADD2 .Screen/addr DEO2 ( x* y* ; s/addr<-body ) + #0010 ADD2 .Screen/y DEO2 ( x* ; s/y<-y+16 ) + #0008 SUB2 .Screen/x DEO2 ( ; s/x<-x-8 ) + #36 .Screen/auto DEO ( ; s/auto<-0x36 ) + #80 .Screen/sprite DEOk DEOk DEO JMP2r ( ; draw 4x3 tiles ) + +@draw-decorations ( -> ) + #00e8 #0098 ;sprites !draw-bear + @draw-stock ( -> ) .stock LDZk #00 EQU ?&empty ( stock^ ) #0008 ,&y STR2 ( ; y0<-8 ) @@ -270,6 +291,20 @@ DUP #31 LTH #03 MUL ADD #24 SUB JMP2r < DUP #11 LTH #1d MUL ADD #09 ADD JMP2r +@on-refresh ( -> brk ) + .frame LDZ + DUP #e8 NEQ ?{ ;sprites #0040 ADD2 !&update } + DUP #f0 NEQ ?{ ;sprites #0080 ADD2 !&update } + DUP #f8 NEQ ?{ ;sprites #0040 ADD2 !&update } + DUP #00 NEQ ?{ ;sprites !&update } + !&done + &update .Screen/addr DEO2 ( ; s/addr<-addr ) + #0098 .Screen/y DEO2 ( ; s/x<-0x98 ) + #00e8 .Screen/x DEO2 ( ; s/y<-0xe8 ) + #16 .Screen/auto DEO ( ; draw 2 tiles, inc addr and y ) + #80 .Screen/sprite DEO ( ; draw it! ) + &done .frame LDZk INC SWP STZ BRK + @on-mouse ( -> brk ) on-move on-click-down @@ -631,3 +666,5 @@ JMP2r ~cards.tal + +@sprites ~sprites.tal diff --git a/sprites.tal b/sprites.tal new file mode 100644 index 0000000..e5da6a7 --- /dev/null +++ b/sprites.tal @@ -0,0 +1,40 @@ +30 78 78 7f 3f 3f 6b 6b 00 00 30 20 00 1c 1c 1c +0c 1e 1e fe fc fc d6 d6 00 00 0c 04 00 38 38 38 +7f 7f 7f 3f 3f 1f 0f 0f 03 01 00 01 00 00 00 00 +fe fe fe fc fc f8 f0 f0 c0 80 00 80 00 00 00 00 +30 78 78 7f 3f 3f 7f 6b 00 00 30 20 00 00 1c 1c +0c 1e 1e fe fc fc fe d6 00 00 0c 04 00 00 38 38 +7f 7f 7f 3f 3f 1f 0f 0f 03 01 00 01 00 00 00 00 +fe fe fe fc fc f8 f0 f0 c0 80 00 80 00 00 00 00 +30 78 78 7f 3f 3f 7f 7f 00 00 30 20 00 00 00 1c +0c 1e 1e fe fc fc fe fe 00 00 0c 04 00 00 00 38 +7f 7f 7f 3f 3f 1f 0f 0f 03 01 00 01 00 00 00 00 +fe fe fe fc fc f8 f0 f0 c0 80 00 80 00 00 00 00 +30 78 78 7f 3f 3f 6b 6b 00 00 30 20 00 1c 1c 1c +0c 1e 1e fe fc fc d6 d6 00 00 0c 04 00 38 38 38 +7f 7f 7f 3f 3f 1f 0f 0f 03 01 00 03 01 00 00 00 +fe fe fe fc fc f8 f0 f0 c0 80 00 c0 80 00 00 00 +30 78 78 7f 3f 3f 6b 6b 00 00 30 20 00 1c 1c 1c +0c 1e 1e fe fc fc d6 d6 00 00 0c 04 00 38 38 38 +7f 7f 7f 3f 3f 1f 0f 0f 03 01 00 01 01 00 00 00 +fe fe fe fc fc f8 f0 f0 c0 80 00 80 80 00 00 00 +00 00 00 01 03 03 07 07 00 00 00 00 00 00 00 00 +1f 3f 7f ff ff ff ff ff 00 00 00 00 00 00 00 00 +f8 ff ff ff ff ff fe fe 00 00 00 00 00 00 00 00 +03 ff ff fe c0 00 00 00 00 00 00 00 00 00 00 00 +07 07 07 07 07 03 00 00 00 00 00 00 00 00 00 00 +7f 7f 7f 7f 7f 7f 3f 1f 00 00 00 00 00 00 00 00 +fe fe fe fe fe fe fc f8 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +1e 1e 1e 1e 1e 1e 3e 7c 00 00 00 00 00 00 00 00 +78 78 78 78 78 78 7c 3e 00 00 00 00 00 00 00 00 +00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 +ff 80 90 ab 90 81 92 92 ff 80 80 80 80 80 80 80 +ff 01 09 d5 09 81 49 49 ff 01 01 01 01 01 01 01 +91 90 91 92 92 91 90 91 80 80 80 80 80 80 80 80 +89 09 89 49 49 89 09 89 01 01 01 01 01 01 01 01 +92 92 81 90 ab 90 80 ff 80 80 80 80 80 80 80 ff +41 41 81 09 d5 09 01 ff 01 01 01 01 01 01 01 ff +ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff +ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff