Move strings back into source code, from .lng support.
[gnushogi.git] / gnushogi / init.c
index 6e4cfce..3eeaef3 100644 (file)
@@ -2,11 +2,14 @@
  * FILE: init.c
  *
  * ----------------------------------------------------------------------
- *
- * Copyright (c) 2012 Free Software Foundation
+ * Copyright (c) 1993, 1994, 1995 Matthias Mutz
+ * Copyright (c) 1999 Michael Vanier and the Free Software Foundation
  *
  * GNU SHOGI is based on GNU CHESS
  *
+ * Copyright (c) 1988, 1989, 1990 John Stanback
+ * Copyright (c) 1992 Free Software Foundation
+ *
  * This file is part of GNU SHOGI.
  *
  * GNU Shogi is free software; you can redistribute it and/or modify it
@@ -98,26 +101,6 @@ const small_short sweep[NO_PIECES] =
 };
 
 
-#if !defined EXTLANGFILE
-
-char *CP[CPSIZE] =
-
-{
-/* 000: eng: */ "",
-#ifdef LANGFILE
-#include LANGFILE
-#else
-#include "gnushogi.lng"
-#endif
-};
-
-#else
-
-char *CP[CPSIZE];
-
-#endif
-
-
 /*
  * Determine the minimum number of moves for a piece from
  * square "f" to square "t". If the piece cannot reach "t",
@@ -310,12 +293,12 @@ Initialize_dist(void)
 
 
 /*
- * nextpos[piece][from-square], nextdir[piece][from-square] gives vector
- * of positions reachable from from-square in ppos with piece such that the
+ * nextpos[ptype][from-square], nextdir[ptype][from-square] gives vector
+ * of positions reachable from from-square in ppos with ptype such that the
  * sequence
  *
- *     ppos = nextpos[piece][from-square];
- *     pdir = nextdir[piece][from-square];
+ *     ppos = nextpos[ptype][from-square];
+ *     pdir = nextdir[ptype][from-square];
  *     u = ppos[sq];
  *
  *     do
@@ -400,7 +383,7 @@ const small_short direc[NO_PTYPE_PIECES][8] =
 
 small_short diagonal(short d)
 {
-    return (abs(d) == 10 || abs(d) == 12);
+  return (abs(d) == (NO_COLS+1) || abs(d) == (NO_COLS+3));
 }
 
 
@@ -512,8 +495,11 @@ Initialize_moves(void)
     short dest[8][9];
     short sorted[9];
     short steps[8];
-    short fpo = 23, tpo = 120;
+    short fpo = inunmap[0], tpo = 1 + inunmap[NO_SQUARES-1];
 
+    /* pre-fill nextpos and nextdir with source position, probably so
+     * (color[u] == neutral) stops to match once all moves have been seen
+     */
     for (ptyp = 0; ptyp < NO_PTYPE_PIECES; ptyp++)
     {
         for (po = 0; po < NO_SQUARES; po++)
@@ -759,7 +745,7 @@ NewGame(void)
     if (!InitFlag)
     {
         char sx[256];
-        strcpy(sx, CP[169]);
+        strcpy(sx, "level");
 
         if (TCflag)
             SetTimeControl();
@@ -1021,231 +1007,6 @@ Initialize_data(void)
 }
 
 
-#if defined EXTLANGFILE
-
-#ifdef OLDLANGFILE
-
-void
-InitConst(char *lang)
-{
-    FILE *constfile;
-    char s[256];
-    char sl[5];
-    char buffer[120];
-    int len, entry;
-    char *p, *q;
-    constfile = fopen(LANGFILE, "r");
-
-    if (!constfile)
-    {
-        ShowMessage("NO LANGFILE");
-        exit(1);
-    }
-
-    while (fgets(s, sizeof(s), constfile))
-    {
-        if (s[0] == '!')
-            continue;
-
-        len = strlen(s);
-
-        for (q = &s[len]; q > &s[8]; q--)
-            if (*q == '}')
-                break;
-
-        if (q == &s[8])
-        {
-            ShowMessage("{ error in cinstfile");
-            exit(1);
-        }
-
-        *q = '\0';
-
-        if ((s[3] != ':') || (s[7] != ':') || (s[8] != '{'))
-        {
-            sprintf(buffer, "Langfile format error %s", s);
-            ShowMessage(buffer);
-            exit(1);
-        }
-
-        s[3] = s[7] = '\0';
-
-        if (lang == NULL)
-        {
-            lang = sl;
-            strcpy(sl, &s[4]);
-        }
-
-        if (strcmp(&s[4], lang))
-            continue;
-
-        entry = atoi(s);
-
-        if ((entry < 0) || (entry >= CPSIZE))
-        {
-            ShowMessage("Langfile number error");
-            exit(1);
-        }
-
-        for (q = p = &s[9]; *p; p++)
-        {
-            if (*p != '\\')
-            {
-                *q++ = *p;
-            }
-            else if (*(p + 1) == 'n')
-            {
-                *q++ = '\n';
-                p++;
-            }
-        }
-
-        *q = '\0';
-
-        if ((entry < 0) || (entry > 255))
-        {
-            sprintf(buffer, "Langfile error %d\n", entry);
-            ShowMessage(buffer);
-            exit(0);
-        }
-
-        CP[entry] = (char *)GLOBAL_ALLOC((unsigned) strlen(&s[9]) + 1);
-
-        if (CP[entry] == NULL)
-        {
-            char buffer[80];
-            sprintf(buffer, "CP MALLOC, entry %d", entry);
-            perror(buffer);
-            exit(0);
-        }
-
-        strcpy(CP[entry], &s[9]);
-    }
-
-    fclose(constfile);
-}
-
-#else
-
-void
-InitConst(char *lang)
-{
-    FILE *constfile;
-    char s[256];
-    char sl[5];
-    char buffer[120];
-    int len, entry;
-    char *p, *q;
-    constfile = fopen(LANGFILE, "r");
-
-    if (!constfile)
-    {
-        ShowMessage("NO LANGFILE");
-        exit(1);
-    }
-
-    while (fgets(s, sizeof(s), constfile))
-    {
-        if (s[0] == '!')
-            continue;
-
-        len = strlen(s);
-
-        if ((len > 3) && (s[3] == ':') || (len > 7) && (s[7] == ':'))
-        {
-            ShowMessage("old Langfile error");
-            exit(1);
-        }
-
-        if (len <= 15)
-        {
-            ShowMessage("length error in Langfile");
-            exit(1);
-        }
-
-        for (q = &s[len]; q > &s[15]; q--)
-        {
-            if (*q == '"')
-                break;
-        }
-
-        if (q == &s[15])
-        {
-            ShowMessage("\" error in Langfile");
-            exit(1);
-        }
-
-        *q = '\0';
-
-        if ((s[6] != ':') || (s[10] != ':') || (s[15] != '"'))
-        {
-            sprintf(buffer, "Langfile format error %s", s);
-            ShowMessage(buffer);
-            exit(1);
-        }
-
-        s[6] = s[10] = '\0';
-
-        if (lang == NULL)
-        {
-            lang = sl;
-            strcpy(sl, &s[7]);
-        }
-
-        if (strcmp(&s[7], lang))
-            continue;
-
-        entry = atoi(&s[3]);
-
-        if ((entry < 0) || (entry >= CPSIZE))
-        {
-            ShowMessage("Langfile number error");
-            exit(1);
-        }
-
-        for (q = p = &s[16]; *p; p++)
-        {
-            if (*p != '\\')
-            {
-                *q++ = *p;
-            }
-            else if (*(p + 1) == 'n')
-            {
-                *q++ = '\n';
-                p++;
-            }
-        }
-
-        *q = '\0';
-
-        if ((entry < 0) || (entry > 255))
-        {
-            sprintf(buffer, "Langfile error %d\n", entry);
-            ShowMessage(buffer);
-            exit(0);
-        }
-
-        CP[entry] = (char *)GLOBAL_ALLOC((unsigned)strlen(&s[16]) + 1);
-
-        if (CP[entry] == NULL)
-        {
-            char buffer[80];
-            sprintf(buffer, "CP MALLOC, entry %d", entry);
-            perror(buffer);
-            exit(0);
-        }
-
-        strcpy(CP[entry], &s[16]);
-    }
-
-    fclose(constfile);
-}
-
-#endif
-
-#endif
-
-
 int
 InitMain(void)
 {
@@ -1259,20 +1020,14 @@ InitMain(void)
     if (Initialize_data() != 0)
         return 1;
 
-#if defined EXTLANGFILE
-    InitConst(Lang);
-#endif
-
-    strcpy(ColorStr[0], CP[118]);
-    strcpy(ColorStr[1], CP[119]);
+    strcpy(ColorStr[0], "Black");
+    strcpy(ColorStr[1], "White");
 
     XC = 0;
     MaxResponseTime = 0;
 
     if (XSHOGI)
     {
-        signal(SIGINT, TerminateSearch);
-
         TCmoves      = 40;
         TCminutes    = 5;
         TCseconds    = 0;