I completely forgot what I changed.
This commit is contained in:
parent
1cbfd4b97d
commit
7d401bdb61
53 changed files with 314 additions and 113 deletions
|
|
@ -20,7 +20,7 @@ Class SWWMLevelCompatibility : LevelPostProcessor
|
|||
|
||||
protected void Apply( Name checksum, String mapname )
|
||||
{
|
||||
int numcol = 6;
|
||||
int numcol = SWWMUtility.IsEviternity()?7:6;
|
||||
int ncellsa = 0, ncellsb = 0;
|
||||
int nbackpack = 0;
|
||||
switch ( checksum )
|
||||
|
|
|
|||
|
|
@ -74,6 +74,9 @@ extend Class SWWMStaticHandler
|
|||
{
|
||||
let c = (Class<SWWMCollectible>)(AllActorClasses[i]);
|
||||
if ( !c || (c == 'SWWMCollectible') ) continue;
|
||||
let def = GetDefaultByType(c);
|
||||
// check that we can collect it in this IWAD
|
||||
if ( !def.ValidGame() ) continue;
|
||||
nc++;
|
||||
}
|
||||
maxval = nc;
|
||||
|
|
|
|||
|
|
@ -14,9 +14,10 @@ Class SWWMCollectible : Inventory abstract
|
|||
// minimum gametype requirements
|
||||
enum EAvailability
|
||||
{
|
||||
AVAIL_Hexen = GAME_Hexen,
|
||||
AVAIL_Heretic = AVAIL_Hexen|GAME_Heretic,
|
||||
AVAIL_All = AVAIL_Heretic|GAME_DoomChex
|
||||
AVAIL_Hexen,
|
||||
AVAIL_Heretic,
|
||||
AVAIL_Eviternity,
|
||||
AVAIL_All
|
||||
};
|
||||
|
||||
Default
|
||||
|
|
@ -36,17 +37,24 @@ Class SWWMCollectible : Inventory abstract
|
|||
Radius 8;
|
||||
Height 24;
|
||||
}
|
||||
bool ValidGame() const
|
||||
{
|
||||
if ( avail == AVAIL_All ) return true;
|
||||
if ( (avail == AVAIL_Eviternity) && ((gameinfo.gametype&GAME_Raven) || SWWMUtility.IsEviternity()) ) return true;
|
||||
if ( (avail == AVAIL_Heretic) && (gameinfo.gametype&GAME_Raven) ) return true;
|
||||
if ( (avail == AVAIL_Hexen) && (gameinfo.gametype&GAME_Hexen) ) return true;
|
||||
return false;
|
||||
}
|
||||
override void PostBeginPlay()
|
||||
{
|
||||
Super.PostBeginPlay();
|
||||
// delet ourselves if wrong iwad
|
||||
if ( !(gameinfo.gametype&avail) )
|
||||
Destroy();
|
||||
if ( !ValidGame() ) Destroy();
|
||||
}
|
||||
override bool CanPickup( Actor toucher )
|
||||
{
|
||||
// no pickup if wrong iwad
|
||||
if ( !(gameinfo.gametype&avail) ) return false;
|
||||
if ( !ValidGame() ) return false;
|
||||
return Super.CanPickup(toucher);
|
||||
}
|
||||
override string PickupMessage()
|
||||
|
|
@ -174,14 +182,14 @@ Class SayaBean : SWWMCollectible
|
|||
Height 23;
|
||||
}
|
||||
}
|
||||
// Heretic
|
||||
// Eviternity / Heretic
|
||||
Class DemoPlush : SWWMCollectible
|
||||
{
|
||||
Default
|
||||
{
|
||||
Tag "$T_DEMOPLUSH";
|
||||
Inventory.PickupMessage "$T_DEMOPLUSH";
|
||||
SWWMCollectible.Availability AVAIL_Heretic;
|
||||
SWWMCollectible.Availability AVAIL_Eviternity;
|
||||
SWWMCollectible.GestureWeapon "DemoPlushGesture";
|
||||
Stamina 6000;
|
||||
Radius 12;
|
||||
|
|
|
|||
|
|
@ -709,7 +709,7 @@ Class Chancebox : Actor
|
|||
if ( !c || (c == 'SWWMCollectible') ) continue;
|
||||
let def = GetDefaultByType(c);
|
||||
// check that we can collect it in this IWAD
|
||||
if ( !(gameinfo.gametype&def.avail) ) continue;
|
||||
if ( !def.ValidGame() ) continue;
|
||||
candidates.Push(c);
|
||||
}
|
||||
let ti = ThinkerIterator.Create("SWWMCollectible");
|
||||
|
|
@ -898,7 +898,7 @@ Class Chancebox : Actor
|
|||
if ( !c || (c == 'SWWMCollectible') ) continue;
|
||||
let def = GetDefaultByType(c);
|
||||
// check that we can collect it in this IWAD
|
||||
if ( !(gameinfo.gametype&def.avail) ) continue;
|
||||
if ( !def.ValidGame() ) continue;
|
||||
tcol++;
|
||||
}
|
||||
int alldudchance = 5-(4*col)/tcol; // chance for all boxes to be duds (no collectibles)
|
||||
|
|
|
|||
|
|
@ -100,6 +100,8 @@ Class DemolitionistMenu : GenericMenu
|
|||
bool isrclick;
|
||||
// somehow Drawer can be called while closing prematurely, which is big bollocks
|
||||
bool isclosing;
|
||||
// to save on calls
|
||||
bool nrftl, eviternity, hexdd;
|
||||
|
||||
// returns MPlus if we're playing in Japanese, otherwise returns the requested font
|
||||
Font LangFont( Font req )
|
||||
|
|
@ -151,13 +153,14 @@ Class DemolitionistMenu : GenericMenu
|
|||
lasttuid = Random[TUID]();
|
||||
hnd = SWWMHandler(EventHandler.Find("SWWMHandler"));
|
||||
// mission text
|
||||
bool nrftl = false;
|
||||
bool hexdd = false;
|
||||
nrftl = false;
|
||||
eviternity = false;
|
||||
hexdd = false;
|
||||
if ( (gameinfo.gametype&GAME_Doom) && SWWMUtility.IsKnownMap() )
|
||||
{
|
||||
int clus = level.cluster;
|
||||
if ( clus == 11 ) nrftl = true;
|
||||
bool eviternity = SWWMUtility.IsEviternity();
|
||||
eviternity = SWWMUtility.IsEviternity();
|
||||
if ( eviternity )
|
||||
{
|
||||
// we have to do some heavy lifting here because episodes don't match clusters
|
||||
|
|
@ -285,7 +288,7 @@ Class DemolitionistMenu : GenericMenu
|
|||
c_minute = 28;
|
||||
}
|
||||
}
|
||||
else if ( SWWMUtility.IsEviternity() )
|
||||
else if ( eviternity )
|
||||
{
|
||||
// June 10th 2150, 20:09 +09
|
||||
// (June 10th 2150, 20:09 JST)
|
||||
|
|
@ -804,6 +807,9 @@ Class DemolitionistMenu : GenericMenu
|
|||
{
|
||||
let c = (Class<SWWMCollectible>)(AllActorClasses[i]);
|
||||
if ( !c || (c == 'SWWMCollectible') ) continue;
|
||||
let def = GetDefaultByType(c);
|
||||
// check that we can collect it in this IWAD
|
||||
if ( !def.ValidGame() ) continue;
|
||||
nc++;
|
||||
}
|
||||
ac.maxval = nc;
|
||||
|
|
|
|||
|
|
@ -367,7 +367,7 @@ Class Demolitionist : PlayerPawn
|
|||
if ( !type || (type == 'SWWMCollectible') ) continue;
|
||||
let def = GetDefaultByType(type);
|
||||
// check that we can collect it in this IWAD
|
||||
if ( !(gameinfo.gametype&def.avail) ) continue;
|
||||
if ( !def.ValidGame() ) continue;
|
||||
let item = Inventory(Spawn(AllActorClasses[i]));
|
||||
SWWMCollectible(item).propagated = true; // no score or anims
|
||||
if ( !item.CallTryPickup(self) ) item.Destroy();
|
||||
|
|
|
|||
|
|
@ -378,7 +378,7 @@ Class SWWMLoreLibrary : Thinker
|
|||
if ( !c || (c == 'SWWMCollectible') ) continue;
|
||||
let def = GetDefaultByType(c);
|
||||
// skip if we match and it's not for this game
|
||||
if ( (c.GetClassName() == ref) && !(gameinfo.gametype&def.avail) )
|
||||
if ( (c.GetClassName() == ref) && !def.ValidGame() )
|
||||
return true;
|
||||
}
|
||||
ref = ref.MakeUpper();
|
||||
|
|
@ -416,55 +416,66 @@ Class SWWMLoreLibrary : Thinker
|
|||
// redirects
|
||||
if ( gameinfo.gametype&GAME_Hexen )
|
||||
{
|
||||
if ( text ~== "SWWM_LORETXT_SAYA" )
|
||||
text = "SWWM_LORETXT_SAYA3"; // married kirin
|
||||
if ( text ~== "SWWM_LORETXT_AKARIPROJECT" )
|
||||
text = "SWWM_LORETXT_AKARIPROJECT3"; // mentions kirin
|
||||
else if ( text ~== "SWWM_LORETXT_ANARUKON" )
|
||||
text = "SWWM_LORETXT_ANARUKON2"; // comments from miyamoto-xanai wedding
|
||||
else if ( text ~== "SWWM_LORETXT_HELL" )
|
||||
text = "SWWM_LORETXT_HELL3"; // met father nostros during the wedding
|
||||
else if ( text ~== "SWWM_LORETXT_NANA" )
|
||||
text = "SWWM_LORETXT_NANA3"; // stuff that happened at the wedding
|
||||
else if ( text ~== "SWWM_LORETXT_GHOULHUNT" )
|
||||
text = "SWWM_LORETXT_GHOULHUNT2"; // met anthon anderken during the wedding
|
||||
else if ( text ~== "SWWM_LORETXT_GODS" )
|
||||
text = "SWWM_LORETXT_GODS2"; // beyond gods
|
||||
else if ( text ~== "SWWM_LORETXT_HELL" )
|
||||
text = "SWWM_LORETXT_HELL4"; // met father nostros during the wedding
|
||||
else if ( text ~== "SWWM_LORETXT_NANA" )
|
||||
text = "SWWM_LORETXT_NANA3"; // stuff that happened at the wedding
|
||||
else if ( text ~== "SWWM_LORETXT_RAGEKIT" )
|
||||
text = "SWWM_LORETXT_RAGEKIT2"; // kirin's reactions to demo using this item
|
||||
else if ( text ~== "SWWM_LORETXT_SANKAIDERIHA" )
|
||||
text = "SWWM_LORETXT_SANKAIDERIHA2"; // comments about kirin
|
||||
else if ( text ~== "SWWM_LORETXT_SAYA" )
|
||||
text = "SWWM_LORETXT_SAYA3"; // married kirin
|
||||
else if ( text ~== "SWWM_LORETXT_SERPENTRIDERS" )
|
||||
text = "SWWM_LORETXT_SERPENTRIDERS2"; // defeated d'sparil
|
||||
else if ( text ~== "SWWM_LORETXT_XANIMEN" )
|
||||
text = "SWWM_LORETXT_XANIMEN2"; // footnote about nuoma
|
||||
else if ( text ~== "SWWM_LORETXT_ZANAVETH2" )
|
||||
text = "SWWM_LORETXT_ZANAVETH22"; // met at wedding
|
||||
else if ( text ~== "SWWM_LORETXT_YNYKRON" )
|
||||
text = "SWWM_LORETXT_YNYKRON2"; // confirmed to harm (but not kill) gods
|
||||
else if ( text ~== "SWWM_LORETXT_AKARIPROJECT" )
|
||||
text = "SWWM_LORETXT_AKARIPROJECT3"; // mentions kirin
|
||||
else if ( text ~== "SWWM_LORETXT_GODS" )
|
||||
text = "SWWM_LORETXT_GODS2"; // beyond gods
|
||||
else if ( text ~== "SWWM_LORETXT_ZANAVETH2" )
|
||||
text = "SWWM_LORETXT_ZANAVETH22"; // met at wedding
|
||||
}
|
||||
if ( gameinfo.gametype&GAME_Raven )
|
||||
{
|
||||
if ( text ~== "SWWM_LORETXT_SAYA" )
|
||||
text = "SWWM_LORETXT_SAYA2"; // dating demo
|
||||
else if ( text ~== "SWWM_LORETXT_AKARILABS" )
|
||||
if ( text ~== "SWWM_LORETXT_AKARIPROJECT" )
|
||||
text = "SWWM_LORETXT_AKARIPROJECT2"; // fiction becomes reality
|
||||
else if ( text ~== "SWWM_LORETXT_DOOMGUY" )
|
||||
text = "SWWM_LORETXT_DOOMGUY3"; // he gone
|
||||
else if ( text ~== "SWWM_LORETXT_HELL" )
|
||||
text = "SWWM_LORETXT_HELL3"; // invasion was a thing of the past
|
||||
else if ( text ~== "SWWM_LORETXT_UAC" )
|
||||
text = "SWWM_LORETXT_UAC3"; // events of doom 64 and more
|
||||
}
|
||||
if ( (gameinfo.gametype&GAME_Raven) || SWWMUtility.IsEviternity() )
|
||||
{
|
||||
if ( text ~== "SWWM_LORETXT_AKARILABS" )
|
||||
text = "SWWM_LORETXT_AKARILABS2"; // demo won, akari project announced
|
||||
else if ( text ~== "SWWM_LORETXT_BIGSHOT" )
|
||||
text = "SWWM_LORETXT_BIGSHOT2"; // predictions about crimes_m
|
||||
else if ( text ~== "SWWM_LORETXT_DEMOLITIONIST" )
|
||||
text = "SWWM_LORETXT_DEMOLITIONIST2"; // demo rewarded with maidbot frame
|
||||
else if ( text ~== "SWWM_LORETXT_DOOMGUY" )
|
||||
text = "SWWM_LORETXT_DOOMGUY2"; // he gone
|
||||
else if ( text ~== "SWWM_LORETXT_UAC" )
|
||||
text = "SWWM_LORETXT_UAC2"; // uac "reformed"
|
||||
text = "SWWM_LORETXT_DOOMGUY2"; // decommissioned
|
||||
else if ( text ~== "SWWM_LORETXT_GENERICCUBE" )
|
||||
text = "SWWM_LORETXT_GENERICCUBE2"; // info from mykka
|
||||
else if ( text ~== "SWWM_LORETXT_HELL" )
|
||||
text = "SWWM_LORETXT_HELL2"; // invasion was a thing of the past
|
||||
text = "SWWM_LORETXT_HELL2"; // events of tnt/plutonia
|
||||
else if ( text ~== "SWWM_LORETXT_NANA" )
|
||||
text = "SWWM_LORETXT_NANA2"; // demo met nana
|
||||
else if ( text ~== "SWWM_LORETXT_SAYA" )
|
||||
text = "SWWM_LORETXT_SAYA2"; // dating demo
|
||||
else if ( text ~== "SWWM_LORETXT_UAC" )
|
||||
text = "SWWM_LORETXT_UAC2"; // uac "reformed"
|
||||
else if ( text ~== "SWWM_LORETXT_ZANAVETH3" )
|
||||
text = "SWWM_LORETXT_ZANAVETH32"; // iagb happened
|
||||
else if ( text ~== "SWWM_LORETXT_BIGSHOT" )
|
||||
text = "SWWM_LORETXT_BIGSHOT2"; // predictions about crimes_m
|
||||
else if ( text ~== "SWWM_LORETXT_AKARIPROJECT" )
|
||||
text = "SWWM_LORETXT_AKARIPROJECT2"; // fiction becomes reality
|
||||
}
|
||||
// check if existing
|
||||
for ( int i=0; i<ent.Size(); i++ )
|
||||
|
|
|
|||
|
|
@ -1601,27 +1601,27 @@ Class SWWMUtility
|
|||
{
|
||||
String tn = TexMan.GetName(checkme);
|
||||
if ( (tn ~== "MARBFAC2") )
|
||||
return true, TexMan.CheckForTexture("textures/deface/defaced_MARBFAC2.png",TexMan.Type_Any);
|
||||
return true, TexMan.CheckForTexture("defaced_MARBFAC2",TexMan.Type_Any);
|
||||
if ( (tn ~== "MARBFAC3") )
|
||||
return true, TexMan.CheckForTexture("textures/deface/defaced_MARBFAC3.png",TexMan.Type_Any);
|
||||
return true, TexMan.CheckForTexture("defaced_MARBFAC3",TexMan.Type_Any);
|
||||
if ( (tn ~== "MARBFAC4") )
|
||||
return true, TexMan.CheckForTexture("textures/deface/defaced_MARBFAC4.png",TexMan.Type_Any);
|
||||
return true, TexMan.CheckForTexture("defaced_MARBFAC4",TexMan.Type_Any);
|
||||
if ( (tn ~== "MARBFACE") )
|
||||
return true, TexMan.CheckForTexture("textures/deface/defaced_MARBFACE.png",TexMan.Type_Any);
|
||||
return true, TexMan.CheckForTexture("defaced_MARBFACE",TexMan.Type_Any);
|
||||
if ( (tn ~== "ZZWOLF2") )
|
||||
return true, TexMan.CheckForTexture("textures/deface/defaced_ZZWOLF2.png",TexMan.Type_Any);
|
||||
return true, TexMan.CheckForTexture("defaced_ZZWOLF2",TexMan.Type_Any);
|
||||
if ( (tn ~== "ZZWOLF3") )
|
||||
return true, TexMan.CheckForTexture("textures/deface/defaced_ZZWOLF3.png",TexMan.Type_Any);
|
||||
return true, TexMan.CheckForTexture("defaced_ZZWOLF3",TexMan.Type_Any);
|
||||
if ( (tn ~== "ZZWOLF4") )
|
||||
return true, TexMan.CheckForTexture("textures/deface/defaced_ZZWOLF4.png",TexMan.Type_Any);
|
||||
return true, TexMan.CheckForTexture("defaced_ZZWOLF4",TexMan.Type_Any);
|
||||
if ( (tn ~== "ZZWOLF6") )
|
||||
return true, TexMan.CheckForTexture("textures/deface/defaced_ZZWOLF6.png",TexMan.Type_Any);
|
||||
return true, TexMan.CheckForTexture("defaced_ZZWOLF6",TexMan.Type_Any);
|
||||
if ( (tn ~== "ZZWOLF7") )
|
||||
return true, TexMan.CheckForTexture("textures/deface/defaced_ZZWOLF7.png",TexMan.Type_Any);
|
||||
return true, TexMan.CheckForTexture("defaced_ZZWOLF7",TexMan.Type_Any);
|
||||
if ( (tn ~== "ZZWOLF12") )
|
||||
return true, TexMan.CheckForTexture("textures/deface/defaced_ZZWOLF12.png",TexMan.Type_Any);
|
||||
return true, TexMan.CheckForTexture("defaced_ZZWOLF12",TexMan.Type_Any);
|
||||
if ( (tn ~== "ZZWOLF13") )
|
||||
return true, TexMan.CheckForTexture("textures/deface/defaced_ZZWOLF13.png",TexMan.Type_Any);
|
||||
return true, TexMan.CheckForTexture("defaced_ZZWOLF13",TexMan.Type_Any);
|
||||
return false, checkme;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue