mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-23 04:22:34 +00:00
- Added more options to Light_ForceLightning: Setting the first arg to 0
will behave as before, setting it to 1 will create exactly one lighting and setting it to 2 will terminate lightning for the current level completely. And it will also work on maps that don't have lightning set in MAPINFO now. SVN r837 (trunk)
This commit is contained in:
parent
60ad26b231
commit
eef724b58e
5 changed files with 35 additions and 20 deletions
|
@ -1,4 +1,9 @@
|
|||
March 22, 2008 (Changes by Graf Zahl)
|
||||
- Added more options to Light_ForceLightning: Setting the first arg to 0
|
||||
will behave as before, setting it to 1 will create exactly one lighting
|
||||
and setting it to 2 will terminate lightning for the current level
|
||||
completely. And it will also work on maps that don't have lightning set
|
||||
in MAPINFO now.
|
||||
- Added: Sector movement that causes deep water to change its height now
|
||||
will trigger associated sector actions and adjust the actor's water level.
|
||||
- Fixed: The serializer for side_t::part never read the texture information
|
||||
|
|
|
@ -14,6 +14,7 @@ IMPLEMENT_CLASS (DLightningThinker)
|
|||
DLightningThinker::DLightningThinker ()
|
||||
: DThinker (STAT_LIGHTNING)
|
||||
{
|
||||
Stopped = false;
|
||||
LightningLightLevels = NULL;
|
||||
LightningFlashCount = 0;
|
||||
NextLightningFlash = ((pr_lightning()&15)+5)*35; // don't flash at level start
|
||||
|
@ -37,7 +38,7 @@ void DLightningThinker::Serialize (FArchive &arc)
|
|||
|
||||
Super::Serialize (arc);
|
||||
|
||||
arc << NextLightningFlash << LightningFlashCount;
|
||||
arc << Stopped << NextLightningFlash << LightningFlashCount;
|
||||
|
||||
if (arc.IsLoading ())
|
||||
{
|
||||
|
@ -63,6 +64,7 @@ void DLightningThinker::Tick ()
|
|||
else
|
||||
{
|
||||
--NextLightningFlash;
|
||||
if (Stopped) Destroy();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -166,9 +168,21 @@ void DLightningThinker::LightningFlash ()
|
|||
}
|
||||
}
|
||||
|
||||
void DLightningThinker::ForceLightning ()
|
||||
void DLightningThinker::ForceLightning (int mode)
|
||||
{
|
||||
switch (mode)
|
||||
{
|
||||
default:
|
||||
NextLightningFlash = 0;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
NextLightningFlash = 0;
|
||||
// Fall through
|
||||
case 2:
|
||||
Stopped = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static DLightningThinker *LocateLightning ()
|
||||
|
@ -186,20 +200,15 @@ void P_StartLightning ()
|
|||
}
|
||||
}
|
||||
|
||||
void P_StopLightning ()
|
||||
void P_ForceLightning (int mode)
|
||||
{
|
||||
DLightningThinker *lightning = LocateLightning ();
|
||||
if (lightning == NULL)
|
||||
{
|
||||
lightning = new DLightningThinker ();
|
||||
}
|
||||
if (lightning != NULL)
|
||||
{
|
||||
lightning->Destroy ();
|
||||
}
|
||||
}
|
||||
|
||||
void P_ForceLightning ()
|
||||
{
|
||||
DLightningThinker *lightning = LocateLightning ();
|
||||
if (lightning != NULL)
|
||||
{
|
||||
lightning->ForceLightning ();
|
||||
lightning->ForceLightning (mode);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,18 +15,19 @@ public:
|
|||
~DLightningThinker ();
|
||||
void Serialize (FArchive &arc);
|
||||
void Tick ();
|
||||
void ForceLightning ();
|
||||
void ForceLightning (int mode);
|
||||
void TerminateLightning();
|
||||
|
||||
protected:
|
||||
void LightningFlash ();
|
||||
|
||||
int NextLightningFlash;
|
||||
int LightningFlashCount;
|
||||
bool Stopped;
|
||||
BYTE *LightningLightLevels;
|
||||
};
|
||||
|
||||
void P_StartLightning ();
|
||||
void P_StopLightning ();
|
||||
void P_ForceLightning ();
|
||||
void P_ForceLightning (int mode);
|
||||
|
||||
#endif //__A_LIGHTNING_H__
|
||||
|
|
|
@ -1666,9 +1666,9 @@ FUNC(LS_Elevator_LowerToNearest)
|
|||
}
|
||||
|
||||
FUNC(LS_Light_ForceLightning)
|
||||
// Light_ForceLightning (tag)
|
||||
// Light_ForceLightning (mode)
|
||||
{
|
||||
P_ForceLightning ();
|
||||
P_ForceLightning (arg0);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -75,7 +75,7 @@
|
|||
// SAVESIG should match SAVEVER.
|
||||
|
||||
// MINSAVEVER is the minimum level snapshot version that can be loaded.
|
||||
#define MINSAVEVER 836
|
||||
#define MINSAVEVER 837
|
||||
|
||||
#if SVN_REVISION_NUMBER < MINSAVEVER
|
||||
// Never write a savegame with a version lower than what we need
|
||||
|
|
Loading…
Reference in a new issue