mirror of
https://github.com/ZDoom/qzdoom.git
synced 2024-11-24 21:11:39 +00:00
- roughly 50 more, mostly search and replace.
This commit is contained in:
parent
06ba8c4c00
commit
b4a95ccaa9
12 changed files with 74 additions and 65 deletions
|
@ -1023,11 +1023,6 @@ void G_DoLoadLevel (int position, bool autosave, bool newGame)
|
|||
P_SetupLevel (&level, position, newGame);
|
||||
|
||||
|
||||
// [RH] Start lightning, if MAPINFO tells us to
|
||||
if (level.flags & LEVEL_STARTLIGHTNING)
|
||||
{
|
||||
P_StartLightning ();
|
||||
}
|
||||
|
||||
gameaction = ga_nothing;
|
||||
|
||||
|
|
|
@ -207,6 +207,8 @@ public:
|
|||
AActor *SpawnMapThing(FMapThing *mthing, int position);
|
||||
AActor *SpawnMapThing(int index, FMapThing *mt, int position);
|
||||
AActor *SpawnPlayer(FPlayerStart *mthing, int playernum, int flags);
|
||||
void StartLightning();
|
||||
void ForceLightning(int mode);
|
||||
|
||||
bool EV_DoPlat(int tag, line_t *line, DPlat::EPlatType type, double height, double speed, int delay, int lip, int change);
|
||||
void EV_StopPlat(int tag, bool remove);
|
||||
|
|
|
@ -111,7 +111,7 @@ DEFINE_ACTION_FUNCTION(AActor, A_QueueCorpse)
|
|||
|
||||
if (sv_corpsequeuesize > 0)
|
||||
{
|
||||
auto &corpsequeue = level.CorpseQueue;
|
||||
auto &corpsequeue = self->Level->CorpseQueue;
|
||||
while (corpsequeue.Size() >= (unsigned)sv_corpsequeuesize)
|
||||
{
|
||||
AActor *corpse = corpsequeue[0];
|
||||
|
@ -128,7 +128,7 @@ DEFINE_ACTION_FUNCTION(AActor, A_DeQueueCorpse)
|
|||
{
|
||||
PARAM_SELF_PROLOGUE(AActor);
|
||||
|
||||
auto &corpsequeue = level.CorpseQueue;
|
||||
auto &corpsequeue = self->Level->CorpseQueue;
|
||||
auto index = corpsequeue.FindEx([=](auto &element) { return element == self; });
|
||||
if (index < corpsequeue.Size())
|
||||
{
|
||||
|
|
|
@ -100,7 +100,7 @@ DEFINE_CLASS_PROPERTY(type, S, DynamicLight)
|
|||
//
|
||||
//==========================================================================
|
||||
|
||||
static FDynamicLight *GetLight()
|
||||
static FDynamicLight *GetLight(FLevelLocals *Level)
|
||||
{
|
||||
FDynamicLight *ret;
|
||||
if (FreeList.Size())
|
||||
|
@ -109,11 +109,12 @@ static FDynamicLight *GetLight()
|
|||
}
|
||||
else ret = (FDynamicLight*)DynLightArena.Alloc(sizeof(FDynamicLight));
|
||||
memset(ret, 0, sizeof(*ret));
|
||||
ret->next = level.lights;
|
||||
level.lights = ret;
|
||||
ret->next = Level->lights;
|
||||
Level->lights = ret;
|
||||
if (ret->next) ret->next->prev = ret;
|
||||
ret->visibletoplayer = true;
|
||||
ret->mShadowmapIndex = 1024;
|
||||
ret->Level = Level;
|
||||
ret->Pos.X = -10000000; // not a valid coordinate.
|
||||
return ret;
|
||||
}
|
||||
|
@ -128,7 +129,7 @@ static FDynamicLight *GetLight()
|
|||
|
||||
void AttachLight(AActor *self)
|
||||
{
|
||||
auto light = GetLight();
|
||||
auto light = GetLight(self->Level);
|
||||
|
||||
light->pSpotInnerAngle = &self->AngleVar(NAME_SpotInnerAngle);
|
||||
light->pSpotOuterAngle = &self->AngleVar(NAME_SpotOuterAngle);
|
||||
|
@ -221,9 +222,9 @@ DEFINE_ACTION_FUNCTION_NATIVE(ADynamicLight, SetOffset, SetOffset)
|
|||
|
||||
void FDynamicLight::ReleaseLight()
|
||||
{
|
||||
assert(prev != nullptr || this == level.lights);
|
||||
assert(prev != nullptr || this == Level->lights);
|
||||
if (prev != nullptr) prev->next = next;
|
||||
else level.lights = next;
|
||||
else Level->lights = next;
|
||||
if (next != nullptr) next->prev = prev;
|
||||
next = prev = nullptr;
|
||||
FreeList.Push(this);
|
||||
|
@ -245,7 +246,7 @@ void FDynamicLight::Activate()
|
|||
{
|
||||
float pulseTime = float(specialf1 / TICRATE);
|
||||
|
||||
m_lastUpdate = level.maptime;
|
||||
m_lastUpdate = Level->maptime;
|
||||
if (!swapped) m_cycler.SetParams(float(GetSecondaryIntensity()), float(GetIntensity()), pulseTime);
|
||||
else m_cycler.SetParams(float(GetIntensity()), float(GetSecondaryIntensity()), pulseTime);
|
||||
m_cycler.ShouldCycle(true);
|
||||
|
@ -294,9 +295,9 @@ void FDynamicLight::Tick()
|
|||
{
|
||||
case PulseLight:
|
||||
{
|
||||
float diff = (level.maptime - m_lastUpdate) / (float)TICRATE;
|
||||
float diff = (Level->maptime - m_lastUpdate) / (float)TICRATE;
|
||||
|
||||
m_lastUpdate = level.maptime;
|
||||
m_lastUpdate = Level->maptime;
|
||||
m_cycler.Update(diff);
|
||||
m_currentRadius = float(m_cycler.GetVal());
|
||||
break;
|
||||
|
@ -760,7 +761,7 @@ void AActor::AttachLight(unsigned int count, const FLightDefaults *lightdef)
|
|||
}
|
||||
else
|
||||
{
|
||||
light = GetLight();
|
||||
light = GetLight(Level);
|
||||
light->SetActor(this, true);
|
||||
AttachedLights.Push(light);
|
||||
}
|
||||
|
|
|
@ -233,6 +233,7 @@ public:
|
|||
double specialf1;
|
||||
FDynamicLight *next, *prev;
|
||||
sector_t *Sector;
|
||||
FLevelLocals *Level;
|
||||
TObjPtr<AActor *> target;
|
||||
FLightNode * touching_sides;
|
||||
FLightNode * touching_sector;
|
||||
|
|
|
@ -47,7 +47,7 @@ void DLightningThinker::Construct()
|
|||
LightningFlashCount = 0;
|
||||
NextLightningFlash = ((pr_lightning()&15)+5)*35; // don't flash at level start
|
||||
|
||||
LightningLightLevels.Resize(level.sectors.Size());
|
||||
LightningLightLevels.Resize(Level->sectors.Size());
|
||||
fillshort(&LightningLightLevels[0], LightningLightLevels.Size(), SHRT_MAX);
|
||||
}
|
||||
|
||||
|
@ -88,8 +88,8 @@ void DLightningThinker::LightningFlash ()
|
|||
LightningFlashCount--;
|
||||
if (LightningFlashCount)
|
||||
{ // reduce the brightness of the flash
|
||||
tempSec = &level.sectors[0];
|
||||
for (i = level.sectors.Size(), j = 0; i > 0; ++j, --i, ++tempSec)
|
||||
tempSec = &Level->sectors[0];
|
||||
for (i = Level->sectors.Size(), j = 0; i > 0; ++j, --i, ++tempSec)
|
||||
{
|
||||
// [RH] Checking this sector's applicability to lightning now
|
||||
// is not enough to know if we should lower its light level,
|
||||
|
@ -104,24 +104,24 @@ void DLightningThinker::LightningFlash ()
|
|||
}
|
||||
else
|
||||
{ // remove the alternate lightning flash special
|
||||
tempSec = &level.sectors[0];
|
||||
for (i = level.sectors.Size(), j = 0; i > 0; ++j, --i, ++tempSec)
|
||||
tempSec = &Level->sectors[0];
|
||||
for (i = Level->sectors.Size(), j = 0; i > 0; ++j, --i, ++tempSec)
|
||||
{
|
||||
if (LightningLightLevels[j] != SHRT_MAX)
|
||||
{
|
||||
tempSec->SetLightLevel(LightningLightLevels[j]);
|
||||
}
|
||||
}
|
||||
fillshort(&LightningLightLevels[0], level.sectors.Size(), SHRT_MAX);
|
||||
level.flags &= ~LEVEL_SWAPSKIES;
|
||||
fillshort(&LightningLightLevels[0], Level->sectors.Size(), SHRT_MAX);
|
||||
Level->flags &= ~LEVEL_SWAPSKIES;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
LightningFlashCount = (pr_lightning()&7)+8;
|
||||
flashLight = 200+(pr_lightning()&31);
|
||||
tempSec = &level.sectors[0];
|
||||
for (i = level.sectors.Size(), j = 0; i > 0; ++j, --i, ++tempSec)
|
||||
tempSec = &Level->sectors[0];
|
||||
for (i = Level->sectors.Size(), j = 0; i > 0; ++j, --i, ++tempSec)
|
||||
{
|
||||
// allow combination of the lightning sector specials with bit masks
|
||||
int special = tempSec->special;
|
||||
|
@ -151,12 +151,12 @@ void DLightningThinker::LightningFlash ()
|
|||
}
|
||||
}
|
||||
|
||||
level.flags |= LEVEL_SWAPSKIES; // set alternate sky
|
||||
Level->flags |= LEVEL_SWAPSKIES; // set alternate sky
|
||||
S_Sound (CHAN_AUTO, "world/thunder", 1.0, ATTN_NONE);
|
||||
// [ZZ] just in case
|
||||
E_WorldLightning();
|
||||
// start LIGHTNING scripts
|
||||
level.Behaviors.StartTypedScripts (SCRIPT_Lightning, NULL, false); // [RH] Run lightning scripts
|
||||
Level->Behaviors.StartTypedScripts (SCRIPT_Lightning, NULL, false); // [RH] Run lightning scripts
|
||||
|
||||
// Calculate the next lighting flash
|
||||
if (!NextLightningFlash)
|
||||
|
@ -167,7 +167,7 @@ void DLightningThinker::LightningFlash ()
|
|||
}
|
||||
else
|
||||
{
|
||||
if (pr_lightning() < 128 && !(level.time&32))
|
||||
if (pr_lightning() < 128 && !(Level->time&32))
|
||||
{
|
||||
NextLightningFlash = ((pr_lightning()&7)+2)*35;
|
||||
}
|
||||
|
@ -202,16 +202,16 @@ static DLightningThinker *LocateLightning ()
|
|||
return iterator.Next ();
|
||||
}
|
||||
|
||||
void P_StartLightning ()
|
||||
void FLevelLocals::StartLightning ()
|
||||
{
|
||||
const bool isOriginalHexen = (gameinfo.gametype == GAME_Hexen)
|
||||
&& (level.flags2 & LEVEL2_HEXENHACK);
|
||||
&& (flags2 & LEVEL2_HEXENHACK);
|
||||
|
||||
if (isOriginalHexen)
|
||||
{
|
||||
bool hasLightning = false;
|
||||
|
||||
for (const sector_t §or : level.sectors)
|
||||
for (const sector_t §or : sectors)
|
||||
{
|
||||
hasLightning = sector.GetTexture(sector_t::ceiling) == skyflatnum
|
||||
|| sector.special == Light_IndoorLightning1
|
||||
|
@ -225,7 +225,7 @@ void P_StartLightning ()
|
|||
|
||||
if (!hasLightning)
|
||||
{
|
||||
level.flags &= ~LEVEL_STARTLIGHTNING;
|
||||
flags &= ~LEVEL_STARTLIGHTNING;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -233,16 +233,16 @@ void P_StartLightning ()
|
|||
DLightningThinker *lightning = LocateLightning ();
|
||||
if (lightning == nullptr)
|
||||
{
|
||||
level.CreateThinker<DLightningThinker>();
|
||||
CreateThinker<DLightningThinker>();
|
||||
}
|
||||
}
|
||||
|
||||
void P_ForceLightning (int mode)
|
||||
void FLevelLocals::ForceLightning (int mode)
|
||||
{
|
||||
DLightningThinker *lightning = LocateLightning ();
|
||||
if (lightning == nullptr)
|
||||
{
|
||||
lightning = level.CreateThinker<DLightningThinker>();
|
||||
lightning = CreateThinker<DLightningThinker>();
|
||||
}
|
||||
if (lightning != nullptr)
|
||||
{
|
||||
|
|
|
@ -28,7 +28,5 @@ protected:
|
|||
TArray<short> LightningLightLevels;
|
||||
};
|
||||
|
||||
void P_StartLightning ();
|
||||
void P_ForceLightning (int mode);
|
||||
|
||||
#endif //__A_LIGHTNING_H__
|
||||
|
|
|
@ -2069,7 +2069,7 @@ FUNC(LS_Elevator_LowerToNearest)
|
|||
FUNC(LS_Light_ForceLightning)
|
||||
// Light_ForceLightning (mode)
|
||||
{
|
||||
P_ForceLightning (arg0);
|
||||
Level->ForceLightning (arg0);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -413,7 +413,7 @@ bool P_TeleportMove(AActor* thing, const DVector3 &pos, bool telefrag, bool modi
|
|||
|
||||
spechit.Clear(); // this is needed so that no more specials get activated after crossing a teleporter.
|
||||
|
||||
bool StompAlwaysFrags = ((thing->flags2 & MF2_TELESTOMP) || (level.flags & LEVEL_MONSTERSTELEFRAG) || telefrag) && !(thing->flags7 & MF7_NOTELESTOMP);
|
||||
bool StompAlwaysFrags = ((thing->flags2 & MF2_TELESTOMP) || (thing->Level->flags & LEVEL_MONSTERSTELEFRAG) || telefrag) && !(thing->flags7 & MF7_NOTELESTOMP);
|
||||
|
||||
// P_LineOpening requires the thing's z to be the destination z in order to work.
|
||||
double savedz = thing->Z();
|
||||
|
@ -975,7 +975,7 @@ bool PIT_CheckLine(FMultiBlockLinesIterator &mit, FMultiBlockLinesIterator::Chec
|
|||
// better than Strife's handling of rails, which lets you jump into rails
|
||||
// from either side. How long until somebody reports this as a bug and I'm
|
||||
// forced to say, "It's not a bug. It's a feature?" Ugh.
|
||||
(!(level.flags2 & LEVEL2_RAILINGHACK) ||
|
||||
(!(tm.thing->Level->flags2 & LEVEL2_RAILINGHACK) ||
|
||||
open.bottom == tm.thing->Sector->floorplane.ZatPoint(ref)))
|
||||
{
|
||||
open.bottom += 32;
|
||||
|
@ -1365,10 +1365,10 @@ bool PIT_CheckThing(FMultiBlockThingsIterator &it, FMultiBlockThingsIterator::Ch
|
|||
if ((thing->flags6 & MF6_BUMPSPECIAL) && ((tm.thing->player != NULL)
|
||||
|| ((thing->activationtype & THINGSPEC_MonsterTrigger) && (tm.thing->flags3 & MF3_ISMONSTER))
|
||||
|| ((thing->activationtype & THINGSPEC_MissileTrigger) && (tm.thing->flags & MF_MISSILE))
|
||||
) && (level.maptime > thing->lastbump)) // Leave the bumper enough time to go away
|
||||
) && (thing->Level->maptime > thing->lastbump)) // Leave the bumper enough time to go away
|
||||
{
|
||||
if (P_ActivateThingSpecial(thing, tm.thing))
|
||||
thing->lastbump = level.maptime + TICRATE;
|
||||
thing->lastbump = thing->Level->maptime + TICRATE;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2041,7 +2041,7 @@ void P_FakeZMovement(AActor *mo)
|
|||
}
|
||||
if (mo->player && mo->flags&MF_NOGRAVITY && (mo->Z() > mo->floorz) && !mo->IsNoClip2())
|
||||
{
|
||||
mo->AddZ(DAngle(4.5 * level.maptime).Sin());
|
||||
mo->AddZ(DAngle(4.5 * mo->Level->maptime).Sin());
|
||||
}
|
||||
|
||||
//
|
||||
|
@ -2111,7 +2111,7 @@ static void CheckForPushSpecial(line_t *line, int side, AActor *mobj, DVector2 *
|
|||
}
|
||||
else if (mobj->flags2 & MF2_IMPACT)
|
||||
{
|
||||
if ((level.flags2 & LEVEL2_MISSILESACTIVATEIMPACT) ||
|
||||
if ((mobj->Level->flags2 & LEVEL2_MISSILESACTIVATEIMPACT) ||
|
||||
!(mobj->flags & MF_MISSILE) ||
|
||||
(mobj->target == NULL))
|
||||
{
|
||||
|
@ -4269,7 +4269,7 @@ DAngle P_AimLineAttack(AActor *t1, DAngle angle, double distance, FTranslatedLin
|
|||
// can't shoot outside view angles
|
||||
if (vrange == 0)
|
||||
{
|
||||
if (t1->player == NULL || !level.IsFreelookAllowed())
|
||||
if (t1->player == NULL || !t1->Level->IsFreelookAllowed())
|
||||
{
|
||||
vrange = 35.;
|
||||
}
|
||||
|
@ -4539,7 +4539,7 @@ AActor *P_LineAttack(AActor *t1, DAngle angle, double distance,
|
|||
// position a bit closer for puffs
|
||||
if (nointeract || trace.HitType != TRACE_HitWall || ((trace.Line->special != Line_Horizon) || spawnSky))
|
||||
{
|
||||
DVector2 pos = level.GetPortalOffsetPosition(trace.HitPos.X, trace.HitPos.Y, -trace.HitVector.X * 4, -trace.HitVector.Y * 4);
|
||||
DVector2 pos = t1->Level->GetPortalOffsetPosition(trace.HitPos.X, trace.HitPos.Y, -trace.HitVector.X * 4, -trace.HitVector.Y * 4);
|
||||
puff = P_SpawnPuff(t1, pufftype, DVector3(pos, trace.HitPos.Z - trace.HitVector.Z * 4), trace.SrcAngleFromTarget,
|
||||
trace.SrcAngleFromTarget - 90, 0, puffFlags);
|
||||
puff->radius = 1/65536.;
|
||||
|
@ -4590,7 +4590,7 @@ AActor *P_LineAttack(AActor *t1, DAngle angle, double distance,
|
|||
// position a bit closer for puffs/blood if using compatibility mode.
|
||||
if (i_compatflags & COMPATF_HITSCAN)
|
||||
{
|
||||
DVector2 ofs = level.GetPortalOffsetPosition(bleedpos.X, bleedpos.Y, -10 * trace.HitVector.X, -10 * trace.HitVector.Y);
|
||||
DVector2 ofs = t1->Level->GetPortalOffsetPosition(bleedpos.X, bleedpos.Y, -10 * trace.HitVector.X, -10 * trace.HitVector.Y);
|
||||
bleedpos.X = ofs.X;
|
||||
bleedpos.Y = ofs.Y;
|
||||
bleedpos.Z -= -10 * trace.HitVector.Z;
|
||||
|
@ -5101,7 +5101,7 @@ static ETraceStatus ProcessRailHit(FTraceResults &res, void *userdata)
|
|||
newhit.HitAngle = res.SrcAngleFromTarget;
|
||||
if (i_compatflags & COMPATF_HITSCAN)
|
||||
{
|
||||
DVector2 ofs = level.GetPortalOffsetPosition(newhit.HitPos.X, newhit.HitPos.Y, -10 * res.HitVector.X, -10 * res.HitVector.Y);
|
||||
DVector2 ofs = res.Actor->Level->GetPortalOffsetPosition(newhit.HitPos.X, newhit.HitPos.Y, -10 * res.HitVector.X, -10 * res.HitVector.Y);
|
||||
newhit.HitPos.X = ofs.X;
|
||||
newhit.HitPos.Y = ofs.Y;
|
||||
newhit.HitPos.Z -= -10 * res.HitVector.Z;
|
||||
|
@ -6167,7 +6167,7 @@ void P_DoCrunch(AActor *thing, FChangePosition *cpos)
|
|||
if (!(thing && thing->CallGrind(true) && cpos)) return;
|
||||
cpos->nofit = true;
|
||||
|
||||
if ((cpos->crushchange > 0) && !(level.maptime & 3))
|
||||
if ((cpos->crushchange > 0) && !(thing->Level->maptime & 3))
|
||||
{
|
||||
int newdam = P_DamageMobj(thing, NULL, NULL, cpos->crushchange, NAME_Crush);
|
||||
|
||||
|
@ -6829,14 +6829,14 @@ bool P_ActivateThingSpecial(AActor * thing, AActor * trigger, bool death)
|
|||
{
|
||||
res = !!P_ExecuteSpecial(thing->special, NULL,
|
||||
// TriggerActs overrides the level flag, which only concerns thing activated by death
|
||||
(((death && level.flags & LEVEL_ACTOWNSPECIAL && !(thing->activationtype & THINGSPEC_TriggerActs))
|
||||
(((death && thing->Level->flags & LEVEL_ACTOWNSPECIAL && !(thing->activationtype & THINGSPEC_TriggerActs))
|
||||
|| (thing->activationtype & THINGSPEC_ThingActs)) // Who triggers?
|
||||
? thing : trigger),
|
||||
false, thing->args[0], thing->args[1], thing->args[2], thing->args[3], thing->args[4]);
|
||||
|
||||
// Clears the special if it was run on thing's death or if flag is set.
|
||||
// Note that Hexen originally did not clear the special which some original maps depend on (e.g. the bell in HEXDD.)
|
||||
if ((death && !(level.flags2 & LEVEL2_HEXENHACK)) || (thing->activationtype & THINGSPEC_ClearSpecial && res)) thing->special = 0;
|
||||
if ((death && !(thing->Level->flags2 & LEVEL2_HEXENHACK)) || (thing->activationtype & THINGSPEC_ClearSpecial && res)) thing->special = 0;
|
||||
}
|
||||
|
||||
// Returns the result
|
||||
|
|
|
@ -551,6 +551,13 @@ void P_SetupLevel(FLevelLocals *Level, int position, bool newGame)
|
|||
|
||||
Level->automap = AM_Create(Level);
|
||||
Level->automap->LevelInit();
|
||||
|
||||
// [RH] Start lightning, if MAPINFO tells us to
|
||||
if (Level->flags & LEVEL_STARTLIGHTNING)
|
||||
{
|
||||
Level->StartLightning();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//
|
||||
|
|
|
@ -148,6 +148,7 @@ bool ModActorFlag(AActor *actor, const FString &flagname, bool set, bool printer
|
|||
|
||||
if (actor != NULL)
|
||||
{
|
||||
auto Level = actor->Level;
|
||||
const char *dot = strchr(flagname, '.');
|
||||
FFlagDef *fd;
|
||||
PClassActor *cls = actor->GetClass();
|
||||
|
@ -166,9 +167,9 @@ bool ModActorFlag(AActor *actor, const FString &flagname, bool set, bool printer
|
|||
{
|
||||
found = true;
|
||||
|
||||
if (actor->CountsAsKill() && actor->health > 0) --level.total_monsters;
|
||||
if (actor->flags & MF_COUNTITEM) --level.total_items;
|
||||
if (actor->flags5 & MF5_COUNTSECRET) --level.total_secrets;
|
||||
if (actor->CountsAsKill() && actor->health > 0) --Level->total_monsters;
|
||||
if (actor->flags & MF_COUNTITEM) --Level->total_items;
|
||||
if (actor->flags5 & MF5_COUNTSECRET) --Level->total_secrets;
|
||||
|
||||
if (fd->structoffset == -1)
|
||||
{
|
||||
|
@ -187,9 +188,9 @@ bool ModActorFlag(AActor *actor, const FString &flagname, bool set, bool printer
|
|||
if (linkchange) actor->LinkToWorld(&ctx);
|
||||
}
|
||||
|
||||
if (actor->CountsAsKill() && actor->health > 0) ++level.total_monsters;
|
||||
if (actor->flags & MF_COUNTITEM) ++level.total_items;
|
||||
if (actor->flags5 & MF5_COUNTSECRET) ++level.total_secrets;
|
||||
if (actor->CountsAsKill() && actor->health > 0) ++Level->total_monsters;
|
||||
if (actor->flags & MF_COUNTITEM) ++Level->total_items;
|
||||
if (actor->flags5 & MF5_COUNTSECRET) ++Level->total_secrets;
|
||||
}
|
||||
else if (printerror)
|
||||
{
|
||||
|
|
|
@ -1166,7 +1166,7 @@ DEFINE_ACTION_FUNCTION_NATIVE(_Sector, RemoveForceField, RemoveForceField)
|
|||
|
||||
static void SetEnvironmentID(sector_t *self, int envnum)
|
||||
{
|
||||
level.Zones[self->ZoneNumber].Environment = S_FindEnvironment(envnum);
|
||||
self->Level->Zones[self->ZoneNumber].Environment = S_FindEnvironment(envnum);
|
||||
}
|
||||
|
||||
DEFINE_ACTION_FUNCTION_NATIVE(_Sector, SetEnvironmentID, SetEnvironmentID)
|
||||
|
@ -1179,7 +1179,7 @@ DEFINE_ACTION_FUNCTION_NATIVE(_Sector, RemoveForceField, RemoveForceField)
|
|||
|
||||
static void SetEnvironment(sector_t *self, const FString &env)
|
||||
{
|
||||
level.Zones[self->ZoneNumber].Environment = S_FindEnvironment(env);
|
||||
self->Level->Zones[self->ZoneNumber].Environment = S_FindEnvironment(env);
|
||||
}
|
||||
|
||||
DEFINE_ACTION_FUNCTION_NATIVE(_Sector, SetEnvironment, SetEnvironment)
|
||||
|
@ -2352,19 +2352,21 @@ DEFINE_ACTION_FUNCTION_NATIVE(DBaseStatusBar, SetClipRect, SBar_SetClipRect)
|
|||
|
||||
static void GetGlobalACSString(int index, FString *result)
|
||||
{
|
||||
*result = level.Behaviors.LookupString(ACS_GlobalVars[index]);
|
||||
*result = currentUILevel->Behaviors.LookupString(ACS_GlobalVars[index]);
|
||||
}
|
||||
|
||||
DEFINE_ACTION_FUNCTION_NATIVE(DBaseStatusBar, GetGlobalACSString, GetGlobalACSString)
|
||||
{
|
||||
PARAM_PROLOGUE;
|
||||
PARAM_INT(index);
|
||||
ACTION_RETURN_STRING(level.Behaviors.LookupString(ACS_GlobalVars[index]));
|
||||
FString res;
|
||||
GetGlobalACSString(index, &res);
|
||||
ACTION_RETURN_STRING(res);
|
||||
}
|
||||
|
||||
static void GetGlobalACSArrayString(int arrayno, int index, FString *result)
|
||||
{
|
||||
*result = level.Behaviors.LookupString(ACS_GlobalVars[index]);
|
||||
*result = currentUILevel->Behaviors.LookupString(ACS_GlobalVars[index]);
|
||||
}
|
||||
|
||||
DEFINE_ACTION_FUNCTION_NATIVE(DBaseStatusBar, GetGlobalACSArrayString, GetGlobalACSArrayString)
|
||||
|
@ -2372,7 +2374,9 @@ DEFINE_ACTION_FUNCTION_NATIVE(DBaseStatusBar, GetGlobalACSArrayString, GetGlobal
|
|||
PARAM_PROLOGUE;
|
||||
PARAM_INT(arrayno);
|
||||
PARAM_INT(index);
|
||||
ACTION_RETURN_STRING(level.Behaviors.LookupString(ACS_GlobalArrays[arrayno][index]));
|
||||
FString res;
|
||||
GetGlobalACSArrayString(arrayno, index, &res);
|
||||
ACTION_RETURN_STRING(res);
|
||||
}
|
||||
|
||||
static int GetGlobalACSValue(int index)
|
||||
|
@ -2592,7 +2596,7 @@ DEFINE_ACTION_FUNCTION(FLevelLocals, GetChecksum)
|
|||
|
||||
for (int j = 0; j < 16; ++j)
|
||||
{
|
||||
sprintf(md5string + j * 2, "%02x", level.md5[j]);
|
||||
sprintf(md5string + j * 2, "%02x", self->md5[j]);
|
||||
}
|
||||
|
||||
ACTION_RETURN_STRING((const char*)md5string);
|
||||
|
|
Loading…
Reference in a new issue