home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / games / volume13 / dominion / part28 / init.c < prev    next >
C/C++ Source or Header  |  1992-02-11  |  3KB  |  81 lines

  1.   /* init.c -- initialize the keymap */
  2.  
  3. /*
  4.  * Copyright (C) 1990 Free Software Foundation, Inc.
  5.  * Written by the dominion project.
  6.  *
  7.  * This file is part of dominion.
  8.  *
  9.  * dominion is free software; you can redistribute it and/or
  10.  * modify it under the terms of the GNU General Public License as published
  11.  * by the Free Software Foundation; either version 1, or (at your option)
  12.  * any later version.
  13.  *
  14.  * This software is distributed in the hope that it will be useful,
  15.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  17.  * GNU General Public License for more details.
  18.  *
  19.  * You should have received a copy of the GNU General Public License
  20.  * along with this software; see the file COPYING.  If not, write to
  21.  * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
  22.  */
  23.  
  24. #include "dominion.h"
  25.  
  26. extern Suser user;
  27. extern int (*keymap[128])();
  28.  
  29. init_keymap()            /* assign keys to default functions */
  30. {
  31.   int i;
  32.     /* now list all commands in keymap */
  33.   int null_key(), bad_key(), quit(), up(), down(), right(), left(),
  34.                  upright(), upleft(),jhome(),jpos(),
  35.                  downright(), downleft(), jup(), jdown(), jright(), jleft(),
  36.                  help(), redraw(), windows(), display_menu(), mail(),
  37.                  report_menu(), army_menu(), zoom_sector(), trade_menu(),
  38.                  wizardry_menu(), dump_map(), news(), construct(),
  39.                  transport(), root_change_passwd(), root_edit(), options();
  40.  
  41.   for (i = 0; i < 128; ++i) {
  42.     keymap[i] = bad_key;
  43.   }
  44.   if (user.id == 0) {
  45.     keymap['E'] = root_edit;
  46.   }
  47.   keymap[' '] = keymap['\n'] = keymap['\r'] = null_key;
  48.   keymap['q'] = keymap['Q'] = quit;
  49.   keymap['?'] = help;
  50.   keymap[' '] = redraw;
  51.   keymap['h'] = keymap['4'] = left;
  52.   keymap['l'] = keymap['6'] = right;
  53.   keymap['k'] = keymap['8'] = up;
  54.   keymap['j'] = keymap['2'] = down;
  55.   keymap['u'] = keymap['9'] = upright;
  56.   keymap['y'] = keymap['7'] = upleft;
  57.   keymap['n'] = keymap['3'] = downright;
  58.   keymap['b'] = keymap['1'] = downleft;
  59.   keymap['H'] = jleft;
  60.   keymap['J'] = jdown;
  61.   keymap['K'] = jup;
  62.   keymap['L'] = jright;
  63.   keymap['w'] = windows;
  64.   keymap['d'] = display_menu;
  65.   keymap['r'] = report_menu;
  66.   keymap['a'] = army_menu;
  67.   keymap['Z'] = zoom_sector;
  68.   keymap['m'] = mail;
  69. #ifdef TRADE_BOARD
  70.   keymap['T'] = trade_menu;
  71. #endif TRADE_BOARD
  72.   keymap['W'] = wizardry_menu;
  73.   keymap['F'] = dump_map;
  74.   keymap['N'] = news;
  75.   keymap['C'] = construct;
  76.   keymap['t'] = transport;
  77.   keymap['O'] = options;
  78.   keymap['P'] = jhome;
  79.   keymap['p'] = jpos;
  80. }
  81.