|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: P T
Length: 9992 (0x2708)
Types: TextFile
Names: »Patches01«
└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987
└─⟦this⟧ »EUUGD18/General/Sokoban/Patches01«
*** sokoban.h.orig Wed Mar 15 14:44:26 1989
--- sokoban.h Tue Mar 21 11:55:14 1989
***************
*** 66,72 ****
packet = { '$', '$', 0 },
save = { '*', '$', 1 },
ground = { ' ', ' ', 0 },
! wall = { '#', ' ', 1 };
/*************************************************************************
********************** DO NOT CHANGE BELOW THIS LINE *********************
--- 66,72 ----
packet = { '$', '$', 0 },
save = { '*', '$', 1 },
ground = { ' ', ' ', 0 },
! wall = { '#', '#', 1 };
/*************************************************************************
********************** DO NOT CHANGE BELOW THIS LINE *********************
*** readscreen.c.orig Wed Mar 15 14:43:56 1989
--- readscreen.c Tue Mar 21 11:54:43 1989
***************
*** 14,20 ****
char *fnam;
short j, c, ret = 0;
! fnam = malloc( strlen( SCREENPATH) + 11);
sprintf( fnam, "%s/screen.%d", SCREENPATH, level);
if( (screen = fopen( fnam, "r")) == NULL)
ret = E_FOPENSCREEN;
--- 14,20 ----
char *fnam;
short j, c, ret = 0;
! fnam = malloc( strlen( SCREENPATH) + 12);
sprintf( fnam, "%s/screen.%d", SCREENPATH, level);
if( (screen = fopen( fnam, "r")) == NULL)
ret = E_FOPENSCREEN;
*** save.c.orig Wed Mar 15 14:43:57 1989
--- save.c Tue Mar 21 11:54:52 1989
***************
*** 23,30 ****
short ret = 0;
signal( SIGINT, SIG_IGN);
! sfname = malloc( strlen( SAVEPATH) + strlen( username) + 5);
sprintf( sfname, "%s/%s.sav", SAVEPATH, username);
if( (savefile = fopen( sfname, "w")) == NULL)
ret = E_FOPENSAVE;
else {
--- 23,54 ----
short ret = 0;
signal( SIGINT, SIG_IGN);
! sfname = malloc( strlen( SAVEPATH) + strlen( username) + 6);
sprintf( sfname, "%s/%s.sav", SAVEPATH, username);
+ #ifdef __MSDOS__
+ if( (savefile = fopen( sfname, "wb")) == NULL)
+ ret = E_FOPENSAVE;
+ else {
+ if( fwrite( map, 1, MAXROW*MAXCOL, savefile) != MAXROW*MAXCOL)
+ ret = E_WRITESAVE;
+ else if( fwrite( &ppos, 1, sizeof( POS), savefile) != sizeof( POS))
+ ret = E_WRITESAVE;
+ else if( fwrite( &level, 1, 2, savefile) != 2) ret = E_WRITESAVE;
+ else if( fwrite( &moves, 1, 2, savefile) != 2) ret = E_WRITESAVE;
+ else if( fwrite( &pushes, 1, 2, savefile) != 2) ret = E_WRITESAVE;
+ else if( fwrite( &packets, 1, 2, savefile) != 2) ret = E_WRITESAVE;
+ else if( fwrite( &savepack, 1, 2, savefile) != 2) ret = E_WRITESAVE;
+ else if( fwrite( &rows, 1, 2, savefile) != 2) ret = E_WRITESAVE;
+ else if( fwrite( &cols, 1, 2, savefile) != 2) ret = E_WRITESAVE;
+ else {
+ fclose( savefile);
+ if( stat( sfname, &sfstat) != 0) ret = E_STATSAVE;
+ else if( (savefile = fopen( sfname, "ab")) == NULL)
+ ret = E_FOPENSAVE;
+ else {
+ if( fwrite( &sfstat, 1, sizeof( sfstat), savefile) != sizeof( sfstat))
+ ret = E_WRITESAVE;
+ #else
if( (savefile = fopen( sfname, "w")) == NULL)
ret = E_FOPENSAVE;
else {
***************
*** 33,39 ****
ret = E_WRITESAVE;
else if( write( savedbn, &ppos, sizeof( POS)) != sizeof( POS))
ret = E_WRITESAVE;
- else if( write( savedbn, &scoring, 2) != 2) ret = E_WRITESAVE;
else if( write( savedbn, &level, 2) != 2) ret = E_WRITESAVE;
else if( write( savedbn, &moves, 2) != 2) ret = E_WRITESAVE;
else if( write( savedbn, &pushes, 2) != 2) ret = E_WRITESAVE;
--- 57,62 ----
***************
*** 49,54 ****
--- 72,78 ----
else {
if( write( savedbn, &sfstat, sizeof( sfstat)) != sizeof( sfstat))
ret = E_WRITESAVE;
+ #endif
fclose( savefile);
}
}
***************
*** 65,75 ****
struct stat oldsfstat;
signal( SIGINT, SIG_IGN);
! sfname = malloc( strlen( SAVEPATH) + strlen( username) + 5);
sprintf( sfname, "%s/%s.sav", SAVEPATH, username);
if( stat( sfname, &oldsfstat) < -1)
ret = E_NOSAVEFILE;
else {
if( (savefile = fopen( sfname, "r")) == NULL)
ret = E_FOPENSAVE;
else {
--- 89,119 ----
struct stat oldsfstat;
signal( SIGINT, SIG_IGN);
! sfname = malloc( strlen( SAVEPATH) + strlen( username) + 6);
sprintf( sfname, "%s/%s.sav", SAVEPATH, username);
+ #ifdef __MSDOS__
if( stat( sfname, &oldsfstat) < -1)
ret = E_NOSAVEFILE;
else {
+ if( (savefile = fopen( sfname, "rb")) == NULL)
+ ret = E_FOPENSAVE;
+ else {
+ if( fread( map, 1, MAXROW*MAXCOL, savefile) != MAXROW*MAXCOL)
+ ret = E_READSAVE;
+ else if( fread( &ppos, 1, sizeof( POS), savefile) != sizeof( POS))
+ ret = E_READSAVE;
+ else if( fread( &level, 1, 2, savefile) != 2) ret = E_READSAVE;
+ else if( fread( &moves, 1, 2, savefile) != 2) ret = E_READSAVE;
+ else if( fread( &pushes, 1, 2, savefile) != 2) ret = E_READSAVE;
+ else if( fread( &packets, 1, 2, savefile) != 2) ret = E_READSAVE;
+ else if( fread( &savepack, 1, 2, savefile) != 2) ret = E_READSAVE;
+ else if( fread( &rows, 1, 2, savefile) != 2) ret = E_READSAVE;
+ else if( fread( &cols, 1, 2, savefile) != 2) ret = E_READSAVE;
+ else if( fread( &sfstat, 1, sizeof( sfstat), savefile) != sizeof( sfstat))
+ #else
+ if( stat( sfname, &oldsfstat) < -1)
+ ret = E_NOSAVEFILE;
+ else {
if( (savefile = fopen( sfname, "r")) == NULL)
ret = E_FOPENSAVE;
else {
***************
*** 78,84 ****
ret = E_READSAVE;
else if( read( savedbn, &ppos, sizeof( POS)) != sizeof( POS))
ret = E_READSAVE;
- else if( read( savedbn, &scoring, 2) != 2) ret = E_READSAVE;
else if( read( savedbn, &level, 2) != 2) ret = E_READSAVE;
else if( read( savedbn, &moves, 2) != 2) ret = E_READSAVE;
else if( read( savedbn, &pushes, 2) != 2) ret = E_READSAVE;
--- 122,127 ----
***************
*** 87,92 ****
--- 130,136 ----
else if( read( savedbn, &rows, 2) != 2) ret = E_READSAVE;
else if( read( savedbn, &cols, 2) != 2) ret = E_READSAVE;
else if( read( savedbn, &sfstat, sizeof( sfstat)) != sizeof( sfstat))
+ #endif
ret = E_READSAVE;
else if( (sfstat.st_dev != oldsfstat.st_dev) ||
(sfstat.st_ino != oldsfstat.st_ino) ||
***************
*** 101,103 ****
--- 145,148 ----
signal( SIGINT, SIG_DFL);
return( ret);
}
+
*** score.c.orig Wed Mar 15 14:43:58 1989
--- score.c Tue Mar 21 11:54:58 1989
***************
*** 33,43 ****
--- 33,51 ----
while( creat( LOCKFILE, 0666) < 0) ;
scoreentries = 0;
+ #ifdef __MSDOS__
+ if( (scorefile = fopen( SCOREFILE, "wb")) == NULL)
+ ret = E_FOPENSCORE;
+ else {
+ if (fwrite (&scoreentries, 1, sizeof( scoreentries), scorefile) != sizeof(scoreentries))
+ ret = E_WRITESCORE;
+ #else
if( (scorefile = fopen( SCOREFILE, "w")) == NULL)
ret = E_FOPENSCORE;
else {
sfdbn = fileno( scorefile);
if( write( sfdbn, &scoreentries, 2) != 2) ret = E_WRITESCORE;
+ #endif
fclose( scorefile);
}
unlink( LOCKFILE);
***************
*** 50,56 ****
--- 58,68 ----
short ret = 0, pos;
while( creat( LOCKFILE, 0666) < 0);
+ #ifdef __MSDOS__
+ if( (scorefile = fopen( SCOREFILE, "rb")) == NULL)
+ #else
if( (scorefile = fopen( SCOREFILE, "r")) == NULL)
+ #endif
ret = E_FOPENSCORE;
else {
if( (ret = readscore()) == 0)
***************
*** 78,83 ****
--- 90,106 ----
short ret = 0;
long tmp;
+ #ifdef __MSDOS__
+ if( (scorefile = fopen( SCOREFILE, "rb")) == NULL)
+ ret = E_FOPENSCORE;
+ else {
+ tmp = sizeof( scoreentries);
+ if( fread( &scoreentries, 1, tmp, scorefile) != tmp) ret = E_READSCORE;
+ else {
+ tmp = scoreentries * sizeof( scoretable[0]);
+ if( fread( scoretable, 1, tmp, scorefile) != tmp) ret = E_READSCORE;
+ }
+ #else
if( (scorefile = fopen( SCOREFILE, "r")) == NULL)
ret = E_FOPENSCORE;
else {
***************
*** 87,92 ****
--- 110,116 ----
tmp = scoreentries * sizeof( scoretable[0]);
if( read( sfdbn, &(scoretable[0]), tmp) != tmp) ret = E_READSCORE;
}
+ #endif
fclose( scorefile);
}
return( ret);
***************
*** 161,166 ****
--- 185,201 ----
short ret = 0;
long tmp;
+ #ifdef __MSDOS__
+ if( (scorefile = fopen( SCOREFILE, "wb")) == NULL)
+ ret = E_FOPENSCORE;
+ else {
+ tmp = sizeof( scoreentries);
+ if( fwrite( &scoreentries, 1, tmp, scorefile) != tmp) ret = E_WRITESCORE;
+ else {
+ tmp = scoreentries * sizeof( scoretable[0]);
+ if( fwrite( scoretable, 1, tmp, scorefile) != tmp) ret = E_WRITESCORE;
+ }
+ #else
if( (scorefile = fopen( SCOREFILE, "w")) == NULL)
ret = E_FOPENSCORE;
else {
***************
*** 170,175 ****
--- 205,211 ----
tmp = scoreentries * sizeof( scoretable[0]);
if( write( sfdbn, &(scoretable[0]), tmp) != tmp) ret = E_WRITESCORE;
}
+ #endif
fclose( scorefile);
}
return( ret);
*** showscreen.c.orig Wed Mar 15 14:44:25 1989
--- showscreen.c Tue Mar 21 11:55:05 1989
***************
*** 1,3 ****
--- 1,4 ----
+ #include <stdio.h>
#include <curses.h>
#include "sokoban.h"
*** sok.c.orig Wed Mar 15 14:44:26 1989
--- sok.c Tue Mar 21 11:55:09 1989
***************
*** 1,5 ****
--- 1,15 ----
+ #include <stdio.h>
#include <curses.h>
#include "sokoban.h"
+ #ifdef __MSDOS__
+ char * getlogin() /* interactive login name */
+ { static char loginname[MAXUSERNAME];
+ fputs("\nName? ", stdout);
+ fgets(loginname, MAXUSERNAME, stdin);
+ loginname[strlen(loginname)-1] = 0;
+ return(loginname);
+ }
+ #endif
extern char *strrchr(), *getlogin(), *getpass();
extern short readscreen(), play(), outputscore(), getuserlevel(),