;;; snake.el --- implementation of Snake for Emacs
-;; Copyright (C) 1997 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2001-2011 Free Software Foundation, Inc.
;; Author: Glynn Clements <glynn@sensei.co.uk>
;; Created: 1997-09-10
;; This file is part of GNU Emacs.
-;; GNU Emacs is free software; you can redistribute it and/or modify
+;; GNU Emacs is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
-;; any later version.
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING. If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
+;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
;; ;;;;;;;;;;;;; keymaps ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defvar snake-mode-map
- (make-sparse-keymap 'snake-mode-map))
+ (let ((map (make-sparse-keymap 'snake-mode-map)))
-(define-key snake-mode-map "n" 'snake-start-game)
-(define-key snake-mode-map "q" 'snake-end-game)
-(define-key snake-mode-map "p" 'snake-pause-game)
+ (define-key map "n" 'snake-start-game)
+ (define-key map "q" 'snake-end-game)
+ (define-key map "p" 'snake-pause-game)
-(define-key snake-mode-map [left] 'snake-move-left)
-(define-key snake-mode-map [right] 'snake-move-right)
-(define-key snake-mode-map [up] 'snake-move-up)
-(define-key snake-mode-map [down] 'snake-move-down)
+ (define-key map [left] 'snake-move-left)
+ (define-key map [right] 'snake-move-right)
+ (define-key map [up] 'snake-move-up)
+ (define-key map [down] 'snake-move-down)
+ map))
(defvar snake-null-map
- (make-sparse-keymap 'snake-null-map))
-
-(define-key snake-null-map "n" 'snake-start-game)
+ (let ((map (make-sparse-keymap 'snake-null-map)))
+ (define-key map "n" 'snake-start-game)
+ map))
;; ;;;;;;;;;;;;;;;; game functions ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(setq major-mode 'snake-mode)
(setq mode-name "Snake")
- (setq mode-popup-menu
- '("Snake Commands"
- ["Start new game" snake-start-game]
- ["End game" snake-end-game
- (snake-active-p)]
- ["Pause" snake-pause-game
- (and (snake-active-p) (not snake-paused))]
- ["Resume" snake-pause-game
- (and (snake-active-p) snake-paused)]))
+ (unless (featurep 'emacs)
+ (setq mode-popup-menu
+ '("Snake Commands"
+ ["Start new game" snake-start-game]
+ ["End game" snake-end-game
+ (snake-active-p)]
+ ["Pause" snake-pause-game
+ (and (snake-active-p) (not snake-paused))]
+ ["Resume" snake-pause-game
+ (and (snake-active-p) snake-paused)])))
(setq gamegrid-use-glyphs snake-use-glyphs-flag)
(setq gamegrid-use-color snake-use-color-flag)
(gamegrid-init (snake-display-options))
- (run-hooks 'snake-mode-hook))
+ (run-mode-hooks 'snake-mode-hook))
;;;###autoload
(defun snake ()