DEADSOFTWARE

added d_mem command
[d2df-sdl.git] / src / game / Doom2DF.dpr
index 97b451e84f61f1d1e2526617dd2b534403a13fe3..7f0afecda37322d78a9b6cea05b136f8eb76db40 100644 (file)
@@ -13,7 +13,7 @@
  * You should have received a copy of the GNU General Public License
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  *)
-{$MODE DELPHI}
+{$INCLUDE ../shared/a_modes.inc}
 program Doom2DF;
 {$IFNDEF HEADLESS}
   {$IFDEF WINDOWS}
@@ -40,6 +40,7 @@ program Doom2DF;
 
 uses
   conbuf in '../shared/conbuf.pas',
+  math,
   GL,
   GLExt,
   SDL2 in '../lib/sdl2/sdl2.pas',
@@ -59,8 +60,6 @@ uses
   sfsPlainFS in '../sfs/sfsPlainFS.pas',
   sfsZipFS in '../sfs/sfsZipFS.pas',
   wadreader in '../shared/wadreader.pas',
-  MAPSTRUCT in '../shared/MAPSTRUCT.pas',
-  MAPREADER in '../shared/MAPREADER.pas',
   MAPDEF in '../shared/MAPDEF.pas',
   CONFIG in '../shared/CONFIG.pas',
   g_basic in 'g_basic.pas',
@@ -101,6 +100,9 @@ uses
   binheap in '../shared/binheap.pas',
   hashtable in '../shared/hashtable.pas',
   idpool in '../shared/idpool.pas',
+  xparser in '../shared/xparser.pas',
+  xdynrec in '../shared/xdynrec.pas',
+  exoma in '../shared/exoma.pas',
   BinEditor in '../shared/BinEditor.pas',
   envvars in '../shared/envvars.pas',
   g_panel in 'g_panel.pas',
@@ -117,7 +119,9 @@ uses
 var
   f: Integer;
   noct: Boolean = false;
+  //tfo: Text;
 begin
+  SetExceptionMask([exInvalidOp, exDenormalized, exZeroDivide, exOverflow, exUnderflow, exPrecision]); //k8: fuck off, that's why
   for f := 1 to ParamCount do
   begin
          if ParamStr(f) = '--gdb' then noct := true
@@ -134,10 +138,23 @@ begin
       Main();
       e_WriteLog('Shutdown with no errors.', MSG_NOTIFY);
     except
-      on E: Exception do
-        e_WriteLog(Format(_lc[I_SYSTEM_ERROR_MSG], [E.Message]), MSG_FATALERROR);
+      on e: Exception do
+        begin
+          e_WriteStackTrace(e.message);
+          //e_WriteLog(Format(_lc[I_SYSTEM_ERROR_MSG], [E.Message]), MSG_FATALERROR);
+          (*
+          AssignFile(tfo, GameDir+'/trace.log');
+          {$I-}
+          Append(tfo);
+          if (IOResult <> 0) then Rewrite(tfo);
+          if (IOResult = 0) then begin writeln(tfo, '====================='); DumpExceptionBackTrace(tfo); CloseFile(tfo); end;
+          *)
+        end
       else
-        e_WriteLog(Format(_lc[I_SYSTEM_ERROR_UNKNOWN], [NativeUInt(ExceptAddr())]), MSG_FATALERROR);
+        begin
+          //e_WriteLog(Format(_lc[I_SYSTEM_ERROR_UNKNOWN], [NativeUInt(ExceptAddr())]), MSG_FATALERROR);
+          e_WriteStackTrace('FATAL ERROR');
+        end;
     end;
   end;
   e_DeinitLog();