Subversion Repositories Kolibri OS

Rev

Rev 300 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 300 Rev 333
Line 29... Line 29...
29
 
29
 
30
#define	BGCOLOR		7
30
#define BGCOLOR         7
Line 31... Line -...
31
#define	FGCOLOR		8
-
 
32
 
-
 
33
 
-
 
34
#include 
-
 
35
#include 
-
 
36
 
31
#define FGCOLOR         8
37
extern int access(char *file, int mode);
-
 
38
 
-
 
39
#define R_OK	4
-
 
40
#if 0
-
 
41
static int access(char *file, int mode)
-
 
42
{
-
 
43
	FILE *test_fp;
-
 
44
 
-
 
45
	test_fp = fopen(file, "r");
-
 
46
	if ( test_fp != NULL ) {
-
 
47
		fclose(test_fp);
-
 
48
		return(0);
-
 
49
	}
-
 
Line -... Line 32...
-
 
32
 
-
 
33
 
Line 50... Line 34...
50
	return(-1);
34
#define R_OK    4
51
}
35
 
Line 52... Line 36...
52
#endif
36
#include 
53
 
37
#include 
Line 54... Line -...
54
 
-
 
55
#include "doomdef.h"
38
 
56
#include "doomstat.h"
39
#include "doomdef.h"
57
 
40
#include "doomstat.h"
58
#include "dstrings.h"
41
 
Line 84... Line 67...
84
 
67
 
85
#include "p_setup.h"
68
#include "p_setup.h"
Line -... Line 69...
-
 
69
#include "r_local.h"
86
#include "r_local.h"
70
 
-
 
71
 
-
 
72
 
-
 
73
#include "d_main.h"
-
 
74
//#include "kolibri.h"
Line 87... Line 75...
87
 
75
 
88
 
76
 
89
#include "d_main.h"
77
extern int access(char *file, int mode);
90
 
78
 
Line 241... Line 229...
241
    // save the current screen if about to wipe
229
    // save the current screen if about to wipe
242
	XXX(3);
230
        XXX(3);
243
    if (gamestate != wipegamestate)
231
    if (gamestate != wipegamestate)
244
    {
232
    {
245
	wipe = true;
233
        wipe = true;
246
	XXX(4);
-
 
247
	wipe_StartScreen(0, 0, SCREENWIDTH, SCREENHEIGHT);
234
        wipe_StartScreen(0, 0, SCREENWIDTH, SCREENHEIGHT);
248
	XXX(5);
-
 
249
    }
235
    }
250
    else 
236
    else 
251
	wipe = false;
237
        wipe = false;
252
	XXX(6);
238
        XXX(6);
Line 253... Line 239...
253
 
239
 
254
    if (gamestate == GS_LEVEL && gametic)
240
    if (gamestate == GS_LEVEL && gametic)
255
    {
-
 
256
	XXX(7);
241
    {
257
	HU_Erase();
-
 
258
	XXX(8);
242
        HU_Erase();
259
    }
243
    }
260
    // do buffered drawing
244
    // do buffered drawing
261
	XXX(9);
245
        XXX(9);
262
    switch (gamestate)
246
    switch (gamestate)
Line 412... Line 396...
412
    if (demorecording)
396
    if (demorecording)
413
	G_BeginRecording ();
397
        G_BeginRecording ();
Line 414... Line 398...
414
		
398
                
415
    if (M_CheckParm ("-debugfile"))
399
    if (M_CheckParm ("-debugfile"))
416
    {
400
    {
417
	char    filename[20];
401
        char    filename[32];
418
	sprintf (filename,"debug%i.txt",consoleplayer);
-
 
419
//	__libclog_printf ("debug output to: %s\n",filename);
402
        sprintf (filename,"debug%i.txt",consoleplayer);
420
	debugfile = fopen (filename,"w");
403
        debugfile = fopen (filename,"w");
Line 421... Line 404...
421
    }
404
    }
Line 430... Line 413...
430
	XXX(101);
413
        XXX(101);
