mirror of
https://github.com/ZDoom/qzdoom.git
synced 2024-11-24 04:51:19 +00:00
- fixed: Auto-COMPAT_SHORTTEX for IWADs must be set per IWAD, not in general
for Doom. - added autodetection of Harmony's IWAD. SVN r2022 (trunk)
This commit is contained in:
parent
c7ae1b585d
commit
2fb2c79887
5 changed files with 25 additions and 7 deletions
|
@ -1,4 +1,7 @@
|
||||||
December 11, 2009 (Changes by Graf Zahl)
|
December 11, 2009 (Changes by Graf Zahl)
|
||||||
|
- fixed: Auto-COMPAT_SHORTTEX for IWADs must be set per IWAD, not in general
|
||||||
|
for Doom.
|
||||||
|
- added autodetection of Harmony's IWAD.
|
||||||
- Added SnailMan's updated language.ita file.
|
- Added SnailMan's updated language.ita file.
|
||||||
|
|
||||||
December 11, 2009
|
December 11, 2009
|
||||||
|
|
|
@ -196,7 +196,7 @@ void CheckCompatibility(MapData *map)
|
||||||
FCompatValues *flags;
|
FCompatValues *flags;
|
||||||
|
|
||||||
// When playing Doom IWAD levels force COMPAT_SHORTTEX.
|
// When playing Doom IWAD levels force COMPAT_SHORTTEX.
|
||||||
if (Wads.GetLumpFile(map->lumpnum) == 1 && gameinfo.gametype == GAME_Doom && !(level.flags & LEVEL_HEXENFORMAT))
|
if (Wads.GetLumpFile(map->lumpnum) == 1 && (gameinfo.flags & GI_COMPATSHORTTEX) && !(level.flags & LEVEL_HEXENFORMAT))
|
||||||
{
|
{
|
||||||
ii_compatflags = COMPATF_SHORTTEX;
|
ii_compatflags = COMPATF_SHORTTEX;
|
||||||
ib_compatflags = 0;
|
ib_compatflags = 0;
|
||||||
|
|
|
@ -58,18 +58,18 @@ EIWADType gameiwad;
|
||||||
const IWADInfo IWADInfos[NUM_IWAD_TYPES] =
|
const IWADInfo IWADInfos[NUM_IWAD_TYPES] =
|
||||||
{
|
{
|
||||||
// banner text, autoname, fg color, bg color
|
// banner text, autoname, fg color, bg color
|
||||||
{ "Final Doom: TNT - Evilution", "TNT", MAKERGB(168,0,0), MAKERGB(168,168,168), GAME_Doom, "mapinfo/tnt.txt", GI_MAPxx },
|
{ "Final Doom: TNT - Evilution", "TNT", MAKERGB(168,0,0), MAKERGB(168,168,168), GAME_Doom, "mapinfo/tnt.txt", GI_MAPxx | GI_COMPATSHORTTEX },
|
||||||
{ "Final Doom: Plutonia Experiment", "Plutonia", MAKERGB(168,0,0), MAKERGB(168,168,168), GAME_Doom, "mapinfo/plutonia.txt", GI_MAPxx },
|
{ "Final Doom: Plutonia Experiment", "Plutonia", MAKERGB(168,0,0), MAKERGB(168,168,168), GAME_Doom, "mapinfo/plutonia.txt", GI_MAPxx | GI_COMPATSHORTTEX },
|
||||||
{ "Hexen: Beyond Heretic", NULL, MAKERGB(240,240,240), MAKERGB(107,44,24), GAME_Hexen, "mapinfo/hexen.txt", GI_MAPxx },
|
{ "Hexen: Beyond Heretic", NULL, MAKERGB(240,240,240), MAKERGB(107,44,24), GAME_Hexen, "mapinfo/hexen.txt", GI_MAPxx },
|
||||||
{ "Hexen: Deathkings of the Dark Citadel", "HexenDK", MAKERGB(240,240,240), MAKERGB(139,68,9), GAME_Hexen, "mapinfo/hexen.txt", GI_MAPxx },
|
{ "Hexen: Deathkings of the Dark Citadel", "HexenDK", MAKERGB(240,240,240), MAKERGB(139,68,9), GAME_Hexen, "mapinfo/hexen.txt", GI_MAPxx },
|
||||||
{ "Hexen: Demo Version", "HexenDemo",MAKERGB(240,240,240), MAKERGB(107,44,24), GAME_Hexen, "mapinfo/hexen.txt", GI_MAPxx | GI_SHAREWARE },
|
{ "Hexen: Demo Version", "HexenDemo",MAKERGB(240,240,240), MAKERGB(107,44,24), GAME_Hexen, "mapinfo/hexen.txt", GI_MAPxx | GI_SHAREWARE },
|
||||||
{ "DOOM 2: Hell on Earth", "Doom2", MAKERGB(168,0,0), MAKERGB(168,168,168), GAME_Doom, "mapinfo/doom2.txt", GI_MAPxx },
|
{ "DOOM 2: Hell on Earth", "Doom2", MAKERGB(168,0,0), MAKERGB(168,168,168), GAME_Doom, "mapinfo/doom2.txt", GI_MAPxx | GI_COMPATSHORTTEX },
|
||||||
{ "Heretic Shareware", NULL, MAKERGB(252,252,0), MAKERGB(168,0,0), GAME_Heretic, "mapinfo/hereticsw.txt",GI_SHAREWARE },
|
{ "Heretic Shareware", NULL, MAKERGB(252,252,0), MAKERGB(168,0,0), GAME_Heretic, "mapinfo/hereticsw.txt",GI_SHAREWARE },
|
||||||
{ "Heretic: Shadow of the Serpent Riders", NULL, MAKERGB(252,252,0), MAKERGB(168,0,0), GAME_Heretic, "mapinfo/heretic.txt", GI_MENUHACK_EXTENDED },
|
{ "Heretic: Shadow of the Serpent Riders", NULL, MAKERGB(252,252,0), MAKERGB(168,0,0), GAME_Heretic, "mapinfo/heretic.txt", GI_MENUHACK_EXTENDED },
|
||||||
{ "Heretic", NULL, MAKERGB(252,252,0), MAKERGB(168,0,0), GAME_Heretic, "mapinfo/heretic.txt" },
|
{ "Heretic", NULL, MAKERGB(252,252,0), MAKERGB(168,0,0), GAME_Heretic, "mapinfo/heretic.txt" },
|
||||||
{ "DOOM Shareware", NULL, MAKERGB(168,0,0), MAKERGB(168,168,168), GAME_Doom, "mapinfo/doom1.txt", GI_SHAREWARE },
|
{ "DOOM Shareware", NULL, MAKERGB(168,0,0), MAKERGB(168,168,168), GAME_Doom, "mapinfo/doom1.txt", GI_SHAREWARE | GI_COMPATSHORTTEX },
|
||||||
{ "The Ultimate DOOM", "Doom1", MAKERGB(84,84,84), MAKERGB(168,168,168), GAME_Doom, "mapinfo/ultdoom.txt" },
|
{ "The Ultimate DOOM", "Doom1", MAKERGB(84,84,84), MAKERGB(168,168,168), GAME_Doom, "mapinfo/ultdoom.txt", GI_COMPATSHORTTEX },
|
||||||
{ "DOOM Registered", "Doom1", MAKERGB(84,84,84), MAKERGB(168,168,168), GAME_Doom, "mapinfo/doom1.txt" },
|
{ "DOOM Registered", "Doom1", MAKERGB(84,84,84), MAKERGB(168,168,168), GAME_Doom, "mapinfo/doom1.txt", GI_COMPATSHORTTEX },
|
||||||
{ "Strife: Quest for the Sigil", NULL, MAKERGB(224,173,153), MAKERGB(0,107,101), GAME_Strife, "mapinfo/strife.txt", GI_MAPxx },
|
{ "Strife: Quest for the Sigil", NULL, MAKERGB(224,173,153), MAKERGB(0,107,101), GAME_Strife, "mapinfo/strife.txt", GI_MAPxx },
|
||||||
{ "Strife: Teaser (Old Version)", NULL, MAKERGB(224,173,153), MAKERGB(0,107,101), GAME_Strife, "mapinfo/strife.txt", GI_MAPxx | GI_SHAREWARE },
|
{ "Strife: Teaser (Old Version)", NULL, MAKERGB(224,173,153), MAKERGB(0,107,101), GAME_Strife, "mapinfo/strife.txt", GI_MAPxx | GI_SHAREWARE },
|
||||||
{ "Strife: Teaser (New Version)", NULL, MAKERGB(224,173,153), MAKERGB(0,107,101), GAME_Strife, "mapinfo/strife.txt", GI_MAPxx | GI_SHAREWARE | GI_TEASER2 },
|
{ "Strife: Teaser (New Version)", NULL, MAKERGB(224,173,153), MAKERGB(0,107,101), GAME_Strife, "mapinfo/strife.txt", GI_MAPxx | GI_SHAREWARE | GI_TEASER2 },
|
||||||
|
@ -81,6 +81,7 @@ const IWADInfo IWADInfos[NUM_IWAD_TYPES] =
|
||||||
{ "Chex(R) Quest", "Chex1", MAKERGB(255,255,0), MAKERGB(0,192,0), GAME_Chex, "mapinfo/chex.txt" },
|
{ "Chex(R) Quest", "Chex1", MAKERGB(255,255,0), MAKERGB(0,192,0), GAME_Chex, "mapinfo/chex.txt" },
|
||||||
{ "Chex(R) Quest 3", "Chex3", MAKERGB(255,255,0), MAKERGB(0,192,0), GAME_Chex, "mapinfo/chex3.txt" },
|
{ "Chex(R) Quest 3", "Chex3", MAKERGB(255,255,0), MAKERGB(0,192,0), GAME_Chex, "mapinfo/chex3.txt" },
|
||||||
{ "Action Doom 2: Urban Brawl", "UrbanBrawl",MAKERGB(168,168,0), MAKERGB(168,0,0), GAME_Doom, "mapinfo/doom2.txt" },
|
{ "Action Doom 2: Urban Brawl", "UrbanBrawl",MAKERGB(168,168,0), MAKERGB(168,0,0), GAME_Doom, "mapinfo/doom2.txt" },
|
||||||
|
{ "Harmony", "Harmony", MAKERGB(110,180,230), MAKERGB(69,79,126), GAME_Doom, "mapinfo/doom2.txt" },
|
||||||
//{ "ZDoom Engine", NULL, MAKERGB(168,0,0), MAKERGB(168,168,168) },
|
//{ "ZDoom Engine", NULL, MAKERGB(168,0,0), MAKERGB(168,168,168) },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -111,6 +112,7 @@ static const char *IWADNames[] =
|
||||||
"chex.wad",
|
"chex.wad",
|
||||||
"chex3.wad",
|
"chex3.wad",
|
||||||
"action2.wad",
|
"action2.wad",
|
||||||
|
"harm1.wad",
|
||||||
#ifdef unix
|
#ifdef unix
|
||||||
"DOOM2.WAD", // Also look for all-uppercase names
|
"DOOM2.WAD", // Also look for all-uppercase names
|
||||||
"PLUTONIA.WAD",
|
"PLUTONIA.WAD",
|
||||||
|
@ -134,6 +136,7 @@ static const char *IWADNames[] =
|
||||||
"CHEX.WAD",
|
"CHEX.WAD",
|
||||||
"CHEX3.WAD",
|
"CHEX3.WAD",
|
||||||
"ACTION2.WAD",
|
"ACTION2.WAD",
|
||||||
|
"HARM1.WAD",
|
||||||
#endif
|
#endif
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
@ -169,6 +172,9 @@ static EIWADType ScanIWAD (const char *iwad)
|
||||||
"CYCLA1",
|
"CYCLA1",
|
||||||
"FLMBA1",
|
"FLMBA1",
|
||||||
"MAPINFO",
|
"MAPINFO",
|
||||||
|
"0HAWK01",
|
||||||
|
"0CARA3",
|
||||||
|
"0NOSE1",
|
||||||
{ 'G','A','M','E','I','N','F','O' },
|
{ 'G','A','M','E','I','N','F','O' },
|
||||||
"E2M1","E2M2","E2M3","E2M4","E2M5","E2M6","E2M7","E2M8","E2M9",
|
"E2M1","E2M2","E2M3","E2M4","E2M5","E2M6","E2M7","E2M8","E2M9",
|
||||||
"E3M1","E3M2","E3M3","E3M4","E3M5","E3M6","E3M7","E3M8","E3M9",
|
"E3M1","E3M2","E3M3","E3M4","E3M5","E3M6","E3M7","E3M8","E3M9",
|
||||||
|
@ -199,6 +205,9 @@ static EIWADType ScanIWAD (const char *iwad)
|
||||||
Check_Cycla1,
|
Check_Cycla1,
|
||||||
Check_Flmba1,
|
Check_Flmba1,
|
||||||
Check_Mapinfo,
|
Check_Mapinfo,
|
||||||
|
Check_Hawk,
|
||||||
|
Check_Car,
|
||||||
|
Check_Nose,
|
||||||
Check_Gameinfo,
|
Check_Gameinfo,
|
||||||
Check_e2m1
|
Check_e2m1
|
||||||
};
|
};
|
||||||
|
@ -287,6 +296,10 @@ static EIWADType ScanIWAD (const char *iwad)
|
||||||
{
|
{
|
||||||
return IWAD_ActionDoom2;
|
return IWAD_ActionDoom2;
|
||||||
}
|
}
|
||||||
|
else if (lumpsfound[Check_Hawk] && lumpsfound[Check_Car] && lumpsfound[Check_Nose])
|
||||||
|
{
|
||||||
|
return IWAD_Harmony;
|
||||||
|
}
|
||||||
else if (lumpsfound[Check_FreeDoom])
|
else if (lumpsfound[Check_FreeDoom])
|
||||||
{
|
{
|
||||||
// Is there a 100% reliable way to tell FreeDoom and FreeDM
|
// Is there a 100% reliable way to tell FreeDoom and FreeDM
|
||||||
|
|
|
@ -81,6 +81,7 @@ enum EIWADType
|
||||||
IWAD_ChexQuest,
|
IWAD_ChexQuest,
|
||||||
IWAD_ChexQuest3,
|
IWAD_ChexQuest3,
|
||||||
IWAD_ActionDoom2,
|
IWAD_ActionDoom2,
|
||||||
|
IWAD_Harmony,
|
||||||
IWAD_Custom,
|
IWAD_Custom,
|
||||||
|
|
||||||
NUM_IWAD_TYPES
|
NUM_IWAD_TYPES
|
||||||
|
|
1
src/gi.h
1
src/gi.h
|
@ -42,6 +42,7 @@
|
||||||
#define GI_SHAREWARE 0x00000002
|
#define GI_SHAREWARE 0x00000002
|
||||||
#define GI_MENUHACK_EXTENDED 0x00000004 // (Heretic)
|
#define GI_MENUHACK_EXTENDED 0x00000004 // (Heretic)
|
||||||
#define GI_TEASER2 0x00000008 // Alternate version of the Strife Teaser
|
#define GI_TEASER2 0x00000008 // Alternate version of the Strife Teaser
|
||||||
|
#define GI_COMPATSHORTTEX 0x00000010 // always force COMPAT_SHORTTEX for IWAD maps.
|
||||||
|
|
||||||
#include "gametype.h"
|
#include "gametype.h"
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue