diff --git a/Source/gs-entbase/client/sky.c b/Source/gs-entbase/client/sky.c index 61e0a4e4..e832c4ff 100644 --- a/Source/gs-entbase/client/sky.c +++ b/Source/gs-entbase/client/sky.c @@ -16,6 +16,6 @@ void Sky_Update(void) void Sky_Set(string name) { g_skyname = name; - print(sprintf("[SKY] Set to %s", g_skyname)); + dprint(sprintf("[SKY] Set to %s\n", g_skyname)); Sky_Update(); } diff --git a/Source/shared/scihunt/weapons.h b/Source/shared/scihunt/weapons.h index 866629ef..8329424b 100644 --- a/Source/shared/scihunt/weapons.h +++ b/Source/shared/scihunt/weapons.h @@ -74,6 +74,7 @@ void Decals_PlaceSmall(vector pos); void Decals_PlaceBig(vector pos); void Weapons_MakeVectors(void); void Weapons_ViewAnimation(int i); +vector Weapons_GetCameraPos(void); void Weapons_ViewPunchAngle(vector add); void Weapons_PlaySound(entity t, float ch, string s, float vol, float at); int Weapons_IsPresent(player pl, int w); diff --git a/Source/shared/valve/w_crossbow.c b/Source/shared/valve/w_crossbow.c index 9bcd06e7..bb055509 100644 --- a/Source/shared/valve/w_crossbow.c +++ b/Source/shared/valve/w_crossbow.c @@ -24,15 +24,18 @@ enum void w_crossbow_precache(void) { +#ifdef CSQC precache_model("models/v_crossbow.mdl"); + precache_model("models/crossbow_bolt.mdl"); +#else precache_model("models/w_crossbow.mdl"); precache_model("models/p_crossbow.mdl"); - precache_model("models/crossbow_bolt.mdl"); precache_sound("weapons/xbow_reload1.wav"); precache_sound("weapons/xbow_fire1.wav"); precache_sound("weapons/xbow_hit1.wav"); precache_sound("weapons/xbow_hitbod1.wav"); precache_sound("weapons/xbow_hitbod2.wav"); +#endif } string w_crossbow_vmodel(void) { @@ -51,27 +54,38 @@ string w_crossbow_deathmsg(void) return ""; } +void w_crossbow_pickup(void) +{ +#ifdef SSQC + player pl = (player)self; + pl.crossbow_mag = bound(0, pl.crossbow_mag + 5, 5); +#endif +} + void w_crossbow_draw(void) { + player pl = (player)self; #ifdef CSQC - if (1/* has clip*/) { + if (pl.a_ammo1) { Weapons_ViewAnimation(CROSSBOW_DRAW1); } else { Weapons_ViewAnimation(CROSSBOW_DRAW2); } #else - player pl = (player)self; Weapons_UpdateAmmo(pl, pl.crossbow_mag, pl.ammo_bolt, __NULL__); #endif } void w_crossbow_holster(void) { - if (1/* has clip*/) { + player pl = (player)self; +#ifdef CSQC + if (pl.a_ammo1) { Weapons_ViewAnimation(CROSSBOW_HOLSTER1); } else { Weapons_ViewAnimation(CROSSBOW_HOLSTER2); } +#endif } void w_crossbow_primary(void) { @@ -80,7 +94,8 @@ void w_crossbow_primary(void) return; } - if (1/* has clip*/) { +#ifdef CSQC + if (pl.a_ammo1) { Weapons_ViewAnimation(CROSSBOW_FIRE1); Weapons_PlaySound(pl, CHAN_ITEM, "weapons/xbow_reload1.wav", 1, ATTN_NORM); } else { @@ -88,9 +103,10 @@ void w_crossbow_primary(void) } Weapons_PlaySound(pl, CHAN_WEAPON, "weapons/xbow_fire1.wav", 1, ATTN_NORM); +#endif -#ifdef SSQC static void Crossbolt_Touch(void) { +#ifdef SSQC Effect_CreateSpark(self.origin, trace_plane_normal); if (other.takedamage == DAMAGE_YES) { @@ -103,12 +119,23 @@ void w_crossbow_primary(void) } else { Weapons_PlaySound(self, CHAN_WEAPON, "weapons/xbow_hit1.wav", 1, ATTN_NORM); } +#endif remove(self); } - makevectors(self.v_angle); + Weapons_MakeVectors(); entity bolt = spawn(); - setorigin(bolt, self.origin + self.view_ofs + (v_forward * 16)); + +#ifdef SSQC + static float bolt_nosend(entity pvsent, float fl) { + return FALSE; + } + bolt.SendEntity = bolt_nosend; + bolt.SendFlags = 1; +#else setmodel(bolt, "models/crossbow_bolt.mdl"); + bolt.drawmask = MASK_ENGINE; +#endif + setorigin(bolt, Weapons_GetCameraPos() + (v_forward * 16)); bolt.owner = self; bolt.velocity = v_forward * 2000; bolt.movetype = MOVETYPE_FLY; @@ -118,7 +145,6 @@ void w_crossbow_primary(void) bolt.avelocity[2] = 10; bolt.touch = Crossbolt_Touch; setsize(bolt, [0,0,0], [0,0,0]); -#endif Weapons_ViewPunchAngle([-2,0,0]); pl.w_attack_next = 0.75f; @@ -145,8 +171,11 @@ void w_crossbow_reload(void) return; } +#ifdef CSQC Weapons_PlaySound(pl, CHAN_ITEM, "weapons/xbow_reload1.wav", 1, ATTN_NORM); Weapons_ViewAnimation(CROSSBOW_RELOAD); +#endif + pl.w_attack_next = 4.5f; pl.w_idle_next = 10.0f; } @@ -157,21 +186,23 @@ void w_crossbow_release(void) return; } +#ifdef CSQC if (random() < 0.75) { - if (1/* has clip*/) { + if (pl.a_ammo1) { Weapons_ViewAnimation(CROSSBOW_IDLE1); } else { Weapons_ViewAnimation(CROSSBOW_IDLE2); } pl.w_idle_next = 10.0f; } else { - if (1/* has clip*/) { + if (pl.a_ammo1) { Weapons_ViewAnimation(CROSSBOW_FIDGET1); } else { Weapons_ViewAnimation(CROSSBOW_FIDGET2); } pl.w_idle_next = 3.0f; } +#endif } void w_crossbow_crosshair(void) { @@ -208,7 +239,7 @@ weapon_t w_crossbow = w_crossbow_release, w_crossbow_crosshair, w_crossbow_precache, - __NULL__, + w_crossbow_pickup, w_crossbow_vmodel, w_crossbow_wmodel, w_crossbow_pmodel, diff --git a/Source/shared/valve/weapon_common.c b/Source/shared/valve/weapon_common.c index 15a79a4a..6d3caa5a 100644 --- a/Source/shared/valve/weapon_common.c +++ b/Source/shared/valve/weapon_common.c @@ -141,6 +141,15 @@ void Weapons_MakeVectors(void) #endif } +vector Weapons_GetCameraPos(void) +{ +#ifdef SSQC + return self.origin + self.view_ofs; +#else + return pSeat->vPlayerOrigin + self.view_ofs; +#endif +} + void Weapons_ViewAnimation(int i) { #ifdef CSQC diff --git a/Source/shared/valve/weapons.h b/Source/shared/valve/weapons.h index 90c6bba4..291882cc 100644 --- a/Source/shared/valve/weapons.h +++ b/Source/shared/valve/weapons.h @@ -70,6 +70,7 @@ void Weapons_DrawCrosshair(void); void Decals_PlaceSmall(vector pos); void Decals_PlaceBig(vector pos); void Weapons_MakeVectors(void); +vector Weapons_GetCameraPos(void); void Weapons_ViewAnimation(int i); void Weapons_ViewPunchAngle(vector add); void Weapons_PlaySound(entity t, float ch, string s, float vol, float at); diff --git a/cstrike/data.pk3dir/csprogs.dat b/cstrike/data.pk3dir/csprogs.dat index d5e9bcda..d7b54dfb 100644 Binary files a/cstrike/data.pk3dir/csprogs.dat and b/cstrike/data.pk3dir/csprogs.dat differ diff --git a/cstrike/gfx.wad b/cstrike/data.pk3dir/gfx.wad similarity index 100% rename from cstrike/gfx.wad rename to cstrike/data.pk3dir/gfx.wad diff --git a/cstrike/data.pk3dir/progs.dat b/cstrike/data.pk3dir/progs.dat index 78f40db4..f3764ba6 100644 Binary files a/cstrike/data.pk3dir/progs.dat and b/cstrike/data.pk3dir/progs.dat differ diff --git a/rewolf/data.pk3dir/csprogs.dat b/rewolf/data.pk3dir/csprogs.dat index 4772fbb8..957af656 100644 Binary files a/rewolf/data.pk3dir/csprogs.dat and b/rewolf/data.pk3dir/csprogs.dat differ diff --git a/rewolf/data.pk3dir/progs.dat b/rewolf/data.pk3dir/progs.dat index cb04d2a2..8b61e54e 100644 Binary files a/rewolf/data.pk3dir/progs.dat and b/rewolf/data.pk3dir/progs.dat differ diff --git a/scihunt/data.pk3dir/csprogs.dat b/scihunt/data.pk3dir/csprogs.dat index 1918f09b..d3e1a724 100644 Binary files a/scihunt/data.pk3dir/csprogs.dat and b/scihunt/data.pk3dir/csprogs.dat differ diff --git a/scihunt/data.pk3dir/progs.dat b/scihunt/data.pk3dir/progs.dat index 9b10dc9e..88243139 100644 Binary files a/scihunt/data.pk3dir/progs.dat and b/scihunt/data.pk3dir/progs.dat differ diff --git a/valve/data.pk3dir/csprogs.dat b/valve/data.pk3dir/csprogs.dat index b235f4ec..09604928 100644 Binary files a/valve/data.pk3dir/csprogs.dat and b/valve/data.pk3dir/csprogs.dat differ diff --git a/valve/data.pk3dir/menu.dat b/valve/data.pk3dir/menu.dat index 247c6c41..8e6c82d1 100644 Binary files a/valve/data.pk3dir/menu.dat and b/valve/data.pk3dir/menu.dat differ diff --git a/valve/data.pk3dir/progs.dat b/valve/data.pk3dir/progs.dat index 0eda9e42..3957abc4 100644 Binary files a/valve/data.pk3dir/progs.dat and b/valve/data.pk3dir/progs.dat differ