This is OPENSTEP-HISTORY.txt in view mode; [Download] [Up]
//-----------------------------------------------------------------------------
// SokoSave OPENSTEP HISTORY
// $Id: OPENSTEP-HISTORY.txt,v 1.1 97/12/10 07:19:56 sunshine Exp $
//-----------------------------------------------------------------------------
Release:
1.1, v10.1, next-ftp.peak.org, 12/10/1997 (including 1.1 for NextStep)
*** RELEASE 1.1 ***
v10.1 12/10/1997 06:40 EST sunshine
Ported SokoSave v10 for NEXTSTEP 3.3 to OPENSTEP 4.1 & 4.2 for Mach,
OPENSTEP 4.2 for NT, and Rhapsody Developer Release (RDR) for Mach
and NT.
Fixed wording in info panel: "brings up panel" --> "brings up a panel".
Added "Feedback" section to info panel.
Fixed wording on main menu: "Games" --> "Game".
Fixed bug: "Save As..." menu item was malformatted as "SaveAs...".
Fixed bug: +[SokoBoard nextMaze] was neglecting to call -makeKeyWindow:
after opening the maze on behalf of SokoApp.
Fixed bug: "New Score" panel allowed resizing in both dimensions even
though it only makes sense to resize horizontally.
Fixed bug: When opening a saved game with a deferred game window, the
NSSlider didn't get drawn. SokoBoard was incorrectly & unnecessarily
calling -sizeToFit on the slider. For some reason on deferred windows
this has the side-effect of setting the slider's frame size to (0,0).
Fixed bug: New and Open panels failed to restrict allowed types to
.sokomaze and .sokosave, respectively. The problem was that they were
using the inherited -setRequiredFileType: method which seems to be
ineffectual in NSOpenPanel. They now specify the types explicitly
via -runModalForDirectory:file:types:.
Fixed bug: Opening a saved game with no history resulted in a "corrupt
moves/pushes" error message. The problem was that an earlier fscanf()
format string was eating the blank line which represented the empty
history in the save-file.
Fixed bug: When opening a saved game with no history, was calling malloc(0).
Fixed bug: Opening a saved game could report "corrupt recorded values" in
the following case: 1) solve and save game, 2) undo two or more
times, 3) make a move which is *not* in the history, 4) save game, 5)
close game, 6) re-open game. The problem was that at step 3, the
history was truncated. Yet the load function was asserting that the
"recorded" moves & pushes were less than the history-length, and after
the truncation, this assertion was no longer valid.
Added a Rhapsody-specific main menu.
Added a Windows-specific main menu.
Under Windows, the automatic launching of the "default" maze is no longer
deferred. This was incompatible with the Windows UI where an
application must have at least one window on-screen on account of the
fact that the main menu is attached to the window rather than stand-
alone. The automatic launch is still deferred on the other platforms.
Under Windows, had to account for failure to load the "default" maze
since this would leave the application dangling without a window
on-screen. Now, if the "default" maze fails to load, then it tries
loading maze #1. If that fails, then it presents the user with an
open panel from which they can choose a new game or a saved game. If
the user aborts the open panel, or if the chosen game fails to load,
then the application terminates.
Under Windows, PSadjustcursor() had no effect. This is used by the
click-crate-to-move feature to move the mouse pointer along with the
crate. Apparently PSadjustcursor() is a no-op under Windows. Ended
up having to make native Windows calls in order to emulate this
behavior. Unfortunately the Objective-C++ compiler can *not* import
Windows header files without barfing up hundreds of errors, so I had
to move the mouse-positioning code into its own Objective-C file,
SokoMouse.m.
Under Windows, the Scores panel incorrectly contained an application menu.
Under Windows, the information panel was not displaying the application
icon. I fixed this by explicitly using the name "SokoSave" for the
image rather than "NSApplicationIcon".
Under Windows, SokoFile's mkdirs() couldn't properly handle Universal
Naming Convention (UNC) paths (of the form \\wowbagger\sunshine).
Had to rewrite it to visit the directories bottom-up rather than
top-down.
SokoBoard now implements -validateMenuItem: to properly enable and disable
the Undo, Redo, and Save menu items.
SokoApp now implements -validateMenuItem: to properly enable and disable
the Save All menu item.
The preference panel now has a field to allow resetting the Level.
The Cancel button on the preference panel now reverts the fields to their
saved values.
The Okay button on the preference panel now dismisses the panel.
The preference panel now gets marked dirty when edits are made and prompts
the user if dirty and the window's close button is pressed.
Added option to preference panel to allow user to toggle automatic saving
of game when it's solved.
Preference panel now saves its position.
Worked around OPENSTEP 4.1 & 4.2 makefile bugs. SRCFILES didn't include
any of the C++ sources. OFILES didn't include any of the C++ object
files.
Unified the color depth of all the LargeArrow tiffs. Gave them all
transparency rather than having opaque light-gray backgrounds so that
they look correct on all platforms. (Not all platforms use light-gray
as the background for the button.) Also they look better this way
when disabled.
Removed an unnecesary #include <assert.h> from SokoEncode.cc.
The README files are now included in the application wrapper.
Changed Files:
- Help
* LargeArrow{Down|Left|Right|Up}.tiff
* LargeArrowDown{Left|Right}.tiff
* LargeArrowUp{Left|Right}.tiff
* Makefile
* Makefile.{preamble|postamble}
* pack.sh
- PB.gdbinit
* PB.project
- README
+ README_{OPENSTEP|RHAPSODY}
* README_ABOUT_SOURCE_CODE
* SokoApp.{h|M}
* SokoBoard.{h|M|nib}
* SokoDefs.h
* SokoEncode.cc
* SokoFiles.{h|M}
* SokoInfo.{h|M|nib}
* SokoMatrix.{h|M}
+ SokoMouse.{h|m} (yes 'm', not 'M')
* SokoPref.{h|M|nib}
+ SokoSave.ico
* SokoSave.iconheader
* SokoSave.nib
+ SokoSave-{macintosh|windows}.nib
> SokoSave_main.M --> SokoSave_main.m
* SokoSave_main.m
* SokoScore.{h|M|nib}
- SokoUtil.{h|cc}
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.