Some more cleanup to map objects, allow trigger_delay and trigger_counter to be deact...
authorMario <mario.mario@y7mail.com>
Fri, 31 Jul 2020 10:21:38 +0000 (20:21 +1000)
committerMario <mario.mario@y7mail.com>
Fri, 31 Jul 2020 10:21:38 +0000 (20:21 +1000)
14 files changed:
qcsrc/client/bgmscript.qh
qcsrc/common/mapobjects/_mod.inc
qcsrc/common/mapobjects/_mod.qh
qcsrc/common/mapobjects/bgmscript.qc [new file with mode: 0644]
qcsrc/common/mapobjects/bgmscript.qh [new file with mode: 0644]
qcsrc/common/mapobjects/misc/laser.qc
qcsrc/common/mapobjects/misc/laser.qh
qcsrc/common/mapobjects/models.qc
qcsrc/common/mapobjects/models.qh
qcsrc/common/mapobjects/trigger/counter.qc
qcsrc/common/mapobjects/trigger/counter.qh
qcsrc/common/mapobjects/trigger/delay.qc
qcsrc/common/mapobjects/trigger/gamestart.qc
qcsrc/common/mapobjects/trigger/keylock.qc

index a3044d5..e1be9c8 100644 (file)
@@ -1,15 +1,8 @@
 #pragma once
 
-entityclass(BGMScript);
-classfield(BGMScript) .string bgmscript;
-classfield(BGMScript) .float bgmscriptattack;
-classfield(BGMScript) .float bgmscriptdecay;
-classfield(BGMScript) .float bgmscriptsustain;
-classfield(BGMScript) .float bgmscriptrelease;
+#include <common/mapobjects/bgmscript.qh>
 
 classfield(BGMScript) .float just_toggled;
 
-#ifdef CSQC
 void BGMScript_InitEntity(entity e);
 float doBGMScript(entity e);
-#endif
index 1aab2b9..ebcbac5 100644 (file)
@@ -1,4 +1,5 @@
 // generated file; do not modify
+#include <common/mapobjects/bgmscript.qc>
 #include <common/mapobjects/models.qc>
 #include <common/mapobjects/platforms.qc>
 #include <common/mapobjects/subs.qc>
index ebb7a43..8732182 100644 (file)
@@ -1,4 +1,5 @@
 // generated file; do not modify
+#include <common/mapobjects/bgmscript.qh>
 #include <common/mapobjects/models.qh>
 #include <common/mapobjects/platforms.qh>
 #include <common/mapobjects/subs.qh>
diff --git a/qcsrc/common/mapobjects/bgmscript.qc b/qcsrc/common/mapobjects/bgmscript.qc
new file mode 100644 (file)
index 0000000..939444d
--- /dev/null
@@ -0,0 +1 @@
+#include "bgmscript.qh"
diff --git a/qcsrc/common/mapobjects/bgmscript.qh b/qcsrc/common/mapobjects/bgmscript.qh
new file mode 100644 (file)
index 0000000..e64bbbf
--- /dev/null
@@ -0,0 +1,8 @@
+#pragma once
+
+entityclass(BGMScript);
+classfield(BGMScript) .string bgmscript;
+classfield(BGMScript) .float bgmscriptattack;
+classfield(BGMScript) .float bgmscriptdecay;
+classfield(BGMScript) .float bgmscriptsustain;
+classfield(BGMScript) .float bgmscriptrelease;
index 403a468..812dce7 100644 (file)
@@ -10,7 +10,6 @@
 REGISTER_NET_LINKED(ENT_CLIENT_LASER)
 
 #ifdef SVQC
-.float modelscale;
 void misc_laser_aim(entity this)
 {
        vector a;
@@ -291,19 +290,6 @@ spawnfunc(misc_laser)
 }
 #elif defined(CSQC)
 
