|
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(),