diff --git a/Source/Makefile b/Source/Makefile
index 0f272e1a..e09e567e 100644
--- a/Source/Makefile
+++ b/Source/Makefile
@@ -8,3 +8,5 @@ qc-progs:
 	$(CC) server/scihunt.src
 	$(CC) client/cstrike.src
 	$(CC) server/cstrike.src
+	$(CC) client/rewolf.src
+	$(CC) server/rewolf.src
diff --git a/Source/client/entry.c b/Source/client/entry.c
index 5c103b24..05a02e39 100644
--- a/Source/client/entry.c
+++ b/Source/client/entry.c
@@ -374,14 +374,21 @@ void CSQC_Parse_Event(void)
 			break;
 		case EV_SPARK:
 			vector vSparkPos, vSparkAngle;
-			vSparkPos_x = readcoord();
-			vSparkPos_y = readcoord();
-			vSparkPos_z = readcoord();
-			vSparkAngle_x = readcoord();
-			vSparkAngle_y = readcoord();
-			vSparkAngle_z = readcoord();
+			vSparkPos[0] = readcoord();
+			vSparkPos[1] = readcoord();
+			vSparkPos[2] = readcoord();
+			vSparkAngle[0] = readcoord();
+			vSparkAngle[1] = readcoord();
+			vSparkAngle[2] = readcoord();
 			Effect_CreateSpark(vSparkPos, vSparkAngle);
 			break;
+		case EV_GIBHUMAN:
+			vector vGibPos, vGibAngle;
+			vGibPos[0] = readcoord();
+			vGibPos[1] = readcoord();
+			vGibPos[2] = readcoord();
+			Effect_GibHuman(vGibPos);
+			break;
 		case EV_BLOOD:
 			vector vBloodPos;
 			vector vBloodAngle;
@@ -399,22 +406,22 @@ void CSQC_Parse_Event(void)
 		case EV_EXPLOSION:
 			vector vExploPos;
 			
-			vExploPos_x = readcoord();
-			vExploPos_y = readcoord();
-			vExploPos_z = readcoord();
+			vExploPos[0] = readcoord();
+			vExploPos[1] = readcoord();
+			vExploPos[2] = readcoord();
 			
 			Effect_CreateExplosion(vExploPos);
 			break;
 		case EV_MODELGIB:
 			vector vPos;
-			vPos_x = readcoord();
-			vPos_y = readcoord();
-			vPos_z = readcoord();
+			vPos[0] = readcoord();
+			vPos[1] = readcoord();
+			vPos[2] = readcoord();
 			
 			vector vSize;
-			vSize_x = readcoord();
-			vSize_y = readcoord();
-			vSize_z = readcoord();
+			vSize[0] = readcoord();
+			vSize[1] = readcoord();
+			vSize[2] = readcoord();
 
 			float fStyle = readbyte();
 			Effect_BreakModel(vPos, vSize, [0,0,0], fStyle);
@@ -435,13 +442,13 @@ void CSQC_Parse_Event(void)
 			vector vOrigin, vNormal;
 			
 			iType = (int)readbyte();
-			vOrigin_x = readcoord();
-			vOrigin_y = readcoord();
-			vOrigin_z = readcoord();
+			vOrigin[0] = readcoord();
+			vOrigin[1] = readcoord();
+			vOrigin[2] = readcoord();
 
-			vNormal_x = readcoord();
-			vNormal_y = readcoord();
-			vNormal_z = readcoord();
+			vNormal[0] = readcoord();
+			vNormal[1] = readcoord();
+			vNormal[2] = readcoord();
 			
 			Effect_Impact(iType, vOrigin, vNormal);
 			break;
