aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Kangas2019-10-17 19:38:06 +0200
committerStefan Kangas2019-10-17 19:39:29 +0200
commit0a70727c4024ac6a66c378df52e37808ee2d7993 (patch)
tree306806efbfe092f1076c129b0e696ce9c94bc5cb
parent34923412b5a5888f0f50b3009a6225670be4c026 (diff)
downloademacs-0a70727c4024ac6a66c378df52e37808ee2d7993.tar.gz
emacs-0a70727c4024ac6a66c378df52e37808ee2d7993.zip
Port snake menu to Emacs
* lisp/play/snake.el (snake--menu-def): New constant. (snake-mode-menu, snake-null-menu): Add a menu. (snake-mode): Remove XEmacs compat code. (snake-mode-map, snake-null-map): Add docstring.
-rw-r--r--lisp/play/snake.el42
1 files changed, 29 insertions, 13 deletions
diff --git a/lisp/play/snake.el b/lisp/play/snake.el
index d0f94579062..5e8a718f5a1 100644
--- a/lisp/play/snake.el
+++ b/lisp/play/snake.el
@@ -186,12 +186,39 @@ and then start moving it leftwards.")
186 (define-key map "\C-f" 'snake-move-right) 186 (define-key map "\C-f" 'snake-move-right)
187 (define-key map "\C-p" 'snake-move-up) 187 (define-key map "\C-p" 'snake-move-up)
188 (define-key map "\C-n" 'snake-move-down) 188 (define-key map "\C-n" 'snake-move-down)
189 map)) 189 map)
190 "Keymap for Snake games.")
190 191
191(defvar snake-null-map 192(defvar snake-null-map
192 (let ((map (make-sparse-keymap 'snake-null-map))) 193 (let ((map (make-sparse-keymap 'snake-null-map)))
193 (define-key map "n" 'snake-start-game) 194 (define-key map "n" 'snake-start-game)
194 map)) 195 map)
196 "Keymap for finished Snake games.")
197
198(defconst snake--menu-def
199 '("Snake"
200 ["Start new game" snake-start-game
201 :help "Start a new Snake game"]
202 ["End game" snake-end-game
203 :active (snake-active-p)
204 :help "End the current Snake game"]
205 ["Pause" snake-pause-game
206 :active (and (snake-active-p) (not snake-paused))
207 :help "Pause running Snake game"]
208 ["Resume" snake-pause-game
209 :active (and (snake-active-p) snake-paused)
210 :help "Resume paused Snake game"])
211 "Menu for `snake'. Used to initialize menus.")
212
213(easy-menu-define
214 snake-mode-menu snake-mode-map
215 "Menu for running Snake games."
216 snake--menu-def)
217
218(easy-menu-define
219 snake-null-menu snake-null-map
220 "Menu for finished Snake games."
221 snake--menu-def)
195 222
196;; ;;;;;;;;;;;;;;;; game functions ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 223;; ;;;;;;;;;;;;;;;; game functions ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
197 224
@@ -368,17 +395,6 @@ Argument SNAKE-BUFFER is the name of the buffer."
368 395
369 (use-local-map snake-null-map) 396 (use-local-map snake-null-map)
370 397
371 (unless (featurep 'emacs)
372 (setq mode-popup-menu
373 '("Snake Commands"
374 ["Start new game" snake-start-game]
375 ["End game" snake-end-game
376 (snake-active-p)]
377 ["Pause" snake-pause-game
378 (and (snake-active-p) (not snake-paused))]
379 ["Resume" snake-pause-game
380 (and (snake-active-p) snake-paused)])))
381
382 (setq gamegrid-use-glyphs snake-use-glyphs-flag) 398 (setq gamegrid-use-glyphs snake-use-glyphs-flag)
383 (setq gamegrid-use-color snake-use-color-flag) 399 (setq gamegrid-use-color snake-use-color-flag)
384 400