[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/sokoban e54bbfa 07/17: Save sokoban-level when a level
From: |
Stefan Monnier |
Subject: |
[elpa] externals/sokoban e54bbfa 07/17: Save sokoban-level when a level is completed, restore sokoban-level when game is started |
Date: |
Tue, 1 Dec 2020 17:17:28 -0500 (EST) |
branch: externals/sokoban
commit e54bbfae19c8062d2d43bd4faf010c999ed4cf2b
Author: Dieter Deyke <dieter.deyke@gmail.com>
Commit: Dieter Deyke <dieter.deyke@gmail.com>
Save sokoban-level when a level is completed, restore sokoban-level when
game is started
---
sokoban.el | 17 ++++++++++++++++-
1 file changed, 16 insertions(+), 1 deletion(-)
diff --git a/sokoban.el b/sokoban.el
index 1601e9b..9eedff1 100644
--- a/sokoban.el
+++ b/sokoban.el
@@ -3,6 +3,7 @@
;; Copyright (C) 1998, 2013, 2017 Free Software Foundation, Inc.
;; Author: Glynn Clements <glynn.clements@xemacs.org>
+;; Maintainer: Dieter Deyke <dieter.deyke@gmail.com>
;; Version: 1.4
;; Created: 1997-09-11
;; Keywords: games
@@ -41,6 +42,8 @@
;; Modified: 1998-06-04, added `undo' feature
;; added number of blocks done/total to score and modeline
;; Modified: 2003-06-14, update email address, remove URL
+;; Modified: 2017-05-27, save sokoban-level when a level is completed,
+;; restore sokoban-level when game is started
;; Tested with XEmacs 20.3/4/5 and Emacs 19.34
@@ -94,6 +97,8 @@
(defvar sokoban-level-data nil)
+(defconst sokoban-state-filename (locate-user-emacs-file "sokoban-state"))
+
;; ;;;;;;;;;;;;; constants ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defconst sokoban-floor-xpm "\
@@ -613,6 +618,9 @@ static char * player_xpm[] = {
(incf sokoban-done))
(sokoban-add-push dx dy)
(cond ((= sokoban-done sokoban-targets)
+ (let ((level sokoban-level))
+ (with-temp-file sokoban-state-filename
+ (print level (current-buffer))))
(sit-for 3)
(sokoban-next-level))))))))))
@@ -771,7 +779,14 @@ sokoban-mode keybindings:
(switch-to-buffer sokoban-buffer-name)
(gamegrid-kill-timer)
(sokoban-mode)
- (sokoban-start-game))
+ (setq sokoban-level 0)
+ (if (file-exists-p sokoban-state-filename)
+ (setq sokoban-level
+ (with-temp-buffer
+ (insert-file-contents sokoban-state-filename)
+ (goto-char (point-min))
+ (read (current-buffer)))))
+ (sokoban-next-level))
;;;###autoload
(unless (featurep 'xemacs)
- [elpa] branch externals/sokoban created (now e217508), Stefan Monnier, 2020/12/01
- [elpa] externals/sokoban f52e1bf 03/17: * sokoban.el (sokoban-init-level-data): Compatibility fix., Stefan Monnier, 2020/12/01
- [elpa] externals/sokoban 1754aaa 02/17: * sokoban.el: Style tweaks., Stefan Monnier, 2020/12/01
- [elpa] externals/sokoban c5ed120 04/17: Only keep the strictly necessary *-pkg.el files, Stefan Monnier, 2020/12/01
- [elpa] externals/sokoban d9f58b0 11/17: * sokoban.el: Force sokoban-width to be at least 15 to accommodate score display, Stefan Monnier, 2020/12/01
- [elpa] externals/sokoban e217508 17/17: * .gitignore: New file, Stefan Monnier, 2020/12/01
- [elpa] externals/sokoban 90b9c6b 16/17: * sokoban/sokoban.el: Add save/load capability, Stefan Monnier, 2020/12/01
- [elpa] externals/sokoban e54bbfa 07/17: Save sokoban-level when a level is completed, restore sokoban-level when game is started,
Stefan Monnier <=
- [elpa] externals/sokoban 1c53ebe 14/17: * sokoban.el: Switch to lexical-binding, Stefan Monnier, 2020/12/01
- [elpa] externals/sokoban 926ab8d 09/17: * packages/sokoban/sokoban.el: Change player and block color if on target, Stefan Monnier, 2020/12/01
- [elpa] externals/sokoban 44f9b39 12/17: * sokoban.el: Add support for level data in xml format, Stefan Monnier, 2020/12/01
- [elpa] externals/sokoban b51c816 15/17: * sokoban/sokoban.el: Use cl-lib, Stefan Monnier, 2020/12/01
- [elpa] externals/sokoban ae777cf 05/17: * packages/sokoban/sokoban.el: Fix version., Stefan Monnier, 2020/12/01
- [elpa] externals/sokoban 5c609d7 10/17: * sokoban.el: Determine sokoban-width and sokoban-height dynamically, Stefan Monnier, 2020/12/01
- [elpa] externals/sokoban f882802 01/17: Add sokoban game for emacs, Stefan Monnier, 2020/12/01
- [elpa] externals/sokoban e920b6a 08/17: Allow for player to start on a target, allow for wider and higher levels, Stefan Monnier, 2020/12/01
- [elpa] externals/sokoban 4a93859 13/17: * sokoban.el: Require at least emacs version 23.1 because of load-user-emacs-file, Stefan Monnier, 2020/12/01
- [elpa] externals/sokoban 020ae7c 06/17: * sokoban/sokoban.el (sokoban-draw-score): Fix off-by-one error, Stefan Monnier, 2020/12/01