diff --git a/base/src/Makefile b/base/src/Makefile index cc3f82d8..5e8df063 100644 --- a/base/src/Makefile +++ b/base/src/Makefile @@ -3,3 +3,4 @@ CC=fteqcc all: cd client && $(MAKE) cd server && $(MAKE) + cd menu && $(MAKE) diff --git a/base/src/menu/Makefile b/base/src/menu/Makefile new file mode 100644 index 00000000..627019ab --- /dev/null +++ b/base/src/menu/Makefile @@ -0,0 +1,4 @@ +CC=fteqcc + +all: + $(CC) progs.src diff --git a/base/src/menu/progs.src b/base/src/menu/progs.src new file mode 100644 index 00000000..5022c0f0 --- /dev/null +++ b/base/src/menu/progs.src @@ -0,0 +1,9 @@ +#pragma target fte_5768 +#pragma progs_dat "../../menu.dat" +#define MENU +#define GAME_DIR "base" + +#includelist +../../../src/menu-vgui/includes.src +#endlist + diff --git a/base/src/server/items.h b/base/src/server/items.h index dc01ac8e..82c5259a 100644 --- a/base/src/server/items.h +++ b/base/src/server/items.h @@ -23,6 +23,7 @@ class item_pickup:NSRenderableEntity int id; void(void) item_pickup; + virtual void(void) Spawned; virtual void(entity) Touch; virtual void(int i) SetItem; virtual void(void) Respawn; diff --git a/base/src/server/items.qc b/base/src/server/items.qc index 0fb29881..9a87cc70 100644 --- a/base/src/server/items.qc +++ b/base/src/server/items.qc @@ -93,12 +93,14 @@ item_pickup::Respawn(void) } void -item_pickup::item_pickup(void) +item_pickup::Spawned(void) { #ifdef WASTES Sound_Precache("item_weapon.pickup"); #endif - - super::NSRenderableEntity(); - Respawn(); +} + +void +item_pickup::item_pickup(void) +{ } diff --git a/platform/base_glsl.pk3dir/glsl/lightmapped.glsl b/platform/base_glsl.pk3dir/glsl/lightmapped.glsl index 21937c6a..34a7285f 100644 --- a/platform/base_glsl.pk3dir/glsl/lightmapped.glsl +++ b/platform/base_glsl.pk3dir/glsl/lightmapped.glsl @@ -36,6 +36,7 @@ !!cvardf r_skipNormal !!cvardf r_skipEnvmap !!cvardf r_skipLightmap +!!cvardf r_skipDetail #include "sys/defs.h" @@ -232,9 +233,11 @@ varying vec3 norm; alpha = 1.0; + #if r_skipDetail == 0 #if defined(UPPERLOWER) diffuse_f.rgb *= (texture2D(s_upper, tex_c * 4.0).rgb + 0.5); #endif + #endif gl_FragColor = vec4(fog3(diffuse_f.rgb), alpha); } diff --git a/platform/base_glsl.pk3dir/glsl/rtlight.glsl b/platform/base_glsl.pk3dir/glsl/rtlight.glsl index 3a1f6281..3b6d1eb1 100644 --- a/platform/base_glsl.pk3dir/glsl/rtlight.glsl +++ b/platform/base_glsl.pk3dir/glsl/rtlight.glsl @@ -173,7 +173,7 @@ varying vec3 lightvector; diff.rgb *= vc.a; #if defined(UPPERLOWER) - diff.rgb *= texture2D(s_upper, tex_c * 4.0).rgb; + diff.rgb *= (texture2D(s_upper, tex_c * 4.0).rgb + 0.5); #endif gl_FragColor = vec4(fog3additive(diff), vc.a); diff --git a/platform/base_glsl.pk3dir/glsl/terrain.glsl b/platform/base_glsl.pk3dir/glsl/terrain.glsl index 6a5cf146..c75145c2 100644 --- a/platform/base_glsl.pk3dir/glsl/terrain.glsl +++ b/platform/base_glsl.pk3dir/glsl/terrain.glsl @@ -159,7 +159,7 @@ varying vec2 lm1, lm2, lm3; #endif #if defined(UPPERLOWER) - output_f.rgb *= texture2D(s_upper, tex_c * 4.0).rgb; + output_f.rgb *= (texture2D(s_upper, tex_c * 4.0).rgb + 0.5); #endif gl_FragColor = fog4( vec4( output_f.rgb, 1.0 ) ); diff --git a/platform/base_glsl.pk3dir/glsl/terrain_alpha.glsl b/platform/base_glsl.pk3dir/glsl/terrain_alpha.glsl index 46539284..9448d78a 100644 --- a/platform/base_glsl.pk3dir/glsl/terrain_alpha.glsl +++ b/platform/base_glsl.pk3dir/glsl/terrain_alpha.glsl @@ -160,7 +160,7 @@ varying vec2 lm1, lm2, lm3; #if defined(UPPERLOWER) - diffuse_f.rgb *= texture2D(s_upper, tex_c * 4.0).rgb; + diffuse_f.rgb *= (texture2D(s_upper, tex_c * 4.0).rgb + 0.5); #endif gl_FragColor = vec4(fog3(diffuse_f), 1.0); diff --git a/platform/base_glsl.pk3dir/glsl/terrain_mask.glsl b/platform/base_glsl.pk3dir/glsl/terrain_mask.glsl index b1470285..654a267a 100644 --- a/platform/base_glsl.pk3dir/glsl/terrain_mask.glsl +++ b/platform/base_glsl.pk3dir/glsl/terrain_mask.glsl @@ -164,7 +164,7 @@ varying vec2 lm1, lm2, lm3; #endif #if defined(UPPERLOWER) - diffuse_f.rgb *= texture2D(s_upper, tex_c * 4.0).rgb; + diffuse_f.rgb *= (texture2D(s_upper, tex_c * 4.0).rgb + 0.5); #endif gl_FragColor = vec4(fog3(diffuse_f), 1.0); diff --git a/platform/base_scripts.pk3dir/fonts/ui.font b/platform/base_scripts.pk3dir/fonts/ui.font index 0d9d0df2..6891d4d2 100644 --- a/platform/base_scripts.pk3dir/fonts/ui.font +++ b/platform/base_scripts.pk3dir/fonts/ui.font @@ -1,4 +1,4 @@ color "255 255 255" alpha 255 size 12 -path fonts/Tahoma.ttf +path gfx/shell/cabin.ttf diff --git a/platform/base_scripts.pk3dir/scripts/ui_style.txt b/platform/base_scripts.pk3dir/scripts/ui_style.txt index 8a0b1dc1..f3d5b9ce 100644 --- a/platform/base_scripts.pk3dir/scripts/ui_style.txt +++ b/platform/base_scripts.pk3dir/scripts/ui_style.txt @@ -1,2 +1,3 @@ -COLOR=90 106 80 +COLOR=28 40 56 +FG_COLOR=255 255 255 ALPHA=255 diff --git a/platform/menu_fonts.pk3dir/gfx/shell/cabin.ttf b/platform/menu_fonts.pk3dir/gfx/shell/cabin.ttf new file mode 100644 index 00000000..210e1e3a Binary files /dev/null and b/platform/menu_fonts.pk3dir/gfx/shell/cabin.ttf differ diff --git a/platform/vmap_tex.pk3dir/textures/common/clipplayersnow.mat b/platform/vmap_tex.pk3dir/textures/common/clipplayersnow.mat new file mode 100644 index 00000000..4f6fff55 --- /dev/null +++ b/platform/vmap_tex.pk3dir/textures/common/clipplayersnow.mat @@ -0,0 +1,11 @@ +// Vera Visions Material +{ + qer_editorImage "textures/common/clipwood.tga" + qer_trans 0.50 + surfaceParm nodraw + surfaceParm trans + surfaceParm playerclip + surfaceParm nolightmap + surfaceParm snow + nomipmaps +} diff --git a/src/client/entry.qc b/src/client/entry.qc index b9d2d73a..f04eef32 100644 --- a/src/client/entry.qc +++ b/src/client/entry.qc @@ -66,6 +66,7 @@ CSQC_Init(float apilevel, string enginename, float engineversion) Sentences_Init(); Decals_Init(); Way_Init(); + Materials_Init(); /* let the menu know we're a multi or a singleplayer game */ if (serverkeyfloat("sv_playerslots") == 1) @@ -696,6 +697,11 @@ CSQC_WorldLoaded(void) } } + for (entity a = world; (a = findfloat(a, ::isCSQC, TRUE));) { + NSEntity ent = (NSEntity)a; + ent.Respawn(); + } + print("Client world initialized.\n"); } diff --git a/src/client/shake.qc b/src/client/shake.qc index ab86ff3b..71d7da4a 100644 --- a/src/client/shake.qc +++ b/src/client/shake.qc @@ -1,5 +1,5 @@ void -Shake_Update(player pl) +Shake_Update(NSClientPlayer pl) { if (pSeat->m_flShakeDuration > 0.0) { vector vecShake = [0,0,0]; diff --git a/src/gs-entbase/client/env_cubemap.qc b/src/gs-entbase/client/env_cubemap.qc index 73f1dc45..1c824bdd 100644 --- a/src/gs-entbase/client/env_cubemap.qc +++ b/src/gs-entbase/client/env_cubemap.qc @@ -69,7 +69,6 @@ void env_cubemap::env_cubemap(void) { m_iSize = 32; - Init(); } /* diff --git a/src/gs-entbase/client/env_glow.qc b/src/gs-entbase/client/env_glow.qc index a75599e9..4ab23021 100644 --- a/src/gs-entbase/client/env_glow.qc +++ b/src/gs-entbase/client/env_glow.qc @@ -45,8 +45,10 @@ class env_glow:NSEntity /* change to renderablentity? */ void(void) env_glow; - virtual float() predraw; - virtual void() postdraw; + virtual void(void) Spawned; + virtual void(void) Respawn; + virtual float(void) predraw; + virtual void(void) postdraw; virtual void(string, string) SpawnKey; virtual void(void) RendererRestarted; }; @@ -202,6 +204,20 @@ env_glow::SpawnKey(string strField, string strKey) } } +void +env_glow::Respawn(void) +{ + SetSize([0,0,0], [0,0,0]); + SetOrigin(GetSpawnOrigin()); + effects &= ~EF_NOSHADOW; +} + +void +env_glow::Spawned(void) +{ + RendererRestarted(); +} + void env_glow::env_glow(void) { @@ -209,10 +225,4 @@ env_glow::env_glow(void) m_flMaxAlpha = 1.0f; m_vecColor = [1,1,1]; drawmask = MASK_GLOWS; - setsize(this, [0,0,0], [0,0,0]); - effects &= ~EF_NOSHADOW; - Init(); - - RendererRestarted(); - setorigin(this, origin); } diff --git a/src/gs-entbase/client/env_laser.qc b/src/gs-entbase/client/env_laser.qc index 5dccc7bc..de0506fc 100644 --- a/src/gs-entbase/client/env_laser.qc +++ b/src/gs-entbase/client/env_laser.qc @@ -76,5 +76,4 @@ env_laser::ReceiveEntity(float flNew, float flChanged) void env_laser::env_laser(void) { - drawmask = MASK_ENGINE; } diff --git a/src/gs-entbase/client/env_particle.qc b/src/gs-entbase/client/env_particle.qc index c3c6b968..c5df01cd 100644 --- a/src/gs-entbase/client/env_particle.qc +++ b/src/gs-entbase/client/env_particle.qc @@ -40,6 +40,8 @@ class env_particle:NSEntity string m_strTarget; void(void) env_particle; + + virtual void(void) Respawn; virtual void(void) customphysics; virtual void(string, string) SpawnKey; }; @@ -96,10 +98,13 @@ void env_particle::SpawnKey(string strField, string strKey) } } +void +env_particle::Respawn(void) +{ + SetOrigin(GetSpawnOrigin()); + SetSize([0,0,0], [0,0,0]); +} + void env_particle::env_particle(void) { - drawmask = MASK_ENGINE; - Init(); - setorigin(this, origin); - setsize(this, [0,0,0], [0,0,0]); } diff --git a/src/gs-entbase/client/env_sound.qc b/src/gs-entbase/client/env_sound.qc index a28ac7d8..bb7b1b10 100644 --- a/src/gs-entbase/client/env_sound.qc +++ b/src/gs-entbase/client/env_sound.qc @@ -71,6 +71,7 @@ class env_sound:NSEntity void(void) env_sound; + virtual void(void) Respawn; virtual void(string, string) SpawnKey; }; @@ -99,12 +100,15 @@ env_sound::SpawnKey(string strField, string strKey) } } +void +env_sound::Respawn(void) +{ + SetSize([0,0,0], [0,0,0]); + SetOrigin(GetSpawnOrigin()); +} + void env_sound::env_sound(void) { m_iRadius = 256; - Init(); - - setsize(this, [0,0,0], [0,0,0]); - setorigin(this, origin); } diff --git a/src/gs-entbase/client/env_soundscape.qc b/src/gs-entbase/client/env_soundscape.qc index 8309e222..906d06e3 100644 --- a/src/gs-entbase/client/env_soundscape.qc +++ b/src/gs-entbase/client/env_soundscape.qc @@ -38,6 +38,7 @@ class env_soundscape:NSEntity void(void) env_soundscape; + virtual void(void) Respawn; virtual void(string, string) SpawnKey; }; @@ -65,15 +66,19 @@ env_soundscape::SpawnKey(string strField, string strKey) } } +void +env_soundscape::Respawn(void) +{ + SetSize([0,0,0], [0,0,0]); + SetOrigin(GetSpawnOrigin()); +} + void env_soundscape::env_soundscape(void) { g_scapes+=1; m_iID = g_scapes; m_iRadius = 1024; - setsize(this, [0,0,0], [0,0,0]); - Init(); - setorigin(this, origin); } void diff --git a/src/gs-entbase/client/env_sprite.qc b/src/gs-entbase/client/env_sprite.qc index 970d0405..e06b86aa 100644 --- a/src/gs-entbase/client/env_sprite.qc +++ b/src/gs-entbase/client/env_sprite.qc @@ -23,7 +23,6 @@ class env_sprite:NSRenderableEntity virtual float(void) predraw; virtual void(void) Init; - virtual void(void) Initialized; virtual void(float,float) ReceiveEntity; virtual void(void) think; }; @@ -113,10 +112,6 @@ env_sprite::Init(void) { } void -env_sprite::Initialized(void) -{ -} -void env_sprite::env_sprite(void) { } diff --git a/src/gs-entbase/client/env_sun.qc b/src/gs-entbase/client/env_sun.qc index 13bf8930..4529c4d3 100644 --- a/src/gs-entbase/client/env_sun.qc +++ b/src/gs-entbase/client/env_sun.qc @@ -51,8 +51,8 @@ class env_sun:NSEntity int m_iUseAngles; void(void) env_sun; - virtual void(void) Init; - virtual void(void) Initialized; + + virtual void(void) Spawned; virtual void(void) postdraw; virtual float(void) predraw; virtual void(string, string) SpawnKey; @@ -127,16 +127,11 @@ env_sun::postdraw(void) } void -env_sun::Init(void) +env_sun::Spawned(void) { - super::Init(); - setorigin(this, origin); - drawmask = MASK_ENGINE; -} + super::Spawned(); -void -env_sun::Initialized(void) -{ + setorigin(this, origin); makevectors(m_vecLensPos); m_vecLensPos = vectoangles(v_forward); localcmd(sprintf("r_shadows_throwdirection %v\n", v_forward)); @@ -163,10 +158,6 @@ env_sun::SpawnKey(string strField, string strKey) void env_sun::env_sun(void) { - drawmask = MASK_ENGINE; - setsize(this, [0,0,0], [0,0,0]); - setorigin(this, origin); - Init(); } void diff --git a/src/gs-entbase/client/func_dustcloud.qc b/src/gs-entbase/client/func_dustcloud.qc index 647f5f6f..36c560fb 100644 --- a/src/gs-entbase/client/func_dustcloud.qc +++ b/src/gs-entbase/client/func_dustcloud.qc @@ -41,7 +41,7 @@ class func_dustcloud:NSEntity float m_flLifetimeMax; void(void) func_dustcloud; - virtual void(void) Init; + virtual void(void) Spawned; virtual float() predraw; virtual void(string, string) SpawnKey; }; @@ -139,9 +139,9 @@ func_dustcloud::predraw(void) } void -func_dustcloud::Init(void) +func_dustcloud::Spawned(void) { - super::Init(); + super::Spawned(); precache_model(model); setmodel(this, model); @@ -194,6 +194,4 @@ func_dustcloud::func_dustcloud(void) m_vecColor = [1,1,1]; */ solid = SOLID_NOT; - - Init(); } diff --git a/src/gs-entbase/client/func_dustmotes.qc b/src/gs-entbase/client/func_dustmotes.qc index b8d334b7..ffed9460 100644 --- a/src/gs-entbase/client/func_dustmotes.qc +++ b/src/gs-entbase/client/func_dustmotes.qc @@ -31,7 +31,8 @@ class func_dustmotes:NSEntity float m_flNexTime; void(void) func_dustmotes; - virtual void(void) Init; + + virtual void(void) Spawned; virtual float() predraw; virtual void(string, string) SpawnKey; }; @@ -66,15 +67,15 @@ func_dustmotes::predraw(void) } void -func_dustmotes::Init(void) +func_dustmotes::Spawned(void) { - super::Init(); + super::Spawned(); precache_model(model); setmodel(this, model); setorigin(this, origin); movetype = MOVETYPE_NONE; - drawmask = MASK_ENGINE; + m_iCount = vlen(size) / 10; } void @@ -94,6 +95,4 @@ void func_dustmotes::func_dustmotes(void) { solid = SOLID_NOT; - Init(); - m_iCount = vlen(size) / 10; } diff --git a/src/gs-entbase/client/func_lod.qc b/src/gs-entbase/client/func_lod.qc index dad981f0..bc01b42d 100644 --- a/src/gs-entbase/client/func_lod.qc +++ b/src/gs-entbase/client/func_lod.qc @@ -36,7 +36,8 @@ class func_lod:NSRenderableEntity int m_iDisappearDist; void(void) func_lod; - virtual void(void) Init; + + virtual void(void) Spawned; virtual float() predraw; virtual void(string,string) SpawnKey; }; @@ -91,9 +92,9 @@ func_lod::SpawnKey(string strField, string strKey) } void -func_lod::Init(void) +func_lod::Spawned(void) { - super::Init(); + super::Spawned(); precache_model(model); setmodel(this, model); @@ -107,5 +108,4 @@ func_lod::func_lod(void) { m_iDisappearDist = 2000; solid = SOLID_BSP; - Init(); } diff --git a/src/gs-entbase/client/func_smokevolume.qc b/src/gs-entbase/client/func_smokevolume.qc index b978efe1..0cc20b86 100644 --- a/src/gs-entbase/client/func_smokevolume.qc +++ b/src/gs-entbase/client/func_smokevolume.qc @@ -45,7 +45,7 @@ class func_smokevolume:NSEntity float m_flMaxDrawDistance; void(void) func_smokevolume; - virtual void(void) Init; + virtual void(void) Spawned; virtual float() predraw; virtual void(string, string) SpawnKey; }; @@ -157,15 +157,14 @@ func_smokevolume::predraw(void) } void -func_smokevolume::Init(void) +func_smokevolume::Spawned(void) { - super::Init(); + super::Spawned(); precache_model(model); setmodel(this, model); setorigin(this, origin); movetype = MOVETYPE_NONE; - drawmask = MASK_ENGINE; if (m_iCount == -1) m_iCount = (int)(vlen(size) / 100); @@ -211,6 +210,4 @@ func_smokevolume::func_smokevolume(void) m_vecColor1 = m_vecColor2 = [0,0,0]; solid = SOLID_NOT; - - Init(); } diff --git a/src/gs-entbase/client/info_notnull.qc b/src/gs-entbase/client/info_notnull.qc index 73ef817a..98a3d13f 100644 --- a/src/gs-entbase/client/info_notnull.qc +++ b/src/gs-entbase/client/info_notnull.qc @@ -16,5 +16,10 @@ class info_notnull:NSEntity { - + void(void) info_notnull; }; + +void +info_notnull::info_notnull(void) +{ +} diff --git a/src/gs-entbase/client/infodecal.qc b/src/gs-entbase/client/infodecal.qc index 6b5f0bec..dbebc531 100644 --- a/src/gs-entbase/client/infodecal.qc +++ b/src/gs-entbase/client/infodecal.qc @@ -55,12 +55,8 @@ infodecal::SpawnKey(string strField, string strKey) void infodecal::infodecal(void) { - Init(); - if (targetname) { remove(this); return; } - - drawmask = MASK_ENGINE; } diff --git a/src/gs-entbase/client/light_environment.qc b/src/gs-entbase/client/light_environment.qc index 6fe37926..6c4ee009 100644 --- a/src/gs-entbase/client/light_environment.qc +++ b/src/gs-entbase/client/light_environment.qc @@ -53,22 +53,14 @@ class light_environment:NSEntity { void(void) light_environment; - virtual void(void) Init; - virtual void(void) Initialized; + virtual void(void) Respawn; virtual void(string, string) SpawnKey; }; void -light_environment::Init(void) +light_environment::Respawn(void) { - super::Init(); setorigin(this, origin); - drawmask = MASK_ENGINE; -} - -void -light_environment::Initialized(void) -{ makevectors(g_vecSunDir); cvar_set("r_shadows_throwdirection", sprintf("%v", v_forward)); } @@ -92,5 +84,4 @@ void light_environment::light_environment(void) { solid = SOLID_NOT; - Init(); } diff --git a/src/gs-entbase/client/point_message.qc b/src/gs-entbase/client/point_message.qc index 36cdbbdf..f2f7200c 100644 --- a/src/gs-entbase/client/point_message.qc +++ b/src/gs-entbase/client/point_message.qc @@ -63,7 +63,6 @@ point_message::point_message(void) { m_flRadius = 512; m_strMessage = "No message"; - Init(); } int diff --git a/src/gs-entbase/client/prop_static.qc b/src/gs-entbase/client/prop_static.qc index 795ba729..fa773249 100644 --- a/src/gs-entbase/client/prop_static.qc +++ b/src/gs-entbase/client/prop_static.qc @@ -22,6 +22,8 @@ prop_static:NSEntity void(void) prop_static; virtual void(string, string) SpawnKey; + virtual void(void) Respawn; + virtual void(void) Spawned; }; void @@ -43,17 +45,26 @@ prop_static::SpawnKey(string strKey, string strValue) } void -prop_static::prop_static(void) +prop_static::Respawn(void) { - float skindata; - drawmask = MASK_ENGINE; - Init(); + makestatic(this); +} +void +prop_static::Spawned(void) +{ + super::Spawned(); + + float skindata; solid = SOLID_NOT; setmodel(this, model); skindata = loadcustomskin("", sprintf("geomset 0 %i\ngeomset 1 %i\n", m_iBody, m_iBody)); applycustomskin(this, skindata); setorigin(this, origin); setsize(this, mins * scale, maxs * scale); - makestatic(this); +} + +void +prop_static::prop_static(void) +{ } diff --git a/src/gs-entbase/client/sky_camera.qc b/src/gs-entbase/client/sky_camera.qc index 13a74955..f20859fb 100644 --- a/src/gs-entbase/client/sky_camera.qc +++ b/src/gs-entbase/client/sky_camera.qc @@ -62,7 +62,6 @@ void sky_camera::sky_camera(void) { g_skyscale = 16; - Init(); } void diff --git a/src/gs-entbase/server/button_target.qc b/src/gs-entbase/server/button_target.qc index 105045f3..20bf0976 100644 --- a/src/gs-entbase/server/button_target.qc +++ b/src/gs-entbase/server/button_target.qc @@ -62,13 +62,13 @@ button_target::Respawn(void) if (HasSpawnFlags(BUTTA_USE)) { PlayerUse = PUseWrapper; } else { - health = 1; - takedamage = DAMAGE_YES; + SetHealth(1); + SetTakedamage(DAMAGE_YES); Pain = Death = Damage; } /* purely cosmetic */ - frame = HasSpawnFlags(BUTTA_TEXON) ? 1 : 0; + SetFrame(HasSpawnFlags(BUTTA_TEXON) ? 1 : 0); } void @@ -76,7 +76,7 @@ button_target::Trigger(entity act, int status) { /* make unusable */ PlayerUse = __NULL__; - takedamage = DAMAGE_NO; + SetTakedamage(DAMAGE_NO); frame = 1 - frame; UseTargets(act, status, m_flDelay); @@ -91,5 +91,4 @@ button_target::Damage(void) void button_target::button_target(void) { - super::NSSurfacePropEntity(); } diff --git a/src/gs-entbase/server/cycler.qc b/src/gs-entbase/server/cycler.qc index 47c1d19b..79155f97 100644 --- a/src/gs-entbase/server/cycler.qc +++ b/src/gs-entbase/server/cycler.qc @@ -49,7 +49,7 @@ cycler::Pain(void) } else { frame += 1; } - health = 9999; + SetHealth(9999); } void @@ -58,12 +58,11 @@ cycler::Respawn(void) super::Respawn(); SetSolid(SOLID_BBOX); - takedamage = DAMAGE_YES; - health = 9999; + SetTakedamage(DAMAGE_YES); + SetHealth(9999); } void cycler::cycler(void) { - super::NSSurfacePropEntity(); } diff --git a/src/gs-entbase/server/env_beverage.qc b/src/gs-entbase/server/env_beverage.qc index 13891929..2994a81c 100644 --- a/src/gs-entbase/server/env_beverage.qc +++ b/src/gs-entbase/server/env_beverage.qc @@ -52,6 +52,7 @@ class env_beverage:NSRenderableEntity void(void) env_beverage; + virtual void(void) Spawned; virtual void(float) Save; virtual void(string, string) Restore; virtual void(entity, int) Trigger; @@ -116,13 +117,17 @@ env_beverage::SpawnKey(string strKey, string strValue) } void -env_beverage::env_beverage(void) +env_beverage::Spawned(void) { + super::Spawned(); + precache_model("models/can.mdl"); precache_sound("weapons/g_bounce3.wav"); +} - super::NSRenderableEntity(); - +void +env_beverage::env_beverage(void) +{ if (!m_iUses) { m_iUses = 10; } diff --git a/src/gs-entbase/server/env_explosion.qc b/src/gs-entbase/server/env_explosion.qc index 52f0d4ef..c1deaa99 100644 --- a/src/gs-entbase/server/env_explosion.qc +++ b/src/gs-entbase/server/env_explosion.qc @@ -112,5 +112,4 @@ env_explosion::SpawnKey(string strKey, string strValue) void env_explosion::env_explosion(void) { - super::NSPointTrigger(); } diff --git a/src/gs-entbase/server/env_fade.qc b/src/gs-entbase/server/env_fade.qc index eec0c1b9..b1343824 100644 --- a/src/gs-entbase/server/env_fade.qc +++ b/src/gs-entbase/server/env_fade.qc @@ -126,5 +126,4 @@ env_fade::SpawnKey(string strKey, string strValue) void env_fade::env_fade(void) { - super::NSRenderableEntity(); } diff --git a/src/gs-entbase/server/env_global.qc b/src/gs-entbase/server/env_global.qc index fc075bd1..a24a7d4f 100644 --- a/src/gs-entbase/server/env_global.qc +++ b/src/gs-entbase/server/env_global.qc @@ -50,6 +50,7 @@ class env_global:NSPointTrigger void(void) env_global; /* overrides */ + virtual void(void) Spawned; virtual void(float) Save; virtual void(string,string) Restore; virtual void(entity, int) Trigger; @@ -169,9 +170,9 @@ env_global::SpawnKey(string strKey, string strValue) } void -env_global::env_global(void) +env_global::Spawned(void) { - super::NSPointTrigger(); + super::Spawned(); if (!m_strGlobalState) { objerror("env_global: No globalstate name given! Aborting\n"); @@ -183,3 +184,8 @@ env_global::env_global(void) } } } + +void +env_global::env_global(void) +{ +} diff --git a/src/gs-entbase/server/env_hudhint.qc b/src/gs-entbase/server/env_hudhint.qc index 5afaebb2..980cdd2d 100644 --- a/src/gs-entbase/server/env_hudhint.qc +++ b/src/gs-entbase/server/env_hudhint.qc @@ -71,7 +71,6 @@ env_hudhint::SpawnKey(string strKey, string strValue) void env_hudhint::env_hudhint(void) { - super::NSPointTrigger(); } void diff --git a/src/gs-entbase/server/env_laser.qc b/src/gs-entbase/server/env_laser.qc index 75ed6adc..8d70c180 100644 --- a/src/gs-entbase/server/env_laser.qc +++ b/src/gs-entbase/server/env_laser.qc @@ -206,6 +206,5 @@ env_laser::SpawnKey(string strKey, string strValue) void env_laser::env_laser(void) { - super::NSPointTrigger(); pvsflags = PVSF_IGNOREPVS; } diff --git a/src/gs-entbase/server/env_message.qc b/src/gs-entbase/server/env_message.qc index f7a5568a..379e1421 100644 --- a/src/gs-entbase/server/env_message.qc +++ b/src/gs-entbase/server/env_message.qc @@ -102,7 +102,6 @@ env_message::SpawnKey(string strKey, string strValue) void env_message::env_message(void) { - super::NSPointTrigger(); } void diff --git a/src/gs-entbase/server/env_render.qc b/src/gs-entbase/server/env_render.qc index 91a7f58b..103edc89 100644 --- a/src/gs-entbase/server/env_render.qc +++ b/src/gs-entbase/server/env_render.qc @@ -115,6 +115,5 @@ env_render::Trigger(entity act, int state) void env_render::env_render(void) { - super::NSRenderableEntity(); } #endif diff --git a/src/gs-entbase/server/env_shake.qc b/src/gs-entbase/server/env_shake.qc index feba2578..7a281f3b 100644 --- a/src/gs-entbase/server/env_shake.qc +++ b/src/gs-entbase/server/env_shake.qc @@ -77,5 +77,4 @@ env_shake::SpawnKey(string strKey, string strValue) void env_shake::env_shake(void) { - super::NSPointTrigger(); } diff --git a/src/gs-entbase/server/env_shooter.qc b/src/gs-entbase/server/env_shooter.qc index e387f6cd..6157699c 100644 --- a/src/gs-entbase/server/env_shooter.qc +++ b/src/gs-entbase/server/env_shooter.qc @@ -150,8 +150,6 @@ env_shooter::SpawnKey(string strKey, string strValue) void env_shooter::env_shooter(void) { - super::NSPointTrigger(); - if (!m_strShootModel) { remove(this); } diff --git a/src/gs-entbase/server/env_spark.qc b/src/gs-entbase/server/env_spark.qc index 0d3566fc..a832c726 100644 --- a/src/gs-entbase/server/env_spark.qc +++ b/src/gs-entbase/server/env_spark.qc @@ -53,6 +53,7 @@ class env_spark:NSPointTrigger void(void) env_spark; + virtual void(void) Spawned; virtual void(void) CreateSpark; virtual void(void) TimedSpark; virtual void(entity, int) Trigger; @@ -123,9 +124,15 @@ env_spark::SpawnKey(string strKey, string strValue) } } +void +env_spark::Spawned(void) +{ + super::Spawned(); + + Sound_Precache("env_spark.sfx"); +} + void env_spark::env_spark(void) { - Sound_Precache("env_spark.sfx"); - super::NSPointTrigger(); } diff --git a/src/gs-entbase/server/env_sprite.qc b/src/gs-entbase/server/env_sprite.qc index 8a2bfb4f..af4bd9f3 100644 --- a/src/gs-entbase/server/env_sprite.qc +++ b/src/gs-entbase/server/env_sprite.qc @@ -56,6 +56,8 @@ class env_sprite:NSRenderableEntity string m_strMaterial; void(void) env_sprite; + + virtual void(void) Spawned; virtual void(entity, int) Trigger; virtual float(entity, float) SendEntity; virtual void(string, string) SpawnKey; @@ -178,17 +180,19 @@ env_sprite::SpawnKey(string strKey, string strValue) } void -env_sprite::env_sprite(void) +env_sprite::Spawned(void) { - m_iIsShader = false; - m_flFramerate = 10; - m_flScale = 1.0f; - - super::NSRenderableEntity(); - m_iToggled = (HasSpawnFlags(ENVS_STARTON) > 0) ? TRUE : FALSE; /* how pointless this would be otherwise. */ if (!targetname) m_iToggled = TRUE; } + +void +env_sprite::env_sprite(void) +{ + m_iIsShader = false; + m_flFramerate = 10; + m_flScale = 1.0f; +} diff --git a/src/gs-entbase/server/func_areaportal.qc b/src/gs-entbase/server/func_areaportal.qc index ab781a97..649f26ca 100644 --- a/src/gs-entbase/server/func_areaportal.qc +++ b/src/gs-entbase/server/func_areaportal.qc @@ -132,5 +132,4 @@ func_areaportal::PortalClose(void) void func_areaportal::func_areaportal(void) { - super::NSEntity(); } \ No newline at end of file diff --git a/src/gs-entbase/server/func_breakable.qc b/src/gs-entbase/server/func_breakable.qc index 558ab2a2..7541ae12 100644 --- a/src/gs-entbase/server/func_breakable.qc +++ b/src/gs-entbase/server/func_breakable.qc @@ -131,6 +131,7 @@ class func_breakable:NSSurfacePropEntity void(void) func_breakable; /* overrides */ + virtual void(void) Spawned; virtual void(void) Respawn; virtual void(void) Pain; virtual void(void) Death; @@ -369,8 +370,10 @@ func_breakable::SpawnKey(string strKey, string strValue) } void -func_breakable::func_breakable(void) +func_breakable::Spawned(void) { + super::Spawned(); + /* func_breakable defaults to glass */ if (classname == "func_breakable") { SetPropData(funcbreakable_surftable[0]); @@ -380,9 +383,11 @@ func_breakable::func_breakable(void) SetSurfaceData(funcbreakable_surftable[1]); } - /* proper init */ - super::NSSurfacePropEntity(); - /* precache impact sound */ Sound_Precache(GetSurfaceData(SURFDATA_SND_BULLETIMPACT)); } + +void +func_breakable::func_breakable(void) +{ +} diff --git a/src/gs-entbase/server/func_brush.qc b/src/gs-entbase/server/func_brush.qc index 98906a5a..372a6fee 100644 --- a/src/gs-entbase/server/func_brush.qc +++ b/src/gs-entbase/server/func_brush.qc @@ -130,5 +130,4 @@ func_brush::Respawn(void) void func_brush::func_brush(void) { - super::NSRenderableEntity(); } diff --git a/src/gs-entbase/server/func_button.qc b/src/gs-entbase/server/func_button.qc index b6952e9d..18afbf14 100644 --- a/src/gs-entbase/server/func_button.qc +++ b/src/gs-entbase/server/func_button.qc @@ -102,6 +102,7 @@ class func_button:NSSurfacePropEntity string m_strOnIn; string m_strOnOut; + virtual void(void) Spawned; virtual void(void) Respawn; virtual void(void) Arrived; virtual void(void) Returned; @@ -488,20 +489,29 @@ func_button::SpawnKey(string strKey, string strValue) } void -func_button::func_button(void) +func_button::Spawned(void) { - m_flWait = 4.0f; - - super::NSSurfacePropEntity(); + super::Spawned(); /* sounds */ Sound_Precache(m_strSndPressed); Sound_Precache(m_strSndUnpressed); /* input/output */ - m_strOnPressed = CreateOutput(m_strOnPressed); - m_strOnDamaged = CreateOutput(m_strOnDamaged); - m_strOnUseLocked = CreateOutput(m_strOnUseLocked); - m_strOnIn = CreateOutput(m_strOnIn); - m_strOnOut = CreateOutput(m_strOnOut); + if (m_strOnPressed) + m_strOnPressed = CreateOutput(m_strOnPressed); + if (m_strOnDamaged) + m_strOnDamaged = CreateOutput(m_strOnDamaged); + if (m_strOnUseLocked) + m_strOnUseLocked = CreateOutput(m_strOnUseLocked); + if (m_strOnIn) + m_strOnIn = CreateOutput(m_strOnIn); + if (m_strOnOut) + m_strOnOut = CreateOutput(m_strOnOut); +} + +void +func_button::func_button(void) +{ + m_flWait = 4.0f; } diff --git a/src/gs-entbase/server/func_conveyor.qc b/src/gs-entbase/server/func_conveyor.qc index 5ea55626..c405dfca 100644 --- a/src/gs-entbase/server/func_conveyor.qc +++ b/src/gs-entbase/server/func_conveyor.qc @@ -165,5 +165,4 @@ func_conveyor::SpawnKey(string strKey, string strValue) void func_conveyor::func_conveyor(void) { - super::NSRenderableEntity(); } diff --git a/src/gs-entbase/server/func_door.qc b/src/gs-entbase/server/func_door.qc index 6ff6bbad..18e35ad9 100644 --- a/src/gs-entbase/server/func_door.qc +++ b/src/gs-entbase/server/func_door.qc @@ -101,6 +101,8 @@ class func_door:NSRenderableEntity void(void) func_door; + virtual void(void) Spawned; + virtual void(void) PortalOpen; virtual void(void) PortalClose; virtual void(void) SetMovementDirection; @@ -638,9 +640,9 @@ func_door::SpawnKey(string strKey, string strValue) } void -func_door::func_door(void) +func_door::Spawned(void) { - super::NSRenderableEntity(); + super::Spawned(); if (m_strSndOpen) Sound_Precache(m_strSndOpen); @@ -658,6 +660,39 @@ func_door::func_door(void) Sound_Precache(m_strUnlockedSfx); } +void +func_door::func_door(void) +{ + m_vecPos1 = + m_vecPos2 = + m_vecDest = + m_vecMoveDir = [0,0,0]; + + m_flSpeed = + m_flLip = + m_iState = + m_flNextTrigger = + m_flWait = + m_flDelay = 0.0f; + + m_iDamage = + m_iLocked = + m_iPortalState = + m_iForceClosed = 0; + + m_iCanTouch = false; + m_flSoundWait = 0.0f; + + targetClose = + m_strLockedSfx = + m_strUnlockedSfx = + + m_strSndOpen = + m_strSndClose = + m_strSndMove = + m_strSndStop = __NULL__; +} + void func_water(void) { diff --git a/src/gs-entbase/server/func_door_rotating.qc b/src/gs-entbase/server/func_door_rotating.qc index 0edfbbd3..e7e994a6 100644 --- a/src/gs-entbase/server/func_door_rotating.qc +++ b/src/gs-entbase/server/func_door_rotating.qc @@ -92,6 +92,7 @@ class func_door_rotating:NSRenderableEntity void(void) func_door_rotating; + virtual void(void) Spawned; virtual void(void) PortalOpen; virtual void(void) PortalClose; virtual void(void) Respawn; @@ -492,13 +493,9 @@ func_door_rotating::SpawnKey(string strKey, string strValue) } void -func_door_rotating::func_door_rotating(void) +func_door_rotating::Spawned(void) { - m_flSpeed = 100; - m_flDelay = 4; - m_flDistance = 90; - - super::NSRenderableEntity(); + super::Spawned(); if (m_strSndOpen) Sound_Precache(m_strSndOpen); @@ -509,3 +506,11 @@ func_door_rotating::func_door_rotating(void) if (m_strLockedSfx) Sound_Precache(m_strLockedSfx); } + +void +func_door_rotating::func_door_rotating(void) +{ + m_flSpeed = 100; + m_flDelay = 4; + m_flDistance = 90; +} diff --git a/src/gs-entbase/server/func_guntarget.qc b/src/gs-entbase/server/func_guntarget.qc index 51b6feff..a3365761 100644 --- a/src/gs-entbase/server/func_guntarget.qc +++ b/src/gs-entbase/server/func_guntarget.qc @@ -39,6 +39,7 @@ class func_guntarget:NSSurfacePropEntity void(void) func_guntarget; /* overrides */ + virtual void(void) Spawned; virtual void(float) Save; virtual void(string, string) Restore; virtual void(void) Respawn; @@ -246,11 +247,16 @@ func_guntarget::SpawnKey(string strKey, string strValue) } } -void func_guntarget::func_guntarget(void) +void +func_guntarget::Spawned(void) { - m_flSpeed = 100; - super::NSSurfacePropEntity(); + super::Spawned(); if (m_strOnDeath) m_strOnDeath = CreateOutput(m_strOnDeath); } + +void func_guntarget::func_guntarget(void) +{ + m_flSpeed = 100; +} diff --git a/src/gs-entbase/server/func_healthcharger.qc b/src/gs-entbase/server/func_healthcharger.qc index 3f135b7c..ba45bc43 100644 --- a/src/gs-entbase/server/func_healthcharger.qc +++ b/src/gs-entbase/server/func_healthcharger.qc @@ -42,6 +42,7 @@ class func_healthcharger:NSRenderableEntity void(void) func_healthcharger; /* overrides */ + virtual void(void) Spawned; virtual void(float) Save; virtual void(string, string) Restore; virtual void(string, string) SpawnKey; @@ -211,15 +212,19 @@ func_healthcharger::Respawn(void) } void -func_healthcharger::func_healthcharger(void) +func_healthcharger::Spawned(void) { - m_strSndFirst = "items/medshot4.wav"; - m_strSndCharging = "items/medcharge4.wav"; - m_strSndDone = "items/medshotno1.wav"; - - super::NSRenderableEntity(); + super::Spawned(); precache_sound(m_strSndFirst); precache_sound(m_strSndCharging); precache_sound(m_strSndDone); } + +void +func_healthcharger::func_healthcharger(void) +{ + m_strSndFirst = "items/medshot4.wav"; + m_strSndCharging = "items/medcharge4.wav"; + m_strSndDone = "items/medshotno1.wav"; +} diff --git a/src/gs-entbase/server/func_lod.qc b/src/gs-entbase/server/func_lod.qc index 75a2458c..d616568c 100644 --- a/src/gs-entbase/server/func_lod.qc +++ b/src/gs-entbase/server/func_lod.qc @@ -53,5 +53,4 @@ func_lod::Respawn(void) void func_lod::func_lod(void) { - super::NSEntity(); } diff --git a/src/gs-entbase/server/func_mortar_field.qc b/src/gs-entbase/server/func_mortar_field.qc index a8b621cf..1016ba32 100644 --- a/src/gs-entbase/server/func_mortar_field.qc +++ b/src/gs-entbase/server/func_mortar_field.qc @@ -236,5 +236,4 @@ func_mortar_field::SpawnKey(string strKey, string strValue) void func_mortar_field::func_mortar_field(void) { - super::NSBrushTrigger(); } diff --git a/src/gs-entbase/server/func_pendulum.qc b/src/gs-entbase/server/func_pendulum.qc index 558737db..2e1eec7c 100644 --- a/src/gs-entbase/server/func_pendulum.qc +++ b/src/gs-entbase/server/func_pendulum.qc @@ -167,5 +167,4 @@ func_pendulum::SpawnKey(string strKey, string strValue) void func_pendulum::func_pendulum(void) { - super::NSRenderableEntity(); } diff --git a/src/gs-entbase/server/func_physbox.qc b/src/gs-entbase/server/func_physbox.qc index 8322b7e0..ad203946 100644 --- a/src/gs-entbase/server/func_physbox.qc +++ b/src/gs-entbase/server/func_physbox.qc @@ -56,7 +56,6 @@ func_physbox::SpawnKey(string strKey, string strValue) void func_physbox::func_physbox(void) { - super::NSPhysicsEntity(); } #else class func_physbox:NSSurfacePropEntity @@ -84,7 +83,6 @@ func_physbox::Respawn(void) void func_physbox::func_physbox(void) { - super::NSSurfacePropEntity(); } #endif diff --git a/src/gs-entbase/server/func_plat.qc b/src/gs-entbase/server/func_plat.qc index 65c0244d..12b7a525 100644 --- a/src/gs-entbase/server/func_plat.qc +++ b/src/gs-entbase/server/func_plat.qc @@ -193,5 +193,4 @@ void func_plat::func_plat(void) { m_flSpeed = 100.0f; - super::NSRenderableEntity(); } diff --git a/src/gs-entbase/server/func_platrot.qc b/src/gs-entbase/server/func_platrot.qc index 446cbbd4..13b47094 100644 --- a/src/gs-entbase/server/func_platrot.qc +++ b/src/gs-entbase/server/func_platrot.qc @@ -237,5 +237,4 @@ void func_platrot::func_platrot(void) { m_flSpeed = 100.0f; - super::NSRenderableEntity(); } \ No newline at end of file diff --git a/src/gs-entbase/server/func_pushable.qc b/src/gs-entbase/server/func_pushable.qc index bc7d5420..1860c7b0 100644 --- a/src/gs-entbase/server/func_pushable.qc +++ b/src/gs-entbase/server/func_pushable.qc @@ -170,5 +170,4 @@ func_pushable::Respawn(void) void func_pushable::func_pushable(void) { - super::func_breakable(); } diff --git a/src/gs-entbase/server/func_recharge.qc b/src/gs-entbase/server/func_recharge.qc index 75d54152..f3c0f9e7 100644 --- a/src/gs-entbase/server/func_recharge.qc +++ b/src/gs-entbase/server/func_recharge.qc @@ -42,6 +42,7 @@ class func_recharge:NSRenderableEntity void(void) func_recharge; /* overrides */ + virtual void(void) Spawned; virtual void(float) Save; virtual void(string, string) Restore; virtual void(string, string) SpawnKey; @@ -217,15 +218,19 @@ func_recharge::Respawn(void) } void -func_recharge::func_recharge(void) +func_recharge::Spawned(void) { - m_strSndFirst = "items/suitchargeok1.wav"; - m_strSndCharging = "items/suitcharge1.wav"; - m_strSndDone = "items/suitchargeno1.wav"; - - super::NSRenderableEntity(); + super::Spawned(); precache_sound(m_strSndFirst); precache_sound(m_strSndCharging); precache_sound(m_strSndDone); } + +void +func_recharge::func_recharge(void) +{ + m_strSndFirst = "items/suitchargeok1.wav"; + m_strSndCharging = "items/suitcharge1.wav"; + m_strSndDone = "items/suitchargeno1.wav"; +} diff --git a/src/gs-entbase/server/func_rot_button.qc b/src/gs-entbase/server/func_rot_button.qc index b361f44b..6ce5cda3 100644 --- a/src/gs-entbase/server/func_rot_button.qc +++ b/src/gs-entbase/server/func_rot_button.qc @@ -269,5 +269,4 @@ func_rot_button::SpawnKey(string strKey, string strValue) void func_rot_button::func_rot_button(void) { - super::NSRenderableEntity(); } diff --git a/src/gs-entbase/server/func_rotating.qc b/src/gs-entbase/server/func_rotating.qc index 436aa502..3fd17629 100644 --- a/src/gs-entbase/server/func_rotating.qc +++ b/src/gs-entbase/server/func_rotating.qc @@ -238,6 +238,4 @@ void func_rotating::func_rotating(void) { m_flSpeed = 100; - super::NSRenderableEntity(); - Respawn(); } diff --git a/src/gs-entbase/server/func_tank.qc b/src/gs-entbase/server/func_tank.qc index 15b20cf0..ed0f39ed 100644 --- a/src/gs-entbase/server/func_tank.qc +++ b/src/gs-entbase/server/func_tank.qc @@ -89,6 +89,7 @@ class func_tank:NSVehicle void(void) func_tank; + virtual void(void) Spawned; virtual void(float) Save; virtual void(string, string) Restore; virtual void(void) customphysics; @@ -337,13 +338,18 @@ func_tank::SpawnKey(string strKey, string strValue) } void -func_tank::func_tank(void) +func_tank::Spawned(void) { - m_iVehicleFlags |= VHF_FROZEN | VHF_NOATTACK; - super::NSVehicle(); + super::Spawned(); if (m_strSpriteFlash) precache_model(m_strSpriteFlash); if (m_strSpriteSmoke) precache_model(m_strSpriteSmoke); } + +void +func_tank::func_tank(void) +{ + m_iVehicleFlags |= VHF_FROZEN | VHF_NOATTACK; +} diff --git a/src/gs-entbase/server/func_tankcontrols.qc b/src/gs-entbase/server/func_tankcontrols.qc index 9ca3c9bf..c8a3a641 100644 --- a/src/gs-entbase/server/func_tankcontrols.qc +++ b/src/gs-entbase/server/func_tankcontrols.qc @@ -72,5 +72,4 @@ func_tankcontrols::Respawn(void) void func_tankcontrols::func_tankcontrols(void) { - super::NSBrushTrigger(); } diff --git a/src/gs-entbase/server/func_tracktrain.qc b/src/gs-entbase/server/func_tracktrain.qc index 53030ddd..aac21bf7 100644 --- a/src/gs-entbase/server/func_tracktrain.qc +++ b/src/gs-entbase/server/func_tracktrain.qc @@ -63,6 +63,7 @@ class func_tracktrain:NSRenderableEntity void(void) func_tracktrain; + virtual void(void) Spawned; virtual void(float) Save; virtual void(string, string) Restore; virtual void(entity, int) Trigger; @@ -347,16 +348,20 @@ func_tracktrain::SpawnKey(string strKey, string strValue) } } +void +func_tracktrain::Spawned(void) +{ + super::Spawned(); + + if (m_strMoveSnd) + Sound_Precache(m_strMoveSnd); + if (m_strStopSnd) + Sound_Precache(m_strStopSnd); +} + void func_tracktrain::func_tracktrain(void) { /* FIXME: This is all decided by the first path_corner pretty much */ m_flSpeed = 100; - super::NSRenderableEntity(); - - if (m_strMoveSnd) - Sound_Precache(m_strMoveSnd); - - if (m_strStopSnd) - Sound_Precache(m_strStopSnd); } diff --git a/src/gs-entbase/server/func_tracktraincontrols.qc b/src/gs-entbase/server/func_tracktraincontrols.qc index 7c2f56ad..9a1f2524 100644 --- a/src/gs-entbase/server/func_tracktraincontrols.qc +++ b/src/gs-entbase/server/func_tracktraincontrols.qc @@ -43,5 +43,4 @@ func_traincontrols::Respawn(void) void func_traincontrols::func_traincontrols(void) { - super::NSBrushTrigger(); } diff --git a/src/gs-entbase/server/func_train.qc b/src/gs-entbase/server/func_train.qc index e881501b..80fec552 100644 --- a/src/gs-entbase/server/func_train.qc +++ b/src/gs-entbase/server/func_train.qc @@ -64,6 +64,8 @@ class func_train:NSRenderableEntity void(void) func_train; + virtual void(void) Spawned; + /* overrides */ virtual void(float) Save; virtual void(string, string) Restore; @@ -298,16 +300,20 @@ func_train::SpawnKey(string strKey, string strValue) } } +void +func_train::Spawned(void) +{ + super::Spawned(); + + if (m_strMoveSnd) + Sound_Precache(m_strMoveSnd); + if (m_strStopSnd) + Sound_Precache(m_strStopSnd); +} + void func_train::func_train(void) { /* FIXME: This is all decided by the first path_corner pretty much */ m_flSpeed = 100; - super::NSRenderableEntity(); - - if (m_strMoveSnd) - Sound_Precache(m_strMoveSnd); - - if (m_strStopSnd) - Sound_Precache(m_strStopSnd); } diff --git a/src/gs-entbase/server/func_vehicle.qc b/src/gs-entbase/server/func_vehicle.qc index 6b190a45..ba22be27 100644 --- a/src/gs-entbase/server/func_vehicle.qc +++ b/src/gs-entbase/server/func_vehicle.qc @@ -579,8 +579,6 @@ func_vehicle::func_vehicle(void) m_vecGravityDir = [0,0,-1]; m_iVehicleFlags |= VHF_FROZEN; - super::NSVehicle(); - m_wlFL = spawn(func_vehicle_wheel); m_wlFR = spawn(func_vehicle_wheel); m_wlBL = spawn(func_vehicle_wheel); diff --git a/src/gs-entbase/server/func_wall_toggle.qc b/src/gs-entbase/server/func_wall_toggle.qc index 83745fb7..5fb80f8e 100644 --- a/src/gs-entbase/server/func_wall_toggle.qc +++ b/src/gs-entbase/server/func_wall_toggle.qc @@ -85,7 +85,7 @@ func_wall_toggle::Trigger(entity act, int state) if (m_iVisible) { SetSolid(SOLID_BSP); - SetModelindex(m_oldmodelindex); + SetModel(GetSpawnModel()); } else { SetSolid(SOLID_NOT); SetModelindex(0); @@ -124,5 +124,4 @@ func_wall_toggle::Input(entity eAct, string strInput, string strData) void func_wall_toggle::func_wall_toggle(void) { - super::NSRenderableEntity(); } diff --git a/src/gs-entbase/server/game_counter.qc b/src/gs-entbase/server/game_counter.qc index 87c5c48a..75ea6edc 100644 --- a/src/gs-entbase/server/game_counter.qc +++ b/src/gs-entbase/server/game_counter.qc @@ -146,5 +146,4 @@ void game_counter::game_counter(void) { m_iStartCount = 0; - super::NSPointTrigger(); } diff --git a/src/gs-entbase/server/game_counter_set.qc b/src/gs-entbase/server/game_counter_set.qc index 0e6ebe63..efd04f65 100644 --- a/src/gs-entbase/server/game_counter_set.qc +++ b/src/gs-entbase/server/game_counter_set.qc @@ -112,5 +112,4 @@ void game_counter_set::game_counter_set(void) { m_iCount = 0; - super::NSPointTrigger(); } diff --git a/src/gs-entbase/server/game_player_equip.qc b/src/gs-entbase/server/game_player_equip.qc index 815df107..d509a214 100644 --- a/src/gs-entbase/server/game_player_equip.qc +++ b/src/gs-entbase/server/game_player_equip.qc @@ -155,5 +155,4 @@ game_player_equip::SpawnKey(string strKey, string strValue) void game_player_equip::game_player_equip(void) { - super::NSPointTrigger(); } diff --git a/src/gs-entbase/server/game_text.qc b/src/gs-entbase/server/game_text.qc index 4efb4e7d..7801d404 100644 --- a/src/gs-entbase/server/game_text.qc +++ b/src/gs-entbase/server/game_text.qc @@ -194,5 +194,4 @@ game_text::SpawnKey(string strKey, string strValue) void game_text::game_text(void) { - super::NSPointTrigger(); } diff --git a/src/gs-entbase/server/gibshooter.qc b/src/gs-entbase/server/gibshooter.qc index c3c57031..ed2fe12f 100644 --- a/src/gs-entbase/server/gibshooter.qc +++ b/src/gs-entbase/server/gibshooter.qc @@ -47,5 +47,4 @@ void gibshooter2::gibshooter2(void) m_flScale = 1.0; precache_model(m_strShootModel); - super::env_shooter(); } diff --git a/src/gs-entbase/server/info_intermission.qc b/src/gs-entbase/server/info_intermission.qc index 9c6bb784..c24f1a93 100644 --- a/src/gs-entbase/server/info_intermission.qc +++ b/src/gs-entbase/server/info_intermission.qc @@ -39,5 +39,4 @@ class info_intermission:NSPointTrigger void info_intermission::info_intermission(void) { - super::NSPointTrigger(); } diff --git a/src/gs-entbase/server/info_notnull.qc b/src/gs-entbase/server/info_notnull.qc index d4491660..8ea9118b 100644 --- a/src/gs-entbase/server/info_notnull.qc +++ b/src/gs-entbase/server/info_notnull.qc @@ -40,5 +40,4 @@ class info_notnull:NSPointTrigger void info_notnull::info_notnull(void) { - super::NSPointTrigger(); } diff --git a/src/gs-entbase/server/info_null.qc b/src/gs-entbase/server/info_null.qc index f91438dc..520624e6 100644 --- a/src/gs-entbase/server/info_null.qc +++ b/src/gs-entbase/server/info_null.qc @@ -68,9 +68,7 @@ info_null::Respawn(void) void info_null::info_null(void) { -#ifdef DEBUG_INFONULL - super::NSPointTrigger(); -#else +#ifndef DEBUG_INFONULL remove(self); #endif } diff --git a/src/gs-entbase/server/infodecal.qc b/src/gs-entbase/server/infodecal.qc index 64081c9a..58143f58 100644 --- a/src/gs-entbase/server/infodecal.qc +++ b/src/gs-entbase/server/infodecal.qc @@ -141,6 +141,4 @@ infodecal::infodecal(void) remove(self); return; } - - super::NSPointTrigger(); } diff --git a/src/gs-entbase/server/light.qc b/src/gs-entbase/server/light.qc index 7476de40..69ef207c 100644 --- a/src/gs-entbase/server/light.qc +++ b/src/gs-entbase/server/light.qc @@ -247,8 +247,6 @@ light::light(void) m_flStyle = 0; m_flSwitchStyle = 0; - super::NSPointTrigger(); - /* switch styles before 12 are builtins from Quake. */ if (m_flSwitchStyle > 0 && m_flSwitchStyle <= 11) { m_strPattern = getlightstyle(m_flSwitchStyle); diff --git a/src/gs-entbase/server/logic_auto.qc b/src/gs-entbase/server/logic_auto.qc index a8b6e07b..c94dcbcf 100644 --- a/src/gs-entbase/server/logic_auto.qc +++ b/src/gs-entbase/server/logic_auto.qc @@ -66,6 +66,7 @@ class logic_auto:NSPointTrigger void(void) logic_auto; /* overrides */ + virtual void(void) Spawned; virtual void(float) Save; virtual void(string, string) Restore; virtual void(void) Respawn; @@ -204,11 +205,9 @@ logic_auto::SpawnKey(string strKey, string strValue) } void -logic_auto::logic_auto(void) +logic_auto::Spawned(void) { - m_iFromSaveGame = 0; - - super::NSPointTrigger(); + super::Spawned(); if (m_strOnMapSpawn) m_strOnMapSpawn = CreateOutput(m_strOnMapSpawn); @@ -225,3 +224,9 @@ logic_auto::logic_auto(void) if (m_strOnMultiNewRound) m_strOnMultiNewRound = CreateOutput(m_strOnMultiNewRound); } + +void +logic_auto::logic_auto(void) +{ + m_iFromSaveGame = 0; +} diff --git a/src/gs-entbase/server/momentary_door.qc b/src/gs-entbase/server/momentary_door.qc index 2ee43282..68ca2a40 100644 --- a/src/gs-entbase/server/momentary_door.qc +++ b/src/gs-entbase/server/momentary_door.qc @@ -138,5 +138,4 @@ momentary_door::SpawnKey(string strKey, string strValue) void momentary_door::momentary_door(void) { - super::NSMomentary(); } diff --git a/src/gs-entbase/server/momentary_rot_button.qc b/src/gs-entbase/server/momentary_rot_button.qc index e9208499..d97b8225 100644 --- a/src/gs-entbase/server/momentary_rot_button.qc +++ b/src/gs-entbase/server/momentary_rot_button.qc @@ -263,5 +263,4 @@ void momentary_rot_button::momentary_rot_button(void) { m_flReturnspeed = m_flSpeed = -1; - super::NSMomentary(); } diff --git a/src/gs-entbase/server/momentarybase.qc b/src/gs-entbase/server/momentarybase.qc index 6c7b3bc9..40053acc 100644 --- a/src/gs-entbase/server/momentarybase.qc +++ b/src/gs-entbase/server/momentarybase.qc @@ -121,5 +121,4 @@ NSMomentary::Restore(string strKey, string strValue) void NSMomentary::NSMomentary(void) { - super::NSRenderableEntity(); } diff --git a/src/gs-entbase/server/monster_furniture.qc b/src/gs-entbase/server/monster_furniture.qc index f7e9186a..7b1b4c9d 100644 --- a/src/gs-entbase/server/monster_furniture.qc +++ b/src/gs-entbase/server/monster_furniture.qc @@ -58,7 +58,6 @@ monster_furniture::Respawn(void) void monster_furniture::monster_furniture(void) { - super::NSMonster(); spawnflags |= MSF_MULTIPLAYER; } diff --git a/src/gs-entbase/server/monster_generic.qc b/src/gs-entbase/server/monster_generic.qc index 3562991e..09743968 100644 --- a/src/gs-entbase/server/monster_generic.qc +++ b/src/gs-entbase/server/monster_generic.qc @@ -64,5 +64,4 @@ monster_generic::monster_generic(void) base_health = 100; spawnflags |= MSF_MULTIPLAYER; - super::NSTalkMonster(); } diff --git a/src/gs-entbase/server/monstermaker.qc b/src/gs-entbase/server/monstermaker.qc index 3e194757..c9d56d04 100644 --- a/src/gs-entbase/server/monstermaker.qc +++ b/src/gs-entbase/server/monstermaker.qc @@ -271,5 +271,4 @@ void monstermaker::monstermaker(void) { m_flDelay = 1.0f; - super::NSPointTrigger(); } diff --git a/src/gs-entbase/server/multi_manager.qc b/src/gs-entbase/server/multi_manager.qc index dc37a4ed..efa0ba88 100644 --- a/src/gs-entbase/server/multi_manager.qc +++ b/src/gs-entbase/server/multi_manager.qc @@ -78,7 +78,9 @@ multi_manager_sub::Restore(string strKey, string strValue) void multi_manager_sub::multi_manager_sub(void) { - super::NSPointTrigger(); + m_eActivator = __NULL__; + m_iValue = 0; + m_flUntilTriggered = 0.0f; } class multi_manager:NSPointTrigger @@ -88,6 +90,8 @@ class multi_manager:NSPointTrigger int m_iBusy; int m_iValue; + virtual void(void) Spawned; + /* overrides */ virtual void(entity, int) Trigger; virtual void(string, string) SpawnKey; @@ -251,6 +255,9 @@ multi_manager::SpawnKey(string strKey, string strValue) case "spawnflags": case "angle": case "angles": + case "target": + case "spawnflags": + super::SpawnKey(strKey, strValue); break; default: if (substring(strKey, strlen(strKey) - 3, 1) == "#") { @@ -272,13 +279,12 @@ multi_manager::SpawnKey(string strKey, string strValue) } void -multi_manager::multi_manager(void) +multi_manager::Spawned(void) { int iFields; int b; - m_strBuffer = ""; - super::NSPointTrigger(); + super::Spawned(); for (b = 0; b < 16; b++) { m_eTriggers[b] = spawn(multi_manager_sub); @@ -304,3 +310,14 @@ multi_manager::multi_manager(void) } } } + +void +multi_manager::multi_manager(void) +{ + for (int i = 0; i < 16; i++) + m_eTriggers[i] = __NULL__; + + m_strBuffer = __NULL__; + m_iBusy = + m_iValue = 0; +} diff --git a/src/gs-entbase/server/multisource.qc b/src/gs-entbase/server/multisource.qc index 7a1d3037..ef57c5d8 100644 --- a/src/gs-entbase/server/multisource.qc +++ b/src/gs-entbase/server/multisource.qc @@ -143,5 +143,4 @@ void multisource::multisource(void) { m_strGlobalState = __NULL__; - super::NSPointTrigger(); } diff --git a/src/gs-entbase/server/path_corner.qc b/src/gs-entbase/server/path_corner.qc index fec55007..a74a6a52 100644 --- a/src/gs-entbase/server/path_corner.qc +++ b/src/gs-entbase/server/path_corner.qc @@ -146,5 +146,4 @@ path_corner::path_corner(void) { m_flWait = 1.0f; m_flSpeed = 100.0f; - super::NSPointTrigger(); } diff --git a/src/gs-entbase/server/player_loadsaved.qc b/src/gs-entbase/server/player_loadsaved.qc index b6fa2dec..03966bb9 100644 --- a/src/gs-entbase/server/player_loadsaved.qc +++ b/src/gs-entbase/server/player_loadsaved.qc @@ -140,5 +140,4 @@ player_loadsaved::SpawnKey(string strKey, string strValue) void player_loadsaved::player_loadsaved(void) { - super::NSRenderableEntity(); } diff --git a/src/gs-entbase/server/player_weaponstrip.qc b/src/gs-entbase/server/player_weaponstrip.qc index 9bed1406..18b075e6 100644 --- a/src/gs-entbase/server/player_weaponstrip.qc +++ b/src/gs-entbase/server/player_weaponstrip.qc @@ -51,5 +51,4 @@ player_weaponstrip::Trigger(entity act, int unused) void player_weaponstrip::player_weaponstrip(void) { - super::NSPointTrigger(); } diff --git a/src/gs-entbase/server/point_camera.qc b/src/gs-entbase/server/point_camera.qc index 1566c72b..4185fab9 100644 --- a/src/gs-entbase/server/point_camera.qc +++ b/src/gs-entbase/server/point_camera.qc @@ -166,6 +166,4 @@ void point_camera::point_camera(void) { m_flFOV = 90; - - super::NSPointTrigger(); } diff --git a/src/gs-entbase/server/prop_door_rotating.qc b/src/gs-entbase/server/prop_door_rotating.qc index 1b11cd98..68ad424b 100644 --- a/src/gs-entbase/server/prop_door_rotating.qc +++ b/src/gs-entbase/server/prop_door_rotating.qc @@ -164,5 +164,4 @@ prop_door_rotating::prop_door_rotating(void) { m_flDistance = 90; m_flSpeed = 100; - super::NSPointTrigger(); } diff --git a/src/gs-entbase/server/prop_dynamic.qc b/src/gs-entbase/server/prop_dynamic.qc index 78db8c5f..10bfbe91 100644 --- a/src/gs-entbase/server/prop_dynamic.qc +++ b/src/gs-entbase/server/prop_dynamic.qc @@ -74,5 +74,4 @@ prop_dynamic::SpawnKey(string strKey, string strValue) void prop_dynamic::prop_dynamic(void) { - super::NSSurfacePropEntity(); } diff --git a/src/gs-entbase/server/prop_physics.qc b/src/gs-entbase/server/prop_physics.qc index 81723c93..0a632f24 100644 --- a/src/gs-entbase/server/prop_physics.qc +++ b/src/gs-entbase/server/prop_physics.qc @@ -56,7 +56,6 @@ prop_physics::SpawnKey(string strKey, string strValue) void prop_physics::prop_physics(void) { - super::NSPhysicsEntity(); } #else class prop_physics:NSRenderableEntity @@ -75,6 +74,5 @@ prop_physics::Respawn(void) void prop_physics::prop_physics(void) { - super::NSRenderableEntity(); } #endif diff --git a/src/gs-entbase/server/prop_static.qc b/src/gs-entbase/server/prop_static.qc index 44a987c2..aa2ae486 100644 --- a/src/gs-entbase/server/prop_static.qc +++ b/src/gs-entbase/server/prop_static.qc @@ -48,17 +48,15 @@ class prop_static:NSRenderableEntity void prop_static::Respawn(void) { - //super::Respawn(); - solid = SOLID_NOT; - setmodel(this, GetSpawnModel()); + SetSolid(SOLID_NOT); + SetModel(GetSpawnModel()); mins = [0,0,0]; maxs = [0,0,0]; - setsize(this, mins, maxs); - setorigin(this, GetSpawnOrigin()); + SetSize(mins, maxs); + SetOrigin(GetSpawnOrigin()); } void prop_static::prop_static(void) { - super::NSRenderableEntity(); } diff --git a/src/gs-entbase/server/random_speaker.qc b/src/gs-entbase/server/random_speaker.qc index eef4d5e9..ad9f34e2 100644 --- a/src/gs-entbase/server/random_speaker.qc +++ b/src/gs-entbase/server/random_speaker.qc @@ -184,5 +184,8 @@ random_speaker::SpawnKey(string strKey, string strValue) void random_speaker::random_speaker(void) { - super::NSPointTrigger(); + m_strSample = __NULL__; + m_flVolume = 1.0f; + m_flMinPos = 0.0f; + m_flRandPercent = 0.0f; } diff --git a/src/gs-entbase/server/random_trigger.qc b/src/gs-entbase/server/random_trigger.qc index 414002a4..aaf1aec5 100644 --- a/src/gs-entbase/server/random_trigger.qc +++ b/src/gs-entbase/server/random_trigger.qc @@ -121,5 +121,4 @@ random_trigger::SpawnKey(string strKey, string strValue) void random_trigger::random_trigger(void) { - super::NSPointTrigger(); } diff --git a/src/gs-entbase/server/scripted_sentence.qc b/src/gs-entbase/server/scripted_sentence.qc index 7fcc6259..986037bd 100644 --- a/src/gs-entbase/server/scripted_sentence.qc +++ b/src/gs-entbase/server/scripted_sentence.qc @@ -155,5 +155,4 @@ scripted_sentence::SpawnKey(string strKey, string strValue) void scripted_sentence::scripted_sentence(void) { - super::NSPointTrigger(); } diff --git a/src/gs-entbase/server/scripted_sequence.qc b/src/gs-entbase/server/scripted_sequence.qc index 2fd4964d..a02483c1 100644 --- a/src/gs-entbase/server/scripted_sequence.qc +++ b/src/gs-entbase/server/scripted_sequence.qc @@ -386,7 +386,6 @@ scripted_sequence::SpawnKey(string strKey, string strValue) void scripted_sequence::scripted_sequence(void) { - super::NSPointTrigger(); } CLASSEXPORT(aiscripted_sequence, scripted_sequence) diff --git a/src/gs-entbase/server/speaker.qc b/src/gs-entbase/server/speaker.qc index a9d7bc99..18765f13 100644 --- a/src/gs-entbase/server/speaker.qc +++ b/src/gs-entbase/server/speaker.qc @@ -172,5 +172,6 @@ speaker::SpawnKey(string strKey, string strValue) void speaker::speaker(void) { - super::NSTalkMonster(); + m_strSentence = __NULL__; + m_flVolume = 1.0f; } diff --git a/src/gs-entbase/server/stubs.qc b/src/gs-entbase/server/stubs.qc index e1b986b5..83da8743 100644 --- a/src/gs-entbase/server/stubs.qc +++ b/src/gs-entbase/server/stubs.qc @@ -80,6 +80,12 @@ CLASSEXPORT(env_sound, info_notnull) CLASSEXPORT(env_sun, info_notnull) CLASSEXPORT(info_intermission, info_notnull) +CLASSEXPORT(prop_static, info_null) +CLASSEXPORT(func_dustmotes, info_null) +CLASSEXPORT(env_soundscape, info_null) +CLASSEXPORT(env_cubemap, info_null) +CLASSEXPORT(sky_camera, info_null) + void env_glow(void) { diff --git a/src/gs-entbase/server/targ_speaker.qc b/src/gs-entbase/server/targ_speaker.qc index 402989a2..0592e402 100644 --- a/src/gs-entbase/server/targ_speaker.qc +++ b/src/gs-entbase/server/targ_speaker.qc @@ -103,5 +103,4 @@ targ_speaker::Respawn(void) void targ_speaker::targ_speaker(void) { - super::NSPointTrigger(); } diff --git a/src/gs-entbase/server/target_cdaudio.qc b/src/gs-entbase/server/target_cdaudio.qc index 321ad39b..11008373 100644 --- a/src/gs-entbase/server/target_cdaudio.qc +++ b/src/gs-entbase/server/target_cdaudio.qc @@ -112,5 +112,6 @@ target_cdaudio::SpawnKey(string strKey, string strValue) void target_cdaudio::target_cdaudio(void) { - super::NSPointTrigger(); + m_flRadius = 0.0f; + m_iCDTrack = 0; } diff --git a/src/gs-entbase/server/trigger_auto.qc b/src/gs-entbase/server/trigger_auto.qc index e642c047..4a8a27de 100644 --- a/src/gs-entbase/server/trigger_auto.qc +++ b/src/gs-entbase/server/trigger_auto.qc @@ -87,6 +87,7 @@ trigger_auto::Processing(void) return; UseTargets(this, m_iTriggerState, m_flDelay); + print(sprintf("%S %i %f\n", target, m_iTriggerState, m_flDelay)); if (HasSpawnFlags(1)) { NSLog("^2trigger_auto::^3think^7: %s triggerer removed self", target); @@ -97,6 +98,8 @@ trigger_auto::Processing(void) void trigger_auto::Respawn(void) { + InitPointTrigger(); + think = Processing; nextthink = time + 0.2f; } @@ -111,6 +114,9 @@ trigger_auto::SpawnKey(string strKey, string strValue) case "triggerstate": m_iTriggerState = stoi(strValue); break; + case "delay": + m_flDelay = stof(strValue); + break; default: super::SpawnKey(strKey, strValue); } @@ -121,6 +127,6 @@ trigger_auto::trigger_auto(void) { /* default is always toggle */ m_iTriggerState = TRIG_TOGGLE; - - super::NSPointTrigger(); + m_strGlobalState = __NULL__; + m_flDelay = 0.0f; } diff --git a/src/gs-entbase/server/trigger_autosave.qc b/src/gs-entbase/server/trigger_autosave.qc index 4ec08586..7d8b7269 100644 --- a/src/gs-entbase/server/trigger_autosave.qc +++ b/src/gs-entbase/server/trigger_autosave.qc @@ -95,5 +95,5 @@ trigger_autosave::trigger_autosave(void) return; } - super::NSBrushTrigger(); + m_flDelay = 0.0f; } diff --git a/src/gs-entbase/server/trigger_cdaudio.qc b/src/gs-entbase/server/trigger_cdaudio.qc index 2d86ef27..3fe11406 100644 --- a/src/gs-entbase/server/trigger_cdaudio.qc +++ b/src/gs-entbase/server/trigger_cdaudio.qc @@ -105,5 +105,5 @@ trigger_cdaudio::SpawnKey(string strKey, string strValue) void trigger_cdaudio::trigger_cdaudio(void) { - super::NSBrushTrigger(); + m_iCDTrack = 0; } diff --git a/src/gs-entbase/server/trigger_changelevel.qc b/src/gs-entbase/server/trigger_changelevel.qc index aa12f47c..7e417cad 100644 --- a/src/gs-entbase/server/trigger_changelevel.qc +++ b/src/gs-entbase/server/trigger_changelevel.qc @@ -81,6 +81,7 @@ class trigger_changelevel:NSBrushTrigger void(void) trigger_changelevel; /* overrides */ + virtual void(void) Spawned; virtual void(float) Save; virtual void(string, string) Restore; virtual void(entity, int) Trigger; @@ -267,16 +268,20 @@ trigger_changelevel::SpawnKey(string strKey, string strValue) } void -trigger_changelevel::trigger_changelevel(void) +trigger_changelevel::Spawned(void) { - m_strChangeTarget = __NULL__; - - super::NSBrushTrigger(); + super::Spawned(); if (m_strOnLevelChange) m_strOnLevelChange = CreateOutput(m_strOnLevelChange); } +void +trigger_changelevel::trigger_changelevel(void) +{ + m_strChangeTarget = __NULL__; +} + vector Landmark_GetSpot(void) { diff --git a/src/gs-entbase/server/trigger_changetarget.qc b/src/gs-entbase/server/trigger_changetarget.qc index b3c49736..6e90ced0 100644 --- a/src/gs-entbase/server/trigger_changetarget.qc +++ b/src/gs-entbase/server/trigger_changetarget.qc @@ -90,5 +90,5 @@ trigger_changetarget::SpawnKey(string strKey, string strValue) void trigger_changetarget::trigger_changetarget(void) { - super::NSPointTrigger(); + m_strNewTarget = __NULL__; } diff --git a/src/gs-entbase/server/trigger_counter.qc b/src/gs-entbase/server/trigger_counter.qc index b5e2bcc3..47c84283 100644 --- a/src/gs-entbase/server/trigger_counter.qc +++ b/src/gs-entbase/server/trigger_counter.qc @@ -134,5 +134,6 @@ trigger_counter::SpawnKey(string strKey, string strValue) void trigger_counter::trigger_counter(void) { - super::NSBrushTrigger(); + m_iCounted = 0; + m_iMaxCount = 0; } diff --git a/src/gs-entbase/server/trigger_endsection.qc b/src/gs-entbase/server/trigger_endsection.qc index 810c9cc5..7c07dd33 100644 --- a/src/gs-entbase/server/trigger_endsection.qc +++ b/src/gs-entbase/server/trigger_endsection.qc @@ -51,5 +51,4 @@ trigger_endsection::Respawn(void) void trigger_endsection::trigger_endsection(void) { - super::NSBrushTrigger(); } diff --git a/src/gs-entbase/server/trigger_hurt.qc b/src/gs-entbase/server/trigger_hurt.qc index e19a599d..119ae4d9 100644 --- a/src/gs-entbase/server/trigger_hurt.qc +++ b/src/gs-entbase/server/trigger_hurt.qc @@ -77,6 +77,7 @@ class trigger_hurt:NSBrushTrigger void(void) trigger_hurt; + virtual void(void) Spawned; virtual void(float) Save; virtual void(string, string) Restore; virtual void(entity, int) Trigger; @@ -262,13 +263,9 @@ trigger_hurt::SpawnKey(string strKey, string strValue) } void -trigger_hurt::trigger_hurt(void) +trigger_hurt::Spawned(void) { - /* defaults */ - m_iDamage = 15; - m_flNextDmg = 0.5f; - - super::NSBrushTrigger(); + super::Spawned(); if (m_strOnHurt) m_strOnHurt = CreateOutput(m_strOnHurt); @@ -276,3 +273,11 @@ trigger_hurt::trigger_hurt(void) if (m_strOnHurtPlayer) m_strOnHurtPlayer = CreateOutput(m_strOnHurtPlayer); } + +void +trigger_hurt::trigger_hurt(void) +{ + /* defaults */ + m_iDamage = 15; + m_flNextDmg = 0.5f; +} diff --git a/src/gs-entbase/server/trigger_look.qc b/src/gs-entbase/server/trigger_look.qc index c9d32ae0..bbc6d763 100644 --- a/src/gs-entbase/server/trigger_look.qc +++ b/src/gs-entbase/server/trigger_look.qc @@ -48,6 +48,7 @@ class trigger_look:NSBrushTrigger void(void) trigger_look; + virtual void(void) Spawned; virtual void(float) Save; virtual void(string, string) Restore; virtual void(entity) Touch; @@ -177,13 +178,17 @@ trigger_look::SpawnKey(string strKey, string strValue) } void -trigger_look::trigger_look(void) +trigger_look::Spawned(void) { - m_flLookTime = 0.5f; - m_flFOV = 0.9f; - - super::NSBrushTrigger(); + super::Spawned(); if (m_strOnTrigger) m_strOnTrigger = CreateOutput(m_strOnTrigger); } + +void +trigger_look::trigger_look(void) +{ + m_flLookTime = 0.5f; + m_flFOV = 0.9f; +} diff --git a/src/gs-entbase/server/trigger_multiple.qc b/src/gs-entbase/server/trigger_multiple.qc index 7b98db17..d0aea378 100644 --- a/src/gs-entbase/server/trigger_multiple.qc +++ b/src/gs-entbase/server/trigger_multiple.qc @@ -55,6 +55,8 @@ class trigger_multiple:NSBrushTrigger void(void) trigger_multiple; + virtual void(void) Spawned; + virtual void(float) Save; virtual void(string, string) Restore; virtual void(entity) Touch; @@ -135,12 +137,6 @@ trigger_multiple::Touch(entity eToucher) SetSolid(SOLID_NOT); } -void -trigger_multiple::Respawn(void) -{ - InitBrushTrigger(); -} - void trigger_multiple::SpawnKey(string strKey, string strValue) { @@ -164,9 +160,15 @@ trigger_multiple::SpawnKey(string strKey, string strValue) } void -trigger_multiple::trigger_multiple(void) +trigger_multiple::Respawn(void) { - super::NSBrushTrigger(); + InitBrushTrigger(); +} + +void +trigger_multiple::Spawned(void) +{ + super::Spawned(); if (m_strOnTrigger) m_strOnTrigger = CreateOutput(m_strOnTrigger); @@ -175,3 +177,14 @@ trigger_multiple::trigger_multiple(void) if (m_strOnEndTouchAll) m_strOnEndTouchAll = CreateOutput(m_strOnEndTouchAll); } + +void +trigger_multiple::trigger_multiple(void) +{ + m_flWait = 0.0f; + + /* Input/Output */ + m_strOnStartTouch = + m_strOnEndTouchAll = + m_strOnTrigger = __NULL__; +} diff --git a/src/gs-entbase/server/trigger_once.qc b/src/gs-entbase/server/trigger_once.qc index 0665f989..cf711163 100644 --- a/src/gs-entbase/server/trigger_once.qc +++ b/src/gs-entbase/server/trigger_once.qc @@ -47,6 +47,8 @@ class trigger_once:NSBrushTrigger void(void) trigger_once; + virtual void(void) Spawned; + virtual void(float) Save; virtual void(string, string) Restore; virtual void(entity) Touch; @@ -125,9 +127,9 @@ trigger_once::SpawnKey(string strKey, string strValue) } void -trigger_once::trigger_once(void) +trigger_once::Spawned(void) { - super::NSBrushTrigger(); + super::Spawned(); if (m_strOnTrigger) m_strOnTrigger = CreateOutput(m_strOnTrigger); @@ -135,3 +137,10 @@ trigger_once::trigger_once(void) if (m_strOnStartTouch) m_strOnStartTouch = CreateOutput(m_strOnStartTouch); } + +void +trigger_once::trigger_once(void) +{ + m_strOnStartTouch = + m_strOnTrigger = __NULL__; +} diff --git a/src/gs-entbase/server/trigger_playerfreeze.qc b/src/gs-entbase/server/trigger_playerfreeze.qc index 4b4bf627..dcacc6c7 100644 --- a/src/gs-entbase/server/trigger_playerfreeze.qc +++ b/src/gs-entbase/server/trigger_playerfreeze.qc @@ -82,5 +82,4 @@ trigger_playerfreeze::Respawn(void) void trigger_playerfreeze::trigger_playerfreeze(void) { - super::NSBrushTrigger(); } diff --git a/src/gs-entbase/server/trigger_push.qc b/src/gs-entbase/server/trigger_push.qc index e3baff0d..8a830522 100644 --- a/src/gs-entbase/server/trigger_push.qc +++ b/src/gs-entbase/server/trigger_push.qc @@ -165,6 +165,6 @@ trigger_push::SpawnKey(string strKey, string strValue) void trigger_push::trigger_push(void) { + m_vecMoveDir = [0,0,0]; m_flSpeed = 100; - super::NSBrushTrigger(); } diff --git a/src/gs-entbase/server/trigger_relay.qc b/src/gs-entbase/server/trigger_relay.qc index f69b45a2..8e5eceb2 100644 --- a/src/gs-entbase/server/trigger_relay.qc +++ b/src/gs-entbase/server/trigger_relay.qc @@ -104,5 +104,6 @@ trigger_relay::SpawnKey(string strKey, string strValue) void trigger_relay::trigger_relay(void) { - super::NSPointTrigger(); + m_iTriggerState = + m_iEnabled = 0; } diff --git a/src/gs-entbase/server/trigger_teleport.qc b/src/gs-entbase/server/trigger_teleport.qc index 5c208e74..2ddf1b9d 100644 --- a/src/gs-entbase/server/trigger_teleport.qc +++ b/src/gs-entbase/server/trigger_teleport.qc @@ -75,7 +75,6 @@ trigger_teleport::Respawn(void) void trigger_teleport::trigger_teleport(void) { - super::NSBrushTrigger(); } /*QUAKED info_teleport_destination (1 0 0) (-8 -8 -8) (8 8 8) diff --git a/src/gs-entbase/server/trigger_transition.qc b/src/gs-entbase/server/trigger_transition.qc index 11106462..b583af02 100644 --- a/src/gs-entbase/server/trigger_transition.qc +++ b/src/gs-entbase/server/trigger_transition.qc @@ -41,5 +41,4 @@ trigger_transition::Respawn(void) void trigger_transition::trigger_transition(void) { - super::NSBrushTrigger(); } diff --git a/src/gs-entbase/shared/NSBrushTrigger.qc b/src/gs-entbase/shared/NSBrushTrigger.qc index 24587051..69ec9090 100644 --- a/src/gs-entbase/shared/NSBrushTrigger.qc +++ b/src/gs-entbase/shared/NSBrushTrigger.qc @@ -27,5 +27,4 @@ NSBrushTrigger::InitBrushTrigger(void) void NSBrushTrigger::NSBrushTrigger(void) { - super::NSEntity(); } \ No newline at end of file diff --git a/src/gs-entbase/shared/NSEntity.h b/src/gs-entbase/shared/NSEntity.h index 6227e627..ccb1b255 100644 --- a/src/gs-entbase/shared/NSEntity.h +++ b/src/gs-entbase/shared/NSEntity.h @@ -53,6 +53,7 @@ class NSEntity:NSTrigger vector m_oldOrigin; vector m_oldAngle; string m_oldModel; + float m_oldSolid; /* keep track of these variables */ PREDICTED_VECTOR_N(origin); @@ -70,6 +71,8 @@ class NSEntity:NSTrigger bool m_beingTouched; entity m_eTouchLast; + virtual void(void) Spawned; + #ifdef CLIENT virtual void(float,float) ReceiveEntity; virtual void(void) postdraw; @@ -87,9 +90,6 @@ class NSEntity:NSTrigger #endif #ifdef SERVER - /* respawn */ - float m_oldSolid; - string m_parent; string m_parent_attachment; diff --git a/src/gs-entbase/shared/NSEntity.qc b/src/gs-entbase/shared/NSEntity.qc index f6c71612..ddea7ad4 100644 --- a/src/gs-entbase/shared/NSEntity.qc +++ b/src/gs-entbase/shared/NSEntity.qc @@ -1010,6 +1010,28 @@ NSEntity::Destroy(void) nextthink = time; }; +void +NSEntity::Spawned(void) +{ + super::Spawned(); + + m_oldAngle = angles; + m_oldOrigin = origin; + m_oldModel = Util_FixModel(model); + m_oldSolid = solid; + +#ifdef SERVER + m_oldstrTarget = target; + + if (m_oldModel) { + precache_model(GetSpawnModel()); + } + + if (m_strOnTrigger) + m_strOnTrigger = CreateOutput(m_strOnTrigger); +#endif +} + /* ============ NSEntity::NSEntity @@ -1021,32 +1043,12 @@ void NSEntity::NSEntity(void) { #ifdef SERVER - /* don't call this function more than once per entity */ - if (identity == 1) - return; - identity = 1; /* .identity is a global ent field we abuse to let find() calls reliably know that those are NSEntity class-based */ - super::NSTrigger(); - - m_oldSolid = solid; blocked = BlockedHandler; touch = TouchHandler; - - /* Input/Output system */ - m_strOnTrigger = CreateOutput(m_strOnTrigger); - - m_oldstrTarget = target; - - if (m_oldModel != "") { - precache_model(GetSpawnModel()); - } #else isCSQC = 1; #endif - - m_oldAngle = angles; - m_oldOrigin = origin; - m_oldModel = Util_FixModel(model); } diff --git a/src/gs-entbase/shared/NSIO.h b/src/gs-entbase/shared/NSIO.h index 1ce5615c..34554d37 100644 --- a/src/gs-entbase/shared/NSIO.h +++ b/src/gs-entbase/shared/NSIO.h @@ -27,8 +27,11 @@ class NSIO void(void) NSIO; virtual void(void) Init; - virtual void(void) Initialized; - + virtual void(void) Spawned; + + /* whenever gamerules want entities to respawn */ + virtual void(void) Respawn; + /* Handle entity key/value pairs on init */ virtual void(string, string) SpawnKey; @@ -45,9 +48,6 @@ class NSIO nonvirtual string(string, string) PrepareOutput; nonvirtual string(string) CreateOutput; - /* whenever gamerules want entities to respawn */ - virtual void(void) Respawn; - virtual void(float) Save; virtual void(string,string) Restore; @@ -68,4 +68,4 @@ class NSIO /* Handle incoming entities input messaging */ virtual void(entity, string, string) Input; #endif -}; \ No newline at end of file +}; diff --git a/src/gs-entbase/shared/NSIO.qc b/src/gs-entbase/shared/NSIO.qc index 16a6a7ad..8af42cf2 100644 --- a/src/gs-entbase/shared/NSIO.qc +++ b/src/gs-entbase/shared/NSIO.qc @@ -14,6 +14,12 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +void +NSIO::Respawn(void) +{ + // Respawn code goes here... +} + #ifdef CLIENT string __fullspawndata; #endif @@ -21,11 +27,7 @@ string __fullspawndata; void NSIO::Init(void) { -#ifdef CLIENT - isCSQC = TRUE; - effects |= EF_NOSHADOW; -#endif - + /* annoylingly our starting offsets differ */ #ifdef CLIENT for (int i = 0; i < (tokenize(__fullspawndata) - 1); i += 2) SpawnKey(argv(i), argv(i+1)); @@ -40,12 +42,22 @@ NSIO::Init(void) inherit stuff from the last previously loaded entity */ __fullspawndata = ""; #endif - Initialized(); + Spawned(); } void -NSIO::Initialized(void) +NSIO::Spawned(void) { +#ifdef SERVER + if (m_strOnUser1) + m_strOnUser1 = CreateOutput(m_strOnUser1); + if (m_strOnUser2) + m_strOnUser2 = CreateOutput(m_strOnUser2); + if (m_strOnUser3) + m_strOnUser3 = CreateOutput(m_strOnUser3); + if (m_strOnUser4) + m_strOnUser4 = CreateOutput(m_strOnUser4); +#endif } #ifdef SERVER @@ -80,10 +92,10 @@ NSIO::CreateOutput(string outmsg) string outname = ""; float c; - if (!outmsg) - return (""); + if not (outmsg) + error("Cannot assign EMPTY contents to CreateOutput!"); - outname = sprintf("output_%i\n", outcount); + outname = sprintf("output_%i", outcount); outcount++; /* to make sure tokenize 'remembers' to tell us about the commonly @@ -153,12 +165,6 @@ NSIO::Input(entity eAct, string strInput, string strData) } } -void -NSIO::Respawn(void) -{ - // Respawn code goes here... -} - void NSIO::SaveBool(float handle, string key, bool value) { @@ -289,7 +295,6 @@ NSIO::SpawnKey(string strKey, string strValue) /* we do re-read a lot of the builtin fields in case we want to set defaults. just in case anybody is wondering. */ switch (strKey) { - case "zhlt_lightflags": case "classname": case "spawnflags": break; @@ -333,12 +338,17 @@ NSIO::NSIO(void) } } - Init(); - - /* assign our onuser crap */ - m_strOnUser1 = CreateOutput(m_strOnUser1); - m_strOnUser2 = CreateOutput(m_strOnUser2); - m_strOnUser3 = CreateOutput(m_strOnUser3); - m_strOnUser4 = CreateOutput(m_strOnUser4); + /* null all of them */ + m_strOnTrigger = + m_strOnUser1 = + m_strOnUser2 = + m_strOnUser3 = + m_strOnUser4 = __NULL__; +#else + isCSQC = TRUE; + effects |= EF_NOSHADOW; #endif + + /* called last */ + Init(); } diff --git a/src/gs-entbase/shared/NSMonster.qc b/src/gs-entbase/shared/NSMonster.qc index cebeaf76..71828968 100644 --- a/src/gs-entbase/shared/NSMonster.qc +++ b/src/gs-entbase/shared/NSMonster.qc @@ -586,7 +586,8 @@ NSMonster::NewRoute(vector destination) void NSMonster::AnimationUpdate(void) { - int frame, act; + int fr = 0; + int act = 0; if (style == MONSTER_DEAD) return; @@ -595,34 +596,34 @@ NSMonster::AnimationUpdate(void) float midspeed = GetWalkSpeed() + ((GetRunSpeed() - GetWalkSpeed()) * 0.5f); if (spvel < 5) { - frame = AnimIdle(); + fr = AnimIdle(); if (m_iMoveState != MOVESTATE_IDLE) m_flAnimTime = 0.0f; - if (frame == -1) + if (fr == -1) act = (frameforaction(modelindex, ACT_IDLE)); m_iMoveState = MOVESTATE_IDLE; } else if (spvel < midspeed) { - frame = AnimWalk(); + fr = AnimWalk(); if (m_iMoveState != MOVESTATE_WALK) m_flAnimTime = 0.0f; - if (frame == -1) + if (fr == -1) act = (frameforaction(modelindex, ACT_WALK)); m_iMoveState = MOVESTATE_WALK; } else { - frame = AnimRun(); + fr = AnimRun(); if (m_iMoveState != MOVESTATE_RUN) m_flAnimTime = 0.0f; - if (frame == -1) + if (fr == -1) act = (frameforaction(modelindex, ACT_RUN)); m_iMoveState = MOVESTATE_RUN; @@ -632,10 +633,10 @@ NSMonster::AnimationUpdate(void) return; } - if (frame == -1) + if (fr == -1) AnimPlay(act); else - SetFrame(frame); + SetFrame(fr); } @@ -1068,8 +1069,6 @@ NSMonster::NSMonster(void) return; } #endif - - super::NSSurfacePropEntity(); } #ifdef CLIENT diff --git a/src/gs-entbase/shared/NSPhysicsEntity.qc b/src/gs-entbase/shared/NSPhysicsEntity.qc index afff4fe8..ace6fe8f 100644 --- a/src/gs-entbase/shared/NSPhysicsEntity.qc +++ b/src/gs-entbase/shared/NSPhysicsEntity.qc @@ -716,7 +716,6 @@ NSPhysicsEntity::NSPhysicsEntity(void) { mass = 1.0f; m_flInertiaScale = 1.0f; - super::NSSurfacePropEntity(); cvar_set("physics_ode_iterationsperframe", "1"); cvar_set("physics_ode_movelimit", "0.1"); diff --git a/src/gs-entbase/shared/NSPointTrigger.qc b/src/gs-entbase/shared/NSPointTrigger.qc index 4797c1d1..fdfa44f2 100644 --- a/src/gs-entbase/shared/NSPointTrigger.qc +++ b/src/gs-entbase/shared/NSPointTrigger.qc @@ -25,5 +25,4 @@ NSPointTrigger::InitPointTrigger(void) void NSPointTrigger::NSPointTrigger(void) { - super::NSEntity(); } \ No newline at end of file diff --git a/src/gs-entbase/shared/NSProjectile.qc b/src/gs-entbase/shared/NSProjectile.qc index 95366cd3..a2244e24 100644 --- a/src/gs-entbase/shared/NSProjectile.qc +++ b/src/gs-entbase/shared/NSProjectile.qc @@ -61,7 +61,6 @@ NSProjectile::Animate(int startframe, int endframe, float framerate) void NSProjectile::NSProjectile(void) { - super::NSSurfacePropEntity(); touch = ProjectileTouch; SetMovetype(MOVETYPE_FLY); diff --git a/src/gs-entbase/shared/NSRenderableEntity.qc b/src/gs-entbase/shared/NSRenderableEntity.qc index db692f23..8fa103b9 100644 --- a/src/gs-entbase/shared/NSRenderableEntity.qc +++ b/src/gs-entbase/shared/NSRenderableEntity.qc @@ -934,8 +934,6 @@ NSRenderableEntity::NSRenderableEntity(void) effects |= EF_NOSHADOW; //scale = 1.0f; - super::NSEntity(); - #ifdef SERVER #ifdef GS_RENDERFX m_oldiRenderFX = m_iRenderFX; @@ -945,6 +943,8 @@ NSRenderableEntity::NSRenderableEntity(void) m_oldvecRenderColor = m_vecRenderColor; m_oldflRenderAmt = m_flRenderAmt; #endif +#else + drawmask = MASK_ENGINE; #endif } diff --git a/src/gs-entbase/shared/NSSurfacePropEntity.h b/src/gs-entbase/shared/NSSurfacePropEntity.h index 8941fb09..c52eb7b6 100644 --- a/src/gs-entbase/shared/NSSurfacePropEntity.h +++ b/src/gs-entbase/shared/NSSurfacePropEntity.h @@ -44,6 +44,8 @@ class NSSurfacePropEntity:NSRenderableEntity void(void) NSSurfacePropEntity; + virtual void(void) Spawned; + /* overrides */ virtual void(string) SetModel; #ifdef SERVER diff --git a/src/gs-entbase/shared/NSSurfacePropEntity.qc b/src/gs-entbase/shared/NSSurfacePropEntity.qc index bea61512..92da51c4 100644 --- a/src/gs-entbase/shared/NSSurfacePropEntity.qc +++ b/src/gs-entbase/shared/NSSurfacePropEntity.qc @@ -14,6 +14,22 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +void +NSSurfacePropEntity::Spawned(void) +{ + super::Spawned(); + +#ifdef SERVER + /* tokenization complete, now we can load propdata */ + SurfaceDataFinish(); + PropDataFinish(); + + /* Input/Output system */ + if (m_strOnBreak) + m_strOnBreak = CreateOutput(m_strOnBreak); +#endif +} + /* networking */ #ifdef SERVER void @@ -577,6 +593,9 @@ NSSurfacePropEntity::Pain(void) void NSSurfacePropEntity::Death(void) { + print(sprintf("%S", m_strOnBreak)); + print("\n"); + UseOutput(g_dmg_eAttacker, m_strOnBreak); if (HasPropData() == false) @@ -680,15 +699,7 @@ NSSurfacePropEntity::NSSurfacePropEntity(void) m_iPropData = -1; m_iMaterial = -1; max_health = 100; - - super::NSRenderableEntity(); - - /* tokenization complete, now we can load propdata */ - SurfaceDataFinish(); - PropDataFinish(); - - /* Input/Output system */ - m_strOnBreak = CreateOutput(m_strOnBreak); + m_strOnBreak = __NULL__; #endif } diff --git a/src/gs-entbase/shared/NSTalkMonster.qc b/src/gs-entbase/shared/NSTalkMonster.qc index 9f2f55df..7391ca5f 100644 --- a/src/gs-entbase/shared/NSTalkMonster.qc +++ b/src/gs-entbase/shared/NSTalkMonster.qc @@ -454,7 +454,6 @@ NSTalkMonster::FollowChain(void) void NSTalkMonster::Physics(void) { - float spvel; input_movevalues = [0,0,0]; input_impulse = 0; input_buttons = 0; @@ -924,7 +923,6 @@ NSTalkMonster_ParseSentence(void) void NSTalkMonster::NSTalkMonster(void) { - super::NSMonster(); #ifdef SERVER m_eFollowing = world; #endif diff --git a/src/gs-entbase/shared/NSTrigger.qc b/src/gs-entbase/shared/NSTrigger.qc index 88f436cd..c6bb4d28 100644 --- a/src/gs-entbase/shared/NSTrigger.qc +++ b/src/gs-entbase/shared/NSTrigger.qc @@ -172,6 +172,9 @@ NSTrigger::SpawnKey(string strKey, string strValue) case "target": target = strValue; break; + case "targetname": + targetname = strValue; + break; #ifdef SERVER case "killtarget": m_strKillTarget = strValue; @@ -198,5 +201,4 @@ NSTrigger::SpawnKey(string strKey, string strValue) void NSTrigger::NSTrigger(void) { - super::NSIO(); } diff --git a/src/gs-entbase/shared/NSVehicle.qc b/src/gs-entbase/shared/NSVehicle.qc index c49e0c9d..12393cd3 100644 --- a/src/gs-entbase/shared/NSVehicle.qc +++ b/src/gs-entbase/shared/NSVehicle.qc @@ -403,7 +403,6 @@ void NSVehicle::NSVehicle(void) { m_eDriver = __NULL__; - super::NSSurfacePropEntity(); } #ifdef CLIENT diff --git a/src/gs-entbase/shared/ambient_generic.qc b/src/gs-entbase/shared/ambient_generic.qc index e2f5bcb6..e8a8e8ec 100644 --- a/src/gs-entbase/shared/ambient_generic.qc +++ b/src/gs-entbase/shared/ambient_generic.qc @@ -78,6 +78,7 @@ class ambient_generic:NSTalkMonster void(void) ambient_generic; /* overrides */ + virtual void(void) Spawned; #ifdef SERVER virtual void(float) Save; virtual void(string, string) Restore; @@ -386,10 +387,15 @@ ambient_generic::SpawnKey(string strKey, string strValue) } } +void +ambient_generic::Spawned(void) +{ + precache_sound("common/null.wav"); +} + void ambient_generic::ambient_generic(void) { - super::NSTalkMonster(); } #ifdef CLIENT diff --git a/src/gs-entbase/shared/env_bubbles.qc b/src/gs-entbase/shared/env_bubbles.qc index 19c2ea8b..386f64eb 100644 --- a/src/gs-entbase/shared/env_bubbles.qc +++ b/src/gs-entbase/shared/env_bubbles.qc @@ -342,10 +342,15 @@ env_bubbles::Respawn(void) m_bEnabled = true; } +void +env_bubbles::Spawned(void) +{ + precache_model("sprites/bubble.spr"); +} + void env_bubbles::env_bubbles(void) { - super::NSPointTrigger(); } #ifdef CLIENT @@ -358,4 +363,4 @@ env_bubbles_ReadEntity(float new) } me.ReceiveEntity(new, readfloat()); } -#endif \ No newline at end of file +#endif diff --git a/src/gs-entbase/shared/env_fog_controller.qc b/src/gs-entbase/shared/env_fog_controller.qc index f35ec019..2f159a1a 100644 --- a/src/gs-entbase/shared/env_fog_controller.qc +++ b/src/gs-entbase/shared/env_fog_controller.qc @@ -524,7 +524,6 @@ env_fog_controller::env_fog_controller(void) #ifdef SERVER m_vecSpawnColor = [1.0, 1.0, 1.0]; m_flSpawnMaxDensity = 1.0f; - super::NSPointTrigger(); #endif } diff --git a/src/gs-entbase/shared/env_projectedtexture.qc b/src/gs-entbase/shared/env_projectedtexture.qc index 7f1546b8..8cbb2e88 100644 --- a/src/gs-entbase/shared/env_projectedtexture.qc +++ b/src/gs-entbase/shared/env_projectedtexture.qc @@ -323,9 +323,7 @@ env_projectedtexture::Respawn(void) void env_projectedtexture::env_projectedtexture(void) { -#ifdef CLIENT - drawmask = MASK_ENGINE; -#else +#ifndef CLIENT m_strPattern = "z"; m_vecLight = [255,255,255]; m_flIntensity = 512; @@ -334,8 +332,6 @@ env_projectedtexture::env_projectedtexture(void) m_strTextureName = "textures/flashlight"; m_flFOV = 90; - super::NSPointTrigger(); - if (m_flStyle > 0 && m_flStyle < 12) m_strPattern = getlightstyle(m_flStyle); #endif diff --git a/src/gs-entbase/shared/func_friction.qc b/src/gs-entbase/shared/func_friction.qc index 387f57d4..b99cba18 100644 --- a/src/gs-entbase/shared/func_friction.qc +++ b/src/gs-entbase/shared/func_friction.qc @@ -39,10 +39,6 @@ class func_friction:NSEntity virtual void(entity) Touch; virtual void(void) Respawn; virtual void(string, string) SpawnKey; - -#ifdef CLIENT - virtual void(void) Initialized; -#endif }; void @@ -76,18 +72,7 @@ func_friction::SpawnKey(string strField, string strKey) } } -#ifdef CLIENT -void -func_friction::Initialized(void) -{ - setmodel(this, model); - movetype = MOVETYPE_NONE; - solid = SOLID_BSPTRIGGER; -} -#endif - void func_friction::func_friction(void) { - super::NSEntity(); } diff --git a/src/gs-entbase/shared/func_illusionary.qc b/src/gs-entbase/shared/func_illusionary.qc index 17b98251..f18da357 100644 --- a/src/gs-entbase/shared/func_illusionary.qc +++ b/src/gs-entbase/shared/func_illusionary.qc @@ -137,9 +137,4 @@ func_illusionary::Init(void) void func_illusionary::func_illusionary(void) { -#ifdef CLIENT - Init(); -#else - super::NSRenderableEntity(); -#endif } diff --git a/src/gs-entbase/shared/func_ladder.qc b/src/gs-entbase/shared/func_ladder.qc index 73ab8dda..b8838cd0 100644 --- a/src/gs-entbase/shared/func_ladder.qc +++ b/src/gs-entbase/shared/func_ladder.qc @@ -129,9 +129,4 @@ func_ladder::Init(void) void func_ladder::func_ladder(void) { -#ifdef CLIENT - Init(); -#else - super::NSRenderableEntity(); -#endif } diff --git a/src/gs-entbase/shared/func_monitor.qc b/src/gs-entbase/shared/func_monitor.qc index fe19493e..527bb4d3 100644 --- a/src/gs-entbase/shared/func_monitor.qc +++ b/src/gs-entbase/shared/func_monitor.qc @@ -333,7 +333,5 @@ func_monitor::func_monitor(void) { #ifdef CLIENT drawmask = MASK_ENGINE; -#elif SERVER - super::NSRenderableEntity(); #endif } diff --git a/src/gs-entbase/shared/func_tankmortar.qc b/src/gs-entbase/shared/func_tankmortar.qc index 4c50cc38..40d5df18 100644 --- a/src/gs-entbase/shared/func_tankmortar.qc +++ b/src/gs-entbase/shared/func_tankmortar.qc @@ -83,6 +83,7 @@ class func_tankmortar:NSVehicle float m_flFireTime; void(void) func_tankmortar; + virtual void(void) Spawned; virtual void(void) PlayerInput; virtual void(vector) SpriteSmoke; virtual void(vector) SpriteFlash; @@ -433,12 +434,8 @@ func_tankmortar::SpawnKey(string strKey, string strValue) #endif void -func_tankmortar::func_tankmortar(void) +func_tankmortar::Spawned(void) { - m_iVehicleFlags |= VHF_FROZEN | VHF_NOATTACK; - - super::NSVehicle(); - #ifdef SERVER if (m_strSpriteFlash) precache_model(m_strSpriteFlash); @@ -447,6 +444,13 @@ func_tankmortar::func_tankmortar(void) #endif } +void +func_tankmortar::func_tankmortar(void) +{ + m_iVehicleFlags |= VHF_FROZEN | VHF_NOATTACK; + +} + #ifdef CLIENT void func_tankmortar_readentity(float isnew) diff --git a/src/gs-entbase/shared/func_wall.qc b/src/gs-entbase/shared/func_wall.qc index 7d0b2ed7..93602660 100644 --- a/src/gs-entbase/shared/func_wall.qc +++ b/src/gs-entbase/shared/func_wall.qc @@ -128,9 +128,4 @@ func_wall::Init(void) void func_wall::func_wall(void) { -#ifdef CLIENT - Init(); -#else - super::NSRenderableEntity(); -#endif } diff --git a/src/gs-entbase/shared/info_particle_system.qc b/src/gs-entbase/shared/info_particle_system.qc index 990220bb..bfbfa009 100644 --- a/src/gs-entbase/shared/info_particle_system.qc +++ b/src/gs-entbase/shared/info_particle_system.qc @@ -255,7 +255,5 @@ info_particle_system::info_particle_system(void) #ifdef CLIENT drawmask = MASK_ENGINE; think = Emit; -#elif SERVER - super::NSPointTrigger(); #endif } diff --git a/src/gs-entbase/shared/light_dynamic.qc b/src/gs-entbase/shared/light_dynamic.qc index ad4c0432..e2d28f60 100644 --- a/src/gs-entbase/shared/light_dynamic.qc +++ b/src/gs-entbase/shared/light_dynamic.qc @@ -88,7 +88,7 @@ class light_dynamic:NSPointTrigger #ifdef CLIENT virtual void(float,float) ReceiveEntity; virtual float(void) predraw; - virtual void(void) Initialized; + virtual void(void) Spawned; virtual void(void) RendererRestarted; #else @@ -185,7 +185,7 @@ light_dynamic::RendererRestarted(void) #endif } void -light_dynamic::Initialized(void) +light_dynamic::Spawned(void) { /* we're meant to be a server controlled entity. cancel out and kill us ASAP */ if (targetname) { @@ -383,9 +383,6 @@ light_dynamic::light_dynamic(void) #ifdef CLIENT drawmask = MASK_ENGINE; #else - - super::NSPointTrigger(); - /* the client-side will handle dlights without targetnames */ if (!targetname) { think = Util_Destroy; diff --git a/src/gs-entbase/shared/prop_physics_multiplayer.qc b/src/gs-entbase/shared/prop_physics_multiplayer.qc index a8257830..fdc35383 100644 --- a/src/gs-entbase/shared/prop_physics_multiplayer.qc +++ b/src/gs-entbase/shared/prop_physics_multiplayer.qc @@ -160,11 +160,6 @@ prop_physics_multiplayer::Init(void) void prop_physics_multiplayer::prop_physics_multiplayer(void) { -#ifdef CLIENT - Init(); -#else - super::NSPhysicsEntity(); -#endif } #else @@ -185,7 +180,6 @@ prop_physics_multiplayer::Respawn(void) void prop_physics_multiplayer::prop_physics_multiplayer(void) { - super::NSRenderableEntity(); } #endif #endif diff --git a/src/gs-entbase/shared/prop_rope.qc b/src/gs-entbase/shared/prop_rope.qc index c794b27d..0408ddb8 100644 --- a/src/gs-entbase/shared/prop_rope.qc +++ b/src/gs-entbase/shared/prop_rope.qc @@ -282,8 +282,6 @@ prop_rope::prop_rope(void) m_flSag = 15.0f; m_iSegments = 16; m_strShader = "textures/props/wire_default"; - - super::NSEntity(); #else /* this is empty for a good reason */ drawmask = MASK_ENGINE; diff --git a/src/gs-entbase/shared/prop_vehicle_driveable.qc b/src/gs-entbase/shared/prop_vehicle_driveable.qc index 2ca4a2cb..85798faa 100644 --- a/src/gs-entbase/shared/prop_vehicle_driveable.qc +++ b/src/gs-entbase/shared/prop_vehicle_driveable.qc @@ -102,6 +102,7 @@ class prop_vehicle_driveable:NSVehicle void(void) prop_vehicle_driveable; + virtual void(void) Spawned; virtual void(void) Physics; virtual void(void) RunVehiclePhysics; virtual void(void) WeaponInput; @@ -853,11 +854,18 @@ prop_vehicle_driveable::SendEntity(entity ePVSent, float flSendFlags) #endif void -prop_vehicle_driveable::prop_vehicle_driveable(void) +prop_vehicle_driveable::Spawned(void) { + super::Spawned(); + #ifdef SERVER Sound_Precache("prop_vehicle_driveable.bounce"); #endif +} + +void +prop_vehicle_driveable::prop_vehicle_driveable(void) +{ m_eDriver = __NULL__; m_flBounceFactor = 1.25f; m_flAcceleration = 600.0f; @@ -892,8 +900,6 @@ prop_vehicle_driveable::prop_vehicle_driveable(void) m_wlFL.owner = m_wlFR.owner = \ m_wlBL.owner = m_wlBR.owner = this; - super::NSVehicle(); - customphysics = Physics; } diff --git a/src/gs-entbase/shared/trigger_camera.qc b/src/gs-entbase/shared/trigger_camera.qc index c7ae4032..d426db04 100644 --- a/src/gs-entbase/shared/trigger_camera.qc +++ b/src/gs-entbase/shared/trigger_camera.qc @@ -273,10 +273,7 @@ trigger_camera::SpawnKey(string strKey, string strValue) void trigger_camera::trigger_camera(void) { -#ifdef CLIENT - drawmask = MASK_ENGINE; -#else +#ifndef CLIENT m_flWait = 4.0f; - super::NSPointTrigger(); #endif } diff --git a/src/gs-entbase/shared/trigger_gravity.qc b/src/gs-entbase/shared/trigger_gravity.qc index 193fddbd..f236ca5f 100644 --- a/src/gs-entbase/shared/trigger_gravity.qc +++ b/src/gs-entbase/shared/trigger_gravity.qc @@ -38,13 +38,10 @@ class trigger_gravity:NSBrushTrigger void(void) trigger_gravity; + virtual void(void) Spawned; virtual void(entity) Touch; virtual void(string, string) SpawnKey; virtual void(void) Respawn; - -#ifdef CLIENT - virtual void(void) Initialized; -#endif }; void @@ -80,17 +77,17 @@ trigger_gravity::SpawnKey(string strField, string strKey) } void -trigger_gravity::trigger_gravity(void) +trigger_gravity::Spawned(void) { -#ifdef SERVER - super::NSBrushTrigger(); + super::Spawned(); + +#ifdef CLIENT + Respawn(); #endif } -#ifdef CLIENT void -trigger_gravity::Initialized(void) +trigger_gravity::trigger_gravity(void) { - Respawn(); + m_flGravity = 1.0; } -#endif diff --git a/src/gs-entbase/shared/worldspawn.qc b/src/gs-entbase/shared/worldspawn.qc index 7d4b7eee..b749191d 100644 --- a/src/gs-entbase/shared/worldspawn.qc +++ b/src/gs-entbase/shared/worldspawn.qc @@ -56,11 +56,11 @@ class worldspawn:NSEntity void(void) worldspawn; virtual void(string, string) SpawnKey; - virtual void(void) Initialized; + virtual void(void) Spawned; }; void -worldspawn::Initialized(void) +worldspawn::Spawned(void) { g_vecSunDir = [90,0]; @@ -127,10 +127,5 @@ worldspawn::SpawnKey(string strField, string strKey) void worldspawn::worldspawn(void) { -#ifdef CLIENT - Init(); -#else - super::NSEntity(); -#endif } -#endif +#endif \ No newline at end of file diff --git a/src/materials/Alien.qc b/src/materials/Alien.qc new file mode 100644 index 00000000..f2c2851a --- /dev/null +++ b/src/materials/Alien.qc @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2016-2020 Marco Cawthorne + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER + * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +class Alien:NSMaterial +{ + void(void) Alien; +}; + +void +Alien::Alien(void) +{ + +} diff --git a/src/materials/Computer.qc b/src/materials/Computer.qc new file mode 100644 index 00000000..9debc35b --- /dev/null +++ b/src/materials/Computer.qc @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2016-2020 Marco Cawthorne + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER + * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +class Computer:NSMaterial +{ + void(void) Computer; +}; + +void +Computer::Computer(void) +{ + +} diff --git a/src/materials/Concrete.qc b/src/materials/Concrete.qc new file mode 100644 index 00000000..cab773ec --- /dev/null +++ b/src/materials/Concrete.qc @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2016-2020 Marco Cawthorne + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER + * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +class Concrete:NSMaterial +{ + void(void) Concrete; +}; + +void +Concrete::Concrete(void) +{ + +} diff --git a/src/materials/Dirt.qc b/src/materials/Dirt.qc new file mode 100644 index 00000000..eec2b78f --- /dev/null +++ b/src/materials/Dirt.qc @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2016-2020 Marco Cawthorne + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER + * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +class Dirt:NSMaterial +{ + void(void) Dirt; +}; + +void +Dirt::Dirt(void) +{ + +} diff --git a/src/materials/Flesh.qc b/src/materials/Flesh.qc new file mode 100644 index 00000000..9d5c2aa6 --- /dev/null +++ b/src/materials/Flesh.qc @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2016-2020 Marco Cawthorne + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER + * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +class Flesh:NSMaterial +{ + void(void) Flesh; +}; + +void +Flesh::Flesh(void) +{ + +} diff --git a/src/materials/Foliage.qc b/src/materials/Foliage.qc new file mode 100644 index 00000000..805c16e2 --- /dev/null +++ b/src/materials/Foliage.qc @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2016-2020 Marco Cawthorne + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER + * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +class Foliage:NSMaterial +{ + void(void) Foliage; +}; + +void +Foliage::Foliage(void) +{ + +} diff --git a/src/materials/Glass.qc b/src/materials/Glass.qc new file mode 100644 index 00000000..c1b38316 --- /dev/null +++ b/src/materials/Glass.qc @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2016-2020 Marco Cawthorne + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER + * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +class Glass:NSMaterial +{ + void(void) Glass; +}; + +void +Glass::Glass(void) +{ + +} diff --git a/src/materials/Grate.qc b/src/materials/Grate.qc new file mode 100644 index 00000000..3d4f5721 --- /dev/null +++ b/src/materials/Grate.qc @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2016-2020 Marco Cawthorne + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER + * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +class Grate:NSMaterial +{ + void(void) Grate; +}; + +void +Grate::Grate(void) +{ +} diff --git a/src/materials/Metal.qc b/src/materials/Metal.qc new file mode 100644 index 00000000..ff96002e --- /dev/null +++ b/src/materials/Metal.qc @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2016-2020 Marco Cawthorne + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER + * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +class Metal:NSMaterial +{ + void(void) Metal; +}; + +void +Metal::Metal(void) +{ + +} diff --git a/src/materials/Sand.qc b/src/materials/Sand.qc new file mode 100644 index 00000000..92b95a31 --- /dev/null +++ b/src/materials/Sand.qc @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2016-2020 Marco Cawthorne + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER + * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +class Sand:NSMaterial +{ + void(void) Sand; +}; + +void +Sand::Sand(void) +{ + +} diff --git a/src/materials/Slosh.qc b/src/materials/Slosh.qc new file mode 100644 index 00000000..7d4270dc --- /dev/null +++ b/src/materials/Slosh.qc @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2016-2020 Marco Cawthorne + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER + * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +class Slosh:NSMaterial +{ + void(void) Slosh; +}; + +void +Slosh::Slosh(void) +{ + +} diff --git a/src/materials/Snow.qc b/src/materials/Snow.qc new file mode 100644 index 00000000..3c8a404d --- /dev/null +++ b/src/materials/Snow.qc @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2016-2020 Marco Cawthorne + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER + * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +class Snow:NSMaterial +{ + void(void) Snow; +}; + +void +Snow::Snow(void) +{ + +} diff --git a/src/materials/Tile.qc b/src/materials/Tile.qc new file mode 100644 index 00000000..b4c7f0fd --- /dev/null +++ b/src/materials/Tile.qc @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2016-2020 Marco Cawthorne + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER + * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +class Tile:NSMaterial +{ + void(void) Tile; +}; + +void +Tile::Tile(void) +{ + +} diff --git a/src/materials/Vent.qc b/src/materials/Vent.qc new file mode 100644 index 00000000..01e50c59 --- /dev/null +++ b/src/materials/Vent.qc @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2016-2020 Marco Cawthorne + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER + * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +class Vent:NSMaterial +{ + void(void) Vent; +}; + +void +Vent::Vent(void) +{ + +} diff --git a/src/materials/Wood.qc b/src/materials/Wood.qc new file mode 100644 index 00000000..fda7122f --- /dev/null +++ b/src/materials/Wood.qc @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2016-2020 Marco Cawthorne + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER + * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +class Wood:NSMaterial +{ + void(void) Wood; +}; + +void +Wood::Wood(void) +{ + +} diff --git a/src/materials/include.src b/src/materials/include.src new file mode 100644 index 00000000..2369aaec --- /dev/null +++ b/src/materials/include.src @@ -0,0 +1,17 @@ +#includelist +Alien.qc +Computer.qc +Concrete.qc +Dirt.qc +Flesh.qc +Foliage.qc +Glass.qc +Grate.qc +Metal.qc +Sand.qc +Slosh.qc +Snow.qc +Tile.qc +Vent.qc +Wood.qc +#endlist diff --git a/src/menu-vgui/includes.src b/src/menu-vgui/includes.src new file mode 100644 index 00000000..bc10136a --- /dev/null +++ b/src/menu-vgui/includes.src @@ -0,0 +1,23 @@ +#includelist +../shared/fteextensions.qc +../shared/global.h +../client/font.h +defs.h + +../vgui/include.src + +background.qc +loading.qc + +main.h +ui_console.qc +ui_newgame.qc +ui_quitgame.qc +ui_createserver.qc +ui_findservers.qc +ui_musicplayer.qc +ui_modelviewer.qc +desktop.qc +main.qc +../client/font.qc +#endlist diff --git a/src/menu-vgui/progs.src b/src/menu-vgui/progs.src index 8e549d39..d3e64c37 100644 --- a/src/menu-vgui/progs.src +++ b/src/menu-vgui/progs.src @@ -3,25 +3,5 @@ #define MENU #includelist -../shared/fteextensions.qc -../shared/global.h -../client/font.h -defs.h - -../vgui/include.src - -background.qc -loading.qc - -main.h -ui_console.qc -ui_newgame.qc -ui_quitgame.qc -ui_createserver.qc -ui_findservers.qc -ui_musicplayer.qc -ui_modelviewer.qc -desktop.qc -main.qc -../client/font.qc +includes.src #endlist diff --git a/src/server/entry.qc b/src/server/entry.qc index 79f71360..8cda9efa 100644 --- a/src/server/entry.qc +++ b/src/server/entry.qc @@ -439,6 +439,8 @@ initents(void) /* only bother doing so on Half-Life BSP */ if (serverkeyfloat("*bspversion") == BSPVER_HL) { HLMaterials_Init(); + } else { + Materials_Init(); } PMove_Init(); diff --git a/src/shared/NSClientPlayer.qc b/src/shared/NSClientPlayer.qc index 5695370b..85c52a0c 100644 --- a/src/shared/NSClientPlayer.qc +++ b/src/shared/NSClientPlayer.qc @@ -440,6 +440,7 @@ NSClientPlayer::PredictPostFrame(void) void NSClientPlayer::Save(float handle) { + SaveFloat(handle, "max_health", max_health); SaveFloat(handle, "health", health); SaveFloat(handle, "armor", armor); SaveFloat(handle, "modelindex", modelindex); @@ -454,6 +455,7 @@ NSClientPlayer::Save(float handle) SaveVector(handle, "v_angle", v_angle); SaveVector(handle, "punchangle", punchangle); SaveFloat(handle, "movetype", movetype); + SaveFloat(handle, "solid", solid); SaveFloat(handle, "pmove_flags", pmove_flags); SaveFloat(handle, "w_attack_next", w_attack_next); SaveFloat(handle, "w_idle_next", w_idle_next); @@ -463,12 +465,16 @@ NSClientPlayer::Save(float handle) SaveInt(handle, "g_items", g_items); SaveFloat(handle, "activeweapon", activeweapon); SaveFloat(handle, "vehicle", num_for_edict(vehicle)); + super::Save(handle); } void NSClientPlayer::Restore(string strKey, string strValue) { switch (strKey) { + case "max_health": + max_health = ReadFloat(strValue); + break; case "health": health = ReadFloat(strValue); break; @@ -505,6 +511,9 @@ NSClientPlayer::Restore(string strKey, string strValue) case "punchangle": punchangle = ReadVector(strValue); break; + case "solid": + solid = ReadFloat(strValue); + break; case "movetype": movetype = ReadFloat(strValue); break; @@ -971,6 +980,5 @@ NSClientPlayer::InputUse_Up(void) void NSClientPlayer::NSClientPlayer(void) { - super::NSClientSpectator(); vehicle = __NULL__; } diff --git a/src/shared/NSClientSpectator.qc b/src/shared/NSClientSpectator.qc index 29964544..a036f8d1 100644 --- a/src/shared/NSClientSpectator.qc +++ b/src/shared/NSClientSpectator.qc @@ -450,20 +450,6 @@ NSClientSpectator::PostFrame(void) void NSClientSpectator::NSClientSpectator(void) { - super::NSClient(); - modelindex = 0; - flags = FL_CLIENT; - SetSolid(SOLID_NOT); - SetMovetype(MOVETYPE_NOCLIP); - think = __NULL__; - nextthink = 0.0f; - maxspeed = 250; - spec_ent = 0; - spec_mode = 0; - -#ifdef SERVER - forceinfokey(this, "*spectator", "1"); -#endif } #ifdef CLIENT diff --git a/src/shared/NSMaterial.h b/src/shared/NSMaterial.h new file mode 100644 index 00000000..1f067ed5 --- /dev/null +++ b/src/shared/NSMaterial.h @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2016-2020 Marco Cawthorne + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER + * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +class +NSMaterial +{ + bool m_bPenetrable; + bool m_bFootsteps; + float m_flFriction; + string m_strStepSound; + + void(void) NSMaterial; + + virtual float(void) GetFriction; + virtual bool(void) Footsteps; + virtual bool(void) Penetrable; + virtual void(NSClient) FootstepSound; + virtual void(vector, vector) Impact; +}; + +hashtable g_hashMaterials; + +void Materials_Init(void); +NSMaterial Material_FromTexture(string); diff --git a/src/shared/NSMaterial.qc b/src/shared/NSMaterial.qc new file mode 100644 index 00000000..44ec99ba --- /dev/null +++ b/src/shared/NSMaterial.qc @@ -0,0 +1,154 @@ +/* + * Copyright (c) 2016-2020 Marco Cawthorne + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER + * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +void +NSMaterial::NSMaterial(void) +{ + m_bPenetrable = false; + m_bFootsteps = false; + m_flFriction = 1.0f; + m_strStepSound = "step.default"; +} + +float +NSMaterial::GetFriction(void) +{ + return (m_flFriction); +} + +bool +NSMaterial::Footsteps(void) +{ + return (m_bFootsteps); +} + +bool +NSMaterial::Penetrable(void) +{ + return (m_bPenetrable); +} + +void +NSMaterial::FootstepSound(NSClient client) +{ + /* foobar */ +} + +void +NSMaterial::Impact(vector vecOrigin, vector vecAngle) +{ + print("IMPACT, WOOO\n"); +} + +/* general purpose functions to interact with the material system */ +void +Materials_LoadFromText(string filename) +{ + filestream fileMaterial; + string sTemp; + string mat_type; + string tex_name; + + fileMaterial = fopen(filename, FILE_READ); + + if (fileMaterial >= 0) { + print(strcat("parsing material assignments from ", filename,"\n")); + + while ((sTemp = fgets(fileMaterial))) { + /* tokenize and just parse this stuff in */ + if (tokenize_console(sTemp) == 2) { + mat_type = strtoupper(argv(0)); + tex_name = Materials_FixName(strtolower(argv(1))); + hash_add(g_hashMaterials, tex_name, str2chr(mat_type, 0)); + } + } + + fclose(fileMaterial); + } else { + dprint(strcat("^1Failed to load ", filename,"!\n")); + } +} + +void +Materials_LoadFromMat(string filename) +{ + filestream fileMaterial; + string sTemp; + string materialname = substring(filename, 0, -5); + string extension = substring(filename, strlen(filename) - 3, 3); + string command, parameters; + + fileMaterial = fopen(filename, FILE_READ); + + /* load the .mat and find which material we're supposed to be using */ + if (fileMaterial >= 0) { + while ((sTemp = fgets(fileMaterial))) { + /* tokenize and just parse this stuff in */ + if (tokenize_console(sTemp) == 2) { + command = strtolower(argv(0)); + parameters = argv(1); + + if (command == "material") { + hash_add(g_hashMaterials, materialname, parameters); + print(sprintf("added Material %S type %S\n", materialname, parameters)); + } + } + } + + fclose(fileMaterial); + } +} + +void +Materials_Init(void) +{ + g_hashMaterials = __NULL__; + g_hashMaterials = hash_createtab(2, EV_STRING); + + /* global table */ + Materials_LoadFromText("textures/materials.def"); + + /* iterate through our mat files */ + searchhandle searchy = search_begin("textures/*/*.mat", SEARCH_NAMESORT, TRUE); + for (int i = 0; i < search_getsize(searchy); i++) { + Materials_LoadFromMat(search_getfilename(searchy, i)); + } +} + +NSMaterial +Material_FromTexture(string tex_name) +{ + string mat = (string)hash_get(g_hashMaterials, tex_name); + string func = strcat("spawnfunc_", mat); + + if (isfunction(func)) { + entity oldself = self; + void(void) vFunc; + vFunc = externvalue(-2, func); + NSMaterial new_mat = spawn(NSMaterial); + self = new_mat; + vFunc(); + self = oldself; + return (new_mat); + } else if (mat != "") { + /* let the console know */ + print(sprintf("^1material %S does not exist!\n", mat)); + } + + /* return the builtin generic material */ + NSMaterial gen_mat = spawn(NSMaterial); + return (gen_mat); +} diff --git a/src/shared/defs.h b/src/shared/defs.h index 5ff21b18..c2f10758 100644 --- a/src/shared/defs.h +++ b/src/shared/defs.h @@ -46,6 +46,7 @@ #include "NSClient.h" #include "NSClientSpectator.h" #include "NSClientPlayer.h" +#include "NSMaterial.h" #include "damage.h" #include "flags.h" #include "entities.h" diff --git a/src/shared/include.src b/src/shared/include.src index b1d423f4..c990403d 100644 --- a/src/shared/include.src +++ b/src/shared/include.src @@ -9,5 +9,7 @@ NSClientPlayer.qc player_pmove.qc propdata.qc surfaceproperties.qc +NSMaterial.qc ../xr/include.src +../materials/include.src #endlist diff --git a/src/shared/player_pmove.qc b/src/shared/player_pmove.qc index dcdeb419..b030a5e9 100644 --- a/src/shared/player_pmove.qc +++ b/src/shared/player_pmove.qc @@ -90,7 +90,7 @@ NSClientPlayer::Physics_CheckJump(float premove) if (!(flags & FL_ONGROUND)) return; - if (!infokey(this, "autojump") == "1") + if (!(infokey(this, "autojump") == "1")) if (!(flags & FL_JUMPRELEASED)) return; diff --git a/src/shared/pmove.qc b/src/shared/pmove.qc index 0364d49c..a6dd2e55 100644 --- a/src/shared/pmove.qc +++ b/src/shared/pmove.qc @@ -79,6 +79,19 @@ #define PHY_VIEWPOS_CROUCHED [0,0,12] #endif +/* stamina system, inspired by idTech 4 */ +#ifndef PMOVE_STAMINA + #define PMOVE_STAMINA 24 +#endif + +#ifndef PMOVE_STAMINARATE + #define PMOVE_STAMINARATE 0.75 +#endif + +#ifndef PMOVE_STAMINATHRESHOLD + #define PMOVE_STAMINATHRESHOLD 4 +#endif + /* Those are constant for HL BSP and CANNOT be changed. * Blame Valve for purchasing a Quake II license but not diff --git a/src/shared/surfaceproperties.qc b/src/shared/surfaceproperties.qc index bbd9e1cc..41bd8eee 100644 --- a/src/shared/surfaceproperties.qc +++ b/src/shared/surfaceproperties.qc @@ -464,6 +464,7 @@ void SurfData_Impact(entity e, int fl, vector org, vector ang) { static void SurfData_Impact_SurfaceParm(entity e, int fl, vector org, vector ang) { +#if 1 switch (serverkeyfloat("*bspversion")) { case BSPVER_HL: float surf; @@ -481,6 +482,13 @@ SurfData_Impact(entity e, int fl, vector org, vector ang) default: FX_Impact(IMPACT_DEFAULT, org, ang); } +#else + float surf = getsurfacenearpoint(e, org); + NSMaterial foo = Material_FromTexture(getsurfacetexture(e, surf)); + + if (foo) + foo.Impact(org, ang); +#endif } /* the static world */ diff --git a/src/vgui/ui.qc b/src/vgui/ui.qc index 4ca6148e..5b0964f0 100644 --- a/src/vgui/ui.qc +++ b/src/vgui/ui.qc @@ -144,15 +144,6 @@ CUIWidget::Input(float flEVType, float flKey, float flChar, float flDevID) { CUIWidget wNext = this; -#if 0 - do { - wNext = wNext.m_next; - if (wNext && wNext.m_iFlags & 1 && wNext.m_parent.m_iFlags & 1) { - if (wNext.Input(flEVType, flKey, flChar, flDevID) == true) - return; - } - } while (wNext); -#else /* this is garbage, but it'll work */ int c = 0; do { @@ -164,7 +155,7 @@ CUIWidget::Input(float flEVType, float flKey, float flChar, float flDevID) vgui_input_scene_t *tree = memalloc(sizeof(vgui_input_scene_t) * c); int i = 0; - CUIWidget wNext = this; + wNext = this; do { wNext = wNext.m_next; tree[i].member = wNext; @@ -172,17 +163,17 @@ CUIWidget::Input(float flEVType, float flKey, float flChar, float flDevID) } while (wNext); /* traverse the list in reverse */ - for (int i = c-1; i >= 0; i--) { - wNext = tree[i].member; + for (int x = c-1; x >= 0; x--) { + wNext = tree[x].member; if (wNext && wNext.m_iFlags & 1 && wNext.m_parent.m_iFlags & 1) if (wNext.Input(flEVType, flKey, flChar, flDevID) == true) - return; + return (false); } memfree(tree); -#endif + return (false); } void diff --git a/src/vgui/ui_button.qc b/src/vgui/ui_button.qc index 269c1720..95548083 100644 --- a/src/vgui/ui_button.qc +++ b/src/vgui/ui_button.qc @@ -113,7 +113,6 @@ CUIButton::SetTitle(string strName) void CUIButton::SetIcon(string strName) { - vector vecImgSize; m_strIcon = strName; m_vecIMGSize = drawgetimagesize(strName); diff --git a/src/vgui/ui_list.qc b/src/vgui/ui_list.qc index 338160c1..a6bc58d5 100644 --- a/src/vgui/ui_list.qc +++ b/src/vgui/ui_list.qc @@ -98,7 +98,7 @@ void CUIList::Draw(void) bool CUIList::Input (float flEVType, float flKey, float flChar, float flDevID) { - bool ret; + bool ret = false; int iMaxDisplay; int iMouseOver = Util_MouseAbove(getmousepos(), m_parent.m_vecOrigin + m_vecOrigin, m_vecSize); iMaxDisplay = bound(0, m_iItemCount, floor(m_vecSize[1] / 20)); diff --git a/src/xr/NSXRInput.qc b/src/xr/NSXRInput.qc index a8965aab..93193210 100644 --- a/src/xr/NSXRInput.qc +++ b/src/xr/NSXRInput.qc @@ -162,5 +162,4 @@ NSXRInput::PrintInfo(void) void NSXRInput::NSXRInput(void) { - print("registered NSXRInput\n"); } \ No newline at end of file diff --git a/src/xr/NSXRSpace.qc b/src/xr/NSXRSpace.qc index e6be9d98..a39c7254 100644 --- a/src/xr/NSXRSpace.qc +++ b/src/xr/NSXRSpace.qc @@ -69,5 +69,4 @@ NSXRSpace::SetAngles(vector vecAngles) void NSXRSpace::NSXRSpace(void) { - print("allocated NSXRSpace\n"); } \ No newline at end of file diff --git a/src/xr/xr.qc b/src/xr/xr.qc index b1a1adb9..c8e69cd5 100644 --- a/src/xr/xr.qc +++ b/src/xr/xr.qc @@ -32,7 +32,6 @@ XR_Init(entity ePlayer) { NSClient pl = (NSClient)ePlayer; - print("--------- Initializing XR ----------\n"); pl.m_xrSpace = spawn(NSXRSpace); /* the only 3 devices that matter right now */