all repos — soulgrind @ 3e4d147e12ca8bfd38d1ee803d0adeb1e177e1ca

arcade-style rollerblading game in uxntal with xrxs multiplayer

use ringbuffer for map instead of copying tiles; still doesn't work :(
Iris Lightshard nilix@nilfm.cc
PGP Signature
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEkFh6dA+k/6CXFXU4O3+8IhROY5gFAmIfDMIACgkQO3+8IhRO
Y5hDpQ//Rm9PPBj5GiWxJeer1f+8ylIv6N/lKt9Ktv4GChEqfs0mwT5I8TNWN9Iw
skSyf1yBlFXA/5sxPac4foHhRxFTwmbpH7TWIcxLDA7Fk8Qi+WotXc/nsGnCKQ3l
vqfeUU77wT0vpYXQnqkHdZpepJYtdTdTnHjj/acZsfct7jSZx/oI7FoAMhU7X7a8
62Lc2HghaJPoANZEnqXdRrWMUKfMOXdtRYTcchkBEsGFXeTJqx7QaivmFgWojsVL
0TFmdPCcY3xVX2uMDIZSxowSpXtRAPl9R/ryBnmtST/o+fZ0EKuItfVppDuktMM3
gKZVcPbuEnHI4Se4AagqwzKbpWfg9NJlFXnKK0ZhU69HJsSrwp4cVDROXIo25Hpk
Em/DSW2qoAV+MNl/nw1zXOpTVSFLOm9m6C/LhxIm34BNfsMa4YwvTbTFVMhEeuVy
HIXKZ5wyh7MvfNu6ks0oLe8XXGJsXsEf1QiZncV05NmfhJl9kncHH2vyFVicds5C
7L6a9+NUnx2rZXiGl+Cm9HpANflkMAPZVf2EmH88kg0zD367aVtaY4TyhOrDWP5N
xZmUlmtL3hHXc/fj2WIJd2dUIdkGN0pg7hGZ6d/91wHQNyyBkojCBiRfcabgklEa
28r2Lb5XW9y2riCWebHnrAIQFXn/ejtDBW7YkDAdE/WcYFR5o7I=
=hHPE
-----END PGP SIGNATURE-----
commit

3e4d147e12ca8bfd38d1ee803d0adeb1e177e1ca

parent

f6657f1b33d429b786edb24856d5c709370f8624

1 files changed, 24 insertions(+), 24 deletions(-)

jump to
M soulgrind.talsoulgrind.tal

@@ -60,6 +60,7 @@ &bailed $1

] @map [ + &edge $1 &tile-offset $1 &row1 $40 &row2 $40

@@ -102,6 +103,8 @@ #00 .blader/frame STZ

#00 .state STZ #00 .ticker STZ + + #00 .map/edge STZ ;file-chr-title .File/name DEO2 #bc00 .File/length DEO2

@@ -157,6 +160,7 @@

.state LDZ #01 NEQ ,&no-1p-go JCN #40 .state STZ #40 ;map-gen JSR2 + ;key-listen-1p-game .Controller/vector DEO2 ,&no-confirm JMP &no-1p-go #10 .state STZ

@@ -182,12 +186,12 @@

( if no xrxs, just proceed to single player game ) &no-xrxs #40 .state STZ + #40 ;map-gen JSR2 ;key-listen-1p-game .Controller/vector DEO2 BRK &no-press-start BRK - @press-start-screen ( -> )

@@ -270,8 +274,8 @@ RTN

@map-gen ( width -- ) - ( width is measured from the right edge. when initializing, we use #40; - when scrolling, we use left-shift passed from map-scroll ) + ( width is measured from the right edge. when initializing, we use #40; ) + ( when scrolling, we use left-shift passed from map-scroll ) POP RTN

@@ -282,37 +286,32 @@ &left-shift $1

( add dx to tile-offset ) .blader/dx LDZ .map/tile-offset LDZ ADD - .map/tile-offset STZk + DUP .map/tile-offset STZ ( left-shift = tile-offset/8 ) - #03 SFT ,&left-shift STR + DUP #03 SFT ,&left-shift STR - ( tile-offset = tile-offset%8 ) - .map/tile-offset LDZ #08 MOD + ( tile-offset = tile-offset mod 8 ) + #08 MOD .map/tile-offset STZ - ( shift all map tiles left-shift amount ) - #40 ,&left-shift LDR &while EQUk ,&end JCN - DUP .map/row1 ADD LDZk - OVR ,&left-shift LDR SUB STZ - DUP .map/row2 ADD LDZk - OVR ,&left-shift LDR SUB STZ - DUP .map/row3 ADD LDZk - OVR ,&left-shift LDR SUB STZ - INCk ,&while JMP &end POP2 + ( move map edge pointer ) + ,&left-shift LDR .map/edge LDZ ADD + + DUP LTH #40 ,&no-loop JCN + #40 SUB + &no-loop - ( generate left-shift new map tiles on right edge for each row) + .map/edge STZ + + ( generate left-shift new map tiles on right edge for each row ) ,&left-shift LDR ;map-gen JSR2 - ( redraw map with tile-offset? probably better off being called from a higher level ) - - RTN -@single-play ( -> ) +@single-play ;map-scroll JSR2 - RTN @main-loop ( -> )

@@ -339,6 +338,7 @@ DUP #3f GTH ,&no-realm-select JCN

POP BRK &no-realm-select DUP #4f GTH ,&no-single-play JCN + ;single-play JSR2 POP BRK &no-single-play DUP #5f GTH ,&no-multi-play JCN

@@ -388,7 +388,7 @@ #00 .DateTime/day DEI #10 SFT2 EOR2

#00 .DateTime/month DEI #60 SFT2 EOR2 .DateTime/year DEI2 #a0 SFT2 EOR2 ,prng/y STR2 -JMP2r +RTN @prng ( -- number* )

@@ -399,7 +399,7 @@ LIT2 &y $2 DUP2 ,&x STR2

DUP2 #01 SFT2 EOR2 EOR2 ,&y STR2k POP -JMP2r +RTN @print-hex ( value -- )