Line 431... Line 414...
431
	
414
        
432
	// process one or more tics
415
        // process one or more tics
433
	if (singletics)
416
        if (singletics)
434
	{
-
 
435
	XXX(201);
417
        {
436
	    I_StartTic ();
418
          I_StartTic ();
437
	XXX(202);
419
 
438
	    D_ProcessEvents ();
420
          D_ProcessEvents ();
439
	XXX(203);
421
 
440
	    G_BuildTiccmd (&netcmds[consoleplayer][maketic%BACKUPTICS]);
422
          G_BuildTiccmd (&netcmds[consoleplayer][maketic%BACKUPTICS]);
441
	XXX(204);
423
                    
-
 
424
          if (advancedemo)
442
	    if (advancedemo)
425
          { 
443
		D_DoAdvanceDemo ();
426
             D_DoAdvanceDemo ();
444
	XXX(205);
427
          };  
445
	    M_Ticker ();
-
 
446
	XXX(206);
428
          M_Ticker ();
447
	    G_Ticker ();
429
          G_Ticker ();
448
	    gametic++;
430
          gametic++;
449
	    maketic++;
431
          maketic++;
450
	}
432
        }
451
	else
-
 
452
	{
-
 
453
	XXX(102);
433
        else
454
	    TryRunTics (); // will run at least one tic
-
 
455
	XXX(103);
-
 
Line 456... Line 434...
456
	}
434
          TryRunTics (); // will run at least one tic
Line 457... Line -...
457
 
-
 
458
	S_UpdateSounds (players[consoleplayer].mo);// move positional sounds
-
 
459
 
435
 
460
	// Update display, next frame, with current state.
436
        S_UpdateSounds (players[consoleplayer].mo);// move positional sounds
461
	XXX(104);
437
 
462
	D_Display ();
438
        D_Display ();
463
	I_UpdateSound(); 	
439
//      I_UpdateSound();        
Line 638... Line 614...
638
	doomwaddir = ".";
614
    doomwaddir = ".";
Line 639... Line 615...
639
 
615
 
640
    // Commercial.
616
    // Commercial.
641
    doom2wad = malloc(strlen(doomwaddir)+1+9+1);
617
    doom2wad = malloc(strlen(doomwaddir)+1+9+1);
642
    sprintf(doom2wad, "%s/doom2.wad", doomwaddir);
-
 
643
 
618
    sprintf(doom2wad, "%s/doom2.wad", doomwaddir);
644
    // Retail.
619
    // Retail.
645
    doomuwad = malloc(strlen(doomwaddir)+1+8+1);
620
    doomuwad = malloc(strlen(doomwaddir)+1+8+1);
Line 646... Line 621...
646
    sprintf(doomuwad, "%s/doomu.wad", doomwaddir);
621
    sprintf(doomuwad, "%s/doomu.wad", doomwaddir);
Line 654... Line 629...
654
    sprintf(doom1wad, "%s/doom1.wad", doomwaddir);
629
    sprintf(doom1wad, "%s/doom1.wad", doomwaddir);
Line 655... Line 630...
655
 
630
 
656
     // Bug, dear Shawn.
631
     // Bug, dear Shawn.
657
    // Insufficient malloc, caused spurious realloc errors.
632
    // Insufficient malloc, caused spurious realloc errors.
658
    plutoniawad = malloc(strlen(doomwaddir)+1+/*9*/12+1);
633
    plutoniawad = malloc(strlen(doomwaddir)+1+/*9*/12+1);
Line 659... Line 634...
659
    sprintf(plutoniawad, "%s/plutonia.wad", doomwaddir);
634
    sprintf(plutoniawad, "%splutonia.wad", doomwaddir);
660
 
635
 
Line 661... Line -...
661
    tntwad = malloc(strlen(doomwaddir)+1+9+1);
-
 
662
    sprintf(tntwad, "%s/tnt.wad", doomwaddir);
636
    tntwad = malloc(strlen(doomwaddir)+1+9+1);
663
 
637
    sprintf(tntwad, "%s/tnt.wad", doomwaddir);