diff --git a/Source/client/rewolf.src b/Source/client/rewolf.src
new file mode 100755
index 00000000..267fd73c
--- /dev/null
+++ b/Source/client/rewolf.src
@@ -0,0 +1,71 @@
+#pragma target fte
+#pragma progs_dat  "../../rewolf/csprogs.dat"
+
+#define CSQC
+#define VALVE
+
+#includelist
+../builtins.h
+../defs.h
+../math.h
+../materials.h
+../events.h
+../entities.h
+valve/defs.h
+defs.h
+vgui.h
+
+util.c
+valve/init.c
+
+../gs-entbase/client.src
+
+sound.c
+text.c
+voice.c
+
+../shared/valve/animations.c
+../shared/valve/player.cpp
+player.c
+../shared/pmove.c
+predict.c
+../shared/decals.c
+../shared/effects.c
+../shared/spraylogo.cpp
+
+../shared/valve/items.h
+../shared/valve/crosshair.h
+../shared/valve/weapons.h
+../shared/valve/w_crowbar.c
+../shared/valve/w_glock.c
+../shared/valve/w_python.c
+../shared/valve/w_mp5.c
+../shared/valve/w_crossbow.c
+../shared/valve/w_shotgun.c
+../shared/valve/w_rpg.c
+../shared/valve/w_gauss.c
+../shared/valve/w_egon.c
+../shared/valve/w_hornetgun.c
+../shared/valve/w_handgrenade.c
+../shared/valve/w_tripmine.c
+../shared/valve/w_satchel.c
+../shared/valve/w_snark.c
+../shared/valve/weapons.c
+
+valve/player.c
+entities.c
+
+valve/cmds.c
+valve/game_event.c
+events.c
+valve/view.c
+view.c
+damage.c
+chat.c
+valve/hud.c
+valve/hud_weaponselect.c
+valve/scoreboard.c
+
+valve/input.c
+entry.c
+#endlist
diff --git a/Source/client/valve/hud.c b/Source/client/valve/hud.c
index 399f488e..29d32295 100644
--- a/Source/client/valve/hud.c
+++ b/Source/client/valve/hud.c
@@ -263,10 +263,18 @@ void HUD_DrawAmmo3(void)
 void HUD_DrawFlashlight(void)
 {
 	vector pos;
+	player pl = (player)pSeat->ePlayer;
 	pos = video_mins + [video_res[0] - 48, 16];
-	
-	drawsubpic(pos, [32,32], HUD_NUMS, [spr_flash1[0], spr_flash1[1]],
+			  
+	if (pl.flags & FL_FLASHLIGHT) {
+		drawsubpic(pos, [32,32], HUD_NUMS, [spr_flash1[0], spr_flash1[1]],
+			  [spr_flash1[2], spr_flash1[3]], g_hud_color, 1.0, DRAWFLAG_ADDITIVE);
+		drawsubpic(pos, [48,32], HUD_NUMS, [spr_flash2[0], spr_flash2[1]],
+			  [spr_flash2[2], spr_flash2[3]], g_hud_color, 1.0, DRAWFLAG_ADDITIVE);
+	} else {
+		drawsubpic(pos, [32,32], HUD_NUMS, [spr_flash1[0], spr_flash1[1]],
 			  [spr_flash1[2], spr_flash1[3]], g_hud_color, HUD_ALPHA, DRAWFLAG_ADDITIVE);
+	}
 }
 
 void HUD_Draw(void)
diff --git a/Source/events.h b/Source/events.h
index 5b3e5ed9..2defda6a 100644
--- a/Source/events.h
+++ b/Source/events.h
@@ -6,6 +6,7 @@ enum {
 	EV_WEAPON_SECONDARYATTACK,
 	EV_WEAPON_RELOAD,
 	EV_IMPACT,
+	EV_GIBHUMAN,
 	EV_BLOOD,
 	EV_EXPLOSION,
 	EV_SPARK,
diff --git a/Source/gs-entbase/server/baseentity.cpp b/Source/gs-entbase/server/baseentity.cpp
index 92f97c02..85191905 100644
--- a/Source/gs-entbase/server/baseentity.cpp
+++ b/Source/gs-entbase/server/baseentity.cpp
@@ -112,4 +112,5 @@ void CBaseEntity :: Hide ( void )
 	setmodel( this, "" );
 	solid = SOLID_NOT;
 	movetype = MOVETYPE_NONE;
+	takedamage = DAMAGE_NO;
 }
diff --git a/Source/gs-entbase/server/func_door_rotating.cpp b/Source/gs-entbase/server/func_door_rotating.cpp
index 53f16a2e..6368e58b 100644
--- a/Source/gs-entbase/server/func_door_rotating.cpp
+++ b/Source/gs-entbase/server/func_door_rotating.cpp
@@ -150,14 +150,14 @@ void func_door_rotating::Away(void)
 	if (!(spawnflags & SF_ROT_ONEWAY)) {
 		/* One way doors only work on the Y axis */
 		if (!(spawnflags & SF_ROT_ZAXIS || spawnflags & SF_ROT_XAXIS)) {
-			vector vDifference = eActivator.origin - origin;
+			vector vDifference = (eActivator.origin - eActivator.view_ofs) - origin;
 			vector vAngles = eActivator.angles;
 			vAngles[0] = vAngles[2] = 0;
 
 			makevectors(vAngles);
-			vector vNext = (eActivator.origin + (v_forward * 10)) - origin;
+			vAngles = (eActivator.origin + (v_forward * 10)) - origin;
 
-			if (((vDifference[0] * vNext[1]) - (vDifference[1] * vNext[0])) < 0) {
+			if (((vDifference[0] * vAngles[1]) - (vDifference[1] * vAngles[0])) < 0) {
 				fDirection = -1.0f;
 			}
 		}
diff --git a/Source/gs-entbase/server/item_food.cpp b/Source/gs-entbase/server/item_food.cpp
index d0c85c91..fa50b8a9 100644
--- a/Source/gs-entbase/server/item_food.cpp
+++ b/Source/gs-entbase/server/item_food.cpp
@@ -16,7 +16,7 @@ class item_food
 
 void item_food :: Touch ( void )
 {
-	if ( other.classname != "Player" ) {
+	if ( other.classname != "player" ) {
 		return;
 	}
 	
@@ -25,6 +25,7 @@ void item_food :: Touch ( void )
 		bevOwner.m_iReady = TRUE;
 	}
 	
+	Damage_Apply(other, this, -1, other.origin, FALSE);
 	solid = SOLID_NOT;
 	remove( this );
 }
@@ -32,7 +33,7 @@ void item_food :: Touch ( void )
 void item_food :: Setup ( void )
 {
 	solid = SOLID_TRIGGER;
-	setsize( this, '-8 -8 -8', '8 8 8' );
+	setsize( this, '-16 -16 -16', '16 16 16' );
 	touch = Touch;
 
 	if ( m_iIsCan ) {
diff --git a/Source/server/defs.h b/Source/server/defs.h
index c12c825e..51487081 100644
--- a/Source/server/defs.h
+++ b/Source/server/defs.h
@@ -12,6 +12,7 @@ var int autocvar_mp_flashlight = TRUE;
 
 void Effect_Impact( int iType, vector vPos, vector vNormal );
 void Effect_CreateExplosion( vector vPos );
+void Effect_GibHuman( vector vPos);
 void Footsteps_Update( void );
 
 void TraceAttack_FireBullets( int iShots, vector vPos, int iDamage, vector vecAccuracy);
diff --git a/Source/server/rewolf.src b/Source/server/rewolf.src
new file mode 100755
index 00000000..a6f08341
--- /dev/null
+++ b/Source/server/rewolf.src
@@ -0,0 +1,66 @@
+#pragma target fte
+#pragma progs_dat  "../../rewolf/progs.dat"
+
+#define QWSSQC
+#define VALVE
+
+#includelist
+../builtins.h
+../defs.h
+valve/defs.h
+../math.h
+../materials.h
+../events.h
+../entities.h
+defs.h
+
+../gs-entbase/server.src
+valve/monster_rat.cpp
+
+../shared/decals.c
+../shared/effects.c
+../shared/spraylogo.cpp
+
+../shared/valve/player.cpp
+valve/player.c
+../shared/pmove.c
+valve/spectator.c
+../shared/valve/items.h
+../shared/valve/crosshair.h
+../shared/valve/weapons.h
+../shared/valve/w_crowbar.c
+../shared/valve/w_glock.c
+../shared/valve/w_python.c
+../shared/valve/w_mp5.c
+../shared/valve/w_crossbow.c
+../shared/valve/w_shotgun.c
+../shared/valve/w_rpg.c
+../shared/valve/w_gauss.c
+../shared/valve/w_egon.c
+../shared/valve/w_hornetgun.c
+../shared/valve/w_handgrenade.c
+../shared/valve/w_tripmine.c
+../shared/valve/w_satchel.c
+../shared/valve/w_snark.c
+valve/items.cpp
+../shared/valve/weapons.c
+
+spawn.c
+
+valve/client.c
+client.c
+
+valve/server.c
+server.c
+
+valve/damage.c
+traceattack.c
+vox.c
+
+footsteps.c
+flashlight.c
+valve/input.c
+
+valve/spawn.c
+entry.c
+#endlist
diff --git a/Source/server/scihunt/input.c b/Source/server/scihunt/input.c
index e0f5f4e8..c0b59228 100644
--- a/Source/server/scihunt/input.c
+++ b/Source/server/scihunt/input.c
@@ -46,6 +46,16 @@ void Game_Input(void)
 			}
 			bprint(PRINT_HIGH, "Respawning all map entities...\n");
 		}
+		
+		if (self.impulse == 103) {
+			// Respawn all the entities
+			for (entity a = world; (a = find(a, classname, "func_breakable"));) {
+				func_breakable caw = (func_breakable)a;
+				caw.vDeath(world, 0, 0);
+			}
+			bprint(PRINT_HIGH, "BREAK EVERYTHING!\n");
+		}
+		
 	}
 	
 	self.impulse = 0;
diff --git a/Source/server/scihunt/monster_scientist.cpp b/Source/server/scihunt/monster_scientist.cpp
index 453f0a6e..3a5b0ec8 100644
--- a/Source/server/scihunt/monster_scientist.cpp
+++ b/Source/server/scihunt/monster_scientist.cpp
@@ -6,10 +6,14 @@
 *
 ****/
 
+var int autocvar_sh_scialert = FALSE;
+var int autocvar_sh_scispeed = 40;
+
 enum {
 	SCI_IDLE,
 	SCI_WALK,
-	SCI_RUN
+	SCI_RUN,
+	SCI_DEAD
 };
 
 enum {
@@ -63,7 +67,8 @@ enumflags
 	SCIF_USED,
 	SCIF_SCARED,
 	SCIF_FEAR,
-	SCIF_SEEN
+	SCIF_SEEN,
+	SCIF_FALLING
 };
 
 string sci_snddie[] = {
@@ -292,15 +297,13 @@ class monster_scientist:CBaseEntity
 	virtual void() WarnOthers;
 };
 
+
+
 void monster_scientist::Gib(void)
 {
+	takedamage = DAMAGE_NO;
+	Effect_GibHuman(this.origin);
 	Hide();
-	
-	for (int i = 0; i < 5; i++) {
-		entity gib = spawn();
-		//gib.think = Util_Remove;
-		gib.nextthink = 10.0f;
-	}
 }
 
 void monster_scientist::WarnOthers(void)
@@ -404,7 +407,8 @@ void monster_scientist::Physics(void)
 		}
 	} else if (m_iFlags & SCIF_FEAR) {
 		Scream();
-		input_movevalues = [240, 0, 0];
+		maxspeed = 240 * (autocvar_sh_scispeed/40);
+		input_movevalues = [maxspeed, 0, 0];
 
 		if (m_flTraceTime < time) {
 			traceline(self.origin, self.origin + (v_forward * 32), FALSE, this);
@@ -439,6 +443,15 @@ void monster_scientist::Physics(void)
 	runstandardplayerphysics(this);
 	Footsteps_Update();
 
+	if (!(flags & FL_ONGROUND) && velocity[2] < -100) {
+		if (!(m_iFlags & SCIF_FALLING)) {
+			sound(this, CHAN_VOICE, sci_sndscream[0], 1.0, ATTN_NORM, m_flPitch);
+		}
+		m_iFlags |= SCIF_FALLING;
+	} else {
+		m_iFlags -= (flags & SCIF_FALLING);
+	}
+
 	movetype = MOVETYPE_NONE;
 }
 
@@ -492,18 +505,27 @@ void monster_scientist::vDeath(int iHitBody)
 	r = floor(random(0,sci_snddie.length));
 	sound(this, CHAN_VOICE, sci_snddie[r], 1.0, ATTN_NORM, m_flPitch);
 
-	solid = SOLID_CORPSE;
-	takedamage = DAMAGE_NO;
-	frame = SCIA_DIE_SIMPLE + floor(random(0, 6));
+	WarnOthers();
+
+	think = Respawn;
+	nextthink = time + 10.0f;
 
 	m_eUser = world;
 	customphysics = __NULL__;
 	m_iFlags = 0x0;
 
-	think = Respawn;
-	nextthink = time + 10.0f;
+	if (health < -50) {
+		Gib();
+		return;
+	}
 
-	WarnOthers();
+	solid = SOLID_CORPSE;
+	//takedamage = DAMAGE_NO;
+	
+	if (style != SCI_DEAD) {
+		frame = SCIA_DIE_SIMPLE + floor(random(0, 6));
+		style = SCI_DEAD;
+	}
 }
 
 void monster_scientist::Hide(void)
