summaryrefslogtreecommitdiffstats
path: root/dab
diff options
context:
space:
mode:
authorchristos <christos@NetBSD.org>2012-10-06 19:39:51 +0000
committerchristos <christos@NetBSD.org>2012-10-06 19:39:51 +0000
commit40545e6c420c8ff5c2a6f4df18634e16a715baf0 (patch)
tree4b2a12c717e9c50e539a98b84f4792fb7275a1aa /dab
parentbbb57b4a8f2ef35bf61fa83816c3ffc3bf23af73 (diff)
downloadbsdgames-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.68
-rw-r--r--dab/main.cc6
-rw-r--r--dab/ttyscrn.cc14
-rw-r--r--dab/ttyscrn.h4
4 files changed, 20 insertions, 12 deletions
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 <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