X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fmutators%2Fmutator%2Fwaypoints%2Fwaypointsprites.qc;h=5b8a213bf0bb28aa77967d316a6646a50971f2e2;hb=5df49bb174887a416ddedd01c7e7202d1ffed964;hp=dcbb65f65cd29472659141b93617b7a8182c2075;hpb=6c27fe90b0454df3dbf7b098bc554fcb5eaa75d0;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/mutators/mutator/waypoints/waypointsprites.qc b/qcsrc/common/mutators/mutator/waypoints/waypointsprites.qc index dcbb65f65..5b8a213bf 100644 --- a/qcsrc/common/mutators/mutator/waypoints/waypointsprites.qc +++ b/qcsrc/common/mutators/mutator/waypoints/waypointsprites.qc @@ -82,11 +82,7 @@ bool WaypointSprite_SendEntity(entity this, entity to, float sendflags) if (WaypointSprite_isteammate(this.owner, WaypointSprite_getviewentity(to))) { - float dt = (this.waypointsprite_helpmetime - time) / 0.1; - if (dt < 0) - dt = 0; - if (dt > 255) - dt = 255; + float dt = bound(0, (this.waypointsprite_helpmetime - time) / 0.1, 255); WriteByte(MSG_ENTITY, dt); } else @@ -552,11 +548,13 @@ void Draw_WaypointSprite(entity this) LOG_INFOF("WARNING: sprite of name %s has no color, using pink so you notice it", spriteimage); } - if (time - floor(time) > 0.5) + float health_val = GetResourceAmount(this, RESOURCE_HEALTH); + float blink_time = (health_val >= 0) ? (health_val * 10) : time; + if (blink_time - floor(blink_time) > 0.5) { if (this.helpme && time < this.helpme) a *= SPRITE_HELPME_BLINK; - else if (this.lifetime > 0) // fading out waypoints don't blink + else if (!this.lifetime) // fading out waypoints don't blink a *= spritelookupblinkvalue(this, spriteimage); } @@ -590,7 +588,7 @@ void Draw_WaypointSprite(entity this) ang += M_PI; float f1 = d.x / vid_conwidth; - float f2 = d.y / vid_conheight; + float f2 = d.y / vid_conheight; if (f1 == 0) { f1 = 0.000001; } if (f2 == 0) { f2 = 0.000001; } @@ -831,7 +829,8 @@ void WaypointSprite_UpdateSprites(entity e, entity _m1, entity _m2, entity _m3) void WaypointSprite_UpdateHealth(entity e, float f) { f = bound(0, f, e.max_health); - if (f != GetResourceAmount(e, RESOURCE_HEALTH) || e.pain_finished) + float step = e.max_health / 40; + if ((floor(f / step) != floor(GetResourceAmount(e, RESOURCE_HEALTH)) / step) || e.pain_finished) { SetResourceAmountExplicit(e, RESOURCE_HEALTH, f); e.pain_finished = 0; @@ -1101,7 +1100,7 @@ entity WaypointSprite_SpawnFixed( entity WaypointSprite_DeployFixed( entity spr, - float limited_range, + bool limited_range, entity player, vector ofs, entity icon // initial icon @@ -1133,7 +1132,7 @@ entity WaypointSprite_DeployPersonal( entity WaypointSprite_Attach( entity spr, entity player, - float limited_range, + bool limited_range, entity icon // initial icon ) { @@ -1162,8 +1161,8 @@ entity WaypointSprite_AttachCarrier( entity e = WaypointSprite_Spawn(spr, 0, 0, carrier, '0 0 64', NULL, carrier.team, carrier, waypointsprite_attachedforcarrier, false, icon); if (GetResourceAmount(carrier, RESOURCE_HEALTH)) { - WaypointSprite_UpdateMaxHealth(e, '1 0 0' * healtharmor_maxdamage(start_health, start_armorvalue, autocvar_g_balance_armor_blockpercent, DEATH_WEAPON.m_id) * 2); - WaypointSprite_UpdateHealth(e, '1 0 0' * healtharmor_maxdamage(GetResourceAmount(carrier, RESOURCE_HEALTH), GetResourceAmount(carrier, RESOURCE_ARMOR), autocvar_g_balance_armor_blockpercent, DEATH_WEAPON.m_id)); + WaypointSprite_UpdateMaxHealth(e, 2 * healtharmor_maxdamage(start_health, start_armorvalue, autocvar_g_balance_armor_blockpercent, DEATH_WEAPON.m_id).x); + WaypointSprite_UpdateHealth(e, healtharmor_maxdamage(GetResourceAmount(carrier, RESOURCE_HEALTH), GetResourceAmount(carrier, RESOURCE_ARMOR), autocvar_g_balance_armor_blockpercent, DEATH_WEAPON.m_id).x); } return e; }