]> git.cameronkatri.com Git - bsdgames-darwin.git/blobdiff - tetris/screen.c
- Accept octal input.
[bsdgames-darwin.git] / tetris / screen.c
index 1babdb498800a73ec82128e71f715f37e442cf82..bc065aaac864ff01bed353728d37751ec818939f 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: screen.c,v 1.30 2015/07/07 22:53:25 nat Exp $  */
+/*     $NetBSD: screen.c,v 1.33 2017/03/20 22:05:27 christos Exp $     */
 
 /*-
  * Copyright (c) 1992, 1993
@@ -197,6 +197,7 @@ scr_set(void)
                    MINCOLS, MINROWS);
                stop("");       /* stop() supplies \n */
        }
+       Offset = (Rows - D_LAST + D_FIRST - 2) / 2;
        if (tcgetattr(0, &oldtt) < 0)
                stop("tcgetattr() fails");
        newtt = oldtt;
@@ -211,10 +212,11 @@ scr_set(void)
         * We made it.  We are now in screen mode, modulo TIstr
         * (which we will fix immediately).
         */
-       if (enter_ca_mode)
-               putstr(enter_ca_mode);
-       if (cursor_invisible)
-               putstr(cursor_invisible);
+       const char *tstr;
+       if ((tstr = enter_ca_mode) != NULL)
+               putstr(tstr);
+       if ((tstr = cursor_invisible) != NULL)
+               putstr(tstr);
        if (tstp != SIG_IGN)
                (void) signal(SIGTSTP, scr_stop);
        if (ttou != SIG_IGN)
@@ -238,15 +240,16 @@ scr_end(void)
        sigaddset(&nsigset, SIGTTOU);
        (void) sigprocmask(SIG_BLOCK, &nsigset, &osigset);
        /* move cursor to last line */
-       if (cursor_to_ll)
-               putstr(cursor_to_ll);
+       const char *tstr;
+       if ((tstr = cursor_to_ll) != NULL)
+               putstr(tstr);
        else
                moveto(Rows - 1, 0);
        /* exit screen mode */
-       if (exit_ca_mode)
-               putstr(exit_ca_mode);
-       if (cursor_normal)
-               putstr(cursor_normal);
+       if ((tstr = exit_ca_mode) != NULL)
+               putstr(tstr);
+       if ((tstr = cursor_normal) != NULL)
+               putstr(tstr);
        (void) fflush(stdout);
        (void) tcsetattr(0, TCSADRAIN, &oldtt);
        isset = 0;
@@ -330,8 +333,8 @@ scr_update(void)
                putstr("Next shape:");
                                                
                /* draw */
-               putpad(enter_standout_mode);
                setcolor(nextshape->color);
+               putpad(enter_standout_mode);
                moveto(r, 2*c);
                putstr("  ");
                for(i=0; i<3; i++) {
@@ -360,7 +363,7 @@ scr_update(void)
                                        putpad(exit_standout_mode);
                                        cur_so = 0;
                                }
-                               moveto(RTOD(j), CTOD(i));
+                               moveto(RTOD(j + Offset), CTOD(i));
                        }
                        if (enter_standout_mode) {
                                if (so != cur_so) {