DEADSOFTWARE

sfs: remove common dir from pk3 (this should fix invalid zips)
[d2df-sdl.git] / src / game / g_game.pas
index 9adfa22fdb090e853788b848391d0312a645827a..408191bb3cd2f2876ca68d0a6cfb3dc1bb59fa81 100644 (file)
@@ -821,6 +821,9 @@ var
   wad, map: string;
   mapstr: string;
 begin
+  s1 := '';
+  s2 := '';
+  s3 := '';
   pc := g_Player_GetCount;
   e_TextureFontGetSize(gStdFont, cw, ch);
 
@@ -1042,6 +1045,13 @@ begin
     until FindNext(SR) <> 0;
   FindClose(SR);
 
+  if FindFirst(ModelsDir+'*.pk3', faAnyFile, SR) = 0 then
+    repeat
+      if not g_PlayerModel_Load(ModelsDir+SR.Name) then
+        e_WriteLog(Format('Error loading model %s', [SR.Name]), MSG_WARNING);
+    until FindNext(SR) <> 0;
+  FindClose(SR);
+
   gGameOn := False;
   gPause := False;
   gTime := 0;
@@ -1055,7 +1065,7 @@ begin
   g_Game_SetLoadingText(_lc[I_LOAD_MUSIC], 0, False);
   g_Sound_CreateWADEx('MUSIC_INTERMUS', GameWAD+':MUSIC\INTERMUS', True);
   g_Sound_CreateWADEx('MUSIC_MENU', GameWAD+':MUSIC\MENU', True);
-  g_Sound_CreateWADEx('MUSIC_ROUNDMUS', GameWAD+':MUSIC\ROUNDMUS');
+  g_Sound_CreateWADEx('MUSIC_ROUNDMUS', GameWAD+':MUSIC\ROUNDMUS', True);
   g_Sound_CreateWADEx('MUSIC_STDENDMUS', GameWAD+':MUSIC\ENDMUS', True);
 
   g_Game_SetLoadingText(_lc[I_LOAD_MENUS], 0, False);
@@ -1227,7 +1237,7 @@ begin
         if (not g_Game_IsClient) and
         (
           (
-            (e_KeyPressed(IK_RETURN) or e_KeyPressed(IK_SPACE))
+            (e_KeyPressed(IK_RETURN) or e_KeyPressed(IK_KPRETURN) or e_KeyPressed(IK_SPACE))
             and (not gJustChatted) and (not gConsoleShow) and (not gChatShow)
             and (g_ActiveWindow = nil)
           )
@@ -2982,7 +2992,7 @@ begin
   g_Texture_DeleteAll();
   g_Frames_DeleteAll();
   g_Menu_Free();
-  
+
   if NetInitDone then g_Net_Free;
 
 // Íàäî óäàëèòü êàðòó ïîñëå òåñòà:
@@ -3585,7 +3595,7 @@ begin
     ProcessLoading();
 
     e_PollInput();
-    
+
     if e_KeyPressed(IK_ESCAPE) or e_KeyPressed(IK_SPACE) then
     begin
       State := 0;
@@ -3674,7 +3684,7 @@ begin
       gWADHash := MD5File(MapsDir + NewWAD);
       g_Game_LoadWAD(NewWAD);
     end else
-      // hash recieved in MC_RECV_GameEvent -> NET_EV_MAPSTART 
+      // hash recieved in MC_RECV_GameEvent -> NET_EV_MAPSTART
       g_Game_ClientWAD(NewWAD, gWADHash);
   end else
     ResName := Map;
@@ -3779,7 +3789,7 @@ begin
     gCoopTotalSecrets := 0;
     gLastMap := False;
   end;
-  
+
   g_Game_ExecuteEvent('onmapstart');
 end;
 
@@ -4042,11 +4052,14 @@ end;
 
 procedure g_Game_DeleteTestMap();
 var
-  WAD: TWADEditor_1;
+  a: Integer;
   MapName: Char16;
-  MapList: SArray;
-  a, time: Integer;
   WadName: string;
+{
+  WAD: TWADEditor_1;
+  MapList: SArray;
+  time: Integer;
+}
 begin
   a := Pos('.wad:\', gMapToDelete);
   if a = 0 then
@@ -4059,6 +4072,7 @@ begin
   MapName := '';
   CopyMemory(@MapName[0], @gMapToDelete[1], Min(16, Length(gMapToDelete)));
 
+{
 // Èìÿ êàðòû íå ñòàíäàðòíîå òåñòîâîå:
   if MapName <> TEST_MAP_NAME then
     Exit;
@@ -4092,7 +4106,8 @@ begin
     WAD.Free();
     g_SetFileTime(WadName, time);
   end else
-    DeleteFile(WadName);
+}
+  if gTempDelete then DeleteFile(WadName);
 end;
 
 procedure GameCVars(P: SArray);
@@ -4190,7 +4205,7 @@ begin
         else
           Options := Options and (not GAME_OPTION_ALLOWEXIT);
       end;
-        
+
       if (LongBool(Options and GAME_OPTION_ALLOWEXIT)) then
         g_Console_Add(_lc[I_MSG_ALLOWEXIT_ON])
       else
@@ -4234,7 +4249,7 @@ begin
         else
           Options := Options and (not GAME_OPTION_BOTVSPLAYER);
       end;
-        
+
       if (LongBool(Options and GAME_OPTION_BOTVSPLAYER)) then
         g_Console_Add(_lc[I_MSG_BOTSVSPLAYERS_ON])
       else
@@ -4751,7 +4766,7 @@ var
   s, pw: String;
   chstr: string;
   cmd: string;
-  pl: pTNetClient;
+  pl: pTNetClient = nil;
   plr: TPlayer;
   prt: Word;
   nm: Boolean;
@@ -6065,7 +6080,7 @@ begin
   MapList := nil;
   MapIndex := -1;
 
-  if not FileExists(FileName) then Exit; 
+  if not FileExists(FileName) then Exit;
 
   AssignFile(ListFile, FileName);
   Reset(ListFile);
@@ -6288,7 +6303,11 @@ begin
   // Delete test map after play:
     s := Find_Param_Value(pars, '--testdelete');
     if (s <> '') then
+    begin
       gMapToDelete := MapsDir + map;
+      e_WriteLog('"--testdelete" argument doesn''t supported anymore!', MSG_FATALERROR);
+      Halt(1);
+    end;
 
   // Delete temporary WAD after play:
     s := Find_Param_Value(pars, '--tempdelete');