]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/common/mutators/mutator/powerups/powerup/invisibility.qh
powerups: fix #2857 and move g_powerups cvar out of server/items/items.qc
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / mutators / mutator / powerups / powerup / invisibility.qh
index 85ac8bd309f1dc4120589040922a9b3485502e2a..bf8d8fb10a903820e9ad9e546c444c05b9274c19 100644 (file)
@@ -9,26 +9,35 @@
 #endif
 
 #ifdef GAMEQC
-MODEL(Invisibility_ITEM, Item_Model("g_strength.md3"));
+//MODEL(Invisibility_ITEM, Item_Model("g_strength.md3")); // TODO: new model required
 SOUND(Invisibility, Item_Sound("powerup"));
 #endif
 
 #ifdef SVQC
 .float invisibility_finished;
 
-float autocvar_g_balance_powerup_invisibility_alpha = 0.15;
-float autocvar_g_balance_powerup_invisibility_time = 30;
-void powerup_invisibility_init(Pickup this, entity item)
+bool autocvar_g_powerups_invisibility;
+float autocvar_g_balance_powerup_invisibility_alpha;
+float autocvar_g_balance_powerup_invisibility_time;
+void powerup_invisibility_init(Pickup def, entity item)
 {
+    if(!autocvar_g_powerups || !autocvar_g_powerups_invisibility)
+        def.spawnflags |= ITEM_FLAG_MUTATORBLOCKED;
+
     if(!item.invisibility_finished)
-        item.invisibility_finished = autocvar_g_balance_powerup_invisibility_time;
+        item.invisibility_finished = (item.count) ? item.count : autocvar_g_balance_powerup_invisibility_time;
 }
 #endif
 REGISTER_ITEM(Invisibility, Powerup) {
     this.m_canonical_spawnfunc = "item_invisibility";
+#ifdef SVQC
+    this.m_iteminit         =   powerup_invisibility_init;
+#endif
 #ifdef GAMEQC
-       this.spawnflags = ITEM_FLAG_MUTATORBLOCKED; // TODO: ITEM_FLAG_NORMAL (once it has a model!)
-    this.m_model            =   MDL_Invisibility_ITEM;
+    this.spawnflags         =   ITEM_FLAG_NORMAL;
+    this.m_itemid           =   IT_INVISIBILITY;
+    this.m_model            =   MDL_BUFF; // TODO: MDL_Invisibility_ITEM when new model available
+    this.m_skin             =   12;
     this.m_sound            =   SND_Invisibility;
     this.m_glow             =   true;
     this.m_respawnsound     =   SND_STRENGTH_RESPAWN;
@@ -39,17 +48,9 @@ REGISTER_ITEM(Invisibility, Powerup) {
     this.m_color            =   '0.5 0.5 1';
     this.m_waypoint         =   _("Invisibility");
     this.m_waypointblink    =   2;
-#ifdef GAMEQC
-    this.m_itemid           =   IT_INVISIBILITY;
-#endif
-#ifdef SVQC
-    this.m_iteminit         =   powerup_invisibility_init;
-#endif
 }
 
 SPAWNFUNC_ITEM(item_invisibility, ITEM_Invisibility)
-// compat
-SPAWNFUNC_ITEM(item_invis, ITEM_Invisibility)
 
 CLASS(Invisibility, Powerups)
     ATTRIB(Invisibility, netname, string, "invisibility");