]> 4ch.mooo.com Git - 16.git/commitdiff
__seguse.txt added to show _seg usage also OpenVGMFile needs to be ported to 16_snd...
authorsparky4 <sparky4@cock.li>
Wed, 22 Mar 2017 17:07:14 +0000 (12:07 -0500)
committersparky4 <sparky4@cock.li>
Wed, 22 Mar 2017 17:07:14 +0000 (12:07 -0500)
src/lib/16_us.c [new file with mode: 0755]

diff --git a/src/lib/16_us.c b/src/lib/16_us.c
new file mode 100755 (executable)
index 0000000..a164d2b
--- /dev/null
@@ -0,0 +1,205 @@
+#if 0\r
+\r
+#define PaddleMinX      (CtlPanelSX + 3)\r
+#define PaddleMaxX      (CtlPanelEX - 15)\r
+#define BallMinX        (CtlPanelSX + 2)\r
+#define BallMinY        (CtlPanelSY + 12 + 2)\r
+#define BallMaxX        (CtlPanelEX - 6)\r
+#define BallMaxY        (CtlPanelEY - 13)\r
+#define CPaddleY        (BallMinY + 4)\r
+#define KPaddleY        (BallMaxY - 2)\r
+void\r
+USL_DrawPongScore(word k,word c)\r
+{\r
+       fontcolor = HiliteColor;\r
+       PrintY = py = CtlPanelSY + 4;\r
+       px = CtlPanelSX + 6;\r
+       VWB_Bar(px,py,42,6,BackColor);\r
+       USL_DrawString("YOU:");\r
+       PrintX = px;\r
+       US_PrintUnsigned(k);\r
+       px = CtlPanelSX + 108;\r
+       VWB_Bar(px,py,50,6,BackColor);\r
+       USL_DrawString("COMP:");\r
+       PrintX = px;\r
+       US_PrintUnsigned(c);\r
+}\r
+\r
+void\r
+USL_PlayPong(void)\r
+{\r
+       boolean         ball,killball,revdir,done,lastscore;\r
+       word            cycle,\r
+                               x,y,\r
+                               kx,cx,\r
+                               rx,\r
+                               bx,by,\r
+                               kscore,cscore,\r
+                               speedup;\r
+       int                     bdx,bdy;\r
+       longword        balltime,waittime;\r
+       CursorInfo      cursorinfo;\r
+\r
+       kx = cx = PaddleMinX + ((PaddleMaxX - PaddleMinX) / 2);\r
+       bx = by = bdx = bdy = 0;\r
+       kscore = cscore = 0;\r
+       USL_DrawPongScore(0,0);\r
+       cycle = 0;\r
+       revdir = false;\r
+       killball = true;\r
+       done = false;\r
+       lastscore = false;\r
+       do\r
+       {\r
+               waittime = TimeCount;\r
+\r
+               IN_ReadCursor(&cursorinfo);\r
+               if (((cursorinfo.x < 0) || IN_KeyDown(sc_LeftArrow)) && (kx > PaddleMinX))\r
+                       kx -= 2;\r
+               else if (((cursorinfo.x > 0) || IN_KeyDown(sc_RightArrow)) && (kx < PaddleMaxX))\r
+                       kx += 2;\r
+\r
+               if (killball)\r
+               {\r
+                       ball = false;\r
+                       balltime = TimeCount + TickBase;\r
+                       speedup = 10;\r
+                       killball = false;\r
+               }\r
+\r
+               if (ball && (cycle++ % 3))\r
+               {\r
+                       x = (bx >> 2);\r
+                       if (!(x & 1))\r
+                               x += (US_RndT() & 1);\r
+\r
+                       if ((cx + 6 < x) && (cx < PaddleMaxX))\r
+                               cx += 1;\r
+                       else if ((cx + 6 > x) && (cx > PaddleMinX))\r
+                               cx -= 1;\r
+               }\r
+\r
+               VWB_Bar(BallMinX,BallMinY - 1,\r
+                               BallMaxX - BallMinX + 5,BallMaxY - BallMinY + 7,\r
+                               BackColor);\r
+               VWB_DrawSprite(cx,CPaddleY,PADDLESPR);\r
+               VWB_DrawSprite(kx,KPaddleY,PADDLESPR);\r
+               if (ball)\r
+               {\r
+                       if\r
+                       (\r
+                               (((bx + bdx) >> 2) > BallMaxX)\r
+                       ||      (((bx + bdx) >> 2) < BallMinX)\r
+                       )\r
+                       {\r
+                               SD_PlaySound(BALLBOUNCESND);\r
+                               bdx = -bdx;\r
+                       }\r
+                       bx += bdx;\r
+\r
+                       if (((by + bdy) >> 2) > BallMaxY)\r
+                       {\r
+                               killball = true;\r
+                               lastscore = false;\r
+                               cscore++;\r
+                               SD_PlaySound(COMPSCOREDSND);\r
+                               USL_DrawPongScore(kscore,cscore);\r
+                               if (cscore == 21)\r
+                               {\r
+                                       USL_CtlDialog("You lost!","Press any key",nil);\r
+                                       done = true;\r
+                                       continue;\r
+                               }\r
+                       }\r
+                       else if (((by + bdy) >> 2) < BallMinY)\r
+                       {\r
+                               killball = true;\r
+                               lastscore = true;\r
+                               kscore++;\r
+                               SD_PlaySound(KEENSCOREDSND);\r
+                               USL_DrawPongScore(kscore,cscore);\r
+                               if (kscore == 21)\r
+                               {\r
+                                       USL_CtlDialog("You won!","Press any key",nil);\r
+                                       done = true;\r
+                                       continue;\r
+                               }\r
+                       }\r
+                       by += bdy;\r
+\r
+                       x = bx >> 2;\r
+                       y = by >> 2;\r
+                       if (!killball)\r
+                       {\r
+                               if\r
+                               (\r
+                                       (bdy < 0)\r
+                               &&      ((y >= CPaddleY) && (y < CPaddleY + 3))\r
+                               &&      ((x >= (cx - 5)) && (x < (cx + 11)))\r
+                               )\r
+                               {\r
+                                       rx = cx;\r
+                                       revdir = true;\r
+                                       SD_PlaySound(COMPPADDLESND);\r
+                               }\r
+                               else if\r
+                               (\r
+                                       (bdy > 0)\r
+                               &&      ((y >= (KPaddleY - 3)) && (y < KPaddleY))\r
+                               &&      ((x >= (kx - 5)) && (x < (kx + 11)))\r
+                               )\r
+                               {\r
+                                       if (((bdy >> 2) < 3) && !(--speedup))\r
+                                       {\r
+                                               bdy++;\r
+                                               speedup = 10;\r
+                                       }\r
+                                       rx = kx;\r
+                                       revdir = true;\r
+                                       SD_PlaySound(KEENPADDLESND);\r
+                               }\r
+                               if (revdir)\r
+                               {\r
+                                       bdy = -bdy;\r
+                                       bdx = ((x + 5 - rx) >> 1) - (1 << 2);\r
+                                       if (!bdx)\r
+                                               bdx--;\r
+                                       revdir = false;\r
+                               }\r
+                       }\r
+                       VWB_DrawSprite(x,y,(x & 1)? BALL1PIXELTOTHERIGHTSPR : BALLSPR);\r
+               }\r
+               else if (TimeCount >= balltime)\r
+               {\r
+                       ball = true;\r
+                       bdx = 1 - (US_RndT() % 3);\r
+                       bdy = 2;\r
+                       if (lastscore)\r
+                               bdy = -bdy;\r
+                       bx = (BallMinX + ((BallMaxX - BallMinX) / 2)) << 2;\r
+                       by = (BallMinY + ((BallMaxY - BallMinY) / 2)) << 2;\r
+               }\r
+               VW_UpdateScreen();\r
+               while (waittime == TimeCount)\r
+                       ;       // DEBUG - do adaptiveness\r
+       } while ((LastScan != sc_Escape) && !done);\r
+       IN_ClearKeysDown();\r
+}\r
+\r
+#pragma argsused\r
+static boolean\r
+USL_PongCustom(UserCall call,struct UserItem far *item)\r
+{\r
+       if (call != uic_SetupCard)\r
+               return(false);\r
+\r
+       VWB_DrawPic(0,0,CP_MENUSCREENPIC);\r
+       VWB_DrawPic(CtlPanelSX + 56,CtlPanelSY,CP_PADDLEWARPIC);\r
+       VWB_Hlin(CtlPanelSX + 3,CtlPanelEX - 3,CtlPanelSY + 12,HiliteColor ^ BackColor);\r
+       VWB_Hlin(CtlPanelSX + 3,CtlPanelEX - 3,CtlPanelEY - 7,HiliteColor ^ BackColor);\r
+       USL_PlayPong();\r
+\r
+       return(true);\r
+}\r
+\r
+#endif\r