MCPcopy Create free account
hub / github.com/assaultcube/AC / hit

Function hit

source/src/weapon.cpp:591–630  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

589vector<hitmsg> hits;
590
591void hit(int damage, playerent *d, playerent *at, const vec &vel, int gun, bool gib, int info)
592{
593 if(d==player1 || d->type==ENT_BOT || !m_mp(gamemode)) d->hitpush(damage, vel, at, gun);
594
595 if(at == player1 && d != player1)
596 {
597 extern int hitsound;
598 extern int lasthit;
599 if(hitsound == 2 && lasthit != lastmillis)
600 {
601 defformatstring(hitsnd)("sound %d %d;", S_HITSOUND, SP_HIGHEST);
602 addsleep(60, hitsnd);
603 lasthit = lastmillis;
604 }
605 }
606
607 if(!m_mp(gamemode)) dodamage(damage, d, at, gun, gib);
608 else
609 {
610 hitmsg &h = hits.add();
611 h.target = d->clientnum;
612 h.lifesequence = d->lifesequence;
613 h.info = info;
614 if(d==player1)
615 {
616 h.dir = ivec(0, 0, 0);
617 d->damageroll(damage);
618 if(d != at) updatedmgindicator(player1, at->o);
619 damageblend(damage, d);
620 damageeffect(damage, d);
621 audiomgr.playsound(S_PAIN6, SP_HIGH);
622 }
623 else
624 {
625 h.dir = ivec(int(vel.x*DNF), int(vel.y*DNF), int(vel.z*DNF));
626// damageeffect(damage, d);
627// audiomgr.playsound(S_PAIN1+rnd(5), d);
628 }
629 }
630}
631
632void hitpush(int damage, playerent *d, playerent *at, vec &from, vec &to, int gun, bool gib, int info)
633{

Callers 2

hitpushFunction · 0.85
radialeffectFunction · 0.85

Calls 10

addsleepFunction · 0.85
dodamageFunction · 0.85
ivecClass · 0.85
updatedmgindicatorFunction · 0.85
damageblendFunction · 0.85
damageeffectFunction · 0.85
hitpushMethod · 0.80
damagerollMethod · 0.80
playsoundMethod · 0.80
addMethod · 0.45

Tested by

no test coverage detected