diff options
author | christos <christos@NetBSD.org> | 2012-10-06 19:39:51 +0000 |
---|---|---|
committer | christos <christos@NetBSD.org> | 2012-10-06 19:39:51 +0000 |
commit | 40545e6c420c8ff5c2a6f4df18634e16a715baf0 (patch) | |
tree | 4b2a12c717e9c50e539a98b84f4792fb7275a1aa /dab | |
parent | bbb57b4a8f2ef35bf61fa83816c3ffc3bf23af73 (diff) | |
download | bsdgames-darwin-40545e6c420c8ff5c2a6f4df18634e16a715baf0.tar.gz bsdgames-darwin-40545e6c420c8ff5c2a6f4df18634e16a715baf0.tar.zst bsdgames-darwin-40545e6c420c8ff5c2a6f4df18634e16a715baf0.zip |
if 0 is used for the dimensions, compute the maximum size.
Diffstat (limited to 'dab')
-rw-r--r-- | dab/dab.6 | 8 | ||||
-rw-r--r-- | dab/main.cc | 6 | ||||
-rw-r--r-- | dab/ttyscrn.cc | 14 | ||||
-rw-r--r-- | dab/ttyscrn.h | 4 |
4 files changed, 20 insertions, 12 deletions
@@ -1,4 +1,4 @@ -.\" $NetBSD: dab.6,v 1.5 2010/01/15 19:39:10 joerg Exp $ +.\" $NetBSD: dab.6,v 1.6 2012/10/06 19:39:51 christos Exp $ .\" .\" Copyright (c) 2003 Thomas Klausner. .\" @@ -22,7 +22,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.Dd December 24, 2003 +.Dd October 7, 2012 .Dt DAB 6 .Os .Sh NAME @@ -95,6 +95,10 @@ and .Ar ydim define the size of the board in the x and y dimensions. +If the dimensions specified are +.Dv 0 +then the maximum dimensions for the size of the screen are +used. .Sh SEE ALSO .Rs .%A Elwyn R. Berlekamp diff --git a/dab/main.cc b/dab/main.cc index 97d93eaa..49a8850b 100644 --- a/dab/main.cc +++ b/dab/main.cc @@ -1,4 +1,4 @@ -/* $NetBSD: main.cc,v 1.5 2008/04/28 20:22:54 martin Exp $ */ +/* $NetBSD: main.cc,v 1.6 2012/10/06 19:39:51 christos Exp $ */ /*- * Copyright (c) 2003 The NetBSD Foundation, Inc. @@ -33,7 +33,7 @@ * main.C: Main dots program */ #include "defs.h" -RCSID("$NetBSD: main.cc,v 1.5 2008/04/28 20:22:54 martin Exp $") +RCSID("$NetBSD: main.cc,v 1.6 2012/10/06 19:39:51 christos Exp $") #include <stdio.h> #include <unistd.h> @@ -168,7 +168,7 @@ int main(int argc, char** argv) } } - sc = TTYSCRN::create(acs, ny, nx); + sc = TTYSCRN::create(acs, &ny, &nx); if (sc == NULL) ::errx(1, "Dimensions too large for current screen."); diff --git a/dab/ttyscrn.cc b/dab/ttyscrn.cc index c0234cba..eeed5fb3 100644 --- a/dab/ttyscrn.cc +++ b/dab/ttyscrn.cc @@ -1,4 +1,4 @@ -/* $NetBSD: ttyscrn.cc,v 1.4 2008/04/28 20:22:54 martin Exp $ */ +/* $NetBSD: ttyscrn.cc,v 1.5 2012/10/06 19:39:51 christos Exp $ */ /*- * Copyright (c) 2003 The NetBSD Foundation, Inc. @@ -34,7 +34,7 @@ */ #include "defs.h" -RCSID("$NetBSD: ttyscrn.cc,v 1.4 2008/04/28 20:22:54 martin Exp $") +RCSID("$NetBSD: ttyscrn.cc,v 1.5 2012/10/06 19:39:51 christos Exp $") #include <stdio.h> #include <curses.h> @@ -191,7 +191,7 @@ void TTYSCRN::ties(const PLAYER& p) mvwprintw(stdscr, _sy + TTYSCRN::offsties, _sx, "G =:%5zd", p.getTies()); } -TTYSCRN* TTYSCRN::create(int acs, size_t y, size_t x) +TTYSCRN* TTYSCRN::create(int acs, size_t *y, size_t *x) { int tx, ty; @@ -201,11 +201,15 @@ TTYSCRN* TTYSCRN::create(int acs, size_t y, size_t x) ty = getmaxy(stdscr); if (tx == ERR || ty == ERR - || static_cast<size_t>(tx) < x * 2 + TTYSCRN::offsx + 12 - || static_cast<size_t>(ty) < y * 2 + TTYSCRN::offsy) { + || static_cast<size_t>(tx) < *x * 2 + TTYSCRN::offsx + 14 + || static_cast<size_t>(ty) < *y * 2 + TTYSCRN::offsy) { endwin(); return NULL; } + if (*x == 0) + *x = (tx - 14 - TTYSCRN::offsx) / 2; + if (*y == 0) + *y = (ty - TTYSCRN::offsy) / 2; cbreak(); noecho(); diff --git a/dab/ttyscrn.h b/dab/ttyscrn.h index 3d3e87f5..addd91ed 100644 --- a/dab/ttyscrn.h +++ b/dab/ttyscrn.h @@ -1,4 +1,4 @@ -/* $NetBSD: ttyscrn.h,v 1.3 2008/04/28 20:22:54 martin Exp $ */ +/* $NetBSD: ttyscrn.h,v 1.4 2012/10/06 19:39:51 christos Exp $ */ /*- * Copyright (c) 2003 The NetBSD Foundation, Inc. @@ -41,7 +41,7 @@ class TTYSCRN : public GAMESCREEN { public: // Constructor that can fail - static TTYSCRN* create(int acs, size_t y, size_t x); + static TTYSCRN* create(int acs, size_t *y, size_t *x); ~TTYSCRN(); // Screen virtuals |