DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: P T

⟦760ad0fe0⟧ TextFile

    Length: 9992 (0x2708)
    Types: TextFile
    Names: »Patches01«

Derivation

└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987
    └─⟦this⟧ »EUUGD18/General/Sokoban/Patches01« 

TextFile

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