-// a laser goes from origin in direction angles
-// it has color 'beam_color'
-// and stops when something is in the way
-entityclass(Laser);
-classfield(Laser) .int cnt; // end effect
-classfield(Laser) .vector colormod;
-classfield(Laser) .int state; // on-off
-classfield(Laser) .int count; // flags for the laser
-classfield(Laser) .vector velocity; // laser endpoint if it is FINITE
-classfield(Laser) .float alpha;
-classfield(Laser) .float scale; // scaling factor of the thickness
-classfield(Laser) .float modelscale; // scaling factor of the dlight
-
 void Draw_Laser(entity this)
 {
        if(this.active == ACTIVE_NOT)
index 0ff5764..d5b34f2 100644 (file)
@@ -1,5 +1,17 @@
 #pragma once
 
+// a laser goes from origin in direction angles
+// it has color 'beam_color'
+// and stops when something is in the way
+entityclass(Laser);
+classfield(Laser) .int cnt; // end effect
+classfield(Laser) .vector colormod;
+classfield(Laser) .int state; // on-off
+classfield(Laser) .int count; // flags for the laser
+classfield(Laser) .vector velocity; // laser endpoint if it is FINITE
+classfield(Laser) .float alpha;
+classfield(Laser) .float scale; // scaling factor of the thickness
+classfield(Laser) .float modelscale; // scaling factor of the dlight
 
 const int LASER_FINITE = BIT(1);
 const int LASER_NOTRACE = BIT(2);
index 790978b..bcaca19 100644 (file)
@@ -6,18 +6,10 @@
 #include <common/net_linked.qh>
 #include "subs.qh"
 #include "triggers.qh"
-
-entityclass(BGMScript);
-classfield(BGMScript) .string bgmscript;
-classfield(BGMScript) .float bgmscriptattack;
-classfield(BGMScript) .float bgmscriptdecay;
-classfield(BGMScript) .float bgmscriptsustain;
-classfield(BGMScript) .float bgmscriptrelease;
+#include "bgmscript.qh"
 
 #include <common/constants.qh>
-#include "../../lib/csqcmodel/sv_model.qh"
-
-.float modelscale;
+#include <lib/csqcmodel/sv_model.qh>
 
 void g_model_setcolormaptoactivator(entity this, entity actor, entity trigger)
 {
index 45346dc..8d2e98d 100644 (file)
@@ -1,5 +1,7 @@
 #pragma once
 
+.float modelscale;
+
 #ifdef CSQC
 entityclass(Wall);
 classfield(Wall) .float lip;
index 44cbd90..765d318 100644 (file)
@@ -1,9 +1,11 @@
 #include "counter.qh"
-#ifdef SVQC
-void counter_reset(entity this);
 
+#ifdef SVQC
 void counter_use(entity this, entity actor, entity trigger)
 {
+       if(this.active != ACTIVE_ACTIVE)
+               return;
+
        entity store = this;
        if(this.spawnflags & COUNTER_PER_PLAYER)
        {
@@ -66,6 +68,7 @@ void counter_reset(entity this)
        setthink(this, func_null);
        this.nextthink = 0;
        this.counter_cnt = 0;
+       this.active = ACTIVE_ACTIVE;
 }
 
 /*QUAKED spawnfunc_trigger_counter (.5 .5 .5) ? nomessage COUNTER_FIRE_AT_COUNT
@@ -86,5 +89,6 @@ spawnfunc(trigger_counter)
        this.counter_cnt = 0;
        this.use = counter_use;
        this.reset = counter_reset;
+       this.active = ACTIVE_ACTIVE;
 }
 #endif
index 403a87a..a34e95b 100644 (file)
@@ -1,7 +1,7 @@
 #pragma once
 
 #ifdef SVQC
-spawnfunc(trigger_counter);
+void counter_reset(entity this);
 
 .float counter_cnt;
 
index 2cd4cfd..7e593a5 100644 (file)
@@ -1,4 +1,5 @@
 #include "delay.qh"
+
 #ifdef SVQC
 void delay_delayeduse(entity this)
 {
@@ -8,6 +9,9 @@ void delay_delayeduse(entity this)
 
 void delay_use(entity this, entity actor, entity trigger)
 {
+       if(this.active != ACTIVE_ACTIVE)
+               return;
+
        this.enemy = actor;
        this.goalentity = trigger;
        setthink(this, delay_delayeduse);
@@ -19,6 +23,7 @@ void delay_reset(entity this)
        this.enemy = this.goalentity = NULL;
        setthink(this, func_null);
        this.nextthink = 0;
+       this.active = ACTIVE_ACTIVE;
 }
 
 spawnfunc(trigger_delay)
@@ -28,5 +33,6 @@ spawnfunc(trigger_delay)
 
     this.use = delay_use;
     this.reset = delay_reset;
+    this.active = ACTIVE_ACTIVE;
 }
 #endif
index 72d76d1..e7ed67c 100644 (file)
@@ -1,14 +1,10 @@
 #include "gamestart.qh"
+
 #ifdef SVQC
 void gamestart_use(entity this, entity actor, entity trigger)
 {
        SUB_UseTargets(this, this, trigger);
-       delete(this);
-}
-
-void gamestart_use_this(entity this)
-{
-       gamestart_use(this, NULL, NULL);
+       delete(this); // TODO: deleting this means it can't be used upon map reset!
 }
 
 spawnfunc(trigger_gamestart)
@@ -22,7 +18,6 @@ spawnfunc(trigger_gamestart)
                this.nextthink = game_starttime + this.wait;
        }
        else
-               InitializeEntity(this, gamestart_use_this, INITPRIO_FINDTARGET);
+               InitializeEntity(this, adaptor_think2use, INITPRIO_FINDTARGET);
 }
-
 #endif
index f7ecd7c..626a588 100644 (file)
@@ -169,16 +169,6 @@ spawnfunc(trigger_keylock)
        trigger_keylock_link(this);
 }
 #elif defined(CSQC)
-void keylock_remove(entity this)
-{
-       strfree(this.target);
-       strfree(this.target2);
-       strfree(this.target3);
-       strfree(this.target4);
-       strfree(this.killtarget);
-       strfree(this.targetname);
-}
-
 NET_HANDLE(ENT_CLIENT_KEYLOCK, bool isnew)
 {
        this.itemkeys = ReadInt24_t();
@@ -189,6 +179,6 @@ NET_HANDLE(ENT_CLIENT_KEYLOCK, bool isnew)
        return = true;
 
        this.classname = "trigger_keylock";
-       this.entremove = keylock_remove;
+       this.entremove = trigger_remove_generic;
 }
 #endif