Merge branch 'master' into terencehill/bot_waypoints
authorterencehill <piuntn@gmail.com>
Sat, 13 May 2017 22:19:44 +0000 (00:19 +0200)
committerterencehill <piuntn@gmail.com>
Sat, 13 May 2017 22:19:44 +0000 (00:19 +0200)
39 files changed:
.gitlab-ci.yml
.tx/merge-base
common.es.po
languages.txt
qcsrc/client/main.qc
qcsrc/client/shownames.qc
qcsrc/common/monsters/monster.qh
qcsrc/common/monsters/monster/mage.qh
qcsrc/common/monsters/monster/shambler.qh
qcsrc/common/monsters/monster/spider.qh
qcsrc/common/monsters/monster/wyvern.qh
qcsrc/common/monsters/monster/zombie.qh
qcsrc/common/monsters/sv_monsters.qc
qcsrc/common/monsters/sv_monsters.qh
qcsrc/common/physics/movetypes/movetypes.qc
qcsrc/common/physics/player.qc
qcsrc/common/turrets/cl_turrets.qc
qcsrc/common/turrets/sv_turrets.qc
qcsrc/common/turrets/turret.qh
qcsrc/common/turrets/turret/ewheel.qh
qcsrc/common/turrets/turret/flac.qh
qcsrc/common/turrets/turret/fusionreactor.qh
qcsrc/common/turrets/turret/hellion.qh
qcsrc/common/turrets/turret/hk.qh
qcsrc/common/turrets/turret/machinegun.qh
qcsrc/common/turrets/turret/mlrs.qh
qcsrc/common/turrets/turret/phaser.qh
qcsrc/common/turrets/turret/plasma.qh
qcsrc/common/turrets/turret/plasma_dual.qh
qcsrc/common/turrets/turret/tesla.qh
qcsrc/common/turrets/turret/walker.qh
qcsrc/common/vehicles/sv_vehicles.qc
qcsrc/common/vehicles/vehicle.qh
qcsrc/common/vehicles/vehicle/bumblebee.qh
qcsrc/common/vehicles/vehicle/racer.qh
qcsrc/common/vehicles/vehicle/raptor.qh
qcsrc/common/vehicles/vehicle/spiderbot.qh
qcsrc/server/mutators/mutator/gamemode_invasion.qc
qcsrc/server/weapons/spawning.qc

index 27a3e88..8599460 100644 (file)
@@ -29,7 +29,7 @@ test_sv_game:
     - wget -O data/maps/stormkeep.waypoints https://gitlab.com/xonotic/xonotic-maps.pk3dir/raw/master/maps/stormkeep.waypoints
     - wget -O data/maps/stormkeep.waypoints.cache https://gitlab.com/xonotic/xonotic-maps.pk3dir/raw/master/maps/stormkeep.waypoints.cache
     - make
-    - EXPECT=29c9a2567f546cf96080cc8b512099eb
+    - EXPECT=16ecb14f9a9d01196fe1c0cc9e04868e
     - HASH=$(${ENGINE} -noconfig -nohome +exec serverbench.cfg
       | tee /dev/stderr
       | grep '^:'
index e461149..a970a2b 100644 (file)
@@ -1 +1 @@
-Sat May  6 07:23:47 CEST 2017
+Sun May  7 07:23:48 CEST 2017
index 58ba7f9..f1fbca3 100644 (file)
@@ -23,7 +23,7 @@ msgstr ""
 "Project-Id-Version: Xonotic\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2017-03-30 07:23+0200\n"
-"PO-Revision-Date: 2017-05-06 01:59+0000\n"
+"PO-Revision-Date: 2017-05-06 16:19+0000\n"
 "Last-Translator: Vitama Piru Leta <vitamanrules@gmail.com>\n"
 "Language-Team: Spanish (http://www.transifex.com/team-xonotic/xonotic/"
 "language/es/)\n"
@@ -2416,191 +2416,199 @@ msgstr "^BG%s^K1 fue explotado por una torreta eWheel%s%s"
 #: qcsrc/common/notifications/all.inc:338
 #, c-format
 msgid "^BG%s^K1 got caught up in the FLAC turret fire%s%s"
-msgstr ""
+msgstr "^BG%s^K1 fue atrapado en el fuego de la torreta FLAC%s%s"
 
 #: qcsrc/common/notifications/all.inc:339
 #, c-format
 msgid "^BG%s^K1 was blasted away by a Hellion turret%s%s"
-msgstr ""
+msgstr "^BG%s^K1 fue reventado por una torreta Hellion%s%s"
 
 #: qcsrc/common/notifications/all.inc:340
 #, c-format
 msgid "^BG%s^K1 could not hide from the Hunter turret%s%s"
-msgstr ""
+msgstr "^BG%s^K1 no se pudo esconder de la torreta Hunter%s%s"
 
 #: qcsrc/common/notifications/all.inc:341
 #, c-format
 msgid "^BG%s^K1 was riddled full of holes by a Machinegun turret%s%s"
-msgstr ""
+msgstr "^BG%s^K1 fue acribillado por una torreta Ametralladora%s%s"
 
 #: qcsrc/common/notifications/all.inc:342
 #, c-format
 msgid "^BG%s^K1 got turned into smoldering gibs by an MLRS turret%s%s"
-msgstr ""
+msgstr "^BG%s^K1 fue convertido en entrañas ardientes por una torreta MLRS%s%s"
 
 #: qcsrc/common/notifications/all.inc:343
 #, c-format
 msgid "^BG%s^K1 was phased out by a turret%s%s"
-msgstr ""
+msgstr "^BG%s^K1 fue eliminado por una torreta%s%s"
 
 #: qcsrc/common/notifications/all.inc:344
 #, c-format
 msgid "^BG%s^K1 got served some superheated plasma from a turret%s%s"
 msgstr ""
+"^BGa %s^K1 le sirvieron un poco de plasma sobrecalentado de una torreta %s%s"
 
 #: qcsrc/common/notifications/all.inc:345
 #, c-format
 msgid "^BG%s^K1 was electrocuted by a Tesla turret%s%s"
-msgstr ""
+msgstr "^BG%s^K1 fue electrocutado por una torreta Tesla%s%s"
 
 #: qcsrc/common/notifications/all.inc:346
 #, c-format
 msgid "^BG%s^K1 got served a lead enrichment by a Walker turret%s%s"
-msgstr ""
+msgstr "^BGa %s^K1 le llenó de plomo una torreta Walker %s%s"
 
 #: qcsrc/common/notifications/all.inc:347
 #, c-format
 msgid "^BG%s^K1 was impaled by a Walker turret%s%s"
-msgstr ""
+msgstr "^BG%s^K1 fue empalado por una torreta Walker%s%s"
 
 #: qcsrc/common/notifications/all.inc:348
 #, c-format
 msgid "^BG%s^K1 was blasted away by a Walker turret%s%s"
-msgstr ""
+msgstr "^BG%s^K1fue reventado por una torreta Walker%s%s"
 
 #: qcsrc/common/notifications/all.inc:349
 #, c-format
 msgid "^BG%s^K1 got caught in the blast of a Bumblebee explosion%s%s"
 msgstr ""
+"^BG%s^K1 fue alcanzado por la onda expansiva de una explosion de Bumblebee%s"
+"%s"
 
 #: qcsrc/common/notifications/all.inc:350
 #, c-format
 msgid "^BG%s^K1 was crushed by a vehicle%s%s"
-msgstr ""
+msgstr "^BG%s^K1 fue aplastado por un vehículo%s%s"
 
 #: qcsrc/common/notifications/all.inc:351
 #, c-format
 msgid "^BG%s^K1 was caught in a Raptor cluster bomb%s%s"
-msgstr ""
+msgstr "^BG%s^K1 fue alcanzado por una bomba de racimo de un Raptor%s%s"
 
 #: qcsrc/common/notifications/all.inc:352
 #, c-format
 msgid "^BG%s^K1 got caught in the blast of a Raptor explosion%s%s"
 msgstr ""
+"^BG%s^K1 fue alcanzado por la explosión de la bomba de racimo de un Raptor%s"
+"%s"
 
 #: qcsrc/common/notifications/all.inc:353
 #, c-format
 msgid "^BG%s^K1 got caught in the blast of a Spiderbot explosion%s%s"
 msgstr ""
+"^BG%s^K1 fue alcanzado por la onda expansiva de la explosión de un Robot "
+"Araña%s%s"
 
 #: qcsrc/common/notifications/all.inc:354
 #, c-format
 msgid "^BG%s^K1 was blasted to bits by a Spiderbot rocket%s%s"
-msgstr ""
+msgstr "^BG%s^K1 fue reventado a bits por un cohete de Robot Araña%s%s"
 
 #: qcsrc/common/notifications/all.inc:355
 #, c-format
 msgid "^BG%s^K1 got caught in the blast of a Racer explosion%s%s"
 msgstr ""
+"^BG%s^K1 quedó atrapado en la onda expansiva de una explosión de Racer%s%s"
 
 #: qcsrc/common/notifications/all.inc:356
 #, c-format
 msgid "^BG%s^K1 couldn't find shelter from a Racer rocket%s%s"
-msgstr ""
+msgstr "^BG%s^K1 no pudo encontrar refugio de un cohete de Racer%s%s"
 
 #: qcsrc/common/notifications/all.inc:359
 #, c-format
 msgid "^BG%s^K1 was betrayed by ^BG%s^K1%s%s"
-msgstr ""
+msgstr "^BG%s^K1 fue traicionado por ^BG%s^K1%s%s"
 
 #: qcsrc/common/notifications/all.inc:361
 #, c-format
 msgid "^BG%s^BG%s^BG (%s %s every %s seconds)"
-msgstr ""
+msgstr "^BG%s^BG%s^BG (%s %s cada %s segundos)"
 
 #: qcsrc/common/notifications/all.inc:363
 #, c-format
 msgid "^BG%s^K1 was frozen by ^BG%s"
-msgstr ""
+msgstr "^BG%s^K1 fue congelado por ^BG%s"
 
 #: qcsrc/common/notifications/all.inc:364
 #, c-format
 msgid "^BG%s^K3 was revived by ^BG%s"
-msgstr ""
+msgstr "^BG%s^K3 fue revivido por ^BG%s"
 
 #: qcsrc/common/notifications/all.inc:365
 #, c-format
 msgid "^BG%s^K3 was revived by falling"
-msgstr ""
+msgstr "^BG%s^K3 fue revivido por la caída"
 
 #: qcsrc/common/notifications/all.inc:366
 #, c-format
 msgid "^BG%s^K3 was revived by their Nade explosion"
-msgstr ""
+msgstr "^BG%s^K3 fue revivido por la eplosión de su Granada"
 
 #: qcsrc/common/notifications/all.inc:367
 #, c-format
 msgid "^BG%s^K3 was automatically revived after %s second(s)"
-msgstr ""
+msgstr "^BG%s^K3 fue automáticamente revivido tras %s segundo(s)"
 
 #: qcsrc/common/notifications/all.inc:368
 #, c-format
 msgid "^BG%s^K1 froze themself"
-msgstr ""
+msgstr "^BG%s^K1 se auto-congeló"
 
 #: qcsrc/common/notifications/all.inc:370
 #: qcsrc/common/notifications/all.inc:684
 msgid "^TC^TT^BG team wins the round"
-msgstr "El equipo ^TC^TT^BG ha ganado la ronda"
+msgstr "^TC^TT^BG El equipo gana la ronda"
 
 #: qcsrc/common/notifications/all.inc:371
 #: qcsrc/common/notifications/all.inc:685
 #, c-format
 msgid "^BG%s^BG wins the round"
-msgstr "^BG%s^BG ha ganado la ronda"
+msgstr "^BG%s^BG gana la ronda"
 
 #: qcsrc/common/notifications/all.inc:372
 #: qcsrc/common/notifications/all.inc:548
 msgid "^BGRound tied"
-msgstr "^BGRondo empatada"
+msgstr "^BGRonda empatada"
 
 #: qcsrc/common/notifications/all.inc:373
 #: qcsrc/common/notifications/all.inc:549
 msgid "^BGRound over, there's no winner"
-msgstr "^BGLa ronda se ha acabado sin un ganador"
+msgstr "^BGRonda finalizada, no hay ganador"
 
 #: qcsrc/common/notifications/all.inc:375
 #, c-format
 msgid "^BGGodmode saved you %s units of damage, cheater!"
-msgstr ""
+msgstr "^BGEl modo Dios te ha quitado %s unidades de daño, ¡tramposo!"
 
 #: qcsrc/common/notifications/all.inc:377
 #, c-format
 msgid "^BG%s^BG got the %s^BG buff!"
-msgstr ""
+msgstr "^BG¡%s^BG tiene la ventaja %s^BG!"
 
 #: qcsrc/common/notifications/all.inc:378
 #, c-format
 msgid "^BG%s^BG lost the %s^BG buff!"
-msgstr ""
+msgstr "^BG¡%s^BG pierde la ventaja %s^BG!"
 
 #: qcsrc/common/notifications/all.inc:379
 #: qcsrc/common/notifications/all.inc:692
 #, c-format
 msgid "^BGYou dropped the %s^BG buff!"
-msgstr ""
+msgstr "^BG¡Has tirado la ventaja %s^BG!"
 
 #: qcsrc/common/notifications/all.inc:380
 #: qcsrc/common/notifications/all.inc:693
 #, c-format
 msgid "^BGYou got the %s^BG buff!"
-msgstr ""
+msgstr "^BG¡Tienes la ventaja %s^BG!"
 
 #: qcsrc/common/notifications/all.inc:382
 #: qcsrc/common/notifications/all.inc:696
 #, c-format
 msgid "^BGYou do not have the ^F1%s"
-msgstr "^BG no tienes la ^F1%s"
+msgstr "^BGNo tienes la ^F1%s"
 
 #: qcsrc/common/notifications/all.inc:383
 #: qcsrc/common/notifications/all.inc:697
@@ -2612,199 +2620,203 @@ msgstr "^BGHas tirado la ^F1%s^BG%s"
 #: qcsrc/common/notifications/all.inc:698
 #, c-format
 msgid "^BGYou got the ^F1%s"
-msgstr "^BGObtuviste la ^F1%s"
+msgstr "^BGTienes la ^F1%s"
 
 #: qcsrc/common/notifications/all.inc:385
 #: qcsrc/common/notifications/all.inc:699
 #, c-format
 msgid "^BGYou don't have enough ammo for the ^F1%s"
-msgstr "^BGNo tienes suficientes municiones para ^F1%s"
+msgstr "^BGNo tienes suficiente munición para el ^F1%s"
 
 #: qcsrc/common/notifications/all.inc:386
 #: qcsrc/common/notifications/all.inc:700
 #, c-format
 msgid "^F1%s %s^BG is unable to fire, but its ^F1%s^BG can"
-msgstr "^F1%s %s^BG no puede disparar, pero su ^F1%s^BG aun puede"
+msgstr "^F1%s %s^BG no puede disparar, pero su ^F1%s^BG puede"
 
 #: qcsrc/common/notifications/all.inc:387
 #: qcsrc/common/notifications/all.inc:701
 #, c-format
 msgid "^F1%s^BG is ^F4not available^BG on this map"
-msgstr "^F1%s^BG ^F4 no esta disponible ^BG en este mapa"
+msgstr "^F1%s^BG ^F4 no disponible ^BG en este mapa"
 
 #: qcsrc/common/notifications/all.inc:389
 #, c-format
 msgid "^BG%s^BG is connecting..."
-msgstr ""
+msgstr "^BG%s^BG está conectando..."
 
 #: qcsrc/common/notifications/all.inc:390
 #, c-format
 msgid "^BG%s^F3 connected"
-msgstr ""
+msgstr "^BG%s^F3 conectado"
 
 #: qcsrc/common/notifications/all.inc:391
 #, c-format
 msgid "^BG%s^F3 connected and joined the ^TC^TT team"
-msgstr ""
+msgstr "^BG%s^F3 se ha conectado y se ha unido al equipo ^TC^TT"
 
 #: qcsrc/common/notifications/all.inc:392
 #, c-format
 msgid "^BG%s^F3 is now playing"
-msgstr ""
+msgstr "^BG%s^F3 está jugando"
 
 #: qcsrc/common/notifications/all.inc:393
 #, c-format
 msgid "^BG%s^F3 is now playing on the ^TC^TT team"
-msgstr ""
+msgstr "^BG%s^F3 esta jugando en el equipo ^TC^TT"
 
 #: qcsrc/common/notifications/all.inc:395
 #: qcsrc/common/notifications/all.inc:706
 #, c-format
 msgid "^BG%s^BG has dropped the ball!"
-msgstr "^BG%s^BG ha tirado la pelota!"
+msgstr "^BG¡%s^BG ha tirado la bola!"
 
 #: qcsrc/common/notifications/all.inc:396
 #: qcsrc/common/notifications/all.inc:707
 #, c-format
 msgid "^BG%s^BG has picked up the ball!"
-msgstr "^BG%s ^BG ha recogido la pelota!"
+msgstr "^BG¡%s ^BG ha recogido la bola!"
 
 #: qcsrc/common/notifications/all.inc:398
 #, c-format
 msgid "^BG%s^BG captured the keys for the ^TC^TT team"
-msgstr ""
+msgstr "^BG%s^BG ha capturado las llaves para el equipo ^TC^TT"
 
 #: qcsrc/common/notifications/all.inc:399
 #, c-format
 msgid "^BG%s^BG dropped the ^TC^TT Key"
-msgstr ""
+msgstr "^BG%s^BG ha tirado la llave ^TC^TT"
 
 #: qcsrc/common/notifications/all.inc:400
 #, c-format
 msgid "^BG%s^BG lost the ^TC^TT Key"
-msgstr ""
+msgstr "^BG%s^BG pierde la llave ^TC^TT"
 
 #: qcsrc/common/notifications/all.inc:401
 #, c-format
 msgid "^BG%s^BG pushed %s^BG causing the ^TC^TT Key ^BGdestruction"
-msgstr ""
+msgstr "^BG%s^BG empujó %s^BG causando la destrucción de la^TC^TT Llave ^BG"
 
 #: qcsrc/common/notifications/all.inc:402
 #, c-format
 msgid "^BG%s^BG destroyed the ^TC^TT Key"
-msgstr ""
+msgstr "^BG%s^BG destruyó la Llave ^TC^TT"
 
 #: qcsrc/common/notifications/all.inc:403
 #, c-format
 msgid "^BG%s^BG picked up the ^TC^TT Key"
-msgstr ""
+msgstr "^BG%s^BG recogió la Llave ^TC^TT"
 
 #: qcsrc/common/notifications/all.inc:405
 #, c-format
 msgid "^BG%s^F3 forfeited"
-msgstr ""
+msgstr "^BG%s^F3 perdido"
 
 #: qcsrc/common/notifications/all.inc:406
 #, c-format
 msgid "^BG%s^F3 has no more lives left"
-msgstr ""
+msgstr "^BG%s^F3 no tiene mas vidas restantes"
 
 #: qcsrc/common/notifications/all.inc:408
 msgid "^BGMonsters are currently disabled"
-msgstr ""
+msgstr "^BGLos monstruos están actualmente deshabilitados"
 
 #: qcsrc/common/notifications/all.inc:410
 msgid "^BGThe ^TC^TT^BG team held the ball for too long"
-msgstr ""
+msgstr "^BGEl equipo ^TC^TT^BG mantuvo la bola demasiado tiempo"
 
 #: qcsrc/common/notifications/all.inc:412
 #, c-format
 msgid "^BG%s^BG captured %s^BG control point"
-msgstr ""
+msgstr "^BG%s^BG ha capturado el punto de control de %s^BG"
 
 #: qcsrc/common/notifications/all.inc:413
 #, c-format
 msgid "^TC^TT^BG team %s^BG control point has been destroyed by %s"
 msgstr ""
+"^TC^TT^BG El punto de control del equipo %s^BG ha sido destruido por %s"
 
 #: qcsrc/common/notifications/all.inc:414
 msgid "^TC^TT^BG generator has been destroyed"
-msgstr ""
+msgstr "^TC^TT^BG el generador ha sido destruido"
 
 #: qcsrc/common/notifications/all.inc:415
 msgid "^TC^TT^BG generator spontaneously combusted due to overtime!"
 msgstr ""
+"^TC^TT^BG ¡el generador se ha quemado expontaneamete debido al tiempo extra!"
 
 #: qcsrc/common/notifications/all.inc:417
 #, c-format
 msgid "^BG%s^K1 picked up Invisibility"
-msgstr ""
+msgstr "^BG%s^K1 ha cogido Invisibilidad"
 
 #: qcsrc/common/notifications/all.inc:418
 #, c-format
 msgid "^BG%s^K1 picked up Shield"
-msgstr ""
+msgstr "^BG%s^K1 ha cogido Escudo"
 
 #: qcsrc/common/notifications/all.inc:419
 #, c-format
 msgid "^BG%s^K1 picked up Speed"
-msgstr ""
+msgstr "^BG%s^K1 ha cogido Velocidad"
 
 #: qcsrc/common/notifications/all.inc:420
 #, c-format
 msgid "^BG%s^K1 picked up Strength"
-msgstr ""
+msgstr "^BG%s^K1 ha cogido Fuerza"
 
 #: qcsrc/common/notifications/all.inc:422
 #, c-format
 msgid "^BG%s^F3 disconnected"
-msgstr ""
+msgstr "^BG%s^F3 se ha desconectado"
 
 #: qcsrc/common/notifications/all.inc:423
 #, c-format
 msgid "^BG%s^F3 was kicked for idling"
-msgstr ""
+msgstr "^BG%s^F3 fue expulsado por vaguear"
 
 #: qcsrc/common/notifications/all.inc:424
 msgid ""
 "^F2You were kicked from the server because you are a spectator and "
 "spectators aren't allowed at the moment."
 msgstr ""
+"^F2Fuiste expulsado del servidor porque eres un espectador y los "
+"espectadores no estan permitidos por el momento"
 
 #: qcsrc/common/notifications/all.inc:425
 #, c-format
 msgid "^BG%s^F3 is now spectating"
-msgstr ""
+msgstr "^BG%s^F3 está espectando"
 
 #: qcsrc/common/notifications/all.inc:427
 #, c-format
 msgid "^BG%s^BG has abandoned the race"
-msgstr ""
+msgstr "^BG%s^BG ha abandonado la carrera"
 
 #: qcsrc/common/notifications/all.inc:428
 #, c-format
 msgid "^BG%s^BG couldn't break their %s%s^BG place record of %s%s %s"
-msgstr ""
+msgstr "^BG%s^BG no pudo romper su %s%s^BG posición de record %s%s %s"
 
 #: qcsrc/common/notifications/all.inc:429
 #, c-format
 msgid "^BG%s^BG couldn't break the %s%s^BG place record of %s%s %s"
-msgstr ""
+msgstr "^BG%s^BG no pudo romper el %s%s^BG posición de record %s%s %s"
 
 #: qcsrc/common/notifications/all.inc:430
 #, c-format
 msgid "^BG%s^BG has finished the race"
-msgstr ""
+msgstr "^BG%s^BG ha terminado la carrear"
 
 #: qcsrc/common/notifications/all.inc:431
 #, c-format
 msgid "^BG%s^BG broke %s^BG's %s%s^BG place record with %s%s %s"
-msgstr ""
+msgstr "^BG%s^BG rompió el record de %s^BG %s%s^BG posición con %s%s %s"
 
 #: qcsrc/common/notifications/all.inc:432
 #, c-format
 msgid "^BG%s^BG improved their %s%s^BG place record with %s%s %s"
-msgstr ""
+msgstr "^BG%s^BG mejoró su %s%s^BG posición de record con %s%s %s"
 
 #: qcsrc/common/notifications/all.inc:433
 #, c-format
index f5b0a2c..4fc584b 100644 (file)
@@ -3,7 +3,7 @@ de    German "Deutsch" 100%
 de_CH German "Deutsch (Schweiz)" 100%
 en    English "English"
 en_AU English "English (Australia)" 86%
-es    Spanish "Español" 78%
+es    Spanish "Español" 81%
 fr    French "Français" 100%
 it    Italian "Italiano" 100%
 hu    Hungarian "Magyar" 55%
index 91254e7..a098bd7 100644 (file)
@@ -1232,7 +1232,7 @@ string _getcommandkey(string cmd_name, string command, bool forcename)
        keys = db_get(binddb, command);
        if (keys == "")
        {
-               bool joy_detected = cvar("joy_detected");
+               bool joy_active = cvar("joy_active");
                n = tokenize(findkeysforcommand(command, 0)); // uses '...' strings
                for(j = 0; j < n; ++j)
                {
@@ -1240,7 +1240,7 @@ string _getcommandkey(string cmd_name, string command, bool forcename)
                        if(k != -1)
                        {
                                string key = keynumtostring(k);
-                               if(!joy_detected && substring(key, 0, 3) == "JOY")
+                               if(!joy_active && substring(key, 0, 3) == "JOY")
                                        continue;
 
                                if (keys == "")
index e46a97c..0500652 100644 (file)
@@ -117,6 +117,7 @@ void Draw_ShowNames(entity this)
                if (!this.csqcmodel_isdead) a *= f;
        }
        if (a < ALPHA_MIN_VISIBLE && gametype != MAPINFO_TYPE_CTS) return;
+       if (vdist(this.origin - view_origin, >=, max_shot_distance)) return;
        if (autocvar_hud_shownames_maxdistance)
        {
                if (dist >= autocvar_hud_shownames_maxdistance) return;
index a437e35..841e7ef 100644 (file)
@@ -38,9 +38,9 @@ CLASS(Monster, Object)
     /** model */
     ATTRIB(Monster, m_model, entity);
     /** hitbox size */
-    ATTRIB(Monster, mins, vector, '-0 -0 -0');
+    ATTRIB(Monster, m_mins, vector, '-0 -0 -0');
     /** hitbox size */
-    ATTRIB(Monster, maxs, vector, '0 0 0');
+    ATTRIB(Monster, m_maxs, vector, '0 0 0');
 
     /** (SERVER) setup monster data */
     METHOD(Monster, mr_setup, bool(Monster this, entity actor)) { TC(Monster, this); return false; }
index d78ee5e..194b6b2 100644 (file)
@@ -8,8 +8,8 @@ MODEL(MON_MAGE, M_Model("mage.dpm"));
 
 CLASS(Mage, Monster)
     ATTRIB(Mage, spawnflags, int, MON_FLAG_MELEE | MON_FLAG_RANGED);
-    ATTRIB(Mage, mins, vector, '-36 -36 -24');
-    ATTRIB(Mage, maxs, vector, '36 36 50');
+    ATTRIB(Mage, m_mins, vector, '-36 -36 -24');
+    ATTRIB(Mage, m_maxs, vector, '36 36 50');
 #ifdef GAMEQC
     ATTRIB(Mage, m_model, Model, MDL_MON_MAGE);
 #endif
index f7a3ce3..fde28e9 100644 (file)
@@ -8,8 +8,8 @@ MODEL(MON_SHAMBLER, M_Model("shambler.mdl"));
 
 CLASS(Shambler, Monster)
     ATTRIB(Shambler, spawnflags, int, MONSTER_SIZE_BROKEN | MON_FLAG_SUPERMONSTER | MON_FLAG_MELEE | MON_FLAG_RANGED);
-    ATTRIB(Shambler, mins, vector, '-41 -41 -31');
-    ATTRIB(Shambler, maxs, vector, '41 41 65');
+    ATTRIB(Shambler, m_mins, vector, '-41 -41 -31');
+    ATTRIB(Shambler, m_maxs, vector, '41 41 65');
 #ifdef GAMEQC
     ATTRIB(Shambler, m_model, Model, MDL_MON_SHAMBLER);
 #endif
index c54eb3a..cd7fa9e 100644 (file)
@@ -8,8 +8,8 @@ MODEL(MON_SPIDER, M_Model("spider.dpm"));
 
 CLASS(Spider, Monster)
     ATTRIB(Spider, spawnflags, int, MON_FLAG_MELEE | MON_FLAG_RANGED | MON_FLAG_RIDE);
-    ATTRIB(Spider, mins, vector, '-18 -18 -25');
-    ATTRIB(Spider, maxs, vector, '18 18 30');
+    ATTRIB(Spider, m_mins, vector, '-18 -18 -25');
+    ATTRIB(Spider, m_maxs, vector, '18 18 30');
 #ifdef GAMEQC
     ATTRIB(Spider, m_model, Model, MDL_MON_SPIDER);
 #endif
index 0af84c1..012c9c2 100644 (file)
@@ -8,8 +8,8 @@ MODEL(MON_WYVERN, M_Model("wizard.mdl"));
 
 CLASS(Wyvern, Monster)
     ATTRIB(Wyvern, spawnflags, int, MONSTER_TYPE_FLY | MONSTER_SIZE_BROKEN | MON_FLAG_RANGED | MON_FLAG_RIDE);
-    ATTRIB(Wyvern, mins, vector, '-20 -20 -58');
-    ATTRIB(Wyvern, maxs, vector, '20 20 20');
+    ATTRIB(Wyvern, m_mins, vector, '-20 -20 -58');
+    ATTRIB(Wyvern, m_maxs, vector, '20 20 20');
 #ifdef GAMEQC
     ATTRIB(Wyvern, m_model, Model, MDL_MON_WYVERN);
 #endif
index d3c94cd..dfa3755 100644 (file)
@@ -8,8 +8,8 @@ MODEL(MON_ZOMBIE, M_Model("zombie.dpm"));
 
 CLASS(Zombie, Monster)
     ATTRIB(Zombie, spawnflags, int, MONSTER_TYPE_UNDEAD | MON_FLAG_MELEE | MON_FLAG_RIDE);
-    ATTRIB(Zombie, mins, vector, '-18 -18 -25');
-    ATTRIB(Zombie, maxs, vector, '18 18 47');
+    ATTRIB(Zombie, m_mins, vector, '-18 -18 -25');
+    ATTRIB(Zombie, m_maxs, vector, '18 18 47');
 #ifdef GAMEQC
     ATTRIB(Zombie, m_model, Model, MDL_MON_ZOMBIE);
 #endif
index 246c1be..469dd7b 100644 (file)
@@ -25,8 +25,8 @@
 
 void monsters_setstatus(entity this)
 {
-       this.stat_monsters_total = monsters_total;
-       this.stat_monsters_killed = monsters_killed;
+       STAT(MONSTERS_TOTAL, this) = monsters_total;
+       STAT(MONSTERS_KILLED, this) = monsters_killed;
 }
 
 void monster_dropitem(entity this, entity attacker)
@@ -1389,7 +1389,7 @@ bool Monster_Spawn(entity this, bool check_appear, int mon_id)
                        this.scale *= 1.3;
        }
 
-       setsize(this, mon.mins * this.scale, mon.maxs * this.scale);
+       setsize(this, mon.m_mins * this.scale, mon.m_maxs * this.scale);
 
        this.ticrate = bound(sys_frametime, ((!this.ticrate) ? autocvar_g_monsters_think_delay : this.ticrate), 60);
 
index b667373..9d890d7 100644 (file)
@@ -1,8 +1,6 @@
 #pragma once
 
 // stats networking
-.int stat_monsters_killed;
-.int stat_monsters_total;
 int monsters_total;
 int monsters_killed;
 
index aef7667..407a703 100644 (file)
@@ -382,21 +382,13 @@ void _Movetype_LinkEdict(entity this, bool touch_triggers)  // SV_LinkEdict
 
        if(this.flags & FL_ITEM)
        {
-               mi.x -= 15;
-               mi.y -= 15;
-               mi.z -= 1;
-               ma.x += 15;
-               ma.y += 15;
-               ma.z += 1;
+               mi -= '15 15 1';
+               ma += '15 15 1';
        }
        else
        {
-               mi.x -= 1;
-               mi.y -= 1;
-               mi.z -= 1;
-               ma.x += 1;
-               ma.y += 1;
-               ma.z += 1;
+               mi -= '1 1 1';
+               ma += '1 1 1';
        }
 
        this.absmin = mi;
index b108aa9..b8a14a4 100644 (file)
 // client side physics
 bool Physics_Valid(string thecvar)
 {
-       return autocvar_g_physics_clientselect && strhasword(autocvar_g_physics_clientselect_options, thecvar);
+       return autocvar_g_physics_clientselect && thecvar != "" && thecvar && thecvar != "default" && strhasword(autocvar_g_physics_clientselect_options, thecvar);
 }
 
 float Physics_ClientOption(entity this, string option, float defaultval)
 {
        if(IS_REAL_CLIENT(this) && Physics_Valid(this.cvar_cl_physics))
        {
-               string s = sprintf("g_physics_%s_%s", this.cvar_cl_physics, option);
+               string s = strcat("g_physics_", this.cvar_cl_physics, "_", option);
                if(cvar_type(s) & CVAR_TYPEFLAG_EXISTS)
                        return cvar(s);
        }
        if(autocvar_g_physics_clientselect && autocvar_g_physics_clientselect_default)
        {
-               string s = sprintf("g_physics_%s_%s", autocvar_g_physics_clientselect_default, option);
+               string s = strcat("g_physics_", autocvar_g_physics_clientselect_default, "_", option);
                if(cvar_type(s) & CVAR_TYPEFLAG_EXISTS)
                        return cvar(s);
        }
index 809b69a..11d5e5d 100644 (file)
@@ -212,7 +212,7 @@ void turret_construct(entity this, bool isnew)
        setorigin(this, this.origin);
        _setmodel(this, tur.model);
        _setmodel(this.tur_head, tur.head_model);
-       setsize(this, tur.mins, tur.maxs);
+       setsize(this, tur.m_mins, tur.m_maxs);
        setsize(this.tur_head, '0 0 0', '0 0 0');
 
        if(this.m_id == TUR_EWHEEL.m_id)
index d6442df..4d598db 100644 (file)
@@ -1325,7 +1325,7 @@ bool turret_initialize(entity this, Turret tur)
        ++turret_count;
 
        _setmodel(this, tur.model);
-       setsize(this, tur.mins, tur.maxs);
+       setsize(this, tur.m_mins, tur.m_maxs);
 
        this.m_id                                       = tur.m_id;
        this.classname                          = "turret_main";
index 8e52397..7f9b746 100644 (file)
@@ -18,9 +18,9 @@ CLASS(Turret, Object)
 
     ATTRIB(Turret, spawnflags, int, 0);
     /** turret hitbox size */
-    ATTRIB(Turret, mins, vector, '-0 -0 -0');
+    ATTRIB(Turret, m_mins, vector, '-0 -0 -0');
     /** turret hitbox size */
-    ATTRIB(Turret, maxs, vector, '0 0 0');
+    ATTRIB(Turret, m_maxs, vector, '0 0 0');
 
     METHOD(Turret, display, void(Turret this, void(string name, string icon) returns)) {
         returns(this.turret_name, string_null);
index b34adb2..ed1a5a6 100644 (file)
@@ -6,8 +6,8 @@
 
 CLASS(EWheel, Turret)
 /* spawnflags */ ATTRIB(EWheel, spawnflags, int, TUR_FLAG_PLAYER | TUR_FLAG_MOVE | TUR_FLAG_ROAM);
-/* mins       */ ATTRIB(EWheel, mins, vector, '-32 -32 0');
-/* maxs       */ ATTRIB(EWheel, maxs, vector, '32 32 48');
+/* mins       */ ATTRIB(EWheel, m_mins, vector, '-32 -32 0');
+/* maxs       */ ATTRIB(EWheel, m_maxs, vector, '32 32 48');
 /* modelname  */ ATTRIB(EWheel, mdl, string, "ewheel-base2.md3");
 /* model      */ ATTRIB_STRZONE(EWheel, model, string, strcat("models/turrets/", this.mdl));
 /* head_model */ ATTRIB_STRZONE(EWheel, head_model, string, strcat("models/turrets/", "ewheel-gun1.md3"));
index d53422c..216dcd7 100644 (file)
@@ -4,8 +4,8 @@
 
 CLASS(Flac, Turret)
 /* spawnflags */ ATTRIB(Flac, spawnflags, int, TUR_FLAG_SPLASH | TUR_FLAG_FASTPROJ | TUR_FLAG_MISSILE);
-/* mins       */ ATTRIB(Flac, mins, vector, '-32 -32 0');
-/* maxs       */ ATTRIB(Flac, maxs, vector, '32 32 64');
+/* mins       */ ATTRIB(Flac, m_mins, vector, '-32 -32 0');
+/* maxs       */ ATTRIB(Flac, m_maxs, vector, '32 32 64');
 /* modelname  */ ATTRIB(Flac, mdl, string, "base.md3");
 /* model      */ ATTRIB_STRZONE(Flac, model, string, strcat("models/turrets/", this.mdl));
 /* head_model */ ATTRIB_STRZONE(Flac, head_model, string, strcat("models/turrets/", "flac.md3"));
index 134b805..2ca369b 100644 (file)
@@ -2,8 +2,8 @@
 
 CLASS(FusionReactor, Turret)
 /* spawnflags */ ATTRIB(FusionReactor, spawnflags, int, TUR_FLAG_SUPPORT | TUR_FLAG_AMMOSOURCE);
-/* mins       */ ATTRIB(FusionReactor, mins, vector, '-34 -34 0');
-/* maxs       */ ATTRIB(FusionReactor, maxs, vector, '34 34 90');
+/* mins       */ ATTRIB(FusionReactor, m_mins, vector, '-34 -34 0');
+/* maxs       */ ATTRIB(FusionReactor, m_maxs, vector, '34 34 90');
 /* modelname  */ ATTRIB(FusionReactor, mdl, string, "base.md3");
 /* model      */ ATTRIB_STRZONE(FusionReactor, model, string, strcat("models/turrets/", this.mdl));
 /* head_model */ ATTRIB_STRZONE(FusionReactor, head_model, string, strcat("models/turrets/", "reactor.md3"));
index 642645b..216b4c7 100644 (file)
@@ -4,8 +4,8 @@
 
 CLASS(Hellion, Turret)
 /* spawnflags */ ATTRIB(Hellion, spawnflags, int, TUR_FLAG_SPLASH | TUR_FLAG_FASTPROJ | TUR_FLAG_PLAYER | TUR_FLAG_MISSILE);
-/* mins       */ ATTRIB(Hellion, mins, vector, '-32 -32 0');
-/* maxs       */ ATTRIB(Hellion, maxs, vector, '32 32 64');
+/* mins       */ ATTRIB(Hellion, m_mins, vector, '-32 -32 0');
+/* maxs       */ ATTRIB(Hellion, m_maxs, vector, '32 32 64');
 /* modelname  */ ATTRIB(Hellion, mdl, string, "base.md3");
 /* model      */ ATTRIB_STRZONE(Hellion, model, string, strcat("models/turrets/", this.mdl));
 /* head_model */ ATTRIB_STRZONE(Hellion, head_model, string, strcat("models/turrets/", "hellion.md3"));
index d7c9cfb..639924f 100644 (file)
@@ -6,8 +6,8 @@
 
 CLASS(HunterKiller, Turret)
 /* spawnflags */ ATTRIB(HunterKiller, spawnflags, int, TUR_FLAG_SPLASH | TUR_FLAG_MEDPROJ | TUR_FLAG_PLAYER | TUR_FLAG_RECIEVETARGETS);
-/* mins       */ ATTRIB(HunterKiller, mins, vector, '-32 -32 0');
-/* maxs       */ ATTRIB(HunterKiller, maxs, vector, '32 32 64');
+/* mins       */ ATTRIB(HunterKiller, m_mins, vector, '-32 -32 0');
+/* maxs       */ ATTRIB(HunterKiller, m_maxs, vector, '32 32 64');
 /* modelname  */ ATTRIB(HunterKiller, mdl, string, "base.md3");
 /* model      */ ATTRIB_STRZONE(HunterKiller, model, string, strcat("models/turrets/", this.mdl));
 /* head_model */ ATTRIB_STRZONE(HunterKiller, head_model, string, strcat("models/turrets/", "hk.md3"));
index 92a8fba..c4a6066 100644 (file)
@@ -4,8 +4,8 @@
 
 CLASS(MachineGunTurret, Turret)
 /* spawnflags */ ATTRIB(MachineGunTurret, spawnflags, int, TUR_FLAG_PLAYER);
-/* mins       */ ATTRIB(MachineGunTurret, mins, vector, '-32 -32 0');
-/* maxs       */ ATTRIB(MachineGunTurret, maxs, vector, '32 32 64');
+/* mins       */ ATTRIB(MachineGunTurret, m_mins, vector, '-32 -32 0');
+/* maxs       */ ATTRIB(MachineGunTurret, m_maxs, vector, '32 32 64');
 /* modelname  */ ATTRIB(MachineGunTurret, mdl, string, "base.md3");
 /* model      */ ATTRIB_STRZONE(MachineGunTurret, model, string, strcat("models/turrets/", this.mdl));
 /* head_model */ ATTRIB_STRZONE(MachineGunTurret, head_model, string, strcat("models/turrets/", "machinegun.md3"));
index b2a6a5c..7e0bccf 100644 (file)
@@ -4,8 +4,8 @@
 
 CLASS(MLRSTurret, Turret)
 /* spawnflags */ ATTRIB(MLRSTurret, spawnflags, int, TUR_FLAG_SPLASH | TUR_FLAG_MEDPROJ | TUR_FLAG_PLAYER);
-/* mins       */ ATTRIB(MLRSTurret, mins, vector, '-32 -32 0');
-/* maxs       */ ATTRIB(MLRSTurret, maxs, vector, '32 32 64');
+/* mins       */ ATTRIB(MLRSTurret, m_mins, vector, '-32 -32 0');
+/* maxs       */ ATTRIB(MLRSTurret, m_maxs, vector, '32 32 64');
 /* modelname  */ ATTRIB(MLRSTurret, mdl, string, "base.md3");
 /* model      */ ATTRIB_STRZONE(MLRSTurret, model, string, strcat("models/turrets/", this.mdl));
 /* head_model */ ATTRIB_STRZONE(MLRSTurret, head_model, string, strcat("models/turrets/", "mlrs.md3"));
index fedbe66..887a11a 100644 (file)
@@ -4,8 +4,8 @@
 
 CLASS(PhaserTurret, Turret)
 /* spawnflags */ ATTRIB(PhaserTurret, spawnflags, int, TUR_FLAG_SNIPER | TUR_FLAG_HITSCAN | TUR_FLAG_PLAYER);
-/* mins       */ ATTRIB(PhaserTurret, mins, vector, '-32 -32 0');
-/* maxs       */ ATTRIB(PhaserTurret, maxs, vector, '32 32 64');
+/* mins       */ ATTRIB(PhaserTurret, m_mins, vector, '-32 -32 0');
+/* maxs       */ ATTRIB(PhaserTurret, m_maxs, vector, '32 32 64');
 /* modelname  */ ATTRIB(PhaserTurret, mdl, string, "base.md3");
 /* model      */ ATTRIB_STRZONE(PhaserTurret, model, string, strcat("models/turrets/", this.mdl));
 /* head_model */ ATTRIB_STRZONE(PhaserTurret, head_model, string, strcat("models/turrets/", "phaser.md3"));
index fc2a96d..f15ecfc 100644 (file)
@@ -4,8 +4,8 @@
 
 CLASS(PlasmaTurret, Turret)
 /* spawnflags */ ATTRIB(PlasmaTurret, spawnflags, int, TUR_FLAG_SPLASH | TUR_FLAG_MEDPROJ | TUR_FLAG_PLAYER);
-/* mins       */ ATTRIB(PlasmaTurret, mins, vector, '-32 -32 0');
-/* maxs       */ ATTRIB(PlasmaTurret, maxs, vector, '32 32 64');
+/* mins       */ ATTRIB(PlasmaTurret, m_mins, vector, '-32 -32 0');
+/* maxs       */ ATTRIB(PlasmaTurret, m_maxs, vector, '32 32 64');
 /* modelname  */ ATTRIB(PlasmaTurret, mdl, string, "base.md3");
 /* model      */ ATTRIB_STRZONE(PlasmaTurret, model, string, strcat("models/turrets/", this.mdl));
 /* head_model */ ATTRIB_STRZONE(PlasmaTurret, head_model, string, strcat("models/turrets/", "plasma.md3"));
index e4c7b0e..04436c4 100644 (file)
@@ -10,8 +10,8 @@ REGISTER_WEAPON(PLASMA_DUAL, NEW(PlasmaDualAttack));
 
 CLASS(DualPlasmaTurret, PlasmaTurret)
 /* spawnflags */ ATTRIB(DualPlasmaTurret, spawnflags, int, TUR_FLAG_SPLASH | TUR_FLAG_MEDPROJ | TUR_FLAG_PLAYER);
-/* mins       */ ATTRIB(DualPlasmaTurret, mins, vector, '-32 -32 0');
-/* maxs       */ ATTRIB(DualPlasmaTurret, maxs, vector, '32 32 64');
+/* mins       */ ATTRIB(DualPlasmaTurret, m_mins, vector, '-32 -32 0');
+/* maxs       */ ATTRIB(DualPlasmaTurret, m_maxs, vector, '32 32 64');
 /* modelname  */ ATTRIB(DualPlasmaTurret, mdl, string, "base.md3");
 /* model      */ ATTRIB_STRZONE(DualPlasmaTurret, model, string, strcat("models/turrets/", this.mdl));
 /* head_model */ ATTRIB_STRZONE(DualPlasmaTurret, head_model, string, strcat("models/turrets/", "plasmad.md3"));
index c5f67b1..ee3192e 100644 (file)
@@ -4,8 +4,8 @@
 
 CLASS(TeslaCoil, Turret)
 /* spawnflags */ ATTRIB(TeslaCoil, spawnflags, int, TUR_FLAG_HITSCAN | TUR_FLAG_PLAYER | TUR_FLAG_MISSILE);
-/* mins       */ ATTRIB(TeslaCoil, mins, vector, '-60 -60 0');
-/* maxs       */ ATTRIB(TeslaCoil, maxs, vector, '60 60 128');
+/* mins       */ ATTRIB(TeslaCoil, m_mins, vector, '-60 -60 0');
+/* maxs       */ ATTRIB(TeslaCoil, m_maxs, vector, '60 60 128');
 /* modelname  */ ATTRIB(TeslaCoil, mdl, string, "tesla_base.md3");
 /* model      */ ATTRIB_STRZONE(TeslaCoil, model, string, strcat("models/turrets/", this.mdl));
 /* head_model */ ATTRIB_STRZONE(TeslaCoil, head_model, string, strcat("models/turrets/", "tesla_head.md3"));
index 54a908b..1c923ca 100644 (file)
@@ -6,8 +6,8 @@
 
 CLASS(WalkerTurret, Turret)
 /* spawnflags */ ATTRIB(WalkerTurret, spawnflags, int, TUR_FLAG_PLAYER | TUR_FLAG_MOVE);
-/* mins       */ ATTRIB(WalkerTurret, mins, vector, '-70 -70 0');
-/* maxs       */ ATTRIB(WalkerTurret, maxs, vector, '70 70 95');
+/* mins       */ ATTRIB(WalkerTurret, m_mins, vector, '-70 -70 0');
+/* maxs       */ ATTRIB(WalkerTurret, m_maxs, vector, '70 70 95');
 /* modelname  */ ATTRIB(WalkerTurret, mdl, string, "walker_body.md3");
 /* model      */ ATTRIB_STRZONE(WalkerTurret, model, string, strcat("models/turrets/", this.mdl));
 /* head_model */ ATTRIB_STRZONE(WalkerTurret, head_model, string, strcat("models/turrets/", "walker_head_minigun.md3"));
index 0c9ff29..659b3c1 100644 (file)
@@ -814,7 +814,7 @@ void vehicles_exit(entity vehic, bool eject)
                        WriteAngle(MSG_ONE, 0);
                }
 
-               setsize(player, STAT(PL_MIN,player), STAT(PL_MAX, player));
+               setsize(player, STAT(PL_MIN, player), STAT(PL_MAX, player));
 
                player.takedamage               = DAMAGE_AIM;
                player.solid                    = SOLID_SLIDEBOX;
@@ -989,7 +989,7 @@ void vehicles_enter(entity pl, entity veh)
 
        pl.crouch = false;
        pl.view_ofs = STAT(PL_VIEW_OFS, pl);
-       setsize (pl, STAT(PL_MIN, pl), STAT(PL_MAX, pl));
+       setsize(pl, STAT(PL_MIN, pl), STAT(PL_MAX, pl));
 
        veh.event_damage        = vehicles_damage;
        veh.nextthink           = 0;
@@ -1246,14 +1246,14 @@ bool vehicle_initialize(entity this, Vehicle info, bool nodrop)
                setattachment(this.vehicle_viewport, this.vehicle_hudmodel, info.tag_view);
        }
 
-       setsize(this, info.mins, info.maxs);
+       setsize(this, info.m_mins, info.m_maxs);
 
        info.vr_setup(info, this);
 
        if(!nodrop)
        {
                setorigin(this, this.origin);
-               tracebox(this.origin + '0 0 100', info.mins, info.maxs, this.origin - '0 0 10000', MOVE_WORLDONLY, this);
+               tracebox(this.origin + '0 0 100', info.m_mins, info.m_maxs, this.origin - '0 0 10000', MOVE_WORLDONLY, this);
                setorigin(this, trace_endpos);
        }
 
index cb4225a..4e3b7b8 100644 (file)
@@ -27,9 +27,9 @@ CLASS(Vehicle, Object)
     /**  */
     ATTRIB(Vehicle, spawnflags, int, 0);
     /** vehicle hitbox size */
-    ATTRIB(Vehicle, mins, vector, '-0 -0 -0');
+    ATTRIB(Vehicle, m_mins, vector, '-0 -0 -0');
     /** vehicle hitbox size */
-    ATTRIB(Vehicle, maxs, vector, '0 0 0');
+    ATTRIB(Vehicle, m_maxs, vector, '0 0 0');
     /** vehicle 3rd person view offset */
     ATTRIB(Vehicle, view_ofs, vector, '0 0 0');
     /** vehicle 3rd person view distance */
index 2c90b7c..4c226f9 100644 (file)
@@ -4,8 +4,8 @@
 
 CLASS(Bumblebee, Vehicle)
 /* spawnflags */ ATTRIB(Bumblebee, spawnflags, int, VHF_DMGSHAKE);
-/* mins       */ ATTRIB(Bumblebee, mins, vector, '-245 -130 -130');
-/* maxs       */ ATTRIB(Bumblebee, maxs, vector, '230 130 130');
+/* mins       */ ATTRIB(Bumblebee, m_mins, vector, '-245 -130 -130');
+/* maxs       */ ATTRIB(Bumblebee, m_maxs, vector, '230 130 130');
 /* view offset*/ ATTRIB(Bumblebee, view_ofs, vector, '0 0 300');
 /* view dist  */ ATTRIB(Bumblebee, height, float, 450);
 /* model         */ ATTRIB(Bumblebee, mdl, string, "models/vehicles/bumblebee_body.dpm");
index dd14144..3c348ae 100644 (file)
@@ -4,8 +4,8 @@
 
 CLASS(Racer, Vehicle)
 /* spawnflags */ ATTRIB(Racer, spawnflags, int, VHF_DMGSHAKE | VHF_DMGROLL);
-/* mins       */ ATTRIB(Racer, mins, vector, '-120 -120 -40' * 0.5);
-/* maxs       */ ATTRIB(Racer, maxs, vector, '120 120 40' * 0.5);
+/* mins       */ ATTRIB(Racer, m_mins, vector, '-120 -120 -40' * 0.5);
+/* maxs       */ ATTRIB(Racer, m_maxs, vector, '120 120 40' * 0.5);
 /* view offset*/ ATTRIB(Racer, view_ofs, vector, '0 0 50');
 /* view dist  */ ATTRIB(Racer, height, float, 200);
 /* model         */ ATTRIB(Racer, mdl, string, "models/vehicles/wakizashi.dpm");
index 1266652..954d54a 100644 (file)
@@ -4,8 +4,8 @@
 
 CLASS(Raptor, Vehicle)
 /* spawnflags */ ATTRIB(Raptor, spawnflags, int, VHF_DMGSHAKE | VHF_DMGROLL);
-/* mins       */ ATTRIB(Raptor, mins, vector, '-80 -80 0');
-/* maxs       */ ATTRIB(Raptor, maxs, vector, '80 80 70');
+/* mins       */ ATTRIB(Raptor, m_mins, vector, '-80 -80 0');
+/* maxs       */ ATTRIB(Raptor, m_maxs, vector, '80 80 70');
 /* view offset*/ ATTRIB(Raptor, view_ofs, vector, '0 0 160');
 /* view dist  */ ATTRIB(Raptor, height, float, 200);
 /* model         */ ATTRIB(Raptor, mdl, string, "models/vehicles/raptor.dpm");
index a594ace..414e0f8 100644 (file)
@@ -4,8 +4,8 @@
 
 CLASS(Spiderbot, Vehicle)
 /* spawnflags */ ATTRIB(Spiderbot, spawnflags, int, VHF_DMGSHAKE);
-/* mins       */ ATTRIB(Spiderbot, mins, vector, '-75 -75 10');
-/* maxs       */ ATTRIB(Spiderbot, maxs, vector, '75 75 125');
+/* mins       */ ATTRIB(Spiderbot, m_mins, vector, '-75 -75 10');
+/* maxs       */ ATTRIB(Spiderbot, m_maxs, vector, '75 75 125');
 /* view offset*/ ATTRIB(Spiderbot, view_ofs, vector, '0 0 70');
 /* view dist  */ ATTRIB(Spiderbot, height, float, 170);
 /* model         */ ATTRIB(Spiderbot, mdl, string, "models/vehicles/spiderbot.dpm");
index 1355134..cbff696 100644 (file)
@@ -105,7 +105,7 @@ void invasion_SpawnChosenMonster(Monster mon)
        {
                LOG_TRACE("Warning: couldn't find any invasion_spawnpoint spawnpoints, attempting to spawn monsters in random locations");
                entity e = spawn();
-               setsize(e, mon.mins, mon.maxs);
+               setsize(e, mon.m_mins, mon.m_maxs);
 
                if(MoveToRandomMapLocation(e, DPCONTENTS_SOLID | DPCONTENTS_CORPSE | DPCONTENTS_PLAYERCLIP, DPCONTENTS_SLIME | DPCONTENTS_LAVA | DPCONTENTS_SKY | DPCONTENTS_BODY | DPCONTENTS_DONOTENTER, Q3SURFACEFLAG_SKY, 10, 1024, 256))
                        monster = spawnmonster(e, tospawn, mon.monsterid, NULL, NULL, e.origin, false, false, 2);
index 00bc0e5..b493409 100644 (file)
@@ -133,6 +133,9 @@ void weapon_defaultspawnfunc(entity this, Weapon e)
        if (g_pickup_weapons_anyway)
                this.pickup_anyway = true;
 
+       if(!this.owner)
+               this.glowmod = wpn.wpcolor;
+
        GameItem def = wpn.m_pickup;
        _StartItem(
                this,