Sigil 2 (v1.0) and Eviternity 2 (RC5) support.
+ Invinciball activation now voiced by Demo (thanks, Vyolette). + Retooled exit line merging (should fix those pesky duplicate exit markers). Note: Oneliners for the Eviternity 2 final boss are not voiced yet.
This commit is contained in:
parent
9a252b72fe
commit
cbb1b2a8cb
36 changed files with 1177 additions and 165 deletions
|
|
@ -57,6 +57,18 @@ extend Class DemolitionistMenu
|
|||
c_minute = 9;
|
||||
c_tz = "+09";
|
||||
}
|
||||
else if ( SWWMUtility.IsEviternityTwo() )
|
||||
{
|
||||
// June 11th 2150, 04:09 +09
|
||||
// (June 11th 2150, 04:09 JST)
|
||||
// Epoch: 5694174540
|
||||
c_year = 2150;
|
||||
c_month = 5;
|
||||
c_day = 10;
|
||||
c_hour = 4;
|
||||
c_minute = 9;
|
||||
c_tz = "+09";
|
||||
}
|
||||
else // Doom
|
||||
{
|
||||
// June 6th 2148, 18:37 EDT
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ Class DemolitionistMissionTab : DemolitionistMenuTab
|
|||
// saves time
|
||||
bool nrftl = false;
|
||||
bool eviternity = false;
|
||||
bool eviternitwo = false;
|
||||
bool hexdd = false;
|
||||
String missionstr;
|
||||
let stats = SWWMStats.Find(players[consoleplayer]);
|
||||
|
|
@ -32,7 +33,20 @@ Class DemolitionistMissionTab : DemolitionistMenuTab
|
|||
int clus = level.cluster;
|
||||
if ( clus == 11 ) nrftl = true;
|
||||
eviternity = SWWMUtility.IsEviternity();
|
||||
if ( eviternity )
|
||||
eviternitwo = SWWMUtility.IsEviternityTwo();
|
||||
if ( eviternitwo )
|
||||
{
|
||||
// clusters in eviternity 2 have to be remapped
|
||||
if ( clus == 5 ) clus = 1;
|
||||
else if ( (clus == 6) || (clus == 13) ) clus = 2;
|
||||
else if ( (clus == 7) || (clus == 14) ) clus = 3;
|
||||
else if ( (clus == 8) || (clus == 15) ) clus = 4;
|
||||
else if ( (clus == 9) || (clus == 16) ) clus = 5;
|
||||
else if ( (clus == 10) || (clus == 17) ) clus = 6;
|
||||
else if ( (clus == 11) || (clus == 12) || (clus == 18) || (clus == 19) ) clus = 7;
|
||||
missionstr = String.Format("$SWWM_MISSION_EVITERNITYII%d",clus);
|
||||
}
|
||||
else if ( eviternity )
|
||||
{
|
||||
// we have to do some heavy lifting here because episodes don't match clusters
|
||||
if ( level.levelnum <= 5 ) clus = 1;
|
||||
|
|
@ -48,6 +62,8 @@ Class DemolitionistMissionTab : DemolitionistMenuTab
|
|||
// naive method to guess if this is sigil
|
||||
else if ( (clus == 5) && (level.mapname.Left(2) == "E5") )
|
||||
missionstr = String.Format("$SWWM_MISSION_SIGIL");
|
||||
else if ( (clus == 6) && (level.mapname.Left(2) == "E6") )
|
||||
missionstr = String.Format("$SWWM_MISSION_SIGIL2");
|
||||
else missionstr = String.Format("$SWWM_MISSION_DOOM%d",clus);
|
||||
int csiz = stats.clustervisit.Size();
|
||||
if ( (csiz > 0) && stats.secretdone[csiz-1] )
|
||||
|
|
@ -61,11 +77,11 @@ Class DemolitionistMissionTab : DemolitionistMenuTab
|
|||
for ( int i=0; i<csiz; i++ )
|
||||
{
|
||||
// also include sigil
|
||||
if ( !eviternity && (stats.clustervisit[i] >= 5) && (stats.clustervisit[i] != 25) ) continue;
|
||||
if ( !eviternity && !eviternitwo && (stats.clustervisit[i] >= 5) && (stats.clustervisit[i] != 25) && (stats.clustervisit[i] != 26) ) continue;
|
||||
fromdoomone = true;
|
||||
break;
|
||||
}
|
||||
if ( !eviternity && (clus == 5) && fromdoomone )
|
||||
if ( !eviternity && !eviternitwo && (clus == 5) && fromdoomone )
|
||||
missionstr = "$SWWM_MISSION_DOOM5_FROMDOOM1";
|
||||
if ( StringTable.Localize(missionstr) ~== missionstr.Mid(1) )
|
||||
missionstr = "$SWWM_MISSION_NONE";
|
||||
|
|
@ -76,8 +92,8 @@ Class DemolitionistMissionTab : DemolitionistMenuTab
|
|||
if ( (stats.clustervisit[i] == clus) && !firstskip )
|
||||
continue;
|
||||
firstskip = true;
|
||||
String xstr = String.Format(eviternity?"$SWWM_MISSION_EVITERNITY%d":"$SWWM_MISSION_DOOM%d",stats.clustervisit[i]);
|
||||
if ( !eviternity && (stats.clustervisit[i] == 5) && fromdoomone )
|
||||
String xstr = String.Format(eviternitwo?"$SWWM_MISSION_EVITERNITYII%d":eviternity?"$SWWM_MISSION_EVITERNITY%d":"$SWWM_MISSION_DOOM%d",stats.clustervisit[i]);
|
||||
if ( !eviternity && !eviternitwo && (stats.clustervisit[i] == 5) && fromdoomone )
|
||||
xstr = "$SWWM_MISSION_DOOM5_FROMDOOM1";
|
||||
if ( stats.secretdone[i] )
|
||||
{
|
||||
|
|
@ -89,6 +105,18 @@ Class DemolitionistMissionTab : DemolitionistMenuTab
|
|||
continue;
|
||||
mtext.Push(new("DemolitionistMenuTextBox").Init(master,xstr));
|
||||
}
|
||||
if ( eviternitwo )
|
||||
{
|
||||
// prepend all mission briefings from Eviternity
|
||||
mtext.Push(new("DemolitionistMenuTextBox").Init(master,StringTable.Localize("$SWWM_MISSION_EVITERNITY6")));
|
||||
mtext.Push(new("DemolitionistMenuTextBox").Init(master,StringTable.Localize("$SWWM_MISSION_EVITERNITY5")));
|
||||
mtext.Push(new("DemolitionistMenuTextBox").Init(master,StringTable.Localize("$SWWM_MISSION_EVITERNITY4_SECRET")));
|
||||
mtext.Push(new("DemolitionistMenuTextBox").Init(master,StringTable.Localize("$SWWM_MISSION_EVITERNITY8")));
|
||||
mtext.Push(new("DemolitionistMenuTextBox").Init(master,StringTable.Localize("$SWWM_MISSION_EVITERNITY7")));
|
||||
mtext.Push(new("DemolitionistMenuTextBox").Init(master,StringTable.Localize("$SWWM_MISSION_EVITERNITY3")));
|
||||
mtext.Push(new("DemolitionistMenuTextBox").Init(master,StringTable.Localize("$SWWM_MISSION_EVITERNITY2")));
|
||||
mtext.Push(new("DemolitionistMenuTextBox").Init(master,StringTable.Localize("$SWWM_MISSION_EVITERNITY1")));
|
||||
}
|
||||
}
|
||||
else if ( (gameinfo.gametype&GAME_Heretic) && SWWMUtility.IsKnownMap() )
|
||||
{
|
||||
|
|
@ -155,23 +183,23 @@ Class DemolitionistMissionTab : DemolitionistMenuTab
|
|||
break;
|
||||
case MK_LEFT:
|
||||
// cycle mission texts
|
||||
if ( mtext.Size() > 1 )
|
||||
if ( (mtext.Size() > 1) && (sel < (mtext.Size()-1)) )
|
||||
{
|
||||
master.MenuSound("menu/demoscroll");
|
||||
sel--;
|
||||
if ( sel < 0 ) sel = mtext.Size()-1;
|
||||
mtext[sel].smofs = mtext[sel].ofs = 0;
|
||||
sel++;
|
||||
mtext[sel].smofs = 0.;
|
||||
mtext[sel].ofs = 0;
|
||||
drag = false; // just in case
|
||||
}
|
||||
break;
|
||||
case MK_RIGHT:
|
||||
// cycle mission texts
|
||||
if ( mtext.Size() > 1 )
|
||||
if ( (mtext.Size() > 1) && (sel > 0) )
|
||||
{
|
||||
master.MenuSound("menu/demoscroll");
|
||||
sel++;
|
||||
if ( sel >= mtext.Size() ) sel = 0;
|
||||
mtext[sel].smofs = mtext[sel].ofs = 0;
|
||||
sel--;
|
||||
mtext[sel].smofs = 0.;
|
||||
mtext[sel].ofs = 0;
|
||||
drag = false; // just in case
|
||||
}
|
||||
break;
|
||||
|
|
@ -193,23 +221,23 @@ Class DemolitionistMissionTab : DemolitionistMenuTab
|
|||
break;
|
||||
}
|
||||
// cycle mission texts
|
||||
if ( mtext.Size() > 1 )
|
||||
if ( (mtext.Size() > 1) && (sel > 0) )
|
||||
{
|
||||
master.MenuSound("menu/demoscroll");
|
||||
sel--;
|
||||
if ( sel < 0 ) sel = mtext.Size()-1;
|
||||
mtext[sel].smofs = mtext[sel].ofs;
|
||||
mtext[sel].smofs = 0.;
|
||||
mtext[sel].ofs = 0;
|
||||
drag = false; // just in case
|
||||
}
|
||||
break;
|
||||
case MB_RIGHT:
|
||||
// cycle mission texts
|
||||
if ( mtext.Size() > 1 )
|
||||
if ( (mtext.Size() > 1) && (sel < (mtext.Size()-1)) )
|
||||
{
|
||||
master.MenuSound("menu/demoscroll");
|
||||
sel++;
|
||||
if ( sel >= mtext.Size() ) sel = 0;
|
||||
mtext[sel].smofs = mtext[sel].ofs;
|
||||
mtext[sel].smofs = 0.;
|
||||
mtext[sel].ofs = 0;
|
||||
drag = false; // just in case
|
||||
}
|
||||
break;
|
||||
|
|
@ -285,7 +313,7 @@ Class DemolitionistMissionTab : DemolitionistMenuTab
|
|||
if ( mtext.Size() <= 1 ) return;
|
||||
double xx = master.ws.x-(mtext[sel].scrollbar?11:3);
|
||||
double yy = master.ws.y-25;
|
||||
String str = String.Format("%d \cf/\c- %d",sel+1,mtext.Size());
|
||||
String str = String.Format("%d \cf/\c- %d",mtext.Size()-sel,mtext.Size());
|
||||
Screen.DrawText(master.mTinyFont,Font.CR_FIRE,(master.origin.x+xx)-master.mTinyFont.StringWidth(str),master.origin.y+yy,str,DTA_VirtualWidthF,master.ss.x,DTA_VirtualHeightF,master.ss.y,DTA_KeepRatio,true);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ Class DemolitionistSecretTab : DemolitionistMenuTab
|
|||
String str = StringTable.Localize("$SWWM_KIRINPOEM");
|
||||
l = master.mSmallFont.BreakLines(str,600);
|
||||
}
|
||||
else if ( (gameinfo.gametype&GAME_Heretic) || SWWMUtility.IsEviternity() )
|
||||
else if ( (gameinfo.gametype&GAME_Heretic) || SWWMUtility.IsEviternity() || SWWMUtility.IsEviternityTwo() )
|
||||
{
|
||||
img = TexMan.CheckForTexture("graphics/KBase/Drawing_Ibuki.png");
|
||||
sub = StringTable.Localize("$SWWM_CUTIECLUB");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue