X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fcl_player.qc;h=aae39ea66eccbc9e9190e1797fedcabee3e366de;hb=777dc5e23d7512c3e33576884d8d200f244d3006;hp=de1996552d6f084ef4c860f407e7862ad5147f3b;hpb=6c4f62990980e74d4a0963b7179c7c964f535398;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/cl_player.qc b/qcsrc/server/cl_player.qc index de1996552..aae39ea66 100644 --- a/qcsrc/server/cl_player.qc +++ b/qcsrc/server/cl_player.qc @@ -1,9 +1,28 @@ -.entity pusher; -.float pushltime; -.float istypefrag; +#include "cl_player.qh" +#include "_all.qh" + +#include "bot/bot.qh" +#include "cheats.qh" +#include "g_damage.qh" +#include "g_subs.qh" +#include "g_violence.qh" +#include "miscfunctions.qh" +#include "portals.qh" +#include "teamplay.qh" +#include "waypointsprites.qh" +#include "weapons/throwing.qh" +#include "command/common.qh" +#include "../common/animdecide.qh" +#include "../common/csqcmodel_settings.qh" +#include "../common/deathtypes.qh" +#include "../common/triggers/subs.qh" +#include "../common/playerstats.qh" +#include "../csqcmodellib/sv_model.qh" + +#include "weapons/weaponstats.qh" + +#include "../common/animdecide.qh" -.float CopyBody_nextthink; -.void(void) CopyBody_think; void CopyBody_Think(void) { if(self.CopyBody_nextthink && time > self.CopyBody_nextthink) @@ -92,7 +111,7 @@ void CopyBody(float keepvelocity) self.think = CopyBody_Think; // "bake" the current animation frame for clones (they don't get clientside animation) animdecide_load_if_needed(self); - animdecide_setframes(self, FALSE, frame, frame1time, frame2, frame2time); + animdecide_setframes(self, false, frame, frame1time, frame2, frame2time); self = oldself; } @@ -112,12 +131,12 @@ void player_setupanimsformodel() { // load animation info animdecide_load_if_needed(self); - animdecide_setstate(self, 0, FALSE); + animdecide_setstate(self, 0, false); } void player_anim (void) { - float deadbits = (self.anim_state & (ANIMSTATE_DEAD1 | ANIMSTATE_DEAD2)); + int deadbits = (self.anim_state & (ANIMSTATE_DEAD1 | ANIMSTATE_DEAD2)); if(self.deadflag) { if (!deadbits) { // Decide on which death animation to use. @@ -130,23 +149,23 @@ void player_anim (void) // Clear a previous death animation. deadbits = 0; } - float animbits = deadbits; + int animbits = deadbits; if(self.frozen) animbits |= ANIMSTATE_FROZEN; if(self.crouch) animbits |= ANIMSTATE_DUCK; - animdecide_setstate(self, animbits, FALSE); + animdecide_setstate(self, animbits, false); animdecide_setimplicitstate(self, (self.flags & FL_ONGROUND)); if (self.weaponentity) { updateanim(self.weaponentity); if (!self.weaponentity.animstate_override) - setanim(self.weaponentity, self.weaponentity.anim_idle, TRUE, FALSE, FALSE); + setanim(self.weaponentity, self.weaponentity.anim_idle, true, false, false); } } -void PlayerCorpseDamage (entity inflictor, entity attacker, float damage, float deathtype, vector hitloc, vector force) +void PlayerCorpseDamage (entity inflictor, entity attacker, float damage, int deathtype, vector hitloc, vector force) { float take, save; vector v; @@ -194,22 +213,10 @@ void PlayerCorpseDamage (entity inflictor, entity attacker, float damage, float self.alpha = -1; self.solid = SOLID_NOT; // restore later self.takedamage = DAMAGE_NO; // restore later - self.damagedbycontents = FALSE; + self.damagedbycontents = false; } } -// g__str: -// If 0, default is used. -// If <0, 0 is used. -// Otherwise, g_str (default value) is used. -// For consistency, negative values there are mapped to zero too. -#define GAMETYPE_DEFAULTED_SETTING(str) \ - ((gametype_setting_tmp = cvar(strcat("g_", GetGametype(), "_" #str))), \ - (gametype_setting_tmp < 0) ? 0 : \ - (gametype_setting_tmp == 0) ? max(0, autocvar_g_##str) : \ - gametype_setting_tmp) - - void calculate_player_respawn_time() { if(g_ca) @@ -297,11 +304,10 @@ void calculate_player_respawn_time() self.respawn_flags = self.respawn_flags | RESPAWN_FORCE; } -void ClientKill_Now_TeamChange(); - -void PlayerDamage (entity inflictor, entity attacker, float damage, float deathtype, vector hitloc, vector force) +void PlayerDamage (entity inflictor, entity attacker, float damage, int deathtype, vector hitloc, vector force) { - float take, save, dh, da, j; + float take, save, dh, da; + int j; vector v; float valid_damage_for_weaponstats; float excess; @@ -426,9 +432,9 @@ void PlayerDamage (entity inflictor, entity attacker, float damage, float deatht if (!self.animstate_override) { if (random() > 0.5) - animdecide_setaction(self, ANIMACTION_PAIN1, TRUE); + animdecide_setaction(self, ANIMACTION_PAIN1, true); else - animdecide_setaction(self, ANIMACTION_PAIN2, TRUE); + animdecide_setaction(self, ANIMACTION_PAIN2, true); } } @@ -497,7 +503,7 @@ void PlayerDamage (entity inflictor, entity attacker, float damage, float deatht if (self.health < 1) { float defer_ClientKill_Now_TeamChange; - defer_ClientKill_Now_TeamChange = FALSE; + defer_ClientKill_Now_TeamChange = false; if(self.alivetime) { @@ -523,7 +529,7 @@ void PlayerDamage (entity inflictor, entity attacker, float damage, float deatht remove(self.killindicator); self.killindicator = world; if(self.killindicator_teamchange) - defer_ClientKill_Now_TeamChange = TRUE; + defer_ClientKill_Now_TeamChange = true; if(self.classname == "body") if(deathtype == DEATH_KILL) @@ -538,8 +544,7 @@ void PlayerDamage (entity inflictor, entity attacker, float damage, float deatht Obituary (attacker, inflictor, self, deathtype); // increment frag counter for used weapon type - float w; - w = DEATH_WEAPONOF(deathtype); + int w = DEATH_WEAPONOF(deathtype); if(WEP_VALID(w)) if(accuracy_isgooddamage(attacker, self)) attacker.accuracy.(accuracy_frags[w-1]) += 1; @@ -556,7 +561,7 @@ void PlayerDamage (entity inflictor, entity attacker, float damage, float deatht Portal_ClearAllLater(self); - self.fixangle = TRUE; + self.fixangle = true; if(defer_ClientKill_Now_TeamChange) ClientKill_Now_TeamChange(); // can turn player into spectator @@ -600,9 +605,9 @@ void PlayerDamage (entity inflictor, entity attacker, float damage, float deatht self.death_time = time; if (random() < 0.5) - animdecide_setstate(self, self.anim_state | ANIMSTATE_DEAD1, TRUE); + animdecide_setstate(self, self.anim_state | ANIMSTATE_DEAD1, true); else - animdecide_setstate(self, self.anim_state | ANIMSTATE_DEAD2, TRUE); + animdecide_setstate(self, self.anim_state | ANIMSTATE_DEAD2, true); if (self.maxs.z > 5) { self.maxs_z = 5; @@ -638,7 +643,6 @@ void PlayerDamage (entity inflictor, entity attacker, float damage, float deatht } } -.float muted; // to be used by prvm_edictset server playernumber muted 1 float Say(entity source, float teamsay, entity privatesay, string msgin, float floodcontrol) // message "": do not say, just test flood control // return value: @@ -666,11 +670,11 @@ float Say(entity source, float teamsay, entity privatesay, string msgin, float f else { colorstr = ""; - teamsay = FALSE; + teamsay = false; } if(intermission_running) - teamsay = FALSE; + teamsay = false; if(msgin != "") msgin = trigger_magicear_processmessage_forallears(source, teamsay, privatesay, msgin); @@ -781,9 +785,9 @@ float Say(entity source, float teamsay, entity privatesay, string msgin, float f flood = 2; } - if(time >= source.flood_field) + if (time >= source.(flood_field)) { - source.flood_field = max(time - flood_burst * flood_spl, source.flood_field) + lines * flood_spl; + source.(flood_field) = max(time - flood_burst * flood_spl, source.(flood_field)) + lines * flood_spl; } else { @@ -793,14 +797,14 @@ float Say(entity source, float teamsay, entity privatesay, string msgin, float f } else { - if(time >= source.flood_field) - source.flood_field = max(time - flood_burst * flood_spl, source.flood_field) + flood_spl; + if (time >= source.(flood_field)) + source.(flood_field) = max(time - flood_burst * flood_spl, source.(flood_field)) + flood_spl; else flood = 1; } if (timeout_status == TIMEOUT_ACTIVE) // when game is paused, no flood protection - source.flood_field = flood = 0; + source.(flood_field) = flood = 0; } if(flood == 2) // cannot happen for empty msgstr @@ -845,9 +849,9 @@ float Say(entity source, float teamsay, entity privatesay, string msgin, float f } else if(flood == 1) { - if(autocvar_g_chat_flood_notify_flooder) + if (autocvar_g_chat_flood_notify_flooder) { - sprint(source, strcat("^3FLOOD CONTROL: ^7wait ^1", ftos(source.flood_field - time), "^3 seconds\n")); + sprint(source, strcat("^3FLOOD CONTROL: ^7wait ^1", ftos(source.(flood_field) - time), "^3 seconds\n")); ret = 0; } else @@ -920,7 +924,6 @@ float GetVoiceMessageVoiceType(string type) return VOICETYPE_TEAMRADIO; } -string allvoicesamples; .string GetVoiceMessageSampleField(string type) { GetPlayerSoundSampleField_notFound = 0; @@ -1018,16 +1021,14 @@ float LoadPlayerSounds(string f, float first) field = GetVoiceMessageSampleField(argv(0)); if(GetPlayerSoundSampleField_notFound) continue; - if(self.field) - strunzone(self.field); - self.field = strzone(strcat(argv(1), " ", argv(2))); + if (self.(field)) + strunzone(self.(field)); + self.(field) = strzone(strcat(argv(1), " ", argv(2))); } fclose(fh); return 1; } -.float modelindex_for_playersound; -.float skin_for_playersound; void UpdatePlayerSounds() { if(self.modelindex == self.modelindex_for_playersound) @@ -1096,7 +1097,7 @@ void FakeGlobalSound(string sample, float chan, float voicetype) case VOICETYPE_TAUNT: if(IS_PLAYER(self)) if(self.deadflag == DEAD_NO) - animdecide_setaction(self, ANIMACTION_TAUNT, TRUE); + animdecide_setaction(self, ANIMACTION_TAUNT, true); if(!sv_taunt) break; if(autocvar_sv_gentle) @@ -1193,7 +1194,7 @@ void GlobalSound(string sample, float chan, float voicetype) case VOICETYPE_TAUNT: if(IS_PLAYER(self)) if(self.deadflag == DEAD_NO) - animdecide_setaction(self, ANIMACTION_TAUNT, TRUE); + animdecide_setaction(self, ANIMACTION_TAUNT, true); if(!sv_taunt) break; if(autocvar_sv_gentle) @@ -1217,7 +1218,7 @@ void GlobalSound(string sample, float chan, float voicetype) void PlayerSound(.string samplefield, float chan, float voicetype) { - GlobalSound(self.samplefield, chan, voicetype); + GlobalSound(self.(samplefield), chan, voicetype); } void VoiceMessage(string type, string msg) @@ -1238,10 +1239,10 @@ void VoiceMessage(string type, string msg) flood = Say(self, ownteam, world, msg, 1); - if(IS_SPEC(self) || IS_OBSERVER(self) || flood < 0) - FakeGlobalSound(self.sample, CH_VOICE, voicetype); + if (IS_SPEC(self) || IS_OBSERVER(self) || flood < 0) + FakeGlobalSound(self.(sample), CH_VOICE, voicetype); else if (flood > 0) - GlobalSound(self.sample, CH_VOICE, voicetype); + GlobalSound(self.(sample), CH_VOICE, voicetype); } void MoveToTeam(entity client, float team_colour, float type)