From 40545e6c420c8ff5c2a6f4df18634e16a715baf0 Mon Sep 17 00:00:00 2001 From: christos Date: Sat, 6 Oct 2012 19:39:51 +0000 Subject: if 0 is used for the dimensions, compute the maximum size. --- dab/dab.6 | 8 ++++++-- dab/main.cc | 6 +++--- dab/ttyscrn.cc | 14 +++++++++----- dab/ttyscrn.h | 4 ++-- 4 files changed, 20 insertions(+), 12 deletions(-) (limited to 'dab') diff --git a/dab/dab.6 b/dab/dab.6 index 43a9af51..039c79aa 100644 --- a/dab/dab.6 +++ b/dab/dab.6 @@ -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 #include @@ -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 #include @@ -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(tx) < x * 2 + TTYSCRN::offsx + 12 - || static_cast(ty) < y * 2 + TTYSCRN::offsy) { + || static_cast(tx) < *x * 2 + TTYSCRN::offsx + 14 + || static_cast(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 -- cgit v1.2.3-56-ge451