664
 
638
 
Line 665... Line 639...
665
    // French stuff.
639
    // French stuff.
Line 716... Line 690...
716
    {
690
    {
717
	gamemode = commercial;
691
        gamemode = commercial;
718
	// C'est ridicule!
692
        // C'est ridicule!
719
	// Let's handle languages in config files, okay?
693
        // Let's handle languages in config files, okay?
720
	language = french;
694
        language = french;
721
//	__libclog_printf("French version\n");
-
 
722
	D_AddFile (doom2fwad);
695
        D_AddFile (doom2fwad);
723
	return;
696
        return;
724
    }
697
    }
Line 725... Line 698...
725
 
698
 
Line 763... Line 736...
763
      gamemode = shareware;
736
      gamemode = shareware;
764
      D_AddFile (doom1wad);
737
      D_AddFile (doom1wad);
765
      return;
738
      return;
766
    }
739
    }
Line 767... Line 740...
767
 
740
 
768
 //   __libclog_printf("Game mode indeterminate.\n");
741
    printf("Game mode indeterminate.\n");
Line 769... Line 742...
769
    gamemode = indetermined;
742
    gamemode = indetermined;
770
 
743
 
771
    // We don't abort. Let's see what the PWAD contains.
744
    // We don't abort. Let's see what the PWAD contains.
Line 800... Line 773...
800
	    {
773
            {
801
//		__libclog_printf ("\nNo such response file!");
774
//              __libclog_printf ("\nNo such response file!");
802
		exit(1);
775
                exit(1);
803
	    }
776
            }
804
//	    __libclog_printf("Found response file %s!\n",&myargv[i][1]);
777
//          __libclog_printf("Found response file %s!\n",&myargv[i][1]);
805
	    fseek (handle,0,SEEK_END);
778
//            fseek (handle,0,SEEK_END);
806
	    size = ftell(handle);
779
//            size = ftell(handle);
807
	    fseek (handle,0,SEEK_SET);
780
//            fseek (handle,0,SEEK_SET);
808
	    file = malloc (size);
781
//            file = malloc (size);
809
	    fread (file,size,1,handle);
782
//            fread (file,size,1,handle);
810
	    fclose (handle);
783
//            fclose (handle);
Line 811... Line 784...
811
			
784
                        
812
	    // KEEP ALL CMDLINE ARGS FOLLOWING @RESPONSEFILE ARG
785
            // KEEP ALL CMDLINE ARGS FOLLOWING @RESPONSEFILE ARG
813
	    for (index = 0,k = i+1; k < myargc; k++)
786
            for (index = 0,k = i+1; k < myargc; k++)
Line 837... Line 810...
837
		myargv[indexinfile++] = moreargs[k];
810
                myargv[indexinfile++] = moreargs[k];
838
	    myargc = indexinfile;
811
            myargc = indexinfile;
Line 839... Line 812...
839
	
812
        
840
	    // DISPLAY ARGS
813
            // DISPLAY ARGS
841
//	    __libclog_printf("%d command-line args:\n",myargc);
814
//          __libclog_printf("%d command-line args:\n",myargc);
842
	    for (k=1;k
815
//            for (k=1;k
Line 843... Line 816...
843
//		__libclog_printf("%s\n",myargv[k]);
816
//              __libclog_printf("%s\n",myargv[k]);
844
 
817
 
845
	    break;
818
            break;
Line 857... Line 830...
857
 
830
 
Line 858... Line 831...
858
    FindResponseFile ();
831
    FindResponseFile ();
Line 859... Line -...
859
	
-
 
860
    IdentifyVersion ();
-
 
861
 
-
 
862
 //   I_BeginSplash();
832
 
Line 863... Line 833...
863
 
833
    IdentifyVersion ();
864
//    setbuf (stdout, NULL);
834
 
865
    modifiedgame = false;
835
    modifiedgame = false;
Line 929... Line 899...
929
    }
899
    }
Line 930... Line 900...
930
    
900
    
