This is SokoView.h in view mode; [Download] [Up]
#import <appkit/appkit.h> #import "version.h" #define MAXGAMESIZE_X 40 #define MAXGAMESIZE_Y 40 #define MAXGOLD 40 #define NOWAY 0 #define EAST 'E' #define WEST 'W' #define NORTH 'N' #define SOUTH 'S' #define MYWAY '*' #define WOMEN '@' #define BRICK '#' #define GOLD '$' #define BASE '.' #define G_O_B '*' #define W_O_B '+' #define FREE ' ' #define ILLEGAL 'X' #define JOLLY 1 @interface SokoView:View { id sokoWindow; id waitPanel; id background; id women,brick,gold,base; char *way,*cway; int *east; int *west; int *north; int *south; int *wayDescription; int *knownWays; int *testWays; int *waysToTest; char field[MAXGAMESIZE_X*MAXGAMESIZE_Y]; int fieldX,fieldY; int pieces; int goldPosition[MAXGOLD]; int basePosition[MAXGOLD]; int goldN,baseN,initSolved; int womenPosition; int solved; int last_goldPosition[MAXGOLD]; int last_basePosition[MAXGOLD]; int last_goldN,last_baseN; int last_womenPosition; int last_solved; NXSize matrix; NXSize winOverhead; } - setSokoWindow:sender; - setWaitPanel:sender; - initFrame:(const NXRect *)rect; - readLevelFromFile:(char *)level; - restartLevel; - restorePosition; - savePosition; - setupWayfinder; - (int)findWay:(int)end; - findWayWithoutConflicts:(int)end; - (int)findPositionFromDirection:(int)begin :(int)direction; - moveWomen:(int)end; - animateWomen:(int)newPosition; - animateWomenWithGold:(int)newPosition :(int)behind; /************ class methods */ - (BOOL)acceptsFirstResponder; - (BOOL)acceptsFirstMouse; - rightMouseDown:(NXEvent *)event; - mouseDown:(NXEvent *)event; - keyDown:(NXEvent *)event; - sizeTo:(NXCoord)width:(NXCoord)height; - drawSelf:(NXRect *)rect :(int)count; /************ delegated methods */ - windowWillResize:sender toSize:(NXSize *)frameSize; @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.