DEADSOFTWARE

sfs and wad code refactoring: part 1
[d2df-sdl.git] / src / game / g_playermodel.pas
index 283113e0dc5e4f4f33bfae98e848a7f0a78f4df0..dd66ccd69c4d28efd54121bf0f97ea5a852ec2ea 100644 (file)
@@ -3,8 +3,7 @@ unit g_playermodel;
 interface
 
 uses
-  g_textures, g_basic, e_graphics, WADEDITOR,
-  WADSTRUCT, g_weapons;
+  g_textures, g_basic, g_weapons, e_graphics, wadreader;
 
 const
   A_STAND      = 0;
@@ -20,7 +19,7 @@ const
 
   MODELSOUND_PAIN = 0;
   MODELSOUND_DIE  = 1;
-  
+
 type
   TModelInfo = record
     Name:        String;
@@ -165,6 +164,8 @@ var
   s: String;
 begin
   Result := False;
+  x := 0;
+  y := 0;
 
   str := Trim(str);
   if Length(str) < 3 then
@@ -233,7 +234,7 @@ var
   cc: TDirection;
   config: TConfig;
   pData, pData2: Pointer;
-  WAD: TWADEditor_1;
+  WAD: TWADFile;
   s: string;
   prefix: string;
   ok: Boolean;
@@ -242,10 +243,10 @@ begin
 
   Result := False;
 
-  WAD := TWADEditor_1.Create;
+  WAD := TWADFile.Create;
   WAD.ReadFile(FileName);
 
-  if WAD.GetLastError <> DFWAD_NOERROR then
+  if {WAD.GetLastError <> DFWAD_NOERROR} not WAD.isOpen then
   begin
     WAD.Free();
     Exit;
@@ -256,7 +257,7 @@ begin
     WAD.Free();
     Exit;
   end;
+
   config := TConfig.CreateMem(pData, len);
   FreeMem(pData);
 
@@ -266,7 +267,7 @@ begin
     config.Free();
     WAD.Free();
     Exit;
-  end; 
+  end;
 
   SetLength(PlayerModelsArray, Length(PlayerModelsArray)+1);
   ID := High(PlayerModelsArray);
@@ -561,6 +562,7 @@ function g_PlayerModel_GetInfo(ModelName: string): TModelInfo;
 var
   a: Integer;
 begin
+  FillChar(Result, SizeOf(Result), 0);
   if PlayerModelsArray = nil then Exit;
 
   for a := 0 to High(PlayerModelsArray) do
@@ -579,7 +581,7 @@ begin
   for a := WEAPON_SAW to WEAPON_SUPERPULEMET do
     for b := W_POS_NORMAL to W_POS_DOWN do
       for c := W_ACT_NORMAL to W_ACT_FIRE do
-        e_DeleteTexture(WeaponID[a][b][c]); 
+        e_DeleteTexture(WeaponID[a][b][c]);
 
   e_WriteLog('Releasing models...', MSG_NOTIFY);
 
@@ -608,7 +610,7 @@ begin
         for b := 0 to High(Gibs) do
         begin
           e_DeleteTexture(Gibs[b].ID);
-          e_DeleteTexture(Gibs[b].MaskID); 
+          e_DeleteTexture(Gibs[b].MaskID);
         end;
     end;