mirror of
https://github.com/ZDoom/qzdoom.git
synced 2024-11-25 05:21:02 +00:00
Merge branch 'master' of https://github.com/rheit/zdoom
This commit is contained in:
commit
ba2faee125
16 changed files with 80 additions and 47 deletions
|
@ -960,8 +960,8 @@ CCMD(nextmap)
|
|||
{
|
||||
if (netgame)
|
||||
{
|
||||
Printf ("Use "TEXTCOLOR_BOLD"changemap"TEXTCOLOR_NORMAL" instead. "TEXTCOLOR_BOLD"Nextmap"
|
||||
TEXTCOLOR_NORMAL" is for single-player only.\n");
|
||||
Printf ("Use " TEXTCOLOR_BOLD "changemap" TEXTCOLOR_NORMAL " instead. " TEXTCOLOR_BOLD "Nextmap"
|
||||
TEXTCOLOR_NORMAL " is for single-player only.\n");
|
||||
return;
|
||||
}
|
||||
char *next = NULL;
|
||||
|
@ -988,8 +988,8 @@ CCMD(nextsecret)
|
|||
{
|
||||
if (netgame)
|
||||
{
|
||||
Printf ("Use "TEXTCOLOR_BOLD"changemap"TEXTCOLOR_NORMAL" instead. "TEXTCOLOR_BOLD"Nextsecret"
|
||||
TEXTCOLOR_NORMAL" is for single-player only.\n");
|
||||
Printf ("Use " TEXTCOLOR_BOLD "changemap" TEXTCOLOR_NORMAL " instead. " TEXTCOLOR_BOLD "Nextsecret"
|
||||
TEXTCOLOR_NORMAL " is for single-player only.\n");
|
||||
return;
|
||||
}
|
||||
char *next = NULL;
|
||||
|
|
|
@ -140,6 +140,7 @@ public:
|
|||
int SpawnMask;
|
||||
FNameNoInit MorphWeapon;
|
||||
fixed_t AttackZOffset; // attack height, relative to player center
|
||||
fixed_t UseRange; // [NS] Distance at which player can +use
|
||||
const PClass *FlechetteType;
|
||||
|
||||
// [CW] Fades for when you are being damaged.
|
||||
|
|
|
@ -164,8 +164,8 @@ CCMD (map)
|
|||
{
|
||||
if (netgame)
|
||||
{
|
||||
Printf ("Use "TEXTCOLOR_BOLD"changemap"TEXTCOLOR_NORMAL" instead. "TEXTCOLOR_BOLD"Map"
|
||||
TEXTCOLOR_NORMAL" is for single-player only.\n");
|
||||
Printf ("Use " TEXTCOLOR_BOLD "changemap" TEXTCOLOR_NORMAL " instead. " TEXTCOLOR_BOLD "Map"
|
||||
TEXTCOLOR_NORMAL " is for single-player only.\n");
|
||||
return;
|
||||
}
|
||||
if (argv.argc() > 1)
|
||||
|
|
|
@ -112,6 +112,9 @@ FRandom pr_acs ("ACS");
|
|||
#define NOT_FLOOR 8
|
||||
#define NOT_CEILING 16
|
||||
|
||||
// LineAtack flags
|
||||
#define FHF_NORANDOMPUFFZ 1
|
||||
|
||||
// SpawnDecal flags
|
||||
#define SDF_ABSANGLE 1
|
||||
#define SDF_PERMANENT 2
|
||||
|
@ -4966,10 +4969,13 @@ int DLevelScript::CallFunction(int argCount, int funcIndex, SDWORD *args, const
|
|||
FName pufftype = argCount > 4 && args[4]? FName(FBehavior::StaticLookupString(args[4])) : NAME_BulletPuff;
|
||||
FName damagetype = argCount > 5 && args[5]? FName(FBehavior::StaticLookupString(args[5])) : NAME_None;
|
||||
fixed_t range = argCount > 6 && args[6]? args[6] : MISSILERANGE;
|
||||
int flags = argCount > 7 && args[7]? args[7] : 0;
|
||||
|
||||
int fhflags = (flags & FHF_NORANDOMPUFFZ)? LAF_NORANDOMPUFFZ : 0;
|
||||
|
||||
if (args[0] == 0)
|
||||
{
|
||||
P_LineAttack(activator, angle, range, pitch, damage, damagetype, pufftype);
|
||||
P_LineAttack(activator, angle, range, pitch, damage, damagetype, pufftype, fhflags);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -4978,7 +4984,7 @@ int DLevelScript::CallFunction(int argCount, int funcIndex, SDWORD *args, const
|
|||
|
||||
while ((source = it.Next()) != NULL)
|
||||
{
|
||||
P_LineAttack(activator, angle, range, pitch, damage, damagetype, pufftype);
|
||||
P_LineAttack(activator, angle, range, pitch, damage, damagetype, pufftype, fhflags);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -5556,7 +5562,8 @@ int DLevelScript::RunScript ()
|
|||
case PCD_PUSHFUNCTION:
|
||||
{
|
||||
int funcnum = NEXTBYTE;
|
||||
PushToStack(funcnum | activeBehavior->GetLibraryID());
|
||||
// Not technically a string, but since we use the same tagging mechanism
|
||||
PushToStack(TAGSTR(funcnum));
|
||||
break;
|
||||
}
|
||||
case PCD_CALL:
|
||||
|
@ -5572,7 +5579,7 @@ int DLevelScript::RunScript ()
|
|||
if(pcd == PCD_CALLSTACK)
|
||||
{
|
||||
funcnum = STACK(1);
|
||||
module = FBehavior::StaticGetModule(funcnum>>16);
|
||||
module = FBehavior::StaticGetModule(funcnum>>LIBRARYID_SHIFT);
|
||||
--sp;
|
||||
|
||||
funcnum &= 0xFFFF; // Clear out tag
|
||||
|
@ -8449,7 +8456,8 @@ scriptwait:
|
|||
case PCD_SAVESTRING:
|
||||
// Saves the string
|
||||
{
|
||||
PushToStack(GlobalACSStrings.AddString(work, Stack, sp));
|
||||
const int str = GlobalACSStrings.AddString(work, Stack, sp);
|
||||
PushToStack(str);
|
||||
STRINGBUILDER_FINISH(work);
|
||||
}
|
||||
break;
|
||||
|
|
|
@ -252,7 +252,7 @@ static bool LoadGLVertexes(FileReader * lump)
|
|||
// GLNodes V1 and V4 are unsupported.
|
||||
// V1 because the precision is insufficient and
|
||||
// V4 due to the missing partner segs
|
||||
Printf("GL nodes v%d found. This format is not supported by "GAMENAME"\n",
|
||||
Printf("GL nodes v%d found. This format is not supported by " GAMENAME "\n",
|
||||
(*(int *)gldata == gNd4)? 4:1);
|
||||
|
||||
delete [] gldata;
|
||||
|
|
|
@ -4359,14 +4359,17 @@ bool P_NoWayTraverse (AActor *usething, fixed_t endx, fixed_t endy)
|
|||
void P_UseLines (player_t *player)
|
||||
{
|
||||
angle_t angle;
|
||||
fixed_t x1, y1;
|
||||
fixed_t x1, y1, usedist;
|
||||
bool foundline;
|
||||
|
||||
foundline = false;
|
||||
|
||||
angle = player->mo->angle >> ANGLETOFINESHIFT;
|
||||
x1 = player->mo->x + (USERANGE>>FRACBITS)*finecosine[angle];
|
||||
y1 = player->mo->y + (USERANGE>>FRACBITS)*finesine[angle];
|
||||
usedist = player->mo->UseRange;
|
||||
|
||||
// [NS] Now queries the Player's UseRange.
|
||||
x1 = player->mo->x + FixedMul(usedist, finecosine[angle]);
|
||||
y1 = player->mo->y + FixedMul(usedist, finesine[angle]);
|
||||
|
||||
// old code:
|
||||
//
|
||||
|
@ -4398,13 +4401,20 @@ void P_UseLines (player_t *player)
|
|||
bool P_UsePuzzleItem (AActor *PuzzleItemUser, int PuzzleItemType)
|
||||
{
|
||||
int angle;
|
||||
fixed_t x1, y1, x2, y2;
|
||||
fixed_t x1, y1, x2, y2, usedist;
|
||||
|
||||
angle = PuzzleItemUser->angle>>ANGLETOFINESHIFT;
|
||||
x1 = PuzzleItemUser->x;
|
||||
y1 = PuzzleItemUser->y;
|
||||
x2 = x1+(USERANGE>>FRACBITS)*finecosine[angle];
|
||||
y2 = y1+(USERANGE>>FRACBITS)*finesine[angle];
|
||||
|
||||
// [NS] If it's a Player, get their UseRange.
|
||||
if (PuzzleItemUser->player)
|
||||
usedist = PuzzleItemUser->player->mo->UseRange;
|
||||
else
|
||||
usedist = USERANGE;
|
||||
|
||||
x2 = x1 + FixedMul(usedist, finecosine[angle]);
|
||||
y2 = y1 + FixedMul(usedist, finesine[angle]);
|
||||
|
||||
FPathTraverse it(x1, y1, x2, y2, PT_ADDLINES|PT_ADDTHINGS);
|
||||
intercept_t *in;
|
||||
|
|
|
@ -473,6 +473,10 @@ void APlayerPawn::Serialize (FArchive &arc)
|
|||
{
|
||||
arc << GruntSpeed << FallingScreamMinSpeed << FallingScreamMaxSpeed;
|
||||
}
|
||||
if (SaveVersion >= 4502)
|
||||
{
|
||||
arc << UseRange;
|
||||
}
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
|
|
|
@ -243,7 +243,7 @@ bool F7ZFile::Open(bool quiet)
|
|||
Archive = NULL;
|
||||
if (!quiet)
|
||||
{
|
||||
Printf("\n"TEXTCOLOR_RED"%s: ", Filename);
|
||||
Printf("\n" TEXTCOLOR_RED "%s: ", Filename);
|
||||
if (res == SZ_ERROR_UNSUPPORTED)
|
||||
{
|
||||
Printf("Decoder does not support this archive\n");
|
||||
|
|
|
@ -63,7 +63,7 @@ bool FPlayList::ChangeList (const char *path)
|
|||
|
||||
if ( (file = fopen (path, "rb")) == NULL)
|
||||
{
|
||||
Printf ("Could not open "TEXTCOLOR_BOLD"%s"TEXTCOLOR_NORMAL": %s\n", path, strerror(errno));
|
||||
Printf ("Could not open " TEXTCOLOR_BOLD "%s" TEXTCOLOR_NORMAL ": %s\n", path, strerror(errno));
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
@ -922,7 +922,7 @@ void STACK_ARGS FScanner::ScriptMessage (const char *message, ...)
|
|||
va_end (arglist);
|
||||
}
|
||||
|
||||
Printf (TEXTCOLOR_RED"Script error, \"%s\" line %d:\n"TEXTCOLOR_RED"%s\n", ScriptName.GetChars(),
|
||||
Printf (TEXTCOLOR_RED "Script error, \"%s\" line %d:\n" TEXTCOLOR_RED "%s\n", ScriptName.GetChars(),
|
||||
AlreadyGot? AlreadyGotLine : Line, composed.GetChars());
|
||||
}
|
||||
|
||||
|
|
|
@ -616,7 +616,7 @@ int I_PickIWad (WadStuff *wads, int numwads, bool showwin, int defaultiwad)
|
|||
const char *str;
|
||||
if((str=getenv("KDE_FULL_SESSION")) && strcmp(str, "true") == 0)
|
||||
{
|
||||
FString cmd("kdialog --title \""GAMESIG" ");
|
||||
FString cmd("kdialog --title \"" GAMESIG " ");
|
||||
cmd << GetVersionString() << ": Select an IWAD to use\""
|
||||
" --menu \"ZDoom found more than one IWAD\n"
|
||||
"Select from the list below to determine which one to use:\"";
|
||||
|
|
|
@ -732,8 +732,8 @@ bool FMODSoundRenderer::Init()
|
|||
}
|
||||
if (wrongver != NULL)
|
||||
{
|
||||
Printf (" "TEXTCOLOR_ORANGE"Error! You are using %s version of FMOD (%x.%02x.%02x).\n"
|
||||
" "TEXTCOLOR_ORANGE"This program was built for version %x.%02x.%02x\n",
|
||||
Printf (" " TEXTCOLOR_ORANGE "Error! You are using %s version of FMOD (%x.%02x.%02x).\n"
|
||||
" " TEXTCOLOR_ORANGE "This program was built for version %x.%02x.%02x\n",
|
||||
wrongver,
|
||||
version >> 16, (version >> 8) & 255, version & 255,
|
||||
FMOD_VERSION >> 16, (FMOD_VERSION >> 8) & 255, FMOD_VERSION & 255);
|
||||
|
@ -1261,15 +1261,15 @@ void FMODSoundRenderer::PrintStatus()
|
|||
unsigned int bufferlength;
|
||||
int numbuffers;
|
||||
|
||||
Printf ("Loaded FMOD version: "TEXTCOLOR_GREEN"%x.%02x.%02x\n", ActiveFMODVersion >> 16,
|
||||
Printf ("Loaded FMOD version: " TEXTCOLOR_GREEN "%x.%02x.%02x\n", ActiveFMODVersion >> 16,
|
||||
(ActiveFMODVersion >> 8) & 255, ActiveFMODVersion & 255);
|
||||
if (FMOD_OK == Sys->getOutput(&output))
|
||||
{
|
||||
Printf ("Output type: "TEXTCOLOR_GREEN"%s\n", Enum_NameForNum(OutputNames, output));
|
||||
Printf ("Output type: " TEXTCOLOR_GREEN "%s\n", Enum_NameForNum(OutputNames, output));
|
||||
}
|
||||
if (FMOD_OK == Sys->getSpeakerMode(&speakermode))
|
||||
{
|
||||
Printf ("Speaker mode: "TEXTCOLOR_GREEN"%s\n", Enum_NameForNum(SpeakerModeNames, speakermode));
|
||||
Printf ("Speaker mode: " TEXTCOLOR_GREEN "%s\n", Enum_NameForNum(SpeakerModeNames, speakermode));
|
||||
}
|
||||
if (FMOD_OK == Sys->getDriver(&driver))
|
||||
{
|
||||
|
@ -1278,19 +1278,19 @@ void FMODSoundRenderer::PrintStatus()
|
|||
{
|
||||
strcpy(name, "Unknown");
|
||||
}
|
||||
Printf ("Driver: "TEXTCOLOR_GREEN"%d"TEXTCOLOR_NORMAL" ("TEXTCOLOR_ORANGE"%s"TEXTCOLOR_NORMAL")\n", driver, name);
|
||||
Printf ("Driver: " TEXTCOLOR_GREEN "%d" TEXTCOLOR_NORMAL " (" TEXTCOLOR_ORANGE "%s" TEXTCOLOR_NORMAL ")\n", driver, name);
|
||||
DumpDriverCaps(Driver_Caps, Driver_MinFrequency, Driver_MaxFrequency);
|
||||
}
|
||||
if (FMOD_OK == Sys->getSoftwareFormat(&samplerate, &format, &numoutputchannels, NULL, &resampler, NULL))
|
||||
{
|
||||
Printf (TEXTCOLOR_LIGHTBLUE "Software mixer sample rate: "TEXTCOLOR_GREEN"%d\n", samplerate);
|
||||
Printf (TEXTCOLOR_LIGHTBLUE "Software mixer format: "TEXTCOLOR_GREEN"%s\n", Enum_NameForNum(SoundFormatNames, format));
|
||||
Printf (TEXTCOLOR_LIGHTBLUE "Software mixer channels: "TEXTCOLOR_GREEN"%d\n", numoutputchannels);
|
||||
Printf (TEXTCOLOR_LIGHTBLUE "Software mixer resampler: "TEXTCOLOR_GREEN"%s\n", Enum_NameForNum(ResamplerNames, resampler));
|
||||
Printf (TEXTCOLOR_LIGHTBLUE "Software mixer sample rate: " TEXTCOLOR_GREEN "%d\n", samplerate);
|
||||
Printf (TEXTCOLOR_LIGHTBLUE "Software mixer format: " TEXTCOLOR_GREEN "%s\n", Enum_NameForNum(SoundFormatNames, format));
|
||||
Printf (TEXTCOLOR_LIGHTBLUE "Software mixer channels: " TEXTCOLOR_GREEN "%d\n", numoutputchannels);
|
||||
Printf (TEXTCOLOR_LIGHTBLUE "Software mixer resampler: " TEXTCOLOR_GREEN "%s\n", Enum_NameForNum(ResamplerNames, resampler));
|
||||
}
|
||||
if (FMOD_OK == Sys->getDSPBufferSize(&bufferlength, &numbuffers))
|
||||
{
|
||||
Printf (TEXTCOLOR_LIGHTBLUE "DSP buffers: "TEXTCOLOR_GREEN"%u samples x %d\n", bufferlength, numbuffers);
|
||||
Printf (TEXTCOLOR_LIGHTBLUE "DSP buffers: " TEXTCOLOR_GREEN "%u samples x %d\n", bufferlength, numbuffers);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1302,8 +1302,8 @@ void FMODSoundRenderer::PrintStatus()
|
|||
|
||||
void FMODSoundRenderer::DumpDriverCaps(FMOD_CAPS caps, int minfrequency, int maxfrequency)
|
||||
{
|
||||
Printf (TEXTCOLOR_OLIVE " Min. frequency: "TEXTCOLOR_GREEN"%d\n", minfrequency);
|
||||
Printf (TEXTCOLOR_OLIVE " Max. frequency: "TEXTCOLOR_GREEN"%d\n", maxfrequency);
|
||||
Printf (TEXTCOLOR_OLIVE " Min. frequency: " TEXTCOLOR_GREEN "%d\n", minfrequency);
|
||||
Printf (TEXTCOLOR_OLIVE " Max. frequency: " TEXTCOLOR_GREEN "%d\n", maxfrequency);
|
||||
Printf (" Features:\n");
|
||||
if (caps == 0) Printf(TEXTCOLOR_OLIVE " None\n");
|
||||
if (caps & FMOD_CAPS_HARDWARE) Printf(TEXTCOLOR_OLIVE " Hardware mixing\n");
|
||||
|
@ -1318,7 +1318,7 @@ void FMODSoundRenderer::DumpDriverCaps(FMOD_CAPS caps, int minfrequency, int max
|
|||
{
|
||||
Printf("\n");
|
||||
}
|
||||
if (caps & FMOD_CAPS_REVERB_LIMITED) Printf("TEXTCOLOR_OLIVE Limited reverb\n");
|
||||
if (caps & FMOD_CAPS_REVERB_LIMITED) Printf(TEXTCOLOR_OLIVE " Limited reverb\n");
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
|
@ -1386,11 +1386,11 @@ FString FMODSoundRenderer::GatherStats()
|
|||
}
|
||||
#endif
|
||||
|
||||
out.Format ("%d channels,"TEXTCOLOR_YELLOW"%5.2f"TEXTCOLOR_NORMAL"%% CPU "
|
||||
"(DSP:"TEXTCOLOR_YELLOW"%5.2f"TEXTCOLOR_NORMAL"%% "
|
||||
"Stream:"TEXTCOLOR_YELLOW"%5.2f"TEXTCOLOR_NORMAL"%% "
|
||||
"Geometry:"TEXTCOLOR_YELLOW"%5.2f"TEXTCOLOR_NORMAL"%% "
|
||||
"Update:"TEXTCOLOR_YELLOW"%5.2f"TEXTCOLOR_NORMAL"%%)",
|
||||
out.Format ("%d channels," TEXTCOLOR_YELLOW "%5.2f" TEXTCOLOR_NORMAL "%% CPU "
|
||||
"(DSP:" TEXTCOLOR_YELLOW "%5.2f" TEXTCOLOR_NORMAL "%% "
|
||||
"Stream:" TEXTCOLOR_YELLOW "%5.2f" TEXTCOLOR_NORMAL "%% "
|
||||
"Geometry:" TEXTCOLOR_YELLOW "%5.2f" TEXTCOLOR_NORMAL "%% "
|
||||
"Update:" TEXTCOLOR_YELLOW "%5.2f" TEXTCOLOR_NORMAL "%%)",
|
||||
channels, total, dsp, stream, geometry, update);
|
||||
return out;
|
||||
}
|
||||
|
|
|
@ -620,10 +620,10 @@ FString FluidSynthMIDIDevice::GetStats()
|
|||
fluid_settings_getint(FluidSettings, "synth.polyphony", &maxpoly);
|
||||
CritSec.Leave();
|
||||
|
||||
out.Format("Voices: "TEXTCOLOR_YELLOW"%3d"TEXTCOLOR_NORMAL"/"TEXTCOLOR_ORANGE"%3d"TEXTCOLOR_NORMAL"("TEXTCOLOR_RED"%3d"TEXTCOLOR_NORMAL")"
|
||||
TEXTCOLOR_YELLOW"%6.2f"TEXTCOLOR_NORMAL"%% CPU "
|
||||
"Reverb: "TEXTCOLOR_YELLOW"%3s"TEXTCOLOR_NORMAL
|
||||
" Chorus: "TEXTCOLOR_YELLOW"%3s",
|
||||
out.Format("Voices: " TEXTCOLOR_YELLOW "%3d" TEXTCOLOR_NORMAL "/" TEXTCOLOR_ORANGE "%3d" TEXTCOLOR_NORMAL "(" TEXTCOLOR_RED "%3d" TEXTCOLOR_NORMAL ")"
|
||||
TEXTCOLOR_YELLOW "%6.2f" TEXTCOLOR_NORMAL "%% CPU "
|
||||
"Reverb: " TEXTCOLOR_YELLOW "%3s" TEXTCOLOR_NORMAL
|
||||
" Chorus: " TEXTCOLOR_YELLOW "%3s",
|
||||
voices, polyphony, maxpoly, load, reverb, chorus);
|
||||
return out;
|
||||
}
|
||||
|
|
|
@ -2410,6 +2410,15 @@ DEFINE_CLASS_PROPERTY_PREFIX(player, viewheight, F, PlayerPawn)
|
|||
defaults->ViewHeight = z;
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
//==========================================================================
|
||||
DEFINE_CLASS_PROPERTY_PREFIX(player, userange, F, PlayerPawn)
|
||||
{
|
||||
PROP_FIXED_PARM(z, 0);
|
||||
defaults->UseRange = z;
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
//==========================================================================
|
||||
|
|
|
@ -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 4501
|
||||
#define SAVEVER 4502
|
||||
|
||||
#define SAVEVERSTRINGIFY2(x) #x
|
||||
#define SAVEVERSTRINGIFY(x) SAVEVERSTRINGIFY2(x)
|
||||
|
|
|
@ -24,6 +24,7 @@ Actor PlayerPawn : Actor native
|
|||
Player.GruntSpeed 12
|
||||
Player.FallingScreamSpeed 35,40
|
||||
Player.ViewHeight 41
|
||||
Player.UseRange 64
|
||||
Player.ForwardMove 1,1
|
||||
Player.SideMove 1,1
|
||||
Player.ColorRange 0,0
|
||||
|
|
Loading…
Reference in a new issue