mirror of
https://github.com/ZDoom/gzdoom-last-svn.git
synced 2025-06-04 11:10:48 +00:00
- Update to ZDoom r718
- Added ModPlug as an option to play MOD music because FMOD is not that good for it. git-svn-id: http://mancubus.net/svn/hosted/gzdoom/trunk@4 b0f79afe-0144-0410-b225-9a4edf0717df
This commit is contained in:
parent
f18564933d
commit
179ea921f9
214 changed files with 46506 additions and 12448 deletions
140
src/wi_stuff.cpp
140
src/wi_stuff.cpp
|
@ -386,168 +386,164 @@ void WI_LoadBackground(bool isenterpic)
|
|||
lnodes.Clear();
|
||||
anims.Clear();
|
||||
yah.Clear();
|
||||
splat=NULL;
|
||||
splat = NULL;
|
||||
|
||||
// a name with a starting '$' indicates an intermission script
|
||||
if (*lumpname!='$')
|
||||
{
|
||||
// The background picture can also be a flat so just using AddPatch doesn't work
|
||||
texture = TexMan.CheckForTexture(lumpname, FTexture::TEX_MiscPatch, FTextureManager::TEXMAN_TryAny);
|
||||
if (texture == -1) texture = TexMan.AddPatch(lumpname);
|
||||
}
|
||||
else
|
||||
{
|
||||
int lumpnum=Wads.GetNumForName(lumpname+1);
|
||||
if (lumpnum>=0)
|
||||
{
|
||||
SC_OpenLumpNum(lumpnum,lumpname+1);
|
||||
while (SC_GetString())
|
||||
FScanner sc(lumpnum,lumpname+1);
|
||||
while (sc.GetString())
|
||||
{
|
||||
memset(&an,0,sizeof(an));
|
||||
int caseval=SC_MustMatchString(WI_Cmd);
|
||||
int caseval = sc.MustMatchString(WI_Cmd);
|
||||
switch(caseval)
|
||||
{
|
||||
case 0: // Background
|
||||
SC_MustGetString();
|
||||
texture=TexMan.CheckForTexture(sc_String, FTexture::TEX_MiscPatch,FTextureManager::TEXMAN_TryAny);
|
||||
if (texture == -1) texture = TexMan.AddPatch(sc_String);
|
||||
sc.MustGetString();
|
||||
texture=TexMan.CheckForTexture(sc.String, FTexture::TEX_MiscPatch,FTextureManager::TEXMAN_TryAny);
|
||||
break;
|
||||
|
||||
case 1: // Splat
|
||||
SC_MustGetString();
|
||||
splat=TexMan[TexMan.AddPatch(sc_String)];
|
||||
sc.MustGetString();
|
||||
splat=TexMan[sc.String];
|
||||
break;
|
||||
|
||||
case 2: // Pointers
|
||||
while (SC_GetString() && !sc_Crossed)
|
||||
while (sc.GetString() && !sc.Crossed)
|
||||
{
|
||||
int v=TexMan.AddPatch(sc_String);
|
||||
yah.Push(TexMan[v]);
|
||||
yah.Push(TexMan[sc.String]);
|
||||
}
|
||||
if (sc_Crossed) SC_UnGet();
|
||||
if (sc.Crossed) sc.UnGet();
|
||||
break;
|
||||
|
||||
case 3: // Spots
|
||||
SC_MustGetStringName("{");
|
||||
while (!SC_CheckString("}"))
|
||||
sc.MustGetStringName("{");
|
||||
while (!sc.CheckString("}"))
|
||||
{
|
||||
SC_MustGetString();
|
||||
strncpy(pt.level, sc_String,8);
|
||||
pt.level[8]=0;
|
||||
SC_MustGetNumber();
|
||||
pt.x=sc_Number;
|
||||
SC_MustGetNumber();
|
||||
pt.y=sc_Number;
|
||||
sc.MustGetString();
|
||||
strncpy(pt.level, sc.String,8);
|
||||
pt.level[8] = 0;
|
||||
sc.MustGetNumber();
|
||||
pt.x = sc.Number;
|
||||
sc.MustGetNumber();
|
||||
pt.y = sc.Number;
|
||||
lnodes.Push(pt);
|
||||
}
|
||||
break;
|
||||
|
||||
case 4: // IfEntering
|
||||
an.type=ANIM_IFENTERING;
|
||||
an.type = ANIM_IFENTERING;
|
||||
goto readanimation;
|
||||
|
||||
case 5: // IfEntering
|
||||
an.type=ANIM_IFNOTENTERING;
|
||||
an.type = ANIM_IFNOTENTERING;
|
||||
goto readanimation;
|
||||
|
||||
case 6: // IfVisited
|
||||
an.type=ANIM_IFVISITED;
|
||||
an.type = ANIM_IFVISITED;
|
||||
goto readanimation;
|
||||
|
||||
case 7: // IfNotVisited
|
||||
an.type=ANIM_IFNOTVISITED;
|
||||
an.type = ANIM_IFNOTVISITED;
|
||||
goto readanimation;
|
||||
|
||||
case 8: // IfLeaving
|
||||
an.type=ANIM_IFLEAVING;
|
||||
an.type = ANIM_IFLEAVING;
|
||||
goto readanimation;
|
||||
|
||||
case 9: // IfNotLeaving
|
||||
an.type=ANIM_IFNOTLEAVING;
|
||||
an.type = ANIM_IFNOTLEAVING;
|
||||
goto readanimation;
|
||||
|
||||
case 10: // IfTravelling
|
||||
an.type=ANIM_IFTRAVELLING;
|
||||
SC_MustGetString();
|
||||
strncpy(an.levelname2,sc_String,8);
|
||||
an.levelname2[8]=0;
|
||||
an.type = ANIM_IFTRAVELLING;
|
||||
sc.MustGetString();
|
||||
strncpy(an.levelname2, sc.String, 8);
|
||||
an.levelname2[8] = 0;
|
||||
goto readanimation;
|
||||
|
||||
case 11: // IfNotTravelling
|
||||
an.type=ANIM_IFTRAVELLING;
|
||||
SC_MustGetString();
|
||||
strncpy(an.levelname2,sc_String,8);
|
||||
an.levelname2[8]=0;
|
||||
an.type = ANIM_IFTRAVELLING;
|
||||
sc.MustGetString();
|
||||
strncpy(an.levelname2, sc.String, 8);
|
||||
an.levelname2[8] = 0;
|
||||
goto readanimation;
|
||||
|
||||
case 14: // NoAutostartMap
|
||||
noautostartmap=true;
|
||||
noautostartmap = true;
|
||||
break;
|
||||
|
||||
readanimation:
|
||||
SC_MustGetString();
|
||||
strncpy(an.levelname,sc_String,8);
|
||||
an.levelname[8]=0;
|
||||
SC_MustGetString();
|
||||
caseval=SC_MustMatchString(WI_Cmd);
|
||||
sc.MustGetString();
|
||||
strncpy(an.levelname, sc.String, 8);
|
||||
an.levelname[8] = 0;
|
||||
sc.MustGetString();
|
||||
caseval=sc.MustMatchString(WI_Cmd);
|
||||
|
||||
default:
|
||||
switch (caseval)
|
||||
{
|
||||
case 12: // Animation
|
||||
an.type |= ANIM_ALWAYS;
|
||||
SC_MustGetNumber();
|
||||
an.loc.x=sc_Number;
|
||||
SC_MustGetNumber();
|
||||
an.loc.y=sc_Number;
|
||||
SC_MustGetNumber();
|
||||
an.period=sc_Number;
|
||||
an.nexttic = 1 + (M_Random()%an.period);
|
||||
if (SC_GetString())
|
||||
sc.MustGetNumber();
|
||||
an.loc.x = sc.Number;
|
||||
sc.MustGetNumber();
|
||||
an.loc.y = sc.Number;
|
||||
sc.MustGetNumber();
|
||||
an.period = sc.Number;
|
||||
an.nexttic = 1 + (M_Random() % an.period);
|
||||
if (sc.GetString())
|
||||
{
|
||||
if (SC_Compare("ONCE"))
|
||||
if (sc.Compare("ONCE"))
|
||||
{
|
||||
an.data=1;
|
||||
an.data = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
SC_UnGet();
|
||||
sc.UnGet();
|
||||
}
|
||||
}
|
||||
if (!SC_CheckString("{"))
|
||||
if (!sc.CheckString("{"))
|
||||
{
|
||||
SC_MustGetString();
|
||||
an.p[an.nanims++]=TexMan[TexMan.AddPatch(sc_String)];
|
||||
sc.MustGetString();
|
||||
an.p[an.nanims++] = TexMan[sc.String];
|
||||
}
|
||||
else
|
||||
{
|
||||
while (!SC_CheckString("}"))
|
||||
while (!sc.CheckString("}"))
|
||||
{
|
||||
SC_MustGetString();
|
||||
if (an.nanims<MAX_ANIMATION_FRAMES) an.p[an.nanims++]=TexMan[TexMan.AddPatch(sc_String)];
|
||||
sc.MustGetString();
|
||||
if (an.nanims<MAX_ANIMATION_FRAMES)
|
||||
an.p[an.nanims++] = TexMan[sc.String];
|
||||
}
|
||||
}
|
||||
an.ctr=-1;
|
||||
an.ctr = -1;
|
||||
anims.Push(an);
|
||||
break;
|
||||
|
||||
case 13: // Pic
|
||||
an.type |= ANIM_PIC;
|
||||
SC_MustGetNumber();
|
||||
an.loc.x=sc_Number;
|
||||
SC_MustGetNumber();
|
||||
an.loc.y=sc_Number;
|
||||
SC_MustGetString();
|
||||
an.p[0]=TexMan[TexMan.AddPatch(sc_String)];
|
||||
sc.MustGetNumber();
|
||||
an.loc.x = sc.Number;
|
||||
sc.MustGetNumber();
|
||||
an.loc.y = sc.Number;
|
||||
sc.MustGetString();
|
||||
an.p[0] = TexMan[sc.String];
|
||||
anims.Push(an);
|
||||
break;
|
||||
|
||||
default:
|
||||
SC_ScriptError("Unknown token %s in intermission script", sc_String);
|
||||
sc.ScriptError("Unknown token %s in intermission script", sc.String);
|
||||
}
|
||||
}
|
||||
}
|
||||
SC_Close();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -765,7 +761,7 @@ void WI_drawLF ()
|
|||
{
|
||||
int y = WI_TITLEY;
|
||||
|
||||
FTexture * tex = wbs->lname0[0]? TexMan[TexMan.AddPatch(wbs->lname0)] : NULL;
|
||||
FTexture * tex = wbs->lname0[0]? TexMan[wbs->lname0] : NULL;
|
||||
|
||||
// draw <LevelName>
|
||||
if (tex)
|
||||
|
@ -827,7 +823,7 @@ void WI_drawEL ()
|
|||
}
|
||||
|
||||
// draw <LevelName>
|
||||
FTexture * tex = wbs->lname1[0]? TexMan[TexMan.AddPatch(wbs->lname1)] : NULL;
|
||||
FTexture * tex = wbs->lname1[0]? TexMan[wbs->lname1] : NULL;
|
||||
if (tex)
|
||||
{
|
||||
screen->DrawTexture(tex, (SCREENWIDTH - tex->GetWidth() * CleanXfac) / 2, y * CleanYfac, DTA_CleanNoMove, true, TAG_DONE);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue