mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-11 15:21:51 +00:00
Merge branch 'master' of https://github.com/rheit/zdoom
Conflicts: wadsrc/static/compatibility.txt
This commit is contained in:
commit
4e1723eeb7
20 changed files with 130 additions and 261 deletions
|
@ -145,6 +145,7 @@ static FCompatOption Options[] =
|
|||
{ "badangles", COMPATF2_BADANGLES, SLOT_COMPAT2 },
|
||||
{ "floormove", COMPATF2_FLOORMOVE, SLOT_COMPAT2 },
|
||||
{ "soundcutoff", COMPATF2_SOUNDCUTOFF, SLOT_COMPAT2 },
|
||||
{ "pointonline", COMPATF2_POINTONLINE, SLOT_COMPAT2 },
|
||||
|
||||
{ NULL, 0, 0 }
|
||||
};
|
||||
|
|
|
@ -561,7 +561,7 @@ CUSTOM_CVAR(Int, compatmode, 0, CVAR_ARCHIVE|CVAR_NOINITCALL)
|
|||
COMPATF_TRACE|COMPATF_MISSILECLIP|COMPATF_SOUNDTARGET|COMPATF_NO_PASSMOBJ|COMPATF_LIMITPAIN|
|
||||
COMPATF_DEHHEALTH|COMPATF_INVISIBILITY|COMPATF_CROSSDROPOFF|COMPATF_CORPSEGIBS|COMPATF_HITSCAN|
|
||||
COMPATF_WALLRUN|COMPATF_NOTOSSDROPS|COMPATF_LIGHT|COMPATF_MASKEDMIDTEX;
|
||||
w = COMPATF2_BADANGLES|COMPATF2_FLOORMOVE;
|
||||
w = COMPATF2_BADANGLES|COMPATF2_FLOORMOVE|COMPATF2_POINTONLINE;
|
||||
break;
|
||||
|
||||
case 3: // Boom compat mode
|
||||
|
@ -580,6 +580,7 @@ CUSTOM_CVAR(Int, compatmode, 0, CVAR_ARCHIVE|CVAR_NOINITCALL)
|
|||
case 6: // Boom with some added settings to reenable some 'broken' behavior
|
||||
v = COMPATF_TRACE|COMPATF_SOUNDTARGET|COMPATF_BOOMSCROLL|COMPATF_MISSILECLIP|COMPATF_NO_PASSMOBJ|
|
||||
COMPATF_INVISIBILITY|COMPATF_CORPSEGIBS|COMPATF_HITSCAN|COMPATF_WALLRUN|COMPATF_NOTOSSDROPS;
|
||||
w = COMPATF2_POINTONLINE;
|
||||
break;
|
||||
|
||||
}
|
||||
|
@ -622,6 +623,7 @@ CVAR (Flag, compat_maskedmidtex, compatflags, COMPATF_MASKEDMIDTEX);
|
|||
CVAR (Flag, compat_badangles, compatflags2, COMPATF2_BADANGLES);
|
||||
CVAR (Flag, compat_floormove, compatflags2, COMPATF2_FLOORMOVE);
|
||||
CVAR (Flag, compat_soundcutoff, compatflags2, COMPATF2_SOUNDCUTOFF);
|
||||
CVAR (Flag, compat_pointonline, compatflags2, COMPATF2_POINTONLINE);
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
|
|
|
@ -427,7 +427,6 @@ public:
|
|||
short fixedcolormap; // can be set to REDCOLORMAP, etc.
|
||||
short fixedlightlevel;
|
||||
pspdef_t psprites[NUMPSPRITES]; // view sprites (gun, etc)
|
||||
TObjPtr<DInterpolation> pspinterp[NUMPSPRITES]; // view sprite interpolations
|
||||
int morphTics; // player is a chicken/pig if > 0
|
||||
const PClass *MorphedPlayerClass; // [MH] (for SBARINFO) class # for this player instance when morphed
|
||||
int MorphStyle; // which effects to apply for this player instance when morphed
|
||||
|
|
|
@ -340,6 +340,7 @@ enum
|
|||
COMPATF2_BADANGLES = 1 << 0, // It is impossible to face directly NSEW.
|
||||
COMPATF2_FLOORMOVE = 1 << 1, // Use the same floor motion behavior as Doom.
|
||||
COMPATF2_SOUNDCUTOFF = 1 << 2, // Cut off sounds when an actor vanishes instead of making it owner-less
|
||||
COMPATF2_POINTONLINE = 1 << 3, // Use original but buggy P_PointOnLineSide() and P_PointOnDivlineSide()
|
||||
};
|
||||
|
||||
// Emulate old bugs for select maps. These are not exposed by a cvar
|
||||
|
|
|
@ -1726,15 +1726,6 @@ void G_DoPlayerPop(int playernum)
|
|||
players[playernum].mo = NULL;
|
||||
players[playernum].camera = NULL;
|
||||
}
|
||||
// Now's the ideal time to remove his psprite interpolations.
|
||||
for (int ii = 0; ii < NUMPSPRITES; ii++)
|
||||
{
|
||||
if (players[playernum].psprites[ii].interpolation != NULL)
|
||||
{
|
||||
players[playernum].psprites[ii].StopInterpolation();
|
||||
players[playernum].pspinterp[ii] = NULL;
|
||||
}
|
||||
}
|
||||
// [RH] Let the scripts know the player left
|
||||
FBehavior::StaticStartTypedScripts(SCRIPT_Disconnect, NULL, true, playernum);
|
||||
}
|
||||
|
|
|
@ -1333,6 +1333,7 @@ MapFlagHandlers[] =
|
|||
{ "compat_badangles", MITYPE_COMPATFLAG, 0, COMPATF2_BADANGLES },
|
||||
{ "compat_floormove", MITYPE_COMPATFLAG, 0, COMPATF2_FLOORMOVE },
|
||||
{ "compat_soundcutoff", MITYPE_COMPATFLAG, 0, COMPATF2_SOUNDCUTOFF },
|
||||
{ "compat_pointonline", MITYPE_COMPATFLAG, 0, COMPATF2_POINTONLINE },
|
||||
{ "cd_start_track", MITYPE_EATNEXT, 0, 0 },
|
||||
{ "cd_end1_track", MITYPE_EATNEXT, 0, 0 },
|
||||
{ "cd_end2_track", MITYPE_EATNEXT, 0, 0 },
|
||||
|
|
|
@ -75,6 +75,7 @@
|
|||
#include "actorptrselect.h"
|
||||
#include "farchive.h"
|
||||
#include "decallib.h"
|
||||
#include "version.h"
|
||||
|
||||
#include "g_shared/a_pickups.h"
|
||||
|
||||
|
@ -6032,6 +6033,7 @@ int DLevelScript::RunScript ()
|
|||
int sp = 0;
|
||||
int *pc = this->pc;
|
||||
ACSFormat fmt = activeBehavior->GetFormat();
|
||||
FBehavior* const savedActiveBehavior = activeBehavior;
|
||||
unsigned int runaway = 0; // used to prevent infinite loops
|
||||
int pcd;
|
||||
FString work;
|
||||
|
@ -6065,6 +6067,7 @@ int DLevelScript::RunScript ()
|
|||
{
|
||||
default:
|
||||
Printf ("Unknown P-Code %d in %s\n", pcd, ScriptPresentation(script).GetChars());
|
||||
activeBehavior = savedActiveBehavior;
|
||||
// fall through
|
||||
case PCD_TERMINATE:
|
||||
DPrintf ("%s finished\n", ScriptPresentation(script).GetChars());
|
||||
|
@ -7271,9 +7274,9 @@ int DLevelScript::RunScript ()
|
|||
sp--;
|
||||
break;
|
||||
|
||||
case PCD_DROP:
|
||||
case PCD_SETRESULTVALUE:
|
||||
resultValue = STACK(1);
|
||||
case PCD_DROP: //fall through.
|
||||
sp--;
|
||||
break;
|
||||
|
||||
|
@ -9355,6 +9358,10 @@ scriptwait:
|
|||
}
|
||||
break;
|
||||
|
||||
case PCD_CONSOLECOMMAND:
|
||||
Printf (TEXTCOLOR_RED GAMENAME " doesn't support execution of console commands from scripts\n");
|
||||
sp -= 3;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -240,7 +240,11 @@ fixed_t P_AproxDistance (fixed_t dx, fixed_t dy);
|
|||
|
||||
inline int P_PointOnLineSide (fixed_t x, fixed_t y, const line_t *line)
|
||||
{
|
||||
return DMulScale32 (y-line->v1->y, line->dx, line->v1->x-x, line->dy) > 0;
|
||||
extern int P_VanillaPointOnLineSide(fixed_t x, fixed_t y, const line_t* line);
|
||||
|
||||
return i_compatflags2 & COMPATF2_POINTONLINE
|
||||
? P_VanillaPointOnLineSide(x, y, line)
|
||||
: DMulScale32 (y-line->v1->y, line->dx, line->v1->x-x, line->dy) > 0;
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
|
@ -254,7 +258,11 @@ inline int P_PointOnLineSide (fixed_t x, fixed_t y, const line_t *line)
|
|||
|
||||
inline int P_PointOnDivlineSide (fixed_t x, fixed_t y, const divline_t *line)
|
||||
{
|
||||
return DMulScale32 (y-line->y, line->dx, line->x-x, line->dy) > 0;
|
||||
extern int P_VanillaPointOnDivlineSide(fixed_t x, fixed_t y, const divline_t* line);
|
||||
|
||||
return (i_compatflags2 & COMPATF2_POINTONLINE)
|
||||
? P_VanillaPointOnDivlineSide(x, y, line)
|
||||
: (DMulScale32 (y-line->y, line->dx, line->x-x, line->dy) > 0);
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
|
|
|
@ -1523,3 +1523,92 @@ static AActor *RoughBlockCheck (AActor *mo, int index, void *param)
|
|||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
//
|
||||
// P_VanillaPointOnLineSide
|
||||
// P_PointOnLineSide() from the initial Doom source code release
|
||||
//
|
||||
//===========================================================================
|
||||
|
||||
int P_VanillaPointOnLineSide(fixed_t x, fixed_t y, const line_t* line)
|
||||
{
|
||||
fixed_t dx;
|
||||
fixed_t dy;
|
||||
fixed_t left;
|
||||
fixed_t right;
|
||||
|
||||
if (!line->dx)
|
||||
{
|
||||
if (x <= line->v1->x)
|
||||
return line->dy > 0;
|
||||
|
||||
return line->dy < 0;
|
||||
}
|
||||
if (!line->dy)
|
||||
{
|
||||
if (y <= line->v1->y)
|
||||
return line->dx < 0;
|
||||
|
||||
return line->dx > 0;
|
||||
}
|
||||
|
||||
dx = (x - line->v1->x);
|
||||
dy = (y - line->v1->y);
|
||||
|
||||
left = FixedMul ( line->dy>>FRACBITS , dx );
|
||||
right = FixedMul ( dy , line->dx>>FRACBITS );
|
||||
|
||||
if (right < left)
|
||||
return 0; // front side
|
||||
return 1; // back side
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
//
|
||||
// P_VanillaPointOnDivlineSide
|
||||
// P_PointOnDivlineSide() from the initial Doom source code release
|
||||
//
|
||||
//===========================================================================
|
||||
|
||||
int P_VanillaPointOnDivlineSide(fixed_t x, fixed_t y, const divline_t* line)
|
||||
{
|
||||
fixed_t dx;
|
||||
fixed_t dy;
|
||||
fixed_t left;
|
||||
fixed_t right;
|
||||
|
||||
if (!line->dx)
|
||||
{
|
||||
if (x <= line->x)
|
||||
return line->dy > 0;
|
||||
|
||||
return line->dy < 0;
|
||||
}
|
||||
if (!line->dy)
|
||||
{
|
||||
if (y <= line->y)
|
||||
return line->dx < 0;
|
||||
|
||||
return line->dx > 0;
|
||||
}
|
||||
|
||||
dx = (x - line->x);
|
||||
dy = (y - line->y);
|
||||
|
||||
// try to quickly decide by looking at sign bits
|
||||
if ( (line->dy ^ line->dx ^ dx ^ dy)&0x80000000 )
|
||||
{
|
||||
if ( (line->dy ^ dx) & 0x80000000 )
|
||||
return 1; // (left is negative)
|
||||
return 0;
|
||||
}
|
||||
|
||||
left = FixedMul ( line->dy>>8, dx>>8 );
|
||||
right = FixedMul ( dy>>8 , line->dx>>8 );
|
||||
|
||||
if (right < left)
|
||||
return 0; // front side
|
||||
return 1; // back side
|
||||
}
|
||||
|
||||
|
|
|
@ -1104,32 +1104,11 @@ void P_MovePsprites (player_t *player)
|
|||
P_CheckWeaponZoom (player);
|
||||
}
|
||||
}
|
||||
|
||||
psp = &player->psprites[0];
|
||||
for (i = 0; i < NUMPSPRITES; i++, psp++)
|
||||
{
|
||||
if (psp->state == NULL)
|
||||
{
|
||||
if (psp->interpolation != NULL)
|
||||
{
|
||||
player->pspinterp[i] = NULL;
|
||||
psp->StopInterpolation();
|
||||
}
|
||||
}
|
||||
else if (psp->interpolation == NULL)
|
||||
{
|
||||
player->pspinterp[i] = psp->SetInterpolation(player - players, i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
FArchive &operator<< (FArchive &arc, pspdef_t &def)
|
||||
{
|
||||
arc << def.state << def.tics << def.sx << def.sy
|
||||
<< def.sprite << def.frame;
|
||||
|
||||
if (SaveVersion >= 4525)
|
||||
arc << def.interpolation;
|
||||
|
||||
return arc;
|
||||
}
|
||||
|
|
|
@ -26,7 +26,6 @@
|
|||
// Basic data types.
|
||||
// Needs fixed point, and BAM angles.
|
||||
#include "tables.h"
|
||||
#include "r_data/r_interpolate.h"
|
||||
#include "thingdef/thingdef.h"
|
||||
|
||||
#define WEAPONBOTTOM 128*FRACUNIT
|
||||
|
@ -72,11 +71,6 @@ struct pspdef_t
|
|||
int sprite;
|
||||
int frame;
|
||||
bool processPending; // true: waiting for periodic processing on this tick
|
||||
|
||||
TObjPtr<DInterpolation> interpolation;
|
||||
DInterpolation *SetInterpolation(int player, int position);
|
||||
void UpdateInterpolation(int player);
|
||||
void StopInterpolation();
|
||||
};
|
||||
|
||||
class FArchive;
|
||||
|
|
|
@ -297,11 +297,6 @@ static void CopyPlayer (player_t *dst, player_t *src, const char *name)
|
|||
{
|
||||
dst->mo->player = dst;
|
||||
}
|
||||
// Fix the psprite interpolation pointers too.
|
||||
for (int i = 0; i < NUMPSPRITES; i++)
|
||||
{
|
||||
dst->psprites[i].UpdateInterpolation(dst - players);
|
||||
}
|
||||
// These 2 variables may not be overwritten.
|
||||
dst->attackdown = attackdown;
|
||||
dst->usedown = usedown;
|
||||
|
|
|
@ -316,7 +316,6 @@ player_t::player_t()
|
|||
memset (&cmd, 0, sizeof(cmd));
|
||||
memset (frags, 0, sizeof(frags));
|
||||
memset (psprites, 0, sizeof(psprites));
|
||||
memset (pspinterp, 0, sizeof(pspinterp));
|
||||
}
|
||||
|
||||
player_t &player_t::operator=(const player_t &p)
|
||||
|
@ -372,7 +371,6 @@ player_t &player_t::operator=(const player_t &p)
|
|||
fixedcolormap = p.fixedcolormap;
|
||||
fixedlightlevel = p.fixedlightlevel;
|
||||
memcpy(psprites, &p.psprites, sizeof(psprites));
|
||||
memcpy(pspinterp, &p.pspinterp, sizeof(pspinterp));
|
||||
morphTics = p.morphTics;
|
||||
MorphedPlayerClass = p.MorphedPlayerClass;
|
||||
MorphStyle = p.MorphStyle;
|
||||
|
@ -437,10 +435,6 @@ size_t player_t::FixPointers (const DObject *old, DObject *rep)
|
|||
if (*&ConversationNPC == old) ConversationNPC = replacement, changed++;
|
||||
if (*&ConversationPC == old) ConversationPC = replacement, changed++;
|
||||
if (*&MUSINFOactor == old) MUSINFOactor = replacement, changed++;
|
||||
|
||||
for (int i = 0; i < NUMPSPRITES; i++)
|
||||
if (*&pspinterp[i] == old) pspinterp[i] = static_cast<DInterpolation *>(rep), changed++;
|
||||
|
||||
return changed;
|
||||
}
|
||||
|
||||
|
@ -460,11 +454,6 @@ size_t player_t::PropagateMark()
|
|||
{
|
||||
GC::Mark(PendingWeapon);
|
||||
}
|
||||
for (int i = 0; i < NUMPSPRITES; i++)
|
||||
{
|
||||
GC::Mark(pspinterp[i]);
|
||||
}
|
||||
|
||||
return sizeof(*this);
|
||||
}
|
||||
|
||||
|
@ -3063,11 +3052,7 @@ void player_t::Serialize (FArchive &arc)
|
|||
for (i = 0; i < MAXPLAYERS; i++)
|
||||
arc << frags[i];
|
||||
for (i = 0; i < NUMPSPRITES; i++)
|
||||
{
|
||||
arc << psprites[i];
|
||||
if (SaveVersion >= 4525)
|
||||
arc << pspinterp[i];
|
||||
}
|
||||
|
||||
arc << CurrentPlayerClass;
|
||||
|
||||
|
|
|
@ -151,35 +151,6 @@ public:
|
|||
};
|
||||
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
class DPSpriteInterpolation : public DInterpolation
|
||||
{
|
||||
DECLARE_CLASS(DPSpriteInterpolation, DInterpolation)
|
||||
|
||||
pspdef_t *psp;
|
||||
int player, position;
|
||||
fixed_t oldx, oldy;
|
||||
fixed_t bakx, baky;
|
||||
fixed_t ofsx, ofsy;
|
||||
fixed_t nfsx, nfsy;
|
||||
|
||||
public:
|
||||
|
||||
DPSpriteInterpolation() {}
|
||||
DPSpriteInterpolation(pspdef_t *psp, int player, int position);
|
||||
void UpdatePointer(int player);
|
||||
void Destroy();
|
||||
void UpdateInterpolation();
|
||||
void Restore();
|
||||
void Interpolate(fixed_t smoothratio);
|
||||
void Serialize(FArchive &arc);
|
||||
};
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
//
|
||||
|
@ -191,7 +162,6 @@ IMPLEMENT_CLASS(DSectorPlaneInterpolation)
|
|||
IMPLEMENT_CLASS(DSectorScrollInterpolation)
|
||||
IMPLEMENT_CLASS(DWallScrollInterpolation)
|
||||
IMPLEMENT_CLASS(DPolyobjInterpolation)
|
||||
IMPLEMENT_CLASS(DPSpriteInterpolation)
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
|
@ -658,6 +628,7 @@ void DSectorScrollInterpolation::Serialize(FArchive &arc)
|
|||
arc << sector << ceiling << oldx << oldy;
|
||||
}
|
||||
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
//
|
||||
|
@ -853,113 +824,6 @@ void DPolyobjInterpolation::Serialize(FArchive &arc)
|
|||
if (arc.IsLoading()) bakverts.Resize(oldverts.Size());
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
DPSpriteInterpolation::DPSpriteInterpolation(pspdef_t *_psp, int _player, int _position)
|
||||
: psp(_psp), player(_player), position(_position),
|
||||
ofsx(0), ofsy(0), nfsx(0), nfsy(0)
|
||||
{
|
||||
UpdateInterpolation ();
|
||||
interpolator.AddInterpolation(this);
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
void DPSpriteInterpolation::UpdatePointer(int _player)
|
||||
{
|
||||
player = _player;
|
||||
psp = &players[player].psprites[position];
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
void DPSpriteInterpolation::Destroy()
|
||||
{
|
||||
psp->interpolation = NULL;
|
||||
Super::Destroy();
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
void DPSpriteInterpolation::UpdateInterpolation()
|
||||
{
|
||||
if ( position == ps_weapon )
|
||||
P_BobWeapon( &players[player], psp, &ofsx, &ofsy );
|
||||
|
||||
oldx = psp->sx + ofsx;
|
||||
oldy = psp->sy + ofsy;
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
void DPSpriteInterpolation::Restore()
|
||||
{
|
||||
psp->sx = bakx - nfsx;
|
||||
psp->sy = baky - nfsy;
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
void DPSpriteInterpolation::Interpolate(fixed_t smoothratio)
|
||||
{
|
||||
if ( position == ps_weapon )
|
||||
P_BobWeapon( &players[player], psp, &nfsx, &nfsy );
|
||||
|
||||
bakx = psp->sx + nfsx;
|
||||
baky = psp->sy + nfsy;
|
||||
|
||||
psp->sx = oldx + FixedMul(bakx - oldx, smoothratio) - nfsx;
|
||||
psp->sy = oldy + FixedMul(baky - oldy, smoothratio) - nfsy;
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
void DPSpriteInterpolation::Serialize(FArchive &arc)
|
||||
{
|
||||
Super::Serialize(arc);
|
||||
arc << player << position << oldx << oldy << ofsx << ofsy;
|
||||
UpdatePointer(player);
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
|
@ -1080,62 +944,6 @@ void FPolyObj::StopInterpolation()
|
|||
}
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
DInterpolation *pspdef_t::SetInterpolation(int player, int position)
|
||||
{
|
||||
if (interpolation == NULL)
|
||||
{
|
||||
interpolation = new DPSpriteInterpolation(this, player, position);
|
||||
}
|
||||
interpolation->AddRef();
|
||||
GC::WriteBarrier(interpolation);
|
||||
return interpolation;
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
void pspdef_t::UpdateInterpolation(int player)
|
||||
{
|
||||
if (interpolation != NULL)
|
||||
{
|
||||
barrier_cast<DPSpriteInterpolation *>(interpolation)->UpdatePointer(player);
|
||||
}
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
void pspdef_t::StopInterpolation()
|
||||
{
|
||||
if (interpolation != NULL)
|
||||
{
|
||||
interpolation->DelRef();
|
||||
}
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
//
|
||||
//
|
||||
//==========================================================================
|
||||
|
||||
ADD_STAT (interpolations)
|
||||
{
|
||||
|
@ -1143,3 +951,5 @@ ADD_STAT (interpolations)
|
|||
out.Format ("%d interpolations", interpolator.CountInterpolations ());
|
||||
return out;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -771,7 +771,7 @@ bool FMODSoundRenderer::Init()
|
|||
}
|
||||
#endif
|
||||
|
||||
#ifndef _WIN32
|
||||
#if !defined _WIN32 && !defined __APPLE__
|
||||
// Try to load SDL output plugin
|
||||
result = Sys->setPluginPath(progdir); // Should we really look for it in the program directory?
|
||||
result = Sys->loadPlugin("liboutput_sdl.so", &OutputPlugin);
|
||||
|
|
|
@ -76,7 +76,7 @@ const char *GetVersionString();
|
|||
|
||||
// Use 4500 as the base git save version, since it's higher than the
|
||||
// SVN revision ever got.
|
||||
#define SAVEVER 4525
|
||||
#define SAVEVER 4524
|
||||
|
||||
#define SAVEVERSTRINGIFY2(x) #x
|
||||
#define SAVEVERSTRINGIFY(x) SAVEVERSTRINGIFY2(x)
|
||||
|
|
|
@ -30,9 +30,9 @@ ACTOR Fatso
|
|||
Missile:
|
||||
FATT G 20 A_FatRaise
|
||||
FATT H 10 BRIGHT A_FatAttack1
|
||||
FATT IG 5
|
||||
FATT IG 5 A_FaceTarget
|
||||
FATT H 10 BRIGHT A_FatAttack2
|
||||
FATT IG 5
|
||||
FATT IG 5 A_FaceTarget
|
||||
FATT H 10 BRIGHT A_FatAttack3
|
||||
FATT IG 5
|
||||
Goto See
|
||||
|
|
|
@ -802,6 +802,7 @@ ACTOR BlasterPuff
|
|||
+NOGRAVITY
|
||||
+PUFFONACTORS
|
||||
RenderStyle Add
|
||||
SeeSound "weapons/blasterhit"
|
||||
States
|
||||
{
|
||||
Crash:
|
||||
|
|
|
@ -55,6 +55,8 @@ A80E7EE40E0D0C76A6FBD242BE29FE27 // map15
|
|||
{
|
||||
stairs
|
||||
maskedmidtex
|
||||
corpsegibs
|
||||
vileghosts
|
||||
}
|
||||
|
||||
10E1E2B36302D31AC4AE68C84B5DC457 // Eternal Doom MAP28
|
||||
|
@ -125,7 +127,6 @@ BA530202AF0BA0C6CBAE6A0C7076FB72 // Requiem map04
|
|||
CBDFEFAC579A62DE8F1B48CA4A09D381 // gather2.wad map05 and darkside.wad map01
|
||||
C7A2FAFB0AFB2632C50AD625CDB50E51 // Reverie map18
|
||||
9E5724BC6135AA6F86EE54FD4D91F1E2 // Project X map14
|
||||
6DA6FCBA8089161BDEC6A1D3F6C8D60F // Eternal Doom map25
|
||||
01899825FFEAE016D39C02A7DA4B218F // Archie map01
|
||||
1D9F3AFDC2517C2E450491ED13896712 // Seej map01
|
||||
0AE745A3AB86D15FB2FB74489962C421 // 6pack2 map02
|
||||
|
@ -320,8 +321,7 @@ F481922F4881F74760F3C0437FD5EDD0 // map03
|
|||
|
||||
7C1913DEE396BA26CFF22A0E9369B7D2 // Nuke Mine, e1m2
|
||||
{
|
||||
clearlinespecial 1107
|
||||
clearlinespecial 1108
|
||||
pointonline
|
||||
}
|
||||
|
||||
5B862477519B21B30059A466F2FF6460 // Khorus, map08
|
||||
|
@ -402,6 +402,11 @@ D0139194F7817BF06F3988DFC47DB38D // Whispers of Satan map29
|
|||
nopassover
|
||||
}
|
||||
|
||||
D7F6E9F08C39A17026349A04F8C0B0BE // Return to Hadron, e1m9
|
||||
{
|
||||
pointonline
|
||||
}
|
||||
|
||||
712BB4CFBD0753178CA0C6814BE4C288 // map12 BTSX_E1 - patch some rendering glitches that are problematic to detect
|
||||
{
|
||||
setsectortag 545 32000
|
||||
|
|
|
@ -1315,6 +1315,7 @@ OptionMenu "CompatibilityOptions"
|
|||
Option "Find shortest textures like Doom", "compat_SHORTTEX", "YesNo"
|
||||
Option "Use buggier stair building", "compat_stairs", "YesNo"
|
||||
Option "Use Doom's floor motion behavior", "compat_floormove", "YesNo"
|
||||
Option "Use Doom's point-on-line algorithm", "compat_pointonline", "YesNo"
|
||||
|
||||
StaticText " "
|
||||
StaticText "Physics Behavior",1
|
||||
|
|
Loading…
Reference in a new issue