diff --git a/src/c_cmds.cpp b/src/c_cmds.cpp index cdf615ef4..0e7adb8ef 100644 --- a/src/c_cmds.cpp +++ b/src/c_cmds.cpp @@ -441,27 +441,33 @@ CCMD (exec) } } +void execLogfile(const char *fn) +{ + if ((Logfile = fopen(fn, "w"))) + { + const char *timestr = myasctime(); + Printf("Log started: %s\n", timestr); + } + else + { + Printf("Could not start log\n"); + } +} + CCMD (logfile) { - const char *timestr = myasctime (); if (Logfile) { - Printf ("Log stopped: %s\n", timestr); + const char *timestr = myasctime(); + Printf("Log stopped: %s\n", timestr); fclose (Logfile); Logfile = NULL; } if (argv.argc() >= 2) { - if ( (Logfile = fopen (argv[1], "w")) ) - { - Printf ("Log started: %s\n", timestr); - } - else - { - Printf ("Could not start log\n"); - } + execLogfile(argv[1]); } } diff --git a/src/c_dispatch.h b/src/c_dispatch.h index 96dc50644..f4518608d 100644 --- a/src/c_dispatch.h +++ b/src/c_dispatch.h @@ -168,4 +168,6 @@ extern unsigned int MakeKey (const char *s); extern unsigned int MakeKey (const char *s, size_t len); extern unsigned int SuperFastHash (const char *data, size_t len); +void execLogfile(const char *fn); + #endif //__C_DISPATCH_H__ diff --git a/src/d_main.cpp b/src/d_main.cpp index 6c938ef53..695e7e517 100644 --- a/src/d_main.cpp +++ b/src/d_main.cpp @@ -2223,6 +2223,13 @@ void D_DoomMain (void) FString *args; int argcount; + // +logfile gets checked too late to catch the full startup log in the logfile so do some extra check for it here. + FString logfile = Args->TakeValue("+logfile"); + if (logfile != NULL) + { + execLogfile(logfile); + } + D_DoomInit(); PClass::StaticInit (); atterm(FinalGC); diff --git a/src/p_mobj.cpp b/src/p_mobj.cpp index 291f51a94..2a26d7ef0 100644 --- a/src/p_mobj.cpp +++ b/src/p_mobj.cpp @@ -4795,10 +4795,7 @@ AActor *P_SpawnMapThing (FMapThing *mthing, int position) // Set various UDMF options if (mthing->alpha != -1) - { - DPrintf("Setting alpha to %f", FIXED2FLOAT(mthing->alpha)); mobj->alpha = mthing->alpha; - } if (mthing->RenderStyle != STYLE_Count) mobj->RenderStyle = (ERenderStyle)mthing->RenderStyle; if (mthing->scaleX) diff --git a/src/p_setup.cpp b/src/p_setup.cpp index 315da4ffc..77b9b077b 100644 --- a/src/p_setup.cpp +++ b/src/p_setup.cpp @@ -1764,6 +1764,9 @@ void P_LoadThings (MapData * map) mti[i].Conversation = 0; mti[i].SkillFilter = MakeSkill(flags); mti[i].ClassFilter = 0xffff; // Doom map format doesn't have class flags so spawn for all player classes + mti[i].RenderStyle = STYLE_Count; + mti[i].alpha = -1; + mti[i].health = 1; flags &= ~MTF_SKILLMASK; mti[i].flags = (short)((flags & 0xf) | 0x7e0); if (gameinfo.gametype == GAME_Strife) @@ -1837,6 +1840,10 @@ void P_LoadThings2 (MapData * map) mti[i].flags &= ~(MTF_SKILLMASK|MTF_CLASS_MASK); mti[i].Conversation = 0; mti[i].gravity = FRACUNIT; + mti[i].RenderStyle = STYLE_Count; + mti[i].alpha = -1; + mti[i].health = 1; + mti[i].fillcolor = mti[i].scaleX = mti[i].scaleY = mti[i].score = 0; } delete[] mtp; } diff --git a/src/win32/i_system.cpp b/src/win32/i_system.cpp index a82cb65f9..4690c253d 100644 --- a/src/win32/i_system.cpp +++ b/src/win32/i_system.cpp @@ -581,6 +581,18 @@ void I_DetectOS(void) osname = "Server 2008 R2"; } } + else if (info.dwMinorVersion == 2) + { + // Microsoft broke this API for 8.1 so without jumping through hoops it won't be possible anymore to detect never versions aside from the build number, especially for older compilers. + if (info.wProductType == VER_NT_WORKSTATION) + { + osname = "8 (or higher)"; + } + else + { + osname = "Server 2012 (or higher)"; + } + } } break; diff --git a/wadsrc/static/xlat/defines.i b/wadsrc/static/xlat/defines.i index 0acc2465e..04c8b21cc 100644 --- a/wadsrc/static/xlat/defines.i +++ b/wadsrc/static/xlat/defines.i @@ -240,5 +240,5 @@ enum // ML_PASSTHROUGH = -1, ML_TRANSLUCENT = -2, - ML_TRANSPARENT = -3, + ML_TRANSPARENT = -3 } \ No newline at end of file