mirror of
https://github.com/ZDoom/Raze.git
synced 2025-02-21 02:51:46 +00:00
- WHaven: Interpolate weapon HUD bobbing/swaying.
This commit is contained in:
parent
6390efe32e
commit
16c0f88451
3 changed files with 42 additions and 39 deletions
|
@ -13,9 +13,8 @@ static void overwritesprite(double thex, double they, int tilenum, int shade, in
|
|||
hud_drawsprite(thex, they, 65536, (stat & RS_NOCLIP) << 7, tilenum, shade, dapalnum, dastat);
|
||||
}
|
||||
|
||||
void drawweapons(int snum) {
|
||||
|
||||
int dax, day;
|
||||
void drawweapons(int snum, double const dasmoothratio) {
|
||||
double dax, day;
|
||||
int dashade;
|
||||
int dapalnum;
|
||||
|
||||
|
@ -30,6 +29,10 @@ void drawweapons(int snum) {
|
|||
dapalnum = 0;
|
||||
}
|
||||
|
||||
// Interpoplated snake values for smooth bobbing.
|
||||
double dasnakex = osnakex + MulScaleF(snakex - osnakex, dasmoothratio, 16);
|
||||
double dasnakey = osnakey + MulScaleF(snakey - osnakey, dasmoothratio, 16);
|
||||
|
||||
int dabits;
|
||||
if (plr.invisibletime > 0)
|
||||
dabits = RS_TRANS1;
|
||||
|
@ -167,33 +170,33 @@ void drawweapons(int snum) {
|
|||
if (plr.currweaponframe == BOWREADYEND) {
|
||||
if (isWh2()) {
|
||||
if (plr.weapon[plr.currweapon] == 1) {
|
||||
day = readyanimtics[plr.currweapon][6].curry + snakey + 8;
|
||||
dax = readyanimtics[plr.currweapon][6].currx + snakex + 8;
|
||||
day = readyanimtics[plr.currweapon][6].curry + dasnakey + 8;
|
||||
dax = readyanimtics[plr.currweapon][6].currx + dasnakex + 8;
|
||||
}
|
||||
else {
|
||||
day = zreadyanimtics[plr.currweapon][6].curry + snakey + 8;
|
||||
dax = zreadyanimtics[plr.currweapon][6].currx + snakex + 8;
|
||||
day = zreadyanimtics[plr.currweapon][6].curry + dasnakey + 8;
|
||||
dax = zreadyanimtics[plr.currweapon][6].currx + dasnakex + 8;
|
||||
}
|
||||
}
|
||||
else {
|
||||
day = readyanimtics[plr.currweapon][6].curry + snakey + 8;
|
||||
dax = readyanimtics[plr.currweapon][6].currx + snakex + 8;
|
||||
day = readyanimtics[plr.currweapon][6].curry + dasnakey + 8;
|
||||
dax = readyanimtics[plr.currweapon][6].currx + dasnakex + 8;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (isWh2()) {
|
||||
if (plr.weapon[plr.currweapon] == 1 || plr.weapon[7] == 2) {
|
||||
day = weaponanimtics[plr.currweapon][0].curry + snakey + 8;
|
||||
dax = weaponanimtics[plr.currweapon][0].currx + snakex + 8;
|
||||
day = weaponanimtics[plr.currweapon][0].curry + dasnakey + 8;
|
||||
dax = weaponanimtics[plr.currweapon][0].currx + dasnakex + 8;
|
||||
}
|
||||
else {
|
||||
day = zweaponanimtics[plr.currweapon][0].curry + snakey + 8;
|
||||
dax = zweaponanimtics[plr.currweapon][0].currx + snakex + 8;
|
||||
day = zweaponanimtics[plr.currweapon][0].curry + dasnakey + 8;
|
||||
dax = zweaponanimtics[plr.currweapon][0].currx + dasnakex + 8;
|
||||
}
|
||||
}
|
||||
else {
|
||||
day = weaponanimtics[plr.currweapon][0].curry + snakey + 8;
|
||||
dax = weaponanimtics[plr.currweapon][0].currx + snakex + 8;
|
||||
day = weaponanimtics[plr.currweapon][0].curry + dasnakey + 8;
|
||||
dax = weaponanimtics[plr.currweapon][0].currx + dasnakex + 8;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -238,7 +241,7 @@ void drawweapons(int snum) {
|
|||
overwritesprite(0, day + 8, plr.currweaponframe + 6, dashade, dabits, dapalnum);
|
||||
}
|
||||
else if (plr.currweaponframe != 0)
|
||||
overwritesprite(dax + snakex, day, plr.currweaponframe, dashade, dabits, dapalnum);
|
||||
overwritesprite(dax + dasnakex, day, plr.currweaponframe, dashade, dabits, dapalnum);
|
||||
break;
|
||||
case 2: // unready
|
||||
if (isWh2()) {
|
||||
|
@ -348,30 +351,30 @@ void drawweapons(int snum) {
|
|||
&& plr.selectedgun < 5) {
|
||||
if (plr.shieldtype == 1) {
|
||||
if (plr.shieldpoints > 75) {
|
||||
overwritesprite(-40 + snakex, 100 + snakey, GRONSHIELD, dashade, dabits, dapalnum);
|
||||
overwritesprite(-40 + dasnakex, 100 + dasnakey, GRONSHIELD, dashade, dabits, dapalnum);
|
||||
}
|
||||
else if (plr.shieldpoints > 50 && plr.shieldpoints < 76) {
|
||||
overwritesprite(-40 + snakex, 100 + snakey, GRONSHIELD + 1, dashade, dabits, dapalnum);
|
||||
overwritesprite(-40 + dasnakex, 100 + dasnakey, GRONSHIELD + 1, dashade, dabits, dapalnum);
|
||||
}
|
||||
else if (plr.shieldpoints > 25 && plr.shieldpoints < 51) {
|
||||
overwritesprite(-40 + snakex, 100 + snakey, GRONSHIELD + 2, dashade, dabits, dapalnum);
|
||||
overwritesprite(-40 + dasnakex, 100 + dasnakey, GRONSHIELD + 2, dashade, dabits, dapalnum);
|
||||
}
|
||||
else {
|
||||
overwritesprite(-40 + snakex, 100 + snakey, GRONSHIELD + 3, dashade, dabits, dapalnum);
|
||||
overwritesprite(-40 + dasnakex, 100 + dasnakey, GRONSHIELD + 3, dashade, dabits, dapalnum);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (plr.shieldpoints > 150) {
|
||||
overwritesprite(-40 + snakex, 100 + snakey, ROUNDSHIELD, dashade, dabits, dapalnum);
|
||||
overwritesprite(-40 + dasnakex, 100 + dasnakey, ROUNDSHIELD, dashade, dabits, dapalnum);
|
||||
}
|
||||
else if (plr.shieldpoints > 100 && plr.shieldpoints < 151) {
|
||||
overwritesprite(-40 + snakex, 100 + snakey, ROUNDSHIELD + 1, dashade, dabits, dapalnum);
|
||||
overwritesprite(-40 + dasnakex, 100 + dasnakey, ROUNDSHIELD + 1, dashade, dabits, dapalnum);
|
||||
}
|
||||
else if (plr.shieldpoints > 50 && plr.shieldpoints < 101) {
|
||||
overwritesprite(-40 + snakex, 100 + snakey, ROUNDSHIELD + 2, dashade, dabits, dapalnum);
|
||||
overwritesprite(-40 + dasnakex, 100 + dasnakey, ROUNDSHIELD + 2, dashade, dabits, dapalnum);
|
||||
}
|
||||
else {
|
||||
overwritesprite(-40 + snakex, 100 + snakey, ROUNDSHIELD + 3, dashade, dabits, dapalnum);
|
||||
overwritesprite(-40 + dasnakex, 100 + dasnakey, ROUNDSHIELD + 3, dashade, dabits, dapalnum);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -400,16 +403,15 @@ void drawscary() {
|
|||
}
|
||||
|
||||
|
||||
void DrawHud(double const dasmoothratio) {
|
||||
if (!player[pyrn].dead)
|
||||
drawweapons(pyrn, dasmoothratio);
|
||||
if (player[pyrn].spiked == 1)
|
||||
spikeheart(player[pyrn]);
|
||||
if (scarytime >= 0)
|
||||
drawscary();
|
||||
|
||||
void DrawHud(float smooth) {
|
||||
if (!player[pyrn].dead)
|
||||
drawweapons(pyrn);
|
||||
if (player[pyrn].spiked == 1)
|
||||
spikeheart(player[pyrn]);
|
||||
if (scarytime >= 0)
|
||||
drawscary();
|
||||
|
||||
//drawInterface(player[pyrn]);
|
||||
}
|
||||
//drawInterface(player[pyrn]);
|
||||
}
|
||||
|
||||
END_WH_NS
|
||||
|
|
|
@ -14,7 +14,7 @@ int dropshieldcnt = 0;
|
|||
boolean droptheshield = false;
|
||||
int dahand = 0;
|
||||
int weapondrop;
|
||||
int snakex, snakey;
|
||||
double osnakex, osnakey, snakex, snakey;
|
||||
|
||||
boolean checkmedusadist(int i, int x, int y, int z, int lvl) {
|
||||
int attackdist = (isWh2() ? 8192 : 1024) + (lvl << 9);
|
||||
|
@ -681,8 +681,9 @@ void weaponsprocess(int snum) {
|
|||
plr.currweaponframe = weaponanimtics[plr.currweapon][0].daweaponframe;
|
||||
}
|
||||
if (plr.plInput.fvel || plr.plInput.svel) {
|
||||
snakex = bsin(lockclock << 4, -12);
|
||||
snakey = bsin(lockclock << 4, -12);
|
||||
osnakex = snakex;
|
||||
osnakey = snakey;
|
||||
snakex = snakey = bsinf(lockclock << 4, -12);
|
||||
}
|
||||
break;
|
||||
case 2: // unready
|
||||
|
|
|
@ -193,7 +193,7 @@ void trowajavlin(int s);
|
|||
void spawnhornskull(short i);
|
||||
void spawnapentagram(int sn);
|
||||
void processinput(int num);
|
||||
void DrawHud(float smooth);
|
||||
void DrawHud(double const dasmoothratio);
|
||||
|
||||
|
||||
// whplr
|
||||
|
@ -291,7 +291,7 @@ extern int dropshieldcnt;
|
|||
extern boolean droptheshield;
|
||||
extern int dahand;
|
||||
extern int weapondrop;
|
||||
extern int snakex, snakey;
|
||||
extern double osnakex, osnakey, snakex, snakey;
|
||||
|
||||
boolean checkmedusadist(int i, int x, int y, int z, int lvl);
|
||||
void autoweaponchange(PLAYER& plr, int dagun);
|
||||
|
|
Loading…
Reference in a new issue