From: Mircea Kitsune Date: Thu, 23 Jun 2011 11:59:26 +0000 (+0300) Subject: Merge branch 'master' into mirceakitsune/hud_postprocessing X-Git-Tag: xonotic-v0.5.0~173^2~3^2 X-Git-Url: http://git.xonotic.org/?a=commitdiff_plain;h=36f4b513fd7eac9b2dc37d393cebf3b7d98ac9af;hp=60f1e3301beae3dac0765d8ee8eb350ee21c8f30;p=xonotic%2Fxonotic-data.pk3dir.git Merge branch 'master' into mirceakitsune/hud_postprocessing --- diff --git a/csprogs.dat.de.po b/csprogs.dat.de.po index 67f8bee59..2608dcebf 100644 --- a/csprogs.dat.de.po +++ b/csprogs.dat.de.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.1preview\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-04-30 10:06+0200\n" +"POT-Creation-Date: 2011-06-21 21:25+0200\n" "PO-Revision-Date: 2011-04-20 10:46+0200\n" "Last-Translator: Rudolf Polzer \n" "Language-Team: Rudolf Polzer \n" @@ -33,54 +33,62 @@ msgstr "" msgid "^4CSQC Build information: ^1%s\n" msgstr "^4CSQC Build-Information: ^1%s (deutsch)\n" -#: qcsrc/client/Main.qc:232 qcsrc/client/Main.qc:248 +#: qcsrc/client/Main.qc:236 qcsrc/client/Main.qc:252 #, c-format msgid "trying to switch to unsupported team %d\n" msgstr "es wurde versucht, in das nicht unterstützte Team %d zu wechseln" -#: qcsrc/client/Main.qc:364 qcsrc/client/scoreboard.qc:241 +#: qcsrc/client/Main.qc:368 qcsrc/client/scoreboard.qc:241 msgid "Usage:\n" msgstr "Syntax:\n" -#: qcsrc/client/Main.qc:365 +#: qcsrc/client/Main.qc:369 msgid "hud_save configname (saves to hud_skinname_configname.cfg)\n" msgstr "hud_save configname (speichert als hud_skinname_configname.cfg)\n" -#: qcsrc/client/Main.qc:512 +#: qcsrc/client/Main.qc:493 msgid "Usage: cl_cmd COMMAND..., where possible commands are:\n" msgstr "Syntax: cl_cmd BEFEHL..., wobei mögliche Befehle sind:\n" -#: qcsrc/client/Main.qc:513 +#: qcsrc/client/Main.qc:494 msgid " settemp cvar value\n" msgstr " settemp Cvar Wert\n" -#: qcsrc/client/Main.qc:514 +#: qcsrc/client/Main.qc:495 msgid " scoreboard_columns_set ...\n" msgstr " scoreboard_columns_set ...\n" -#: qcsrc/client/Main.qc:515 +#: qcsrc/client/Main.qc:496 msgid " scoreboard_columns_help\n" msgstr " scoreboard_columns_help\n" -#: qcsrc/client/Main.qc:720 -msgid "A CSQC entity changed its owner!\n" -msgstr "Ein CSQC-Entity hat seinen Besitzer gewechselt!\n" +#: qcsrc/client/Main.qc:725 +#, c-format +msgid "A CSQC entity changed its owner! (edict: %d, classname: %s)\n" +msgstr "" +"Ein CSQC-Entity hat seinen Besitzer gewechselt! (edict: %d, classname: %s)\n" -#: qcsrc/client/Main.qc:934 -msgid "A CSQC entity changed its type!\n" -msgstr "Ein CSQC-Entity hat seinen Typ gewechselt!\n" +#: qcsrc/client/Main.qc:952 +#, c-format +msgid "A CSQC entity changed its type! (edict: %d, classname: %s)\n" +msgstr "" +"Ein CSQC-Entity hat seinen Typ gewechselt! (edict: %d, classname: %s)\n" -#: qcsrc/client/Main.qc:972 +#: qcsrc/client/Main.qc:992 #, c-format -msgid "unknown entity type in CSQC_Ent_Update: %d\n" -msgstr "unbekannter Entity-Typ in CSQC_Ent_Update: %d\n" +msgid "" +"Unknown entity type in CSQC_Ent_Update (enttype: %d, edict: %d, classname: " +"%s)\n" +msgstr "" +"Unbekannter Entity-Typ in CSQC_Ent_Update (enttype: %d, edict: %d, " +"classname: %s)\n" -#: qcsrc/client/Main.qc:1444 +#: qcsrc/client/Main.qc:1461 #, c-format msgid "%s (not bound)" msgstr "%s (nicht zugewiesen)" -#: qcsrc/client/Main.qc:1449 qcsrc/client/hud.qc:407 +#: qcsrc/client/Main.qc:1466 qcsrc/client/hud.qc:407 #, c-format msgid "%s (%s)" msgstr "%s (%s)" @@ -184,440 +192,443 @@ msgstr "Zwischenzeit %d" msgid "%s (%s %s)" msgstr "%s (%s %s)" -#: qcsrc/client/hud.qc:553 -#, c-format -msgid "^2Successfully exported to %s! (Note: It's saved in data/data/)\n" -msgstr "" -"^2Erfolgreich als %s exportiert! (Hinweis: die Datei wurde in data/data/ " -"abgelegt)\n" - -#: qcsrc/client/hud.qc:557 -#, c-format -msgid "^1Couldn't write to %s\n" -msgstr "^1Konnte nicht nach %s schreiben\n" - -#: qcsrc/client/hud.qc:1837 +#: qcsrc/client/hud.qc:911 msgid "Out of ammo" msgstr "Keine Munition mehr." -#: qcsrc/client/hud.qc:1841 +#: qcsrc/client/hud.qc:915 msgid "Don't have" msgstr "nicht vorhanden" -#: qcsrc/client/hud.qc:1845 +#: qcsrc/client/hud.qc:919 msgid "Unavailable" msgstr "nicht verfügbar" -#: qcsrc/client/hud.qc:2696 +#: qcsrc/client/hud.qc:1649 #, c-format msgid "^1%s^1 couldn't take it anymore\n" msgstr "^1%s^1 konnte es nicht mehr ertragen\n" -#: qcsrc/client/hud.qc:2700 qcsrc/client/hud.qc:2992 +#: qcsrc/client/hud.qc:1653 qcsrc/client/hud.qc:1957 #, c-format msgid "^1%s^1 died\n" msgstr "^1%s^1 ist gestorben\n" -#: qcsrc/client/hud.qc:2704 +#: qcsrc/client/hud.qc:1657 #, c-format msgid "^7%s^7 committed suicide. What's the point of living without ammo?\n" msgstr "^7%s^7 hat sich erhängt. Was ist schon ein Leben ohne Munition?\n" -#: qcsrc/client/hud.qc:2708 +#: qcsrc/client/hud.qc:1661 #, c-format msgid "^1%s^1 thought they found a nice camping ground\n" msgstr "^1%s^1 dachte, einen tollen Campingplatz gefunden zu haben\n" -#: qcsrc/client/hud.qc:2712 +#: qcsrc/client/hud.qc:1665 #, c-format msgid "^1%s^1 didn't become friends with the Lord of Teamplay\n" msgstr "^1%s^1 bekam Probleme mit dem Lord of Teamplay\n" -#: qcsrc/client/hud.qc:2716 +#: qcsrc/client/hud.qc:1669 #, c-format msgid "^1%s^1 unfairly eliminated themself\n" msgstr "^1%s^1 hat sich selbst auf unfaire Weise erledigt\n" -#: qcsrc/client/hud.qc:2720 +#: qcsrc/client/hud.qc:1673 #, c-format msgid "^1%s^1 burned to death\n" msgstr "^1%s^1 brannte zu Tode\n" -#: qcsrc/client/hud.qc:2724 +#: qcsrc/client/hud.qc:1677 #, c-format msgid "^1%s^1 couldn't resist the urge to self-destruct\n" msgstr "" "^1%s^1 konnte dem Drang zur Selbstzerstörung einfach nicht widerstehen\n" -#: qcsrc/client/hud.qc:2728 +#: qcsrc/client/hud.qc:1681 #, c-format msgid "^1%s^1 ended it all after a %d kill spree\n" msgstr "^1%s^1 machte seinem %d-Amoklauf ein Ende\n" -#: qcsrc/client/hud.qc:2745 +#: qcsrc/client/hud.qc:1698 #, c-format msgid "^1%s^1 took action against a team mate\n" msgstr "^1%s^1 ergriff Maßnahmen gegen einen Mitspieler\n" -#: qcsrc/client/hud.qc:2747 +#: qcsrc/client/hud.qc:1700 #, c-format msgid "^1%s^1 mows down a team mate\n" msgstr "^1%s^1 mähte einen Mitspieler nieder\n" -#: qcsrc/client/hud.qc:2752 +#: qcsrc/client/hud.qc:1705 #, c-format msgid "^1%s^1 ended a %d scoring spree by going against a team mate\n" msgstr "" "^1%s^1 dachte, %d Punkte hintereinander reichen, und trug dies an einem " "Mitspieler aus\n" -#: qcsrc/client/hud.qc:2754 +#: qcsrc/client/hud.qc:1707 #, c-format msgid "^1%s^1 ended a %d kill spree by killing a team mate\n" msgstr "^1%s^1 beendete seinen %d-Amoklauf, indem er einen Mitspieler tötete\n" -#: qcsrc/client/hud.qc:2758 +#: qcsrc/client/hud.qc:1711 #, c-format msgid "^1%s^1's %s scoring spree was ended by a team mate!\n" msgstr "" "^1%s^1s %s Punkte hintereinander wurden von einem Mitspieler gestört!\n" -#: qcsrc/client/hud.qc:2760 +#: qcsrc/client/hud.qc:1713 #, c-format msgid "^1%s^1's %s kill spree was ended by a team mate!\n" msgstr "^1%s^1s %s-Amoklauf wurde von einem Mitspieler beendet!\n" -#: qcsrc/client/hud.qc:2764 +#: qcsrc/client/hud.qc:1717 #, c-format msgid "^1%s^1 drew first blood\n" msgstr "^1%s^1 war der Erste\n" -#: qcsrc/client/hud.qc:2768 +#: qcsrc/client/hud.qc:1721 #, c-format msgid "^1%s^1 tried to occupy %s^1's teleport destination space\n" msgstr "^1%s^1 dachte, %s^1 am Teleportieren hindern zu können\n" -#: qcsrc/client/hud.qc:2770 +#: qcsrc/client/hud.qc:1723 #, c-format msgid "^1%s^1 was telefragged by %s\n" msgstr "^1%s^1 wurde von %s^1 telefragged\n" -#: qcsrc/client/hud.qc:2775 +#: qcsrc/client/hud.qc:1728 #, c-format msgid "^1%s^1 was drowned by %s\n" msgstr "^1%s^1 wurde von %s^1 etränkt\n" -#: qcsrc/client/hud.qc:2780 +#: qcsrc/client/hud.qc:1733 #, c-format msgid "^1%s^1 was slimed by %s\n" msgstr "^1%s^1 wurde von %s^1 im Schleim versenkt\n" -#: qcsrc/client/hud.qc:2785 +#: qcsrc/client/hud.qc:1738 #, c-format msgid "^1%s^1 was cooked by %s\n" msgstr "^1%s^1 wurde von %s^1 gebraten\n" -#: qcsrc/client/hud.qc:2790 +#: qcsrc/client/hud.qc:1743 #, c-format msgid "^1%s^1 was grounded by %s\n" msgstr "^1%s^1 wurde von %s^1 geerdet\n" -#: qcsrc/client/hud.qc:2795 +#: qcsrc/client/hud.qc:1748 #, c-format msgid "^1%s^1 was shot into space by %s\n" msgstr "^1%s^1 wurde von %s^1 ins All geschossen\n" -#: qcsrc/client/hud.qc:2800 +#: qcsrc/client/hud.qc:1753 #, c-format msgid "^1%s^1 was conserved by %s\n" msgstr "^1%s^1 wurde von %s^1 konserviert\n" -#: qcsrc/client/hud.qc:2806 +#: qcsrc/client/hud.qc:1759 #, c-format msgid "^1%s^1 was thrown into a world of hurt by %s\n" msgstr "^1%s^1 wurde von %s^1 in eine Welt des Schmerzes geworfen\n" -#: qcsrc/client/hud.qc:2810 +#: qcsrc/client/hud.qc:1763 #, c-format msgid "^1%s^1 was crushed by %s\n" msgstr "^1%s^1 wurde von %s^1 zerquetscht\n" -#: qcsrc/client/hud.qc:2814 +#: qcsrc/client/hud.qc:1767 #, c-format msgid "^1%s^1 got shredded by %s\n" msgstr "^1%s^1 wurde von %s^1 zerstückelt\n" -#: qcsrc/client/hud.qc:2818 +#: qcsrc/client/hud.qc:1771 #, c-format msgid "^1%s^1 was blasted to bits by %s\n" msgstr "^1%s^1 wurde von %s^1 in die Luft gejagt\n" -#: qcsrc/client/hud.qc:2822 +#: qcsrc/client/hud.qc:1775 #, c-format msgid "^1%s^1 got caught in the destruction of %s^1's vehicle\n" msgstr "^1%s^1 wurde von der Explosion von %s^1s Fahrzeug erwischt\n" -#: qcsrc/client/hud.qc:2826 +#: qcsrc/client/hud.qc:1779 #, c-format msgid "^1%s^1 was bolted down by %s\n" msgstr "^1%s^1 wurde von %s^1 niedergeschmettert\n" -#: qcsrc/client/hud.qc:2830 +#: qcsrc/client/hud.qc:1783 #, c-format msgid "^1%s^1 could find no shelter from %s^1's rockets\n" msgstr "^1%s^1 fand keine Deckung vor %s^1s Raketen\n" -#: qcsrc/client/hud.qc:2834 +#: qcsrc/client/hud.qc:1787 #, c-format msgid "^1%s^1 dies when %s^1's wakizashi dies.\n" msgstr "^1%s^1 starb zusammen mit %s^1's Wakizashi.\n" -#: qcsrc/client/hud.qc:2838 +#: qcsrc/client/hud.qc:1791 +#, c-format +msgid "^1%s^1 nailed to hell by %s\n" +msgstr "^1%s^1 wurde von %s^1 in die Hölle geschossen\n" + +#: qcsrc/client/hud.qc:1795 +#, c-format +msgid "^1%s^1 cluster crushed by %s\n" +msgstr "^1%s^1 wurde von %s^1 total zerstört\n" + +#: qcsrc/client/hud.qc:1799 +#, c-format +msgid "^1%s^1 dies when %s^1's raptor dies.\n" +msgstr "^1%s^1 starb zusammen mit %s^1's Raptor.\n" + +#: qcsrc/client/hud.qc:1803 #, c-format msgid "^1%s^1 was pushed into the line of fire by %s\n" msgstr "^1%s^1 wurde von %s^1 ins offene Feuer geschubst\n" -#: qcsrc/client/hud.qc:2842 +#: qcsrc/client/hud.qc:1807 #, c-format msgid "^1%s^1 was pushed into an accident by %s\n" msgstr "^1%s^1 wurde von %s^1 in einen unglücklichen Unfall geschubst\n" -#: qcsrc/client/hud.qc:2846 +#: qcsrc/client/hud.qc:1811 #, c-format msgid "^1%s^1 was unfairly eliminated by %s\n" msgstr "^1%s^1 wurde von %s auf unfaire Weise erledigt\n" -#: qcsrc/client/hud.qc:2850 +#: qcsrc/client/hud.qc:1815 #, c-format msgid "^1%s^1 was burnt to death by %s\n" msgstr "^1%s^1 wurde von %s verbrannt\n" -#: qcsrc/client/hud.qc:2862 +#: qcsrc/client/hud.qc:1827 #, c-format msgid "^1%s^1 was fragged by %s\n" msgstr "^1%s^1 wurde von %s^1 gefraggt\n" -#: qcsrc/client/hud.qc:2867 +#: qcsrc/client/hud.qc:1832 #, c-format msgid "^1%s^1's %s scoring spree was ended by %s\n" msgstr "^1%s^1's Punkte-Folge wurde von %s^1 beendet\n" -#: qcsrc/client/hud.qc:2869 +#: qcsrc/client/hud.qc:1834 #, c-format msgid "^1%s^1's %s kill spree was ended by %s\n" msgstr "^1%s^1's Kill-Spree wurde von %s^1 beendet\n" -#: qcsrc/client/hud.qc:2872 +#: qcsrc/client/hud.qc:1837 #, c-format msgid "^1%s^1 made %s scores in a row\n" msgstr "^1%s^1 machte %s Punkte hintereinander\n" -#: qcsrc/client/hud.qc:2874 +#: qcsrc/client/hud.qc:1839 #, c-format msgid "^1%s^1 has %s frags in a row\n" msgstr "^1%s^1 hat %s Frags hintereinander\n" -#: qcsrc/client/hud.qc:2877 +#: qcsrc/client/hud.qc:1842 #, c-format msgid "%s^7 made a ^1TRIPLE SCORE\n" msgstr "%s^7 hat einen ^1TRIPLE SCORE\n" -#: qcsrc/client/hud.qc:2879 +#: qcsrc/client/hud.qc:1844 #, c-format msgid "%s^7 made a ^1TRIPLE FRAG\n" msgstr "%s^7 hat einen ^1TRIPLE FRAG\n" -#: qcsrc/client/hud.qc:2882 +#: qcsrc/client/hud.qc:1847 #, c-format msgid "%s^7 unleashes ^1SCORING RAGE\n" msgstr "%s^7 hat ^1PUNKTE-RASEN\n" -#: qcsrc/client/hud.qc:2884 +#: qcsrc/client/hud.qc:1849 #, c-format msgid "%s^7 unleashes ^1RAGE\n" msgstr "%s^7 ^1RAST VOR ZORN\n" -#: qcsrc/client/hud.qc:2887 +#: qcsrc/client/hud.qc:1852 #, c-format msgid "%s^7 made ^1TEN SCORES IN A ROW!\n" msgstr "%s^7 hat ^1ZEHN PUNKTE HINTEREINANDER!\n" -#: qcsrc/client/hud.qc:2889 +#: qcsrc/client/hud.qc:1854 #, c-format msgid "%s^7 starts the ^1MASSACRE!\n" msgstr "%s^7 beginnt das ^1MASSAKER!\n" -#: qcsrc/client/hud.qc:2892 +#: qcsrc/client/hud.qc:1857 #, c-format msgid "%s^7 made ^1FIFTEEN SCORES IN A ROW!\n" msgstr "%s^7 hat ^1FÜNFZEHN PUNKTE HINTEREINANDER\n" -#: qcsrc/client/hud.qc:2894 +#: qcsrc/client/hud.qc:1859 #, c-format msgid "%s^7 executes ^1MAYHEM!\n" msgstr "%s^7 erzeugt das ^1CHAOS!\n" -#: qcsrc/client/hud.qc:2897 +#: qcsrc/client/hud.qc:1862 #, c-format msgid "%s^7 made ^1TWENTY SCORES IN A ROW!\n" msgstr "%s^7 hat ^1ZWANZIG PUNKTE HINTEREINANDER\n" -#: qcsrc/client/hud.qc:2899 +#: qcsrc/client/hud.qc:1864 #, c-format msgid "%s^7 is a ^1BERSERKER!\n" msgstr "%s^7 ist ein ^1BERSERKER!\n" -#: qcsrc/client/hud.qc:2902 +#: qcsrc/client/hud.qc:1867 #, c-format msgid "%s^7 made ^1TWENTY FIVE SCORES IN A ROW!\n" msgstr "%s^7 hat ^1FÜNFUNDZWANZIG PUNKTE HINTEREINANDER!\n" -#: qcsrc/client/hud.qc:2904 +#: qcsrc/client/hud.qc:1869 #, c-format msgid "%s^7 inflicts ^1CARNAGE!\n" msgstr "%s^7 hält ein ^1BLUTBAD!\n" -#: qcsrc/client/hud.qc:2907 +#: qcsrc/client/hud.qc:1872 #, c-format msgid "%s^7 made ^1THIRTY SCORES IN A ROW!\n" msgstr "%s^7 hat ^1DREISSIG PUNKTE HINTEREINANDER\n" -#: qcsrc/client/hud.qc:2909 +#: qcsrc/client/hud.qc:1874 #, c-format msgid "%s^7 unleashes ^1ARMAGEDDON!\n" msgstr "%s^7 lässt die ^1APOKALYPSE^7 los!\n" -#: qcsrc/client/hud.qc:2917 +#: qcsrc/client/hud.qc:1882 #, c-format msgid "^1%s^1 was in the water for too long\n" msgstr "^1%s^1 war zu lange im Wasser\n" -#: qcsrc/client/hud.qc:2919 +#: qcsrc/client/hud.qc:1884 #, c-format msgid "^1%s^1 drowned\n" msgstr "^1%s^1 ertrank\n" -#: qcsrc/client/hud.qc:2924 +#: qcsrc/client/hud.qc:1889 #, c-format msgid "^1%s^1 was slimed\n" msgstr "^1%s^1 wurde im Schleim versenkt\n" -#: qcsrc/client/hud.qc:2930 +#: qcsrc/client/hud.qc:1895 #, c-format msgid "^1%s^1 found a hot place\n" msgstr "^1%s^1 fand einen heißen Ort\n" -#: qcsrc/client/hud.qc:2932 +#: qcsrc/client/hud.qc:1897 #, c-format msgid "^1%s^1 turned into hot slag\n" msgstr "^1%s^1 verwandelte sich in heiße Schlacke\n" -#: qcsrc/client/hud.qc:2939 +#: qcsrc/client/hud.qc:1904 #, c-format msgid "^1%s^1 tested gravity (and it worked)\n" msgstr "^1%s^1 probierte die Gravitation aus (und sie funktionierte)\n" -#: qcsrc/client/hud.qc:2941 +#: qcsrc/client/hud.qc:1906 #, c-format msgid "^1%s^1 hit the ground with a crunch\n" msgstr "^1%s^1 landete mit einem Knall auf dem Boden\n" -#: qcsrc/client/hud.qc:2946 +#: qcsrc/client/hud.qc:1911 #, c-format msgid "^1%s^1 became a shooting star\n" msgstr "^1%s^1 wurde zu einer Sternschnuppe\n" -#: qcsrc/client/hud.qc:2952 +#: qcsrc/client/hud.qc:1917 #, c-format msgid "^1%s^1 discovered a swamp\n" msgstr "^1%s^1 entdeckte einen Sumpf\n" -#: qcsrc/client/hud.qc:2954 +#: qcsrc/client/hud.qc:1919 #, c-format msgid "^1%s^1 is now conserved for centuries to come\n" msgstr "^1%s^1 ist jetzt für Jahrhunderte konserviert\n" -#: qcsrc/client/hud.qc:2959 +#: qcsrc/client/hud.qc:1924 #, c-format msgid "^1%s^1 was mowed down by a turret \n" msgstr "^1%s^1 wurde von einem Turret niedergemäht\n" -#: qcsrc/client/hud.qc:2971 +#: qcsrc/client/hud.qc:1936 #, c-format msgid "^1%s^1 died in an accident\n" msgstr "^1%s^1 starb an einem Unfall\n" -#: qcsrc/client/hud.qc:2975 +#: qcsrc/client/hud.qc:1940 #, c-format msgid "^1%s^1 was unfairly eliminated\n" msgstr "^1%s^1 wurde auf unfaire Weise eliminiert\n" -#: qcsrc/client/hud.qc:2981 +#: qcsrc/client/hud.qc:1946 #, c-format msgid "^1%s^1 felt a little hot\n" msgstr "^1%s^1 fand es ein wenig zu warm\n" -#: qcsrc/client/hud.qc:2983 +#: qcsrc/client/hud.qc:1948 #, c-format msgid "^1%s^1 burnt to death\n" msgstr "^1%s^1 verbrannte\n" -#: qcsrc/client/hud.qc:2990 +#: qcsrc/client/hud.qc:1955 #, c-format msgid "^1%s^1 needs a restart\n" msgstr "^1%s^1 braucht einen Neustart\n" -#: qcsrc/client/hud.qc:2997 +#: qcsrc/client/hud.qc:1962 #, c-format msgid "^1%s^1 needs a restart after a %d scoring spree\n" msgstr "^1%s^1 braucht einen Neustart nach %d Punkten in Folge\n" -#: qcsrc/client/hud.qc:2999 +#: qcsrc/client/hud.qc:1964 #, c-format msgid "^1%s^1 died with a %d kill spree\n" msgstr "^1%s^1 starb mit einer %d-Kill-Spree\n" -#: qcsrc/client/hud.qc:3003 +#: qcsrc/client/hud.qc:1968 #, c-format msgid "%s^7 got the %s\n" msgstr "%s^7 bekam die %s\n" -#: qcsrc/client/hud.qc:3006 +#: qcsrc/client/hud.qc:1971 #, c-format msgid "%s^7 lost the %s\n" msgstr "%s^7 verlor die %s\n" -#: qcsrc/client/hud.qc:3009 +#: qcsrc/client/hud.qc:1974 #, c-format msgid "%s^7 picked up the %s\n" msgstr "%s^7 nahm sich die %s\n" -#: qcsrc/client/hud.qc:3012 +#: qcsrc/client/hud.qc:1977 #, c-format msgid "%s^7 returned the %s\n" msgstr "%s^7 brachte die %s^7 zurück\n" -#: qcsrc/client/hud.qc:3015 +#: qcsrc/client/hud.qc:1980 #, c-format msgid "%s^7 captured the %s%s\n" msgstr "%s^7 eroberte die %s%s\n" -#: qcsrc/client/hud.qc:3034 +#: qcsrc/client/hud.qc:1999 #, c-format msgid "%s^7 has picked up the ball!\n" msgstr "%s^7 hat den Ball genommen!\n" -#: qcsrc/client/hud.qc:3039 +#: qcsrc/client/hud.qc:2004 #, c-format msgid "%s^7 has dropped the ball!\n" msgstr "%s^7 hat den Ball verloren!\n" -#: qcsrc/client/hud.qc:3052 +#: qcsrc/client/hud.qc:2017 #, c-format msgid "You are now on: %s" msgstr "Du bist jetzt im: %s" -#: qcsrc/client/hud.qc:3054 +#: qcsrc/client/hud.qc:2019 #, c-format msgid "" "You have been moved into a different team to improve team balance\n" @@ -626,307 +637,327 @@ msgstr "" "Du wurdest in ein anderes Team verschoben, um Team-Balance zu verbessern.\n" "Du bist jetzt im: %s" -#: qcsrc/client/hud.qc:3057 +#: qcsrc/client/hud.qc:2022 msgid "^1Reconsider your tactics, camper!" msgstr "^1Ändere dein Verhalten, Camper!" -#: qcsrc/client/hud.qc:3059 +#: qcsrc/client/hud.qc:2024 msgid "^1Die camper!" msgstr "^1Stirb, Camper!" -#: qcsrc/client/hud.qc:3062 +#: qcsrc/client/hud.qc:2027 msgid "^1You are reinserted into the game for running out of ammo..." msgstr "" "^1Du wurdest ins Spiel neu eingesetzt, weil dir die Munition ausging..." -#: qcsrc/client/hud.qc:3064 +#: qcsrc/client/hud.qc:2029 msgid "^1You were killed for running out of ammo..." msgstr "^1Du wurdest getötet, da dir die Munition ausging..." -#: qcsrc/client/hud.qc:3067 +#: qcsrc/client/hud.qc:2032 msgid "^1You need to preserve your health" msgstr "^1Du solltest deine Gesundheit erhalten" -#: qcsrc/client/hud.qc:3069 +#: qcsrc/client/hud.qc:2034 msgid "^1You grew too old without taking your medicine" msgstr "^1Du wurdest zu alt, und hast nicht deine Medizin genommen" -#: qcsrc/client/hud.qc:3072 +#: qcsrc/client/hud.qc:2037 msgid "^1Don't go against team mates!" msgstr "^1Ärgere deine Teamkollegen nicht!" -#: qcsrc/client/hud.qc:3074 +#: qcsrc/client/hud.qc:2039 msgid "^1Don't shoot your team mates!" msgstr "^1Schieße nicht auf deine Teamkollegen!" -#: qcsrc/client/hud.qc:3079 +#: qcsrc/client/hud.qc:2044 msgid "^1You need to be more careful!" msgstr "^1Sei vorsichtiger!" -#: qcsrc/client/hud.qc:3081 +#: qcsrc/client/hud.qc:2046 msgid "^1You killed your own dumb self!" msgstr "^1Du hast dich selbst umgebracht. Wie blöd." -#: qcsrc/client/hud.qc:3086 +#: qcsrc/client/hud.qc:2051 #, c-format -msgid "^1Moron! You went against %s, a team mate!" +msgid "^1Moron! You went against ^7%s^1, a team mate!" msgstr "^1Idiot! Du hast %s getroffen, also einen Teamkollegen von dir!" -#: qcsrc/client/hud.qc:3088 +#: qcsrc/client/hud.qc:2053 #, c-format -msgid "^1Moron! You fragged %s, a team mate!" +msgid "^1Moron! You fragged ^7%s^1, a team mate!" msgstr "^1Idiot! Du hast %s getötet, also einen Teamkollegen von dir!" -#: qcsrc/client/hud.qc:3092 +#: qcsrc/client/hud.qc:2057 msgid "^1First score" msgstr "^1Erster Punkt" -#: qcsrc/client/hud.qc:3094 +#: qcsrc/client/hud.qc:2059 msgid "^1First blood" msgstr "^1Erstes Blut" -#: qcsrc/client/hud.qc:3098 +#: qcsrc/client/hud.qc:2063 msgid "^1First casualty" msgstr "^1Erster Kollateralschaden" -#: qcsrc/client/hud.qc:3100 +#: qcsrc/client/hud.qc:2065 msgid "^1First victim" msgstr "^1Erstes Opfer" -#: qcsrc/client/hud.qc:3104 +#: qcsrc/client/hud.qc:2069 #, c-format msgid "^1You scored against ^7%s^1 who was typing!" msgstr "^1Du hast gegen ^7%s^1 gepunktet, während er am Tippen war!" -#: qcsrc/client/hud.qc:3106 +#: qcsrc/client/hud.qc:2071 #, c-format msgid "^1You typefragged ^7%s" msgstr "^1Du hast ^7%s^1 beim Tippen erschossen" -#: qcsrc/client/hud.qc:3110 +#: qcsrc/client/hud.qc:2075 #, c-format msgid "^1You were scored against by ^7%s^1 while you were typing!" msgstr "^1Gegen dich hat ^7%s^1 gepunktet, während du am Tippen warst!" -#: qcsrc/client/hud.qc:3112 +#: qcsrc/client/hud.qc:2077 #, c-format msgid "^1You were typefragged by ^7%s" msgstr "^1Du wurdest von ^7%s^1 erschossen, während du am Tippen warst" -#: qcsrc/client/hud.qc:3116 +#: qcsrc/client/hud.qc:2081 #, c-format msgid "^4You scored against ^7%s" msgstr "^4Du hast gegen ^7%s^4 gepunktet" -#: qcsrc/client/hud.qc:3118 +#: qcsrc/client/hud.qc:2083 #, c-format msgid "^4You fragged ^7%s" msgstr "^4Du hast ^7%s^4 getötet" -#: qcsrc/client/hud.qc:3122 +#: qcsrc/client/hud.qc:2087 #, c-format msgid "^1You were scored against by ^7%s" msgstr "^1Gegen dich hat ^7%s^1 gepunktet" -#: qcsrc/client/hud.qc:3124 +#: qcsrc/client/hud.qc:2089 #, c-format msgid "^1You were fragged by ^7%s" msgstr "^1Du wurdest von ^7%s^1 getötet" -#: qcsrc/client/hud.qc:3129 +#: qcsrc/client/hud.qc:2094 msgid "^1Watch your step!" msgstr "^1Achte, wo du hintrittst!" -#: qcsrc/client/hud.qc:3194 qcsrc/client/hud.qc:3195 +#: qcsrc/client/hud.qc:2162 qcsrc/client/hud.qc:2163 qcsrc/client/hud.qc:2646 #, c-format msgid "Player %d" msgstr "Spieler %d" -#: qcsrc/client/hud.qc:3791 +#: qcsrc/client/hud.qc:2949 msgid "^1Intermediate 1 (+15.42)" msgstr "^1Intermediate 1 (+15.42)" -#: qcsrc/client/hud.qc:3793 qcsrc/client/hud.qc:3835 qcsrc/client/hud.qc:3876 +#: qcsrc/client/hud.qc:2951 qcsrc/client/hud.qc:2993 qcsrc/client/hud.qc:3034 #, c-format msgid "^1PENALTY: %.1f (%s)" msgstr "^1STRAFE: %.1f (%s)" -#: qcsrc/client/hud.qc:3878 +#: qcsrc/client/hud.qc:3036 #, c-format msgid "^2PENALTY: %.1f (%s)" msgstr "^2STRAFE: %.1f (%s)" -#: qcsrc/client/hud.qc:3903 +#: qcsrc/client/hud.qc:3064 +msgid "^1You must answer before entering hud configure mode\n" +msgstr "^1Du musst antworten, bevore das HUD konfiguriert werden kann\n" + +#: qcsrc/client/hud.qc:3067 msgid "^2Name ^7instead of \"^1Unregistered player^7\" in stats" msgstr "^2Name^7 statt \"^1Unregistered player^7\" in den Statistiken" -#: qcsrc/client/hud.qc:3985 +#: qcsrc/client/hud.qc:3148 msgid "A vote has been called for:" msgstr "Eine Abstimmung wurde initiiert für:" -#: qcsrc/client/hud.qc:3987 +#: qcsrc/client/hud.qc:3150 msgid "Allow servers to store and display your name?" msgstr "Erlaube Servern, deinen Namen zu speichern und später zu zeigen?" -#: qcsrc/client/hud.qc:3991 +#: qcsrc/client/hud.qc:3154 msgid "^1Configure the HUD" msgstr "^1Das HUD konfigurieren" -#: qcsrc/client/hud.qc:3995 +#: qcsrc/client/hud.qc:3158 #, c-format msgid "Yes (%s): %d" msgstr "Ja (%s): %d" -#: qcsrc/client/hud.qc:3997 +#: qcsrc/client/hud.qc:3160 #, c-format msgid "No (%s): %d" msgstr "Nein (%s): %d" -#: qcsrc/client/hud.qc:4510 qcsrc/client/hud.qc:4513 qcsrc/client/hud.qc:4515 +#: qcsrc/client/hud.qc:3667 qcsrc/client/hud.qc:3670 qcsrc/client/hud.qc:3672 msgid "Personal best" msgstr "Persönliche Bestzeit" -#: qcsrc/client/hud.qc:4528 qcsrc/client/hud.qc:4531 qcsrc/client/hud.qc:4533 +#: qcsrc/client/hud.qc:3685 qcsrc/client/hud.qc:3688 qcsrc/client/hud.qc:3690 msgid "Server best" msgstr "Server-Bestzeit" -#: qcsrc/client/hud.qc:4765 +#: qcsrc/client/hud.qc:4031 msgid "^3Player^7: This is the chat area." msgstr "^3Player^7: Das ist der Chat-Bereich." -#: qcsrc/client/hud.qc:4828 +#: qcsrc/client/hud.qc:4098 #, c-format msgid "FPS: %.*f" msgstr "FPS: %.*f" -#: qcsrc/client/hud.qc:4893 +#: qcsrc/client/hud.qc:4164 msgid "^1Observing" msgstr "^1Beobachten" -#: qcsrc/client/hud.qc:4895 +#: qcsrc/client/hud.qc:4166 #, c-format msgid "^1Spectating: ^7%s" msgstr "^1Zuschauen bei: ^7%s" -#: qcsrc/client/hud.qc:4899 +#: qcsrc/client/hud.qc:4170 #, c-format msgid "^1Press ^3%s^1 to spectate" msgstr "^1Drücke ^3%s^1, um bei jemandem zuzuschauen" -#: qcsrc/client/hud.qc:4901 +#: qcsrc/client/hud.qc:4172 #, c-format msgid "^1Press ^3%s^1 for another player" msgstr "^1Drücke ^3%s^1 für einen anderen Spieler" -#: qcsrc/client/hud.qc:4905 +#: qcsrc/client/hud.qc:4176 #, c-format msgid "^1Use ^3%s^1 or ^3%s^1 to change the speed" msgstr "^1Benutze ^3%s^1 oder ^3%s^1 zum Ändern der Geschwindigkeit" -#: qcsrc/client/hud.qc:4907 +#: qcsrc/client/hud.qc:4178 #, c-format msgid "^1Press ^3%s^1 to observe" msgstr "^1Drücke ^3%s^1 zum Beobachten" -#: qcsrc/client/hud.qc:4910 +#: qcsrc/client/hud.qc:4181 #, c-format msgid "^1Press ^3%s^1 for gamemode info" msgstr "^1Drücke ^3%s^1 für Spielmodus-Info" -#: qcsrc/client/hud.qc:4914 +#: qcsrc/client/hud.qc:4185 msgid "^1Wait for your turn to join" msgstr "^1Warte, bis du dran bist" -#: qcsrc/client/hud.qc:4920 +#: qcsrc/client/hud.qc:4191 msgid "^1Match has already begun" msgstr "^1Das Match hat bereits begonnen" -#: qcsrc/client/hud.qc:4922 +#: qcsrc/client/hud.qc:4193 msgid "^1You have no more lives left" msgstr "^1Du hast keine Leben mehr übrig" -#: qcsrc/client/hud.qc:4924 qcsrc/client/hud.qc:4927 +#: qcsrc/client/hud.qc:4195 qcsrc/client/hud.qc:4198 #, c-format msgid "^1Press ^3%s^1 to join" msgstr "^1Drücke ^3%s^1 zum Eintreten" -#: qcsrc/client/hud.qc:4935 +#: qcsrc/client/hud.qc:4206 #, c-format msgid "^1Game starts in ^3%d^1 seconds" msgstr "^1Das Spiel beginnt in ^3%d^1 Sekunden" -#: qcsrc/client/hud.qc:4942 +#: qcsrc/client/hud.qc:4213 msgid "^2Currently in ^1warmup^2 stage!" msgstr "^2Momentan in der ^1Aufwärmphase!" -#: qcsrc/client/hud.qc:4957 +#: qcsrc/client/hud.qc:4228 #, c-format msgid "%sPress ^3%s%s to end warmup" msgstr "%sDrücke ^3%s%s um die Aufwärmphase zu beenden" -#: qcsrc/client/hud.qc:4959 +#: qcsrc/client/hud.qc:4230 #, c-format msgid "%sPress ^3%s%s once you are ready" msgstr "%sDrücke ^3%s%s sobald du soweit bist" -#: qcsrc/client/hud.qc:4964 +#: qcsrc/client/hud.qc:4235 msgid "^2Waiting for others to ready up to end warmup..." msgstr "^2Warte, bis andere bereit sind, um die Aufwärmphase zu beenden" -#: qcsrc/client/hud.qc:4966 +#: qcsrc/client/hud.qc:4237 msgid "^2Waiting for others to ready up..." msgstr "^2Warte, bis andere bereit sind..." -#: qcsrc/client/hud.qc:4972 +#: qcsrc/client/hud.qc:4243 #, c-format msgid "^2Press ^3%s^2 to end warmup" msgstr "^2Drücke ^3%s^2 um die Aufwärmphase zu beenden" -#: qcsrc/client/hud.qc:4993 +#: qcsrc/client/hud.qc:4264 msgid "Teamnumbers are unbalanced!" msgstr "Die Teams sind unbalanciert!" -#: qcsrc/client/hud.qc:4998 +#: qcsrc/client/hud.qc:4269 #, c-format msgid " Press ^3%s%s to adjust" msgstr "Drücke ^3%s%s um dies zu korrigieren" -#: qcsrc/client/hud.qc:5006 +#: qcsrc/client/hud.qc:4277 msgid "^7Press ^3ESC ^7to show HUD options." msgstr "^7Drücke ^3ESC^7 um die HUD-Optionen zu zeigen" -#: qcsrc/client/hud.qc:5008 +#: qcsrc/client/hud.qc:4279 msgid "^3Doubleclick ^7a panel for panel-specific options." msgstr "^3Doppelklick^7 auf ein Panel für Panel-spezifische Optionen." -#: qcsrc/client/hud.qc:5010 +#: qcsrc/client/hud.qc:4281 msgid "^3CTRL ^7to disable collision testing, ^3SHIFT ^7and" msgstr "^3CTRL^7 um Kollisionstests zu deaktivieren, ^3SHIFT^7 und" -#: qcsrc/client/hud.qc:5012 +#: qcsrc/client/hud.qc:4283 msgid "^3ALT ^7+ ^3ARROW KEYS ^7for fine adjustments." msgstr "^3ALT^7 + ^3PFEILTASTEN^7 für Feinjustierungen" -#: qcsrc/client/hud.qc:5037 +#: qcsrc/client/hud.qc:4319 msgid " qu/s" msgstr "qu/s" -#: qcsrc/client/hud.qc:5041 +#: qcsrc/client/hud.qc:4323 msgid " m/s" msgstr "m/s" -#: qcsrc/client/hud.qc:5045 +#: qcsrc/client/hud.qc:4327 msgid " km/h" msgstr "km/h" -#: qcsrc/client/hud.qc:5049 +#: qcsrc/client/hud.qc:4331 msgid " mph" msgstr "mph" -#: qcsrc/client/hud.qc:5053 +#: qcsrc/client/hud.qc:4335 msgid " knots" msgstr "Knoten" +#: qcsrc/client/hud.qc:4686 +msgid "Automatically fixed wrong/missing panel numbers in _hud_panelorder\n" +msgstr "Falsche Panel-Nummern in _hud_panelorder wurden automatisch behoben" + +#: qcsrc/client/hud_config.qc:132 +#, c-format +msgid "^2Successfully exported to %s! (Note: It's saved in data/data/)\n" +msgstr "" +"^2Erfolgreich als %s exportiert! (Hinweis: die Datei wurde in data/data/ " +"abgelegt)\n" + +#: qcsrc/client/hud_config.qc:136 +#, c-format +msgid "^1Couldn't write to %s\n" +msgstr "^1Konnte nicht nach %s schreiben\n" + #: qcsrc/client/mapvoting.qc:28 msgid " (1 vote)" msgstr "(1 Stimme)" @@ -994,6 +1025,18 @@ msgstr "Du hast die %s!" msgid "Trying to remove a team which is not in the teamlist!" msgstr "Versuchte, ein Team zu löschen, das nicht in der Teamliste ist!" +#: qcsrc/client/movetypes.qc:159 +#, c-format +msgid "Can't unstick an entity (edict: %d, classname: %s, origin: %s)\n" +msgstr "" +"Kann ein Objekt nicht befreien (edict: %d, classname: %s, origin: %s)\n" + +#: qcsrc/client/movetypes.qc:162 +#, c-format +msgid "Sucessfully unstuck an entity (edict: %d, classname: %s, origin: %s)\n" +msgstr "" +"Ein Objekt wurde erfolgreich befreit (edict: %d, classname: %s, origin: %s)\n" + #: qcsrc/client/scoreboard.qc:19 msgid "SCO^bckills" msgstr "BC getötet" @@ -1334,68 +1377,68 @@ msgstr "Fehlendes Feld '%s' wurde ergänzt.\n" msgid "N/A" msgstr "-" -#: qcsrc/client/scoreboard.qc:951 +#: qcsrc/client/scoreboard.qc:949 #, c-format msgid "Accuracy stats (average %d%%)" msgstr "Genauigkeit (Durchschn.: %d%%)" -#: qcsrc/client/scoreboard.qc:1016 +#: qcsrc/client/scoreboard.qc:1014 #, c-format msgid "%d%%" msgstr "%d%%" -#: qcsrc/client/scoreboard.qc:1076 +#: qcsrc/client/scoreboard.qc:1074 msgid "Rankings" msgstr "Platzierungen" -#: qcsrc/client/scoreboard.qc:1167 qcsrc/client/scoreboard.qc:1169 +#: qcsrc/client/scoreboard.qc:1165 qcsrc/client/scoreboard.qc:1167 msgid "Scoreboard" msgstr "Tabelle" -#: qcsrc/client/scoreboard.qc:1210 +#: qcsrc/client/scoreboard.qc:1208 #, c-format msgid "Speed award: %d ^7(%s^7)" msgstr "Höchstgeschwindigkeit: %d ^7(%s^7)" -#: qcsrc/client/scoreboard.qc:1214 +#: qcsrc/client/scoreboard.qc:1212 #, c-format msgid "All-time fastest: %d ^7(%s^7)" msgstr "Rekord: %d ^7(%s^7)" -#: qcsrc/client/scoreboard.qc:1241 qcsrc/client/teamplay.qc:55 +#: qcsrc/client/scoreboard.qc:1239 qcsrc/client/teamplay.qc:63 msgid "Spectators" msgstr "Zuschauer" -#: qcsrc/client/scoreboard.qc:1248 +#: qcsrc/client/scoreboard.qc:1246 #, c-format msgid "playing on ^2%s^7" msgstr "es wird auf ^2%s^7 gespielt" -#: qcsrc/client/scoreboard.qc:1255 qcsrc/client/scoreboard.qc:1260 +#: qcsrc/client/scoreboard.qc:1253 qcsrc/client/scoreboard.qc:1258 #, c-format msgid " for up to ^1%1.0f minutes^7" msgstr " für bis zu ^1%.1f Minuten^7" -#: qcsrc/client/scoreboard.qc:1264 qcsrc/client/scoreboard.qc:1283 +#: qcsrc/client/scoreboard.qc:1262 qcsrc/client/scoreboard.qc:1281 msgid " or" msgstr " oder" -#: qcsrc/client/scoreboard.qc:1267 qcsrc/client/scoreboard.qc:1274 +#: qcsrc/client/scoreboard.qc:1265 qcsrc/client/scoreboard.qc:1272 #, c-format msgid " until ^3%s %s^7" msgstr " bis ^3%s %s^7" -#: qcsrc/client/scoreboard.qc:1268 qcsrc/client/scoreboard.qc:1275 -#: qcsrc/client/scoreboard.qc:1287 qcsrc/client/scoreboard.qc:1294 +#: qcsrc/client/scoreboard.qc:1266 qcsrc/client/scoreboard.qc:1273 +#: qcsrc/client/scoreboard.qc:1285 qcsrc/client/scoreboard.qc:1292 msgid "SCO^points" msgstr "Punkte" -#: qcsrc/client/scoreboard.qc:1269 qcsrc/client/scoreboard.qc:1276 -#: qcsrc/client/scoreboard.qc:1288 qcsrc/client/scoreboard.qc:1295 +#: qcsrc/client/scoreboard.qc:1267 qcsrc/client/scoreboard.qc:1274 +#: qcsrc/client/scoreboard.qc:1286 qcsrc/client/scoreboard.qc:1293 msgid "SCO^is beaten" msgstr "geschlagen wird" -#: qcsrc/client/scoreboard.qc:1286 qcsrc/client/scoreboard.qc:1293 +#: qcsrc/client/scoreboard.qc:1284 qcsrc/client/scoreboard.qc:1291 #, c-format msgid " until a lead of ^3%s %s^7" msgstr " bis zu einem Vorsprung von ^3%s %s^7" @@ -1405,26 +1448,224 @@ msgstr " bis zu einem Vorsprung von ^3%s %s^7" msgid "Cannot initialize sound %s\n" msgstr "Kann Sound %s nicht initialisieren\n" -#: qcsrc/client/teamplay.qc:56 +#: qcsrc/client/teamplay.qc:64 msgid "Red Team" msgstr "Rotes Team" -#: qcsrc/client/teamplay.qc:57 +#: qcsrc/client/teamplay.qc:65 msgid "Blue Team" msgstr "Blaues Team" -#: qcsrc/client/teamplay.qc:58 +#: qcsrc/client/teamplay.qc:66 msgid "Yellow Team" msgstr "Gelbes Team" -#: qcsrc/client/teamplay.qc:59 +#: qcsrc/client/teamplay.qc:67 msgid "Pink Team" msgstr "Pinkes Team" -#: qcsrc/server/w_crylink.qc:2 +#: qcsrc/client/waypointsprites.qc:234 +msgid "Push" +msgstr "Drücken" + +#: qcsrc/client/waypointsprites.qc:235 +msgid "Destroy" +msgstr "Zerstören" + +#: qcsrc/client/waypointsprites.qc:236 +msgid "Defend" +msgstr "Verteidigen" + +#: qcsrc/client/waypointsprites.qc:237 +msgid "Blue base" +msgstr "Blaue Basis" + +#: qcsrc/client/waypointsprites.qc:238 +msgid "DANGER" +msgstr "GEFAHR" + +#: qcsrc/client/waypointsprites.qc:239 +msgid "Flag carrier" +msgstr "Flaggenträger" + +#: qcsrc/client/waypointsprites.qc:240 +msgid "Dropped flag" +msgstr "Flagge" + +#: qcsrc/client/waypointsprites.qc:241 +msgid "Help me!" +msgstr "Hilfe!" + +#: qcsrc/client/waypointsprites.qc:242 +msgid "Here" +msgstr "Hier" + +#: qcsrc/client/waypointsprites.qc:243 +msgid "Dropped key" +msgstr "Schlüssel" + +#: qcsrc/client/waypointsprites.qc:244 qcsrc/client/waypointsprites.qc:246 +#: qcsrc/client/waypointsprites.qc:247 qcsrc/client/waypointsprites.qc:248 +#: qcsrc/client/waypointsprites.qc:249 +msgid "Key carrier" +msgstr "Schlüsselträger" + +#: qcsrc/client/waypointsprites.qc:245 +msgid "Run here" +msgstr "Hier her!" + +#: qcsrc/client/waypointsprites.qc:250 +msgid "Red base" +msgstr "Rote Basis" + +#: qcsrc/client/waypointsprites.qc:251 +msgid "Waypoint" +msgstr "Wegpunkt" + +#: qcsrc/client/waypointsprites.qc:252 qcsrc/client/waypointsprites.qc:253 +#: qcsrc/client/waypointsprites.qc:254 +msgid "Generator" +msgstr "Generator" + +#: qcsrc/client/waypointsprites.qc:255 qcsrc/client/waypointsprites.qc:256 +#: qcsrc/client/waypointsprites.qc:257 qcsrc/client/waypointsprites.qc:258 +#: qcsrc/client/waypointsprites.qc:259 qcsrc/client/waypointsprites.qc:260 +#: qcsrc/client/waypointsprites.qc:261 qcsrc/client/waypointsprites.qc:262 +#: qcsrc/client/waypointsprites.qc:285 qcsrc/client/waypointsprites.qc:286 +#: qcsrc/client/waypointsprites.qc:287 qcsrc/client/waypointsprites.qc:288 +#: qcsrc/client/waypointsprites.qc:289 +msgid "Control point" +msgstr "Kontrollpunkt" + +#: qcsrc/client/waypointsprites.qc:263 +msgid "Checkpoint" +msgstr "Checkpoint" + +#: qcsrc/client/waypointsprites.qc:264 +msgid "Finish" +msgstr "Ziel" + +#: qcsrc/client/waypointsprites.qc:265 +msgid "Start" +msgstr "Start" + +#: qcsrc/client/waypointsprites.qc:266 qcsrc/client/waypointsprites.qc:267 +msgid "Ball" +msgstr "Ball" + +#: qcsrc/client/waypointsprites.qc:268 +msgid "Ball carrier" +msgstr "Ballbesitzer" + +#: qcsrc/client/waypointsprites.qc:269 qcsrc/server/w_laser.qc:2 +msgid "Laser" +msgstr "Laser" + +#: qcsrc/client/waypointsprites.qc:270 qcsrc/server/w_shotgun.qc:2 +msgid "Shotgun" +msgstr "Shotgun" + +#: qcsrc/client/waypointsprites.qc:271 qcsrc/server/w_uzi.qc:2 +msgid "Machine Gun" +msgstr "Machine Gun" + +#: qcsrc/client/waypointsprites.qc:272 qcsrc/server/w_grenadelauncher.qc:2 +msgid "Mortar" +msgstr "Mortar" + +#: qcsrc/client/waypointsprites.qc:273 qcsrc/server/w_electro.qc:2 +msgid "Electro" +msgstr "Electro" + +#: qcsrc/client/waypointsprites.qc:274 qcsrc/server/w_crylink.qc:2 msgid "Crylink" msgstr "Crylink" +#: qcsrc/client/waypointsprites.qc:275 qcsrc/server/w_nex.qc:2 +msgid "Nex" +msgstr "Nex" + +#: qcsrc/client/waypointsprites.qc:276 qcsrc/server/w_hagar.qc:2 +msgid "Hagar" +msgstr "Hagar" + +#: qcsrc/client/waypointsprites.qc:277 qcsrc/server/w_rocketlauncher.qc:2 +msgid "Rocket Launcher" +msgstr "Rocket Launcher" + +#: qcsrc/client/waypointsprites.qc:278 qcsrc/server/w_porto.qc:2 +msgid "Port-O-Launch" +msgstr "Port-O-Launch" + +#: qcsrc/client/waypointsprites.qc:279 +msgid "Minstanex" +msgstr "MinstaNex" + +#: qcsrc/client/waypointsprites.qc:280 +msgid "Hook" +msgstr "Hook" + +#: qcsrc/client/waypointsprites.qc:281 qcsrc/server/w_fireball.qc:2 +msgid "Fireball" +msgstr "Fireball" + +#: qcsrc/client/waypointsprites.qc:282 +msgid "HLAC" +msgstr "HLAC" + +#: qcsrc/client/waypointsprites.qc:283 qcsrc/server/w_rifle.qc:2 +msgid "Rifle" +msgstr "Gewehr" + +#: qcsrc/client/waypointsprites.qc:284 qcsrc/server/w_minelayer.qc:2 +msgid "Mine Layer" +msgstr "Mine Layer" + +#: qcsrc/client/waypointsprites.qc:290 +msgid "Invisibility" +msgstr "Unsichtbarkeit" + +#: qcsrc/client/waypointsprites.qc:291 +msgid "Extra life" +msgstr "Extraleben" + +#: qcsrc/client/waypointsprites.qc:292 +msgid "Speed" +msgstr "Geschwindigkeit" + +#: qcsrc/client/waypointsprites.qc:293 +msgid "Strength" +msgstr "Stärke" + +#: qcsrc/client/waypointsprites.qc:294 +msgid "Shield" +msgstr "Schutzschild" + +#: qcsrc/client/waypointsprites.qc:295 +msgid "Fuel regen" +msgstr "Treibstoff-Regeneration" + +#: qcsrc/client/waypointsprites.qc:296 +msgid "Jet Pack" +msgstr "Jetpack" + +#: qcsrc/client/waypointsprites.qc:297 +msgid "Frozen!" +msgstr "Eingefroren!" + +#: qcsrc/client/waypointsprites.qc:298 +msgid "Tagged" +msgstr "Getaggt!" + +#: qcsrc/client/waypointsprites.qc:299 +msgid "Vehicle" +msgstr "Fahrzeug" + +#: qcsrc/client/waypointsprites.qc:560 +#, c-format +msgid "%s needing help!" +msgstr "%s braucht Hilfe!" + #: qcsrc/server/w_crylink.qc:664 #, c-format msgid "%s succeeded at self-destructing themself with the Crylink" @@ -1445,10 +1686,6 @@ msgstr "%s trat %ss Crylink zu nahe" msgid "%s took a close look at %s's Crylink" msgstr "%s schaute sich %ss Crylink sehr genau an" -#: qcsrc/server/w_electro.qc:2 -msgid "Electro" -msgstr "Electro" - #: qcsrc/server/w_electro.qc:571 #, c-format msgid "%s could not remember where they put plasma" @@ -1484,10 +1721,6 @@ msgstr "%s kam zu nah an %ss blauen Strahl" msgid "%s was blasted by %s's blue beam" msgstr "%s wurde von %ss blauen Strahl erwischt" -#: qcsrc/server/w_fireball.qc:2 -msgid "Fireball" -msgstr "Fireball" - #: qcsrc/server/w_fireball.qc:417 #, c-format msgid "%s forgot about some firemine" @@ -1528,50 +1761,42 @@ msgstr "%s ist %ss Feuerball zu nahe getreten" msgid "%s tasted %s's fireball" msgstr "%s hat von %ss Feuerball probiert" -#: qcsrc/server/w_grenadelauncher.qc:2 -msgid "Mortar" -msgstr "Mortar" - -#: qcsrc/server/w_grenadelauncher.qc:378 +#: qcsrc/server/w_grenadelauncher.qc:379 #, c-format msgid "%s tried out his own grenade" msgstr "%s wollte wissen, ob seine Granate funktioniert" -#: qcsrc/server/w_grenadelauncher.qc:380 +#: qcsrc/server/w_grenadelauncher.qc:381 #, c-format msgid "%s detonated" msgstr "%s verfing sich in der eigenen Detonation" -#: qcsrc/server/w_grenadelauncher.qc:386 +#: qcsrc/server/w_grenadelauncher.qc:387 #, c-format msgid "%s didn't see %s's grenade" msgstr "%s hat %ss Granate nicht gesehen" -#: qcsrc/server/w_grenadelauncher.qc:388 +#: qcsrc/server/w_grenadelauncher.qc:389 #, c-format msgid "%s almost dodged %s's grenade" msgstr "%s ist fast %ss Granate ausgewichen" -#: qcsrc/server/w_grenadelauncher.qc:390 +#: qcsrc/server/w_grenadelauncher.qc:391 #, c-format msgid "%s ate %s's grenade" msgstr "%s nahm %ss Granate in den Mund" -#: qcsrc/server/w_hagar.qc:2 -msgid "Hagar" -msgstr "Hagar" - -#: qcsrc/server/w_hagar.qc:209 qcsrc/server/w_seeker.qc:655 +#: qcsrc/server/w_hagar.qc:382 qcsrc/server/w_seeker.qc:655 #, c-format msgid "%s played with tiny rockets" msgstr "%s hat mit kleinen Raketen gespielt" -#: qcsrc/server/w_hagar.qc:213 +#: qcsrc/server/w_hagar.qc:386 #, c-format msgid "%s hoped %s's missiles wouldn't bounce" msgstr "%s hat gehofft, dass %ss Raketen nicht von Wänden abprallen" -#: qcsrc/server/w_hagar.qc:215 qcsrc/server/w_seeker.qc:661 +#: qcsrc/server/w_hagar.qc:388 qcsrc/server/w_seeker.qc:661 #, c-format msgid "%s was pummeled by %s" msgstr "^1%s^1 wurde von %s^1 erwischt" @@ -1590,7 +1815,7 @@ msgid "Grappling Hook" msgstr "Grappling Hook" #: qcsrc/server/w_hook.qc:266 qcsrc/server/w_minstanex.qc:290 -#: qcsrc/server/w_nex.qc:267 qcsrc/server/w_porto.qc:296 +#: qcsrc/server/w_nex.qc:253 qcsrc/server/w_porto.qc:296 #: qcsrc/server/w_shotgun.qc:203 qcsrc/server/w_uzi.qc:317 #, c-format msgid "%s did the impossible" @@ -1601,10 +1826,6 @@ msgstr "%s hat das Unmögliche geschafft" msgid "%s has run into %s's gravity bomb" msgstr "%s ist in %ss Gravitationsbombe reingelaufen" -#: qcsrc/server/w_laser.qc:2 -msgid "Laser" -msgstr "Laser" - #: qcsrc/server/w_laser.qc:305 #, c-format msgid "%s lasered themself to hell" @@ -1620,26 +1841,22 @@ msgstr "%s ist von %ss Gauntlet halbiert worden" msgid "%s was lasered to death by %s" msgstr "^1%s^1 wurde von %s^1 zu Tode gelasert" -#: qcsrc/server/w_minelayer.qc:2 -msgid "Mine Layer" -msgstr "Mine Layer" - -#: qcsrc/server/w_minelayer.qc:495 qcsrc/server/w_rocketlauncher.qc:500 +#: qcsrc/server/w_minelayer.qc:522 qcsrc/server/w_rocketlauncher.qc:501 #, c-format msgid "%s exploded" msgstr "%s ist explodiert" -#: qcsrc/server/w_minelayer.qc:499 +#: qcsrc/server/w_minelayer.qc:526 #, c-format msgid "%s got too close to %s's mine" msgstr "%s ist %ss Mine zu nahe getreten" -#: qcsrc/server/w_minelayer.qc:501 +#: qcsrc/server/w_minelayer.qc:528 #, c-format msgid "%s almost dodged %s's mine" msgstr "%s ist fast %ss Mine ausgewichen" -#: qcsrc/server/w_minelayer.qc:503 +#: qcsrc/server/w_minelayer.qc:530 #, c-format msgid "%s stepped on %s's mine" msgstr "%s ist auf %ss Mine gelatscht" @@ -1648,39 +1865,62 @@ msgstr "%s ist auf %ss Mine gelatscht" msgid "MinstaNex" msgstr "MinstaNex" -#: qcsrc/server/w_minstanex.qc:292 qcsrc/server/w_nex.qc:269 +#: qcsrc/server/w_minstanex.qc:292 qcsrc/server/w_nex.qc:255 #, c-format msgid "%s has been vaporized by %s" msgstr "^1%s^1 wurde von %s^1 vernichtet" -#: qcsrc/server/w_nex.qc:2 -msgid "Nex" -msgstr "Nex" - -#: qcsrc/server/w_porto.qc:2 -msgid "Port-O-Launch" -msgstr "Port-O-Launch" - #: qcsrc/server/w_porto.qc:298 #, c-format msgid "%s felt %s doing the impossible to him" msgstr "%s hat gespürt, wie %s das Unmögliche für ihn getan hat" -#: qcsrc/server/w_rocketlauncher.qc:2 -msgid "Rocket Launcher" -msgstr "Rocket Launcher" +#: qcsrc/server/w_rifle.qc:233 +#, c-format +msgid "%s shot themself automatically" +msgstr "%s hat sich vollautomatisch selbst erschossen" + +#: qcsrc/server/w_rifle.qc:235 +#, c-format +msgid "%s sniped themself somehow" +msgstr "%s hat so scharf geschossen, dass er sich selbst getroffen hat" + +#: qcsrc/server/w_rifle.qc:242 +#, c-format +msgid "%s failed to hide from %s's bullet hail" +msgstr "%s hat es nicht geschafft, sich vor %ss Kugelhagel zu verstecken" + +#: qcsrc/server/w_rifle.qc:244 +#, c-format +msgid "%s died in %s's bullet hail" +msgstr "%s ist in %ss Kugelhagel gefallen" + +#: qcsrc/server/w_rifle.qc:251 +#, c-format +msgid "%s failed to hide from %s's rifle" +msgstr "%s hat es nicht geschafft, sich vor %ss Gewehr zu verstecken" -#: qcsrc/server/w_rocketlauncher.qc:504 +#: qcsrc/server/w_rifle.qc:256 +#, c-format +msgid "%s got hit in the head by %s" +msgstr "%s hat ein Loch im Kopf bekommen; schuld war %s" + +#: qcsrc/server/w_rifle.qc:258 qcsrc/server/w_uzi.qc:321 +#, c-format +msgid "%s was sniped by %s" +msgstr "^1%s^1 wurde von %s^1 erledigt" + +#: qcsrc/server/w_rocketlauncher.qc:505 #, c-format msgid "%s got too close to %s's rocket" msgstr "%s ist %ss Rakete zu nahe getreten" -#: qcsrc/server/w_rocketlauncher.qc:506 +#: qcsrc/server/w_rocketlauncher.qc:507 #, c-format msgid "%s almost dodged %s's rocket" msgstr "%s ist fast %ss Rakete ausgewichen" -#: qcsrc/server/w_rocketlauncher.qc:508 +#: qcsrc/server/w_rocketlauncher.qc:509 #, c-format msgid "%s ate %s's rocket" msgstr "%s hat %ss Rakete in den Mund genommen" @@ -1694,10 +1934,6 @@ msgstr "T.A.G. Seeker" msgid "%s was tagged by %s" msgstr "^1%s^1 wurde von %s^1 getagged" -#: qcsrc/server/w_shotgun.qc:2 -msgid "Shotgun" -msgstr "Shotgun" - #: qcsrc/server/w_shotgun.qc:207 #, c-format msgid "%2$s ^7slapped %1$s ^7around a bit with a large ^2shotgun" @@ -1708,45 +1944,6 @@ msgstr "%2$1s ^7hat %1$s ^7ein wenig mit einer großen Schrotflinte geschlagen" msgid "%s was gunned by %s" msgstr "^1%s^1 wurde von %s^1 erschossen" -#: qcsrc/server/w_rifle.qc:2 -msgid "Sniper Rifle" -msgstr "Sniper Rifle" - -#: qcsrc/server/w_rifle.qc:229 -#, c-format -msgid "%s shot themself automatically" -msgstr "%s hat sich vollautomatisch selbst erschossen" - -#: qcsrc/server/w_rifle.qc:231 -#, c-format -msgid "%s sniped themself somehow" -msgstr "%s hat so scharf geschossen, dass er sich selbst getroffen hat" - -#: qcsrc/server/w_rifle.qc:238 -#, c-format -msgid "%s failed to hide from %s's bullet hail" -msgstr "%s hat es nicht geschafft, sich vor %ss Kugelhagel zu verstecken" - -#: qcsrc/server/w_rifle.qc:240 -#, c-format -msgid "%s died in %s's bullet hail" -msgstr "%s ist in %ss Kugelhagel gefallen" - -#: qcsrc/server/w_rifle.qc:247 -#, c-format -msgid "%s failed to hide from %s's rifle" -msgstr "%s hat es nicht geschafft, sich vor %ss Gewehr zu verstecken" - -#: qcsrc/server/w_rifle.qc:252 -#, c-format -msgid "%s got hit in the head by %s" -msgstr "%s hat ein Loch im Kopf bekommen; schuld war %s" - -#: qcsrc/server/w_rifle.qc:254 qcsrc/server/w_uzi.qc:321 -#, c-format -msgid "%s was sniped by %s" -msgstr "^1%s^1 wurde von %s^1 erledigt" - #: qcsrc/server/w_tuba.qc:2 #, c-format msgid "@!#%'n Tuba" @@ -1765,11 +1962,25 @@ msgstr "" "%s ist an seinen Ohrenschmerzen, die von %ss großartigem Spiel auf der @!#" "%%'n Tuba stammten, gestorben" -#: qcsrc/server/w_uzi.qc:2 -msgid "Machine Gun" -msgstr "Machine Gun" - #: qcsrc/server/w_uzi.qc:323 #, c-format msgid "%s was riddled full of holes by %s" msgstr "%s ist von %s durchlöchert worden wie ein Schweizer Käse" + +#~ msgid "Sniper Rifle" +#~ msgstr "Sniper Rifle" + +#~ msgid "^1Moron! You fragged %s, a team mate!" +#~ msgstr "^1Idiot! Du hast %s getötet, also einen Teamkollegen von dir!" + +#~ msgid "^1Moron! You went against %s, a team mate!" +#~ msgstr "^1Idiot! Du hast %s getroffen, also einen Teamkollegen von dir!" + +#~ msgid "unknown entity type in CSQC_Ent_Update: %d\n" +#~ msgstr "unbekannter Entity-Typ in CSQC_Ent_Update: %d\n" + +#~ msgid "A CSQC entity changed its type!\n" +#~ msgstr "Ein CSQC-Entity hat seinen Typ gewechselt!\n" + +#~ msgid "A CSQC entity changed its owner!\n" +#~ msgstr "Ein CSQC-Entity hat seinen Besitzer gewechselt!\n" diff --git a/csprogs.dat.it.po b/csprogs.dat.it.po index 8b6a9c2d9..4fe6d29ef 100644 --- a/csprogs.dat.it.po +++ b/csprogs.dat.it.po @@ -13,12 +13,12 @@ msgstr "" #: qcsrc/client/mapvoting.qc:28 msgid " (1 vote)" -msgstr "(1 voto)" +msgstr " (1 voto)" #: qcsrc/client/mapvoting.qc:30 #, c-format msgid " (%d votes)" -msgstr "(%d voti)" +msgstr " (%d voti)" #: qcsrc/client/mapvoting.qc:113 msgid "Don't care" @@ -26,7 +26,7 @@ msgstr "Non t'importa" #: qcsrc/client/mapvoting.qc:194 msgid "Vote for a map" -msgstr "Vota per uan mappa" +msgstr "Vota per una mappa" #: qcsrc/client/mapvoting.qc:199 #, c-format @@ -43,19 +43,19 @@ msgstr "^1Errore:^7 Impossibile trovare il pak index.\n" #: qcsrc/client/mapvoting.qc:282 msgid "Requesting preview...\n" -msgstr "Richiedendo anteprima...\n" +msgstr "Richiedendo l'anteprima...\n" #: qcsrc/client/Main.qc:30 msgid "ERROR - MENU IS VISIBLE BUT NO MENU WAS DEFINED!" -msgstr "ERRORE - IL MENU E' VISIBILE MA NESSUN MENO E' STATO DEFINITO!" +msgstr "ERRORE - IL MENU E' VISIBILE MA NESSUN MENU E' STATO DEFINITO!" #: qcsrc/client/Main.qc:56 msgid "" "^3Your engine build is outdated\n" "^3This Server uses a newer QC VM. Please update!\n" msgstr "" -"^3La tua build del motore è vecchia\n" -"^3Questo server usa un nuovo QC VM. Per favore aggiorna!\n" +"^3La tua versione del motore logico è vecchia\n" +"^3Questo server usa un nuovo QC VM. Per favore aggiornalo!\n" #: qcsrc/client/Main.qc:66 #, c-format @@ -66,7 +66,7 @@ msgstr "^4Informazioni sulla build CSQC: ^1%s\n" #: qcsrc/client/Main.qc:248 #, c-format msgid "trying to switch to unsupported team %d\n" -msgstr "tentando di passare al team non supporato %d\n" +msgstr "tentando di passare al team non supportato %d\n" #: qcsrc/client/Main.qc:364 #: qcsrc/client/scoreboard.qc:241 @@ -172,7 +172,7 @@ msgstr "%s (%s %s)" #: qcsrc/client/hud.qc:553 #, c-format msgid "^2Successfully exported to %s! (Note: It's saved in data/data/)\n" -msgstr "^2Esportato con successo in %s (nota: E' salvato in data/data/)\n" +msgstr "^2Esportato con successo in %s! (nota: E' salvato in data/data/)\n" #: qcsrc/client/hud.qc:557 #, c-format @@ -189,7 +189,7 @@ msgstr "Non a disposizione" #: qcsrc/client/hud.qc:1845 msgid "Unavailable" -msgstr "Non disponibili" +msgstr "Non disponibile" #: qcsrc/client/hud.qc:2696 #, c-format @@ -215,7 +215,7 @@ msgstr "^1%s^1 pensavano di trovare un bel campeggio\n" #: qcsrc/client/hud.qc:2712 #, c-format msgid "^1%s^1 didn't become friends with the Lord of Teamplay\n" -msgstr "^1%s^1 non sono diventato amici con il Signore del Teamplay\n" +msgstr "^1%s^1 non sono diventati amici con il Signore del Teamplay\n" #: qcsrc/client/hud.qc:2716 #, c-format @@ -235,7 +235,7 @@ msgstr "^1%s^1 non ha resistito alla tentazione di autodistruggersi\n" #: qcsrc/client/hud.qc:2728 #, c-format msgid "^1%s^1 ended it all after a %d kill spree\n" -msgstr "^1%s^1 ha fatto in modo di concludere la serie di %d uccisioni\n" +msgstr "^1%s^1 ha fatto in modo di concludere una serie di %d uccisioni\n" #: qcsrc/client/hud.qc:2745 #, c-format @@ -260,12 +260,12 @@ msgstr "^1%s^1 ha concluso una serie di %d uccisioni per aver ammazzato un compa #: qcsrc/client/hud.qc:2758 #, c-format msgid "^1%s^1's %s scoring spree was ended by a team mate!\n" -msgstr "^1La serie di %s^1 di %s^1 punti è stata conclusa da un compagno di squadra!\n" +msgstr "^1La serie di ^1%s^1 di ^1%s^1 punti è stata conclusa da un compagno di squadra!\n" #: qcsrc/client/hud.qc:2760 #, c-format msgid "^1%s^1's %s kill spree was ended by a team mate!\n" -msgstr "^1La serie di %s ^1di %s^1uccisioni è stata conclusa da un compagno di squadra!\n" +msgstr "^1La serie di ^1%s ^1di ^1%s ^1uccisioni è stata conclusa da un compagno di squadra!\n" #: qcsrc/client/hud.qc:2764 #, c-format @@ -380,12 +380,12 @@ msgstr "^1%s^1 è stato fraggato da %s\n" #: qcsrc/client/hud.qc:2867 #, c-format msgid "^1%s^1's %s scoring spree was ended by %s\n" -msgstr "^1La serie di %s ^1 di ^%s^1 punti è stata conclusa da %s\n" +msgstr "^1La serie di ^1%s ^1 di ^1%s^1 punti è stata conclusa da %s\n" #: qcsrc/client/hud.qc:2869 #, c-format msgid "^1%s^1's %s kill spree was ended by %s\n" -msgstr "^1La serie di %s ^1 di ^%s^1 uccisioni è stata conclusa da %s\n" +msgstr "^1La serie di %s ^1 di ^1%s^1 uccisioni è stata conclusa da %s\n" #: qcsrc/client/hud.qc:2872 #, c-format @@ -470,12 +470,12 @@ msgstr "%s^7 scatena un ^1ARMAGEDDON!\n" #: qcsrc/client/hud.qc:2917 #, c-format msgid "^1%s^1 was in the water for too long\n" -msgstr "^1%s^1 è stato nell'acqua per troppo tempo\n" +msgstr "^1%s^1 è stato in acqua per troppo tempo\n" #: qcsrc/client/hud.qc:2919 #, c-format msgid "^1%s^1 drowned\n" -msgstr "^1%s^1 è affogato\n" +msgstr "^1%s^1 è annegato\n" #: qcsrc/client/hud.qc:2924 #, c-format @@ -500,7 +500,7 @@ msgstr "^1%s^1 ha testato la gravità (e ha funzionato)\n" #: qcsrc/client/hud.qc:2941 #, c-format msgid "^1%s^1 hit the ground with a crunch\n" -msgstr "^1%s^1 ha fatto scricchilare il terreno\n" +msgstr "^1%s^1 ha fatto scricchiolare il terreno\n" #: qcsrc/client/hud.qc:2946 #, c-format @@ -570,12 +570,12 @@ msgstr "%s^7 ha perso la %s\n" #: qcsrc/client/hud.qc:3009 #, c-format msgid "%s^7 picked up the %s\n" -msgstr "%s^7 ha raccolto il %s\n" +msgstr "%s^7 ha raccolto la %s\n" #: qcsrc/client/hud.qc:3012 #, c-format msgid "%s^7 returned the %s\n" -msgstr "%s^7 ha restituito il %s\n" +msgstr "%s^7 ha fatto ritornare la %s\n" #: qcsrc/client/hud.qc:3015 #, c-format @@ -662,11 +662,11 @@ msgstr "^1Primo punto" #: qcsrc/client/hud.qc:3094 msgid "^1First blood" -msgstr "^1Primo ferito" +msgstr "^1Primo colpo" #: qcsrc/client/hud.qc:3098 msgid "^1First casualty" -msgstr "^1Prima vittima" +msgstr "^1Primo ferito" #: qcsrc/client/hud.qc:3100 msgid "^1First victim" @@ -797,12 +797,12 @@ msgstr "^1Assistendo: ^7%s" #: qcsrc/client/hud.qc:4899 #, c-format msgid "^1Press ^3%s^1 to spectate" -msgstr "^1Premere ^3%s^1 per assistere" +msgstr "^1Premi ^3%s^1 per assistere" #: qcsrc/client/hud.qc:4901 #, c-format msgid "^1Press ^3%s^1 for another player" -msgstr "^1Premere ^3%s^1 per un altro giocatore" +msgstr "^1Premi ^3%s^1 per un altro giocatore" #: qcsrc/client/hud.qc:4905 #, c-format @@ -812,12 +812,12 @@ msgstr "^1Usa ^3%s^1 o ^3%s^1 per cambiare velocità" #: qcsrc/client/hud.qc:4907 #, c-format msgid "^1Press ^3%s^1 to observe" -msgstr "^1Premere ^3%s^1 per osservare" +msgstr "^1Premi ^3%s^1 per osservare" #: qcsrc/client/hud.qc:4910 #, c-format msgid "^1Press ^3%s^1 for gamemode info" -msgstr "^1Premere ^3%s^1 per le informazioni sulla modalità di gioco" +msgstr "^1Premi ^3%s^1 per le informazioni sulla modalità di gioco" #: qcsrc/client/hud.qc:4914 msgid "^1Wait for your turn to join" @@ -884,7 +884,7 @@ msgstr "^7Premi ^3ESC ^7per mostrare le opzioni dello HUD" #: qcsrc/client/hud.qc:5008 msgid "^3Doubleclick ^7a panel for panel-specific options." -msgstr "^3Fai doppio-click ^7su un pannello per le sue specifiche opzioni " +msgstr "^7Fai ^3doppio-click ^7su un pannello per le sue specifiche opzioni " #: qcsrc/client/hud.qc:5010 msgid "^3CTRL ^7to disable collision testing, ^3SHIFT ^7and" @@ -912,7 +912,7 @@ msgstr " mph" #: qcsrc/client/hud.qc:5053 msgid " knots" -msgstr "nodi" +msgstr " nodi" #: qcsrc/client/scoreboard.qc:19 msgid "SCO^bckills" @@ -1000,7 +1000,7 @@ msgstr "" #: qcsrc/client/scoreboard.qc:40 msgid "SCO^pickups" -msgstr "SCO^raccolti" +msgstr "SCO^raccolte" #: qcsrc/client/scoreboard.qc:41 msgid "SCO^ping" @@ -1056,11 +1056,11 @@ msgstr "^2scoreboard_columns_set prefedinito\n" #: qcsrc/client/scoreboard.qc:243 msgid "^2scoreboard_columns_set ^7filed1 field2 ...\n" -msgstr "^2scoreboard_columns_set ^7campo1 campo2...\n" +msgstr "^2scoreboard_columns_set ^7campo1 campo2 ...\n" #: qcsrc/client/scoreboard.qc:244 msgid "The following field names are recognized (case insensitive):\n" -msgstr "I seguenti campi dei nomi sono riconosciuti (non case-sensitive):\n" +msgstr "I seguenti nomi dei campi sono riconosciuti (non case-sensitive):\n" #: qcsrc/client/scoreboard.qc:245 msgid "" @@ -1084,7 +1084,7 @@ msgstr "^3pl^7 Pacchetti persi\n" #: qcsrc/client/scoreboard.qc:250 msgid "^3kills^7 Number of kills\n" -msgstr "^3uccisioni^7 Number of kills\n" +msgstr "^3uccisioni^7 Numero di uccisioni\n" #: qcsrc/client/scoreboard.qc:251 msgid "^3deaths^7 Number of deaths\n" @@ -1104,11 +1104,11 @@ msgstr "^3kd^7 Rapporto uccisioni-morti\n" #: qcsrc/client/scoreboard.qc:255 msgid "^3caps^7 How often a flag (CTF) or a key (KeyHunt) was captured\n" -msgstr "^3caps^7 Per quante volte una bandiera (CTF) o una chiave (KeyHunt) è stata catturata\n" +msgstr "^3catture^7 Per quante volte una bandiera (CTF) o una chiave (KeyHunt) è stata catturata\n" #: qcsrc/client/scoreboard.qc:256 msgid "^3pickups^7 How often a flag (CTF) or a key (KeyHunt) or a ball (Keepaway) was picked up\n" -msgstr "^3raccolti^7 Per quante volte una bandiera (CTF) o una chiave (KeyHunt) o una palla (Keepaway) viene raccolta\n" +msgstr "^3raccolte^7 Per quante volte una bandiera (CTF) o una chiave (KeyHunt) o una palla (Keepaway) viene raccolta\n" #: qcsrc/client/scoreboard.qc:257 msgid "^3fckills^7 Number of flag carrier kills\n" @@ -1233,7 +1233,7 @@ msgstr "riparato campo mancante '%s'\n" #: qcsrc/client/scoreboard.qc:515 #: qcsrc/client/scoreboard.qc:522 msgid "N/A" -msgstr "N/A" +msgstr "N/D" #: qcsrc/client/scoreboard.qc:951 #, c-format @@ -1252,12 +1252,12 @@ msgstr "Posizioni" #: qcsrc/client/scoreboard.qc:1167 #: qcsrc/client/scoreboard.qc:1169 msgid "Scoreboard" -msgstr "Scoreboard" +msgstr "Tabella dei punteggi" #: qcsrc/client/scoreboard.qc:1210 #, c-format msgid "Speed award: %d ^7(%s^7)" -msgstr "Speed award: %d ^7(%s^7)" +msgstr "Velocità migliore: %d ^7(%s^7)" #: qcsrc/client/scoreboard.qc:1214 #, c-format @@ -1367,7 +1367,7 @@ msgstr "ESC) Esci dal menu" #: qcsrc/client/ctf.qc:126 #, c-format msgid "Couldn't find player %d\n" -msgstr "Impossibile trovarre giocatore %d\n" +msgstr "Impossibile trovare il giocatore %d\n" #: qcsrc/client/ctf.qc:154 msgid "----- Command Menu -----" @@ -1470,7 +1470,7 @@ msgstr "Nex" #: qcsrc/server/w_hook.qc:266 #, c-format msgid "%s did the impossible" -msgstr "%s fa l'impossibile" +msgstr "%s ha fatto l'impossibile" #: qcsrc/server/w_nex.qc:269 #: qcsrc/server/w_minstanex.qc:292 @@ -1533,7 +1533,7 @@ msgstr "" #: qcsrc/server/w_rifle.qc:229 #, c-format msgid "%s shot themself automatically" -msgstr "%s si è sparato da solo automaticamente" +msgstr "%s si è sparato automaticamente" #: qcsrc/server/w_rifle.qc:231 #, c-format @@ -1581,7 +1581,7 @@ msgstr "%s ha giocato col plasma" #: qcsrc/server/w_electro.qc:580 #, c-format msgid "%s just noticed %s's blue ball" -msgstr "%s ha appena notato la palla blu di %s" +msgstr "%s aveva appena notato la palla blu di %s" #: qcsrc/server/w_electro.qc:582 #, c-format @@ -1646,7 +1646,7 @@ msgstr "%s ha sperato che il missile di %s non rimbalzasse" #: qcsrc/server/w_seeker.qc:661 #, c-format msgid "%s was pummeled by %s" -msgstr "%s è stato preso a pugni da %s" +msgstr "%s è stato riempito di sberle da %s" #: qcsrc/server/w_crylink.qc:2 msgid "Crylink" diff --git a/defaultXonotic.cfg b/defaultXonotic.cfg index 07bc72d9e..f0d35483f 100644 --- a/defaultXonotic.cfg +++ b/defaultXonotic.cfg @@ -1229,6 +1229,7 @@ set g_nick_flood_penalty 0.5 "duration of the nick flood penalty" set g_nick_flood_penalty_yellow 3 "number of changes to allow before warning and movement blocking" set g_nick_flood_penalty_red 30 "number of changes to allow before totally disorienting the player" +seta g_waypointsprite_uppercase 1 set g_waypointsprite_normdistance 512 set g_waypointsprite_minscale 0.5 set g_waypointsprite_minalpha 0.4 @@ -1239,6 +1240,7 @@ set g_waypointsprite_deadlifetime 1 set g_waypointsprite_limitedrange 5120 set g_waypointsprite_stuffbinds 0 seta g_waypointsprite_scale 1 +seta g_waypointsprite_fontsize 12 seta g_waypointsprite_alpha 1 "This allows the client to control transparency of the waypoint" seta g_waypointsprite_edgefadealpha 0.5 "alpha multiplier near the edge" seta g_waypointsprite_edgefadescale 1 "scale multiplier near the edge" @@ -2136,7 +2138,7 @@ set snd_soundradius 1200 scr_loadingscreen_background 0 scr_loadingscreen_barcolor "0 0.5 1" scr_loadingscreen_barheight 12 -scr_loadingscreen_count 12 +scr_loadingscreen_count 13 scr_loadingscreen_scale 999 scr_loadingscreen_scale_base 1 scr_loadingscreen_scale_limit 2 diff --git a/effectinfo.txt b/effectinfo.txt index e2b476ce8..bf631fb25 100644 --- a/effectinfo.txt +++ b/effectinfo.txt @@ -5257,3 +5257,1153 @@ airfriction 5 originjitter 1 1 1 velocityjitter 100 100 100 velocitymultiplier -0.31 + +// --------------- vehicles + +effect spiderbot_minigun_trail +notunderwater +trailspacing 10 +type smoke +color 0xd0d0a0 0xffffff +tex 0 8 +size 1 2 +alpha 20 50 100 +sizeincrease 2 +velocityjitter 5 5 5 +gravity -0.03 +airfriction 1 + +effect spiderbot_minigun_muzzleflash +count 3 +type spark +color 0xff9c00 0xff8400 +tex 48 55 +size 10 15 +alpha 256 512 6280 +airfriction 10 +originjitter 2 2 2 +velocityjitter 150 150 150 +velocitymultiplier 0.35 +sizeincrease -100 +stretchfactor 1.3 +rotate -180 180 4000 -4000 +// fire +effect spiderbot_minigun_muzzleflash +count 6 +type spark +color 0xff9c00 0xff8400 +tex 8 15 +size 5 7 +alpha 256 512 6280 +airfriction 12 +originjitter 2 2 2 +velocityjitter 200 200 200 +velocitymultiplier 0.2 +sizeincrease -10 +stretchfactor 0.8 +effect spiderbot_minigun_muzzleflash +countabsolute 2 +type static +tex 48 55 +color 0xff9c00 0xff8400 +size 32 32 +alpha 256 512 6680 +sizeincrease -100 +stretchfactor 0.1 +rotate -180 180 4000 -4000 +lightradius 120 +lightradiusfade 8000 +lightcolor 3 3 0 + +effect spiderbot_minigun_impact +countabsolute 1 +type static +tex 65 65 +color 0xff9c00 0xf6ff00 +size 52 52 +alpha 50 100 1680 +sizeincrease -100 +stretchfactor 0.1 +rotate -180 180 4000 -4000 +// fire +effect spiderbot_minigun_impact +count 7 +type spark +color 0xff9c00 0xff8400 +tex 48 55 +size 9 15 +alpha 256 512 6280 +airfriction 10 +originjitter 2 2 2 +velocityjitter 250 250 150 +velocitymultiplier 0.2 +sizeincrease 100 +stretchfactor 3 +airfriction 6 +rotate -180 180 4000 -4000 +// smoke +effect spiderbot_minigun_impact +count 6 +type smoke +color 0xd0d0a0 0xffffff +tex 0 8 +size 10 20 +alpha 50 50 190 +sizeincrease 80 +velocityjitter 100 100 250 +velocitymultiplier 0.49 +gravity 1.3 +airfriction 10 +rotate -180 180 0 0 +// smoke 2 +effect spiderbot_minigun_impact +count 7 +type spark +color 0xd0d0a0 0xffffff +tex 0 8 +size 15 19 +alpha 25 51 128 +airfriction 6 +originjitter 2 2 2 +velocityjitter 250 250 150 +velocitymultiplier 0.2 +sizeincrease 100 +stretchfactor 7.6 +// derbis +effect spiderbot_minigun_impact +notunderwater +count 3 +type alphastatic +tex 66 68 +color 0x99977D 0xFFFFFF +size 6 8 +alpha 644 756 1484 +gravity 1.1 +airfriction 0.4 +sizeincrease -10 +velocitymultiplier 0.15 +originjitter 16 16 16 +velocityjitter 124 124 224 +rotate -180 180 -1000 1000 +// decal +effect spiderbot_minigun_impact +countabsolute 1 +type decal +tex 56 59 +size 20 25 +alpha 256 256 0 +originjitter 16 16 16 +rotate -180 180 0 0 + +effect spiderbot_rocket_explode +countabsolute 1 +type decal +tex 8 16 +size 72 72 +alpha 256 256 0 +originjitter 23 23 23 +lightradius 300 +lightradiusfade 1750 +lightcolor 8 4 0 +// shockwave +effect spiderbot_rocket_explode +countabsolute 1 +type static +tex 33 33 +size 22 22 +alpha 56 56 230 +color 0x8f0d00 0xff5a00 +sizeincrease 2400 +// glow +effect spiderbot_rocket_explode +countabsolute 1 +type static +tex 64 64 +size 120 120 +alpha 156 156 830 +color 0x8f0d00 0xff5a00 +sizeincrease 240 +// fire effect +effect spiderbot_rocket_explode +notunderwater +count 32 +type static +tex 48 55 +color 0x8f0d00 0xff5a00 +size 12 21 +sizeincrease 495 +alpha 200 256 812 +airfriction 8 +liquidfriction 8 +originjitter 100 100 100 +velocityjitter 512 512 512 +rotate -180 180 -50 50 +// fire effect 2 +effect spiderbot_rocket_explode +notunderwater +count 16 +type spark +tex 48 55 +color 0x8f0d00 0xff5a00 +size 3 3 +sizeincrease 120 +alpha 200 256 912 +airfriction -2 +liquidfriction 8 +velocityjitter 412 412 412 +rotate -180 180 -150 150 +stretchfactor 10 +// fire rays +effect spiderbot_rocket_explode +notunderwater +count 10 +type spark +tex 48 55 +color 0x8f0d00 0xff5a00 +size 13 54 +sizeincrease 120 +alpha 200 256 1600 +airfriction -3 +liquidfriction 8 +originjitter 40 40 40 +velocityjitter 712 712 712 +stretchfactor 10 +// smoke +effect spiderbot_rocket_explode +type alphastatic +notunderwater +tex 0 8 +count 10 +size 10 15 +sizeincrease 280 +alpha 300 650 756 +originjitter 100 100 100 +velocityjitter 200 200 200 +airfriction 3 +color 0x4F4B46 0x000000 +rotate -180 180 -20 20 +// smoke2 +effect spiderbot_rocket_explode +type alphastatic +notunderwater +tex 0 8 +count 3 +size 100 150 +sizeincrease 30 +alpha 300 650 556 +originjitter 10 10 10 +velocityjitter 200 200 200 +airfriction 2 +gravity -0.5 +color 0x4F4B46 0x000000 +rotate -180 180 -20 20 +// underwater bubbles +effect spiderbot_rocket_explode +underwater +count 32 +type bubble +tex 62 62 +color 0x404040 0x808080 +size 1 3 +alpha 128 256 64 +gravity -0.125 +bounce 1.5 +liquidfriction 0.25 +originjitter 160 160 160 +velocityjitter 144 144 144 +// underwatershockwave +effect spiderbot_rocket_explode +underwater +type smoke +countabsolute 1 +tex 33 33 +size 30 30 +sizeincrease 1200 +alpha 40 40 300 + + +effect spiderbot_rocket_thrust +notunderwater +count 3 +type spark +tex 48 55 +color 0x8f0d00 0xff5a00 +size 5 10 +sizeincrease -40 +alpha 200 256 1600 +velocityjitter 20 20 20 +velocitymultiplier -1.4 +stretchfactor 0.9 +effect spiderbot_rocket_thrust +notunderwater +count 4 +type static +tex 48 55 +color 0x8f0d00 0xff5a00 +size 25 25 +sizeincrease -3000 +alpha 200 200 9000 +velocityjitter 60 60 60 +velocitymultiplier -1.4 +stretchfactor 1 +rotate -180 180 -500 500 + + + +// long lasting smoke +effect spiderbot_rocket_launch +notunderwater +count 8 +type smoke +tex 0 8 +color 0xFFFFFF 0xD9C4B0 +size 30 30 +sizeincrease 20 +alpha 100 156 60 +velocityjitter 60 60 60 +velocitymultiplier -0.1 +airfriction 0.3 +gravity -0.01 +// fast smoke +effect spiderbot_rocket_launch +notunderwater +count 14 +type smoke +tex 0 8 +color 0xFFFFFF 0xD9C4B0 +size 30 30 +sizeincrease 20 +alpha 100 156 260 +gravity -0.3 +velocityjitter 160 160 60 +airfriction 0.3 +// fire +effect spiderbot_rocket_launch +notunderwater +count 14 +type spark +tex 48 55 +color 0x8f0d00 0xff5a00 +size 30 30 +sizeincrease 40 +velocitymultiplier 0.5 +alpha 200 256 1960 +velocityjitter 60 60 60 +airfriction 0.3 +stretchfactor 3 +airfriction 0.3 +//sparks +effect spiderbot_rocket_launch +notunderwater +count 10 +type spark +tex 40 40 +color 0xFFFFFF 0xD9C4B0 +size 1 4 +alpha 200 256 1000 +velocityjitter 160 160 160 +velocitymultiplier -0.5 + +effect wakizashi_gun_impact +count 15 +type spark +color 0xff0000 0xc03535 +tex 41 41 +size 4 7 +alpha 256 512 1180 +airfriction 4 +gravity 3 +originjitter 40 40 10 +velocityjitter 350 350 550 +velocityoffset 0 0 700 +stretchfactor 0.9 +effect wakizashi_gun_impact +type smoke +count 24 +color 0xd0d0a0 0xc03535 +tex 0 8 +size 10 20 +alpha 50 90 150 +sizeincrease 80 +velocityjitter 250 250 450 +velocityoffset 0 0 600 +originjitter 40 40 10 +airfriction 4 +sizeincrease 80 +rotate -180 180 0 0 +effect wakizashi_gun_impact +countabsolute 1 +type smoke +tex 65 65 +color 0xff0000 0xc03535 +size 82 82 +alpha 250 300 680 +sizeincrease -180 +effect wakizashi_gun_impact +countabsolute 1 +type smoke +tex 33 33 +color 0xff0000 0xc03535 +size 40 40 +alpha 50 100 620 +sizeincrease 900 +rotate -180 180 400 -400 +effect wakizashi_gun_impact +countabsolute 1 +type decal +tex 59 59 +size 14 14 +alpha 256 256 0 +originjitter 16 16 16 +rotate -180 180 0 0 + +effect wakizashi_gun_muzzleflash +count 16 +type spark +color 0xff0000 0xc03535 +tex 8 15 +size 5 7 +alpha 256 512 6280 +airfriction 12 +originjitter 2 2 2 +velocityjitter 200 200 200 +velocitymultiplier 0.2 +sizeincrease -10 +stretchfactor 0.7 + +effect wakizashi_rocket_explode +countabsolute 1 +type decal +tex 8 16 +size 72 72 +alpha 256 256 0 +originjitter 23 23 23 +lightradius 300 +lightradiusfade 1750 +lightcolor 8 4 0 +// shockwave +effect wakizashi_rocket_explode +countabsolute 1 +type static +tex 33 33 +size 22 22 +alpha 56 56 230 +color 0x8f0d00 0xff5a00 +sizeincrease 2400 +// glow +effect wakizashi_rocket_explode +countabsolute 1 +type static +tex 64 64 +size 120 120 +alpha 156 156 830 +color 0x8f0d00 0xff5a00 +sizeincrease 240 +// fire effect +effect wakizashi_rocket_explode +notunderwater +count 64 +type static +tex 48 55 +color 0xFFAE00 0xff5a00 +size 12 21 +sizeincrease 195 +alpha 200 256 512 +airfriction 2 +liquidfriction 8 +originjitter 10 10 10 +velocityjitter 512 512 512 +rotate -180 180 -50 50 +// fire rays +effect wakizashi_rocket_explode +notunderwater +count 10 +type spark +tex 48 55 +color 0xFFEA00 0xff5a00 +size 43 54 +sizeincrease 120 +alpha 200 256 1600 +airfriction -3 +liquidfriction 8 +originjitter 40 40 40 +velocityjitter 512 512 512 +stretchfactor 10 +// smoke +effect wakizashi_rocket_explode +type alphastatic +notunderwater +tex 0 8 +count 32 +size 10 15 +sizeincrease 230 +alpha 300 450 556 +originjitter 100 100 100 +velocityjitter 200 200 200 +airfriction 3 +color 0x4F4B46 0x000000 +rotate -180 180 -20 20 +// bouncing sparks +effect wakizashi_rocket_explode +notunderwater +count 14 +type spark +tex 40 40 +color 0xffa35b 0xfff2be +size 1 2 +alpha 644 956 884 +gravity 1 +airfriction 1 +liquidfriction 0.8 +velocityoffset 0 0 170 +originjitter 60 60 60 +velocityjitter 524 524 524 +// underwater bubbles +effect wakizashi_rocket_explode +underwater +count 32 +type bubble +tex 62 62 +color 0x404040 0x808080 +size 1 3 +alpha 128 256 64 +gravity -0.125 +bounce 1.5 +liquidfriction 0.25 +originjitter 160 160 160 +velocityjitter 144 144 144 +// underwatershockwave +effect wakizashi_rocket_explode +underwater +type smoke +countabsolute 1 +tex 33 33 +size 30 30 +sizeincrease 1200 +alpha 40 40 300 + +effect wakizashi_rocket_thrust +notunderwater +countabsolute 3 +type spark +tex 48 55 +color 0x00FFDD 0x6200FF +size 14 19 +sizeincrease -2 +alpha 200 256 1600 +velocityjitter 60 60 60 +velocitymultiplier -1.1 +stretchfactor 1 +effect wakizashi_rocket_thrust +notunderwater +countabsolute 2 +type spark +tex 48 55 +color 0xFFFF33 0xFFEE00 +size 5 10 +sizeincrease -2 +alpha 200 256 1900 +velocityjitter 60 60 60 +velocitymultiplier -0.3 +stretchfactor 3 + +// long lasting smoke +effect wakizashi_rocket_launch +notunderwater +count 8 +type smoke +tex 0 8 +color 0xFFFFFF 0xD9C4B0 +size 3 30 +sizeincrease 20 +alpha 100 156 60 +velocityjitter 160 160 60 +velocitymultiplier -0.1 +airfriction 0.3 +// fast smoke +effect wakizashi_rocket_launch +notunderwater +count 14 +type smoke +tex 0 8 +color 0xFFFFFF 0xD9C4B0 +size 30 30 +sizeincrease 20 +alpha 100 156 260 +velocityjitter 160 160 60 +velocitymultiplier 0.4 +airfriction 0.3 +//sparks +effect wakizashi_rocket_launch +notunderwater +count 10 +type spark +tex 40 40 +color 0xFFFFFF 0xD9C4B0 +size 1 4 +alpha 200 256 1000 +velocityjitter 60 60 60 +velocitymultiplier -1.5 + +effect wakizashi_booster_smoke +type alphastatic +notunderwater +tex 0 8 +count 3 +size 60 100 +sizeincrease 10 +gravity -0.1 +alpha 200 750 200 +velocityjitter 40 40 40 +originjitter 60 60 60 +airfriction 2 +color 0xA69A80 0xB3B39F +rotate -180 180 -20 20 + +// decal +effect raptor_cannon_impact +countabsolute 1 +type decal +tex 47 47 +size 24 24 +alpha 256 256 0 +originjitter 16 16 16 +rotate -180 180 0 0 +//spark +effect raptor_cannon_impact +notunderwater +count 6 +type spark +tex 40 40 +color 0xD400FF 0x571863 +size 1 1 +alpha 644 956 784 +gravity 1 +airfriction 0.2 +velocityoffset 0 0 150 +originjitter 16 16 16 +velocityjitter 124 124 524 +// smoke +effect raptor_cannon_impact +count 4 +type alphastatic +tex 0 7 +size 50 50 +color 0x646364 0x151515 +alpha 428 428 600 +rotate -180 180 0 0 +velocityjitter 200 200 300 +velocityoffset 0 0 340 +gravity 0.7 +airfriction 2 +// fire +effect raptor_cannon_impact +notunderwater +count 10 +type static +tex 48 55 +color 0xD400FF 0x571863 +size 33 44 +sizeincrease 25 +alpha 200 256 812 +bounce 1.5 +airfriction 8 +liquidfriction 8 +originjitter 8 8 8 +velocityjitter 312 312 312 + + +effect raptor_cannon_muzzleflash +count 16 +type spark +color 0xD400FF 0x571863 +tex 8 15 +size 10 17 +alpha 1256 1512 56280 +airfriction 12 +originjitter 2 2 2 +velocityjitter 200 200 200 +velocitymultiplier 0.2 +sizeincrease -10 +stretchfactor 0.6 +effect raptor_cannon_muzzleflash +countabsolute 1 +type static +tex 48 55 +color 0xD400FF 0x571863 +size 32 32 +alpha 6056 20112 406280 +sizeincrease -100 +stretchfactor 0.1 +rotate -180 180 4000 -4000 +lightradius 150 +lightradiusfade 6000 +lightcolor 3 0 6 + +// decal +effect raptor_bomb_impact +countabsolute 1 +type decal +tex 8 16 +size 84 84 +alpha 256 256 0 +originjitter 16 16 16 +rotate -180 180 0 0 + +//spark vertical +effect raptor_bomb_impact +count 3 +type spark +color 0xff9c00 0xff3c00 +tex 48 55 +size 20 40 +alpha 300 300 600 +originjitter 10 10 10 +velocityjitter 40 40 120 +stretchfactor 210 +sizeincrease 50 + +//fire +effect raptor_bomb_impact +count 4 +type static +color 0xff9c00 0xff3c00 +tex 48 55 +size 30 120 +alpha 300 300 500 +originjitter 10 10 10 +velocityjitter 950 950 0 +sizeincrease 230 +airfriction 2 + +//smoke +effect raptor_bomb_impact +count 4 +type spark +blend alpha +tex 0 7 +size 120 180 +color 0x646364 0x151515 +alpha 428 428 600 +rotate -180 180 0 0 +velocityjitter 200 200 280 +velocityoffset 0 0 280 +originjitter 30 30 10 +stretchfactor 10 + +//smoke 2 +effect raptor_bomb_impact +count 4 +//type alphastatic +type spark +blend alpha +tex 0 7 +size 40 100 +color 0x646364 0x151515 +alpha 328 328 350 +rotate -180 180 0 0 +velocityjitter 200 200 300 +velocityoffset 0 0 580 +originjitter 30 30 10 +sizeincrease 60 +airfriction 0.6 +gravity 2 + +// sparks +effect raptor_bomb_impact +notunderwater +count 5 +type spark +tex 40 40 +color 0xffa35b 0xfff2be +size 3 5 +alpha 644 956 984 +gravity 1 +airfriction 0.3 +velocityoffset 0 0 350 +originjitter 16 16 16 +velocityjitter 174 174 924 +stretchfactor 2 + +effect raptor_bomb_spread +notunderwater +count 34 +type spark +tex 40 40 +color 0xffa35b 0xfff2be +size 1 2 +alpha 644 956 1284 +gravity 1 +airfriction 1 +liquidfriction 0.8 +originjitter 110 110 110 +velocityjitter 324 324 324 + + +// generic explosion size:big (biggest explosion ever) +effect explosion_big +countabsolute 1 +type decal +tex 8 16 +size 172 172 +alpha 256 256 0 +originjitter 23 23 23 +lightradius 600 +lightradiusfade 1750 +lightcolor 8 4 0 +// shockwave +effect explosion_big +countabsolute 1 +type static +tex 33 33 +size 72 72 +alpha 56 56 330 +color 0x8f0d00 0xff5a00 +sizeincrease 4400 +// fire effect +effect explosion_big +notunderwater +count 64 +type static +tex 48 55 +color 0x8f0d00 0xff5a00 +size 133 144 +sizeincrease 45 +alpha 200 256 712 +airfriction 8 +liquidfriction 8 +originjitter 80 80 80 +velocityjitter 2512 2512 2512 +// fire rays +effect explosion_big +notunderwater +count 64 +type spark +tex 48 55 +color 0x8f0d00 0xff5a00 +size 133 144 +sizeincrease 45 +alpha 200 256 800 +airfriction -5 +liquidfriction 8 +originjitter 40 40 40 +velocityjitter 512 512 512 +stretchfactor 10 +// smoke +effect explosion_big +type alphastatic +notunderwater +tex 0 8 +count 32 +size 50 100 +sizeincrease 244 +alpha 300 650 456 +velocityjitter 3444 3444 3444 +airfriction 8 +color 0x4F4B46 0x000000 +// bouncing sparks +effect explosion_big +notunderwater +count 34 +type spark +tex 40 40 +color 0xffa35b 0xfff2be +size 3 4 +alpha 644 956 1284 +gravity 1 +airfriction 1 +liquidfriction 0.8 +velocityoffset 0 0 370 +originjitter 160 160 160 +velocityjitter 924 924 924 +stretchfactor 0.7 +// derbis +effect explosion_big +notunderwater +count 16 +type alphastatic +tex 66 68 +color 0xFFFFFF 0xcac5b4 +size 10 16 +alpha 444 1356 1184 +gravity 2.3 +airfriction 0.5 +velocityjitter 1800 1800 1800 +velocityoffset 0 0 970 +sizeincrease -5 +rotate -180 180 -1000 1000 +// underwater bubbles +effect explosion_big +underwater +count 32 +type bubble +tex 62 62 +color 0x404040 0x808080 +size 3 3 +alpha 128 256 64 +gravity -0.125 +bounce 1.5 +liquidfriction 0.25 +originjitter 160 160 160 +velocityjitter 444 444 444 +// underwatershockwave +effect explosion_big +underwater +type smoke +countabsolute 1 +tex 33 33 +size 30 30 +sizeincrease 2900 +alpha 40 40 300 +velocitymultiplier 0.3 + + +// generic explosion size:medium (it leaves rising smoke for a longer time) +// shockwave +effect explosion_medium +countabsolute 1 +type static +tex 33 33 +size 72 72 +alpha 56 56 330 +color 0x8f0d00 0xff5a00 +sizeincrease 2400 +// fire effect +effect explosion_medium +notunderwater +count 32 +type static +tex 48 55 +color 0x8f0d00 0xff5a00 +size 133 144 +sizeincrease 45 +alpha 200 256 712 +airfriction 8 +liquidfriction 8 +originjitter 30 30 30 +velocityjitter 1512 1512 1512 +rotate -180 180 -500 500 +// fire effect 2 +effect explosion_medium +notunderwater +count 32 +type static +tex 48 55 +color 0x8f0d00 0xff5a00 +size 73 94 +sizeincrease 40 +gravity -2 +alpha 200 256 612 +airfriction 8 +liquidfriction 8 +originjitter 30 30 30 +velocityjitter 1512 1512 1512 +rotate -180 180 -150 150 +// fire rays +effect explosion_medium +notunderwater +count 14 +type spark +tex 48 55 +color 0x8f0d00 0xff5a00 +size 43 74 +sizeincrease 40 +alpha 200 256 800 +airfriction -3 +liquidfriction 8 +originjitter 40 40 40 +velocityjitter 512 512 512 +stretchfactor 8 +// smoke +effect explosion_medium +type alphastatic +notunderwater +tex 0 8 +count 5 +size 250 300 +sizeincrease -30 +alpha 300 650 756 +originjitter 100 100 100 +velocityjitter 200 200 200 +airfriction 3 +color 0x4F4B46 0x000000 +rotate -180 180 -20 20 +// smoke 2 +effect explosion_medium +type alphastatic +notunderwater +tex 0 8 +count 10 +size 50 100 +sizeincrease 50 +gravity -0.3 +alpha 300 650 256 +originjitter 100 100 100 +velocityjitter 500 500 500 +velocityoffset 0 0 200 +airfriction 3 +color 0x4F4B46 0x000000 +rotate -180 180 -20 20 +// smoke rays +effect explosion_medium +type spark +notunderwater +tex 0 8 +count 13 +size 150 200 +sizeincrease 100 +alpha 140 255 350 +velocityjitter 250 250 250 +originjitter 40 40 40 +color 0x4F4B46 0x000000 +stretchfactor 50 +// bouncing sparks +effect explosion_medium +notunderwater +count 14 +type spark +tex 40 40 +color 0xffa35b 0xfff2be +size 2 3 +alpha 644 956 984 +gravity 1 +airfriction 1 +liquidfriction 0.8 +velocityoffset 0 0 370 +originjitter 100 100 100 +velocityjitter 624 624 624 +stretchfactor 0.7 +// underwater bubbles +effect explosion_medium +underwater +count 32 +type bubble +tex 62 62 +color 0x404040 0x808080 +size 3 3 +alpha 128 256 64 +gravity -0.125 +bounce 1.5 +liquidfriction 0.25 +originjitter 160 160 160 +velocityjitter 444 444 444 +// underwatershockwave +effect explosion_medium +underwater +type smoke +countabsolute 1 +tex 33 33 +size 30 30 +sizeincrease 2900 +alpha 40 40 300 +velocitymultiplier 0.3 + +// generic explosion size:small (its fire only, made to support other explosions) +// shockwave +effect explosion_small +countabsolute 1 +type static +tex 33 33 +size 22 22 +alpha 56 56 330 +color 0x8f0d00 0xff5a00 +sizeincrease 2400 +// fire effect +effect explosion_small +notunderwater +count 16 +type static +tex 48 55 +color 0x8f0d00 0xff5a00 +size 1 44 +sizeincrease 45 +alpha 200 256 1212 +airfriction 5 +liquidfriction 8 +velocityjitter 512 512 512 +rotate -180 180 -500 500 +// fire effect 2 +effect explosion_small +notunderwater +count 16 +type static +tex 48 55 +color 0x8f0d00 0xff5a00 +size 73 94 +sizeincrease 40 +alpha 200 256 812 +airfriction 8 +liquidfriction 8 +velocityjitter 912 912 912 +rotate -180 180 -150 150 +// fire rays +effect explosion_small +notunderwater +count 14 +type spark +tex 48 55 +color 0x8f0d00 0xff5a00 +size 13 54 +sizeincrease 30 +alpha 200 256 1300 +airfriction -3 +liquidfriction 8 +originjitter 40 40 40 +velocityjitter 512 512 512 +stretchfactor 8 +// underwater bubbles +effect explosion_small +underwater +count 32 +type bubble +tex 62 62 +color 0x404040 0x808080 +size 1 3 +alpha 128 256 64 +gravity -0.125 +bounce 1.5 +liquidfriction 0.25 +originjitter 160 160 160 +velocityjitter 144 144 144 +// underwatershockwave +effect explosion_small +underwater +type smoke +countabsolute 1 +tex 33 33 +size 30 30 +sizeincrease 1200 +alpha 40 40 300 + +// big smoke ( for spamming on damaged stuff ) +effect smoke_big +type alphastatic +notunderwater +tex 0 8 +count 3 +size 30 60 +sizeincrease 15 +gravity -0.5 +alpha 200 750 200 +originjitter 55 55 55 +velocityjitter 140 140 200 +velocityoffset 0 0 200 +airfriction 4 +color 0x4F4B46 0x000000 +rotate -180 180 -20 20 + +// small smoke ( more precise than big one, for spamming on damaged parts like raptors spinner ) +effect smoke_small +type alphastatic +notunderwater +tex 0 8 +count 3 +size 60 100 +sizeincrease -10 +gravity -0.5 +alpha 200 750 200 +velocityjitter 40 40 400 +velocityoffset 0 0 200 +airfriction 4 +color 0x4F4B46 0x000000 +rotate -180 180 -20 20 diff --git a/gfx/loading.tga b/gfx/loading.tga index 76a7edf1f..67580e9da 100644 Binary files a/gfx/loading.tga and b/gfx/loading.tga differ diff --git a/gfx/loading10.tga b/gfx/loading10.tga index 5f453bed6..6cddc0ca3 100644 Binary files a/gfx/loading10.tga and b/gfx/loading10.tga differ diff --git a/gfx/loading11.tga b/gfx/loading11.tga index 5fb261efc..0cee44b8c 100644 Binary files a/gfx/loading11.tga and b/gfx/loading11.tga differ diff --git a/gfx/loading12.tga b/gfx/loading12.tga index 6345a9aa6..0314a97a7 100644 Binary files a/gfx/loading12.tga and b/gfx/loading12.tga differ diff --git a/gfx/loading13.tga b/gfx/loading13.tga new file mode 100644 index 000000000..ef3087844 Binary files /dev/null and b/gfx/loading13.tga differ diff --git a/gfx/loading2.tga b/gfx/loading2.tga index 3aa4a29e1..63c4c4782 100644 Binary files a/gfx/loading2.tga and b/gfx/loading2.tga differ diff --git a/gfx/loading3.tga b/gfx/loading3.tga index 639608565..42ae5cd48 100644 Binary files a/gfx/loading3.tga and b/gfx/loading3.tga differ diff --git a/gfx/loading4.tga b/gfx/loading4.tga index eaf44d094..62877a672 100644 Binary files a/gfx/loading4.tga and b/gfx/loading4.tga differ diff --git a/gfx/loading5.tga b/gfx/loading5.tga index c06d32320..96ec6c4a7 100644 Binary files a/gfx/loading5.tga and b/gfx/loading5.tga differ diff --git a/gfx/loading6.tga b/gfx/loading6.tga index 7c8007c44..a0e2fc853 100644 Binary files a/gfx/loading6.tga and b/gfx/loading6.tga differ diff --git a/gfx/loading7.tga b/gfx/loading7.tga index 56aa4afc4..87d5f13e0 100644 Binary files a/gfx/loading7.tga and b/gfx/loading7.tga differ diff --git a/gfx/loading8.tga b/gfx/loading8.tga index a41d344ef..c86897044 100644 Binary files a/gfx/loading8.tga and b/gfx/loading8.tga differ diff --git a/gfx/loading9.tga b/gfx/loading9.tga index dc6360369..ac758099a 100644 Binary files a/gfx/loading9.tga and b/gfx/loading9.tga differ diff --git a/gfx/vehicles/axh-bracket.tga b/gfx/vehicles/axh-bracket.tga new file mode 100644 index 000000000..82f079660 Binary files /dev/null and b/gfx/vehicles/axh-bracket.tga differ diff --git a/gfx/vehicles/axh-cross.tga b/gfx/vehicles/axh-cross.tga new file mode 100644 index 000000000..69e1c0be0 Binary files /dev/null and b/gfx/vehicles/axh-cross.tga differ diff --git a/gfx/vehicles/axh-dropcross.tga b/gfx/vehicles/axh-dropcross.tga new file mode 100644 index 000000000..e8ba095fd Binary files /dev/null and b/gfx/vehicles/axh-dropcross.tga differ diff --git a/gfx/vehicles/axh-ring.tga b/gfx/vehicles/axh-ring.tga new file mode 100644 index 000000000..bb3ade588 Binary files /dev/null and b/gfx/vehicles/axh-ring.tga differ diff --git a/gfx/vehicles/axh-special1.tga b/gfx/vehicles/axh-special1.tga new file mode 100644 index 000000000..184a065c0 Binary files /dev/null and b/gfx/vehicles/axh-special1.tga differ diff --git a/gfx/vehicles/axh-special2.tga b/gfx/vehicles/axh-special2.tga new file mode 100644 index 000000000..caad1d71c Binary files /dev/null and b/gfx/vehicles/axh-special2.tga differ diff --git a/gfx/vehicles/axh-tag.tga b/gfx/vehicles/axh-tag.tga new file mode 100644 index 000000000..4eb3b66c2 Binary files /dev/null and b/gfx/vehicles/axh-tag.tga differ diff --git a/gfx/vehicles/axh-target.tga b/gfx/vehicles/axh-target.tga new file mode 100644 index 000000000..8c05908f2 Binary files /dev/null and b/gfx/vehicles/axh-target.tga differ diff --git a/gfx/vehicles/axh-x.tga b/gfx/vehicles/axh-x.tga new file mode 100644 index 000000000..f6a4fce77 Binary files /dev/null and b/gfx/vehicles/axh-x.tga differ diff --git a/gfx/vehicles/bar_dwn_left.tga b/gfx/vehicles/bar_dwn_left.tga new file mode 100644 index 000000000..011f9a9c3 Binary files /dev/null and b/gfx/vehicles/bar_dwn_left.tga differ diff --git a/gfx/vehicles/bar_dwn_right.tga b/gfx/vehicles/bar_dwn_right.tga new file mode 100644 index 000000000..e93b5e600 Binary files /dev/null and b/gfx/vehicles/bar_dwn_right.tga differ diff --git a/gfx/vehicles/bar_up_left.tga b/gfx/vehicles/bar_up_left.tga new file mode 100644 index 000000000..f49d205d0 Binary files /dev/null and b/gfx/vehicles/bar_up_left.tga differ diff --git a/gfx/vehicles/bar_up_right.tga b/gfx/vehicles/bar_up_right.tga new file mode 100644 index 000000000..a3b591014 Binary files /dev/null and b/gfx/vehicles/bar_up_right.tga differ diff --git a/gfx/vehicles/bullets.tga b/gfx/vehicles/bullets.tga new file mode 100644 index 000000000..ff853ee6b Binary files /dev/null and b/gfx/vehicles/bullets.tga differ diff --git a/gfx/vehicles/frame.tga b/gfx/vehicles/frame.tga new file mode 100644 index 000000000..92a657361 Binary files /dev/null and b/gfx/vehicles/frame.tga differ diff --git a/gfx/vehicles/health.tga b/gfx/vehicles/health.tga new file mode 100644 index 000000000..3956a3ff2 Binary files /dev/null and b/gfx/vehicles/health.tga differ diff --git a/gfx/vehicles/hud_bg.tga b/gfx/vehicles/hud_bg.tga deleted file mode 100644 index a2ba3b361..000000000 Binary files a/gfx/vehicles/hud_bg.tga and /dev/null differ diff --git a/gfx/vehicles/raptor.tga b/gfx/vehicles/raptor.tga new file mode 100644 index 000000000..9a2519a95 Binary files /dev/null and b/gfx/vehicles/raptor.tga differ diff --git a/gfx/vehicles/raptor_bombs.tga b/gfx/vehicles/raptor_bombs.tga new file mode 100644 index 000000000..9012fb259 Binary files /dev/null and b/gfx/vehicles/raptor_bombs.tga differ diff --git a/gfx/vehicles/raptor_guns.tga b/gfx/vehicles/raptor_guns.tga new file mode 100644 index 000000000..0d0012a53 Binary files /dev/null and b/gfx/vehicles/raptor_guns.tga differ diff --git a/gfx/vehicles/rocket.tga b/gfx/vehicles/rocket.tga new file mode 100644 index 000000000..f0385b97f Binary files /dev/null and b/gfx/vehicles/rocket.tga differ diff --git a/gfx/vehicles/shield.tga b/gfx/vehicles/shield.tga new file mode 100644 index 000000000..916268f05 Binary files /dev/null and b/gfx/vehicles/shield.tga differ diff --git a/gfx/vehicles/shiled.tga b/gfx/vehicles/shiled.tga deleted file mode 100644 index bd728e283..000000000 Binary files a/gfx/vehicles/shiled.tga and /dev/null differ diff --git a/gfx/vehicles/vh-shield.tga b/gfx/vehicles/vh-shield.tga new file mode 100644 index 000000000..bd728e283 Binary files /dev/null and b/gfx/vehicles/vh-shield.tga differ diff --git a/input-demoseeking.cfg b/input-demoseeking.cfg index 87b42330a..45df74f22 100644 --- a/input-demoseeking.cfg +++ b/input-demoseeking.cfg @@ -9,7 +9,7 @@ alias seekdemo "_seekdemo_1_$_demo_seeking $1" alias _seekdemo_1_0 "cl_cmd rpn time dup \"$1\" add dup /_demo_time exch def le /_demo_time_increasing exch def; _seekdemo_2" alias _seekdemo_1_1 "cl_cmd rpn time _demo_time \"$1\" add dup /_demo_time exch def le /_demo_time_increasing exch def; _seekdemo_2" alias _seekdemo_2 "_demo_seeking 1; r_render 0; snd_startnonloopingsounds 0; _seekdemo_3_$_demo_time_increasing" -alias _seekdemo_3_0 "playdemo \"$_demo_name\"; _seekdemo_4; defer 2 _seekdemo_9_2" +alias _seekdemo_3_0 "playdemo \"$_demo_name\"; _seekdemo_4; defer 10 _seekdemo_9_2" alias _seekdemo_3_1 "_seekdemo_7" alias _seekdemo_4 "set _demo_good 0; cl_cmd rpn /_demo_good 1 def; _seekdemo_5" alias _seekdemo_5 "_seekdemo_6_$_demo_good" diff --git a/menu.dat.de.po b/menu.dat.de.po index 15fd023e9..7182fe33a 100644 --- a/menu.dat.de.po +++ b/menu.dat.de.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: 0.1preview\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-04-30 10:05+0200\n" +"POT-Creation-Date: 2011-06-20 20:46+0200\n" "PO-Revision-Date: 2011-04-20 10:46+0200\n" "Last-Translator: Rudolf Polzer \n" "Language-Team: Rudolf Polzer \n" @@ -111,7 +111,7 @@ msgstr "Entwickler" #: qcsrc/menu/xonotic/dialog_multiplayer_create_advanced.c:82 #: qcsrc/menu/xonotic/dialog_multiplayer_create_mutators.c:269 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_waypoint.c:41 -#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:55 +#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:57 #: qcsrc/menu/xonotic/dialog_settings_misc_cvars.c:61 #: qcsrc/menu/xonotic/dialog_singleplayer_winner.c:21 msgid "OK" @@ -158,6 +158,10 @@ msgstr "Munitionsanzeige:" msgid "Show only current ammo type" msgstr "Nur aktuellen Munitionstyp anzeigen" +#: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:28 +msgid "Align icon:" +msgstr "Icon ausrichten:" + #: qcsrc/menu/xonotic/dialog_hudpanel_ammo.c:29 #: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:28 #: qcsrc/menu/xonotic/dialog_hudpanel_healtharmor.c:40 @@ -283,6 +287,100 @@ msgstr "Eintrags-Sichtbarkeit:" msgid "Entry fadetime:" msgstr "Eintrags-Ausblendung:" +#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:4 +msgid "Physics Panel" +msgstr "Physik-Panel" + +#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:23 +#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:21 +#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:21 +msgid "Panel disabled" +msgstr "Panel nicht anzeigen" + +#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:24 +msgid "Panel enabled if not observing" +msgstr "Panel beim Spielen anzeigen" + +#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:25 +#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:23 +#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:23 +msgid "Panel always enabled" +msgstr "Panel immer anzeigen" + +#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:31 +msgid "Status bar" +msgstr "Statusleiste" + +#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:33 +#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:48 +msgid "Left align" +msgstr "Links" + +#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:34 +#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:52 +msgid "Right align" +msgstr "Rechts" + +#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:35 +msgid "Inward align" +msgstr "Innen" + +#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:36 +msgid "Outward align" +msgstr "Außen" + +#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:40 +msgid "Flip speed/acceleration positions" +msgstr "Geschwindigkeit/Beschleunigung tauschen" + +#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:44 +msgid "Speed:" +msgstr "Geschwindigkeit:" + +#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:45 +msgid "Include vertical speed" +msgstr "Mit vertikaler Geschwindigkeit" + +#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:56 +msgid "Speed unit:" +msgstr "Geschwindigkeitseinheit:" + +#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:58 +msgid "qu/s" +msgstr "qu/s" + +#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:59 +msgid "m/s" +msgstr "m/s" + +#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:60 +msgid "km/h" +msgstr "km/h" + +#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:61 +msgid "mph" +msgstr "mph" + +#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:62 +msgid "knots" +msgstr "Knoten" + +#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:64 +msgid "Show" +msgstr "Anzeigen" + +#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:67 +msgid "Top speed" +msgstr "Geschwindigkeitsrekord:" + +#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:73 +msgid "Acceleration:" +msgstr "Beschleunigung:" + +#: qcsrc/menu/xonotic/dialog_hudpanel_physics.c:74 +msgid "Include vertical acceleration" +msgstr "Mit vertikaler Beschleunigung" + #: qcsrc/menu/xonotic/dialog_hudpanel_powerups.c:4 msgid "Powerups Panel" msgstr "Bonus-Panel" @@ -295,20 +393,10 @@ msgstr "Strength und Shield vertauschen" msgid "Pressed Keys Panel" msgstr "Gedrückte-Tasten-Panel" -#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:21 -#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:21 -msgid "Panel disabled" -msgstr "Panel nicht anzeigen" - #: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:22 msgid "Panel enabled when spectating" msgstr "Panel beim Zuschauen anzeigen" -#: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:23 -#: qcsrc/menu/xonotic/dialog_hudpanel_radar.c:23 -msgid "Panel always enabled" -msgstr "Panel immer anzeigen" - #: qcsrc/menu/xonotic/dialog_hudpanel_pressedkeys.c:30 msgid "Forced aspect:" msgstr "Aspektverhältnis:" @@ -333,7 +421,7 @@ msgstr "Radar:" #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:43 #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:82 #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup.c:154 -#: qcsrc/menu/xonotic/util.qc:608 +#: qcsrc/menu/xonotic/util.qc:600 msgid "Alpha:" msgstr "Alpha:" @@ -389,6 +477,26 @@ msgstr "nie vergrößert" msgid "Score Panel" msgstr "Punkte-Panel" +#: qcsrc/menu/xonotic/dialog_hudpanel_score.c:22 +msgid "Score:" +msgstr "Punkte:" + +#: qcsrc/menu/xonotic/dialog_hudpanel_score.c:25 +msgid "Rankings:" +msgstr "Platzierungen:" + +#: qcsrc/menu/xonotic/dialog_hudpanel_score.c:26 +msgid "Off" +msgstr "Aus" + +#: qcsrc/menu/xonotic/dialog_hudpanel_score.c:27 +msgid "And me" +msgstr "Auch für mich" + +#: qcsrc/menu/xonotic/dialog_hudpanel_score.c:28 +msgid "Pure" +msgstr "Rein" + #: qcsrc/menu/xonotic/dialog_hudpanel_timer.c:4 msgid "Timer Panel" msgstr "Zeit-Panel" @@ -431,11 +539,11 @@ msgstr "%ds" msgid "Fade effect:" msgstr "Ausblendeeffekt:" -#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:33 +#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:35 msgid "EF^None" msgstr "keiner" -#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:35 +#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:36 msgid "Slide" msgstr "Schieben" @@ -443,39 +551,43 @@ msgstr "Schieben" msgid "Alpha" msgstr "Alpha" -#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:40 +#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:38 +msgid "EF^Both" +msgstr "beide" + +#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:42 msgid "Weapon icons:" msgstr "Waffensymbole:" -#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:43 +#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:45 msgid "Show weapon ID as:" msgstr "Waffen-ID zeigen als:" -#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:44 +#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:46 msgid "SHOWAS^None" msgstr "nichts" -#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:45 +#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:47 msgid "Number" msgstr "Zahl" -#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:46 +#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:48 msgid "Bind" msgstr "Taste" -#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:49 +#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:51 msgid "Show Accuracy" msgstr "Trefferquote zeigen" -#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:50 +#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:52 msgid "Show Ammo" msgstr "Munition zeigen" -#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:53 +#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:55 msgid "Ammo bar color:" msgstr "Muntionsleistenfarbe:" -#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:59 +#: qcsrc/menu/xonotic/dialog_hudpanel_weapons.c:61 msgid "Ammo bar alpha:" msgstr "Munitionsleistenalpha:" @@ -487,20 +599,24 @@ msgstr "HUD-Konfiguration" msgid "Panel background defaults:" msgstr "Panel-Standardhintergrund:" +#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:23 qcsrc/menu/xonotic/util.qc:575 +msgid "Background:" +msgstr "Hintergrund:" + #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:25 #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:37 #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:52 -#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:91 qcsrc/menu/xonotic/util.qc:586 -#: qcsrc/menu/xonotic/util.qc:602 qcsrc/menu/xonotic/util.qc:619 +#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:91 qcsrc/menu/xonotic/util.qc:578 +#: qcsrc/menu/xonotic/util.qc:594 qcsrc/menu/xonotic/util.qc:611 msgid "Disable" msgstr "Aus" #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:30 -#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:77 qcsrc/menu/xonotic/util.qc:591 +#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:77 qcsrc/menu/xonotic/util.qc:583 msgid "Color:" msgstr "Farbe:" -#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:35 qcsrc/menu/xonotic/util.qc:599 +#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:35 qcsrc/menu/xonotic/util.qc:591 msgid "Border size:" msgstr "Rahmengröße:" @@ -509,11 +625,11 @@ msgstr "Rahmengröße:" msgid "Team color:" msgstr "Teamfarbe:" -#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:58 qcsrc/menu/xonotic/util.qc:625 +#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:58 qcsrc/menu/xonotic/util.qc:617 msgid "Test team color in configure mode" msgstr "Teamfarbe bei Konfiguration testen" -#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:61 qcsrc/menu/xonotic/util.qc:628 +#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:61 qcsrc/menu/xonotic/util.qc:620 msgid "Padding:" msgstr "Abstand:" @@ -671,7 +787,7 @@ msgid "Mutators..." msgstr "Mutators..." #: qcsrc/menu/xonotic/dialog_multiplayer_create.c:98 -#: qcsrc/menu/xonotic/dialog_settings_misc.c:84 +#: qcsrc/menu/xonotic/dialog_settings_misc.c:57 msgid "Advanced settings..." msgstr "Erweiterte Einstellungen..." @@ -1255,7 +1371,7 @@ msgstr "Schadenseffekt:" #: qcsrc/menu/xonotic/dialog_settings_effects.c:194 #: qcsrc/menu/xonotic/dialog_settings_misc.c:30 #: qcsrc/menu/xonotic/dialog_settings_misc.c:41 -#: qcsrc/menu/xonotic/dialog_settings_video.c:105 +#: qcsrc/menu/xonotic/dialog_settings_video.c:109 msgid "Apply immediately" msgstr "Sofort anwenden" @@ -1315,15 +1431,11 @@ msgstr "Automatisch auf beste Waffe wechseln" msgid "Draw 1st person weapon model" msgstr "Waffe in 3D anzeigen" -#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:48 -msgid "Left align" -msgstr "Links" - #: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:50 -msgid "Right align" -msgstr "Rechts" +msgid "Center" +msgstr "Mittig" -#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:53 +#: qcsrc/menu/xonotic/dialog_multiplayer_playersetup_weapons.c:55 msgid "Flip view horizontally" msgstr "3D-Ansicht spiegeln" @@ -1834,29 +1946,29 @@ msgstr "Bearbeiten..." msgid "Sensitivity:" msgstr "Empfindlichkeit:" -#: qcsrc/menu/xonotic/dialog_settings_input.c:49 +#: qcsrc/menu/xonotic/dialog_settings_input.c:51 msgid "UI mouse speed:" msgstr "Mausgeschwindigkeit:" -#: qcsrc/menu/xonotic/dialog_settings_input.c:52 +#: qcsrc/menu/xonotic/dialog_settings_input.c:55 msgid "Mouse filter" msgstr "Mausfilterung" -#: qcsrc/menu/xonotic/dialog_settings_input.c:54 +#: qcsrc/menu/xonotic/dialog_settings_input.c:57 msgid "Invert mouse" msgstr "Höhe invertieren" -#: qcsrc/menu/xonotic/dialog_settings_input.c:57 -#: qcsrc/menu/xonotic/dialog_settings_input.c:59 +#: qcsrc/menu/xonotic/dialog_settings_input.c:60 +#: qcsrc/menu/xonotic/dialog_settings_input.c:62 msgid "Use joystick input" msgstr "Joystick verwenden" -#: qcsrc/menu/xonotic/dialog_settings_input.c:62 -#: qcsrc/menu/xonotic/dialog_settings_input.c:64 +#: qcsrc/menu/xonotic/dialog_settings_input.c:65 +#: qcsrc/menu/xonotic/dialog_settings_input.c:67 msgid "Turn off OS mouse acceleration" msgstr "Mausbeschleunigung deaktivieren" -#: qcsrc/menu/xonotic/dialog_settings_input.c:66 +#: qcsrc/menu/xonotic/dialog_settings_input.c:69 msgid "\"enter console\" also closes" msgstr "\"Konsole öffnen\" schließt auch" @@ -1897,42 +2009,6 @@ msgid "Show frames per second" msgstr "Frames pro Sekunde anzeigen" #: qcsrc/menu/xonotic/dialog_settings_misc.c:53 -msgid "Speedometer" -msgstr "Tachometer" - -#: qcsrc/menu/xonotic/dialog_settings_misc.c:56 -msgid "qu/s (hidden)" -msgstr "qu/s (ohne Einheit)" - -#: qcsrc/menu/xonotic/dialog_settings_misc.c:58 -msgid "qu/s" -msgstr "qu/s" - -#: qcsrc/menu/xonotic/dialog_settings_misc.c:60 -msgid "m/s" -msgstr "m/s" - -#: qcsrc/menu/xonotic/dialog_settings_misc.c:64 -msgid "km/h" -msgstr "km/h" - -#: qcsrc/menu/xonotic/dialog_settings_misc.c:66 -msgid "mph" -msgstr "mph" - -#: qcsrc/menu/xonotic/dialog_settings_misc.c:68 -msgid "knots" -msgstr "Knoten" - -#: qcsrc/menu/xonotic/dialog_settings_misc.c:71 -msgid "Show accelerometer" -msgstr "Akzelerometer anzeigen" - -#: qcsrc/menu/xonotic/dialog_settings_misc.c:74 -msgid "Accelerometer scale:" -msgstr "Akzelerometer-Skalierung:" - -#: qcsrc/menu/xonotic/dialog_settings_misc.c:80 msgid "Minimize input latency" msgstr "Eingabelatenz minimieren" @@ -2128,19 +2204,19 @@ msgstr "Kontrast:" msgid "Gamma:" msgstr "Gamma:" -#: qcsrc/menu/xonotic/dialog_settings_video.c:89 +#: qcsrc/menu/xonotic/dialog_settings_video.c:91 msgid "Contrast boost:" msgstr "Kontrasterhöhung:" -#: qcsrc/menu/xonotic/dialog_settings_video.c:92 +#: qcsrc/menu/xonotic/dialog_settings_video.c:96 msgid "Saturation:" msgstr "Sättigung:" -#: qcsrc/menu/xonotic/dialog_settings_video.c:98 +#: qcsrc/menu/xonotic/dialog_settings_video.c:102 msgid "LIT^Ambient:" msgstr "Umgebungslicht:" -#: qcsrc/menu/xonotic/dialog_settings_video.c:101 +#: qcsrc/menu/xonotic/dialog_settings_video.c:105 msgid "Intensity:" msgstr "Lichtstärke:" @@ -2316,7 +2392,7 @@ msgstr "^1%s TESTVERSION" msgid "Update to %s now!" msgstr "Jetzt auf %s updaten!" -#: qcsrc/menu/xonotic/util.qc:509 +#: qcsrc/menu/xonotic/util.qc:501 msgid "" "^1ERROR: Texture compression is required but not supported.\n" "^1Expect visual problems.\n" @@ -2324,94 +2400,90 @@ msgstr "" "^1FEHLER: Texturekompression ist notwendig aber nicht unterstützt.\n" "^1Darstellungsprobleme sind zu erwarten.\n" -#: qcsrc/menu/xonotic/util.qc:531 +#: qcsrc/menu/xonotic/util.qc:523 msgid "Arena" msgstr "Arena" -#: qcsrc/menu/xonotic/util.qc:532 +#: qcsrc/menu/xonotic/util.qc:524 msgid "Assault" msgstr "Assault" -#: qcsrc/menu/xonotic/util.qc:533 +#: qcsrc/menu/xonotic/util.qc:525 msgid "Capture The Flag" msgstr "Capture The Flag" -#: qcsrc/menu/xonotic/util.qc:534 +#: qcsrc/menu/xonotic/util.qc:526 msgid "Clan Arena" msgstr "Clan Arena" -#: qcsrc/menu/xonotic/util.qc:535 +#: qcsrc/menu/xonotic/util.qc:527 msgid "Deathmatch" msgstr "Deathmatch" -#: qcsrc/menu/xonotic/util.qc:536 +#: qcsrc/menu/xonotic/util.qc:528 msgid "Domination" msgstr "Domination" -#: qcsrc/menu/xonotic/util.qc:537 +#: qcsrc/menu/xonotic/util.qc:529 msgid "Freeze Tag" msgstr "Freeze Tag" -#: qcsrc/menu/xonotic/util.qc:538 +#: qcsrc/menu/xonotic/util.qc:530 msgid "Keepaway" msgstr "Keepaway" -#: qcsrc/menu/xonotic/util.qc:539 +#: qcsrc/menu/xonotic/util.qc:531 msgid "Key Hunt" msgstr "Key Hunt" -#: qcsrc/menu/xonotic/util.qc:540 +#: qcsrc/menu/xonotic/util.qc:532 msgid "Last Man Standing" msgstr "Last Man Standing" -#: qcsrc/menu/xonotic/util.qc:541 +#: qcsrc/menu/xonotic/util.qc:533 msgid "Nexball" msgstr "Nexball" -#: qcsrc/menu/xonotic/util.qc:542 +#: qcsrc/menu/xonotic/util.qc:534 msgid "Onslaught" msgstr "Onslaught" -#: qcsrc/menu/xonotic/util.qc:543 +#: qcsrc/menu/xonotic/util.qc:535 msgid "Race" msgstr "Race" -#: qcsrc/menu/xonotic/util.qc:544 +#: qcsrc/menu/xonotic/util.qc:536 msgid "Race CTS" msgstr "Race CTS" -#: qcsrc/menu/xonotic/util.qc:545 +#: qcsrc/menu/xonotic/util.qc:537 msgid "Runematch" msgstr "Runematch" -#: qcsrc/menu/xonotic/util.qc:546 +#: qcsrc/menu/xonotic/util.qc:538 msgid "Team Deathmatch" msgstr "Team Deathmatch" -#: qcsrc/menu/xonotic/util.qc:565 +#: qcsrc/menu/xonotic/util.qc:557 #, c-format msgid "@!#%'n Tuba Throwing" msgstr "@!#%'n Tuba-Werfen" -#: qcsrc/menu/xonotic/util.qc:583 -msgid "Background:" -msgstr "Hintergrund:" - -#: qcsrc/menu/xonotic/util.qc:585 qcsrc/menu/xonotic/util.qc:601 -#: qcsrc/menu/xonotic/util.qc:610 qcsrc/menu/xonotic/util.qc:618 -#: qcsrc/menu/xonotic/util.qc:630 +#: qcsrc/menu/xonotic/util.qc:577 qcsrc/menu/xonotic/util.qc:593 +#: qcsrc/menu/xonotic/util.qc:602 qcsrc/menu/xonotic/util.qc:610 +#: qcsrc/menu/xonotic/util.qc:622 msgid "Default" msgstr "Standard" -#: qcsrc/menu/xonotic/util.qc:596 +#: qcsrc/menu/xonotic/util.qc:588 msgid "Use default" msgstr "Standard verwenden" -#: qcsrc/menu/xonotic/util.qc:616 +#: qcsrc/menu/xonotic/util.qc:608 msgid "Team Color:" msgstr "Teamfarbe:" -#: qcsrc/menu/xonotic/util.qh:49 +#: qcsrc/menu/xonotic/util.qh:47 msgid "Enable panel" msgstr "Panel aktivieren" @@ -2526,27 +2598,27 @@ msgstr "%s hat von %ss Feuerball probiert" msgid "Mortar" msgstr "Mortar" -#: qcsrc/server/w_grenadelauncher.qc:378 +#: qcsrc/server/w_grenadelauncher.qc:379 #, c-format msgid "%s tried out his own grenade" msgstr "%s wollte wissen, ob seine Granate funktioniert" -#: qcsrc/server/w_grenadelauncher.qc:380 +#: qcsrc/server/w_grenadelauncher.qc:381 #, c-format msgid "%s detonated" msgstr "%s verfing sich in der eigenen Detonation" -#: qcsrc/server/w_grenadelauncher.qc:386 +#: qcsrc/server/w_grenadelauncher.qc:387 #, c-format msgid "%s didn't see %s's grenade" msgstr "%s hat %ss Granate nicht gesehen" -#: qcsrc/server/w_grenadelauncher.qc:388 +#: qcsrc/server/w_grenadelauncher.qc:389 #, c-format msgid "%s almost dodged %s's grenade" msgstr "%s ist fast %ss Granate ausgewichen" -#: qcsrc/server/w_grenadelauncher.qc:390 +#: qcsrc/server/w_grenadelauncher.qc:391 #, c-format msgid "%s ate %s's grenade" msgstr "%s nahm %ss Granate in den Mund" @@ -2555,17 +2627,17 @@ msgstr "%s nahm %ss Granate in den Mund" msgid "Hagar" msgstr "Hagar" -#: qcsrc/server/w_hagar.qc:209 qcsrc/server/w_seeker.qc:655 +#: qcsrc/server/w_hagar.qc:382 qcsrc/server/w_seeker.qc:655 #, c-format msgid "%s played with tiny rockets" msgstr "%s hat mit kleinen Raketen gespielt" -#: qcsrc/server/w_hagar.qc:213 +#: qcsrc/server/w_hagar.qc:386 #, c-format msgid "%s hoped %s's missiles wouldn't bounce" msgstr "%s hat gehofft, dass %ss Raketen nicht von Wänden abprallen" -#: qcsrc/server/w_hagar.qc:215 qcsrc/server/w_seeker.qc:661 +#: qcsrc/server/w_hagar.qc:388 qcsrc/server/w_seeker.qc:661 #, c-format msgid "%s was pummeled by %s" msgstr "^1%s^1 wurde von %s^1 erwischt" @@ -2584,7 +2656,7 @@ msgid "Grappling Hook" msgstr "Grappling Hook" #: qcsrc/server/w_hook.qc:266 qcsrc/server/w_minstanex.qc:290 -#: qcsrc/server/w_nex.qc:267 qcsrc/server/w_porto.qc:296 +#: qcsrc/server/w_nex.qc:253 qcsrc/server/w_porto.qc:296 #: qcsrc/server/w_shotgun.qc:203 qcsrc/server/w_uzi.qc:317 #, c-format msgid "%s did the impossible" @@ -2618,22 +2690,22 @@ msgstr "^1%s^1 wurde von %s^1 zu Tode gelasert" msgid "Mine Layer" msgstr "Mine Layer" -#: qcsrc/server/w_minelayer.qc:495 qcsrc/server/w_rocketlauncher.qc:500 +#: qcsrc/server/w_minelayer.qc:522 qcsrc/server/w_rocketlauncher.qc:501 #, c-format msgid "%s exploded" msgstr "%s ist explodiert" -#: qcsrc/server/w_minelayer.qc:499 +#: qcsrc/server/w_minelayer.qc:526 #, c-format msgid "%s got too close to %s's mine" msgstr "%s ist %ss Mine zu nahe getreten" -#: qcsrc/server/w_minelayer.qc:501 +#: qcsrc/server/w_minelayer.qc:528 #, c-format msgid "%s almost dodged %s's mine" msgstr "%s ist fast %ss Mine ausgewichen" -#: qcsrc/server/w_minelayer.qc:503 +#: qcsrc/server/w_minelayer.qc:530 #, c-format msgid "%s stepped on %s's mine" msgstr "%s ist auf %ss Mine gelatscht" @@ -2642,7 +2714,7 @@ msgstr "%s ist auf %ss Mine gelatscht" msgid "MinstaNex" msgstr "MinstaNex" -#: qcsrc/server/w_minstanex.qc:292 qcsrc/server/w_nex.qc:269 +#: qcsrc/server/w_minstanex.qc:292 qcsrc/server/w_nex.qc:255 #, c-format msgid "%s has been vaporized by %s" msgstr "^1%s^1 wurde von %s^1 vernichtet" @@ -2660,21 +2732,60 @@ msgstr "Port-O-Launch" msgid "%s felt %s doing the impossible to him" msgstr "%s hat gespürt, wie %s das Unmögliche für ihn getan hat" +#: qcsrc/server/w_rifle.qc:2 +msgid "Rifle" +msgstr "Gewehr" + +#: qcsrc/server/w_rifle.qc:233 +#, c-format +msgid "%s shot themself automatically" +msgstr "%s hat sich vollautomatisch selbst erschossen" + +#: qcsrc/server/w_rifle.qc:235 +#, c-format +msgid "%s sniped themself somehow" +msgstr "%s hat so scharf geschossen, dass er sich selbst getroffen hat" + +#: qcsrc/server/w_rifle.qc:242 +#, c-format +msgid "%s failed to hide from %s's bullet hail" +msgstr "%s hat es nicht geschafft, sich vor %ss Kugelhagel zu verstecken" + +#: qcsrc/server/w_rifle.qc:244 +#, c-format +msgid "%s died in %s's bullet hail" +msgstr "%s ist in %ss Kugelhagel gefallen" + +#: qcsrc/server/w_rifle.qc:251 +#, c-format +msgid "%s failed to hide from %s's rifle" +msgstr "%s hat es nicht geschafft, sich vor %ss Gewehr zu verstecken" + +#: qcsrc/server/w_rifle.qc:256 +#, c-format +msgid "%s got hit in the head by %s" +msgstr "%s hat ein Loch im Kopf bekommen; schuld war %s" + +#: qcsrc/server/w_rifle.qc:258 qcsrc/server/w_uzi.qc:321 +#, c-format +msgid "%s was sniped by %s" +msgstr "^1%s^1 wurde von %s^1 erledigt" + #: qcsrc/server/w_rocketlauncher.qc:2 msgid "Rocket Launcher" msgstr "Rocket Launcher" -#: qcsrc/server/w_rocketlauncher.qc:504 +#: qcsrc/server/w_rocketlauncher.qc:505 #, c-format msgid "%s got too close to %s's rocket" msgstr "%s ist %ss Rakete zu nahe getreten" -#: qcsrc/server/w_rocketlauncher.qc:506 +#: qcsrc/server/w_rocketlauncher.qc:507 #, c-format msgid "%s almost dodged %s's rocket" msgstr "%s ist fast %ss Rakete ausgewichen" -#: qcsrc/server/w_rocketlauncher.qc:508 +#: qcsrc/server/w_rocketlauncher.qc:509 #, c-format msgid "%s ate %s's rocket" msgstr "%s hat %ss Rakete in den Mund genommen" @@ -2702,45 +2813,6 @@ msgstr "%2$1s ^7hat %1$s ^7ein wenig mit einer großen Schrotflinte geschlagen" msgid "%s was gunned by %s" msgstr "^1%s^1 wurde von %s^1 erschossen" -#: qcsrc/server/w_rifle.qc:2 -msgid "Sniper Rifle" -msgstr "Sniper Rifle" - -#: qcsrc/server/w_rifle.qc:229 -#, c-format -msgid "%s shot themself automatically" -msgstr "%s hat sich vollautomatisch selbst erschossen" - -#: qcsrc/server/w_rifle.qc:231 -#, c-format -msgid "%s sniped themself somehow" -msgstr "%s hat so scharf geschossen, dass er sich selbst getroffen hat" - -#: qcsrc/server/w_rifle.qc:238 -#, c-format -msgid "%s failed to hide from %s's bullet hail" -msgstr "%s hat es nicht geschafft, sich vor %ss Kugelhagel zu verstecken" - -#: qcsrc/server/w_rifle.qc:240 -#, c-format -msgid "%s died in %s's bullet hail" -msgstr "%s ist in %ss Kugelhagel gefallen" - -#: qcsrc/server/w_rifle.qc:247 -#, c-format -msgid "%s failed to hide from %s's rifle" -msgstr "%s hat es nicht geschafft, sich vor %ss Gewehr zu verstecken" - -#: qcsrc/server/w_rifle.qc:252 -#, c-format -msgid "%s got hit in the head by %s" -msgstr "%s hat ein Loch im Kopf bekommen; schuld war %s" - -#: qcsrc/server/w_rifle.qc:254 qcsrc/server/w_uzi.qc:321 -#, c-format -msgid "%s was sniped by %s" -msgstr "^1%s^1 wurde von %s^1 erledigt" - #: qcsrc/server/w_tuba.qc:2 #, c-format msgid "@!#%'n Tuba" @@ -2767,3 +2839,18 @@ msgstr "Machine Gun" #, c-format msgid "%s was riddled full of holes by %s" msgstr "%s ist von %s durchlöchert worden wie ein Schweizer Käse" + +#~ msgid "Speedometer" +#~ msgstr "Tachometer" + +#~ msgid "qu/s (hidden)" +#~ msgstr "qu/s (ohne Einheit)" + +#~ msgid "Show accelerometer" +#~ msgstr "Akzelerometer anzeigen" + +#~ msgid "Accelerometer scale:" +#~ msgstr "Akzelerometer-Skalierung:" + +#~ msgid "Sniper Rifle" +#~ msgstr "Sniper Rifle" diff --git a/menu.dat.it.po b/menu.dat.it.po index c68fb46fe..38a1f51cb 100644 --- a/menu.dat.it.po +++ b/menu.dat.it.po @@ -9,8 +9,8 @@ msgstr "" "Project-Id-Version: 0.1preview\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-05-01 13:33+0200\n" -"PO-Revision-Date: 2011-04-29 16:29+0100\n" -"Last-Translator: Antonio 'terencehill' Piu \n" +"PO-Revision-Date: 2011-06-04 12:39+0100\n" +"Last-Translator: Felice Sallustio \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -41,9 +41,7 @@ msgstr "error creating curl handle\n" #: qcsrc/menu/gamecommand.qc:239 msgid "Invalid command. For a list of supported commands, try menu_cmd help.\n" -msgstr "" -"Comando non valido. Per una lista dei comandi supportati, prova menu_cmd " -"help.\n" +msgstr "Comando non valido. Per una lista dei comandi supportati, prova menu_cmd help.\n" #: qcsrc/menu/item/gecko.c:49 msgid "Browser not initialized!" @@ -52,9 +50,7 @@ msgstr "Browser non inizializzato!" #: qcsrc/menu/item/label.c:63 #, c-format msgid "NOTE: label text %s too wide for label, condensed by factor %f\n" -msgstr "" -"NOTA: testo dell'etichetta %s troppo grande per l'etichetta, compresso di un " -"fattore %f\n" +msgstr "NOTA: testo dell'etichetta %s troppo grande per l'etichetta, compresso di un fattore %f\n" #: qcsrc/menu/item/listbox.c:300 #, c-format @@ -66,7 +62,8 @@ msgstr "Oggetto %d" msgid "%d (%s)" msgstr "%d (%s)" -#: qcsrc/menu/item/textslider.c:29 qcsrc/menu/item/textslider.c:31 +#: qcsrc/menu/item/textslider.c:29 +#: qcsrc/menu/item/textslider.c:31 msgid "custom" msgstr "personalizzato" @@ -124,14 +121,8 @@ msgid "Welcome" msgstr "Benvenuto" #: qcsrc/menu/xonotic/dialog_firstrun.c:33 -msgid "" -"Welcome to Xonotic, please select your language preference and enter your " -"player name to get started. You can change these options later through the " -"menu system." -msgstr "" -"Benvenuto in Xonotic, per favore selezione la tua lingua e inserisci il tuo " -"nome come giocatore per iniziare. Puoi cambiare queste opzioni più tardi " -"tramite il menu." +msgid "Welcome to Xonotic, please select your language preference and enter your player name to get started. You can change these options later through the menu system." +msgstr "Benvenuto in Xonotic, per favore selezione la tua lingua e inserisci il tuo nome come giocatore per iniziare. Puoi cambiare queste opzioni più tardi tramite il menu." #: qcsrc/menu/xonotic/dialog_firstrun.c:38 #: qcsrc/menu/xonotic/dialog_settings_misc.c:35 @@ -492,17 +483,21 @@ msgstr "Sfondo del pannello predefinito:" #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:25 #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:37 #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:52 -#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:91 qcsrc/menu/xonotic/util.qc:586 -#: qcsrc/menu/xonotic/util.qc:602 qcsrc/menu/xonotic/util.qc:619 +#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:91 +#: qcsrc/menu/xonotic/util.qc:586 +#: qcsrc/menu/xonotic/util.qc:602 +#: qcsrc/menu/xonotic/util.qc:619 msgid "Disable" msgstr "Disabilita" #: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:30 -#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:77 qcsrc/menu/xonotic/util.qc:591 +#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:77 +#: qcsrc/menu/xonotic/util.qc:591 msgid "Color:" msgstr "Colore:" -#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:35 qcsrc/menu/xonotic/util.qc:599 +#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:35 +#: qcsrc/menu/xonotic/util.qc:599 msgid "Border size:" msgstr "Dimensioni del bordo:" @@ -511,11 +506,13 @@ msgstr "Dimensioni del bordo:" msgid "Team color:" msgstr "Colore team:" -#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:58 qcsrc/menu/xonotic/util.qc:625 +#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:58 +#: qcsrc/menu/xonotic/util.qc:625 msgid "Test team color in configure mode" msgstr "Prova colore team in modalità configurazione" -#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:61 qcsrc/menu/xonotic/util.qc:628 +#: qcsrc/menu/xonotic/dialog_hudsetup_exit.c:61 +#: qcsrc/menu/xonotic/util.qc:628 msgid "Padding:" msgstr "Riempimento:" @@ -2190,15 +2187,14 @@ msgstr "rosa" msgid "spectate" msgstr "spettatore" -#: qcsrc/menu/xonotic/mainwindow.c:35 qcsrc/menu/xonotic/mainwindow.c:38 +#: qcsrc/menu/xonotic/mainwindow.c:35 +#: qcsrc/menu/xonotic/mainwindow.c:38 msgid "Do not press this button again!" msgstr "Non premere questo tasto di nuovo!" #: qcsrc/menu/xonotic/maplist.c:278 -msgid "" -"Huh? Can't play this (m is NULL). Refiltering so this won't happen again.\n" -msgstr "" -"Huh? Can't play this (m is NULL). Refiltering so this won't happen again.\n" +msgid "Huh? Can't play this (m is NULL). Refiltering so this won't happen again.\n" +msgstr "Huh? Can't play this (m is NULL). Refiltering so this won't happen again.\n" #: qcsrc/menu/xonotic/maplist.c:286 #, c-format @@ -2206,12 +2202,8 @@ msgid "%s's Xonotic Server" msgstr "Server Xonotic di %s" #: qcsrc/menu/xonotic/maplist.c:291 -msgid "" -"Huh? Can't play this (invalid game type). Refiltering so this won't happen " -"again.\n" -msgstr "" -"Huh? Can't play this (invalid game type). Refiltering so this won't happen " -"again.\n" +msgid "Huh? Can't play this (invalid game type). Refiltering so this won't happen again.\n" +msgstr "Huh? Can't play this (invalid game type). Refiltering so this won't happen again.\n" #: qcsrc/menu/xonotic/playermodel.c:174 msgid "" @@ -2284,8 +2276,7 @@ msgstr "Ricevuta richiesta HTTP per un invalido id %d.\n" #: qcsrc/menu/xonotic/util.qc:285 #, c-format msgid "error receiving update notification: status is %d\n" -msgstr "" -"errore durante la notifica d'aggiornamento: lo stato è impostato su %d\n" +msgstr "errore durante la notifica d'aggiornamento: lo stato è impostato su %d\n" #: qcsrc/menu/xonotic/util.qc:290 msgid "error: received HTML instead of an update notification\n" @@ -2399,8 +2390,10 @@ msgstr "@!#%'n Tuba Throwing" msgid "Background:" msgstr "Sfondo:" -#: qcsrc/menu/xonotic/util.qc:585 qcsrc/menu/xonotic/util.qc:601 -#: qcsrc/menu/xonotic/util.qc:610 qcsrc/menu/xonotic/util.qc:618 +#: qcsrc/menu/xonotic/util.qc:585 +#: qcsrc/menu/xonotic/util.qc:601 +#: qcsrc/menu/xonotic/util.qc:610 +#: qcsrc/menu/xonotic/util.qc:618 #: qcsrc/menu/xonotic/util.qc:630 msgid "Default" msgstr "Predefinito" @@ -2489,7 +2482,8 @@ msgstr "Fireball" msgid "%s forgot about some firemine" msgstr "%s s'è dimenticato di alcune mine infuocate" -#: qcsrc/server/w_fireball.qc:419 qcsrc/server/w_hlac.qc:240 +#: qcsrc/server/w_fireball.qc:419 +#: qcsrc/server/w_hlac.qc:240 #, c-format msgid "%s should have used a smaller gun" msgstr "%s avrebbe dovuto usare un'arma più piccola" @@ -2557,7 +2551,8 @@ msgstr "%s ha mangiato la granata di %s" msgid "Hagar" msgstr "Hagar" -#: qcsrc/server/w_hagar.qc:209 qcsrc/server/w_seeker.qc:655 +#: qcsrc/server/w_hagar.qc:209 +#: qcsrc/server/w_seeker.qc:655 #, c-format msgid "%s played with tiny rockets" msgstr "%s ha giocato con piccoli razzi" @@ -2567,7 +2562,8 @@ msgstr "%s ha giocato con piccoli razzi" msgid "%s hoped %s's missiles wouldn't bounce" msgstr "%s ha sperato che il missile di %s non rimbalzasse" -#: qcsrc/server/w_hagar.qc:215 qcsrc/server/w_seeker.qc:661 +#: qcsrc/server/w_hagar.qc:215 +#: qcsrc/server/w_seeker.qc:661 #, c-format msgid "%s was pummeled by %s" msgstr "%s è stato preso a pugni da %s" @@ -2585,9 +2581,12 @@ msgstr "%s è stato abbattuto da %s" msgid "Grappling Hook" msgstr "Grappling Hook" -#: qcsrc/server/w_hook.qc:266 qcsrc/server/w_minstanex.qc:290 -#: qcsrc/server/w_nex.qc:267 qcsrc/server/w_porto.qc:296 -#: qcsrc/server/w_shotgun.qc:203 qcsrc/server/w_uzi.qc:317 +#: qcsrc/server/w_hook.qc:266 +#: qcsrc/server/w_minstanex.qc:290 +#: qcsrc/server/w_nex.qc:267 +#: qcsrc/server/w_porto.qc:296 +#: qcsrc/server/w_shotgun.qc:203 +#: qcsrc/server/w_uzi.qc:317 #, c-format msgid "%s did the impossible" msgstr "%s ha fatto l'impossibile" @@ -2620,7 +2619,8 @@ msgstr "%s è stato \"laserato\" alla morte da %s" msgid "Mine Layer" msgstr "Mine Layer" -#: qcsrc/server/w_minelayer.qc:495 qcsrc/server/w_rocketlauncher.qc:500 +#: qcsrc/server/w_minelayer.qc:495 +#: qcsrc/server/w_rocketlauncher.qc:500 #, c-format msgid "%s exploded" msgstr "%s è esploso" @@ -2644,7 +2644,8 @@ msgstr "%s è passato sopra la mina di %s" msgid "MinstaNex" msgstr "MinstaNex" -#: qcsrc/server/w_minstanex.qc:292 qcsrc/server/w_nex.qc:269 +#: qcsrc/server/w_minstanex.qc:292 +#: qcsrc/server/w_nex.qc:269 #, c-format msgid "%s has been vaporized by %s" msgstr "%s è stato vaporizzato da %s" @@ -2738,7 +2739,8 @@ msgstr "%s non è riuscito a nascondersi dal fucile di %s" msgid "%s got hit in the head by %s" msgstr "%s ha preso un colpo in testa da %s" -#: qcsrc/server/w_rifle.qc:254 qcsrc/server/w_uzi.qc:321 +#: qcsrc/server/w_rifle.qc:254 +#: qcsrc/server/w_uzi.qc:321 #, c-format msgid "%s was sniped by %s" msgstr "%s è stato fucilato da %s" @@ -2769,12 +2771,11 @@ msgstr "%s è stato riempito di buchi da %s" #~ msgid "%d/%d" #~ msgstr "%d/%d" - #~ msgid "" #~ "Please answer a few initial questions to enhance the game experience." #~ msgstr "" #~ "Per favore rispondi a poche domande iniziali per migliorare l'esperienza " #~ "di gioco." - #~ msgid "Waypoint settings:" #~ msgstr "Impostazioni dei waypoint" + diff --git a/models/player/erebus.iqm b/models/player/erebus.iqm index fbf8db8d8..106333058 100644 Binary files a/models/player/erebus.iqm and b/models/player/erebus.iqm differ diff --git a/models/player/erebus.iqm.framegroups b/models/player/erebus.iqm.framegroups index 1d8d493b9..07516e08c 100644 --- a/models/player/erebus.iqm.framegroups +++ b/models/player/erebus.iqm.framegroups @@ -6,19 +6,19 @@ 112 16 15.000000 0 // duckjump 128 15 5.000000 1 // duckidle 143 41 5.000000 1 // idle -184 21 25.000000 0 // jump -205 15 24.000000 0 // painone -220 17 34.000000 0 // paintwo -237 3 3.000000 0 // shoot -240 21 15.000000 1 // taunt -261 20 29.000000 1 // run -282 20 29.000000 1 // runbackwards -303 20 29.000000 1 // strafeleft -324 20 29.000000 1 // straferight -345 2 15.000000 0 // deadone -347 2 15.000000 0 // deadtwo -349 20 29.000000 1 // forwardright -370 20 29.000000 1 // forwardleft -391 20 29.000000 1 // backright -412 20 29.000000 1 // backleft -433 21 20.000000 0 // melee +184 160 25.000000 0 // jump +344 15 24.000000 0 // painone +359 17 34.000000 0 // paintwo +376 3 3.000000 0 // shoot +379 21 15.000000 1 // taunt +400 20 29.000000 1 // run +421 20 29.000000 1 // runbackwards +442 20 29.000000 1 // strafeleft +463 20 29.000000 1 // straferight +484 2 15.000000 0 // deadone +486 2 15.000000 0 // deadtwo +488 20 29.000000 1 // forwardright +509 20 29.000000 1 // forwardleft +530 20 29.000000 1 // backright +551 20 29.000000 1 // backleft +572 21 20.000000 0 // melee diff --git a/models/player/erebus_lod1.iqm b/models/player/erebus_lod1.iqm index b856898b4..fc3fc19fa 100644 Binary files a/models/player/erebus_lod1.iqm and b/models/player/erebus_lod1.iqm differ diff --git a/models/player/erebus_lod1.iqm.framegroups b/models/player/erebus_lod1.iqm.framegroups index 1d8d493b9..07516e08c 100644 --- a/models/player/erebus_lod1.iqm.framegroups +++ b/models/player/erebus_lod1.iqm.framegroups @@ -6,19 +6,19 @@ 112 16 15.000000 0 // duckjump 128 15 5.000000 1 // duckidle 143 41 5.000000 1 // idle -184 21 25.000000 0 // jump -205 15 24.000000 0 // painone -220 17 34.000000 0 // paintwo -237 3 3.000000 0 // shoot -240 21 15.000000 1 // taunt -261 20 29.000000 1 // run -282 20 29.000000 1 // runbackwards -303 20 29.000000 1 // strafeleft -324 20 29.000000 1 // straferight -345 2 15.000000 0 // deadone -347 2 15.000000 0 // deadtwo -349 20 29.000000 1 // forwardright -370 20 29.000000 1 // forwardleft -391 20 29.000000 1 // backright -412 20 29.000000 1 // backleft -433 21 20.000000 0 // melee +184 160 25.000000 0 // jump +344 15 24.000000 0 // painone +359 17 34.000000 0 // paintwo +376 3 3.000000 0 // shoot +379 21 15.000000 1 // taunt +400 20 29.000000 1 // run +421 20 29.000000 1 // runbackwards +442 20 29.000000 1 // strafeleft +463 20 29.000000 1 // straferight +484 2 15.000000 0 // deadone +486 2 15.000000 0 // deadtwo +488 20 29.000000 1 // forwardright +509 20 29.000000 1 // forwardleft +530 20 29.000000 1 // backright +551 20 29.000000 1 // backleft +572 21 20.000000 0 // melee diff --git a/models/player/erebus_lod2.iqm b/models/player/erebus_lod2.iqm index 68cadb334..159dee54e 100644 Binary files a/models/player/erebus_lod2.iqm and b/models/player/erebus_lod2.iqm differ diff --git a/models/player/erebus_lod2.iqm.framegroups b/models/player/erebus_lod2.iqm.framegroups index 1d8d493b9..07516e08c 100644 --- a/models/player/erebus_lod2.iqm.framegroups +++ b/models/player/erebus_lod2.iqm.framegroups @@ -6,19 +6,19 @@ 112 16 15.000000 0 // duckjump 128 15 5.000000 1 // duckidle 143 41 5.000000 1 // idle -184 21 25.000000 0 // jump -205 15 24.000000 0 // painone -220 17 34.000000 0 // paintwo -237 3 3.000000 0 // shoot -240 21 15.000000 1 // taunt -261 20 29.000000 1 // run -282 20 29.000000 1 // runbackwards -303 20 29.000000 1 // strafeleft -324 20 29.000000 1 // straferight -345 2 15.000000 0 // deadone -347 2 15.000000 0 // deadtwo -349 20 29.000000 1 // forwardright -370 20 29.000000 1 // forwardleft -391 20 29.000000 1 // backright -412 20 29.000000 1 // backleft -433 21 20.000000 0 // melee +184 160 25.000000 0 // jump +344 15 24.000000 0 // painone +359 17 34.000000 0 // paintwo +376 3 3.000000 0 // shoot +379 21 15.000000 1 // taunt +400 20 29.000000 1 // run +421 20 29.000000 1 // runbackwards +442 20 29.000000 1 // strafeleft +463 20 29.000000 1 // straferight +484 2 15.000000 0 // deadone +486 2 15.000000 0 // deadtwo +488 20 29.000000 1 // forwardright +509 20 29.000000 1 // forwardleft +530 20 29.000000 1 // backright +551 20 29.000000 1 // backleft +572 21 20.000000 0 // melee diff --git a/models/player/gak.iqm b/models/player/gak.iqm index 533df54ac..c423ecd41 100644 Binary files a/models/player/gak.iqm and b/models/player/gak.iqm differ diff --git a/models/player/gak.iqm.framegroups b/models/player/gak.iqm.framegroups index 9dc589e5c..94baca733 100644 --- a/models/player/gak.iqm.framegroups +++ b/models/player/gak.iqm.framegroups @@ -6,19 +6,19 @@ 112 16 15.000000 0 // duckjump 128 15 5.000000 1 // duckidle 143 41 5.000000 1 // idle -184 21 25.000000 0 // jump -205 15 15.000000 0 // painone -220 17 15.000000 0 // paintwo -237 3 15.000000 0 // shoot -240 21 15.000000 1 // taunt -261 21 35.000000 1 // run -282 21 35.000000 1 // runbackwards -303 21 35.000000 1 // strafeleft -324 21 35.000000 1 // straferight -345 2 15.000000 0 // deadone -347 2 15.000000 0 // deadtwo -349 21 35.000000 1 // forwardright -370 21 35.000000 1 // forwardleft -391 21 35.000000 1 // backright -412 21 30.000000 1 // backleft -433 21 20.000000 0 // melee \ No newline at end of file +184 160 25.000000 0 // jump +344 15 15.000000 0 // painone +359 17 15.000000 0 // paintwo +376 3 15.000000 0 // shoot +379 21 15.000000 1 // taunt +400 21 35.000000 1 // run +421 21 35.000000 1 // runbackwards +442 21 35.000000 1 // strafeleft +463 21 35.000000 1 // straferight +484 2 15.000000 0 // deadone +486 2 15.000000 0 // deadtwo +488 21 35.000000 1 // forwardright +598 21 35.000000 1 // forwardleft +530 21 35.000000 1 // backright +551 21 30.000000 1 // backleft +572 21 20.000000 0 // melee \ No newline at end of file diff --git a/models/player/gak_lod1.iqm b/models/player/gak_lod1.iqm index b1f48c31c..8b4b72dc7 100644 Binary files a/models/player/gak_lod1.iqm and b/models/player/gak_lod1.iqm differ diff --git a/models/player/gak_lod1.iqm.framegroups b/models/player/gak_lod1.iqm.framegroups index 9dc589e5c..94baca733 100644 --- a/models/player/gak_lod1.iqm.framegroups +++ b/models/player/gak_lod1.iqm.framegroups @@ -6,19 +6,19 @@ 112 16 15.000000 0 // duckjump 128 15 5.000000 1 // duckidle 143 41 5.000000 1 // idle -184 21 25.000000 0 // jump -205 15 15.000000 0 // painone -220 17 15.000000 0 // paintwo -237 3 15.000000 0 // shoot -240 21 15.000000 1 // taunt -261 21 35.000000 1 // run -282 21 35.000000 1 // runbackwards -303 21 35.000000 1 // strafeleft -324 21 35.000000 1 // straferight -345 2 15.000000 0 // deadone -347 2 15.000000 0 // deadtwo -349 21 35.000000 1 // forwardright -370 21 35.000000 1 // forwardleft -391 21 35.000000 1 // backright -412 21 30.000000 1 // backleft -433 21 20.000000 0 // melee \ No newline at end of file +184 160 25.000000 0 // jump +344 15 15.000000 0 // painone +359 17 15.000000 0 // paintwo +376 3 15.000000 0 // shoot +379 21 15.000000 1 // taunt +400 21 35.000000 1 // run +421 21 35.000000 1 // runbackwards +442 21 35.000000 1 // strafeleft +463 21 35.000000 1 // straferight +484 2 15.000000 0 // deadone +486 2 15.000000 0 // deadtwo +488 21 35.000000 1 // forwardright +598 21 35.000000 1 // forwardleft +530 21 35.000000 1 // backright +551 21 30.000000 1 // backleft +572 21 20.000000 0 // melee \ No newline at end of file diff --git a/models/player/gak_lod2.iqm b/models/player/gak_lod2.iqm index 001e2a0e7..f4a808044 100644 Binary files a/models/player/gak_lod2.iqm and b/models/player/gak_lod2.iqm differ diff --git a/models/player/gak_lod2.iqm.framegroups b/models/player/gak_lod2.iqm.framegroups index 9dc589e5c..94baca733 100644 --- a/models/player/gak_lod2.iqm.framegroups +++ b/models/player/gak_lod2.iqm.framegroups @@ -6,19 +6,19 @@ 112 16 15.000000 0 // duckjump 128 15 5.000000 1 // duckidle 143 41 5.000000 1 // idle -184 21 25.000000 0 // jump -205 15 15.000000 0 // painone -220 17 15.000000 0 // paintwo -237 3 15.000000 0 // shoot -240 21 15.000000 1 // taunt -261 21 35.000000 1 // run -282 21 35.000000 1 // runbackwards -303 21 35.000000 1 // strafeleft -324 21 35.000000 1 // straferight -345 2 15.000000 0 // deadone -347 2 15.000000 0 // deadtwo -349 21 35.000000 1 // forwardright -370 21 35.000000 1 // forwardleft -391 21 35.000000 1 // backright -412 21 30.000000 1 // backleft -433 21 20.000000 0 // melee \ No newline at end of file +184 160 25.000000 0 // jump +344 15 15.000000 0 // painone +359 17 15.000000 0 // paintwo +376 3 15.000000 0 // shoot +379 21 15.000000 1 // taunt +400 21 35.000000 1 // run +421 21 35.000000 1 // runbackwards +442 21 35.000000 1 // strafeleft +463 21 35.000000 1 // straferight +484 2 15.000000 0 // deadone +486 2 15.000000 0 // deadtwo +488 21 35.000000 1 // forwardright +598 21 35.000000 1 // forwardleft +530 21 35.000000 1 // backright +551 21 30.000000 1 // backleft +572 21 20.000000 0 // melee \ No newline at end of file diff --git a/models/player/gakarmored.iqm b/models/player/gakarmored.iqm index b77766e0d..400812c5b 100644 Binary files a/models/player/gakarmored.iqm and b/models/player/gakarmored.iqm differ diff --git a/models/player/gakarmored.iqm.framegroups b/models/player/gakarmored.iqm.framegroups index 9dc589e5c..94baca733 100644 --- a/models/player/gakarmored.iqm.framegroups +++ b/models/player/gakarmored.iqm.framegroups @@ -6,19 +6,19 @@ 112 16 15.000000 0 // duckjump 128 15 5.000000 1 // duckidle 143 41 5.000000 1 // idle -184 21 25.000000 0 // jump -205 15 15.000000 0 // painone -220 17 15.000000 0 // paintwo -237 3 15.000000 0 // shoot -240 21 15.000000 1 // taunt -261 21 35.000000 1 // run -282 21 35.000000 1 // runbackwards -303 21 35.000000 1 // strafeleft -324 21 35.000000 1 // straferight -345 2 15.000000 0 // deadone -347 2 15.000000 0 // deadtwo -349 21 35.000000 1 // forwardright -370 21 35.000000 1 // forwardleft -391 21 35.000000 1 // backright -412 21 30.000000 1 // backleft -433 21 20.000000 0 // melee \ No newline at end of file +184 160 25.000000 0 // jump +344 15 15.000000 0 // painone +359 17 15.000000 0 // paintwo +376 3 15.000000 0 // shoot +379 21 15.000000 1 // taunt +400 21 35.000000 1 // run +421 21 35.000000 1 // runbackwards +442 21 35.000000 1 // strafeleft +463 21 35.000000 1 // straferight +484 2 15.000000 0 // deadone +486 2 15.000000 0 // deadtwo +488 21 35.000000 1 // forwardright +598 21 35.000000 1 // forwardleft +530 21 35.000000 1 // backright +551 21 30.000000 1 // backleft +572 21 20.000000 0 // melee \ No newline at end of file diff --git a/models/player/gakarmored_lod1.iqm b/models/player/gakarmored_lod1.iqm index 6e7c68444..27f7e03a7 100644 Binary files a/models/player/gakarmored_lod1.iqm and b/models/player/gakarmored_lod1.iqm differ diff --git a/models/player/gakarmored_lod1.iqm.framegroups b/models/player/gakarmored_lod1.iqm.framegroups index 9dc589e5c..94baca733 100644 --- a/models/player/gakarmored_lod1.iqm.framegroups +++ b/models/player/gakarmored_lod1.iqm.framegroups @@ -6,19 +6,19 @@ 112 16 15.000000 0 // duckjump 128 15 5.000000 1 // duckidle 143 41 5.000000 1 // idle -184 21 25.000000 0 // jump -205 15 15.000000 0 // painone -220 17 15.000000 0 // paintwo -237 3 15.000000 0 // shoot -240 21 15.000000 1 // taunt -261 21 35.000000 1 // run -282 21 35.000000 1 // runbackwards -303 21 35.000000 1 // strafeleft -324 21 35.000000 1 // straferight -345 2 15.000000 0 // deadone -347 2 15.000000 0 // deadtwo -349 21 35.000000 1 // forwardright -370 21 35.000000 1 // forwardleft -391 21 35.000000 1 // backright -412 21 30.000000 1 // backleft -433 21 20.000000 0 // melee \ No newline at end of file +184 160 25.000000 0 // jump +344 15 15.000000 0 // painone +359 17 15.000000 0 // paintwo +376 3 15.000000 0 // shoot +379 21 15.000000 1 // taunt +400 21 35.000000 1 // run +421 21 35.000000 1 // runbackwards +442 21 35.000000 1 // strafeleft +463 21 35.000000 1 // straferight +484 2 15.000000 0 // deadone +486 2 15.000000 0 // deadtwo +488 21 35.000000 1 // forwardright +598 21 35.000000 1 // forwardleft +530 21 35.000000 1 // backright +551 21 30.000000 1 // backleft +572 21 20.000000 0 // melee \ No newline at end of file diff --git a/models/player/gakarmored_lod2.iqm b/models/player/gakarmored_lod2.iqm index e259d14ef..2d8fa0d64 100644 Binary files a/models/player/gakarmored_lod2.iqm and b/models/player/gakarmored_lod2.iqm differ diff --git a/models/player/gakarmored_lod2.iqm.framegroups b/models/player/gakarmored_lod2.iqm.framegroups index 9dc589e5c..94baca733 100644 --- a/models/player/gakarmored_lod2.iqm.framegroups +++ b/models/player/gakarmored_lod2.iqm.framegroups @@ -6,19 +6,19 @@ 112 16 15.000000 0 // duckjump 128 15 5.000000 1 // duckidle 143 41 5.000000 1 // idle -184 21 25.000000 0 // jump -205 15 15.000000 0 // painone -220 17 15.000000 0 // paintwo -237 3 15.000000 0 // shoot -240 21 15.000000 1 // taunt -261 21 35.000000 1 // run -282 21 35.000000 1 // runbackwards -303 21 35.000000 1 // strafeleft -324 21 35.000000 1 // straferight -345 2 15.000000 0 // deadone -347 2 15.000000 0 // deadtwo -349 21 35.000000 1 // forwardright -370 21 35.000000 1 // forwardleft -391 21 35.000000 1 // backright -412 21 30.000000 1 // backleft -433 21 20.000000 0 // melee \ No newline at end of file +184 160 25.000000 0 // jump +344 15 15.000000 0 // painone +359 17 15.000000 0 // paintwo +376 3 15.000000 0 // shoot +379 21 15.000000 1 // taunt +400 21 35.000000 1 // run +421 21 35.000000 1 // runbackwards +442 21 35.000000 1 // strafeleft +463 21 35.000000 1 // straferight +484 2 15.000000 0 // deadone +486 2 15.000000 0 // deadtwo +488 21 35.000000 1 // forwardright +598 21 35.000000 1 // forwardleft +530 21 35.000000 1 // backright +551 21 30.000000 1 // backleft +572 21 20.000000 0 // melee \ No newline at end of file diff --git a/models/player/gakmasked.iqm b/models/player/gakmasked.iqm index 557324371..2c283abff 100644 Binary files a/models/player/gakmasked.iqm and b/models/player/gakmasked.iqm differ diff --git a/models/player/gakmasked.iqm.framegroups b/models/player/gakmasked.iqm.framegroups index 9dc589e5c..94baca733 100644 --- a/models/player/gakmasked.iqm.framegroups +++ b/models/player/gakmasked.iqm.framegroups @@ -6,19 +6,19 @@ 112 16 15.000000 0 // duckjump 128 15 5.000000 1 // duckidle 143 41 5.000000 1 // idle -184 21 25.000000 0 // jump -205 15 15.000000 0 // painone -220 17 15.000000 0 // paintwo -237 3 15.000000 0 // shoot -240 21 15.000000 1 // taunt -261 21 35.000000 1 // run -282 21 35.000000 1 // runbackwards -303 21 35.000000 1 // strafeleft -324 21 35.000000 1 // straferight -345 2 15.000000 0 // deadone -347 2 15.000000 0 // deadtwo -349 21 35.000000 1 // forwardright -370 21 35.000000 1 // forwardleft -391 21 35.000000 1 // backright -412 21 30.000000 1 // backleft -433 21 20.000000 0 // melee \ No newline at end of file +184 160 25.000000 0 // jump +344 15 15.000000 0 // painone +359 17 15.000000 0 // paintwo +376 3 15.000000 0 // shoot +379 21 15.000000 1 // taunt +400 21 35.000000 1 // run +421 21 35.000000 1 // runbackwards +442 21 35.000000 1 // strafeleft +463 21 35.000000 1 // straferight +484 2 15.000000 0 // deadone +486 2 15.000000 0 // deadtwo +488 21 35.000000 1 // forwardright +598 21 35.000000 1 // forwardleft +530 21 35.000000 1 // backright +551 21 30.000000 1 // backleft +572 21 20.000000 0 // melee \ No newline at end of file diff --git a/models/player/gakmasked_lod1.iqm b/models/player/gakmasked_lod1.iqm index 07d81d9a2..e5e58a762 100644 Binary files a/models/player/gakmasked_lod1.iqm and b/models/player/gakmasked_lod1.iqm differ diff --git a/models/player/gakmasked_lod1.iqm.framegroups b/models/player/gakmasked_lod1.iqm.framegroups index 9dc589e5c..94baca733 100644 --- a/models/player/gakmasked_lod1.iqm.framegroups +++ b/models/player/gakmasked_lod1.iqm.framegroups @@ -6,19 +6,19 @@ 112 16 15.000000 0 // duckjump 128 15 5.000000 1 // duckidle 143 41 5.000000 1 // idle -184 21 25.000000 0 // jump -205 15 15.000000 0 // painone -220 17 15.000000 0 // paintwo -237 3 15.000000 0 // shoot -240 21 15.000000 1 // taunt -261 21 35.000000 1 // run -282 21 35.000000 1 // runbackwards -303 21 35.000000 1 // strafeleft -324 21 35.000000 1 // straferight -345 2 15.000000 0 // deadone -347 2 15.000000 0 // deadtwo -349 21 35.000000 1 // forwardright -370 21 35.000000 1 // forwardleft -391 21 35.000000 1 // backright -412 21 30.000000 1 // backleft -433 21 20.000000 0 // melee \ No newline at end of file +184 160 25.000000 0 // jump +344 15 15.000000 0 // painone +359 17 15.000000 0 // paintwo +376 3 15.000000 0 // shoot +379 21 15.000000 1 // taunt +400 21 35.000000 1 // run +421 21 35.000000 1 // runbackwards +442 21 35.000000 1 // strafeleft +463 21 35.000000 1 // straferight +484 2 15.000000 0 // deadone +486 2 15.000000 0 // deadtwo +488 21 35.000000 1 // forwardright +598 21 35.000000 1 // forwardleft +530 21 35.000000 1 // backright +551 21 30.000000 1 // backleft +572 21 20.000000 0 // melee \ No newline at end of file diff --git a/models/player/gakmasked_lod2.iqm b/models/player/gakmasked_lod2.iqm index ebe8b41a2..142e28a57 100644 Binary files a/models/player/gakmasked_lod2.iqm and b/models/player/gakmasked_lod2.iqm differ diff --git a/models/player/gakmasked_lod2.iqm.framegroups b/models/player/gakmasked_lod2.iqm.framegroups index 9dc589e5c..94baca733 100644 --- a/models/player/gakmasked_lod2.iqm.framegroups +++ b/models/player/gakmasked_lod2.iqm.framegroups @@ -6,19 +6,19 @@ 112 16 15.000000 0 // duckjump 128 15 5.000000 1 // duckidle 143 41 5.000000 1 // idle -184 21 25.000000 0 // jump -205 15 15.000000 0 // painone -220 17 15.000000 0 // paintwo -237 3 15.000000 0 // shoot -240 21 15.000000 1 // taunt -261 21 35.000000 1 // run -282 21 35.000000 1 // runbackwards -303 21 35.000000 1 // strafeleft -324 21 35.000000 1 // straferight -345 2 15.000000 0 // deadone -347 2 15.000000 0 // deadtwo -349 21 35.000000 1 // forwardright -370 21 35.000000 1 // forwardleft -391 21 35.000000 1 // backright -412 21 30.000000 1 // backleft -433 21 20.000000 0 // melee \ No newline at end of file +184 160 25.000000 0 // jump +344 15 15.000000 0 // painone +359 17 15.000000 0 // paintwo +376 3 15.000000 0 // shoot +379 21 15.000000 1 // taunt +400 21 35.000000 1 // run +421 21 35.000000 1 // runbackwards +442 21 35.000000 1 // strafeleft +463 21 35.000000 1 // straferight +484 2 15.000000 0 // deadone +486 2 15.000000 0 // deadtwo +488 21 35.000000 1 // forwardright +598 21 35.000000 1 // forwardleft +530 21 35.000000 1 // backright +551 21 30.000000 1 // backleft +572 21 20.000000 0 // melee \ No newline at end of file diff --git a/models/player/ignis.iqm b/models/player/ignis.iqm index d0e40a4bf..692be86d8 100644 Binary files a/models/player/ignis.iqm and b/models/player/ignis.iqm differ diff --git a/models/player/ignis.iqm.framegroups b/models/player/ignis.iqm.framegroups index 1d8d493b9..07516e08c 100644 --- a/models/player/ignis.iqm.framegroups +++ b/models/player/ignis.iqm.framegroups @@ -6,19 +6,19 @@ 112 16 15.000000 0 // duckjump 128 15 5.000000 1 // duckidle 143 41 5.000000 1 // idle -184 21 25.000000 0 // jump -205 15 24.000000 0 // painone -220 17 34.000000 0 // paintwo -237 3 3.000000 0 // shoot -240 21 15.000000 1 // taunt -261 20 29.000000 1 // run -282 20 29.000000 1 // runbackwards -303 20 29.000000 1 // strafeleft -324 20 29.000000 1 // straferight -345 2 15.000000 0 // deadone -347 2 15.000000 0 // deadtwo -349 20 29.000000 1 // forwardright -370 20 29.000000 1 // forwardleft -391 20 29.000000 1 // backright -412 20 29.000000 1 // backleft -433 21 20.000000 0 // melee +184 160 25.000000 0 // jump +344 15 24.000000 0 // painone +359 17 34.000000 0 // paintwo +376 3 3.000000 0 // shoot +379 21 15.000000 1 // taunt +400 20 29.000000 1 // run +421 20 29.000000 1 // runbackwards +442 20 29.000000 1 // strafeleft +463 20 29.000000 1 // straferight +484 2 15.000000 0 // deadone +486 2 15.000000 0 // deadtwo +488 20 29.000000 1 // forwardright +509 20 29.000000 1 // forwardleft +530 20 29.000000 1 // backright +551 20 29.000000 1 // backleft +572 21 20.000000 0 // melee diff --git a/models/player/ignis_lod1.iqm b/models/player/ignis_lod1.iqm index c1a1c0129..15fd6e2dc 100644 Binary files a/models/player/ignis_lod1.iqm and b/models/player/ignis_lod1.iqm differ diff --git a/models/player/ignis_lod1.iqm.framegroups b/models/player/ignis_lod1.iqm.framegroups index 1d8d493b9..07516e08c 100644 --- a/models/player/ignis_lod1.iqm.framegroups +++ b/models/player/ignis_lod1.iqm.framegroups @@ -6,19 +6,19 @@ 112 16 15.000000 0 // duckjump 128 15 5.000000 1 // duckidle 143 41 5.000000 1 // idle -184 21 25.000000 0 // jump -205 15 24.000000 0 // painone -220 17 34.000000 0 // paintwo -237 3 3.000000 0 // shoot -240 21 15.000000 1 // taunt -261 20 29.000000 1 // run -282 20 29.000000 1 // runbackwards -303 20 29.000000 1 // strafeleft -324 20 29.000000 1 // straferight -345 2 15.000000 0 // deadone -347 2 15.000000 0 // deadtwo -349 20 29.000000 1 // forwardright -370 20 29.000000 1 // forwardleft -391 20 29.000000 1 // backright -412 20 29.000000 1 // backleft -433 21 20.000000 0 // melee +184 160 25.000000 0 // jump +344 15 24.000000 0 // painone +359 17 34.000000 0 // paintwo +376 3 3.000000 0 // shoot +379 21 15.000000 1 // taunt +400 20 29.000000 1 // run +421 20 29.000000 1 // runbackwards +442 20 29.000000 1 // strafeleft +463 20 29.000000 1 // straferight +484 2 15.000000 0 // deadone +486 2 15.000000 0 // deadtwo +488 20 29.000000 1 // forwardright +509 20 29.000000 1 // forwardleft +530 20 29.000000 1 // backright +551 20 29.000000 1 // backleft +572 21 20.000000 0 // melee diff --git a/models/player/ignis_lod2.iqm b/models/player/ignis_lod2.iqm index 5e15baf2d..caa5ebe19 100644 Binary files a/models/player/ignis_lod2.iqm and b/models/player/ignis_lod2.iqm differ diff --git a/models/player/ignis_lod2.iqm.framegroups b/models/player/ignis_lod2.iqm.framegroups index 1d8d493b9..07516e08c 100644 --- a/models/player/ignis_lod2.iqm.framegroups +++ b/models/player/ignis_lod2.iqm.framegroups @@ -6,19 +6,19 @@ 112 16 15.000000 0 // duckjump 128 15 5.000000 1 // duckidle 143 41 5.000000 1 // idle -184 21 25.000000 0 // jump -205 15 24.000000 0 // painone -220 17 34.000000 0 // paintwo -237 3 3.000000 0 // shoot -240 21 15.000000 1 // taunt -261 20 29.000000 1 // run -282 20 29.000000 1 // runbackwards -303 20 29.000000 1 // strafeleft -324 20 29.000000 1 // straferight -345 2 15.000000 0 // deadone -347 2 15.000000 0 // deadtwo -349 20 29.000000 1 // forwardright -370 20 29.000000 1 // forwardleft -391 20 29.000000 1 // backright -412 20 29.000000 1 // backleft -433 21 20.000000 0 // melee +184 160 25.000000 0 // jump +344 15 24.000000 0 // painone +359 17 34.000000 0 // paintwo +376 3 3.000000 0 // shoot +379 21 15.000000 1 // taunt +400 20 29.000000 1 // run +421 20 29.000000 1 // runbackwards +442 20 29.000000 1 // strafeleft +463 20 29.000000 1 // straferight +484 2 15.000000 0 // deadone +486 2 15.000000 0 // deadtwo +488 20 29.000000 1 // forwardright +509 20 29.000000 1 // forwardleft +530 20 29.000000 1 // backright +551 20 29.000000 1 // backleft +572 21 20.000000 0 // melee diff --git a/models/player/ignishalfmasked.iqm b/models/player/ignishalfmasked.iqm index d412189cd..98ee7cf7c 100644 Binary files a/models/player/ignishalfmasked.iqm and b/models/player/ignishalfmasked.iqm differ diff --git a/models/player/ignishalfmasked.iqm.framegroups b/models/player/ignishalfmasked.iqm.framegroups index 9dc589e5c..07516e08c 100644 --- a/models/player/ignishalfmasked.iqm.framegroups +++ b/models/player/ignishalfmasked.iqm.framegroups @@ -1,24 +1,24 @@ -0 36 15.000000 0 // dieone -36 20 15.000000 0 // dietwo -56 15 15.000000 1 // draw +0 36 30.000000 0 // dieone +36 20 25.000000 0 // dietwo +56 15 30.000000 1 // draw 71 20 15.000000 1 // duck 91 21 30.000000 1 // duckwalk 112 16 15.000000 0 // duckjump 128 15 5.000000 1 // duckidle 143 41 5.000000 1 // idle -184 21 25.000000 0 // jump -205 15 15.000000 0 // painone -220 17 15.000000 0 // paintwo -237 3 15.000000 0 // shoot -240 21 15.000000 1 // taunt -261 21 35.000000 1 // run -282 21 35.000000 1 // runbackwards -303 21 35.000000 1 // strafeleft -324 21 35.000000 1 // straferight -345 2 15.000000 0 // deadone -347 2 15.000000 0 // deadtwo -349 21 35.000000 1 // forwardright -370 21 35.000000 1 // forwardleft -391 21 35.000000 1 // backright -412 21 30.000000 1 // backleft -433 21 20.000000 0 // melee \ No newline at end of file +184 160 25.000000 0 // jump +344 15 24.000000 0 // painone +359 17 34.000000 0 // paintwo +376 3 3.000000 0 // shoot +379 21 15.000000 1 // taunt +400 20 29.000000 1 // run +421 20 29.000000 1 // runbackwards +442 20 29.000000 1 // strafeleft +463 20 29.000000 1 // straferight +484 2 15.000000 0 // deadone +486 2 15.000000 0 // deadtwo +488 20 29.000000 1 // forwardright +509 20 29.000000 1 // forwardleft +530 20 29.000000 1 // backright +551 20 29.000000 1 // backleft +572 21 20.000000 0 // melee diff --git a/models/player/ignishalfmasked_lod1.iqm b/models/player/ignishalfmasked_lod1.iqm index 4e0063e92..a1421f17a 100644 Binary files a/models/player/ignishalfmasked_lod1.iqm and b/models/player/ignishalfmasked_lod1.iqm differ diff --git a/models/player/ignishalfmasked_lod1.iqm.framegroups b/models/player/ignishalfmasked_lod1.iqm.framegroups index 9dc589e5c..07516e08c 100644 --- a/models/player/ignishalfmasked_lod1.iqm.framegroups +++ b/models/player/ignishalfmasked_lod1.iqm.framegroups @@ -1,24 +1,24 @@ -0 36 15.000000 0 // dieone -36 20 15.000000 0 // dietwo -56 15 15.000000 1 // draw +0 36 30.000000 0 // dieone +36 20 25.000000 0 // dietwo +56 15 30.000000 1 // draw 71 20 15.000000 1 // duck 91 21 30.000000 1 // duckwalk 112 16 15.000000 0 // duckjump 128 15 5.000000 1 // duckidle 143 41 5.000000 1 // idle -184 21 25.000000 0 // jump -205 15 15.000000 0 // painone -220 17 15.000000 0 // paintwo -237 3 15.000000 0 // shoot -240 21 15.000000 1 // taunt -261 21 35.000000 1 // run -282 21 35.000000 1 // runbackwards -303 21 35.000000 1 // strafeleft -324 21 35.000000 1 // straferight -345 2 15.000000 0 // deadone -347 2 15.000000 0 // deadtwo -349 21 35.000000 1 // forwardright -370 21 35.000000 1 // forwardleft -391 21 35.000000 1 // backright -412 21 30.000000 1 // backleft -433 21 20.000000 0 // melee \ No newline at end of file +184 160 25.000000 0 // jump +344 15 24.000000 0 // painone +359 17 34.000000 0 // paintwo +376 3 3.000000 0 // shoot +379 21 15.000000 1 // taunt +400 20 29.000000 1 // run +421 20 29.000000 1 // runbackwards +442 20 29.000000 1 // strafeleft +463 20 29.000000 1 // straferight +484 2 15.000000 0 // deadone +486 2 15.000000 0 // deadtwo +488 20 29.000000 1 // forwardright +509 20 29.000000 1 // forwardleft +530 20 29.000000 1 // backright +551 20 29.000000 1 // backleft +572 21 20.000000 0 // melee diff --git a/models/player/ignishalfmasked_lod2.iqm b/models/player/ignishalfmasked_lod2.iqm index 2338dca7b..cbb13f4ac 100644 Binary files a/models/player/ignishalfmasked_lod2.iqm and b/models/player/ignishalfmasked_lod2.iqm differ diff --git a/models/player/ignishalfmasked_lod2.iqm.framegroups b/models/player/ignishalfmasked_lod2.iqm.framegroups index 9dc589e5c..07516e08c 100644 --- a/models/player/ignishalfmasked_lod2.iqm.framegroups +++ b/models/player/ignishalfmasked_lod2.iqm.framegroups @@ -1,24 +1,24 @@ -0 36 15.000000 0 // dieone -36 20 15.000000 0 // dietwo -56 15 15.000000 1 // draw +0 36 30.000000 0 // dieone +36 20 25.000000 0 // dietwo +56 15 30.000000 1 // draw 71 20 15.000000 1 // duck 91 21 30.000000 1 // duckwalk 112 16 15.000000 0 // duckjump 128 15 5.000000 1 // duckidle 143 41 5.000000 1 // idle -184 21 25.000000 0 // jump -205 15 15.000000 0 // painone -220 17 15.000000 0 // paintwo -237 3 15.000000 0 // shoot -240 21 15.000000 1 // taunt -261 21 35.000000 1 // run -282 21 35.000000 1 // runbackwards -303 21 35.000000 1 // strafeleft -324 21 35.000000 1 // straferight -345 2 15.000000 0 // deadone -347 2 15.000000 0 // deadtwo -349 21 35.000000 1 // forwardright -370 21 35.000000 1 // forwardleft -391 21 35.000000 1 // backright -412 21 30.000000 1 // backleft -433 21 20.000000 0 // melee \ No newline at end of file +184 160 25.000000 0 // jump +344 15 24.000000 0 // painone +359 17 34.000000 0 // paintwo +376 3 3.000000 0 // shoot +379 21 15.000000 1 // taunt +400 20 29.000000 1 // run +421 20 29.000000 1 // runbackwards +442 20 29.000000 1 // strafeleft +463 20 29.000000 1 // straferight +484 2 15.000000 0 // deadone +486 2 15.000000 0 // deadtwo +488 20 29.000000 1 // forwardright +509 20 29.000000 1 // forwardleft +530 20 29.000000 1 // backright +551 20 29.000000 1 // backleft +572 21 20.000000 0 // melee diff --git a/models/player/ignismasked.iqm b/models/player/ignismasked.iqm index 5bebaa5a2..abcc4f372 100644 Binary files a/models/player/ignismasked.iqm and b/models/player/ignismasked.iqm differ diff --git a/models/player/ignismasked.iqm.framegroups b/models/player/ignismasked.iqm.framegroups index 1d8d493b9..07516e08c 100644 --- a/models/player/ignismasked.iqm.framegroups +++ b/models/player/ignismasked.iqm.framegroups @@ -6,19 +6,19 @@ 112 16 15.000000 0 // duckjump 128 15 5.000000 1 // duckidle 143 41 5.000000 1 // idle -184 21 25.000000 0 // jump -205 15 24.000000 0 // painone -220 17 34.000000 0 // paintwo -237 3 3.000000 0 // shoot -240 21 15.000000 1 // taunt -261 20 29.000000 1 // run -282 20 29.000000 1 // runbackwards -303 20 29.000000 1 // strafeleft -324 20 29.000000 1 // straferight -345 2 15.000000 0 // deadone -347 2 15.000000 0 // deadtwo -349 20 29.000000 1 // forwardright -370 20 29.000000 1 // forwardleft -391 20 29.000000 1 // backright -412 20 29.000000 1 // backleft -433 21 20.000000 0 // melee +184 160 25.000000 0 // jump +344 15 24.000000 0 // painone +359 17 34.000000 0 // paintwo +376 3 3.000000 0 // shoot +379 21 15.000000 1 // taunt +400 20 29.000000 1 // run +421 20 29.000000 1 // runbackwards +442 20 29.000000 1 // strafeleft +463 20 29.000000 1 // straferight +484 2 15.000000 0 // deadone +486 2 15.000000 0 // deadtwo +488 20 29.000000 1 // forwardright +509 20 29.000000 1 // forwardleft +530 20 29.000000 1 // backright +551 20 29.000000 1 // backleft +572 21 20.000000 0 // melee diff --git a/models/player/ignismasked_lod1.iqm b/models/player/ignismasked_lod1.iqm index 1a852ddb8..2cd6aa1a8 100644 Binary files a/models/player/ignismasked_lod1.iqm and b/models/player/ignismasked_lod1.iqm differ diff --git a/models/player/ignismasked_lod1.iqm.framegroups b/models/player/ignismasked_lod1.iqm.framegroups index 1d8d493b9..07516e08c 100644 --- a/models/player/ignismasked_lod1.iqm.framegroups +++ b/models/player/ignismasked_lod1.iqm.framegroups @@ -6,19 +6,19 @@ 112 16 15.000000 0 // duckjump 128 15 5.000000 1 // duckidle 143 41 5.000000 1 // idle -184 21 25.000000 0 // jump -205 15 24.000000 0 // painone -220 17 34.000000 0 // paintwo -237 3 3.000000 0 // shoot -240 21 15.000000 1 // taunt -261 20 29.000000 1 // run -282 20 29.000000 1 // runbackwards -303 20 29.000000 1 // strafeleft -324 20 29.000000 1 // straferight -345 2 15.000000 0 // deadone -347 2 15.000000 0 // deadtwo -349 20 29.000000 1 // forwardright -370 20 29.000000 1 // forwardleft -391 20 29.000000 1 // backright -412 20 29.000000 1 // backleft -433 21 20.000000 0 // melee +184 160 25.000000 0 // jump +344 15 24.000000 0 // painone +359 17 34.000000 0 // paintwo +376 3 3.000000 0 // shoot +379 21 15.000000 1 // taunt +400 20 29.000000 1 // run +421 20 29.000000 1 // runbackwards +442 20 29.000000 1 // strafeleft +463 20 29.000000 1 // straferight +484 2 15.000000 0 // deadone +486 2 15.000000 0 // deadtwo +488 20 29.000000 1 // forwardright +509 20 29.000000 1 // forwardleft +530 20 29.000000 1 // backright +551 20 29.000000 1 // backleft +572 21 20.000000 0 // melee diff --git a/models/player/ignismasked_lod2.iqm b/models/player/ignismasked_lod2.iqm index 5ccc07b9c..0c0cf7058 100644 Binary files a/models/player/ignismasked_lod2.iqm and b/models/player/ignismasked_lod2.iqm differ diff --git a/models/player/ignismasked_lod2.iqm.framegroups b/models/player/ignismasked_lod2.iqm.framegroups index 1d8d493b9..07516e08c 100644 --- a/models/player/ignismasked_lod2.iqm.framegroups +++ b/models/player/ignismasked_lod2.iqm.framegroups @@ -6,19 +6,19 @@ 112 16 15.000000 0 // duckjump 128 15 5.000000 1 // duckidle 143 41 5.000000 1 // idle -184 21 25.000000 0 // jump -205 15 24.000000 0 // painone -220 17 34.000000 0 // paintwo -237 3 3.000000 0 // shoot -240 21 15.000000 1 // taunt -261 20 29.000000 1 // run -282 20 29.000000 1 // runbackwards -303 20 29.000000 1 // strafeleft -324 20 29.000000 1 // straferight -345 2 15.000000 0 // deadone -347 2 15.000000 0 // deadtwo -349 20 29.000000 1 // forwardright -370 20 29.000000 1 // forwardleft -391 20 29.000000 1 // backright -412 20 29.000000 1 // backleft -433 21 20.000000 0 // melee +184 160 25.000000 0 // jump +344 15 24.000000 0 // painone +359 17 34.000000 0 // paintwo +376 3 3.000000 0 // shoot +379 21 15.000000 1 // taunt +400 20 29.000000 1 // run +421 20 29.000000 1 // runbackwards +442 20 29.000000 1 // strafeleft +463 20 29.000000 1 // straferight +484 2 15.000000 0 // deadone +486 2 15.000000 0 // deadtwo +488 20 29.000000 1 // forwardright +509 20 29.000000 1 // forwardleft +530 20 29.000000 1 // backright +551 20 29.000000 1 // backleft +572 21 20.000000 0 // melee diff --git a/models/player/megaerebus.iqm b/models/player/megaerebus.iqm index 3052db52f..526983009 100644 Binary files a/models/player/megaerebus.iqm and b/models/player/megaerebus.iqm differ diff --git a/models/player/megaerebus.iqm.framegroups b/models/player/megaerebus.iqm.framegroups index 1d8d493b9..07516e08c 100644 --- a/models/player/megaerebus.iqm.framegroups +++ b/models/player/megaerebus.iqm.framegroups @@ -6,19 +6,19 @@ 112 16 15.000000 0 // duckjump 128 15 5.000000 1 // duckidle 143 41 5.000000 1 // idle -184 21 25.000000 0 // jump -205 15 24.000000 0 // painone -220 17 34.000000 0 // paintwo -237 3 3.000000 0 // shoot -240 21 15.000000 1 // taunt -261 20 29.000000 1 // run -282 20 29.000000 1 // runbackwards -303 20 29.000000 1 // strafeleft -324 20 29.000000 1 // straferight -345 2 15.000000 0 // deadone -347 2 15.000000 0 // deadtwo -349 20 29.000000 1 // forwardright -370 20 29.000000 1 // forwardleft -391 20 29.000000 1 // backright -412 20 29.000000 1 // backleft -433 21 20.000000 0 // melee +184 160 25.000000 0 // jump +344 15 24.000000 0 // painone +359 17 34.000000 0 // paintwo +376 3 3.000000 0 // shoot +379 21 15.000000 1 // taunt +400 20 29.000000 1 // run +421 20 29.000000 1 // runbackwards +442 20 29.000000 1 // strafeleft +463 20 29.000000 1 // straferight +484 2 15.000000 0 // deadone +486 2 15.000000 0 // deadtwo +488 20 29.000000 1 // forwardright +509 20 29.000000 1 // forwardleft +530 20 29.000000 1 // backright +551 20 29.000000 1 // backleft +572 21 20.000000 0 // melee diff --git a/models/player/megaerebus_lod1.iqm b/models/player/megaerebus_lod1.iqm index 42fa19c24..7cf73126f 100644 Binary files a/models/player/megaerebus_lod1.iqm and b/models/player/megaerebus_lod1.iqm differ diff --git a/models/player/megaerebus_lod1.iqm.framegroups b/models/player/megaerebus_lod1.iqm.framegroups index 1d8d493b9..07516e08c 100644 --- a/models/player/megaerebus_lod1.iqm.framegroups +++ b/models/player/megaerebus_lod1.iqm.framegroups @@ -6,19 +6,19 @@ 112 16 15.000000 0 // duckjump 128 15 5.000000 1 // duckidle 143 41 5.000000 1 // idle -184 21 25.000000 0 // jump -205 15 24.000000 0 // painone -220 17 34.000000 0 // paintwo -237 3 3.000000 0 // shoot -240 21 15.000000 1 // taunt -261 20 29.000000 1 // run -282 20 29.000000 1 // runbackwards -303 20 29.000000 1 // strafeleft -324 20 29.000000 1 // straferight -345 2 15.000000 0 // deadone -347 2 15.000000 0 // deadtwo -349 20 29.000000 1 // forwardright -370 20 29.000000 1 // forwardleft -391 20 29.000000 1 // backright -412 20 29.000000 1 // backleft -433 21 20.000000 0 // melee +184 160 25.000000 0 // jump +344 15 24.000000 0 // painone +359 17 34.000000 0 // paintwo +376 3 3.000000 0 // shoot +379 21 15.000000 1 // taunt +400 20 29.000000 1 // run +421 20 29.000000 1 // runbackwards +442 20 29.000000 1 // strafeleft +463 20 29.000000 1 // straferight +484 2 15.000000 0 // deadone +486 2 15.000000 0 // deadtwo +488 20 29.000000 1 // forwardright +509 20 29.000000 1 // forwardleft +530 20 29.000000 1 // backright +551 20 29.000000 1 // backleft +572 21 20.000000 0 // melee diff --git a/models/player/megaerebus_lod1.iqm_0.skin b/models/player/megaerebus_lod1.iqm_0.skin new file mode 100644 index 000000000..4597ceff1 --- /dev/null +++ b/models/player/megaerebus_lod1.iqm_0.skin @@ -0,0 +1,2 @@ +erebus,erebusfullbright +erebus.001,shadowhead diff --git a/models/player/megaerebus_lod2.iqm b/models/player/megaerebus_lod2.iqm index b4d445766..7d05b6603 100644 Binary files a/models/player/megaerebus_lod2.iqm and b/models/player/megaerebus_lod2.iqm differ diff --git a/models/player/megaerebus_lod2.iqm.framegroups b/models/player/megaerebus_lod2.iqm.framegroups index 1d8d493b9..07516e08c 100644 --- a/models/player/megaerebus_lod2.iqm.framegroups +++ b/models/player/megaerebus_lod2.iqm.framegroups @@ -6,19 +6,19 @@ 112 16 15.000000 0 // duckjump 128 15 5.000000 1 // duckidle 143 41 5.000000 1 // idle -184 21 25.000000 0 // jump -205 15 24.000000 0 // painone -220 17 34.000000 0 // paintwo -237 3 3.000000 0 // shoot -240 21 15.000000 1 // taunt -261 20 29.000000 1 // run -282 20 29.000000 1 // runbackwards -303 20 29.000000 1 // strafeleft -324 20 29.000000 1 // straferight -345 2 15.000000 0 // deadone -347 2 15.000000 0 // deadtwo -349 20 29.000000 1 // forwardright -370 20 29.000000 1 // forwardleft -391 20 29.000000 1 // backright -412 20 29.000000 1 // backleft -433 21 20.000000 0 // melee +184 160 25.000000 0 // jump +344 15 24.000000 0 // painone +359 17 34.000000 0 // paintwo +376 3 3.000000 0 // shoot +379 21 15.000000 1 // taunt +400 20 29.000000 1 // run +421 20 29.000000 1 // runbackwards +442 20 29.000000 1 // strafeleft +463 20 29.000000 1 // straferight +484 2 15.000000 0 // deadone +486 2 15.000000 0 // deadtwo +488 20 29.000000 1 // forwardright +509 20 29.000000 1 // forwardleft +530 20 29.000000 1 // backright +551 20 29.000000 1 // backleft +572 21 20.000000 0 // melee diff --git a/models/player/megaerebus_lod2.iqm_0.skin b/models/player/megaerebus_lod2.iqm_0.skin new file mode 100644 index 000000000..4597ceff1 --- /dev/null +++ b/models/player/megaerebus_lod2.iqm_0.skin @@ -0,0 +1,2 @@ +erebus,erebusfullbright +erebus.001,shadowhead diff --git a/models/player/nyx.iqm b/models/player/nyx.iqm index 43546c143..24cc947bf 100644 Binary files a/models/player/nyx.iqm and b/models/player/nyx.iqm differ diff --git a/models/player/nyx.iqm.framegroups b/models/player/nyx.iqm.framegroups index 9dc589e5c..94baca733 100644 --- a/models/player/nyx.iqm.framegroups +++ b/models/player/nyx.iqm.framegroups @@ -6,19 +6,19 @@ 112 16 15.000000 0 // duckjump 128 15 5.000000 1 // duckidle 143 41 5.000000 1 // idle -184 21 25.000000 0 // jump -205 15 15.000000 0 // painone -220 17 15.000000 0 // paintwo -237 3 15.000000 0 // shoot -240 21 15.000000 1 // taunt -261 21 35.000000 1 // run -282 21 35.000000 1 // runbackwards -303 21 35.000000 1 // strafeleft -324 21 35.000000 1 // straferight -345 2 15.000000 0 // deadone -347 2 15.000000 0 // deadtwo -349 21 35.000000 1 // forwardright -370 21 35.000000 1 // forwardleft -391 21 35.000000 1 // backright -412 21 30.000000 1 // backleft -433 21 20.000000 0 // melee \ No newline at end of file +184 160 25.000000 0 // jump +344 15 15.000000 0 // painone +359 17 15.000000 0 // paintwo +376 3 15.000000 0 // shoot +379 21 15.000000 1 // taunt +400 21 35.000000 1 // run +421 21 35.000000 1 // runbackwards +442 21 35.000000 1 // strafeleft +463 21 35.000000 1 // straferight +484 2 15.000000 0 // deadone +486 2 15.000000 0 // deadtwo +488 21 35.000000 1 // forwardright +598 21 35.000000 1 // forwardleft +530 21 35.000000 1 // backright +551 21 30.000000 1 // backleft +572 21 20.000000 0 // melee \ No newline at end of file diff --git a/models/player/nyx_lod1.iqm b/models/player/nyx_lod1.iqm index ccbc45ad4..27a418a38 100644 Binary files a/models/player/nyx_lod1.iqm and b/models/player/nyx_lod1.iqm differ diff --git a/models/player/nyx_lod1.iqm.framegroups b/models/player/nyx_lod1.iqm.framegroups index 9dc589e5c..94baca733 100644 --- a/models/player/nyx_lod1.iqm.framegroups +++ b/models/player/nyx_lod1.iqm.framegroups @@ -6,19 +6,19 @@ 112 16 15.000000 0 // duckjump 128 15 5.000000 1 // duckidle 143 41 5.000000 1 // idle -184 21 25.000000 0 // jump -205 15 15.000000 0 // painone -220 17 15.000000 0 // paintwo -237 3 15.000000 0 // shoot -240 21 15.000000 1 // taunt -261 21 35.000000 1 // run -282 21 35.000000 1 // runbackwards -303 21 35.000000 1 // strafeleft -324 21 35.000000 1 // straferight -345 2 15.000000 0 // deadone -347 2 15.000000 0 // deadtwo -349 21 35.000000 1 // forwardright -370 21 35.000000 1 // forwardleft -391 21 35.000000 1 // backright -412 21 30.000000 1 // backleft -433 21 20.000000 0 // melee \ No newline at end of file +184 160 25.000000 0 // jump +344 15 15.000000 0 // painone +359 17 15.000000 0 // paintwo +376 3 15.000000 0 // shoot +379 21 15.000000 1 // taunt +400 21 35.000000 1 // run +421 21 35.000000 1 // runbackwards +442 21 35.000000 1 // strafeleft +463 21 35.000000 1 // straferight +484 2 15.000000 0 // deadone +486 2 15.000000 0 // deadtwo +488 21 35.000000 1 // forwardright +598 21 35.000000 1 // forwardleft +530 21 35.000000 1 // backright +551 21 30.000000 1 // backleft +572 21 20.000000 0 // melee \ No newline at end of file diff --git a/models/player/nyx_lod2.iqm b/models/player/nyx_lod2.iqm index e5f55cc47..82d48b6c9 100644 Binary files a/models/player/nyx_lod2.iqm and b/models/player/nyx_lod2.iqm differ diff --git a/models/player/nyx_lod2.iqm.framegroups b/models/player/nyx_lod2.iqm.framegroups index 9dc589e5c..94baca733 100644 --- a/models/player/nyx_lod2.iqm.framegroups +++ b/models/player/nyx_lod2.iqm.framegroups @@ -6,19 +6,19 @@ 112 16 15.000000 0 // duckjump 128 15 5.000000 1 // duckidle 143 41 5.000000 1 // idle -184 21 25.000000 0 // jump -205 15 15.000000 0 // painone -220 17 15.000000 0 // paintwo -237 3 15.000000 0 // shoot -240 21 15.000000 1 // taunt -261 21 35.000000 1 // run -282 21 35.000000 1 // runbackwards -303 21 35.000000 1 // strafeleft -324 21 35.000000 1 // straferight -345 2 15.000000 0 // deadone -347 2 15.000000 0 // deadtwo -349 21 35.000000 1 // forwardright -370 21 35.000000 1 // forwardleft -391 21 35.000000 1 // backright -412 21 30.000000 1 // backleft -433 21 20.000000 0 // melee \ No newline at end of file +184 160 25.000000 0 // jump +344 15 15.000000 0 // painone +359 17 15.000000 0 // paintwo +376 3 15.000000 0 // shoot +379 21 15.000000 1 // taunt +400 21 35.000000 1 // run +421 21 35.000000 1 // runbackwards +442 21 35.000000 1 // strafeleft +463 21 35.000000 1 // straferight +484 2 15.000000 0 // deadone +486 2 15.000000 0 // deadtwo +488 21 35.000000 1 // forwardright +598 21 35.000000 1 // forwardleft +530 21 35.000000 1 // backright +551 21 30.000000 1 // backleft +572 21 20.000000 0 // melee \ No newline at end of file diff --git a/models/player/pyria.iqm b/models/player/pyria.iqm index 763a5f0b7..4dad4b798 100644 Binary files a/models/player/pyria.iqm and b/models/player/pyria.iqm differ diff --git a/models/player/pyria.iqm.framegroups b/models/player/pyria.iqm.framegroups index b3a5c2647..686dd60ce 100644 --- a/models/player/pyria.iqm.framegroups +++ b/models/player/pyria.iqm.framegroups @@ -6,19 +6,19 @@ 109 16 15.000000 0 // duckjump 125 15 5.000000 1 // duckidle 140 16 5.000000 1 // idle -156 16 15.000000 0 // jump -172 15 15.000000 0 // painone -187 17 15.000000 0 // paintwo -204 5 15.000000 0 // shoot -209 21 15.000000 1 // taunt -230 21 40.000000 1 // run -251 21 40.000000 1 // runbackwards -272 21 40.000000 1 // strafeleft -293 21 40.000000 1 // straferight -314 2 15.000000 0 // deadone -316 2 15.000000 0 // deadtwo -318 21 40.000000 1 // forwardright -339 21 40.000000 1 // forwardleft -360 21 40.000000 1 // backright -381 21 40.000000 1 // backleft -402 21 20.000000 0 // melee \ No newline at end of file +156 160 25.000000 0 // jump +316 15 15.000000 0 // painone +331 17 15.000000 0 // paintwo +348 5 15.000000 0 // shoot +353 21 15.000000 1 // taunt +374 21 40.000000 1 // run +395 21 40.000000 1 // runbackwards +416 21 40.000000 1 // strafeleft +437 21 40.000000 1 // straferight +458 2 15.000000 0 // deadone +460 2 15.000000 0 // deadtwo +462 21 40.000000 1 // forwardright +483 21 40.000000 1 // forwardleft +504 21 40.000000 1 // backright +525 21 40.000000 1 // backleft +546 21 20.000000 0 // melee \ No newline at end of file diff --git a/models/player/pyria_lod1.iqm b/models/player/pyria_lod1.iqm index 367522f7f..037b65987 100644 Binary files a/models/player/pyria_lod1.iqm and b/models/player/pyria_lod1.iqm differ diff --git a/models/player/pyria_lod1.iqm.framegroups b/models/player/pyria_lod1.iqm.framegroups index b3a5c2647..686dd60ce 100644 --- a/models/player/pyria_lod1.iqm.framegroups +++ b/models/player/pyria_lod1.iqm.framegroups @@ -6,19 +6,19 @@ 109 16 15.000000 0 // duckjump 125 15 5.000000 1 // duckidle 140 16 5.000000 1 // idle -156 16 15.000000 0 // jump -172 15 15.000000 0 // painone -187 17 15.000000 0 // paintwo -204 5 15.000000 0 // shoot -209 21 15.000000 1 // taunt -230 21 40.000000 1 // run -251 21 40.000000 1 // runbackwards -272 21 40.000000 1 // strafeleft -293 21 40.000000 1 // straferight -314 2 15.000000 0 // deadone -316 2 15.000000 0 // deadtwo -318 21 40.000000 1 // forwardright -339 21 40.000000 1 // forwardleft -360 21 40.000000 1 // backright -381 21 40.000000 1 // backleft -402 21 20.000000 0 // melee \ No newline at end of file +156 160 25.000000 0 // jump +316 15 15.000000 0 // painone +331 17 15.000000 0 // paintwo +348 5 15.000000 0 // shoot +353 21 15.000000 1 // taunt +374 21 40.000000 1 // run +395 21 40.000000 1 // runbackwards +416 21 40.000000 1 // strafeleft +437 21 40.000000 1 // straferight +458 2 15.000000 0 // deadone +460 2 15.000000 0 // deadtwo +462 21 40.000000 1 // forwardright +483 21 40.000000 1 // forwardleft +504 21 40.000000 1 // backright +525 21 40.000000 1 // backleft +546 21 20.000000 0 // melee \ No newline at end of file diff --git a/models/player/pyria_lod2.iqm b/models/player/pyria_lod2.iqm index 8e7a85c3b..383060331 100644 Binary files a/models/player/pyria_lod2.iqm and b/models/player/pyria_lod2.iqm differ diff --git a/models/player/pyria_lod2.iqm.framegroups b/models/player/pyria_lod2.iqm.framegroups index b3a5c2647..686dd60ce 100644 --- a/models/player/pyria_lod2.iqm.framegroups +++ b/models/player/pyria_lod2.iqm.framegroups @@ -6,19 +6,19 @@ 109 16 15.000000 0 // duckjump 125 15 5.000000 1 // duckidle 140 16 5.000000 1 // idle -156 16 15.000000 0 // jump -172 15 15.000000 0 // painone -187 17 15.000000 0 // paintwo -204 5 15.000000 0 // shoot -209 21 15.000000 1 // taunt -230 21 40.000000 1 // run -251 21 40.000000 1 // runbackwards -272 21 40.000000 1 // strafeleft -293 21 40.000000 1 // straferight -314 2 15.000000 0 // deadone -316 2 15.000000 0 // deadtwo -318 21 40.000000 1 // forwardright -339 21 40.000000 1 // forwardleft -360 21 40.000000 1 // backright -381 21 40.000000 1 // backleft -402 21 20.000000 0 // melee \ No newline at end of file +156 160 25.000000 0 // jump +316 15 15.000000 0 // painone +331 17 15.000000 0 // paintwo +348 5 15.000000 0 // shoot +353 21 15.000000 1 // taunt +374 21 40.000000 1 // run +395 21 40.000000 1 // runbackwards +416 21 40.000000 1 // strafeleft +437 21 40.000000 1 // straferight +458 2 15.000000 0 // deadone +460 2 15.000000 0 // deadtwo +462 21 40.000000 1 // forwardright +483 21 40.000000 1 // forwardleft +504 21 40.000000 1 // backright +525 21 40.000000 1 // backleft +546 21 20.000000 0 // melee \ No newline at end of file diff --git a/models/player/seraphina.iqm b/models/player/seraphina.iqm index 3d43a8c24..95c46a3a5 100644 Binary files a/models/player/seraphina.iqm and b/models/player/seraphina.iqm differ diff --git a/models/player/seraphina.iqm.framegroups b/models/player/seraphina.iqm.framegroups index 9dc589e5c..94baca733 100644 --- a/models/player/seraphina.iqm.framegroups +++ b/models/player/seraphina.iqm.framegroups @@ -6,19 +6,19 @@ 112 16 15.000000 0 // duckjump 128 15 5.000000 1 // duckidle 143 41 5.000000 1 // idle -184 21 25.000000 0 // jump -205 15 15.000000 0 // painone -220 17 15.000000 0 // paintwo -237 3 15.000000 0 // shoot -240 21 15.000000 1 // taunt -261 21 35.000000 1 // run -282 21 35.000000 1 // runbackwards -303 21 35.000000 1 // strafeleft -324 21 35.000000 1 // straferight -345 2 15.000000 0 // deadone -347 2 15.000000 0 // deadtwo -349 21 35.000000 1 // forwardright -370 21 35.000000 1 // forwardleft -391 21 35.000000 1 // backright -412 21 30.000000 1 // backleft -433 21 20.000000 0 // melee \ No newline at end of file +184 160 25.000000 0 // jump +344 15 15.000000 0 // painone +359 17 15.000000 0 // paintwo +376 3 15.000000 0 // shoot +379 21 15.000000 1 // taunt +400 21 35.000000 1 // run +421 21 35.000000 1 // runbackwards +442 21 35.000000 1 // strafeleft +463 21 35.000000 1 // straferight +484 2 15.000000 0 // deadone +486 2 15.000000 0 // deadtwo +488 21 35.000000 1 // forwardright +598 21 35.000000 1 // forwardleft +530 21 35.000000 1 // backright +551 21 30.000000 1 // backleft +572 21 20.000000 0 // melee \ No newline at end of file diff --git a/models/player/seraphina_lod1.iqm b/models/player/seraphina_lod1.iqm index cb10ac873..cd8ff8030 100644 Binary files a/models/player/seraphina_lod1.iqm and b/models/player/seraphina_lod1.iqm differ diff --git a/models/player/seraphina_lod1.iqm.framegroups b/models/player/seraphina_lod1.iqm.framegroups index 9dc589e5c..94baca733 100644 --- a/models/player/seraphina_lod1.iqm.framegroups +++ b/models/player/seraphina_lod1.iqm.framegroups @@ -6,19 +6,19 @@ 112 16 15.000000 0 // duckjump 128 15 5.000000 1 // duckidle 143 41 5.000000 1 // idle -184 21 25.000000 0 // jump -205 15 15.000000 0 // painone -220 17 15.000000 0 // paintwo -237 3 15.000000 0 // shoot -240 21 15.000000 1 // taunt -261 21 35.000000 1 // run -282 21 35.000000 1 // runbackwards -303 21 35.000000 1 // strafeleft -324 21 35.000000 1 // straferight -345 2 15.000000 0 // deadone -347 2 15.000000 0 // deadtwo -349 21 35.000000 1 // forwardright -370 21 35.000000 1 // forwardleft -391 21 35.000000 1 // backright -412 21 30.000000 1 // backleft -433 21 20.000000 0 // melee \ No newline at end of file +184 160 25.000000 0 // jump +344 15 15.000000 0 // painone +359 17 15.000000 0 // paintwo +376 3 15.000000 0 // shoot +379 21 15.000000 1 // taunt +400 21 35.000000 1 // run +421 21 35.000000 1 // runbackwards +442 21 35.000000 1 // strafeleft +463 21 35.000000 1 // straferight +484 2 15.000000 0 // deadone +486 2 15.000000 0 // deadtwo +488 21 35.000000 1 // forwardright +598 21 35.000000 1 // forwardleft +530 21 35.000000 1 // backright +551 21 30.000000 1 // backleft +572 21 20.000000 0 // melee \ No newline at end of file diff --git a/models/player/seraphina_lod2.iqm b/models/player/seraphina_lod2.iqm index ad2aca8cd..118efe6fd 100644 Binary files a/models/player/seraphina_lod2.iqm and b/models/player/seraphina_lod2.iqm differ diff --git a/models/player/seraphina_lod2.iqm.framegroups b/models/player/seraphina_lod2.iqm.framegroups index 9dc589e5c..94baca733 100644 --- a/models/player/seraphina_lod2.iqm.framegroups +++ b/models/player/seraphina_lod2.iqm.framegroups @@ -6,19 +6,19 @@ 112 16 15.000000 0 // duckjump 128 15 5.000000 1 // duckidle 143 41 5.000000 1 // idle -184 21 25.000000 0 // jump -205 15 15.000000 0 // painone -220 17 15.000000 0 // paintwo -237 3 15.000000 0 // shoot -240 21 15.000000 1 // taunt -261 21 35.000000 1 // run -282 21 35.000000 1 // runbackwards -303 21 35.000000 1 // strafeleft -324 21 35.000000 1 // straferight -345 2 15.000000 0 // deadone -347 2 15.000000 0 // deadtwo -349 21 35.000000 1 // forwardright -370 21 35.000000 1 // forwardleft -391 21 35.000000 1 // backright -412 21 30.000000 1 // backleft -433 21 20.000000 0 // melee \ No newline at end of file +184 160 25.000000 0 // jump +344 15 15.000000 0 // painone +359 17 15.000000 0 // paintwo +376 3 15.000000 0 // shoot +379 21 15.000000 1 // taunt +400 21 35.000000 1 // run +421 21 35.000000 1 // runbackwards +442 21 35.000000 1 // strafeleft +463 21 35.000000 1 // straferight +484 2 15.000000 0 // deadone +486 2 15.000000 0 // deadtwo +488 21 35.000000 1 // forwardright +598 21 35.000000 1 // forwardleft +530 21 35.000000 1 // backright +551 21 30.000000 1 // backleft +572 21 20.000000 0 // melee \ No newline at end of file diff --git a/models/player/seraphinamasked.iqm b/models/player/seraphinamasked.iqm index 0c3751d93..185263d62 100644 Binary files a/models/player/seraphinamasked.iqm and b/models/player/seraphinamasked.iqm differ diff --git a/models/player/seraphinamasked.iqm.framegroups b/models/player/seraphinamasked.iqm.framegroups index 9dc589e5c..94baca733 100644 --- a/models/player/seraphinamasked.iqm.framegroups +++ b/models/player/seraphinamasked.iqm.framegroups @@ -6,19 +6,19 @@ 112 16 15.000000 0 // duckjump 128 15 5.000000 1 // duckidle 143 41 5.000000 1 // idle -184 21 25.000000 0 // jump -205 15 15.000000 0 // painone -220 17 15.000000 0 // paintwo -237 3 15.000000 0 // shoot -240 21 15.000000 1 // taunt -261 21 35.000000 1 // run -282 21 35.000000 1 // runbackwards -303 21 35.000000 1 // strafeleft -324 21 35.000000 1 // straferight -345 2 15.000000 0 // deadone -347 2 15.000000 0 // deadtwo -349 21 35.000000 1 // forwardright -370 21 35.000000 1 // forwardleft -391 21 35.000000 1 // backright -412 21 30.000000 1 // backleft -433 21 20.000000 0 // melee \ No newline at end of file +184 160 25.000000 0 // jump +344 15 15.000000 0 // painone +359 17 15.000000 0 // paintwo +376 3 15.000000 0 // shoot +379 21 15.000000 1 // taunt +400 21 35.000000 1 // run +421 21 35.000000 1 // runbackwards +442 21 35.000000 1 // strafeleft +463 21 35.000000 1 // straferight +484 2 15.000000 0 // deadone +486 2 15.000000 0 // deadtwo +488 21 35.000000 1 // forwardright +598 21 35.000000 1 // forwardleft +530 21 35.000000 1 // backright +551 21 30.000000 1 // backleft +572 21 20.000000 0 // melee \ No newline at end of file diff --git a/models/player/seraphinamasked_lod1.iqm b/models/player/seraphinamasked_lod1.iqm index fd9c7f737..4b1ea685b 100644 Binary files a/models/player/seraphinamasked_lod1.iqm and b/models/player/seraphinamasked_lod1.iqm differ diff --git a/models/player/seraphinamasked_lod1.iqm.framegroups b/models/player/seraphinamasked_lod1.iqm.framegroups index 9dc589e5c..94baca733 100644 --- a/models/player/seraphinamasked_lod1.iqm.framegroups +++ b/models/player/seraphinamasked_lod1.iqm.framegroups @@ -6,19 +6,19 @@ 112 16 15.000000 0 // duckjump 128 15 5.000000 1 // duckidle 143 41 5.000000 1 // idle -184 21 25.000000 0 // jump -205 15 15.000000 0 // painone -220 17 15.000000 0 // paintwo -237 3 15.000000 0 // shoot -240 21 15.000000 1 // taunt -261 21 35.000000 1 // run -282 21 35.000000 1 // runbackwards -303 21 35.000000 1 // strafeleft -324 21 35.000000 1 // straferight -345 2 15.000000 0 // deadone -347 2 15.000000 0 // deadtwo -349 21 35.000000 1 // forwardright -370 21 35.000000 1 // forwardleft -391 21 35.000000 1 // backright -412 21 30.000000 1 // backleft -433 21 20.000000 0 // melee \ No newline at end of file +184 160 25.000000 0 // jump +344 15 15.000000 0 // painone +359 17 15.000000 0 // paintwo +376 3 15.000000 0 // shoot +379 21 15.000000 1 // taunt +400 21 35.000000 1 // run +421 21 35.000000 1 // runbackwards +442 21 35.000000 1 // strafeleft +463 21 35.000000 1 // straferight +484 2 15.000000 0 // deadone +486 2 15.000000 0 // deadtwo +488 21 35.000000 1 // forwardright +598 21 35.000000 1 // forwardleft +530 21 35.000000 1 // backright +551 21 30.000000 1 // backleft +572 21 20.000000 0 // melee \ No newline at end of file diff --git a/models/player/seraphinamasked_lod2.iqm b/models/player/seraphinamasked_lod2.iqm index 220de90f5..58fe05c4f 100644 Binary files a/models/player/seraphinamasked_lod2.iqm and b/models/player/seraphinamasked_lod2.iqm differ diff --git a/models/player/seraphinamasked_lod2.iqm.framegroups b/models/player/seraphinamasked_lod2.iqm.framegroups index 9dc589e5c..94baca733 100644 --- a/models/player/seraphinamasked_lod2.iqm.framegroups +++ b/models/player/seraphinamasked_lod2.iqm.framegroups @@ -6,19 +6,19 @@ 112 16 15.000000 0 // duckjump 128 15 5.000000 1 // duckidle 143 41 5.000000 1 // idle -184 21 25.000000 0 // jump -205 15 15.000000 0 // painone -220 17 15.000000 0 // paintwo -237 3 15.000000 0 // shoot -240 21 15.000000 1 // taunt -261 21 35.000000 1 // run -282 21 35.000000 1 // runbackwards -303 21 35.000000 1 // strafeleft -324 21 35.000000 1 // straferight -345 2 15.000000 0 // deadone -347 2 15.000000 0 // deadtwo -349 21 35.000000 1 // forwardright -370 21 35.000000 1 // forwardleft -391 21 35.000000 1 // backright -412 21 30.000000 1 // backleft -433 21 20.000000 0 // melee \ No newline at end of file +184 160 25.000000 0 // jump +344 15 15.000000 0 // painone +359 17 15.000000 0 // paintwo +376 3 15.000000 0 // shoot +379 21 15.000000 1 // taunt +400 21 35.000000 1 // run +421 21 35.000000 1 // runbackwards +442 21 35.000000 1 // strafeleft +463 21 35.000000 1 // straferight +484 2 15.000000 0 // deadone +486 2 15.000000 0 // deadtwo +488 21 35.000000 1 // forwardright +598 21 35.000000 1 // forwardleft +530 21 35.000000 1 // backright +551 21 30.000000 1 // backleft +572 21 20.000000 0 // melee \ No newline at end of file diff --git a/models/player/umbra.iqm b/models/player/umbra.iqm index 9eb6f9c64..07f73615b 100644 Binary files a/models/player/umbra.iqm and b/models/player/umbra.iqm differ diff --git a/models/player/umbra.iqm.framegroups b/models/player/umbra.iqm.framegroups index b3a5c2647..686dd60ce 100644 --- a/models/player/umbra.iqm.framegroups +++ b/models/player/umbra.iqm.framegroups @@ -6,19 +6,19 @@ 109 16 15.000000 0 // duckjump 125 15 5.000000 1 // duckidle 140 16 5.000000 1 // idle -156 16 15.000000 0 // jump -172 15 15.000000 0 // painone -187 17 15.000000 0 // paintwo -204 5 15.000000 0 // shoot -209 21 15.000000 1 // taunt -230 21 40.000000 1 // run -251 21 40.000000 1 // runbackwards -272 21 40.000000 1 // strafeleft -293 21 40.000000 1 // straferight -314 2 15.000000 0 // deadone -316 2 15.000000 0 // deadtwo -318 21 40.000000 1 // forwardright -339 21 40.000000 1 // forwardleft -360 21 40.000000 1 // backright -381 21 40.000000 1 // backleft -402 21 20.000000 0 // melee \ No newline at end of file +156 160 25.000000 0 // jump +316 15 15.000000 0 // painone +331 17 15.000000 0 // paintwo +348 5 15.000000 0 // shoot +353 21 15.000000 1 // taunt +374 21 40.000000 1 // run +395 21 40.000000 1 // runbackwards +416 21 40.000000 1 // strafeleft +437 21 40.000000 1 // straferight +458 2 15.000000 0 // deadone +460 2 15.000000 0 // deadtwo +462 21 40.000000 1 // forwardright +483 21 40.000000 1 // forwardleft +504 21 40.000000 1 // backright +525 21 40.000000 1 // backleft +546 21 20.000000 0 // melee \ No newline at end of file diff --git a/models/player/umbra_lod1.iqm b/models/player/umbra_lod1.iqm index 0686a73ad..1173db86b 100644 Binary files a/models/player/umbra_lod1.iqm and b/models/player/umbra_lod1.iqm differ diff --git a/models/player/umbra_lod1.iqm.framegroups b/models/player/umbra_lod1.iqm.framegroups index b3a5c2647..686dd60ce 100644 --- a/models/player/umbra_lod1.iqm.framegroups +++ b/models/player/umbra_lod1.iqm.framegroups @@ -6,19 +6,19 @@ 109 16 15.000000 0 // duckjump 125 15 5.000000 1 // duckidle 140 16 5.000000 1 // idle -156 16 15.000000 0 // jump -172 15 15.000000 0 // painone -187 17 15.000000 0 // paintwo -204 5 15.000000 0 // shoot -209 21 15.000000 1 // taunt -230 21 40.000000 1 // run -251 21 40.000000 1 // runbackwards -272 21 40.000000 1 // strafeleft -293 21 40.000000 1 // straferight -314 2 15.000000 0 // deadone -316 2 15.000000 0 // deadtwo -318 21 40.000000 1 // forwardright -339 21 40.000000 1 // forwardleft -360 21 40.000000 1 // backright -381 21 40.000000 1 // backleft -402 21 20.000000 0 // melee \ No newline at end of file +156 160 25.000000 0 // jump +316 15 15.000000 0 // painone +331 17 15.000000 0 // paintwo +348 5 15.000000 0 // shoot +353 21 15.000000 1 // taunt +374 21 40.000000 1 // run +395 21 40.000000 1 // runbackwards +416 21 40.000000 1 // strafeleft +437 21 40.000000 1 // straferight +458 2 15.000000 0 // deadone +460 2 15.000000 0 // deadtwo +462 21 40.000000 1 // forwardright +483 21 40.000000 1 // forwardleft +504 21 40.000000 1 // backright +525 21 40.000000 1 // backleft +546 21 20.000000 0 // melee \ No newline at end of file diff --git a/models/player/umbra_lod2.iqm b/models/player/umbra_lod2.iqm index fecc35b5e..b47ac76f0 100644 Binary files a/models/player/umbra_lod2.iqm and b/models/player/umbra_lod2.iqm differ diff --git a/models/player/umbra_lod2.iqm.framegroups b/models/player/umbra_lod2.iqm.framegroups index b3a5c2647..686dd60ce 100644 --- a/models/player/umbra_lod2.iqm.framegroups +++ b/models/player/umbra_lod2.iqm.framegroups @@ -6,19 +6,19 @@ 109 16 15.000000 0 // duckjump 125 15 5.000000 1 // duckidle 140 16 5.000000 1 // idle -156 16 15.000000 0 // jump -172 15 15.000000 0 // painone -187 17 15.000000 0 // paintwo -204 5 15.000000 0 // shoot -209 21 15.000000 1 // taunt -230 21 40.000000 1 // run -251 21 40.000000 1 // runbackwards -272 21 40.000000 1 // strafeleft -293 21 40.000000 1 // straferight -314 2 15.000000 0 // deadone -316 2 15.000000 0 // deadtwo -318 21 40.000000 1 // forwardright -339 21 40.000000 1 // forwardleft -360 21 40.000000 1 // backright -381 21 40.000000 1 // backleft -402 21 20.000000 0 // melee \ No newline at end of file +156 160 25.000000 0 // jump +316 15 15.000000 0 // painone +331 17 15.000000 0 // paintwo +348 5 15.000000 0 // shoot +353 21 15.000000 1 // taunt +374 21 40.000000 1 // run +395 21 40.000000 1 // runbackwards +416 21 40.000000 1 // strafeleft +437 21 40.000000 1 // straferight +458 2 15.000000 0 // deadone +460 2 15.000000 0 // deadtwo +462 21 40.000000 1 // forwardright +483 21 40.000000 1 // forwardleft +504 21 40.000000 1 // backright +525 21 40.000000 1 // backleft +546 21 20.000000 0 // melee \ No newline at end of file diff --git a/models/sprites/vehicle_frame0.tga b/models/sprites/vehicle_frame0.tga new file mode 100644 index 000000000..0864bcb80 Binary files /dev/null and b/models/sprites/vehicle_frame0.tga differ diff --git a/models/sprites/vehicle_frame1.tga b/models/sprites/vehicle_frame1.tga new file mode 100644 index 000000000..073354de3 Binary files /dev/null and b/models/sprites/vehicle_frame1.tga differ diff --git a/models/vehicles/bomblet.md3 b/models/vehicles/bomblet.md3 new file mode 100644 index 000000000..55ca72551 Binary files /dev/null and b/models/vehicles/bomblet.md3 differ diff --git a/models/vehicles/bumblebee.tga b/models/vehicles/bumblebee.tga new file mode 100644 index 000000000..a20e851d1 Binary files /dev/null and b/models/vehicles/bumblebee.tga differ diff --git a/models/vehicles/bumblebee_body.dpm b/models/vehicles/bumblebee_body.dpm new file mode 100644 index 000000000..9962dd764 Binary files /dev/null and b/models/vehicles/bumblebee_body.dpm differ diff --git a/models/vehicles/bumblebee_gloss.tga b/models/vehicles/bumblebee_gloss.tga new file mode 100644 index 000000000..bbfb17688 Binary files /dev/null and b/models/vehicles/bumblebee_gloss.tga differ diff --git a/models/vehicles/bumblebee_glow.tga b/models/vehicles/bumblebee_glow.tga new file mode 100644 index 000000000..c6881685a Binary files /dev/null and b/models/vehicles/bumblebee_glow.tga differ diff --git a/models/vehicles/bumblebee_norm.tga b/models/vehicles/bumblebee_norm.tga new file mode 100644 index 000000000..0ab707c88 Binary files /dev/null and b/models/vehicles/bumblebee_norm.tga differ diff --git a/models/vehicles/bumblebee_pants.tga b/models/vehicles/bumblebee_pants.tga new file mode 100644 index 000000000..32d0aa584 Binary files /dev/null and b/models/vehicles/bumblebee_pants.tga differ diff --git a/models/vehicles/bumblebee_plasma_left.dpm b/models/vehicles/bumblebee_plasma_left.dpm new file mode 100644 index 000000000..57df41a25 Binary files /dev/null and b/models/vehicles/bumblebee_plasma_left.dpm differ diff --git a/models/vehicles/bumblebee_plasma_right.dpm b/models/vehicles/bumblebee_plasma_right.dpm new file mode 100644 index 000000000..1689979fc Binary files /dev/null and b/models/vehicles/bumblebee_plasma_right.dpm differ diff --git a/models/vehicles/bumblebee_ray.dpm b/models/vehicles/bumblebee_ray.dpm new file mode 100644 index 000000000..2e36eb534 Binary files /dev/null and b/models/vehicles/bumblebee_ray.dpm differ diff --git a/models/vehicles/clusterbomb.md3 b/models/vehicles/clusterbomb.md3 new file mode 100644 index 000000000..c0842dfee Binary files /dev/null and b/models/vehicles/clusterbomb.md3 differ diff --git a/models/vehicles/clusterbomb_folded.md3 b/models/vehicles/clusterbomb_folded.md3 new file mode 100644 index 000000000..f1b65a6c5 Binary files /dev/null and b/models/vehicles/clusterbomb_folded.md3 differ diff --git a/models/vehicles/clusterbomb_fragment.md3 b/models/vehicles/clusterbomb_fragment.md3 new file mode 100644 index 000000000..516da1624 Binary files /dev/null and b/models/vehicles/clusterbomb_fragment.md3 differ diff --git a/models/vehicles/raptor.dpm b/models/vehicles/raptor.dpm index 83518c5c6..bbd758a1c 100644 Binary files a/models/vehicles/raptor.dpm and b/models/vehicles/raptor.dpm differ diff --git a/models/vehicles/raptor_body.dpm b/models/vehicles/raptor_body.dpm new file mode 100644 index 000000000..2a283175f Binary files /dev/null and b/models/vehicles/raptor_body.dpm differ diff --git a/models/vehicles/raptor_cockpit.dpm b/models/vehicles/raptor_cockpit.dpm index fe933e4e4..d321f37d3 100644 Binary files a/models/vehicles/raptor_cockpit.dpm and b/models/vehicles/raptor_cockpit.dpm differ diff --git a/models/vehicles/rocket01.md3 b/models/vehicles/rocket01.md3 new file mode 100644 index 000000000..1d9aab939 Binary files /dev/null and b/models/vehicles/rocket01.md3 differ diff --git a/models/vehicles/rocket02.md3 b/models/vehicles/rocket02.md3 new file mode 100644 index 000000000..0a3eef049 Binary files /dev/null and b/models/vehicles/rocket02.md3 differ diff --git a/models/vehicles/rockets.tga b/models/vehicles/rockets.tga new file mode 100644 index 000000000..a6b873c4d Binary files /dev/null and b/models/vehicles/rockets.tga differ diff --git a/models/vehicles/rockets_gloss.tga b/models/vehicles/rockets_gloss.tga new file mode 100644 index 000000000..22616da9b Binary files /dev/null and b/models/vehicles/rockets_gloss.tga differ diff --git a/models/vehicles/rockets_glow.tga b/models/vehicles/rockets_glow.tga new file mode 100644 index 000000000..14c9f3045 Binary files /dev/null and b/models/vehicles/rockets_glow.tga differ diff --git a/models/vehicles/rockets_reflect.tga b/models/vehicles/rockets_reflect.tga new file mode 100644 index 000000000..3cad23f56 Binary files /dev/null and b/models/vehicles/rockets_reflect.tga differ diff --git a/models/vehicles/spiderbot.dpm b/models/vehicles/spiderbot.dpm index eeb5e92e7..2b5624f03 100644 Binary files a/models/vehicles/spiderbot.dpm and b/models/vehicles/spiderbot.dpm differ diff --git a/models/vehicles/spiderbot.dpm.framegroups b/models/vehicles/spiderbot.dpm.framegroups index f9db7221e..835bd3bd1 100644 --- a/models/vehicles/spiderbot.dpm.framegroups +++ b/models/vehicles/spiderbot.dpm.framegroups @@ -1,6 +1,17 @@ -1 30 20 1 // forward -32 30 20 1 // backward -63 30 20 1 // left -94 30 20 1 // right -125 30 20 0 // jump -0 1 20 0 // idle +/* +Generated framegroups file for spiderbot +Used by DarkPlaces to simulate frame groups in DPM models. +*/ + +1 31 30 1 // spiderbot forward +32 31 30 1 // spiderbot backwards +63 31 20 1 // spiderbot left +94 31 20 1 // spiderbot right +125 31 20 0 // spiderbot jump +156 1 1 0 // spiderbot idle +157 12 20 0 // spiderbot jump2 +169 7 20 0 // spiderbot jump_charge +176 11 15 0 // spiderbot jump_fly +187 21 20 0 // spiderbot jump_land +208 51 15 0 // spiderbot death +259 3 1 0 // spiderbot dead diff --git a/models/vehicles/spiderbot_cockpit.dpm b/models/vehicles/spiderbot_cockpit.dpm index 8d64449d3..a851f3e08 100644 Binary files a/models/vehicles/spiderbot_cockpit.dpm and b/models/vehicles/spiderbot_cockpit.dpm differ diff --git a/models/vehicles/spiderbot_top.dpm b/models/vehicles/spiderbot_top.dpm index 5085e6be2..e9209ba9c 100644 Binary files a/models/vehicles/spiderbot_top.dpm and b/models/vehicles/spiderbot_top.dpm differ diff --git a/models/vehicles/spinner.dpm b/models/vehicles/spinner.dpm index d3d83b44b..7e453f201 100644 Binary files a/models/vehicles/spinner.dpm and b/models/vehicles/spinner.dpm differ diff --git a/models/vehicles/tracer.md3 b/models/vehicles/tracer.md3 new file mode 100644 index 000000000..81ef34b28 Binary files /dev/null and b/models/vehicles/tracer.md3 differ diff --git a/models/vehicles/tracercore.tga b/models/vehicles/tracercore.tga new file mode 100644 index 000000000..811db463d Binary files /dev/null and b/models/vehicles/tracercore.tga differ diff --git a/models/vehicles/tracertrail.tga b/models/vehicles/tracertrail.tga new file mode 100644 index 000000000..38a4f0393 Binary files /dev/null and b/models/vehicles/tracertrail.tga differ diff --git a/models/vehicles/tracertrail_glow.tga b/models/vehicles/tracertrail_glow.tga new file mode 100644 index 000000000..75ff134b3 Binary files /dev/null and b/models/vehicles/tracertrail_glow.tga differ diff --git a/physicsX.cfg b/physicsX.cfg index 5cc6b52be..7a78d3726 100644 --- a/physicsX.cfg +++ b/physicsX.cfg @@ -15,6 +15,12 @@ sv_stepheight 26 // actually, what we want is 266.6666 for 180bpm // but 260 takes same amount of frames and is nicer to mappers +// jump height == sv_jumpvelocity^2 / (2*sv_gravity) +// in this case: 42.25 qu +// player: 24+45 qu +// total: 111.25qu +// this is smaller than 112 qu, so a 112 qu high corridor (7 of 8 grid units in +// the 16 grid, and the 8th unit used for wall/floor) just lets a player jump! sv_jumpvelocity 260 sv_wateraccelerate -1 sv_waterfriction -1 diff --git a/qcsrc/client/Main.qc b/qcsrc/client/Main.qc index c9fbc87b1..fb9a1bb74 100644 --- a/qcsrc/client/Main.qc +++ b/qcsrc/client/Main.qc @@ -47,7 +47,7 @@ void WaypointSprite_Load(); void CSQC_Init(void) { prvm_language = cvar_string("prvm_language"); - + #ifdef USE_FTE #pragma target ID __engine_check = checkextension("DP_SV_WRITEPICTURE"); @@ -139,6 +139,9 @@ void CSQC_Init(void) GibSplash_Precache(); Casings_Precache(); DamageInfo_Precache(); + Vehicles_Precache(); + turrets_precache(); + if(autocvar_cl_announcer != cl_announcer_prev) { Announcer_Precache(); if(cl_announcer_prev) @@ -902,7 +905,7 @@ void Ent_ReadAccuracy(void) weapon_accuracy[w] = -1; return; } - + for(w = 0, f = 1; w <= WEP_LAST - WEP_FIRST; ++w, f *= 2) { if(sf & f) @@ -984,6 +987,8 @@ void(float bIsNewEntity) CSQC_Ent_Update = case ENT_CLIENT_LGBEAM: Ent_ReadHook(bIsNewEntity, ENT_CLIENT_LGBEAM); break; case ENT_CLIENT_GAUNTLET: Ent_ReadHook(bIsNewEntity, ENT_CLIENT_GAUNTLET); break; case ENT_CLIENT_ACCURACY: Ent_ReadAccuracy(); break; + case ENT_CLIENT_AUXILIARYXHAIR: Net_AuXair2(bIsNewEntity); break; + case ENT_CLIENT_TURRET: ent_turret(); break; default: //error(strcat(_("unknown entity type in CSQC_Ent_Update: %d\n"), self.enttype)); error(sprintf(_("Unknown entity type in CSQC_Ent_Update (enttype: %d, edict: %d, classname: %s)\n"), self.enttype, num_for_edict(self), self.classname)); @@ -1410,6 +1415,10 @@ float CSQC_Parse_TempEntity() Net_WeaponComplain(); bHandled = true; break; + case TE_CSQC_VEHICLESETUP: + Net_VehicleSetup(); + bHandled = true; + break; default: // No special logic for this temporary entity; return 0 so the engine can handle it bHandled = false; diff --git a/qcsrc/client/View.qc b/qcsrc/client/View.qc index 8a862f5d7..1dfa1b359 100644 --- a/qcsrc/client/View.qc +++ b/qcsrc/client/View.qc @@ -1,12 +1,3 @@ -#define spider_rocket_icon "gfx/vehicles/rocket_ico.tga" -#define spider_rocket_targ "gfx/vehicles/target.tga" -#define SPIDER_CROSS "textures/spiderbot/cross.tga" -#define rkt_size 32 -#define rld_size_x 256 -#define rld_size_y 16 - -void CSQC_WAKIZASHI_HUD(); - entity porto; vector polyline[16]; float trace_dphitcontents; @@ -137,6 +128,7 @@ vector GetCurrentFov(float fov) zoomspeed = 3.5; zoomdir = button_zoom; + if(hud == HUD_NORMAL) if((getstati(STAT_ACTIVEWEAPON) == WEP_NEX && nex_scope) || (getstati(STAT_ACTIVEWEAPON) == WEP_RIFLE && rifle_scope)) // do NOT use switchweapon here zoomdir += button_attack2; if(spectatee_status > 0 || isdemo()) @@ -382,6 +374,7 @@ void CSQC_UpdateView(float w, float h) vector v, vo; vector vf_size, vf_min; float a; + hud = getstati(STAT_HUD); button_attack2 = (input_buttons & BUTTON_3); button_zoom = (input_buttons & BUTTON_4); @@ -677,12 +670,12 @@ void CSQC_UpdateView(float w, float h) R_PolygonVertex(autocvar_vid_conheight * '0 1 0', tc_01, rgb, a); R_EndPolygon(); } - + // Draw the aiming reticle for weapons that use it // reticle_type is changed to the item we are zooming / aiming with, to decide which reticle to use // It must be a persisted float for fading out to work properly (you let go of the zoom button for // the view to go back to normal, so reticle_type would become 0 as we fade out) - if(spectatee_status || getstati(STAT_HEALTH) <= 0) + if(spectatee_status || getstati(STAT_HEALTH) <= 0 || hud != HUD_NORMAL) reticle_type = 0; // prevent reticle from showing during the respawn zoom effect or for spectators else if(activeweapon == WEP_NEX && (button_zoom || zoomscript_caught) || activeweapon == WEP_RIFLE && (button_zoom || zoomscript_caught) || activeweapon == WEP_MINSTANEX && (button_zoom || zoomscript_caught)) reticle_type = 2; // nex zoom @@ -690,7 +683,7 @@ void CSQC_UpdateView(float w, float h) reticle_type = 1; // normal zoom else if(activeweapon == WEP_NEX && button_attack2 || activeweapon == WEP_RIFLE && button_attack2) reticle_type = 2; // nex zoom - + if (reticle_type) { if(autocvar_cl_reticle_stretch) @@ -730,7 +723,7 @@ void CSQC_UpdateView(float w, float h) { float contentalpha_temp, incontent, liquidalpha, contentfadetime; vector liquidcolor; - + switch(pointcontents(view_origin)) { case CONTENT_WATER: @@ -738,26 +731,26 @@ void CSQC_UpdateView(float w, float h) liquidcolor = stov(autocvar_hud_contents_water_color); incontent = 1; break; - + case CONTENT_LAVA: liquidalpha = autocvar_hud_contents_lava_alpha; liquidcolor = stov(autocvar_hud_contents_lava_color); incontent = 1; - break; - + break; + case CONTENT_SLIME: liquidalpha = autocvar_hud_contents_slime_alpha; liquidcolor = stov(autocvar_hud_contents_slime_color); incontent = 1; break; - + default: liquidalpha = 0; liquidcolor = '0 0 0'; incontent = 0; break; } - + if(incontent) // fade in/out at different speeds so you can do e.g. instant fade when entering water and slow when leaving it. { // also lets delcare previous values for blending properties, this way it isn't reset until after you have entered a different content contentfadetime = autocvar_hud_contents_fadeintime; @@ -766,10 +759,10 @@ void CSQC_UpdateView(float w, float h) } else contentfadetime = autocvar_hud_contents_fadeouttime; - + contentalpha_temp = bound(0, drawframetime / max(0.0001, contentfadetime), 1); contentavgalpha = contentavgalpha * (1 - contentalpha_temp) + incontent * contentalpha_temp; - + if(contentavgalpha) drawfill('0 0 0', eX * vid_conwidth + eY * vid_conheight, liquidcolor_prev, contentavgalpha * liquidalpha_prev, DRAWFLAG_NORMAL); @@ -791,6 +784,7 @@ void CSQC_UpdateView(float w, float h) } if(autocvar_hud_damage && !autocvar_chase_active) + { splash_size_x = max(vid_conwidth, vid_conheight); splash_size_y = max(vid_conwidth, vid_conheight); @@ -955,15 +949,7 @@ void CSQC_UpdateView(float w, float h) nextsound_typehit_time = time + autocvar_cl_hitsound_antispam_time; } - float hud; - hud = getstati(STAT_HUD); - if(hud == HUD_SPIDERBOT) - CSQC_SPIDER_HUD(); - else if(hud == HUD_WAKIZASHI) - CSQC_WAKIZASHI_HUD(); - else if(hud == HUD_RAPTOR) - CSQC_RAPTOR_HUD(); - else + //else { if(gametype == GAME_FREEZETAG) { @@ -981,7 +967,7 @@ void CSQC_UpdateView(float w, float h) CSQC_common_hud(); // crosshair goes VERY LAST - if(!scoreboard_active && !camera_active && intermission != 2 && spectatee_status != -1) { + if(!scoreboard_active && !camera_active && intermission != 2 && spectatee_status != -1 && hud == HUD_NORMAL) { string wcross_style; float wcross_alpha, wcross_resolution; wcross_style = autocvar_crosshair; @@ -1048,13 +1034,13 @@ void CSQC_UpdateView(float w, float h) else if(autocvar_crosshair_color_by_health) { local float x = getstati(STAT_HEALTH); - + //x = red //y = green //z = blue - + wcross_color_z = 0; - + if(x > 200) { wcross_color_x = 0; @@ -1075,7 +1061,7 @@ void CSQC_UpdateView(float w, float h) { wcross_color_x = 1; wcross_color_y = 1; - wcross_color_z = 0.2 + (x-50)*0.02 * 0.8; + wcross_color_z = 0.2 + (x-50)*0.02 * 0.8; } else if(x > 20) { @@ -1119,7 +1105,7 @@ void CSQC_UpdateView(float w, float h) wcross_scale += sin(pickup_crosshair_size) * autocvar_crosshair_pickup; } - + vector hitindication_color; if(autocvar_crosshair_hitindication) { @@ -1196,134 +1182,137 @@ void CSQC_UpdateView(float w, float h) wcross_alpha *= 1 - autocvar__menu_alpha; wcross_size = drawgetimagesize(wcross_name) * wcross_scale; - // crosshair rings for weapon stats - if (autocvar_crosshair_ring || autocvar_crosshair_ring_reload) + if(wcross_scale >= 0.001 && wcross_alpha >= 0.001) { - // declarations and stats - float ring_value, ring_scale, ring_alpha, ring_inner_value, ring_inner_alpha; - string ring_image, ring_inner_image; - vector ring_rgb, ring_inner_rgb; - - ring_scale = autocvar_crosshair_ring_size; - - float weapon_clipload, weapon_clipsize; - weapon_clipload = getstati(STAT_WEAPON_CLIPLOAD); - weapon_clipsize = getstati(STAT_WEAPON_CLIPSIZE); - - float nex_charge, nex_chargepool; - nex_charge = getstatf(STAT_NEX_CHARGE); - nex_chargepool = getstatf(STAT_NEX_CHARGEPOOL); - - if(nex_charge_movingavg == 0) // this should only happen if we have just loaded up the game - nex_charge_movingavg = nex_charge; - - - // handle the values - if (autocvar_crosshair_ring && activeweapon == WEP_NEX && nex_charge && autocvar_crosshair_ring_nex) // ring around crosshair representing velocity-dependent damage for the nex + // crosshair rings for weapon stats + if (autocvar_crosshair_ring || autocvar_crosshair_ring_reload) { - if (nex_chargepool || use_nex_chargepool) { - use_nex_chargepool = 1; - ring_inner_value = nex_chargepool; - } else { - nex_charge_movingavg = (1 - autocvar_crosshair_ring_nex_currentcharge_movingavg_rate) * nex_charge_movingavg + autocvar_crosshair_ring_nex_currentcharge_movingavg_rate * nex_charge; - ring_inner_value = bound(0, autocvar_crosshair_ring_nex_currentcharge_scale * (nex_charge - nex_charge_movingavg), 1); - } - - ring_inner_alpha = autocvar_crosshair_ring_nex_inner_alpha; - ring_inner_rgb = eX * autocvar_crosshair_ring_nex_inner_color_red + eY * autocvar_crosshair_ring_nex_inner_color_green + eZ * autocvar_crosshair_ring_nex_inner_color_blue; - ring_inner_image = "gfx/crosshair_ring_inner.tga"; - - // draw the outer ring to show the current charge of the weapon - ring_value = nex_charge; - ring_alpha = autocvar_crosshair_ring_nex_alpha; - ring_rgb = wcross_color; - ring_image = "gfx/crosshair_ring_nexgun.tga"; - } - else if (autocvar_crosshair_ring && activeweapon == WEP_MINE_LAYER && minelayer_maxmines && autocvar_crosshair_ring_minelayer) - { - ring_value = bound(0, getstati(STAT_LAYED_MINES) / minelayer_maxmines, 1); // if you later need to use the count of bullets in another place, then add a float for it. For now, no need to. - ring_alpha = autocvar_crosshair_ring_minelayer_alpha; - ring_rgb = wcross_color; - ring_image = "gfx/crosshair_ring.tga"; - } - else if (activeweapon == WEP_HAGAR && getstati(STAT_HAGAR_LOAD) && autocvar_crosshair_ring_hagar) - { - ring_value = bound(0, getstati(STAT_HAGAR_LOAD) / hagar_maxrockets, 1); - ring_alpha = autocvar_crosshair_ring_hagar_alpha; - ring_rgb = wcross_color; - ring_image = "gfx/crosshair_ring.tga"; - } + // declarations and stats + float ring_value, ring_scale, ring_alpha, ring_inner_value, ring_inner_alpha; + string ring_image, ring_inner_image; + vector ring_rgb, ring_inner_rgb; - if(autocvar_crosshair_ring_reload && weapon_clipsize) // forces there to be only an ammo ring - { - ring_value = bound(0, weapon_clipload / weapon_clipsize, 1); - ring_scale = autocvar_crosshair_ring_reload_size; - ring_alpha = autocvar_crosshair_ring_reload_alpha; - ring_rgb = wcross_color; - - // Note: This is to stop Taoki from complaining that the image doesn't match all potential balances. - // if a new image for another weapon is added, add the code (and its respective file/value) here - if ((activeweapon == WEP_RIFLE) && (weapon_clipsize == 80)) - ring_image = "gfx/crosshair_ring_rifle.tga"; - else + ring_scale = autocvar_crosshair_ring_size; + + float weapon_clipload, weapon_clipsize; + weapon_clipload = getstati(STAT_WEAPON_CLIPLOAD); + weapon_clipsize = getstati(STAT_WEAPON_CLIPSIZE); + + float nex_charge, nex_chargepool; + nex_charge = getstatf(STAT_NEX_CHARGE); + nex_chargepool = getstatf(STAT_NEX_CHARGEPOOL); + + if(nex_charge_movingavg == 0) // this should only happen if we have just loaded up the game + nex_charge_movingavg = nex_charge; + + + // handle the values + if (autocvar_crosshair_ring && activeweapon == WEP_NEX && nex_charge && autocvar_crosshair_ring_nex) // ring around crosshair representing velocity-dependent damage for the nex + { + if (nex_chargepool || use_nex_chargepool) { + use_nex_chargepool = 1; + ring_inner_value = nex_chargepool; + } else { + nex_charge_movingavg = (1 - autocvar_crosshair_ring_nex_currentcharge_movingavg_rate) * nex_charge_movingavg + autocvar_crosshair_ring_nex_currentcharge_movingavg_rate * nex_charge; + ring_inner_value = bound(0, autocvar_crosshair_ring_nex_currentcharge_scale * (nex_charge - nex_charge_movingavg), 1); + } + + ring_inner_alpha = autocvar_crosshair_ring_nex_inner_alpha; + ring_inner_rgb = eX * autocvar_crosshair_ring_nex_inner_color_red + eY * autocvar_crosshair_ring_nex_inner_color_green + eZ * autocvar_crosshair_ring_nex_inner_color_blue; + ring_inner_image = "gfx/crosshair_ring_inner.tga"; + + // draw the outer ring to show the current charge of the weapon + ring_value = nex_charge; + ring_alpha = autocvar_crosshair_ring_nex_alpha; + ring_rgb = wcross_color; + ring_image = "gfx/crosshair_ring_nexgun.tga"; + } + else if (autocvar_crosshair_ring && activeweapon == WEP_MINE_LAYER && minelayer_maxmines && autocvar_crosshair_ring_minelayer) + { + ring_value = bound(0, getstati(STAT_LAYED_MINES) / minelayer_maxmines, 1); // if you later need to use the count of bullets in another place, then add a float for it. For now, no need to. + ring_alpha = autocvar_crosshair_ring_minelayer_alpha; + ring_rgb = wcross_color; ring_image = "gfx/crosshair_ring.tga"; - } + } + else if (activeweapon == WEP_HAGAR && getstati(STAT_HAGAR_LOAD) && autocvar_crosshair_ring_hagar) + { + ring_value = bound(0, getstati(STAT_HAGAR_LOAD) / hagar_maxrockets, 1); + ring_alpha = autocvar_crosshair_ring_hagar_alpha; + ring_rgb = wcross_color; + ring_image = "gfx/crosshair_ring.tga"; + } - if (autocvar_crosshair_ring_inner && ring_inner_value) // lets draw a ring inside a ring so you can ring while you ring - DrawCircleClippedPic(wcross_origin, wcross_size_x * ring_scale, ring_inner_image, ring_inner_value, ring_inner_rgb, wcross_alpha * ring_inner_alpha, DRAWFLAG_ADDITIVE); + if(autocvar_crosshair_ring_reload && weapon_clipsize) // forces there to be only an ammo ring + { + ring_value = bound(0, weapon_clipload / weapon_clipsize, 1); + ring_scale = autocvar_crosshair_ring_reload_size; + ring_alpha = autocvar_crosshair_ring_reload_alpha; + ring_rgb = wcross_color; + + // Note: This is to stop Taoki from complaining that the image doesn't match all potential balances. + // if a new image for another weapon is added, add the code (and its respective file/value) here + if ((activeweapon == WEP_RIFLE) && (weapon_clipsize == 80)) + ring_image = "gfx/crosshair_ring_rifle.tga"; + else + ring_image = "gfx/crosshair_ring.tga"; + } - if (ring_value) - DrawCircleClippedPic(wcross_origin, wcross_size_x * ring_scale, ring_image, ring_value, ring_rgb, wcross_alpha * ring_alpha, DRAWFLAG_ADDITIVE); - } + if (autocvar_crosshair_ring_inner && ring_inner_value) // lets draw a ring inside a ring so you can ring while you ring + DrawCircleClippedPic(wcross_origin, wcross_size_x * ring_scale, ring_inner_image, ring_inner_value, ring_inner_rgb, wcross_alpha * ring_inner_alpha, DRAWFLAG_ADDITIVE); + + if (ring_value) + DrawCircleClippedPic(wcross_origin, wcross_size_x * ring_scale, ring_image, ring_value, ring_rgb, wcross_alpha * ring_alpha, DRAWFLAG_ADDITIVE); + } #define CROSSHAIR_DO_BLUR(M,sz,wcross_name,wcross_alpha) \ - do \ - { \ - if(wcross_blur > 0) \ + do \ { \ - for(i = -2; i <= 2; ++i) \ + if(wcross_blur > 0) \ + { \ + for(i = -2; i <= 2; ++i) \ for(j = -2; j <= 2; ++j) \ - M(i,j,sz,wcross_name,wcross_alpha*0.04); \ - } \ - else \ - { \ - M(0,0,sz,wcross_name,wcross_alpha); \ + M(i,j,sz,wcross_name,wcross_alpha*0.04); \ + } \ + else \ + { \ + M(0,0,sz,wcross_name,wcross_alpha); \ + } \ } \ - } \ - while(0) + while(0) #define CROSSHAIR_DRAW_SINGLE(i,j,sz,wcross_name,wcross_alpha) \ - drawpic(wcross_origin - ('0.5 0 0' * (sz * wcross_size_x + i * wcross_blur) + '0 0.5 0' * (sz * wcross_size_y + j * wcross_blur)), wcross_name, sz * wcross_size, wcross_color, wcross_alpha, DRAWFLAG_NORMAL) + drawpic(wcross_origin - ('0.5 0 0' * (sz * wcross_size_x + i * wcross_blur) + '0 0.5 0' * (sz * wcross_size_y + j * wcross_blur)), wcross_name, sz * wcross_size, wcross_color, wcross_alpha, DRAWFLAG_NORMAL) #define CROSSHAIR_DRAW(sz,wcross_name,wcross_alpha) \ - CROSSHAIR_DO_BLUR(CROSSHAIR_DRAW_SINGLE,sz,wcross_name,wcross_alpha) + CROSSHAIR_DO_BLUR(CROSSHAIR_DRAW_SINGLE,sz,wcross_name,wcross_alpha) - if(time < wcross_name_changedonetime && wcross_name != wcross_name_goal_prev_prev && wcross_name_goal_prev_prev) - { - f = (wcross_name_changedonetime - time) / (wcross_name_changedonetime - wcross_name_changestarttime); - wcross_size = drawgetimagesize(wcross_name_goal_prev_prev) * wcross_scale; - CROSSHAIR_DRAW(wcross_resolution_goal_prev_prev, wcross_name_goal_prev_prev, wcross_alpha * f * wcross_name_alpha_goal_prev_prev); - f = 1 - f; - } - else - { - f = 1; - } + if(time < wcross_name_changedonetime && wcross_name != wcross_name_goal_prev_prev && wcross_name_goal_prev_prev) + { + f = (wcross_name_changedonetime - time) / (wcross_name_changedonetime - wcross_name_changestarttime); + wcross_size = drawgetimagesize(wcross_name_goal_prev_prev) * wcross_scale; + CROSSHAIR_DRAW(wcross_resolution_goal_prev_prev, wcross_name_goal_prev_prev, wcross_alpha * f * wcross_name_alpha_goal_prev_prev); + f = 1 - f; + } + else + { + f = 1; + } + wcross_name_alpha_goal_prev = f; - wcross_size = drawgetimagesize(wcross_name) * wcross_scale; - CROSSHAIR_DRAW(wcross_resolution, wcross_name, wcross_alpha * f); - - if(autocvar_crosshair_dot) - { - vector wcross_color_old; - wcross_color_old = wcross_color; - if(autocvar_crosshair_dot_color != "0") - wcross_color = stov(autocvar_crosshair_dot_color); - CROSSHAIR_DRAW(wcross_resolution * autocvar_crosshair_dot_size, "gfx/crosshairdot.tga", f * autocvar_crosshair_dot_alpha); - wcross_color = wcross_color_old; - } - - wcross_name_alpha_goal_prev = f; + wcross_size = drawgetimagesize(wcross_name) * wcross_scale; + CROSSHAIR_DRAW(wcross_resolution, wcross_name, wcross_alpha * f); + + if(autocvar_crosshair_dot) + { + vector wcross_color_old; + wcross_color_old = wcross_color; + if(autocvar_crosshair_dot_color != "0") + wcross_color = stov(autocvar_crosshair_dot_color); + CROSSHAIR_DRAW(wcross_resolution * autocvar_crosshair_dot_size, "gfx/crosshairdot.tga", f * autocvar_crosshair_dot_alpha); + // FIXME why don't we use wcross_alpha here? + wcross_color = wcross_color_old; + } + } } else { @@ -1382,359 +1371,71 @@ void CSQC_UpdateView(float w, float h) if(autocvar__hud_configure) HUD_Panel_Mouse(); - + + if(hud && !intermission) + { + if(hud == HUD_SPIDERBOT) + CSQC_SPIDER_HUD(); + else if(hud == HUD_WAKIZASHI) + CSQC_WAKIZASHI_HUD(); + else if(hud == HUD_RAPTOR) + CSQC_RAPTOR_HUD(); + else if(hud == HUD_BUMBLEBEE) + CSQC_BUMBLE_HUD(); + } // let's reset the view back to normal for the end R_SetView(VF_MIN, '0 0 0'); R_SetView(VF_SIZE, '1 0 0' * w + '0 1 0' * h); } -#define spider_h "gfx/vehicles/hud_bg.tga" -#define spider_b "gfx/vehicles/sbot.tga" -#define spider_r "gfx/vehicles/sbot_rpods.tga" -#define spider_g "gfx/vehicles/sbot_mguns.tga" -#define spider_s "gfx/vehicles/shiled.tga" -#define spider_a1 "gfx/hud/sb_rocket.tga" -#define spider_a2 "gfx/sb_bullets.tga" -void CSQC_SPIDER_HUD() +void CSQC_common_hud(void) { - float rockets, reload, heat, hp, shield; - vector picsize, hudloc; - - // Fetch health & ammo stats - hp = bound(0,getstatf(STAT_VEHICLESTAT_HEALTH), 1); - shield = bound(0,getstatf(STAT_VEHICLESTAT_SHIELD), 1); - heat = min(getstatf(STAT_VEHICLESTAT_RELOAD1), 2); - rockets = getstati(STAT_VEHICLESTAT_AMMO2); - reload = min(getstatf(STAT_VEHICLESTAT_RELOAD2), 1); - - // Draw the crosshairs - picsize = drawgetimagesize(SPIDER_CROSS); - picsize_x *= autocvar_cl_vehicle_spiderbot_cross_size; - picsize_y *= autocvar_cl_vehicle_spiderbot_cross_size; - drawpic('0.5 0 0' * (vid_conwidth - picsize_x) + '0 0.5 0' * (vid_conheight - picsize_y), SPIDER_CROSS, picsize, '1 1 1', autocvar_cl_vehicle_spiderbot_cross_alpha, DRAWFLAG_NORMAL); - - hudloc_y = 4; - hudloc_x = 4; - - picsize = drawgetimagesize(spider_h) * 0.5; - drawpic(hudloc, spider_h, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); - - picsize = drawgetimagesize(spider_a2) * 0.5; - drawpic(hudloc + '120 96 0', spider_a2, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); - - drawstring(hudloc + '145 19 0', strcat(ftos(rint(hp * 100)), "%"),'15 15 0','0 1 0', 1, DRAWFLAG_NORMAL); - drawstring(hudloc + '175 34 0', strcat(ftos(rint(shield * 100)), "%"),'15 15 0','0 0 1', 1, DRAWFLAG_NORMAL); - drawstring(hudloc + '136 102 0', strcat(ftos(100 - rint(heat * 100)), "%"),'14 14 0','1 1 0', 1, DRAWFLAG_NORMAL); - - picsize = drawgetimagesize(spider_a1) * 0.85; - if(rockets == 9) + // do some accuracy var caching + float i; + if(!(gametype == GAME_RACE || gametype == GAME_CTS)) { - drawpic(hudloc + '132 54 0', spider_a1, picsize, '-1 -1 -1', 1, DRAWFLAG_NORMAL); - drawstring(hudloc + '179 69 0', strcat(ftos(rint(reload * 100)), "%"),'14 14 0','1 1 0', 1, DRAWFLAG_NORMAL); + if(autocvar_accuracy_color_levels != acc_color_levels) + { + if(acc_color_levels) + strunzone(acc_color_levels); + acc_color_levels = strzone(autocvar_accuracy_color_levels); + acc_levels = tokenize(acc_color_levels); + if (acc_levels > MAX_ACCURACY_LEVELS) + acc_levels = MAX_ACCURACY_LEVELS; + + for (i = 0; i < acc_levels; ++i) + acc_lev[i] = stof(argv(i)) / 100.0; + } + // let know that acc_col[] needs to be loaded + acc_col_x[0] = -1; } - else - { - drawpic(hudloc + '132 54 0', spider_a1, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); - drawstring(hudloc + '179 69 0', strcat(ftos(9 - rockets), "/8"),'14 14 0','1 1 0', 1, DRAWFLAG_NORMAL); - } - - picsize = drawgetimagesize(spider_b) * 0.5; - hudloc_y = 10.5; - hudloc_x = 10.5; - - drawpic(hudloc, spider_s, picsize, '1 1 1', shield, DRAWFLAG_NORMAL); - drawpic(hudloc, spider_b, picsize, '0 1 0' * hp + '1 0 0' * (1 - hp), 1, DRAWFLAG_NORMAL); - drawpic(hudloc, spider_r, picsize, '1 1 1' * reload + '1 0 0' * (1 - reload), 1, DRAWFLAG_NORMAL); - drawpic(hudloc, spider_g, picsize, '1 1 1' * (1 - heat) + '1 0 0' * heat, 1, DRAWFLAG_NORMAL); - - /* - // Draw health bar - p = '0.5 0 0' * (vid_conwidth - (rkt_size * 8)); - p = p + '0 1 0' * vid_conheight - '0 32 0'; - //pp = ('0 1 0' * hp) + ('1 0 0' * (1-hp)); - drawfill(p, '256 0 0' * shield + '0 8 0' , '0.5 0.5 1', 0.75, DRAWFLAG_NORMAL); - p_y += 8; - drawfill(p, '256 0 0' * hp + '0 8 0' , '0 1 0', 0.75, DRAWFLAG_NORMAL); - p_x += 256 * hp; - drawfill(p, '256 0 0' * (1-hp) + '0 8 0' , '0 0 0', 0.75, DRAWFLAG_NORMAL); - - // Draw minigun heat indicator - p = '0.5 0 0' * (vid_conwidth - 256); - p = p + '0 1 0' * vid_conheight - '0 34 0'; - drawfill(p, '256 0 0' * (1-heat) + '0 2 0' ,'0 0 1', 0.5, DRAWFLAG_NORMAL); - p_x += 256 * (1-heat); - drawfill(p, '256 0 0' * heat + '0 2 0' , '1 0 0', 0.5, DRAWFLAG_NORMAL); - - - // Draw rocket icons for loaded/empty tubes. - pp = '0.5 0 0' * (vid_conwidth - (rkt_size * 8)); - pp += '0 1 0' * vid_conheight - '0 64 0'; - for(i = 0; i < 8; ++i) - { - p = pp + '1 0 0' * (rkt_size * i); - if(rockets == 8) - { - if(floor(reload * 8) == i) - { - drawpic(p, spider_rocket_icon, '1 1 0' * rkt_size, '1 0 0' + '0 1 0' * ((reload*8)-i), 0.75 , DRAWFLAG_NORMAL); - } - else if(i < reload * 8) - drawpic(p, spider_rocket_icon, '1 1 0' * rkt_size, '1 1 0', 0.75 , DRAWFLAG_NORMAL); - else - drawpic(p, spider_rocket_icon, '1 1 0' * rkt_size, '0.5 0.5 0.5', 0.75, DRAWFLAG_NORMAL); - } - else - { - if(i < rockets) - drawpic(p, spider_rocket_icon, '1 1 0' * rkt_size, '0 0 0', 0.25, DRAWFLAG_NORMAL); - else - drawpic(p, spider_rocket_icon, '1 1 0' * rkt_size, '0 1 0' * reload, 0.75, DRAWFLAG_NORMAL); - } - } - */ - - if (scoreboard_showscores) - { - HUD_DrawScoreboard(); - HUD_DrawCenterPrint(); - } - -} + HUD_Main(); // always run these functions for alpha checks + HUD_DrawScoreboard(); -#define raptor_h "gfx/vehicles/hud_bg.tga" -#define raptor_b "gfx/vehicles/raptor.tga" -#define raptor_g1 "gfx/vehicles/raptor_guns.tga" -#define raptor_g2 "gfx/vehicles/raptor_bombs.tga" -#define raptor_s "gfx/vehicles/shiled.tga" - -void CSQC_RAPTOR_HUD() -{ - float reload, hp, shield, energy; - vector picsize, hudloc; - - // Fetch health & ammo stats - hp = bound(0,getstatf(STAT_VEHICLESTAT_HEALTH), 1); - shield = bound(0,getstatf(STAT_VEHICLESTAT_SHIELD), 1); - reload = min(getstatf(STAT_VEHICLESTAT_RELOAD1), 1); - energy = min(getstatf(STAT_VEHICLESTAT_ENERGY), 1); - - // Draw the crosshairs - picsize = drawgetimagesize(SPIDER_CROSS); - picsize_x *= autocvar_cl_vehicle_spiderbot_cross_size; - picsize_y *= autocvar_cl_vehicle_spiderbot_cross_size; - drawpic('0.5 0 0' * (vid_conwidth - picsize_x) + '0 0.5 0' * (vid_conheight - picsize_y), SPIDER_CROSS, picsize, '1 1 1', autocvar_cl_vehicle_spiderbot_cross_alpha, DRAWFLAG_NORMAL); - - hudloc_y = 4; - hudloc_x = 4; - - picsize = drawgetimagesize(raptor_h) * 0.5; - drawpic(hudloc, raptor_h, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); - - picsize = drawgetimagesize(spider_a2) * 0.5; - drawpic(hudloc + '120 96 0', spider_a2, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); - - drawstring(hudloc + '145 19 0', strcat(ftos(rint(hp * 100)), "%"),'15 15 0','0 1 0', 1, DRAWFLAG_NORMAL); - drawstring(hudloc + '175 34 0', strcat(ftos(rint(shield * 100)), "%"),'15 15 0','0 0 1', 1, DRAWFLAG_NORMAL); - drawstring(hudloc + '136 102 0', strcat(ftos(rint(energy * 100)), "%"),'15 15 0','0.5 0.5 1', 1, DRAWFLAG_NORMAL); - - - picsize = drawgetimagesize(spider_a1) * 0.85; - if(reload == 1) + if (scoreboard_active) // scoreboard/accuracy { - drawpic(hudloc + '132 54 0', spider_a1, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); - drawstring(hudloc + '179 69 0', strcat(ftos(rint(reload * 100)), "%"),'14 14 0','0 1 0', 0.5, DRAWFLAG_NORMAL); + HUD_Reset(); + // HUD_DrawScoreboard takes care of centerprint_start } - else + else if (intermission == 2) // map voting screen { - drawpic(hudloc + '132 54 0', spider_a1, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); - drawstring(hudloc + '179 69 0', strcat(ftos(rint(reload * 100)), "%"),'14 14 0','0 0 1', 1, DRAWFLAG_NORMAL); - } - - picsize = drawgetimagesize(raptor_b) * 0.5; - hudloc_y = 10.5; - hudloc_x = 10.5; - - drawpic(hudloc, raptor_s, picsize, '1 1 1', shield, DRAWFLAG_NORMAL); - drawpic(hudloc, raptor_b, picsize, '0 1 0' * hp + '1 0 0' * (1 - hp), 1, DRAWFLAG_NORMAL); - drawpic(hudloc, raptor_g1, picsize, '1 1 1' * energy + '1 0 0' * (1 - energy), 1, DRAWFLAG_NORMAL); - drawpic(hudloc, raptor_g2, picsize, '1 1 1' * reload + '1 0 0' * (1 - reload), 1, DRAWFLAG_NORMAL); - - - if (scoreboard_showscores) - { - HUD_DrawScoreboard(); - HUD_DrawCenterPrint(); - } - -} - -#define waki_h "gfx/vehicles/hud_bg.tga" -#define waki_b "gfx/vehicles/waki.tga" -#define waki_e "gfx/vehicles/waki_e.tga" -#define waki_g "gfx/vehicles/waki_guns.tga" -#define waki_r "gfx/vehicles/waki_rockets.tga" -#define waki_s "gfx/vehicles/shiled.tga" - -#define waki_a1 "gfx/hud/sb_rocket.tga" -#define waki_a2 "gfx/sb_cells.tga" + HUD_FinaleOverlay(); + HUD_Reset(); -void CSQC_WAKIZASHI_HUD() -{ - // 0--1 floats. 1 = 100%, 0.6 = 50%. - float health, shield, energy, rockets; - vector picsize, hudloc; - - picsize = drawgetimagesize(SPIDER_CROSS); - picsize_x *= autocvar_cl_vehicle_spiderbot_cross_size; - picsize_y *= autocvar_cl_vehicle_spiderbot_cross_size; - drawpic('0.5 0 0' * (vid_conwidth - picsize_x) + '0 0.5 0' * (vid_conheight - picsize_y), SPIDER_CROSS, picsize, '1 1 1', autocvar_cl_vehicle_spiderbot_cross_alpha, DRAWFLAG_NORMAL); - -/* -const float STAT_VEHICLESTAT_HEALTH = 60; -const float STAT_VEHICLESTAT_SHIELD = 61; -const float STAT_VEHICLESTAT_ENERGY = 62; -const float STAT_VEHICLESTAT_AMMO1 = 63; -const float STAT_VEHICLESTAT_RELAOD1 = 64; -const float STAT_VEHICLESTAT_AMMO2 = 65; -const float STAT_VEHICLESTAT_RELOAD2 = 66; -*/ - health = min(getstatf(STAT_VEHICLESTAT_HEALTH), 1); - shield = min(getstatf(STAT_VEHICLESTAT_SHIELD), 1); - energy = min(getstatf(STAT_VEHICLESTAT_ENERGY), 1); - rockets = bound(0,getstatf(STAT_VEHICLESTAT_RELOAD1), 1); - - hudloc_y = 4; - hudloc_x = 4; - - picsize = drawgetimagesize(waki_h) * 0.5; - drawpic(hudloc, waki_h, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); - - picsize = drawgetimagesize(waki_a2) * 0.7; - drawpic(hudloc + '116 92 0', waki_a2, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); - - - drawstring(hudloc + '145 19 0', strcat(ftos(rint(health * 100)), "%"),'15 15 0','0 1 0', 1, DRAWFLAG_NORMAL); - drawstring(hudloc + '175 34 0', strcat(ftos(rint(shield * 100)), "%"),'15 15 0','0 0 1', 1, DRAWFLAG_NORMAL); - - drawstring(hudloc + '136 102 0', strcat(ftos(rint(energy * 100)), "%"),'14 14 0','1 1 1', 1, DRAWFLAG_NORMAL); - - picsize = drawgetimagesize(waki_a1) * 0.75; - if(rockets == 1) - { - drawpic(hudloc + '140 55 0', waki_a1, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); - drawpic(hudloc + '144 59 0', waki_a1, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); + centerprint_start_x = 0; + centerprint_start_y = autocvar_scr_centerpos * vid_conheight; } - else + else // hud { - drawpic(hudloc + '140 55 0', waki_a1, picsize, '-1 -1 -1', 1, DRAWFLAG_NORMAL); - drawpic(hudloc + '144 59 0', waki_a1, picsize, '-1 -1 -1', 1, DRAWFLAG_NORMAL); - drawstring(hudloc + '165 69 0', strcat(ftos(rint(rockets * 100)), "%"),'14 14 0','1 1 0', 1, DRAWFLAG_NORMAL); + centerprint_start_x = 0; + centerprint_start_y = autocvar_scr_centerpos * vid_conheight; } - picsize = drawgetimagesize(waki_b) * 0.5; - hudloc_y = 10.5; - hudloc_x = 10.5; - - drawpic(hudloc, waki_s, picsize, '1 1 1', shield, DRAWFLAG_NORMAL); - drawpic(hudloc, waki_b, picsize, '0 1 0' * health + '1 0 0' * (1 - health), 1, DRAWFLAG_NORMAL); - drawpic(hudloc, waki_r, picsize, '1 1 1' * rockets + '1 0 0' * (1 - rockets), 1, DRAWFLAG_NORMAL); - drawpic(hudloc, waki_e, picsize, '1 1 1' * energy + '1 0 0' * (1 - energy), 1, DRAWFLAG_NORMAL); - - - /* - p = '0.5 0 0' * (vid_conwidth - (rkt_size * 8)); - p = p + '0 1 0' * vid_conheight - '0 32 0'; - - // Draw health bar - p_y += 8; - drawfill(p, '256 0 0' * health + '0 8 0' , '0 0.7 0', 0.75, DRAWFLAG_NORMAL); - p_x += 256 * health; - drawfill(p, '256 0 0' * (1 - health) + '0 8 0' , '0 0 0', 0.75, DRAWFLAG_NORMAL); - - // Draw shiled bar - p_x -= 256 * health; - p_y += 4; - drawfill(p, '256 0 0' * shield + '0 4 0' , '0.25 0.25 1', 0.5, DRAWFLAG_NORMAL); - - // Draw energy - //p_x -= 256 * health; - p_y -= 8; - drawfill(p, '256 0 0' * energy + '0 4 0' , '1 1 1', 0.75, DRAWFLAG_NORMAL); - - // Draw rockets bar - p_y += 12; - drawfill(p, '256 0 0' * rockets + '0 4 0' , '1 0 0', 0.75, DRAWFLAG_NORMAL); - */ - - - - - if (scoreboard_showscores) - { - HUD_DrawScoreboard(); - HUD_DrawCenterPrint(); - } - -} - -void CSQC_common_hud(void) -{ - // HUD_SortFrags(); done in HUD_Draw - float hud; - hud = getstati(STAT_HUD); - - //hud = 10; switch(hud) { - case HUD_NORMAL: - // do some accuracy var caching - float i; - if(!(gametype == GAME_RACE || gametype == GAME_CTS)) - { - if(autocvar_accuracy_color_levels != acc_color_levels) - { - if(acc_color_levels) - strunzone(acc_color_levels); - acc_color_levels = strzone(autocvar_accuracy_color_levels); - acc_levels = tokenize(acc_color_levels); - if (acc_levels > MAX_ACCURACY_LEVELS) - acc_levels = MAX_ACCURACY_LEVELS; - - for (i = 0; i < acc_levels; ++i) - acc_lev[i] = stof(argv(i)) / 100.0; - } - // let know that acc_col[] needs to be loaded - acc_col_x[0] = -1; - } - - HUD_Main(); // always run these functions for alpha checks - HUD_DrawScoreboard(); - - if (scoreboard_active) // scoreboard/accuracy - { - HUD_Reset(); - // HUD_DrawScoreboard takes care of centerprint_start - } - else if (intermission == 2) // map voting screen - { - HUD_FinaleOverlay(); - HUD_Reset(); - - centerprint_start_x = 0; - centerprint_start_y = autocvar_scr_centerpos * vid_conheight; - } - else // hud - { - centerprint_start_x = 0; - centerprint_start_y = autocvar_scr_centerpos * vid_conheight; - } - - HUD_DrawCenterPrint(); - break; - case HUD_SPIDERBOT: CSQC_SPIDER_HUD(); break; @@ -1742,7 +1443,15 @@ void CSQC_common_hud(void) case HUD_WAKIZASHI: CSQC_WAKIZASHI_HUD(); break; + + case HUD_BUMBLEBEE: + CSQC_BUMBLE_HUD(); + break; } + */ + + HUD_DrawCenterPrint(); + } diff --git a/qcsrc/client/autocvars.qh b/qcsrc/client/autocvars.qh index 3c1f16278..eda2aa7a4 100644 --- a/qcsrc/client/autocvars.qh +++ b/qcsrc/client/autocvars.qh @@ -122,6 +122,7 @@ float autocvar_g_balance_tuba_attenuation; float autocvar_g_balance_tuba_fadetime; float autocvar_g_balance_tuba_volume; float autocvar_g_warmup_limit; +var float autocvar_g_waypointsprite_uppercase = 1; var float autocvar_g_waypointsprite_alpha = 1; var float autocvar_g_waypointsprite_crosshairfadealpha = 1; float autocvar_g_waypointsprite_crosshairfadedistance; @@ -137,6 +138,7 @@ float autocvar_g_waypointsprite_minalpha; float autocvar_g_waypointsprite_minscale; float autocvar_g_waypointsprite_normdistance; var float autocvar_g_waypointsprite_scale = 1; +var float autocvar_g_waypointsprite_fontsize = 12; float autocvar_g_waypointsprite_timealphaexponent; var float autocvar_hud_colorflash_alpha = 0.5; float autocvar_hud_configure_bg_minalpha; diff --git a/qcsrc/client/casings.qc b/qcsrc/client/casings.qc index 860e8296f..423896f39 100644 --- a/qcsrc/client/casings.qc +++ b/qcsrc/client/casings.qc @@ -75,7 +75,7 @@ void Ent_Casing(float isNew) { entity casing; - casing = RubbleNew("casing"); + casing = RubbleNew("casing"); casing.state = ReadByte(); casing.silent = (casing.state & 0x80); casing.state = (casing.state & 0x7F); diff --git a/qcsrc/client/csqc_constants.qc b/qcsrc/client/csqc_constants.qc index 93051cc4d..5976eb975 100644 --- a/qcsrc/client/csqc_constants.qc +++ b/qcsrc/client/csqc_constants.qc @@ -164,7 +164,6 @@ const float BUTTON_14 = 65536; const float BUTTON_15 = 131072; const float BUTTON_16 = 262144; - const float DRAWFLAG_NORMAL = 0; const float DRAWFLAG_ADDITIVE = 1; const float DRAWFLAG_MODULATE = 2; diff --git a/qcsrc/client/damage.qc b/qcsrc/client/damage.qc index 783f66759..6ff989e4a 100644 --- a/qcsrc/client/damage.qc +++ b/qcsrc/client/damage.qc @@ -69,9 +69,147 @@ void Ent_DamageInfo(float isNew) } self = oldself; + + if(DEATH_ISVEHICLE(w_deathtype)) + { + traceline(w_org - normalize(force) * 16, w_org + normalize(force) * 16, MOVE_NOMONSTERS, world); + if(trace_plane_normal != '0 0 0') + w_backoff = trace_plane_normal; + else + w_backoff = -1 * normalize(w_org - (w_org + normalize(force) * 16)); + + setorigin(self, w_org + w_backoff * 2); // for sound() calls + + switch(w_deathtype) + { + case DEATH_VHCRUSH: + break; + + case DEATH_SBMINIGUN: + string _snd; + _snd = strcat("weapons/ric", ftos(1 + rint(random() * 2)), ".waw"); + sound(self, CHAN_PROJECTILE, _snd, VOL_BASE, ATTN_NORM); + pointparticles(particleeffectnum("spiderbot_minigun_impact"), self.origin, w_backoff * 1000, 1); + break; + case DEATH_SBROCKET: + sound(self, CHAN_PROJECTILE, "weapons/rocket_impact.wav", VOL_BASE, ATTN_NORM); + pointparticles(particleeffectnum("spiderbot_rocket_explode"), self.origin, w_backoff * 1000, 1); + break; + case DEATH_SBBLOWUP: + sound(self, CHAN_PROJECTILE, "weapons/rocket_impact.wav", VOL_BASE, ATTN_MIN); + pointparticles(particleeffectnum("explosion_big"), self.origin, w_backoff * 1000, 1); + break; + + case DEATH_WAKIGUN: + sound(self, CHAN_PROJECTILE, "weapons/laserimpact.wav", VOL_BASE, ATTN_NORM); + pointparticles(particleeffectnum("wakizashi_gun_impact"), self.origin, w_backoff * 1000, 1); + break; + case DEATH_WAKIROCKET: + sound(self, CHAN_PROJECTILE, "weapons/rocket_impact.wav", VOL_BASE, ATTN_NORM); + pointparticles(particleeffectnum("wakizashi_rocket_explode"), self.origin, w_backoff * 1000, 1); + break; + case DEATH_WAKIBLOWUP: + sound(self, CHAN_PROJECTILE, "weapons/rocket_impact.wav", VOL_BASE, ATTN_MIN); + pointparticles(particleeffectnum("explosion_big"), self.origin, w_backoff * 1000, 1); + break; + + case DEATH_RAPTOR_CANNON: + sound(self, CHAN_PROJECTILE, "weapons/laserimpact.wav", VOL_BASE, ATTN_NORM); + pointparticles(particleeffectnum("raptor_cannon_impact"), self.origin, w_backoff * 1000, 1); + break; + case DEATH_RAPTOR_BOMB_SPLIT: + float i; + vector ang, vel; + for(i = 1; i < 4; ++i) + { + vel = normalize(w_org - (w_org + normalize(force) * 16)) + randomvec() * 128; + ang = vectoangles(vel); + RaptorCBShellfragToss(w_org, vel, ang + '0 0 1' * (120 * i)); + } + + + sound(self, CHAN_PROJECTILE, "weapons/rocket_impact.wav", VOL_BASE, ATTN_NORM); + pointparticles(particleeffectnum("raptor_bomb_spread"), self.origin, w_backoff * 1000, 1); + break; + case DEATH_RAPTOR_BOMB: + sound(self, CHAN_PROJECTILE, "weapons/rocket_impact.wav", VOL_BASE, ATTN_NORM); + pointparticles(particleeffectnum("raptor_bomb_impact"), self.origin, w_backoff * 1000, 1); + break; + case DEATH_RAPTOR_DEATH: + sound(self, CHAN_PROJECTILE, "weapons/laserimpact.wav", VOL_BASE, ATTN_MIN); + pointparticles(particleeffectnum("explosion_big"), self.origin, w_backoff * 1000, 1); + break; + } + } + + + if(DEATH_ISTURRET(w_deathtype)) + { + traceline(w_org - normalize(force) * 16, w_org + normalize(force) * 16, MOVE_NOMONSTERS, world); + if(trace_plane_normal != '0 0 0') + w_backoff = trace_plane_normal; + else + w_backoff = -1 * normalize(w_org - (w_org + normalize(force) * 16)); + + setorigin(self, w_org + w_backoff * 2); // for sound() calls + + switch(w_deathtype) + { + case DEATH_TURRET_EWHEEL: + sound(self, CHAN_PROJECTILE, "weapons/laserimpact.wav", VOL_BASE, ATTN_MIN); + pointparticles(particleeffectnum("electro_impact"), self.origin, w_backoff * 1000, 1); + break; + + case DEATH_TURRET_FLAC: + vector org2; + org2 = w_org + w_backoff * 6; + pointparticles(particleeffectnum("hagar_explode"), org2, '0 0 0', 1); + if (w_random<0.15) + sound(self, CHAN_PROJECTILE, "weapons/hagexp1.wav", VOL_BASE, ATTN_NORM); + else if (w_random<0.7) + sound(self, CHAN_PROJECTILE, "weapons/hagexp2.wav", VOL_BASE, ATTN_NORM); + else + sound(self, CHAN_PROJECTILE, "weapons/hagexp3.wav", VOL_BASE, ATTN_NORM); + + break; + + case DEATH_TURRET_MLRS: + case DEATH_TURRET_HK: + case DEATH_TURRET_WALKER_ROCKET: + case DEATH_TURRET_HELLION: + sound(self, CHAN_PROJECTILE, "weapons/rocket_impact.wav", VOL_BASE, ATTN_MIN); + pointparticles(particleeffectnum("rocket_explode"), self.origin, w_backoff * 1000, 1); + break; + + case DEATH_TURRET_MACHINEGUN: + case DEATH_TURRET_WALKER_GUN: + string _snd; + _snd = strcat("weapons/ric", ftos(1 + rint(random() * 2)), ".waw"); + sound(self, CHAN_PROJECTILE, _snd, VOL_BASE, ATTN_NORM); + pointparticles(particleeffectnum("machinegun_impact"), self.origin, w_backoff * 1000, 1); + break; + + case DEATH_TURRET_PLASMA: + sound(self, CHAN_PROJECTILE, "weapons/electro_impact.wav", VOL_BASE, ATTN_MIN); + pointparticles(particleeffectnum("electro_impact"), self.origin, w_backoff * 1000, 1); + break; + + case DEATH_TURRET_WALKER_MEELE: + sound(self, CHAN_PROJECTILE, "weapons/ric1.wav", VOL_BASE, ATTN_MIN); + pointparticles(particleeffectnum("TE_SPARK"), self.origin, w_backoff * 1000, 1); + break; - // TODO spawn particle effects and sounds based on w_deathtype + case DEATH_TURRET_PHASER: + break; + + case DEATH_TURRET_TESLA: + te_smallflash(self.origin); + break; + + } + } + // TODO spawn particle effects and sounds based on w_deathtype if(!DEATH_ISSPECIAL(w_deathtype)) { float hitwep; diff --git a/qcsrc/client/hud.qc b/qcsrc/client/hud.qc index a737c82d2..6b1171956 100644 --- a/qcsrc/client/hud.qc +++ b/qcsrc/client/hud.qc @@ -614,7 +614,7 @@ void HUD_Weapons(void) { float f, screen_ar; float center_x, center_y; - + if(hud != HUD_NORMAL) return; if(!autocvar__hud_configure) { if(!autocvar_hud_panel_weapons) return; @@ -1019,6 +1019,7 @@ void DrawAmmoItem(vector myPos, vector mySize, float itemcode, float currently_s void HUD_Ammo(void) { + if(hud != HUD_NORMAL) return; if(!autocvar__hud_configure) { if(!autocvar_hud_panel_ammo) return; @@ -1319,6 +1320,7 @@ void HUD_HealthArmor(void) if(!autocvar__hud_configure) { if(!autocvar_hud_panel_healtharmor) return; + if(hud != HUD_NORMAL) return; if(spectatee_status == -1) return; health = getstati(STAT_HEALTH); @@ -1755,7 +1757,7 @@ void HUD_KillNotify(string s1, string s2, string s3, float type, float msg) // s HUD_KillNotify_Push(s1, s2, 1, DEATH_HURTTRIGGER); if(alsoprint) print(sprintf(_("^1%s^1 was thrown into a world of hurt by %s\n"), s2, s1)); - } else if(type == DEATH_SBCRUSH) { + } else if(type == DEATH_VHCRUSH) { HUD_KillNotify_Push(s1, s2, 1, DEATH_GENERIC); if(alsoprint) print (sprintf(_("^1%s^1 was crushed by %s\n"), s2, s1)); @@ -1783,6 +1785,18 @@ void HUD_KillNotify(string s1, string s2, string s3, float type, float msg) // s HUD_KillNotify_Push(s1, s2, 1, DEATH_GENERIC); if(alsoprint) print (sprintf(_("^1%s^1 dies when %s^1's wakizashi dies.\n"), s2, s1)); + } else if(type == DEATH_RAPTOR_CANNON) { + HUD_KillNotify_Push(s1, s2, 1, DEATH_GENERIC); + if(alsoprint) + print (sprintf(_("^1%s^1 nailed to hell by %s\n"), s2, s1)); + } else if(type == DEATH_RAPTOR_BOMB) { + HUD_KillNotify_Push(s1, s2, 1, DEATH_GENERIC); + if(alsoprint) + print (sprintf(_("^1%s^1 cluster crushed by %s\n"), s2, s1)); + } else if(type == DEATH_RAPTOR_DEATH) { + HUD_KillNotify_Push(s1, s2, 1, DEATH_GENERIC); + if(alsoprint) + print (sprintf(_("^1%s^1 dies when %s^1's raptor dies.\n"), s2, s1)); } else if(type == DEATH_TURRET) { HUD_KillNotify_Push(s1, s2, 1, DEATH_GENERIC); if(alsoprint) diff --git a/qcsrc/client/main.qh b/qcsrc/client/main.qh index af849e18c..6788daad1 100644 --- a/qcsrc/client/main.qh +++ b/qcsrc/client/main.qh @@ -164,3 +164,5 @@ float g_balance_electro_secondary_bouncestop; float g_trueaim_minrange; entity entcs_receiver[255]; // 255 is the engine limit on maxclients + +float hud; diff --git a/qcsrc/client/progs.src b/qcsrc/client/progs.src index 4219eef16..0d024a941 100644 --- a/qcsrc/client/progs.src +++ b/qcsrc/client/progs.src @@ -30,8 +30,11 @@ prandom.qh bgmscript.qh noise.qh teamplay.qh - +tturrets.qh +../server/tturrets/include/turrets_early.qh +../server/movelib.qc main.qh +vehicles/vehicles.qh sortlist.qc miscfunctions.qc @@ -59,9 +62,10 @@ modeleffects.qc tuba.qc target_music.qc -//vehicles/spiderbot.qc +vehicles/vehicles.qc shownames.qh shownames.qc + Main.qc View.qc interpolate.qc @@ -82,5 +86,6 @@ noise.qc ../warpzonelib/mathlib.qc ../warpzonelib/common.qc ../warpzonelib/client.qc +tturrets.qc ../common/if-this-file-errors-scroll-up-and-fix-the-warnings.fteqccfail diff --git a/qcsrc/client/projectile.qc b/qcsrc/client/projectile.qc index 092cdc21a..228272386 100644 --- a/qcsrc/client/projectile.qc +++ b/qcsrc/client/projectile.qc @@ -27,10 +27,12 @@ void Projectile_ResetTrail(vector to) self.trail_oldorigin = to; self.trail_oldtime = time; } + void Projectile_DrawTrail(vector to) { vector from; float t0; + from = self.trail_oldorigin; t0 = self.trail_oldtime; self.trail_oldorigin = to; @@ -195,7 +197,7 @@ void Ent_Projectile() // effects // // projectiles don't send angles, because they always follow the velocity - + f = ReadByte(); self.count = (f & 0x80); self.iflags = (self.iflags & IFLAG_INTERNALMASK) | IFLAG_AUTOANGLES | IFLAG_ANGLES; @@ -294,6 +296,14 @@ void Ent_Projectile() case PROJECTILE_TAG: setmodel(self, "models/laser.mdl"); self.traileffect = particleeffectnum("TR_ROCKET"); break; case PROJECTILE_FLAC: setmodel(self, "models/hagarmissile.mdl"); self.scale = 0.4; self.traileffect = particleeffectnum("TR_SEEKER"); break; case PROJECTILE_SEEKER: setmodel(self, "models/tagrocket.md3"); self.traileffect = particleeffectnum("TR_SEEKER"); break; + + case PROJECTILE_RAPTORBOMB: setmodel(self, "models/vehicles/clusterbomb.md3"); self.gravity = 1; self.avelocity = '0 0 180'; self.traileffect = particleeffectnum(""); break; + case PROJECTILE_RAPTORBOMBLET: setmodel(self, "models/vehicles/bomblet.md3"); self.gravity = 1; self.avelocity = '0 0 180'; self.traileffect = particleeffectnum(""); break; + case PROJECTILE_RAPTORCANNON: setmodel(self, "models/plasmatrail.mdl"); self.traileffect = particleeffectnum("TR_CRYLINKPLASMA"); break; + + case PROJECTILE_SPIDERROCKET: setmodel(self, "models/vehicles/rocket02.md3"); self.traileffect = particleeffectnum("spiderbot_rocket_thrust"); break; + case PROJECTILE_WAKIROCKET: setmodel(self, "models/vehicles/rocket01.md3"); self.traileffect = particleeffectnum("wakizashi_rocket_thrust"); break; + case PROJECTILE_WAKICANNON: setmodel(self, "models/laser.mdl"); self.traileffect = particleeffectnum(""); break; default: error("Received invalid CSQC projectile, can't work with this!"); break; @@ -384,6 +394,22 @@ void Ent_Projectile() self.mins = '-4 -4 -4'; self.maxs = '4 4 4'; break; + case PROJECTILE_RAPTORBOMB: + self.mins = '-3 -3 -3'; + self.maxs = '3 3 3'; + break; + case PROJECTILE_RAPTORBOMBLET: + break; + case PROJECTILE_RAPTORCANNON: + break; + case PROJECTILE_SPIDERROCKET: + loopsound(self, CHAN_PROJECTILE, "weapons/tag_rocket_fly.wav", VOL_BASE, ATTN_NORM); + break; + case PROJECTILE_WAKIROCKET: + loopsound(self, CHAN_PROJECTILE, "weapons/tag_rocket_fly.wav", VOL_BASE, ATTN_NORM); + break; + case PROJECTILE_WAKICANNON: + break; default: break; } @@ -406,7 +432,7 @@ void Ent_Projectile() if(!(self.count & 0x80)) InterpolateOrigin_Note(); - + self.draw = Projectile_Draw; self.entremove = Ent_RemoveProjectile; } @@ -424,9 +450,11 @@ void Projectile_Precache() precache_model("models/rocket.md3"); precache_model("models/tagrocket.md3"); precache_model("models/tracer.mdl"); + precache_sound("weapons/electro_fly.wav"); precache_sound("weapons/rocket_fly.wav"); precache_sound("weapons/fireball_fly.wav"); precache_sound("weapons/fireball_fly2.wav"); precache_sound("weapons/tag_rocket_fly.wav"); + } diff --git a/qcsrc/client/tturrets.qc b/qcsrc/client/tturrets.qc new file mode 100644 index 000000000..55fcd88bc --- /dev/null +++ b/qcsrc/client/tturrets.qc @@ -0,0 +1,505 @@ +string tid2info_base; +string tid2info_head; +string tid2info_name; +vector tid2info_min; +vector tid2info_max; + +void turret_tid2info(float _tid); +void turret_precache(float _tid); +float turret_is_precache[TID_LAST]; + +void turrets_precache() +{ + turret_precache(TID_COMMON); +} + +void turret_precache(float _tid) +{ + if (!turret_is_precache[TID_COMMON]) + { + dprint("turret_precache TID_COMMON\n"); + precache_sound ("weapons/rocket_impact.wav"); + precache_model ("models/turrets/base-gib1.md3"); + precache_model ("models/turrets/base-gib2.md3"); + precache_model ("models/turrets/base-gib3.md3"); + precache_model ("models/turrets/base-gib4.md3"); + precache_model ("models/turrets/head-gib1.md3"); + precache_model ("models/turrets/head-gib2.md3"); + precache_model ("models/turrets/head-gib3.md3"); + precache_model ("models/turrets/head-gib4.md3"); + precache_model ("models/turrets/terrainbase.md3"); + precache_model ("models/turrets/base.md3"); + precache_model ("models/turrets/rocket.md3"); + } + turret_tid2info(_tid); + if(turret_is_precache[_tid]) + { + dprint("turret_precache: ", tid2info_name, " allready precachd, skipping.\n"); + return; + } + else + dprint("turret_precache: ", tid2info_name, " precaching.\n"); + + switch(_tid) + { + case TID_EWHEEL: + precache_model ("models/turrets/ewheel-base2.md3"); + precache_model ("models/turrets/ewheel-gun1.md3"); + break; + case TID_FLAC: + precache_model ("models/turrets/flac.md3"); + break; + case TID_FUSION: + precache_model ("models/turrets/reactor.md3"); + break; + case TID_HELLION: + precache_model ("models/turrets/hellion.md3"); + break; + case TID_HK: + precache_model ("models/turrets/hk.md3"); + break; + case TID_MACHINEGUN: + precache_model ("models/turrets/machinegun.md3"); + precache_sound ("weapons/uzi_fire.wav"); + break; + case TID_MLRS: + precache_model ("models/turrets/mlrs.md3"); + break; + case TID_PHASER: + precache_model ("models/turrets/phaser.md3"); + precache_model ("models/turrets/phaser_beam.md3"); + precache_sound ("turrets/phaser.wav"); + break; + case TID_PLASMA: + precache_model ("models/turrets/plasma.md3"); + break; + case TID_PLASMA_DUAL: + precache_model ("models/turrets/plasmad.md3"); + break; + case TID_TESLA: + precache_model ("models/turrets/tesla_head.md3"); + precache_model ("models/turrets/tesla_base.md3"); + break; + case TID_WALKER: + precache_model ("models/turrets/walker_head_minigun.md3"); + precache_model ("models/turrets/walker_body.md3"); + precache_sound ("weapons/uzi_fire.wav"); + break; + } + turret_is_precache[_tid] = TRUE; +} + +void turret_tid2info(float _tid) +{ + tid2info_base = "models/turrets/base.md3"; + tid2info_min = '-32 -32 0'; + tid2info_max = '32 32 64'; + + switch(_tid) + { + case TID_EWHEEL: + tid2info_base = "models/turrets/ewheel-base2.md3"; + tid2info_head = "models/turrets/ewheel-gun1.md3"; + tid2info_name = "eWheel"; + break; + case TID_FLAC: + tid2info_head = "models/turrets/flac.md3"; + tid2info_name = "Flac Cannon"; + break; + case TID_FUSION: + tid2info_head = "models/turrets/reactor.md3"; + tid2info_name = "Fusion Reactor"; + tid2info_min = '-34 -34 0'; + tid2info_max = '34 34 90'; + break; + case TID_HELLION: + tid2info_head = "models/turrets/hellion.md3"; + tid2info_name = "Hellion"; + break; + case TID_HK: + tid2info_head = "models/turrets/hk.md3"; + tid2info_name = "Hunter-Killer"; + break; + case TID_MACHINEGUN: + tid2info_head = "models/turrets/machinegun.md3"; + tid2info_name = "Machinegun"; + break; + case TID_MLRS: + tid2info_head = "models/turrets/mlrs.md3"; + tid2info_name = "MLRS"; + break; + case TID_PHASER: + tid2info_head = "models/turrets/phaser.md3"; + tid2info_name = "Phaser"; + break; + case TID_PLASMA: + tid2info_head = "models/turrets/plasma.md3"; + tid2info_name = "Plasma"; + break; + case TID_PLASMA_DUAL: + tid2info_head = "models/turrets/plasmad.md3"; + tid2info_name = "Dual Plasma"; + break; + case TID_TESLA: + tid2info_base = "models/turrets/tesla_base.md3"; + tid2info_head = "models/turrets/tesla_head.md3"; + tid2info_name = "Tesla coil"; + tid2info_min = '-60 -60 0'; + tid2info_max ='60 60 128'; + break; + case TID_WALKER: + tid2info_base = "models/turrets/walker_body.md3"; + tid2info_head = "models/turrets/walker_head_minigun.md3"; + tid2info_name = "Walker"; + tid2info_min = '-70 -70 0'; + tid2info_max = '70 70 95'; + break; + } +} + +void turret_remove() +{ + turret_tid2info(self.turret_type); + dprint("Removing ", tid2info_name, " turrret.\n"); + + remove(self.tur_head); + self.tur_head = world; +} + +void turret_changeteam() +{ + self.colormod = '0 0 0'; + + switch(self.team) + { + case COLOR_TEAM1: // Red + self.colormod = '2 0.5 0.5'; + break; + + case COLOR_TEAM2: // Blue + self.colormod = '0.5 0.5 2'; + break; + + case COLOR_TEAM3: // Yellow + self.colormod = '1.4 1.4 0.6'; + break; + + case COLOR_TEAM4: // Pink + self.colormod = '1.4 0.6 1.4'; + break; + } + + self.tur_head.colormod = self.colormod; +} + +void turret_head_draw() +{ + self.drawmask = MASK_NORMAL; +} + +void turret_draw() +{ + float dt; + + dt = time - self.move_time; + self.move_time = time; + if(dt <= 0) + return; + + self.tur_head.angles += dt * self.tur_head.move_avelocity; + + if (self.health < 127) + { + dt = random(); + + if(dt < 0.25) + te_spark(self.origin + '0 0 40', randomvec() * 256 + '0 0 256', 16); + + } + + if(self.health < 85) + if(dt < 0.1) + pointparticles(particleeffectnum("smoke_small"), (self.origin + (randomvec() * 80)), '0 0 0', 1); + + if(self.health < 32) + if(dt < 0.1) + pointparticles(particleeffectnum("smoke_large"), (self.origin + (randomvec() * 80)), '0 0 0', 1); + +} + +void turret_walker_draw() +{ + float dt; + + dt = time - self.move_time; + self.move_time = time; + if(dt <= 0) + return; + + fixedmakevectors(self.angles); + movelib_groundalign4point(300, 100, 0.25); + + setorigin(self, self.origin + self.velocity * dt); + setorigin(self.tur_head, gettaginfo(self, gettagindex(self, "tag_head"))); + + self.tur_head.angles += dt * self.tur_head.move_avelocity; + + self.angles_y = self.move_angles_y; + + if (self.health < 127) + if(random() < 0.25) + te_spark(self.origin + '0 0 40', randomvec() * 256 + '0 0 256', 16); +} + +void turret_ewheel_draw() +{ + float dt; + + dt = time - self.move_time; + self.move_time = time; + if(dt <= 0) + return; + + fixedmakevectors(self.angles); + movelib_groundalign4point(300, 100, 0.25); + + setorigin(self, self.origin + self.velocity * dt); + setorigin(self.tur_head, self.origin); + + self.tur_head.angles += dt * self.tur_head.move_avelocity; + + // Simulate banking + //self.angles_z -= self.angles_z * dt * 2; + //self.angles_z = bound(-45, self.angles_z + ((self.move_angles_y - self.angles_y * -25) * dt), 45); + + self.angles_y = self.move_angles_y; + + if (self.health < 127) + if(random() < 0.25) + te_spark(self.origin + '0 0 40', randomvec() * 256 + '0 0 256', 16); +} + +void turret_construct() +{ + if(self.tur_head == world) + self.tur_head = spawn(); + + turret_tid2info(self.turret_type); + dprint("Constructing ", tid2info_name , " turret (", ftos(self.turret_type), ")\n"); + + setorigin(self, self.origin); + setmodel(self, tid2info_base); + setmodel(self.tur_head, tid2info_head); + setsize(self, tid2info_min, tid2info_max); + setsize(self.tur_head, '0 0 0', '0 0 0'); + setorigin(self.tur_head, gettaginfo(self, gettagindex(self, "tag_head"))); + + self.tur_head.classname = "turret_head"; + self.tur_head.owner = self; + self.tur_head.move_movetype = MOVETYPE_NOCLIP; + self.move_movetype = MOVETYPE_NOCLIP; + self.tur_head.angles = self.angles; + self.health = 255; + self.solid = SOLID_BBOX; + self.tur_head.solid = SOLID_NOT; + self.movetype = MOVETYPE_NOCLIP; + self.tur_head.movetype = MOVETYPE_NOCLIP; + self.draw = turret_draw; + self.entremove = turret_remove; + self.drawmask = MASK_NORMAL; + self.tur_head.drawmask = MASK_NORMAL; + + if(self.turret_type == TID_EWHEEL || self.turret_type == TID_WALKER) + { + self.gravity = 1; + self.movetype = MOVETYPE_BOUNCE; + self.move_movetype = MOVETYPE_BOUNCE; + self.move_origin = self.origin; + self.move_time = time; + switch(self.turret_type) + { + case TID_EWHEEL: + self.draw = turret_ewheel_draw; + break; + case TID_WALKER: + self.draw = turret_walker_draw; + } + } +} + +entity turret_gibtoss(string _model, vector _from, vector _to, vector _cmod, float _explode); +void turret_gibboom(); +void turret_gib_draw() +{ + Movetype_Physics_MatchTicrate(autocvar_cl_gibs_ticrate, autocvar_cl_gibs_sloppy); + + self.drawmask = MASK_NORMAL; + + if(self.cnt) + { + if(time >= self.nextthink) + { + turret_gibboom(); + remove(self); + } + } + else + { + self.alpha = bound(0, self.nextthink - time, 1); + if(self.alpha < ALPHA_MIN_VISIBLE) + remove(self); + } +} + +void turret_gibboom() +{ + float i; + + sound (self, CHAN_PROJECTILE, "weapons/rocket_impact.wav", VOL_BASE, ATTN_NORM); + pointparticles(particleeffectnum("rocket_explode"), self.origin, '0 0 0', 1); + + for (i = 1; i < 5; i = i + 1) + turret_gibtoss(strcat("models/turrets/head-gib", ftos(i), ".md3"), self.origin, self.velocity + randomvec() * 700, '0 0 0', FALSE); +} + +entity turret_gibtoss(string _model, vector _from, vector _to, vector _cmod, float _explode) +{ + entity gib; + + gib = spawn(); + setorigin(gib, _from); + setmodel(gib, _model); + gib.colormod = _cmod; + gib.solid = SOLID_CORPSE; + gib.draw = turret_gib_draw; + gib.cnt = _explode; + + if(_explode) + { + gib.nextthink = time + 0.2 * (autocvar_cl_gibs_lifetime * (1 + prandom() * 0.15)); + gib.effects = EF_FLAME; + } + else + gib.nextthink = time + autocvar_cl_gibs_lifetime * (1 + prandom() * 0.15); + + gib.gravity = 1; + gib.move_movetype = MOVETYPE_BOUNCE; + gib.move_origin = gib.origin = _from; + gib.move_velocity = _to; + gib.move_avelocity = prandomvec() * 32; + gib.move_time = time; + gib.damageforcescale = 1; + + return gib; +} + +void turret_die() +{ + entity headgib; + + setmodel(self, ""); + setmodel(self.tur_head, ""); + sound (self, CHAN_PROJECTILE, "weapons/rocket_impact.wav", VOL_BASE, ATTN_NORM); + pointparticles(particleeffectnum("rocket_explode"), self.origin, '0 0 0', 1); + turret_tid2info(self.turret_type); + dprint("Turret ", tid2info_name, " dies.\n"); + + // Base + if(self.turret_type == TID_EWHEEL) + turret_gibtoss(tid2info_base, self.origin, self.velocity, '-1 -1 -1', FALSE); + else if (self.turret_type == TID_WALKER) + turret_gibtoss(tid2info_base, self.origin, self.velocity, '-1 -1 -1', FALSE); + else if (self.turret_type == TID_TESLA) + turret_gibtoss(tid2info_base, self.origin, self.velocity, '-1 -1 -1', FALSE); + else + { + if (random() > 0.5) + { + turret_gibtoss("models/turrets/base-gib2.md3", self.origin + '0 0 2', '0 0 50' + randomvec() * 150, '0 0 0', FALSE); + turret_gibtoss("models/turrets/base-gib3.md3", self.origin + '0 0 2', '0 0 50' + randomvec() * 150, '0 0 0', FALSE); + turret_gibtoss("models/turrets/base-gib4.md3", self.origin + '0 0 2', '0 0 50' + randomvec() * 150, '0 0 0', FALSE); + } + else + turret_gibtoss("models/turrets/base-gib1.md3", self.origin + '0 0 4', '0 0 0', '0 0 0', TRUE); + } + + headgib = turret_gibtoss(tid2info_head, self.origin + '0 0 32', '0 0 200' + randomvec() * 200, '-1 -1 -1', TRUE); + headgib.angles = headgib.move_angles = self.tur_head.angles; + headgib.avelocity = headgib.move_avelocity = self.tur_head.move_avelocity + randomvec() * 45; + headgib.avelocity_y = headgib.move_avelocity_y = headgib.move_avelocity_y * 5; + headgib.gravity = 0.5; +} + +void ent_turret() +{ + float sf; + sf = ReadByte(); + + if(sf & TNSF_SETUP) + { + self.turret_type = ReadByte(); + + self.origin_x = ReadCoord(); + self.origin_y = ReadCoord(); + self.origin_z = ReadCoord(); + + self.angles_x = ReadAngle(); + self.angles_y = ReadAngle(); + + turret_precache(self.turret_type); + turret_construct(); + } + + if(sf & TNSF_ANG) + { + self.tur_head.move_angles_x = ReadShort(); + self.tur_head.move_angles_y = ReadShort(); + self.tur_head.angles = self.angles + self.tur_head.move_angles; + } + + if(sf & TNSF_AVEL) + { + self.tur_head.move_avelocity_x = ReadShort(); + self.tur_head.move_avelocity_y = ReadShort(); + } + + if(sf & TNSF_MOVE) + { + self.origin_x = ReadShort(); + self.origin_y = ReadShort(); + self.origin_z = ReadShort(); + setorigin(self, self.origin); + + self.velocity_x = ReadShort(); + self.velocity_y = ReadShort(); + self.velocity_z = ReadShort(); + + self.move_angles_y = ReadShort(); + + self.move_time = time; + self.move_velocity = self.velocity; + self.move_origin = self.origin; + } + + if(sf & TNSF_ANIM) + { + self.frame1time = ReadCoord(); + self.frame = ReadByte(); + } + + if(sf & TNSF_STATUS) + { + float _team; + _team = ReadByte(); + _team -= 1; // /&)=(%&#)&%)/#&)=½!!!½!!". thanks. + self.health = ReadByte(); + if(_team != self.team) + { + self.team = _team; + turret_changeteam(); + } + } + + if(self.health == 0) + turret_die(); +} diff --git a/qcsrc/client/tturrets.qh b/qcsrc/client/tturrets.qh new file mode 100644 index 000000000..cf74f48ad --- /dev/null +++ b/qcsrc/client/tturrets.qh @@ -0,0 +1,3 @@ +void ent_turret(); +void turrets_precache(); +.entity tur_head; diff --git a/qcsrc/client/vehicles/racer.qc b/qcsrc/client/vehicles/racer.qc new file mode 100644 index 000000000..e69de29bb diff --git a/qcsrc/client/vehicles/raptor.qc b/qcsrc/client/vehicles/raptor.qc new file mode 100644 index 000000000..e69de29bb diff --git a/qcsrc/client/vehicles/spiderbot.qc b/qcsrc/client/vehicles/spiderbot.qc new file mode 100644 index 000000000..e69de29bb diff --git a/qcsrc/client/vehicles/vehicles.qc b/qcsrc/client/vehicles/vehicles.qc new file mode 100644 index 000000000..ab42d619a --- /dev/null +++ b/qcsrc/client/vehicles/vehicles.qc @@ -0,0 +1,718 @@ +#define hud_bg "gfx/vehicles/frame.tga" +#define hud_sh "gfx/vehicles/vh-shield.tga" + +#define hud_hp_bar "gfx/vehicles/bar_up_left.tga" +#define hud_hp_ico "gfx/vehicles/health.tga" +#define hud_sh_bar "gfx/vehicles/bar_dwn_left.tga" +#define hud_sh_ico "gfx/vehicles/shield.tga" + +#define hud_ammo1_bar "gfx/vehicles/bar_up_right.tga" +#define hud_ammo1_ico "gfx/vehicles/bullets.tga" +#define hud_ammo2_bar "gfx/vehicles/bar_dwn_right.tga" +#define hud_ammo2_ico "gfx/vehicles/rocket.tga" + +entity dropmark; +float autocvar_cl_vehicles_hudscale; +float autocvar_cl_vehicles_hudalpha; + + +void CSQC_WAKIZASHI_HUD(); +void CSQC_SPIDER_HUD(); +void CSQC_RAPTOR_HUD(); +void CSQC_BUMBLE_HUD(); + +#define MAX_AXH 4 +entity AuxiliaryXhair[MAX_AXH]; +const var void Draw_Not(); + +.string axh_image; +.float axh_fadetime; +.float axh_drawflag; +.float axh_scale; + +void AuxiliaryXhair_Draw2D() +{ + vector loc, psize; + + psize = self.axh_scale * drawgetimagesize(self.axh_image); + loc = project_3d_to_2d(self.origin) - 0.5 * psize; + if not (loc_z < 0 || loc_x < 0 || loc_y < 0 || loc_x > vid_conwidth || loc_y > vid_conheight) + { + loc_z = 0; + psize_z = 0; + drawpic(loc, self.axh_image, psize, self.colormod, self.alpha, self.axh_drawflag); + } + + if(time - self.cnt > self.axh_fadetime) + self.draw2d = Draw_Not; +} + +void Net_AuXair2(float bIsNew) +{ + float axh_id; + entity axh; + + axh_id = bound(0, ReadByte(), MAX_AXH); + axh = AuxiliaryXhair[axh_id]; + + if(axh == world || wasfreed(axh)) // MADNESS? THIS IS QQQQCCCCCCCCC (wasfreed, why do you exsist?) + { + axh = spawn(); + axh.draw2d = Draw_Not; + axh.drawmask = MASK_NORMAL; + axh.axh_drawflag = DRAWFLAG_ADDITIVE; + axh.axh_fadetime = 0.1; + axh.axh_image = "gfx/vehicles/axh-ring.tga"; + axh.axh_scale = 1; + axh.alpha = 1; + AuxiliaryXhair[axh_id] = axh; + } + + axh.draw2d = AuxiliaryXhair_Draw2D; + + axh.origin_x = ReadCoord(); + axh.origin_y = ReadCoord(); + axh.origin_z = ReadCoord(); + + axh.colormod_x = ReadByte() / 255; + axh.colormod_y = ReadByte() / 255; + axh.colormod_z = ReadByte() / 255; + axh.cnt = time; +} + +void Net_VehicleSetup() +{ + + float hud_id, i; + hud_id = bound(HUD_SPIDERBOT, ReadByte(), HUD_RAPTOR); + + // Init auxiliary crosshairs + entity axh; + for(i = 0; i < MAX_AXH; ++i) + { + axh = AuxiliaryXhair[i]; + if(axh != world && !wasfreed(axh)) // MADNESS? THIS IS QQQQCCCCCCCCC (wasfreed, why do you exsist?) + remove(axh); + + axh = spawn(); + axh.draw2d = Draw_Not; + axh.drawmask = MASK_NORMAL; + axh.axh_drawflag = DRAWFLAG_NORMAL; + axh.axh_fadetime = 0.1; + axh.axh_image = "gfx/vehicles/axh-ring.tga"; + axh.axh_scale = 1; + axh.alpha = 1; + AuxiliaryXhair[i] = axh; + } + + switch(hud_id) + { + case HUD_SPIDERBOT: + // Minigun1 + AuxiliaryXhair[0].axh_image = "gfx/vehicles/axh-ring.tga"; + AuxiliaryXhair[0].axh_scale = 0.25; + // Minigun2 + AuxiliaryXhair[1].axh_image = "gfx/vehicles/axh-ring.tga"; + AuxiliaryXhair[1].axh_scale = 0.25; + // Rocket + AuxiliaryXhair[2].axh_image = "gfx/vehicles/axh-special1.tga"; + AuxiliaryXhair[2].axh_scale = 0.5; + break; + + case HUD_WAKIZASHI: + AuxiliaryXhair[0].axh_image = "gfx/vehicles/axh-bracket.tga"; + AuxiliaryXhair[0].axh_scale = 0.25; + break; + + case HUD_RAPTOR: + AuxiliaryXhair[0].axh_image = "gfx/vehicles/axh-special2.tga"; + AuxiliaryXhair[0].axh_scale = 0.5; + //AuxiliaryXhair[0].alpha = 0.5; + + AuxiliaryXhair[1].axh_image = "gfx/vehicles/axh-bracket.tga"; + AuxiliaryXhair[1].axh_scale = 0.25; + //AuxiliaryXhair[1].alpha = 0.75; + //AuxiliaryXhair[1].axh_drawflag = DRAWFLAG_NORMAL; + break; + + case HUD_BUMBLEBEE: + // Plasma cannons + AuxiliaryXhair[0].axh_image = "gfx/vehicles/axh-ring.tga"; + AuxiliaryXhair[0].axh_scale = 0.25; + // Raygun + AuxiliaryXhair[1].axh_image = "gfx/vehicles/axh-special1.tga"; + AuxiliaryXhair[1].axh_scale = 0.25; + break; + } +} +#define HUD_GETSTATS \ + float vh_health = getstati(STAT_VEHICLESTAT_HEALTH); \ + float shield = getstati(STAT_VEHICLESTAT_SHIELD); \ + float energy = getstati(STAT_VEHICLESTAT_ENERGY); \ + float ammo1 = getstati(STAT_VEHICLESTAT_AMMO1); \ + float reload1 = getstati(STAT_VEHICLESTAT_RELOAD1); \ + float ammo2 = getstati(STAT_VEHICLESTAT_AMMO2); \ + float reload2 = getstati(STAT_VEHICLESTAT_RELOAD2); + +void CSQC_BUMBLE_HUD() +{ +} + + +#define spider_ico "gfx/vehicles/sbot.tga" +#define spider_rkt "gfx/vehicles/sbot_rpods.tga" +#define spider_mgun "gfx/vehicles/sbot_mguns.tga" +#define spider_xhair "gfx/vehicles/axh-special1.tga" +float alarm1time; +float alarm2time; + +void CSQC_SPIDER_HUD() +{ + if(autocvar_r_letterbox) + return; + + vector picsize, hudloc, pic2size, picloc; + float i; + + // Fetch health & ammo stats + HUD_GETSTATS + + picsize = drawgetimagesize(hud_bg) * autocvar_cl_vehicles_hudscale; + hudloc_y = vid_conheight - picsize_y; + hudloc_x = vid_conwidth * 0.5 - picsize_x * 0.5; + + drawpic(hudloc, hud_bg, picsize, '1 1 1', autocvar_cl_vehicles_hudalpha, DRAWFLAG_NORMAL); + + //drawstring(hudloc + '145 19 0', strcat(ftos(vh_health), "%"),'15 15 0','0 1 0', 1, DRAWFLAG_NORMAL); + //drawstring(hudloc + '175 34 0', strcat(ftos(shield), "%"),'15 15 0','0 0 1', 1, DRAWFLAG_NORMAL); + //drawstring(hudloc + '136 102 0', strcat(ftos(ammo1), "%"),'14 14 0','1 1 0', 1, DRAWFLAG_NORMAL); + //drawstring(hudloc + '179 69 0', strcat(ftos(9 - ammo2), " / 8"),'14 14 0','1 1 0', 1, DRAWFLAG_NORMAL); + + ammo1 *= 0.01; + shield *= 0.01; + vh_health *= 0.01; + reload2 *= 0.01; + + pic2size = drawgetimagesize(spider_ico) * (autocvar_cl_vehicles_hudscale * 0.8); + picloc = picsize * 0.5 - pic2size * 0.5; + if(vh_health < 0.25) + drawpic(hudloc + picloc, spider_ico, pic2size, '1 0 0' + '0 1 1' * sin(time * 8), 1, DRAWFLAG_NORMAL); + else + drawpic(hudloc + picloc, spider_ico, pic2size, '1 1 1' * vh_health + '1 0 0' * (1 - vh_health), 1, DRAWFLAG_NORMAL); + drawpic(hudloc + picloc, spider_rkt, pic2size, '1 1 1' * reload2 + '1 0 0' * (1 - reload2), 1, DRAWFLAG_NORMAL); + drawpic(hudloc + picloc, spider_mgun, pic2size, '1 1 1' * ammo1 + '1 0 0' * (1 - ammo1), 1, DRAWFLAG_NORMAL); + drawpic(hudloc + picloc, hud_sh, pic2size, '1 1 1', shield, DRAWFLAG_NORMAL); + +// Health bar + picsize = drawgetimagesize(hud_hp_bar) * autocvar_cl_vehicles_hudscale; + picloc = '69 69 0' * autocvar_cl_vehicles_hudscale; + drawsetcliparea(hudloc_x + picloc_x + (picsize_x * (1 - vh_health)), 0, vid_conwidth, vid_conheight); + drawpic(hudloc + picloc, hud_hp_bar, picsize, '1 1 1', 1 , DRAWFLAG_NORMAL); + drawresetcliparea(); +// .. and icon + picsize = drawgetimagesize(hud_hp_ico) * autocvar_cl_vehicles_hudscale; + picloc = '37 65 0' * autocvar_cl_vehicles_hudscale; + if(vh_health < 0.25) + { + if(alarm1time < time) + { + alarm1time = time + 2; + sound(world, CHAN_PAIN, "vehicles/alarm.wav", VOL_BASEVOICE, ATTN_NONE); + } + drawpic(hudloc + picloc, hud_hp_ico, picsize, '1 0 0' + '0 1 1' * sin(time * 8), 1, DRAWFLAG_NORMAL); + } + else + { + drawpic(hudloc + picloc, hud_hp_ico, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); + if(alarm1time) + { + sound(world, CHAN_PAIN, "misc/null.wav", VOL_BASEVOICE, ATTN_NONE); + alarm1time = 0; + } + } +// Shield bar + picsize = drawgetimagesize(hud_sh_bar) * autocvar_cl_vehicles_hudscale; + picloc = '69 140 0' * autocvar_cl_vehicles_hudscale; + drawsetcliparea(hudloc_x + picloc_x + (picsize_x * (1 - shield)), 0, vid_conwidth, vid_conheight); + drawpic(hudloc + picloc, hud_sh_bar, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); + drawresetcliparea(); +// .. and icon + picloc = '40 136 0' * autocvar_cl_vehicles_hudscale; + picsize = drawgetimagesize(hud_sh_ico) * autocvar_cl_vehicles_hudscale; + if(shield < 0.25) + { + if(alarm2time < time) + { + alarm2time = time + 1; + sound(world, CHAN_TRIGGER, "vehicles/alarm_shield.wav", VOL_BASEVOICE, ATTN_NONE); + } + drawpic(hudloc + picloc, hud_sh_ico, picsize, '1 0 0' + '0 1 1' * sin(time * 8), 1, DRAWFLAG_NORMAL); + } + else + { + drawpic(hudloc + picloc, hud_sh_ico, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); + if(alarm2time) + { + sound(world, CHAN_TRIGGER, "misc/null.wav", VOL_BASEVOICE, ATTN_NONE); + alarm2time = 0; + } + } + + +// Minigun bar + picsize = drawgetimagesize(hud_ammo1_bar) * autocvar_cl_vehicles_hudscale; + picloc = '450 69 0' * autocvar_cl_vehicles_hudscale; + drawsetcliparea(hudloc_x + picloc_x, picloc_y, picsize_x * ammo1, vid_conheight); + drawpic(hudloc + picloc, hud_ammo1_bar, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); + drawresetcliparea(); +// .. and icon + picsize = drawgetimagesize(hud_ammo1_ico) * autocvar_cl_vehicles_hudscale; + picloc = '664 60 0' * autocvar_cl_vehicles_hudscale; + if(ammo1 < 0.2) + drawpic(hudloc + picloc, hud_ammo1_ico, picsize, '1 0 0' + '0 1 1' * sin(time * 8), 1, DRAWFLAG_NORMAL); + else + drawpic(hudloc + picloc, hud_ammo1_ico, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); + +// Rocket ammo bar + picsize = drawgetimagesize(hud_ammo2_bar) * autocvar_cl_vehicles_hudscale; + ammo1 = picsize_x / 8; + picloc = '450 140 0' * autocvar_cl_vehicles_hudscale; + drawsetcliparea(hudloc_x + picloc_x, hudloc_y + picloc_y, picsize_x * reload2, vid_conheight); + drawpic(hudloc + picloc, hud_ammo2_bar, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); + drawresetcliparea(); + +// .. and icons + pic2size = 0.35 * drawgetimagesize(hud_ammo2_ico) * autocvar_cl_vehicles_hudscale; + picloc_x -= pic2size_x; + picloc_y += pic2size_y * 2.25; + if(ammo2 == 9) + { + for(i = 1; i < 9; ++i) + { + picloc_x += ammo1; + drawpic(hudloc + picloc, hud_ammo2_ico, pic2size, ((8 * reload2 <= i) ? '0 0 0' : '1 1 1'), 0.75, DRAWFLAG_NORMAL); + } + } + else + { + for(i = 1; i < 9; ++i) + { + picloc_x += ammo1; + drawpic(hudloc + picloc, hud_ammo2_ico, pic2size, ((i >= ammo2) ? '1 1 1' : '0 0 0'), 0.75, DRAWFLAG_NORMAL); + } + } + pic2size = drawgetimagesize(hud_ammo2_ico) * autocvar_cl_vehicles_hudscale; + picloc = '664 130 0' * autocvar_cl_vehicles_hudscale; + if(ammo2 == 9) + drawpic(hudloc + picloc, hud_ammo2_ico, pic2size, '1 0 0' + '0 1 1' * sin(time * 8), 1, DRAWFLAG_NORMAL); + else + drawpic(hudloc + picloc, hud_ammo2_ico, pic2size, '1 1 1', 1, DRAWFLAG_NORMAL); + + + HUD_DrawCenterPrint(); + + if (scoreboard_showscores) + HUD_DrawScoreboard(); + else + { + picsize = drawgetimagesize(spider_xhair); + picsize_x *= autocvar_cl_vehicle_spiderbot_cross_size; + picsize_y *= autocvar_cl_vehicle_spiderbot_cross_size; + + drawpic('0.5 0 0' * (vid_conwidth - picsize_x) + '0 0.5 0' * (vid_conheight - picsize_y), spider_xhair, picsize, '1 1 1', autocvar_cl_vehicle_spiderbot_cross_alpha, DRAWFLAG_ADDITIVE); + } +} + +#define raptor_ico "gfx/vehicles/raptor.tga" +#define raptor_gun "gfx/vehicles/raptor_guns.tga" +#define raptor_bomb "gfx/vehicles/raptor_bombs.tga" +#define raptor_drop "gfx/vehicles/axh-dropcross.tga" +#define raptor_xhair "gfx/vehicles/axh-ring.tga" +void CSQC_RAPTOR_HUD() +{ + if(autocvar_r_letterbox) + return; + + vector picsize, hudloc, pic2size, picloc; + + // Fetch health & ammo stats + HUD_GETSTATS + + picsize = drawgetimagesize(hud_bg) * autocvar_cl_vehicles_hudscale; + hudloc_y = vid_conheight - picsize_y; + hudloc_x = vid_conwidth * 0.5 - picsize_x * 0.5; + + drawpic(hudloc, hud_bg, picsize, '1 1 1', autocvar_cl_vehicles_hudalpha, DRAWFLAG_NORMAL); + + ammo1 *= 0.01; + ammo2 *= 0.01; + shield *= 0.01; + vh_health *= 0.01; + energy *= 0.01; + reload1 = reload2 * 0.01; + //reload2 *= 0.01; + + pic2size = drawgetimagesize(spider_ico) * (autocvar_cl_vehicles_hudscale * 0.8); + picloc = picsize * 0.5 - pic2size * 0.5; + if(vh_health < 0.25) + drawpic(hudloc + picloc, raptor_ico, pic2size, '1 0 0' + '0 1 1' * sin(time * 8), 1, DRAWFLAG_NORMAL); + else + drawpic(hudloc + picloc, raptor_ico, pic2size, '1 1 1' * vh_health + '1 0 0' * (1 - vh_health), 1, DRAWFLAG_NORMAL); + drawpic(hudloc + picloc, raptor_bomb, pic2size, '1 1 1' * reload1 + '1 0 0' * (1 - reload1), 1, DRAWFLAG_NORMAL); + drawpic(hudloc + picloc, raptor_gun, pic2size, '1 1 1' * energy + '1 0 0' * (1 - energy), 1, DRAWFLAG_NORMAL); + drawpic(hudloc + picloc, hud_sh, pic2size, '1 1 1', shield, DRAWFLAG_NORMAL); + +// Health bar + picsize = drawgetimagesize(hud_hp_bar) * autocvar_cl_vehicles_hudscale; + picloc = '69 69 0' * autocvar_cl_vehicles_hudscale; + drawsetcliparea(hudloc_x + picloc_x + (picsize_x * (1 - vh_health)), 0, vid_conwidth, vid_conheight); + drawpic(hudloc + picloc, hud_hp_bar, picsize, '1 1 1', 1 , DRAWFLAG_NORMAL); + drawresetcliparea(); +// .. and icon + picsize = drawgetimagesize(hud_hp_ico) * autocvar_cl_vehicles_hudscale; + picloc = '37 65 0' * autocvar_cl_vehicles_hudscale; + if(vh_health < 0.25) + { + if(alarm1time < time) + { + alarm1time = time + 2; + sound(self, CHAN_PAIN, "vehicles/alarm.wav", VOL_BASEVOICE, ATTN_NONE); + } + + drawpic(hudloc + picloc, hud_hp_ico, picsize, '1 0 0' + '0 1 1' * sin(time * 8), 1, DRAWFLAG_NORMAL); + } + else + { + drawpic(hudloc + picloc, hud_hp_ico, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); + if(alarm1time) + { + sound(self, CHAN_PAIN, "misc/null.wav", VOL_BASEVOICE, ATTN_NONE); + alarm1time = 0; + } + } + +// Shield bar + picsize = drawgetimagesize(hud_sh_bar) * autocvar_cl_vehicles_hudscale; + picloc = '69 140 0' * autocvar_cl_vehicles_hudscale; + drawsetcliparea(hudloc_x + picloc_x + (picsize_x * (1 - shield)), 0, vid_conwidth, vid_conheight); + drawpic(hudloc + picloc, hud_sh_bar, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); + drawresetcliparea(); +// .. and icon + picloc = '40 136 0' * autocvar_cl_vehicles_hudscale; + picsize = drawgetimagesize(hud_sh_ico) * autocvar_cl_vehicles_hudscale; + if(shield < 0.25) + { + if(alarm2time < time) + { + alarm2time = time + 1; + sound(world, CHAN_TRIGGER, "vehicles/alarm_shield.wav", VOL_BASEVOICE, ATTN_NONE); + } + drawpic(hudloc + picloc, hud_sh_ico, picsize, '1 0 0' + '0 1 1' * sin(time * 8), 1, DRAWFLAG_NORMAL); + } + else + { + drawpic(hudloc + picloc, hud_sh_ico, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); + if(alarm2time) + { + sound(world, CHAN_TRIGGER, "misc/null.wav", VOL_BASEVOICE, ATTN_NONE); + alarm2time = 0; + } + } + +// Gun bar + picsize = drawgetimagesize(hud_ammo1_bar) * autocvar_cl_vehicles_hudscale; + picloc = '450 69 0' * autocvar_cl_vehicles_hudscale; + drawsetcliparea(hudloc_x + picloc_x, picloc_y, picsize_x * energy, vid_conheight); + drawpic(hudloc + picloc, hud_ammo1_bar, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); + drawresetcliparea(); +// .. and icon + picsize = drawgetimagesize(hud_ammo1_ico) * autocvar_cl_vehicles_hudscale; + picloc = '664 60 0' * autocvar_cl_vehicles_hudscale; + if(energy < 0.2) + drawpic(hudloc + picloc, hud_ammo1_ico, picsize, '1 0 0' + '0 1 1' * sin(time * 8), 1, DRAWFLAG_NORMAL); + else + drawpic(hudloc + picloc, hud_ammo1_ico, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); + +// Bomb bar + picsize = drawgetimagesize(hud_ammo2_bar) * autocvar_cl_vehicles_hudscale; + picloc = '450 140 0' * autocvar_cl_vehicles_hudscale; + drawsetcliparea(hudloc_x + picloc_x, hudloc_y + picloc_y, picsize_x * reload1, vid_conheight); + drawpic(hudloc + picloc, hud_ammo2_bar, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); + drawresetcliparea(); +// .. and icon + pic2size = drawgetimagesize(hud_ammo2_ico) * autocvar_cl_vehicles_hudscale; + picloc = '664 130 0' * autocvar_cl_vehicles_hudscale; + if(reload1 != 1) + drawpic(hudloc + picloc, hud_ammo2_ico, pic2size, '1 0 0' + '0 1 1' * sin(time * 8), 1, DRAWFLAG_NORMAL); + else + drawpic(hudloc + picloc, hud_ammo2_ico, pic2size, '1 1 1', 1, DRAWFLAG_NORMAL); + +// Bombing crosshair + if(!dropmark) + { + dropmark = spawn(); + dropmark.owner = self; + dropmark.gravity = 1; + } + + if(reload2 == 100) + { + vector where; + + setorigin(dropmark, pmove_org); + dropmark.velocity = pmove_vel; + tracetoss(dropmark, self); + + where = project_3d_to_2d(trace_endpos); + + setorigin(dropmark, trace_endpos); + picsize = drawgetimagesize(raptor_drop) * 0.2; + + if not (where_z < 0 || where_x < 0 || where_y < 0 || where_x > vid_conwidth || where_y > vid_conheight) + { + where_x -= picsize_x * 0.5; + where_y -= picsize_y * 0.5; + where_z = 0; + drawpic(where, raptor_drop, picsize, '0 2 0', 1, DRAWFLAG_ADDITIVE); + } + dropmark.cnt = time + 5; + } + else + { + vector where; + if(dropmark.cnt > time) + { + where = project_3d_to_2d(dropmark.origin); + picsize = drawgetimagesize(raptor_drop) * 0.25; + + if not (where_z < 0 || where_x < 0 || where_y < 0 || where_x > vid_conwidth || where_y > vid_conheight) + { + where_x -= picsize_x * 0.5; + where_y -= picsize_y * 0.5; + where_z = 0; + drawpic(where, raptor_drop, picsize, '2 0 0', 1, DRAWFLAG_ADDITIVE); + } + } + } + + HUD_DrawCenterPrint(); + + if (scoreboard_showscores) + HUD_DrawScoreboard(); + else + { + picsize = drawgetimagesize(raptor_xhair); + picsize_x *= 0.5; + picsize_y *= 0.5; + + drawpic('0.5 0 0' * (vid_conwidth - picsize_x) + '0 0.5 0' * (vid_conheight - picsize_y), raptor_xhair, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); + } +} + +#define waki_ico "gfx/vehicles/waki.tga" +#define waki_eng "gfx/vehicles/waki_e.tga" +#define waki_gun "gfx/vehicles/waki_guns.tga" +#define waki_rkt "gfx/vehicles/waki_rockets.tga" +#define waki_xhair "gfx/vehicles/axh-special1.tga" +void CSQC_WAKIZASHI_HUD() +{ +/* + drawpic(hudloc, waki_s, picsize, '1 1 1', shield, DRAWFLAG_NORMAL); + drawpic(hudloc, waki_b, picsize, '0 1 0' * health + '1 0 0' * (1 - health), 1, DRAWFLAG_NORMAL); + drawpic(hudloc, waki_r, picsize, '1 1 1' * reload1 + '1 0 0' * (1 - reload1), 1, DRAWFLAG_NORMAL); + drawpic(hudloc, waki_e, picsize, '1 1 1' * energy + '1 0 0' * (1 - energy), 1, DRAWFLAG_NORMAL); +*/ + if(autocvar_r_letterbox) + return; + + vector picsize, hudloc, pic2size, picloc; + + // Fetch health & ammo stats + HUD_GETSTATS + + picsize = drawgetimagesize(hud_bg) * autocvar_cl_vehicles_hudscale; + hudloc_y = vid_conheight - picsize_y; + hudloc_x = vid_conwidth * 0.5 - picsize_x * 0.5; + + drawpic(hudloc, hud_bg, picsize, '1 1 1', autocvar_cl_vehicles_hudalpha, DRAWFLAG_NORMAL); + + shield *= 0.01; + vh_health *= 0.01; + energy *= 0.01; + reload1 *= 0.01; + + pic2size = drawgetimagesize(spider_ico) * (autocvar_cl_vehicles_hudscale * 0.8); + picloc = picsize * 0.5 - pic2size * 0.5; + if(vh_health < 0.25) + drawpic(hudloc + picloc, waki_ico, pic2size, '1 0 0' + '0 1 1' * sin(time * 8), 1, DRAWFLAG_NORMAL); + else + drawpic(hudloc + picloc, waki_ico, pic2size, '1 1 1' * vh_health + '1 0 0' * (1 - vh_health), 1, DRAWFLAG_NORMAL); + drawpic(hudloc + picloc, waki_eng, pic2size, '1 1 1' * energy + '1 0 0' * (1 - energy), 1, DRAWFLAG_NORMAL); + drawpic(hudloc + picloc, waki_gun, pic2size, '1 1 1' * energy + '1 0 0' * (1 - energy), 1, DRAWFLAG_NORMAL); + drawpic(hudloc + picloc, waki_rkt, pic2size, '1 1 1' * reload1 + '1 0 0' * (1 - reload1), 1, DRAWFLAG_NORMAL); + drawpic(hudloc + picloc, hud_sh, pic2size, '1 1 1', shield, DRAWFLAG_NORMAL); + +// Health bar + picsize = drawgetimagesize(hud_hp_bar) * autocvar_cl_vehicles_hudscale; + picloc = '69 69 0' * autocvar_cl_vehicles_hudscale; + drawsetcliparea(hudloc_x + picloc_x + (picsize_x * (1 - vh_health)), 0, vid_conwidth, vid_conheight); + drawpic(hudloc + picloc, hud_hp_bar, picsize, '1 1 1', 1 , DRAWFLAG_NORMAL); + drawresetcliparea(); +// .. and icon + picsize = drawgetimagesize(hud_hp_ico) * autocvar_cl_vehicles_hudscale; + picloc = '37 65 0' * autocvar_cl_vehicles_hudscale; + if(vh_health < 0.25) + { + if(alarm1time < time) + { + alarm1time = time + 2; + sound(self, CHAN_PAIN, "vehicles/alarm.wav", VOL_BASEVOICE, ATTN_NONE); + } + + drawpic(hudloc + picloc, hud_hp_ico, picsize, '1 0 0' + '0 1 1' * sin(time * 8), 1, DRAWFLAG_NORMAL); + } + else + { + drawpic(hudloc + picloc, hud_hp_ico, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); + if(alarm1time) + { + sound(self, CHAN_PAIN, "misc/null.wav", VOL_BASEVOICE, ATTN_NONE); + alarm1time = 0; + } + } + + +// Shield bar + picsize = drawgetimagesize(hud_sh_bar) * autocvar_cl_vehicles_hudscale; + picloc = '69 140 0' * autocvar_cl_vehicles_hudscale; + drawsetcliparea(hudloc_x + picloc_x + (picsize_x * (1 - shield)), 0, vid_conwidth, vid_conheight); + drawpic(hudloc + picloc, hud_sh_bar, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); + drawresetcliparea(); +// .. and icon + picloc = '40 136 0' * autocvar_cl_vehicles_hudscale; + picsize = drawgetimagesize(hud_sh_ico) * autocvar_cl_vehicles_hudscale; + if(shield < 0.25) + { + if(alarm2time < time) + { + alarm2time = time + 1; + sound(world, CHAN_TRIGGER, "vehicles/alarm_shield.wav", VOL_BASEVOICE, ATTN_NONE); + } + drawpic(hudloc + picloc, hud_sh_ico, picsize, '1 0 0' + '0 1 1' * sin(time * 8), 1, DRAWFLAG_NORMAL); + } + else + { + drawpic(hudloc + picloc, hud_sh_ico, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); + if(alarm2time) + { + sound(world, CHAN_TRIGGER, "misc/null.wav", VOL_BASEVOICE, ATTN_NONE); + alarm2time = 0; + } + } + +// Gun bar + picsize = drawgetimagesize(hud_ammo1_bar) * autocvar_cl_vehicles_hudscale; + picloc = '450 69 0' * autocvar_cl_vehicles_hudscale; + drawsetcliparea(hudloc_x + picloc_x, picloc_y, picsize_x * energy, vid_conheight); + drawpic(hudloc + picloc, hud_ammo1_bar, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); + drawresetcliparea(); +// .. and icon + picsize = drawgetimagesize(hud_ammo1_ico) * autocvar_cl_vehicles_hudscale; + picloc = '664 60 0' * autocvar_cl_vehicles_hudscale; + if(energy < 0.2) + drawpic(hudloc + picloc, hud_ammo1_ico, picsize, '1 0 0' + '0 1 1' * sin(time * 8), 1, DRAWFLAG_NORMAL); + else + drawpic(hudloc + picloc, hud_ammo1_ico, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); + +// Bomb bar + picsize = drawgetimagesize(hud_ammo2_bar) * autocvar_cl_vehicles_hudscale; + picloc = '450 140 0' * autocvar_cl_vehicles_hudscale; + drawsetcliparea(hudloc_x + picloc_x, hudloc_y + picloc_y, picsize_x * reload1, vid_conheight); + drawpic(hudloc + picloc, hud_ammo2_bar, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); + drawresetcliparea(); +// .. and icon + pic2size = drawgetimagesize(hud_ammo2_ico) * autocvar_cl_vehicles_hudscale; + picloc = '664 130 0' * autocvar_cl_vehicles_hudscale; + if(reload1 != 1) + drawpic(hudloc + picloc, hud_ammo2_ico, pic2size, '1 0 0' + '0 1 1' * sin(time * 8), 1, DRAWFLAG_NORMAL); + else + drawpic(hudloc + picloc, hud_ammo2_ico, pic2size, '1 1 1', 1, DRAWFLAG_NORMAL); + + + HUD_DrawCenterPrint(); + + if (scoreboard_showscores) + HUD_DrawScoreboard(); + else + { + picsize = drawgetimagesize(waki_xhair); + picsize_x *= 0.5; + picsize_y *= 0.5; + + + drawpic('0.5 0 0' * (vid_conwidth - picsize_x) + '0 0.5 0' * (vid_conheight - picsize_y), waki_xhair, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); + } +} + +void Vehicles_Precache() +{ +// fixme: HAAAAKKKZZZ!!!!!!!!!!!! (this belongs as a setting in default.cfg) + autocvar_cl_vehicles_hudscale = 0.5; + autocvar_cl_vehicles_hudalpha = 0.75; + + + precache_model("models/vehicles/wakizashi.dpm"); + + precache_model("models/vehicles/bomblet.md3"); + precache_model("models/vehicles/clusterbomb.md3"); + precache_model("models/vehicles/clusterbomb_fragment.md3"); + precache_model("models/vehicles/rocket01.md3"); + precache_model("models/vehicles/rocket02.md3"); + + precache_sound ("vehicles/alarm.wav"); + precache_sound ("vehicles/alarm_shield.wav"); +} + +void RaptorCBShellfragDraw() +{ + + Movetype_Physics_MatchTicrate(autocvar_cl_gibs_ticrate, autocvar_cl_gibs_sloppy); + if(wasfreed(self)) + return; + + self.move_avelocity += randomvec() * 15; + self.renderflags = 0; + if(self.cnt < time) + self.alpha = bound(0, self.nextthink - time, 1); + + if(self.alpha < ALPHA_MIN_VISIBLE) + remove(self); +} + +void RaptorCBShellfragToss(vector _org, vector _vel, vector _ang) +{ + entity sfrag; + + sfrag = spawn(); + setmodel(sfrag, "models/vehicles/clusterbomb_fragment.md3"); + setorigin(sfrag, _org); + + sfrag.move_movetype = MOVETYPE_BOUNCE; + sfrag.gravity = 0.15; + sfrag.solid = SOLID_CORPSE; + + sfrag.draw = RaptorCBShellfragDraw; + + sfrag.move_origin = sfrag.origin = _org; + sfrag.move_velocity = _vel; + sfrag.move_avelocity = prandomvec() * vlen(sfrag.move_velocity); + sfrag.angles = self.move_angles = _ang; + + sfrag.move_time = time; + sfrag.damageforcescale = 4; + + sfrag.nextthink = time + 3; + sfrag.cnt = time + 2; + sfrag.alpha = 1; + sfrag.drawmask = MASK_NORMAL; +} diff --git a/qcsrc/client/vehicles/vehicles.qh b/qcsrc/client/vehicles/vehicles.qh new file mode 100644 index 000000000..66b2af1bf --- /dev/null +++ b/qcsrc/client/vehicles/vehicles.qh @@ -0,0 +1,4 @@ +void RaptorCBShellfragDraw(); +void RaptorCBShellfragToss(vector _org, vector _vel, vector _ang); +void Vehicles_Precache(); + diff --git a/qcsrc/client/waypointsprites.qc b/qcsrc/client/waypointsprites.qc index bcd8c433e..3e83e45bc 100644 --- a/qcsrc/client/waypointsprites.qc +++ b/qcsrc/client/waypointsprites.qc @@ -6,6 +6,7 @@ float waypointsprite_minalpha; float waypointsprite_distancealphaexponent; float waypointsprite_timealphaexponent; float waypointsprite_scale; +float waypointsprite_fontsize; float waypointsprite_edgefadealpha; float waypointsprite_edgefadescale; float waypointsprite_edgefadedistance; @@ -17,6 +18,7 @@ float waypointsprite_distancefadescale; float waypointsprite_distancefadedistance; float waypointsprite_alpha; +.float helpme; .float rule; .string netname; // primary picture .string netname2; // secondary picture @@ -32,14 +34,14 @@ float waypointsprite_alpha; .float build_starthealth; .float build_finished; -vector SPRITE_SIZE = '288 36 0'; -vector SPRITE_HOTSPOT = '144 36 0'; float SPRITE_HEALTHBAR_WIDTH = 144; float SPRITE_HEALTHBAR_HEIGHT = 9; float SPRITE_HEALTHBAR_MARGIN = 6; float SPRITE_HEALTHBAR_BORDER = 2; float SPRITE_HEALTHBAR_BORDERALPHA = 1; float SPRITE_HEALTHBAR_HEALTHALPHA = 0.5; +float SPRITE_ARROW_SCALE = 1.0; +float SPRITE_HELPME_BLINK = 2; void drawrotpic(vector org, float rot, string pic, vector sz, vector hotspot, vector rgb, float a, float f) { @@ -106,6 +108,257 @@ void drawhealthbar(vector org, float rot, float h, vector sz, vector hotspot, fl drawquad(o + ri * (border + align * ((1 - h) * width)), ri * width * h, up * height, "", hrgb, ha, f); } +// returns location of sprite text +vector drawspritearrow(vector o, float ang, vector rgb, float a, float t) +{ + float SQRT2 = 1.414; + float BORDER; BORDER = 1.5 * t; + float TSIZE; TSIZE = 8 * t; + float RLENGTH; RLENGTH = 8 * t; + float RWIDTH; RWIDTH = 4 * t; + float MLENGTH; MLENGTH = 4 * t; + + R_BeginPolygon("", DRAWFLAG_NORMAL); + R_PolygonVertex(o + rotate(eX * -(TSIZE + BORDER * (1 + SQRT2)) + eY * (TSIZE + BORDER), ang), '0 0 0', '0 0 0', a); + R_PolygonVertex(o + rotate(eX * (TSIZE + BORDER * (1 + SQRT2)) + eY * (TSIZE + BORDER), ang), '0 0 0', '0 0 0', a); + R_PolygonVertex(o + rotate(eY * -( BORDER * SQRT2), ang), '0 0 0', '0 0 0', a); + R_EndPolygon(); + R_BeginPolygon("", DRAWFLAG_NORMAL); + R_PolygonVertex(o + rotate(eX * -(RWIDTH + BORDER) + eY * (TSIZE + BORDER), ang), '0 0 0', '0 0 0', a); + R_PolygonVertex(o + rotate(eX * -(RWIDTH + BORDER) + eY * (TSIZE + RLENGTH + BORDER), ang), '0 0 0', '0 0 0', a); + R_PolygonVertex(o + rotate(eX * (RWIDTH + BORDER) + eY * (TSIZE + RLENGTH + BORDER), ang), '0 0 0', '0 0 0', a); + R_PolygonVertex(o + rotate(eX * (RWIDTH + BORDER) + eY * (TSIZE + BORDER), ang), '0 0 0', '0 0 0', a); + R_EndPolygon(); + + R_BeginPolygon("", DRAWFLAG_ADDITIVE); + R_PolygonVertex(o + rotate(eX * -TSIZE + eY * TSIZE, ang), '0 0 0', rgb, a); + R_PolygonVertex(o + rotate(eX * TSIZE + eY * TSIZE, ang), '0 0 0', rgb, a); + R_PolygonVertex(o + rotate('0 0 0', ang), '0 0 0', rgb, a); + R_EndPolygon(); + R_BeginPolygon("", DRAWFLAG_ADDITIVE); + R_PolygonVertex(o + rotate(eX * -RWIDTH + eY * TSIZE, ang), '0 0 0', rgb, a); + R_PolygonVertex(o + rotate(eX * -RWIDTH + eY * (TSIZE + RLENGTH), ang), '0 0 0', rgb, a); + R_PolygonVertex(o + rotate(eX * RWIDTH + eY * (TSIZE + RLENGTH), ang), '0 0 0', rgb, a); + R_PolygonVertex(o + rotate(eX * RWIDTH + eY * TSIZE, ang), '0 0 0', rgb, a); + R_EndPolygon(); + + return + o + rotate(eY * (TSIZE + RLENGTH + MLENGTH), ang); +} + +// returns location of sprite healthbar +vector drawspritetext(vector o, float ang, float minwidth, vector rgb, float a, vector fontsize, string s) +{ + float algnx, algny; + float sw, w, h; + float aspect, sa, ca; + + sw = stringwidth(s, FALSE, fontsize); + if(sw > minwidth) + w = sw; + else + w = minwidth; + h = fontsize_y; + + // how do corners work? + aspect = vid_conwidth / vid_conheight; + sa = sin(ang); + ca = cos(ang) * aspect; + if(fabs(sa) > fabs(ca)) + { + algnx = (sa < 0); + algny = 0.5 - 0.5 * ca / fabs(sa); + } + else + { + algnx = 0.5 - 0.5 * sa / fabs(ca); + algny = (ca < 0); + } + + // align + o_x -= w * algnx; + o_y -= h * algny; + + // we want to be onscreen + if(o_x < 0) + o_x = 0; + if(o_y < 0) + o_y = 0; + if(o_x > vid_conwidth - w) + o_x = vid_conwidth - w; + if(o_y > vid_conheight - h) + o_x = vid_conheight - h; + + o_x += 0.5 * (w - sw); + + drawstring(o, s, fontsize, rgb, a, DRAWFLAG_NORMAL); + + o_x += 0.5 * sw; + o_y += 0.5 * h; + + return o; +} + +float spritelookupblinkvalue(string s) +{ + switch(s) + { + case "ons-cp-atck-neut": return 2; + case "ons-cp-atck-red": return 2; + case "ons-cp-atck-blue": return 2; + case "ons-cp-dfnd-red": return 0.5; + case "ons-cp-dfnd-blue": return 0.5; + case "item-invis": return 2; + case "item-extralife": return 2; + case "item-speed": return 2; + case "item-strength": return 2; + case "item-shueld": return 2; + case "item-fuelregen": return 2; + case "item-jetpack": return 2; + case "tagged-target": return 2; + default: return 1; + } +} +vector spritelookupcolor(string s, vector def) +{ + switch(s) + { + case "keycarrier-friend": return '0 1 0'; + default: return def; + } +} +string spritelookuptext(string s) +{ + switch(s) + { + case "as-push": return _("Push"); + case "as-destroy": return _("Destroy"); + case "as-defend": return _("Defend"); + case "bluebase": return _("Blue base"); + case "danger": return _("DANGER"); + case "flagcarrier": return _("Flag carrier"); + case "flagdropped": return _("Dropped flag"); + case "helpme": return _("Help me!"); + case "here": return _("Here"); + case "key-dropped": return _("Dropped key"); + case "keycarrier-blue": return _("Key carrier"); + case "keycarrier-finish": return _("Run here"); + case "keycarrier-friend": return _("Key carrier"); + case "keycarrier-pink": return _("Key carrier"); + case "keycarrier-red": return _("Key carrier"); + case "keycarrier-yellow": return _("Key carrier"); + case "redbase": return _("Red base"); + case "waypoint": return _("Waypoint"); + case "ons-gen-red": return _("Generator"); + case "ons-gen-blue": return _("Generator"); + case "ons-gen-shielded": return _("Generator"); + case "ons-cp-neut": return _("Control point"); + case "ons-cp-red": return _("Control point"); + case "ons-cp-blue": return _("Control point"); + case "ons-cp-atck-neut": return _("Control point"); + case "ons-cp-atck-red": return _("Control point"); + case "ons-cp-atck-blue": return _("Control point"); + case "ons-cp-dfnd-red": return _("Control point"); + case "ons-cp-dfnd-blue": return _("Control point"); + case "race-checkpoint": return _("Checkpoint"); + case "race-finish": return _("Finish"); + case "race-start": return _("Start"); + case "nb-ball": return _("Ball"); + case "ka-ball": return _("Ball"); + case "ka-ballcarrier": return _("Ball carrier"); + case "wpn-laser": return _("Laser"); + case "wpn-shotgun": return _("Shotgun"); + case "wpn-uzi": return _("Machine Gun"); + case "wpn-gl": return _("Mortar"); + case "wpn-electro": return _("Electro"); + case "wpn-crylink": return _("Crylink"); + case "wpn-nex": return _("Nex"); + case "wpn-hagar": return _("Hagar"); + case "wpn-rl": return _("Rocket Launcher"); + case "wpn-porto": return _("Port-O-Launch"); + case "wpn-minstanex": return _("Minstanex"); + case "wpn-hookgun": return _("Hook"); + case "wpn-fireball": return _("Fireball"); + case "wpn-hlac": return _("HLAC"); + case "wpn-campingrifle": return _("Rifle"); + case "wpn-minelayer": return _("Mine Layer"); + case "dom-neut": return _("Control point"); + case "dom-red": return _("Control point"); + case "dom-blue": return _("Control point"); + case "dom-yellow": return _("Control point"); + case "dom-pink": return _("Control point"); + case "item-invis": return _("Invisibility"); + case "item-extralife": return _("Extra life"); + case "item-speed": return _("Speed"); + case "item-strength": return _("Strength"); + case "item-shield": return _("Shield"); + case "item-fuelregen": return _("Fuel regen"); + case "item-jetpack": return _("Jet Pack"); + case "freezetag_frozen": return _("Frozen!"); + case "tagged-target": return _("Tagged"); + case "vehicle": return _("Vehicle"); + default: return s; + } +} + +vector fixrgbexcess_move(vector rgb, vector src, vector dst) +{ + vector yvec = '0.299 0.587 0.114'; + return rgb + dst * ((src * yvec) / (dst * yvec)) * ((rgb - '1 1 1') * src); +} +vector fixrgbexcess(vector rgb) +{ + if(rgb_x > 1) + { + rgb = fixrgbexcess_move(rgb, '1 0 0', '0 1 1'); + if(rgb_y > 1) + { + rgb = fixrgbexcess_move(rgb, '0 1 0', '0 0 1'); + if(rgb_z > 1) + rgb_z = 1; + } + else if(rgb_z > 1) + { + rgb = fixrgbexcess_move(rgb, '0 0 1', '0 1 0'); + if(rgb_y > 1) + rgb_y = 1; + } + } + else if(rgb_y > 1) + { + rgb = fixrgbexcess_move(rgb, '0 1 0', '1 0 1'); + if(rgb_x > 1) + { + rgb = fixrgbexcess_move(rgb, '1 0 0', '0 0 1'); + if(rgb_z > 1) + rgb_z = 1; + } + else if(rgb_z > 1) + { + rgb = fixrgbexcess_move(rgb, '0 0 1', '1 0 0'); + if(rgb_x > 1) + rgb_x = 1; + } + } + else if(rgb_z > 1) + { + rgb = fixrgbexcess_move(rgb, '0 0 1', '1 1 0'); + if(rgb_x > 1) + { + rgb = fixrgbexcess_move(rgb, '1 0 0', '0 1 0'); + if(rgb_y > 1) + rgb_y = 1; + } + else if(rgb_y > 1) + { + rgb = fixrgbexcess_move(rgb, '0 1 0', '1 0 0'); + if(rgb_x > 1) + rgb_x = 1; + } + } + return rgb; +} + void Draw_WaypointSprite() { string spriteimage; @@ -173,34 +426,48 @@ void Draw_WaypointSprite() else if(self.maxdistance > 0) a *= pow(bound(0, (waypointsprite_fadedistance - dist) / (waypointsprite_fadedistance - waypointsprite_normdistance), 1), waypointsprite_distancealphaexponent) * (1 - waypointsprite_minalpha) + waypointsprite_minalpha; + vector rgb; + rgb = self.teamradar_color; + rgb = spritelookupcolor(spriteimage, rgb); + if(rgb == '0 0 0') + { + self.teamradar_color = '1 0 1'; + print(sprintf("WARNING: sprite of name %s has no color, using pink so you notice it\n", spriteimage)); + } + + if(time - floor(time) > 0.5) + { + if(self.helpme && time < self.helpme) + a *= SPRITE_HELPME_BLINK; + else + a *= spritelookupblinkvalue(spriteimage); + } + + if(a > 1) + { + rgb *= a; + a = 1; + } + if(a <= 0) return; - - // draw the sprite image + + rgb = fixrgbexcess(rgb); + vector o; - float rot; - o = project_3d_to_2d(self.origin); - rot = 0; + float ang; + o = project_3d_to_2d(self.origin); if(o_z < 0 || o_x < 0 || o_y < 0 || o_x > vid_conwidth || o_y > vid_conheight) { // scale it to be just in view vector d; float f1, f2; - // get the waypoint angle vector - /* - d_x = view_right * (self.origin - view_origin) * vid_conwidth / vid_width; - d_y = -view_up * (self.origin - view_origin) * vid_conheight / (vid_height * vid_pixelheight); - d_z = 0; - */ - d = o - '0.5 0 0' * vid_conwidth - '0 0.5 0' * vid_conheight; - - /* - if(autocvar_v_flipped) - d_x = -d_x; - */ + ang = atan2(-d_x, -d_y); + if(o_z < 0) + ang += M_PI; f1 = d_x / vid_conwidth; f2 = d_y / vid_conheight; @@ -211,13 +478,11 @@ void Draw_WaypointSprite() { // RIGHT edge d = d * (0.5 / f1); - rot = 3; } else { // LEFT edge d = d * (-0.5 / f1); - rot = 1; } } else @@ -226,32 +491,34 @@ void Draw_WaypointSprite() { // BOTTOM edge d = d * (0.5 / f2); - rot = 0; } else { // TOP edge d = d * (-0.5 / f2); - rot = 2; } } o = d + '0.5 0 0' * vid_conwidth + '0 0.5 0' * vid_conheight; } - o_z = 0; - - float vidscale; - vidscale = max(vid_conwidth / vid_width, vid_conheight / vid_height); - - t = stof(db_get(tempdb, strcat("/spriteframes/", spriteimage))); - if(t == 0) - spriteimage = strcat("models/sprites/", spriteimage); else - spriteimage = strcat("models/sprites/", spriteimage, "_frame", ftos(mod(floor((max(0, time - self.spawntime)) * 2), t))); + { +#if 1 + ang = M_PI; +#else + vector d; + d = o - '0.5 0 0' * vid_conwidth - '0 0.5 0' * vid_conheight; + ang = atan2(-d_x, -d_y); +#endif + } + o_z = 0; float edgedistance_min, crosshairdistance; edgedistance_min = min4(o_y, o_x,vid_conwidth - o_x, vid_conheight - o_y); + float vidscale; + vidscale = max(vid_conwidth / vid_width, vid_conheight / vid_height); + crosshairdistance = sqrt( pow(o_x - vid_conwidth/2, 2) + pow(o_y - vid_conheight/2, 2) ); t = waypointsprite_scale * vidscale; @@ -269,7 +536,6 @@ void Draw_WaypointSprite() a = a * (1 - (1 - waypointsprite_crosshairfadealpha) * (1 - bound(0, crosshairdistance/waypointsprite_crosshairfadedistance, 1))); t = t * (1 - (1 - waypointsprite_crosshairfadescale) * (1 - bound(0, crosshairdistance/waypointsprite_crosshairfadedistance, 1))); } - drawrotpic(o, rot * 90 * DEG2RAD, spriteimage, SPRITE_SIZE * t, SPRITE_HOTSPOT * t, '1 1 1', a, DRAWFLAG_MIPMAP); if(self.build_finished) { @@ -286,14 +552,49 @@ void Draw_WaypointSprite() self.health = -1; } + o = drawspritearrow(o, ang, rgb, a, SPRITE_ARROW_SCALE * t); + + string txt; + txt = spritelookuptext(spriteimage); + if(self.helpme && time < self.helpme) + txt = sprintf(_("%s needing help!"), txt); + if(autocvar_g_waypointsprite_uppercase) + txt = strtoupper(txt); + if(self.health >= 0) { - float align; + o = drawspritetext(o, ang, (SPRITE_HEALTHBAR_WIDTH + 2 * SPRITE_HEALTHBAR_BORDER) * t, rgb, a, waypointsprite_fontsize * '1 1 0', txt); + + float align, marg; if(self.build_finished) align = 0.5; else align = 0; - drawhealthbar(o, rot * 90 * DEG2RAD, self.health, SPRITE_SIZE * t, SPRITE_HOTSPOT * t, SPRITE_HEALTHBAR_WIDTH * t, SPRITE_HEALTHBAR_HEIGHT * t, SPRITE_HEALTHBAR_MARGIN * t, SPRITE_HEALTHBAR_BORDER * t, align, self.teamradar_color, a * SPRITE_HEALTHBAR_BORDERALPHA, self.teamradar_color, a * SPRITE_HEALTHBAR_HEALTHALPHA, DRAWFLAG_NORMAL); + if(cos(ang) > 0) + marg = -(SPRITE_HEALTHBAR_MARGIN + SPRITE_HEALTHBAR_HEIGHT + 2 * SPRITE_HEALTHBAR_BORDER) * t - 0.5 * waypointsprite_fontsize; + else + marg = SPRITE_HEALTHBAR_MARGIN * t + 0.5 * waypointsprite_fontsize; + drawhealthbar( + o, + 0, + self.health, + '0 0 0', + '0 0 0', + SPRITE_HEALTHBAR_WIDTH * t, + SPRITE_HEALTHBAR_HEIGHT * t, + marg, + SPRITE_HEALTHBAR_BORDER * t, + align, + rgb, + a * SPRITE_HEALTHBAR_BORDERALPHA, + rgb, + a * SPRITE_HEALTHBAR_HEALTHALPHA, + DRAWFLAG_NORMAL + ); + } + else + { + o = drawspritetext(o, ang, 0, rgb, a, waypointsprite_fontsize * '1 1 0', txt); } } @@ -399,6 +700,9 @@ void Ent_WaypointSprite() self.teamradar_color_x = ReadByte() / 255.0; self.teamradar_color_y = ReadByte() / 255.0; self.teamradar_color_z = ReadByte() / 255.0; + self.helpme = ReadByte() * 0.1; + if(self.helpme > 0) + self.helpme += servertime; } InterpolateOrigin_Note(); @@ -438,6 +742,7 @@ void WaypointSprite_Load() waypointsprite_distancealphaexponent = autocvar_g_waypointsprite_distancealphaexponent; waypointsprite_timealphaexponent = autocvar_g_waypointsprite_timealphaexponent; waypointsprite_scale = autocvar_g_waypointsprite_scale; + waypointsprite_fontsize = autocvar_g_waypointsprite_fontsize; waypointsprite_edgefadealpha = autocvar_g_waypointsprite_edgefadealpha; waypointsprite_edgefadescale = autocvar_g_waypointsprite_edgefadescale; waypointsprite_edgefadedistance = autocvar_g_waypointsprite_edgefadedistance; diff --git a/qcsrc/common/constants.qh b/qcsrc/common/constants.qh index 507cff85a..fcce8a70b 100644 --- a/qcsrc/common/constants.qh +++ b/qcsrc/common/constants.qh @@ -64,6 +64,7 @@ const float TE_CSQC_WEAPONCOMPLAIN = 113; const float TE_CSQC_NEX_SCOPE = 116; const float TE_CSQC_MINELAYER_MAXMINES = 117; const float TE_CSQC_HAGAR_MAXROCKETS = 118; +const float TE_CSQC_VEHICLESETUP = 119; const float RACE_NET_CHECKPOINT_HIT_QUALIFYING = 0; // byte checkpoint, short time, short recordtime, string recordholder const float RACE_NET_CHECKPOINT_CLEAR = 1; @@ -118,10 +119,13 @@ const float ENT_CLIENT_SHOWNAMES = 31; const float ENT_CLIENT_WARPZONE_TELEPORTED = 32; const float ENT_CLIENT_TURRET = 40; +const float ENT_CLIENT_AUXILIARYXHAIR = 50; +const float ENT_CLIENT_VEHICLE = 60; const float SPRITERULE_DEFAULT = 0; const float SPRITERULE_TEAMPLAY = 1; +const float RADARICON_NONE = 0; const float RADARICON_FLAG = 1; const float RADARICON_FLAGCARRIER = 1; const float RADARICON_HERE = 1; // TODO make these 3 and 4, and make images for them @@ -133,6 +137,7 @@ const float RADARICON_GENERATOR = 1; const float RADARICON_OBJECTIVE = 1; const float RADARICON_DOMPOINT = 1; const float RADARICON_POWERUP = 1; +const float RADARICON_TAGGED = 1; /////////////////////////// // key constants @@ -333,9 +338,13 @@ const float CTF_STATE_DEFEND = 2; const float CTF_STATE_COMMANDER = 3; const float HUD_NORMAL = 0; -const float HUD_SPIDERBOT = 10; -const float HUD_WAKIZASHI = 11; -const float HUD_RAPTOR = 12; +const float HUD_VEHICLE_FIRST = 10; +const float HUD_SPIDERBOT = 10; +const float HUD_WAKIZASHI = 11; +const float HUD_RAPTOR = 12; +const float HUD_BUMBLEBEE = 13; +const float HUD_VEHICLE_LAST = 13; + const vector eX = '1 0 0'; const vector eY = '0 1 0'; const vector eZ = '0 0 1'; @@ -358,6 +367,7 @@ const float STAT_PINKALIVE = 103; const float STAT_FROZEN = 104; const float STAT_REVIVE_PROGRESS = 105; + const float STAT_DOM_TOTAL_PPS = 100; const float STAT_DOM_PPS_RED = 101; const float STAT_DOM_PPS_BLUE = 102; @@ -367,9 +377,6 @@ const float STAT_DOM_PPS_YELLOW = 104; //const float STAT_SPIDERBOT_AIM 53 // compressShotOrigin //const float STAT_SPIDERBOT_TARGET 54 // compressShotOrigin - - - // moved that here so the client knows the max. // # of maps, I'll use arrays for them :P #define MAPVOTE_COUNT 10 @@ -499,6 +506,13 @@ float PROJECTILE_FIREBALL = 21; float PROJECTILE_FIREMINE = 22; float PROJECTILE_BULLET_GLOWING_TRACER = 23; +float PROJECTILE_RAPTORCANNON = 24; +float PROJECTILE_RAPTORBOMB = 25; +float PROJECTILE_RAPTORBOMBLET = 26; +float PROJECTILE_SPIDERROCKET = 27; +float PROJECTILE_WAKIROCKET = 28; +float PROJECTILE_WAKICANNON = 29; + float SPECIES_HUMAN = 0; float SPECIES_ROBOT_SOLID = 1; float SPECIES_ALIEN = 2; @@ -528,18 +542,23 @@ float DEATH_MIRRORDAMAGE = 10014; float DEATH_TOUCHEXPLODE = 10015; float DEATH_CHEAT = 10016; float DEATH_FIRE = 10017; -float DEATH_TURRET = 10020; float DEATH_QUIET = 10021; float DEATH_HEADSHOT = 10022; -float DEATH_SBMINIGUN = 10030; -float DEATH_SBROCKET = 10031; -float DEATH_SBCRUSH = 10032; -float DEATH_SBBLOWUP = 10033; - -float DEATH_WAKIGUN = 10040; -float DEATH_WAKIROCKET = 10041; -float DEATH_WAKIBLOWUP = 10042; +float DEATH_VHFIRST = 10030; +float DEATH_VHCRUSH = 10030; +float DEATH_SBMINIGUN = 10031; +float DEATH_SBROCKET = 10032; +float DEATH_SBBLOWUP = 10033; +float DEATH_WAKIGUN = 10034; +float DEATH_WAKIROCKET = 10035; +float DEATH_WAKIBLOWUP = 10036; +float DEATH_RAPTOR_CANNON = 10037; +float DEATH_RAPTOR_BOMB = 10038; +float DEATH_RAPTOR_BOMB_SPLIT = 10039; +float DEATH_RAPTOR_DEATH = 10040; +float DEATH_VHLAST = 10040; +#define DEATH_ISVEHICLE(t) ((t) >= DEATH_VHFIRST && (t) <= DEATH_VHLAST) float DEATH_GENERIC = 10050; @@ -547,6 +566,20 @@ float DEATH_WEAPON = 10100; float DEATH_CUSTOM = 10300; +float DEATH_TURRET = 10500; +float DEATH_TURRET_EWHEEL = 10501; +float DEATH_TURRET_FLAC = 10502; +float DEATH_TURRET_MACHINEGUN = 10503; +float DEATH_TURRET_WALKER_GUN = 10504; +float DEATH_TURRET_WALKER_MEELE = 10505; +float DEATH_TURRET_WALKER_ROCKET = 10506; +float DEATH_TURRET_HELLION = 10507; +float DEATH_TURRET_HK = 10508; +float DEATH_TURRET_MLRS = 10509; +float DEATH_TURRET_PLASMA = 10510; +float DEATH_TURRET_PHASER = 10511; +float DEATH_TURRET_TESLA = 10512; +float DEATH_TURRET_LAST = 10512; float DEATH_WEAPONMASK = 0xFF; float DEATH_HITTYPEMASK = 0x1F00; // which is WAY below 10000 used for normal deaths @@ -557,6 +590,7 @@ float HITTYPE_HEADSHOT = 0x800; float HITTYPE_RESERVED = 0x1000; // unused yet // macros to access these +#define DEATH_ISTURRET(t) ((t) >= DEATH_TURRET && (t) <= DEATH_TURRET_LAST) #define DEATH_ISSPECIAL(t) ((t) >= DEATH_SPECIAL_START) #define DEATH_WEAPONOFWEAPONDEATH(t) ((t) & DEATH_WEAPONMASK) #define DEATH_ISWEAPON(t,w) (!DEATH_ISSPECIAL(t) && DEATH_WEAPONOFWEAPONDEATH(t) == (w)) diff --git a/qcsrc/qc-client.cbp b/qcsrc/qc-client.cbp index 056b98ef2..63e00e9e1 100644 --- a/qcsrc/qc-client.cbp +++ b/qcsrc/qc-client.cbp @@ -6,28 +6,42 @@