diff options
| author | xolatile | 2025-07-17 23:28:55 +0200 |
|---|---|---|
| committer | xolatile | 2025-07-17 23:28:55 +0200 |
| commit | c79dda69d6e603500a5681430172b5152041af0a (patch) | |
| tree | c1669442318e77a9ae76009edd5eefcaa69064ce /src/fpsgame/render.cpp | |
| parent | 5b88d873f42b1cad5c5fd03888cfe45b82da06d6 (diff) | |
| download | xolatile-badassbug-c79dda69d6e603500a5681430172b5152041af0a.tar.xz xolatile-badassbug-c79dda69d6e603500a5681430172b5152041af0a.tar.zst | |
Big changed mentioned in IRC channel...
Diffstat (limited to 'src/fpsgame/render.cpp')
| -rw-r--r-- | src/fpsgame/render.cpp | 99 |
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(); } } |
