Fix monster blood not working.

Fix monster hitboxes not working.
This commit is contained in:
Giegue
2023-04-24 01:30:52 -03:00
parent 2cf22ab66b
commit 1d8a6768aa
2 changed files with 18 additions and 14 deletions

View File

@@ -30,8 +30,7 @@
#include "weapons.h"
#include "func_break.h"
const Vector g_vecZero = Vector(0,0,0);
Vector g_vecAttackDir;
extern DLL_GLOBAL Vector g_vecAttackDir;
entvars_t *g_pevLastInflictor;
#define HUMAN_GIB_COUNT 6
@@ -1323,32 +1322,32 @@ void CMBaseMonster :: TraceAttack( entvars_t *pevAttacker, float flDamage, Vecto
{
m_LastHitGroup = ptr->iHitgroup;
/*jlb
// do we need the hitboxes to be customizable? use vanilla HL skill.cfg for now
switch ( ptr->iHitgroup )
{
case HITGROUP_GENERIC:
break;
case HITGROUP_HEAD:
flDamage *= gSkillData.monHead;
flDamage *= 3; //gSkillData.monHead;
break;
case HITGROUP_CHEST:
flDamage *= gSkillData.monChest;
flDamage *= 1; //gSkillData.monChest;
break;
case HITGROUP_STOMACH:
flDamage *= gSkillData.monStomach;
flDamage *= 1; //gSkillData.monStomach;
break;
case HITGROUP_LEFTARM:
case HITGROUP_RIGHTARM:
flDamage *= gSkillData.monArm;
flDamage *= 1; //gSkillData.monArm;
break;
case HITGROUP_LEFTLEG:
case HITGROUP_RIGHTLEG:
flDamage *= gSkillData.monLeg;
flDamage *= 1; //gSkillData.monLeg;
break;
default:
break;
}
jlb*/
SpawnBlood(ptr->vecEndPos, BloodColor(), flDamage);// a little surface blood.
TraceBleed( flDamage, vecDir, ptr, bitsDamageType );
AddMultiDamage( pevAttacker, this->edict(), flDamage, bitsDamageType );

View File

@@ -298,7 +298,7 @@ void check_monster_hurt(edict_t *pAttacker)
vecSpot = vecSrc + gpGlobals->v_forward * distance;
// trace a line ignoring enemies body...
UTIL_TraceLine ( vecSrc, vecSpot, dont_ignore_monsters, pent, &tr );
UTIL_TraceLine ( vecSrc, vecSpot, dont_ignore_monsters, pAttacker, &tr );
damage = pent->v.fuser4 - pent->v.health;
@@ -795,7 +795,6 @@ void check_respawn(void)
}
}
DLL_GLOBAL short g_sModelIndexFireball;// holds the index for the fireball
DLL_GLOBAL short g_sModelIndexSmoke;// holds the index for the smoke cloud
DLL_GLOBAL short g_sModelIndexTinySpit;// holds the index for the spore grenade explosion
@@ -807,6 +806,11 @@ DLL_GLOBAL short g_sModelIndexLaser;// holds the index for the laser beam
DLL_GLOBAL const char *g_pModelNameLaser = "sprites/laserbeam.spr";
DLL_GLOBAL short g_sModelIndexLaserDot;// holds the index for the laser beam dot
// globals.cpp
DLL_GLOBAL const Vector g_vecZero = Vector(0, 0, 0); // null vector
DLL_GLOBAL Vector g_vecAttackDir; // attack direction
void world_precache(void)
{
g_sModelIndexFireball = PRECACHE_MODELINDEX("sprites/zerogxplode.spr");// fireball
@@ -1254,10 +1258,11 @@ int mmDispatchSpawn( edict_t *pent )
}
// free any allocated keyvalue memory
for (index = 0; index < monster_spawn_count; index++)
for (index = 0; index < MAX_MONSTERS; index++)
{
if (monster_spawnpoint[index].keyvalue)
if (monster_spawnpoint[index].keyvalue != NULL)
free(monster_spawnpoint[index].keyvalue);
monster_spawnpoint[index].keyvalue = NULL;
}
// do level initialization stuff here...