diff --git a/source/src/clientextras.cpp b/source/src/clientextras.cpp index 84ad9842..607fe640 100644 --- a/source/src/clientextras.cpp +++ b/source/src/clientextras.cpp @@ -52,7 +52,13 @@ void renderclients() loopv(players) if((d = players[i]) && (!demoplayback || i!=democlientnum)) { - //if (d->state==CS_DEAD) break; //cheap hack fix of + //if (d->state==CS_DEAD) break; //cheap hack fix of + if(strcmp(d->name, "dummy") == 0) + { + d->gunselect = player1->gunselect; + d->state = CS_ALIVE; + d->moving = true; + }; if (!strcmp(d->team,"CT")) { @@ -61,9 +67,10 @@ void renderclients() else //if (!strcmp(d->team,"T")) { renderclient(d, isteam(player1->team, d->team), "playermodels/terrorist", false, 1.4f); - } - - renderclient(d, isteam(player1->team, d->team), "vwep/subgun", true, 1.4f); + } + + sprintf_sd(vwep)("weapons/%s/world", hudgunnames[d->gunselect]); + renderclient(d, isteam(player1->team, d->team), vwep, true, 1.4f); }; if(player1->state==CS_DEAD) { @@ -72,9 +79,20 @@ void renderclients() else renderclient(player1, true, "playermodels/terrorist", false, 1.4f); - renderclient(player1, true, "vwep/subgun", true, 1.4f); + sprintf_sd(vwep)("weapons/%s/world", hudgunnames[d->gunselect]); + renderclient(d, isteam(player1->team, d->team), vwep, true, 1.4f); }; }; + +void spawn_dummy() +{ + dynent *d = newdynent(); + players.add(d); + d->o = player1->o; + d->gunselect = player1->gunselect; + d->monsterstate = M_NONE; + strcpy(d->name, "dummy"); +}; COMMAND(spawn_dummy, ARG_NONE); // creation of scoreboard pseudo-menu diff --git a/source/src/clients2c.cpp b/source/src/clients2c.cpp index 44be9a80..443b3951 100644 --- a/source/src/clients2c.cpp +++ b/source/src/clients2c.cpp @@ -182,7 +182,7 @@ void localservertoclient(uchar *buf, int len) // processes any updates from th e.y = getint(p)/DMF; e.z = getint(p)/DMF; if(gun==GUN_SHOTGUN) createrays(s, e); - int nadesec = getint(p); + int nadesec = getint(p)*100; printf("nadesec: %i\n", nadesec); shootv(gun, s, e, d, nadesec); break; diff --git a/source/src/main.cpp b/source/src/main.cpp index 85cbea38..9eeec233 100644 --- a/source/src/main.cpp +++ b/source/src/main.cpp @@ -165,7 +165,7 @@ int main(int argc, char **argv) !installtex(9, path(newstring("packages/misc/martin/ball3.png")), xs, ys) || !installtex(4, path(newstring("packages/misc/explosion.jpg")), xs, ys) || !installtex(5, path(newstring("packages/misc/items.png")), xs, ys) || - !installtex(1, path(newstring("packages/crosshairs/default.png")), xs, ys)) fatal("could not find core textures (hint: run cube from the parent of the bin directory)"); + !installtex(1, path(newstring("packages/misc/crosshairs/default.png")), xs, ys)) fatal("could not find core textures (hint: run cube from the parent of the bin directory)"); log("sound"); initsound(); diff --git a/source/src/renderextras.cpp b/source/src/renderextras.cpp index e589c7bc..fbb59c27 100644 --- a/source/src/renderextras.cpp +++ b/source/src/renderextras.cpp @@ -988,7 +988,7 @@ void renderphysents() physent *d = physents[i]; - if(d && d->throwed) rendermodel("vwep/grenade_static", 0, 1, 0, 0, d->o.x, d->o.z, d->o.y, d->yaw, d->pitch, false, 2.0f, 100.0f, 0, 0); + if(d && d->throwed) rendermodel("weapons/grenade/static", 0, 1, 0, 0, d->o.x, d->o.z, d->o.y, d->yaw, d->pitch, false, 2.0f, 100.0f, 0, 0); }; diff --git a/source/src/rendergl.cpp b/source/src/rendergl.cpp index e6e38d11..626bfead 100644 --- a/source/src/rendergl.cpp +++ b/source/src/rendergl.cpp @@ -555,7 +555,7 @@ VAR(hudgun,0,1,1); -char *hudgunnames[] = { "knife", "semipistol", "shotgun", "subgun", "sniper", "auto", "grenade" }; +char *hudgunnames[] = { "knife", "pistol", "shotgun", "subgun", "sniper", "assault", "grenade" }; diff --git a/source/src/rendermd3.cpp b/source/src/rendermd3.cpp index 3e78e8a5..9e89ef6e 100644 --- a/source/src/rendermd3.cpp +++ b/source/src/rendermd3.cpp @@ -475,10 +475,12 @@ void rendermd3gun() float swayupspeed = (float) (sin((float)lastmillis/swayupspeeddiv-90))/(swayupmovediv/10.0f); //conoutf("%i up %i", swayspeed*1000, swayupspeed*1000); + + #define g0(x) ((x) < 0.0f ? -(x) : (x)) + float plspeed = max(0.1f, min(1.0f, sqrt(g0(player1->vel.x*player1->vel.x) + g0(player1->vel.y*player1->vel.y)))); +// if(plspeed<0.0f) plspeed = -plspeed; - float plspeed = max(0.1f, min(1.0f, sqrt(player1->vel.x*player1->vel.x + player1->vel.y*player1->vel.y))); swayspeed *= plspeed/2; - swayupspeed *= plspeed/2; // rotate 90° around z axis diff --git a/source/src/sound.cpp b/source/src/sound.cpp index 27b1ddc9..a77c839b 100644 --- a/source/src/sound.cpp +++ b/source/src/sound.cpp @@ -168,7 +168,7 @@ void music(char *name) string sn; - strcpy_s(sn, "packages/songs/"); + strcpy_s(sn, "packages/audio/songs"); strcat_s(sn, name); @@ -412,7 +412,7 @@ void playsound(int n, vec *loc) { - sprintf_sd(buf)("packages/sounds/%s.wav", snames[n]); + sprintf_sd(buf)("packages/audio/sounds/%s.wav", snames[n]); diff --git a/source/src/weapon.cpp b/source/src/weapon.cpp index 62535ae4..3ae2254c 100644 --- a/source/src/weapon.cpp +++ b/source/src/weapon.cpp @@ -53,35 +53,20 @@ void wdw() }; void primary() - { - player1->gunselect=player1->primary; - }; - - void secondary() - { - player1->gunselect=GUN_PISTOL; - }; - - void melee() - { - player1->gunselect=GUN_KNIFE; - }; - - COMMAND(primary,ARG_NONE); COMMAND(secondary,ARG_NONE); @@ -499,44 +484,6 @@ void spreadandrecoil(vec & from, vec & to, dynent * d) vmul(recoil, rcl); vadd(d->vel, recoil); if(d->pitch<80.0f) d->pitch += guns[d->gunselect].recoil*0.05f; - - /* old - //nothing specail for a knife - if (d->gunselect==GUN_KNIFE) return; - - //spread - vdist(dist, unitv, from, to); - float f = dist/1000; - int spd = guns[d->gunselect].spread; - - //recoil - int rcl = guns[d->gunselect].recoil*-0.01f; - - if ((d->gunselect==GUN_ASSULT) && (d->shots<=3)) - { - spd = spd / 5; - }; - - if ((d->gunselect==GUN_SNIPER) && (d->vel.x<.25f && d->vel.y<.25f)) - { - spd = 1; - rcl = rcl / 3; - }; - - if (d->gunselect!=GUN_SHOTGUN) //no spread on shotgun - { - #define RNDD (rnd(spd)-spd/2)*f - vec r = { RNDD, RNDD, RNDD }; - vadd(to, r); - }; - - //increase pitch for recoil - vdiv(unitv, dist); - vec recoil = unitv; - vmul(recoil, rcl); - vadd(d->vel, recoil); - if(d->pitch<80.0f) d->pitch += guns[d->gunselect].recoil*0.05f; -*/ }; void shoot(dynent *d, vec &targ) @@ -597,7 +544,7 @@ void shoot(dynent *d, vec &targ) //if(d->quadmillis && attacktime>200) playsoundc(S_ITEMPUP); shootv(d->gunselect, from, to, d, 0); - addmsg(1, 9, SV_SHOT, d->gunselect, (int)(from.x*DMF), (int)(from.y*DMF), (int)(from.z*DMF), (int)(to.x*DMF), (int)(to.y*DMF), (int)(to.z*DMF), (int) grenade_throw ? lastmillis-curnade->millis : 0 ); + addmsg(1, 9, SV_SHOT, d->gunselect, (int)(from.x*DMF), (int)(from.y*DMF), (int)(from.z*DMF), (int)(to.x*DMF), (int)(to.y*DMF), (int)(to.z*DMF), (int) grenade_throw ? (lastmillis-curnade->millis)/100 : 0 ); d->gunwait = guns[d->gunselect].attackdelay; if(guns[d->gunselect].projspeed) return;