* ----------------------------------------------------------------------
*/
+/* request *snprintf prototypes*/
+#define _POSIX_C_SOURCE 200112L
#include <ctype.h>
#include <signal.h>
#include <stdio.h>
+#include <stdarg.h>
#include <sys/param.h>
#include <sys/types.h>
#include <curses.h>
#include "gnushogi.h"
-#include "cursesdsp.h"
#if HAVE_UNISTD_H
#include <unistd.h>
int MSCORE;
char *DRAW;
-/* Forward declarations. */
-/* FIXME: change this name, puh-leeze! */
+/****************************************
+ * forward declarations
+ ****************************************/
+/* FIXME: change this name, puh-leeze! */
static void UpdateCatched(void);
static void DrawPiece(short sq);
static void ShowScore(short score);
+void Curses_UpdateDisplay(short f, short t, short redraw, short isspec);
+void Curses_Die(int sig);
+void Curses_ShowSidetoMove(void);
/****************************************
* Trivial output functions.
}
-static void
-ClearMessage(void)
-{
- gotoXY(TAB, 6);
- ClearEoln();
-}
-
-
void
Curses_ShowCurrentMove(short pnt, short f, short t)
{
void
-Curses_AlwaysShowMessage(const char *format, va_list ap)
+Curses_AlwaysShowMessage(const char *format, ...)
{
static char buffer[60];
+ va_list ap;
+ va_start(ap, format);
vsnprintf(buffer, sizeof(buffer), format, ap);
Curses_ShowMessage(buffer);
+ va_end(ap);
}
void
-Curses_Printf(const char *format, va_list ap)
+Curses_Printf(const char *format, ...)
{
static char buffer[60];
+ va_list ap;
+ va_start(ap, format);
vsnprintf(buffer, sizeof(buffer), format, ap);
printw("%s", buffer);
+ va_end(ap);
}
t = (l + h) >> 1;
}
- ShowNodeCnt(NodeCnt);
+ Curses_ShowNodeCnt(NodeCnt);
gotoXY(TAB, 23);
printw("Max Tree = %5d", t);
ClearEoln();
printw("%d:%02d ", m, s);
if (flag.post)
- ShowNodeCnt(NodeCnt);
+ Curses_ShowNodeCnt(NodeCnt);
refresh();
}
void
Curses_ShowPostnValue(short sq)
{
- short score;
-
gotoXY(4 + 5 * VIR_C(sq), 5 + 2 * (7 - VIR_R(sq))); /* CHECKME */
- score = ScorePosition(color[sq]);
+ (void) ScorePosition(color[sq]);
if (color[sq] != neutral)
#if defined SAVE_SVALUE
gotoXY(3, 4 + 2*NO_ROWS);
printw(" ");
+#ifndef MINISHOGI
if (flag.reverse)
printw(" 1 2 3 4 5 6 7 8 9");
else
printw(" 9 8 7 6 5 4 3 2 1");
+#else
+ if (flag.reverse)
+ printw(" 1 2 3 4 5");
+ else
+ printw(" 1 2 3 4 5");
+#endif
for (sq = 0; sq < NO_SQUARES; sq++)
DrawPiece(sq);
void
-Curses_ChangeSearchDepth(void)
+Curses_ChangeSearchDepth(char* sx)
{
Curses_ShowMessage("depth = ");
FLUSH_SCANW("%hd", &MaxSearchDepth);
{
Curses_ShowMessage("'setup' command is not supported in Cursesmode");
}
+
+
+struct display curses_display =
+{
+ .ChangeAlphaWindow = Curses_ChangeAlphaWindow,
+ .ChangeBetaWindow = Curses_ChangeBetaWindow,
+ .ChangeHashDepth = Curses_ChangeHashDepth,
+ .ChangeSearchDepth = Curses_ChangeSearchDepth,
+ .ChangeXwindow = Curses_ChangeXwindow,
+ .ClearScreen = Curses_ClearScreen,
+ .DoDebug = Curses_DoDebug,
+ .DoTable = Curses_DoTable,
+ .EditBoard = Curses_EditBoard,
+ .ExitShogi = Curses_ExitShogi,
+ .GiveHint = Curses_GiveHint,
+ .Initialize = Curses_Initialize,
+ .ShowNodeCnt = Curses_ShowNodeCnt,
+ .OutputMove = Curses_OutputMove,
+ .PollForInput = Curses_PollForInput,
+ .SetContempt = Curses_SetContempt,
+ .SearchStartStuff = Curses_SearchStartStuff,
+ .SelectLevel = Curses_SelectLevel,
+ .ShowCurrentMove = Curses_ShowCurrentMove,
+ .ShowDepth = Curses_ShowDepth,
+ .ShowGameType = Curses_ShowGameType,
+ .ShowLine = Curses_ShowLine,
+ .ShowMessage = Curses_ShowMessage,
+ .AlwaysShowMessage = Curses_AlwaysShowMessage,
+ .Printf = Curses_Printf,
+ .doRequestInputString = Curses_doRequestInputString,
+ .GetString = Curses_GetString,
+ .SetupBoard = Curses_SetupBoard,
+ .ShowPatternCount = Curses_ShowPatternCount,
+ .ShowPostnValue = Curses_ShowPostnValue,
+ .ShowPostnValues = Curses_ShowPostnValues,
+ .ShowPrompt = Curses_ShowPrompt,
+ .ShowResponseTime = Curses_ShowResponseTime,
+ .ShowResults = Curses_ShowResults,
+ .ShowSidetoMove = Curses_ShowSidetoMove,
+ .ShowStage = Curses_ShowStage,
+ .TerminateSearch = Curses_TerminateSearch,
+ .UpdateClocks = Curses_UpdateClocks,
+ .UpdateDisplay = Curses_UpdateDisplay,
+ .help = Curses_help,
+};