summaryrefslogtreecommitdiff
path: root/src/fpsgame/render.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/fpsgame/render.cpp')
-rw-r--r--src/fpsgame/render.cpp99
1 files changed, 21 insertions, 78 deletions
diff --git a/src/fpsgame/render.cpp b/src/fpsgame/render.cpp
index d6c8b91..4c06e07 100644
--- a/src/fpsgame/render.cpp
+++ b/src/fpsgame/render.cpp
@@ -4,15 +4,14 @@ struct spawninfo { const extentity *e; float weight; };
extern float gatherspawninfos(dynent *d, int tag, vector<spawninfo> &spawninfos);
namespace game
-{
+{
vector<fpsent *> bestplayers;
vector<const char *> bestteams;
VARP(ragdoll, 0, 1, 1);
VARP(ragdollmillis, 0, 10000, 300000);
VARP(ragdollfade, 0, 1000, 300000);
- VARFP(playermodel, 0, 0, 4, changedplayermodel());
- VARP(forceplayermodels, 0, 0, 1);
+ VARP(playermodel, 0, 0, 0);
VARP(hidedead, 0, 0, 2);
vector<fpsent *> ragdolls;
@@ -27,7 +26,7 @@ namespace game
r->attackchan = r->idlechan = -1;
if(d==player1) r->playermodel = playermodel;
ragdolls.add(r);
- d->ragdoll = NULL;
+ d->ragdoll = NULL;
}
void clearragdolls()
@@ -49,81 +48,38 @@ namespace game
}
}
- static const playermodelinfo playermodels[5] =
+ static const playermodelinfo playermodels[1] =
{
{ "mrfixit", "mrfixit/blue", "mrfixit/red", "mrfixit/hudguns", NULL, "mrfixit/horns", { "mrfixit/armor/blue", "mrfixit/armor/green", "mrfixit/armor/yellow" }, "mrfixit", "mrfixit_blue", "mrfixit_red", true },
- { "snoutx10k", "snoutx10k/blue", "snoutx10k/red", "snoutx10k/hudguns", NULL, "snoutx10k/wings", { "snoutx10k/armor/blue", "snoutx10k/armor/green", "snoutx10k/armor/yellow" }, "snoutx10k", "snoutx10k_blue", "snoutx10k_red", true },
- //{ "ogro/green", "ogro/blue", "ogro/red", "mrfixit/hudguns", "ogro/vwep", NULL, { NULL, NULL, NULL }, "ogro", "ogro_blue", "ogro_red", false },
- { "ogro2", "ogro2/blue", "ogro2/red", "mrfixit/hudguns", NULL, "ogro2/quad", { "ogro2/armor/blue", "ogro2/armor/green", "ogro2/armor/yellow" }, "ogro", "ogro_blue", "ogro_red", true },
- { "inky", "inky/blue", "inky/red", "inky/hudguns", NULL, "inky/quad", { "inky/armor/blue", "inky/armor/green", "inky/armor/yellow" }, "inky", "inky_blue", "inky_red", true },
- { "captaincannon", "captaincannon/blue", "captaincannon/red", "captaincannon/hudguns", NULL, "captaincannon/quad", { "captaincannon/armor/blue", "captaincannon/armor/green", "captaincannon/armor/yellow" }, "captaincannon", "captaincannon_blue", "captaincannon_red", true }
};
- int chooserandomplayermodel(int seed)
- {
- return (seed&0xFFFF)%(sizeof(playermodels)/sizeof(playermodels[0]));
- }
-
const playermodelinfo *getplayermodelinfo(int n)
{
- if(size_t(n) >= sizeof(playermodels)/sizeof(playermodels[0])) return NULL;
- return &playermodels[n];
+ (void) n;
+ return &playermodels[0];
}
const playermodelinfo &getplayermodelinfo(fpsent *d)
{
- const playermodelinfo *mdl = getplayermodelinfo(d==player1 || forceplayermodels ? playermodel : d->playermodel);
+ const playermodelinfo *mdl = getplayermodelinfo(0);
if(!mdl) mdl = getplayermodelinfo(playermodel);
return *mdl;
}
- void changedplayermodel()
- {
- if(player1->clientnum < 0) player1->playermodel = playermodel;
- if(player1->ragdoll) cleanragdoll(player1);
- loopv(ragdolls)
- {
- fpsent *d = ragdolls[i];
- if(!d->ragdoll) continue;
- if(!forceplayermodels)
- {
- const playermodelinfo *mdl = getplayermodelinfo(d->playermodel);
- if(mdl) continue;
- }
- cleanragdoll(d);
- }
- loopv(players)
- {
- fpsent *d = players[i];
- if(d == player1 || !d->ragdoll) continue;
- if(!forceplayermodels)
- {
- const playermodelinfo *mdl = getplayermodelinfo(d->playermodel);
- if(mdl) continue;
- }
- cleanragdoll(d);
- }
- }
-
void preloadplayermodel()
{
- loopi(sizeof(playermodels)/sizeof(playermodels[0]))
+ const playermodelinfo *mdl = getplayermodelinfo(0);
+ if(m_teammode)
{
- const playermodelinfo *mdl = getplayermodelinfo(i);
- if(!mdl) break;
- if(i != playermodel && (!multiplayer(false) || forceplayermodels)) continue;
- if(m_teammode)
- {
- preloadmodel(mdl->blueteam);
- preloadmodel(mdl->redteam);
- }
- else preloadmodel(mdl->ffa);
- if(mdl->vwep) preloadmodel(mdl->vwep);
- if(mdl->quad) preloadmodel(mdl->quad);
- loopj(3) if(mdl->armour[j]) preloadmodel(mdl->armour[j]);
+ preloadmodel(mdl->blueteam);
+ preloadmodel(mdl->redteam);
}
+ else preloadmodel(mdl->ffa);
+ if(mdl->vwep) preloadmodel(mdl->vwep);
+ if(mdl->quad) preloadmodel(mdl->quad);
+ loopj(3) if(mdl->armour[j]) preloadmodel(mdl->armour[j]);
}
-
+
VAR(testquad, 0, 0, 1);
VAR(testarmour, 0, 0, 1);
VAR(testteam, 0, 0, 3);
@@ -180,13 +136,6 @@ namespace game
case 2: mdlname = mdl.redteam; break;
}
renderclient(d, mdlname, a[0].tag ? a : NULL, hold, attack, delay, lastaction, intermission && d->state!=CS_DEAD ? 0 : d->lastpain, fade, ragdoll && mdl.ragdoll);
-#if 0
- if(d->state!=CS_DEAD && d->quadmillis)
- {
- entitylight light;
- rendermodel(&light, "quadrings", ANIM_MAPMODEL|ANIM_LOOP, vec(d->o).sub(vec(0, 0, d->eyeheight/2)), 360*lastmillis/1000.0f, 0, MDL_DYNSHADOW | MDL_CULL_VFC | MDL_CULL_DIST);
- }
-#endif
}
VARP(teamskins, 0, 0, 1);
@@ -336,13 +285,11 @@ namespace game
int team = 0;
if(teamskins || m_teammode) team = isteam(player1->team, d->team) ? 1 : 2;
float fade = 1.0f;
- if(ragdollmillis && ragdollfade)
+ if(ragdollmillis && ragdollfade)
fade -= clamp(float(lastmillis - (d->lastupdate + max(ragdollmillis - ragdollfade, 0)))/min(ragdollmillis, ragdollfade), 0.0f, 1.0f);
renderplayer(d, getplayermodelinfo(d), team, fade, mainpass);
- }
+ }
if(isthirdperson() && !followingplayer() && (player1->state!=CS_DEAD || hidedead != 1)) renderplayer(player1, getplayermodelinfo(player1), teamskins || m_teammode ? 1 : 0, 1, mainpass);
- rendermonsters();
- rendermovables();
entities::renderentities();
renderbouncers();
renderprojectiles();
@@ -444,8 +391,8 @@ namespace game
void drawhudgun()
{
fpsent *d = hudplayer();
- if(d->state==CS_SPECTATOR || d->state==CS_EDITING || !hudgun || editmode)
- {
+ if(d->state==CS_SPECTATOR || d->state==CS_EDITING || !hudgun || editmode)
+ {
d->muzzle = player1->muzzle = vec(-1, -1, -1);
return;
}
@@ -540,10 +487,7 @@ namespace game
void preloadsounds()
{
- for(int i = S_JUMP; i <= S_SPLASH2; i++) preloadsound(i);
- for(int i = S_JUMPPAD; i <= S_PISTOL; i++) preloadsound(i);
- for(int i = S_V_BOOST; i <= S_V_QUAD10; i++) preloadsound(i);
- for(int i = S_BURN; i <= S_HIT; i++) preloadsound(i);
+ for(int i = S_JUMP; i <= S_HIT; i++) preloadsound(i);
}
void preload()
@@ -553,7 +497,6 @@ namespace game
preloadplayermodel();
preloadsounds();
entities::preloadentities();
- if(m_sp) preloadmonsters();
}
}