@@ -536,6 +558,10 @@ void monster_scientist::Respawn(void)
 	health = 50;
 	velocity = [0,0,0];
 	m_iFlags = 0x0;
+	
+	if (autocvar_sh_scialert) {
+		m_iFlags |= SCIF_FEAR;
+	}
 }
 
 void monster_scientist::monster_scientist(void)
diff --git a/Source/server/scihunt/shdata_parse.c b/Source/server/scihunt/shdata_parse.c
index 68174e50..c5187f37 100644
--- a/Source/server/scihunt/shdata_parse.c
+++ b/Source/server/scihunt/shdata_parse.c
@@ -6,21 +6,46 @@
 *
 ****/
 
+/* If only origin parameters are applied, make something up */
+var int autocvar_sh_sciyaw = TRUE;
+
+/* Limit the amount of scientists spawned */
+var int autocvar_sh_scimax = 30;
+
 string g_shItemList;
 
+void SHData_SpawnScientist(void)
+{
+	static int slimit = 0;
+	if (autocvar_sh_scimax) {
+		if (slimit >= autocvar_sh_scimax) {
+			dprint("shdata: scientist limit hit. ignored\n");
+			remove(self);
+			return;
+		}
+		slimit++;
+	}
+	spawnfunc_monster_scientist();
+}
+
 void SHData_New(void)
 {
 	entity new = spawn();
 	new.origin[0] = stof(argv(1));
 	new.origin[1] = stof(argv(2));
 	new.origin[2] = stof(argv(3));
+
+	if (autocvar_sh_sciyaw) {
+		new.angles[1] = Math_FixDelta(random(0,360));
+	}
+
 	setorigin(new, new.origin);
 
 	entity oldself = self;
 	self = new;
 
 	if (argv(0) == "monster_scientist") {
-		spawnfunc_monster_scientist();
+		SHData_SpawnScientist();
 	} else if (argv(0) == "info_player_team1") {
 		self.classname = "info_player_deathmatch";
 	} else if (argv(0) == "info_player_team2") {
@@ -44,7 +69,7 @@ void SHData_NewAngles(void)
 	self = new;
 	
 	if (argv(0) == "monster_scientist") {
-		spawnfunc_monster_scientist();
+		SHData_SpawnScientist();
 	} else if (argv(0) == "info_player_team1") {
 		self.classname = "info_player_deathmatch";
 	} else if (argv(0) == "info_player_team2") {
diff --git a/Source/server/valve/damage.c b/Source/server/valve/damage.c
index c9fbabd5..9a4547fa 100644
--- a/Source/server/valve/damage.c
+++ b/Source/server/valve/damage.c
@@ -75,7 +75,6 @@ void Damage_Apply(entity eTarget, entity eAttacker, float fDamage, vector vHitPo
 	self = eTarget;
 
 	if (self.health <= 0) {
-		self.health = 0;
 		self.vDeath(trace_surface_id);
 	} else {
 		self.vPain(trace_surface_id);
@@ -163,7 +162,7 @@ void Damage_Radius(vector vOrigin, entity eAttacker, float fDamage, float fRadiu
 			fDamage = rint(fDamage * fDiff);
 
 			if (fDiff > 0) {
-				Damage_Apply(eDChain, eAttacker, fDamage, eDChain.origin, 0);
+				Damage_Apply(eDChain, eAttacker, fDamage, vecRealPos, 0);
 				/*if (eDChain.movetype != MOVETYPE_NONE) {
 					vPush = vectoangles(vecRealPos - vOrigin);
 					makevectors(vPush);
diff --git a/Source/shared/decals.c b/Source/shared/decals.c
index a941dfbb..accb47f5 100644
--- a/Source/shared/decals.c
+++ b/Source/shared/decals.c
@@ -81,3 +81,12 @@ void Decals_PlaceScorch(vector pos)
 	decal.nextthink = time /*+ 0.1f*/;
 #endif
 }
+
+#ifdef CSQC
+float Effect_Decal(void)
+{
+	adddecal(self.classname, self.origin, self.mins, self.maxs, self.color, 1.0f);
+	addentity(self);
+	return PREDRAW_NEXT;
+}
+#endif
diff --git a/Source/shared/effects.c b/Source/shared/effects.c
index 0db668a7..a6dfecb4 100755
--- a/Source/shared/effects.c
+++ b/Source/shared/effects.c
@@ -7,6 +7,15 @@
 ****/
 
 #ifdef CSQC
+
+string g_hgibs[] = {
+	"models/gib_b_bone.mdl",
+	"models/gib_legbone.mdl",
+	"models/gib_lung.mdl",
+	"models/gib_skull.mdl",
+	"models/gib_b_gib.mdl"
+};
+
 void Effects_Init(void)
 {
 	precache_model("sprites/fexplo.spr");
@@ -49,6 +58,11 @@ void Effects_Init(void)
 	precache_sound("weapons/ric3.wav");
 	precache_sound("weapons/ric4.wav");
 	precache_sound("weapons/ric5.wav");
+	precache_sound("common/bodysplat.wav");
+
+	for (int i = 0; i < g_hgibs.length; i++) {
+		precache_model(g_hgibs[i]);
+	}
 
 	// Half-Life only has generic ric1-5
 #ifdef CSTRIKE
@@ -61,6 +75,41 @@ void Effects_Init(void)
 }
 #endif
 
+
+void Effect_GibHuman(vector pos) {
+#ifdef SSQC
+	WriteByte(MSG_MULTICAST, SVC_CGAMEPACKET);
+	WriteByte(MSG_MULTICAST, EV_GIBHUMAN);
+	WriteCoord(MSG_MULTICAST, pos[0]); 
+	WriteCoord(MSG_MULTICAST, pos[1]); 
+	WriteCoord(MSG_MULTICAST, pos[2]);
+	msg_entity = __NULL__;
+	multicast(pos, MULTICAST_PVS);
+#else
+	static void Gib_Remove(void) {
+		remove(self);
+	}
+	for (int i = 0; i < 5; i++) {
+		
+		vector vel;
+		vel[0] = random(-128,128);
+		vel[1] = random(-128,128);
+		vel[2] = (300 + random() * 64);
+	
+		entity gibb = spawn();
+		setmodel(gibb, g_hgibs[i]);
+		setorigin(gibb, pos);
+		gibb.movetype = MOVETYPE_BOUNCE;
+		gibb.velocity = vel;
+		gibb.avelocity = vectoangles(gibb.velocity);
+		gibb.think = Gib_Remove;
+		gibb.nextthink = time + 5.0f;
+		gibb.drawmask = MASK_ENGINE;
+	}
+	pointsound(pos, "common/bodysplat.wav", 1, ATTN_NORM);
+#endif
+}
+
 void Effect_CreateExplosion(vector vPos) {
 #ifdef SSQC
 	Decals_PlaceScorch(vPos);
@@ -408,12 +457,3 @@ void Effect_BreakModel(vector vMins, vector vMaxs, vector vVel, float fStyle) {
 	}
 #endif
 }
-
-#ifdef CSQC
-float Effect_Decal(void)
-{
-	adddecal(self.classname, self.origin, self.mins, self.maxs, self.color, 1.0f);
-	addentity(self);
-	return PREDRAW_NEXT;
-}
-#endif
diff --git a/cstrike/csprogs.dat b/cstrike/csprogs.dat
index a72f370f..057736bf 100644
Binary files a/cstrike/csprogs.dat and b/cstrike/csprogs.dat differ
diff --git a/cstrike/progs.dat b/cstrike/progs.dat
index a2a222e1..cfc19ae6 100644
Binary files a/cstrike/progs.dat and b/cstrike/progs.dat differ
diff --git a/rewolf/csprogs.dat b/rewolf/csprogs.dat
new file mode 100644
index 00000000..26175885
Binary files /dev/null and b/rewolf/csprogs.dat differ
diff --git a/rewolf/progs.dat b/rewolf/progs.dat
new file mode 100644
index 00000000..ded0ed96
Binary files /dev/null and b/rewolf/progs.dat differ
diff --git a/scihunt/csprogs.dat b/scihunt/csprogs.dat
index 0ed74de8..e7d450da 100644
Binary files a/scihunt/csprogs.dat and b/scihunt/csprogs.dat differ
diff --git a/scihunt/progs.dat b/scihunt/progs.dat
index 267cb556..2ae905c8 100644
Binary files a/scihunt/progs.dat and b/scihunt/progs.dat differ
diff --git a/valve/csprogs.dat b/valve/csprogs.dat
index c02a139a..3ff8a237 100644
Binary files a/valve/csprogs.dat and b/valve/csprogs.dat differ
diff --git a/valve/menu.dat b/valve/menu.dat
index ab2cfa34..d02e352d 100644
Binary files a/valve/menu.dat and b/valve/menu.dat differ
diff --git a/valve/progs.dat b/valve/progs.dat
index 43d42a80..ea8c2e18 100644
Binary files a/valve/progs.dat and b/valve/progs.dat differ