mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-29 23:33:00 +00:00
- fixed: The SaveVersion check for the USDF related changes for the current dialogue did not have the correct version number.
- fixed: All blood spawning functions checked the ALLOWPARTICLES flag on the class defaults before actor replacement instead of after. SVN r2563 (trunk)
This commit is contained in:
parent
1460b8feed
commit
96a8f1ceee
2 changed files with 15 additions and 8 deletions
13
src/actor.h
13
src/actor.h
|
@ -722,19 +722,26 @@ public:
|
||||||
|
|
||||||
const PClass *GetBloodType(int type = 0) const
|
const PClass *GetBloodType(int type = 0) const
|
||||||
{
|
{
|
||||||
|
const PClass *bloodcls;
|
||||||
if (type == 0)
|
if (type == 0)
|
||||||
{
|
{
|
||||||
return PClass::FindClass((ENamedName)GetClass()->Meta.GetMetaInt(AMETA_BloodType, NAME_Blood));
|
bloodcls = PClass::FindClass((ENamedName)GetClass()->Meta.GetMetaInt(AMETA_BloodType, NAME_Blood));
|
||||||
}
|
}
|
||||||
else if (type == 1)
|
else if (type == 1)
|
||||||
{
|
{
|
||||||
return PClass::FindClass((ENamedName)GetClass()->Meta.GetMetaInt(AMETA_BloodType2, NAME_BloodSplatter));
|
bloodcls = PClass::FindClass((ENamedName)GetClass()->Meta.GetMetaInt(AMETA_BloodType2, NAME_BloodSplatter));
|
||||||
}
|
}
|
||||||
else if (type == 2)
|
else if (type == 2)
|
||||||
{
|
{
|
||||||
return PClass::FindClass((ENamedName)GetClass()->Meta.GetMetaInt(AMETA_BloodType3, NAME_AxeBlood));
|
bloodcls = PClass::FindClass((ENamedName)GetClass()->Meta.GetMetaInt(AMETA_BloodType3, NAME_AxeBlood));
|
||||||
}
|
}
|
||||||
else return NULL;
|
else return NULL;
|
||||||
|
|
||||||
|
if (bloodcls != NULL)
|
||||||
|
{
|
||||||
|
bloodcls = bloodcls->ActorInfo->GetReplacement()->Class;
|
||||||
|
}
|
||||||
|
return bloodcls;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Calculate amount of missile damage
|
// Calculate amount of missile damage
|
||||||
|
|
|
@ -361,7 +361,7 @@ void AActor::Serialize (FArchive &arc)
|
||||||
arc << foo;
|
arc << foo;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (SaveVersion > 2500) // adjust after merging into trunk!
|
if (SaveVersion > 2560)
|
||||||
{
|
{
|
||||||
arc << ConversationRoot << Conversation;
|
arc << ConversationRoot << Conversation;
|
||||||
}
|
}
|
||||||
|
@ -4486,7 +4486,7 @@ void P_SpawnBlood (fixed_t x, fixed_t y, fixed_t z, angle_t dir, int damage, AAc
|
||||||
if (bloodcls!=NULL && bloodtype <= 1)
|
if (bloodcls!=NULL && bloodtype <= 1)
|
||||||
{
|
{
|
||||||
z += pr_spawnblood.Random2 () << 10;
|
z += pr_spawnblood.Random2 () << 10;
|
||||||
th = Spawn (bloodcls, x, y, z, ALLOW_REPLACE);
|
th = Spawn (bloodcls, x, y, z, NO_REPLACE); // GetBloodType already performed the replacement
|
||||||
th->velz = FRACUNIT*2;
|
th->velz = FRACUNIT*2;
|
||||||
th->angle = dir;
|
th->angle = dir;
|
||||||
if (gameinfo.gametype & GAME_DoomChex)
|
if (gameinfo.gametype & GAME_DoomChex)
|
||||||
|
@ -4549,7 +4549,7 @@ void P_BloodSplatter (fixed_t x, fixed_t y, fixed_t z, AActor *originator)
|
||||||
{
|
{
|
||||||
AActor *mo;
|
AActor *mo;
|
||||||
|
|
||||||
mo = Spawn(bloodcls, x, y, z, ALLOW_REPLACE);
|
mo = Spawn(bloodcls, x, y, z, NO_REPLACE); // GetBloodType already performed the replacement
|
||||||
mo->target = originator;
|
mo->target = originator;
|
||||||
mo->velx = pr_splatter.Random2 () << 10;
|
mo->velx = pr_splatter.Random2 () << 10;
|
||||||
mo->vely = pr_splatter.Random2 () << 10;
|
mo->vely = pr_splatter.Random2 () << 10;
|
||||||
|
@ -4590,7 +4590,7 @@ void P_BloodSplatter2 (fixed_t x, fixed_t y, fixed_t z, AActor *originator)
|
||||||
x += ((pr_splat()-128)<<11);
|
x += ((pr_splat()-128)<<11);
|
||||||
y += ((pr_splat()-128)<<11);
|
y += ((pr_splat()-128)<<11);
|
||||||
|
|
||||||
mo = Spawn (bloodcls, x, y, z, ALLOW_REPLACE);
|
mo = Spawn (bloodcls, x, y, z, NO_REPLACE); // GetBloodType already performed the replacement
|
||||||
mo->target = originator;
|
mo->target = originator;
|
||||||
|
|
||||||
// colorize the blood!
|
// colorize the blood!
|
||||||
|
@ -4629,7 +4629,7 @@ void P_RipperBlood (AActor *mo, AActor *bleeder)
|
||||||
if (bloodcls!=NULL && bloodtype <= 1)
|
if (bloodcls!=NULL && bloodtype <= 1)
|
||||||
{
|
{
|
||||||
AActor *th;
|
AActor *th;
|
||||||
th = Spawn (bloodcls, x, y, z, ALLOW_REPLACE);
|
th = Spawn (bloodcls, x, y, z, NO_REPLACE); // GetBloodType already performed the replacement
|
||||||
if (gameinfo.gametype == GAME_Heretic)
|
if (gameinfo.gametype == GAME_Heretic)
|
||||||
th->flags |= MF_NOGRAVITY;
|
th->flags |= MF_NOGRAVITY;
|
||||||
th->velx = mo->velx >> 1;
|
th->velx = mo->velx >> 1;
|
||||||
|
|
Loading…
Reference in a new issue