Line 931... Line 901...
931
//    __libclog_printf ("%s\n",title);
901
//    __libclog_printf ("%s\n",title);
932
 
902
 
Line 933... Line 903...
933
    if (devparm)
903
    if (devparm)
934
//	__libclog_printf(D_DEVSTR);
904
      printf(D_DEVSTR);
935
    
905
    
936
    // turbo option
906
    // turbo option
Line 944... Line 914...
944
	    scale = atoi (myargv[p+1]);
914
            scale = atoi (myargv[p+1]);
945
	if (scale < 10)
915
        if (scale < 10)
946
	    scale = 10;
916
            scale = 10;
947
	if (scale > 400)
917
        if (scale > 400)
948
	    scale = 400;
918
            scale = 400;
949
//	__libclog_printf ("turbo scale: %i%%\n",scale);
919
        printf ("turbo scale: %i%%\n",scale);
950
	forwardmove[0] = forwardmove[0]*scale/100;
920
        forwardmove[0] = forwardmove[0]*scale/100;
951
	forwardmove[1] = forwardmove[1]*scale/100;
921
        forwardmove[1] = forwardmove[1]*scale/100;
952
	sidemove[0] = sidemove[0]*scale/100;
922
        sidemove[0] = sidemove[0]*scale/100;
953
	sidemove[1] = sidemove[1]*scale/100;
923
        sidemove[1] = sidemove[1]*scale/100;
954
    }
924
    }
Line 969... Line 939...
969
	  case shareware:
939
          case shareware:
970
	  case retail:
940
          case retail:
971
	  case registered:
941
          case registered:
972
	    sprintf (file,"~"DEVMAPS"E%cM%c.wad",
942
            sprintf (file,"~"DEVMAPS"E%cM%c.wad",
973
		     myargv[p+1][0], myargv[p+2][0]);
943
                     myargv[p+1][0], myargv[p+2][0]);
974
//	    __libclog_printf("Warping to Episode %s, Map %s.\n",
-
 
975
//		   myargv[p+1],myargv[p+2]);
-
 
976
	    break;
944
            break;
Line 977... Line 945...
977
	    
945
            
978
	  case commercial:
946
          case commercial:
979
	  default:
947
          default:
Line 1004... Line 972...
1004
 
972
 
1005
    if (p && p < myargc-1)
973
    if (p && p < myargc-1)
1006
    {
974
    {
1007
	sprintf (file,"%s.lmp", myargv[p+1]);
975
        sprintf (file,"%s.lmp", myargv[p+1]);
1008
	D_AddFile (file);
-
 
1009
	printf("Playing demo %s.lmp.\n",myargv[p+1]);
976
        D_AddFile (file);
Line 1010... Line 977...
1010
    }
977
    }
1011
    
978
    
1012
    // get skill / episode / map from parms
979
    // get skill / episode / map from parms
1013
    startskill = sk_medium;
980
    startskill = sk_medium;
1014
    startepisode = 1;
981
    startepisode = 1;
Line 1015... Line -...
1015
    startmap = 1;
-
 
1016
    autostart = false;
982
    startmap = 1;
1017
 
983
    autostart = false;
1018
		
984
                
1019
    p = M_CheckParm ("-skill");
985
    p = M_CheckParm ("-skill");
1020
    if (p && p < myargc-1)
986
    if (p && p < myargc-1)
Line 1034... Line 1000...
1034
    p = M_CheckParm ("-timer");
1000
    p = M_CheckParm ("-timer");
1035
    if (p && p < myargc-1 && deathmatch)
1001
    if (p && p < myargc-1 && deathmatch)
1036
    {
1002
    {
1037
	int     time;
1003
        int     time;
1038
	time = atoi(myargv[p+1]);
1004
        time = atoi(myargv[p+1]);
1039
    printf("Levels will end after %d minute",time);
-
 
1040
	if (time>1)
1005
        if (time>1)
1041
	    printf("s");
1006
            printf("s");
1042
	 printf(".\n");
1007
         printf(".\n");
1043
    }
1008
    }
Line 1057... Line 1022...
1057
	    startmap = myargv[p+2][0]-'0';
1022
            startmap = myargv[p+2][0]-'0';
1058
	}
1023
        }
1059
	autostart = true;
1024
        autostart = true;
1060
    }
1025
    }
Line -... Line 1026...
-
 
1026
 
1061
    
1027
 
1062
    // init subsystems
1028
    // init subsystems
1063
    printf ("V_Init: allocate screens.\n");
1029
    printf ("V_Init: allocate screens.\n\r");
Line 1064... Line 1030...
1064
    V_Init ();
1030
    V_Init ();
1065
 
1031
 
Line 1066... Line 1032...
1066
    printf ("M_LoadDefaults: Load system defaults.\n");
1032
    printf ("M_LoadDefaults: Load system defaults.\n\r");
1067
    M_LoadDefaults ();              // load before initing other systems
1033
    M_LoadDefaults ();              // load before initing other systems
Line 1068... Line 1034...
1068
 
1034
 
1069
    printf ("Z_Init: Init zone memory allocation daemon. \n");
1035
    printf ("Z_Init: Init zone memory allocation daemon. \n\r");
1070
    Z_Init ();
-
 
1071
 
-
 
Line 1072... Line 1036...
1072
    printf ("W_Init: Init WADfiles.\n");
1036
    Z_Init ();
1073
    W_InitMultipleFiles (wadfiles);
1037
 
1074
    printf("added\n");
1038
    printf ("W_Init: Init WADfiles.\n\r");
1075
    
1039
    W_InitMultipleFiles (wadfiles);
Line 1086... Line 1050...
1086
	    "dphoof","bfgga0","heada1","cybra1","spida1d1"
1050
            "dphoof","bfgga0","heada1","cybra1","spida1d1"
1087
	};
1051
        };
1088
	int i;
1052
        int i;
Line 1089... Line 1053...
1089
	
1053
        
1090
	if ( gamemode == shareware)
1054
        if ( gamemode == shareware)
1091
	    I_Error("\nYou cannot -file with the shareware "
1055
            I_Error("\n\rYou cannot -file with the shareware "
Line 1092... Line 1056...
1092
		    "version. Register!");
1056
                    "version. Register!");
1093
 
1057
 
1094
	// Check for fake IWAD with right name,
1058
        // Check for fake IWAD with right name,
1095
	// but w/o all the lumps of the registered version. 
1059
        // but w/o all the lumps of the registered version. 
1096
	if (gamemode == registered)
1060
        if (gamemode == registered)
1097
	    for (i = 0;i < 23; i++)
1061
            for (i = 0;i < 23; i++)
1098
		if (W_CheckNumForName(name[i])<0)
1062
                if (W_CheckNumForName(name[i])<0)
Line 1099... Line 1063...
1099
		    I_Error("\nThis is not the registered version.");
1063
                    I_Error("\n\rThis is not the registered version.");
1100
    }
1064
    }
1101
    
1065
    
1102
    // Iff additonal PWAD files are used, print modified banner
1066
    // Iff additonal PWAD files are used, print modified banner
1103
    if (modifiedgame)
1067
    if (modifiedgame)
1104
    {
1068
    {
1105
	  printf (
1069
//        //printf (
1106
	    "===========================================================================\n"
1070
//          "===========================================================================\n\r"
1107
	    "ATTENTION:  This version of DOOM has been modified.  If you would like to\n"
1071
//          "ATTENTION:  This version of DOOM has been modified.  If you would like to\n\r"
1108
	    "get a copy of the original game, call 1-800-IDGAMES or see the readme file.\n"
1072
//          "get a copy of the original game, call 1-800-IDGAMES or see the readme file.\n\r"
1109
	    "        You will not receive technical support for modified games.\n"
1073
//          "        You will not receive technical support for modified games.\n\r"
1110
	    "                      press enter to continue\n"
1074
//          "                      press enter to continue\n\r"
1111
	    "===========================================================================\n"
1075
//          "===========================================================================\n\r"
Line 1112... Line 1076...
1112
	    );
1076
//          );
1113
//	  getchar ();
1077
//        getchar ();
1114
    }
1078
    }
