diff --git a/docs/rh-log.txt b/docs/rh-log.txt index 3450b5e9e..382826f46 100644 --- a/docs/rh-log.txt +++ b/docs/rh-log.txt @@ -1,3 +1,10 @@ +April 30, 2007 (Changes by Graf Zahl) +- Fixed: GetLumpOffset must call SetLumpAddress when being called for uncompressed + Zip entries. +- Fixed: Some of Doom's weapon obituaries didn't have the $-prefix that indicates a + reference to the string table. +- Fixed: The check for a valid weapon's spawn state for weapon dropping was incorrect. + April 29, 2007 (Changes by Graf Zahl) - Increased precision of texture scaling factors to full fixed point. In the process I got rid of the old tx and ty CVARs because they made the texture scaling diff --git a/src/p_user.cpp b/src/p_user.cpp index 4eb3c6e4e..e81fb5dfd 100644 --- a/src/p_user.cpp +++ b/src/p_user.cpp @@ -1050,6 +1050,7 @@ void APlayerPawn::Die (AActor *source, AActor *inflictor) AInventory *item; if (weap->SpawnState != NULL && + weap->SpawnState != &AActor::States[0] && weap->SpawnState != &AActor::States[AActor::S_NULL]) { item = P_DropItem (this, weap->GetClass(), -1, 256); diff --git a/src/w_wad.cpp b/src/w_wad.cpp index 4b8f2ebde..345e22e86 100644 --- a/src/w_wad.cpp +++ b/src/w_wad.cpp @@ -990,13 +990,18 @@ int FWadCollection::LumpLength (int lump) const // //========================================================================== -int FWadCollection::GetLumpOffset (int lump) const +int FWadCollection::GetLumpOffset (int lump) { if ((size_t)lump >= NumLumps) { I_Error ("GetLumpOffset: %i >= NumLumps",lump); } + if (LumpInfo[lump].flags & LUMPF_NEEDFILESTART) + { + SetLumpAddress(&LumpInfo[lump]); + } + return LumpInfo[lump].position; } diff --git a/src/w_wad.h b/src/w_wad.h index befc91174..63d5c219d 100644 --- a/src/w_wad.h +++ b/src/w_wad.h @@ -191,7 +191,7 @@ public: static DWORD LumpNameHash (const char *name); // [RH] Create hash key from an 8-char name int LumpLength (int lump) const; - int GetLumpOffset (int lump) const; // [RH] Returns offset of lump in the wadfile + int GetLumpOffset (int lump); // [RH] Returns offset of lump in the wadfile void GetLumpName (char *to, int lump) const; // [RH] Copies the lump name to to using uppercopy const char *GetLumpFullName (int lump) const; // [RH] Returns the lump's full name int GetLumpFile (int lump) const; // [RH] Returns wadnum for a specified lump diff --git a/wadsrc/decorate/doom/doomweapons.txt b/wadsrc/decorate/doom/doomweapons.txt index 2021cfad7..a09420aae 100644 --- a/wadsrc/decorate/doom/doomweapons.txt +++ b/wadsrc/decorate/doom/doomweapons.txt @@ -142,7 +142,7 @@ ACTOR Shotgun : DoomWeapon 2001 Weapon.AmmoGive 8 Weapon.AmmoType "Shell" Inventory.PickupMessage "$GOTSHOTGUN" - Obituary "OB_MPSHOTGUN" + Obituary "$OB_MPSHOTGUN" States { Ready: @@ -188,7 +188,7 @@ ACTOR SuperShotgun : DoomWeapon 82 Weapon.AmmoGive 8 Weapon.AmmoType "Shell" Inventory.PickupMessage "$GOTSHOTGUN2" - Obituary "OB_MPSSHOTGUN" + Obituary "$OB_MPSSHOTGUN" States { Ready: @@ -241,7 +241,7 @@ ACTOR Chaingun : DoomWeapon 2002 Weapon.AmmoGive 20 Weapon.AmmoType "Clip" Inventory.PickupMessage "$GOTCHAINGUN" - Obituary "OB_MPCHAINGUN" + Obituary "$OB_MPCHAINGUN" States { Ready: