mirror of
https://github.com/ZDoom/qzdoom-gpl.git
synced 2024-11-16 09:11:17 +00:00
- Fixed: Blood sound effect namespacing was broken.
SVN r2220 (trunk)
This commit is contained in:
parent
8b98a3510e
commit
aedb646a52
2 changed files with 29 additions and 26 deletions
|
@ -56,13 +56,15 @@ struct RFFInfo
|
|||
|
||||
struct RFFLump
|
||||
{
|
||||
BYTE IDontKnow[16];
|
||||
DWORD DontKnow1[4];
|
||||
DWORD FilePos;
|
||||
DWORD Size;
|
||||
BYTE IStillDontKnow[8];
|
||||
DWORD DontKnow2;
|
||||
DWORD Time;
|
||||
BYTE Flags;
|
||||
char Extension[3];
|
||||
char Name[8+4]; // 4 bytes that I don't know what they are for
|
||||
char Name[8];
|
||||
DWORD IndexNum; // Used by .sfx, possibly others
|
||||
};
|
||||
|
||||
//==========================================================================
|
||||
|
@ -75,6 +77,8 @@ struct FRFFLump : public FUncompressedLump
|
|||
{
|
||||
virtual FileReader *GetReader();
|
||||
virtual int FillCache();
|
||||
|
||||
DWORD IndexNum;
|
||||
};
|
||||
|
||||
//==========================================================================
|
||||
|
@ -149,20 +153,6 @@ bool FRFFFile::Open(bool quiet)
|
|||
if (!quiet) Printf(", %d lumps\n", NumLumps);
|
||||
for (DWORD i = 0; i < NumLumps; ++i)
|
||||
{
|
||||
if (lumps[i].Extension[0] == 'S' && lumps[i].Extension[1] == 'F' &&
|
||||
lumps[i].Extension[2] == 'X')
|
||||
{
|
||||
Lumps[i].Namespace = ns_bloodsfx;
|
||||
}
|
||||
else if (lumps[i].Extension[0] == 'R' && lumps[i].Extension[1] == 'A' &&
|
||||
lumps[i].Extension[2] == 'W')
|
||||
{
|
||||
Lumps[i].Namespace = ns_bloodraw;
|
||||
}
|
||||
else
|
||||
{
|
||||
Lumps[i].Namespace = ns_global;
|
||||
}
|
||||
Lumps[i].Position = LittleLong(lumps[i].FilePos);
|
||||
Lumps[i].LumpSize = LittleLong(lumps[i].Size);
|
||||
Lumps[i].Owner = this;
|
||||
|
@ -170,14 +160,27 @@ bool FRFFFile::Open(bool quiet)
|
|||
{
|
||||
Lumps[i].Flags |= LUMPF_BLOODCRYPT;
|
||||
}
|
||||
// Rearrange the name and extension in a part of the lump record
|
||||
// that I don't have any use for in order to construct the fullname.
|
||||
lumps[i].Name[8] = '\0';
|
||||
strcpy ((char *)lumps[i].IDontKnow, lumps[i].Name);
|
||||
strcat ((char *)lumps[i].IDontKnow, ".");
|
||||
lumps[i].Name[0] = '\0';
|
||||
strcat ((char *)lumps[i].IDontKnow, lumps[i].Extension);
|
||||
Lumps[i].LumpNameSetup((char *)lumps[i].IDontKnow);
|
||||
Lumps[i].IndexNum = LittleLong(lumps[i].IndexNum);
|
||||
// Rearrange the name and extension to construct the fullname.
|
||||
char name[13];
|
||||
strncpy(name, lumps[i].Name, 8);
|
||||
name[8] = 0;
|
||||
size_t len = strlen(name);
|
||||
assert(len + 4 <= 12);
|
||||
name[len+0] = '.';
|
||||
name[len+1] = lumps[i].Extension[0];
|
||||
name[len+2] = lumps[i].Extension[1];
|
||||
name[len+3] = lumps[i].Extension[2];
|
||||
name[len+4] = 0;
|
||||
Lumps[i].LumpNameSetup(name);
|
||||
if (name[len+1] == 'S' && name[len+2] == 'F' && name[len+3] == 'X')
|
||||
{
|
||||
Lumps[i].Namespace = ns_bloodsfx;
|
||||
}
|
||||
else if (name[len+1] == 'R' && name[len+2] == 'A' && name[len+3] == 'W')
|
||||
{
|
||||
Lumps[i].Namespace = ns_bloodraw;
|
||||
}
|
||||
}
|
||||
delete[] lumps;
|
||||
return true;
|
||||
|
|
|
@ -1977,7 +1977,7 @@ void AAmbientSound::Tick ()
|
|||
|
||||
if (ambient->sound[0])
|
||||
{
|
||||
// The second argumens scales the ambient sound's volume.
|
||||
// The second argument scales the ambient sound's volume.
|
||||
// 0 and 128 are normal volume. The maximum volume level
|
||||
// possible is always 1.
|
||||
float volscale = args[1] == 0 ? 1 : args[1] / 128.f;
|
||||
|
|
Loading…
Reference in a new issue