1115
	
1079
        
1116
 
1080
 
1117
    // Check and print which version is executed.
1081
    // Check and print which version is executed.
1118
    switch ( gamemode )
1082
    switch ( gamemode )
1119
    {
1083
    {
1120
      case shareware:
1084
      case shareware:
1121
      case indetermined:
1085
      case indetermined:
1122
	  printf (
1086
//        //printf (
1123
	    "===========================================================================\n"
1087
//          "===========================================================================\n\r"
1124
	    "                                Shareware!\n"
1088
//          "                                Shareware!\n\r"
1125
	    "===========================================================================\n"
1089
//          "===========================================================================\n\r"
1126
	);
1090
//      );
1127
	break;
1091
        break;
1128
      case registered:
1092
      case registered:
1129
      case retail:
1093
      case retail:
1130
      case commercial:
1094
      case commercial:
1131
	  printf (
1095
//        //printf (
1132
	    "===========================================================================\n"
1096
//          "===========================================================================\n\r"
Line 1133... Line 1097...
1133
	    "                 Commercial product - do not distribute!\n"
1097
//          "                 Commercial product - do not distribute!\n\r"
1134
	    "         Please report software piracy to the SPA: 1-800-388-PIR8\n"
1098
//          "         Please report software piracy to the SPA: 1-800-388-PIR8\n\r"
1135
	    "===========================================================================\n"
1099
//          "===========================================================================\n\r"
1136
	);
1100
//      );
Line 1137... Line 1101...
1137
	break;
1101
        break;
1138
	
1102
        
Line 1139... Line 1103...
1139
      default:
1103
      default:
1140
	// Ouch.
1104
        // Ouch.
Line 1141... Line 1105...
1141
	break;
1105
        break;
1142
    }
1106
    }
Line 1143... Line 1107...
1143
 
1107
 
1144
    printf ("M_Init: Init miscellaneous info.\n");
1108
    printf ("M_Init: Init miscellaneous info.\n\r");
Line 1145... Line 1109...
1145
    M_Init ();
1109
    M_Init ();
1146
 
1110
 
Line 1147... Line 1111...
1147
    printf ("R_Init: Init DOOM refresh daemon - ");
1111
    printf ("R_Init: Init DOOM refresh daemon - \n\r");
1148
    R_Init ();
1112
    R_Init ();
Line 1149... Line 1113...
1149
 
1113
 
1150
    printf ("\nP_Init: Init Playloop state.\n");
1114
    printf ("\nP_Init: Init Playloop state.\n\r");
Line 1151... Line -...
1151
    P_Init ();
-
 
1152
 
-
 
1153
    printf ("I_Init: Setting up machine state.\n");
1115
    P_Init ();
1154
    I_Init ();
1116
 
Line 1155... Line 1117...
1155
 
1117
    printf ("I_Init: Setting up machine state.\n\r");
1156
    printf ("D_CheckNetGame: Checking network game status.\n");
1118
    I_Init ();
1157
    D_CheckNetGame ();
1119
 
1158
 
1120
    printf ("D_CheckNetGame: Checking network game status.\n\r");
1159
    printf ("S_Init: Setting up sound.\n");
1121
    D_CheckNetGame ();
1160
    S_Init (snd_SfxVolume /* *8 */, snd_MusicVolume /* *8*/ );
1122
 
Line 1161... Line 1123...
1161
 
1123
//    printf ("S_Init: Setting up sound.\n\r");
1162
    printf ("HU_Init: Setting up heads up display.\n");
1124
//    S_Init (snd_SfxVolume /* *8 */, snd_MusicVolume /* *8*/ );
1163
    HU_Init ();
1125
 
Line 1164... Line 1126...
1164
 
1126
    printf ("HU_Init: Setting up heads up display.\n\r");
1165
//    I_EndSplash();
1127
    HU_Init ();