mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-12-27 20:20:40 +00:00
Merge branch 'master' into newrenderer2
This commit is contained in:
commit
88695ef554
18 changed files with 356 additions and 308 deletions
2
.github/workflows/continuous_integration.yml
vendored
2
.github/workflows/continuous_integration.yml
vendored
|
@ -39,7 +39,7 @@ jobs:
|
||||||
name: "Linux GCC 7",
|
name: "Linux GCC 7",
|
||||||
os: ubuntu-20.04,
|
os: ubuntu-20.04,
|
||||||
extra_options: "-DCMAKE_C_COMPILER=/usr/bin/gcc-7 -DCMAKE_CXX_COMPILER=/usr/bin/g++-7",
|
extra_options: "-DCMAKE_C_COMPILER=/usr/bin/gcc-7 -DCMAKE_CXX_COMPILER=/usr/bin/g++-7",
|
||||||
deps_cmdline: "sudo apt update && sudo apt install libsdl2-dev libvpx-dev libgtk2.0-dev",
|
deps_cmdline: "sudo apt update && sudo apt install libsdl2-dev libvpx-dev libgtk2.0-dev gcc-7 g++-7",
|
||||||
build_type: "RelWithDebInfo"
|
build_type: "RelWithDebInfo"
|
||||||
}
|
}
|
||||||
- {
|
- {
|
||||||
|
|
|
@ -60,6 +60,7 @@ enum
|
||||||
|
|
||||||
constexpr double BAngRadian = pi::pi() * (1. / 1024.);
|
constexpr double BAngRadian = pi::pi() * (1. / 1024.);
|
||||||
constexpr double BRadAngScale = 1. / BAngRadian;
|
constexpr double BRadAngScale = 1. / BAngRadian;
|
||||||
|
constexpr double BAngToDegree = 360. / 2048.;
|
||||||
|
|
||||||
extern int16_t sintable[2048];
|
extern int16_t sintable[2048];
|
||||||
|
|
||||||
|
@ -398,6 +399,7 @@ class fixedhoriz
|
||||||
|
|
||||||
friend constexpr fixedhoriz q16horiz(fixed_t v);
|
friend constexpr fixedhoriz q16horiz(fixed_t v);
|
||||||
friend constexpr fixedhoriz buildhoriz(int v);
|
friend constexpr fixedhoriz buildhoriz(int v);
|
||||||
|
friend fixedhoriz buildfhoriz(double v);
|
||||||
friend fixedhoriz pitchhoriz(double v);
|
friend fixedhoriz pitchhoriz(double v);
|
||||||
friend fixedhoriz bamhoriz(int32_t v);
|
friend fixedhoriz bamhoriz(int32_t v);
|
||||||
|
|
||||||
|
@ -496,6 +498,7 @@ public:
|
||||||
|
|
||||||
inline constexpr fixedhoriz q16horiz(fixed_t v) { return fixedhoriz(v); }
|
inline constexpr fixedhoriz q16horiz(fixed_t v) { return fixedhoriz(v); }
|
||||||
inline constexpr fixedhoriz buildhoriz(int v) { return fixedhoriz(IntToFixed(v)); }
|
inline constexpr fixedhoriz buildhoriz(int v) { return fixedhoriz(IntToFixed(v)); }
|
||||||
|
inline fixedhoriz buildfhoriz(double v) { return fixedhoriz(FloatToFixed(v)); }
|
||||||
inline fixedhoriz pitchhoriz(double v) { return fixedhoriz(PitchToHoriz(v)); }
|
inline fixedhoriz pitchhoriz(double v) { return fixedhoriz(PitchToHoriz(v)); }
|
||||||
inline fixedhoriz bamhoriz(int32_t v) { return pitchhoriz(BAMToPitch(v)); }
|
inline fixedhoriz bamhoriz(int32_t v) { return pitchhoriz(BAMToPitch(v)); }
|
||||||
|
|
||||||
|
|
|
@ -77,7 +77,6 @@ CVARD(Bool, cl_slopetilting, false, CVAR_ARCHIVE, "enable/disable slope tilting"
|
||||||
CVARD(Int, cl_showweapon, 1, CVAR_ARCHIVE, "enable/disable show weapons") // only implemented in Blood
|
CVARD(Int, cl_showweapon, 1, CVAR_ARCHIVE, "enable/disable show weapons") // only implemented in Blood
|
||||||
CVARD(Bool, cl_sointerpolation, true, CVAR_ARCHIVE, "enable/disable sector object interpolation") // only implemented in SW
|
CVARD(Bool, cl_sointerpolation, true, CVAR_ARCHIVE, "enable/disable sector object interpolation") // only implemented in SW
|
||||||
CVARD(Bool, cl_syncinput, false, CVAR_ARCHIVE, "enable/disable synchronized input with game's ticrate") // only implemented in Duke
|
CVARD(Bool, cl_syncinput, false, CVAR_ARCHIVE, "enable/disable synchronized input with game's ticrate") // only implemented in Duke
|
||||||
CVARD(Bool, cl_dukefixrpgrecoil, false, CVAR_ARCHIVE, "soften recoil of Duke 3D's RPG")
|
|
||||||
CVARD(Bool, cl_smoothsway, false, CVAR_ARCHIVE, "move SW weapon left and right smoothly while bobbing")
|
CVARD(Bool, cl_smoothsway, false, CVAR_ARCHIVE, "move SW weapon left and right smoothly while bobbing")
|
||||||
CVARD(Bool, cl_showmagamt, false, CVAR_ARCHIVE, "show the amount of rounds left in the magazine of your weapon on the modern HUD")
|
CVARD(Bool, cl_showmagamt, false, CVAR_ARCHIVE, "show the amount of rounds left in the magazine of your weapon on the modern HUD")
|
||||||
CVARD(Bool, cl_nomeleeblur, false, CVAR_ARCHIVE, "enable/disable blur effect with melee weapons in SW")
|
CVARD(Bool, cl_nomeleeblur, false, CVAR_ARCHIVE, "enable/disable blur effect with melee weapons in SW")
|
||||||
|
|
|
@ -22,7 +22,6 @@ EXTERN_CVAR(Int, cl_weaponswitch)
|
||||||
EXTERN_CVAR(Float, crosshairscale)
|
EXTERN_CVAR(Float, crosshairscale)
|
||||||
EXTERN_CVAR(Bool, cl_sointerpolation)
|
EXTERN_CVAR(Bool, cl_sointerpolation)
|
||||||
EXTERN_CVAR(Bool, cl_syncinput)
|
EXTERN_CVAR(Bool, cl_syncinput)
|
||||||
EXTERN_CVAR(Bool, cl_dukefixrpgrecoil)
|
|
||||||
EXTERN_CVAR(Bool, cl_smoothsway)
|
EXTERN_CVAR(Bool, cl_smoothsway)
|
||||||
EXTERN_CVAR(Bool, cl_showmagamt)
|
EXTERN_CVAR(Bool, cl_showmagamt)
|
||||||
EXTERN_CVAR(Bool, cl_nomeleeblur)
|
EXTERN_CVAR(Bool, cl_nomeleeblur)
|
||||||
|
|
|
@ -155,8 +155,7 @@ void processMovement(InputPacket* currInput, InputPacket* inputBuffer, ControlIn
|
||||||
int const keymove = gi->playerKeyMove() << running;
|
int const keymove = gi->playerKeyMove() << running;
|
||||||
int const cntrlvelscale = g_gameType & GAMEFLAG_PSEXHUMED ? 8 : 1;
|
int const cntrlvelscale = g_gameType & GAMEFLAG_PSEXHUMED ? 8 : 1;
|
||||||
float const mousevelscale = keymove / 160.f;
|
float const mousevelscale = keymove / 160.f;
|
||||||
double const angtodegscale = 360. / 2048.;
|
double const hidspeed = ((running ? 1585. : 867.5) / GameTicRate) * BAngToDegree;
|
||||||
double const hidspeed = ((running ? 1585. : 867.5) / GameTicRate) * angtodegscale;
|
|
||||||
|
|
||||||
// process mouse and initial controller input.
|
// process mouse and initial controller input.
|
||||||
if (buttonMap.ButtonDown(gamefunc_Strafe) && allowstrafe)
|
if (buttonMap.ButtonDown(gamefunc_Strafe) && allowstrafe)
|
||||||
|
@ -200,7 +199,7 @@ void processMovement(InputPacket* currInput, InputPacket* inputBuffer, ControlIn
|
||||||
// allow Exhumed to use its legacy values given the drastic difference from the other games.
|
// allow Exhumed to use its legacy values given the drastic difference from the other games.
|
||||||
if ((g_gameType & GAMEFLAG_PSEXHUMED) && cl_exhumedoldturn)
|
if ((g_gameType & GAMEFLAG_PSEXHUMED) && cl_exhumedoldturn)
|
||||||
{
|
{
|
||||||
preambleturn = turnamount = (running ? 12 : 8) * angtodegscale;
|
preambleturn = turnamount = (running ? 12 : 8) * BAngToDegree;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (buttonMap.ButtonDown(gamefunc_Turn_Left) || (buttonMap.ButtonDown(gamefunc_Strafe_Left) && !allowstrafe))
|
if (buttonMap.ButtonDown(gamefunc_Turn_Left) || (buttonMap.ButtonDown(gamefunc_Strafe_Left) && !allowstrafe))
|
||||||
|
|
|
@ -12,8 +12,8 @@ lookangle getincanglebam(binangle a, binangle na);
|
||||||
|
|
||||||
struct PlayerHorizon
|
struct PlayerHorizon
|
||||||
{
|
{
|
||||||
fixedhoriz horiz, ohoriz, horizoff, ohorizoff;
|
fixedhoriz horiz, ohoriz, horizoff, ohorizoff, target;
|
||||||
double adjustment, target;
|
double adjustment;
|
||||||
|
|
||||||
void backup()
|
void backup()
|
||||||
{
|
{
|
||||||
|
@ -44,30 +44,58 @@ struct PlayerHorizon
|
||||||
adjustment = 0;
|
adjustment = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void settarget(int value, bool backup = false)
|
||||||
|
{
|
||||||
|
if (!SyncInput() && !backup)
|
||||||
|
{
|
||||||
|
target = buildhoriz(value);
|
||||||
|
if (target.asq16() == 0) target = q16horiz(1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
horiz = buildhoriz(value);
|
||||||
|
if (backup) ohoriz = horiz;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void settarget(double value, bool backup = false)
|
void settarget(double value, bool backup = false)
|
||||||
{
|
{
|
||||||
if (!SyncInput() && !backup)
|
if (!SyncInput() && !backup)
|
||||||
{
|
{
|
||||||
target = value * FRACUNIT;
|
target = buildfhoriz(value);
|
||||||
if (target == 0) target += 1;
|
if (target.asq16() == 0) target = q16horiz(1);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
horiz = q16horiz(FloatToFixed(value));
|
horiz = buildfhoriz(value);
|
||||||
|
if (backup) ohoriz = horiz;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void settarget(fixedhoriz value, bool backup = false)
|
||||||
|
{
|
||||||
|
if (!SyncInput() && !backup)
|
||||||
|
{
|
||||||
|
target = value;
|
||||||
|
if (target.asq16() == 0) target = q16horiz(1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
horiz = value;
|
||||||
if (backup) ohoriz = horiz;
|
if (backup) ohoriz = horiz;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void processhelpers(double const scaleAdjust)
|
void processhelpers(double const scaleAdjust)
|
||||||
{
|
{
|
||||||
if (target)
|
if (target.asq16())
|
||||||
{
|
{
|
||||||
horiz += q16horiz(xs_CRoundToInt(scaleAdjust * (target - horiz.asq16())));
|
horiz += q16horiz(xs_CRoundToInt(scaleAdjust * (target - horiz).asq16()));
|
||||||
|
|
||||||
if (abs(horiz.asq16() - target) < FRACUNIT)
|
if (abs((horiz - target).asq16()) < FRACUNIT)
|
||||||
{
|
{
|
||||||
horiz = q16horiz(target);
|
horiz = target;
|
||||||
target = 0;
|
target = q16horiz(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (adjustment)
|
else if (adjustment)
|
||||||
|
@ -97,9 +125,9 @@ struct PlayerHorizon
|
||||||
|
|
||||||
struct PlayerAngle
|
struct PlayerAngle
|
||||||
{
|
{
|
||||||
binangle ang, oang;
|
binangle ang, oang, target;
|
||||||
lookangle look_ang, olook_ang, rotscrnang, orotscrnang, spin;
|
lookangle look_ang, olook_ang, rotscrnang, orotscrnang, spin;
|
||||||
double adjustment, target;
|
double adjustment;
|
||||||
|
|
||||||
void backup()
|
void backup()
|
||||||
{
|
{
|
||||||
|
@ -172,12 +200,12 @@ struct PlayerAngle
|
||||||
{
|
{
|
||||||
if (!SyncInput() && !backup)
|
if (!SyncInput() && !backup)
|
||||||
{
|
{
|
||||||
target = (ang + getincanglebam(ang, buildang(value))).asbam();
|
target = buildang(value & 2047);
|
||||||
if (target == 0) target += 1;
|
if (target.asbam() == 0) target = bamang(1);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ang = buildang(value);
|
ang = buildang(value & 2047);
|
||||||
if (backup) oang = ang;
|
if (backup) oang = ang;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -186,12 +214,12 @@ struct PlayerAngle
|
||||||
{
|
{
|
||||||
if (!SyncInput() && !backup)
|
if (!SyncInput() && !backup)
|
||||||
{
|
{
|
||||||
target = (ang + getincanglebam(ang, buildfang(value))).asbam();
|
target = buildfang(fmod(value, 2048));
|
||||||
if (target == 0) target += 1;
|
if (target.asbam() == 0) target = bamang(1);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ang = buildfang(value);
|
ang = buildfang(fmod(value, 2048));
|
||||||
if (backup) oang = ang;
|
if (backup) oang = ang;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -200,8 +228,8 @@ struct PlayerAngle
|
||||||
{
|
{
|
||||||
if (!SyncInput() && !backup)
|
if (!SyncInput() && !backup)
|
||||||
{
|
{
|
||||||
target = (ang + getincanglebam(ang, value)).asbam();
|
target = value;
|
||||||
if (target == 0) target += 1;
|
if (target.asbam() == 0) target = bamang(1);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -212,14 +240,14 @@ struct PlayerAngle
|
||||||
|
|
||||||
void processhelpers(double const scaleAdjust)
|
void processhelpers(double const scaleAdjust)
|
||||||
{
|
{
|
||||||
if (target)
|
if (target.asbam())
|
||||||
{
|
{
|
||||||
ang += bamang(xs_CRoundToUInt(scaleAdjust * (target - ang.asbam())));
|
ang += bamang(xs_CRoundToUInt(scaleAdjust * getincanglebam(ang, target).asbam()));
|
||||||
|
|
||||||
if (abs(ang.asbam() - target) < BAMUNIT)
|
if (getincanglebam(ang, target).asbam() < BAMUNIT)
|
||||||
{
|
{
|
||||||
ang = bamang(target);
|
ang = target;
|
||||||
target = 0;
|
target = bamang(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (adjustment)
|
else if (adjustment)
|
||||||
|
|
|
@ -119,13 +119,26 @@ void InputState::ClearAllInput()
|
||||||
{
|
{
|
||||||
memset(KeyStatus, 0, sizeof(KeyStatus));
|
memset(KeyStatus, 0, sizeof(KeyStatus));
|
||||||
AnyKeyStatus = false;
|
AnyKeyStatus = false;
|
||||||
ActionsToSend = 0;
|
|
||||||
WeaponToSend = 0;
|
WeaponToSend = 0;
|
||||||
dpad_lock = 0;
|
dpad_lock = 0;
|
||||||
lastCheck = 0;
|
lastCheck = 0;
|
||||||
crouch_toggle = false;
|
|
||||||
|
if (gamestate != GS_LEVEL)
|
||||||
|
{
|
||||||
|
ActionsToSend = 0;
|
||||||
|
crouch_toggle = false;
|
||||||
|
gi->clearlocalinputstate(); // also clear game local input state.
|
||||||
|
}
|
||||||
|
else if (gamestate == GS_LEVEL && crouch_toggle)
|
||||||
|
{
|
||||||
|
ActionsToSend |= SB_CROUCH;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ActionsToSend = 0;
|
||||||
|
}
|
||||||
|
|
||||||
buttonMap.ResetButtonStates(); // this is important. If all input is cleared, the buttons must be cleared as well.
|
buttonMap.ResetButtonStates(); // this is important. If all input is cleared, the buttons must be cleared as well.
|
||||||
gi->clearlocalinputstate(); // also clear game local input state.
|
|
||||||
resetTurnHeldAmt();
|
resetTurnHeldAmt();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -88,7 +88,7 @@ struct RegistryPathInfo
|
||||||
};
|
};
|
||||||
|
|
||||||
static const char * gameroot[] = { "/gameroot", nullptr};
|
static const char * gameroot[] = { "/gameroot", nullptr};
|
||||||
static const char * swaddons[] = { "/gameroot", "/gameroot/addons", nullptr};
|
static const char * swaddons[] = { "/gameroot/addons", "/gameroot", nullptr};
|
||||||
static const char * dukeaddons[] = { "/gameroot", "/gameroot/addons/dc", "/gameroot/addons/nw", "/gameroot/addons/vacation", nullptr};
|
static const char * dukeaddons[] = { "/gameroot", "/gameroot/addons/dc", "/gameroot/addons/nw", "/gameroot/addons/vacation", nullptr};
|
||||||
static const char * dn3d[] = { "/Duke Nukem 3D", nullptr};
|
static const char * dn3d[] = { "/Duke Nukem 3D", nullptr};
|
||||||
static const char * nam[] = { "/NAM", nullptr};
|
static const char * nam[] = { "/NAM", nullptr};
|
||||||
|
|
|
@ -46,7 +46,7 @@ void DrawFrame(double x, double y, TILE_FRAME *pTile, int stat, int shade, int p
|
||||||
{
|
{
|
||||||
auto tex = tileGetTexture(pTile->picnum);
|
auto tex = tileGetTexture(pTile->picnum);
|
||||||
double scale = pTile->z/65536.;
|
double scale = pTile->z/65536.;
|
||||||
double angle = pTile->angle * (360./2048);
|
double angle = pTile->angle * BAngToDegree;
|
||||||
int renderstyle = (stat & RS_NOMASK)? STYLE_Normal : STYLE_Translucent;
|
int renderstyle = (stat & RS_NOMASK)? STYLE_Normal : STYLE_Translucent;
|
||||||
double alpha = (stat & RS_TRANS1)? glblend[0].def[!!(stat & RS_TRANS2)].alpha : 1.;
|
double alpha = (stat & RS_TRANS1)? glblend[0].def[!!(stat & RS_TRANS2)].alpha : 1.;
|
||||||
int pin = (stat & kQavOrientationLeft)? -1 : (stat & RS_ALIGN_R)? 1:0;
|
int pin = (stat & kQavOrientationLeft)? -1 : (stat & RS_ALIGN_R)? 1:0;
|
||||||
|
|
|
@ -857,7 +857,7 @@ FString GameInterface::GetCoordString()
|
||||||
FString out;
|
FString out;
|
||||||
|
|
||||||
out.Format("pos= %d, %d, %d - angle = %2.3f",
|
out.Format("pos= %d, %d, %d - angle = %2.3f",
|
||||||
gMe->pSprite->x, gMe->pSprite->y, gMe->pSprite->z, gMe->pSprite->ang * (360./2048));
|
gMe->pSprite->x, gMe->pSprite->y, gMe->pSprite->z, gMe->pSprite->ang * BAngToDegree);
|
||||||
|
|
||||||
return out;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
|
@ -575,7 +575,7 @@ bool GameInterface::DrawAutomapPlayer(int cposx, int cposy, int czoom, int cang,
|
||||||
else if (j > (65536 << 1)) j = (65536 << 1);
|
else if (j > (65536 << 1)) j = (65536 << 1);
|
||||||
|
|
||||||
DrawTexture(twod, tileGetTexture(i), xdim / 2. + spos.x / 4096., ydim / 2. + spos.y / 4096., DTA_TranslationIndex, TRANSLATION(Translation_Remap + setpal(&pp), pspr->pal), DTA_CenterOffset, true,
|
DrawTexture(twod, tileGetTexture(i), xdim / 2. + spos.x / 4096., ydim / 2. + spos.y / 4096., DTA_TranslationIndex, TRANSLATION(Translation_Remap + setpal(&pp), pspr->pal), DTA_CenterOffset, true,
|
||||||
DTA_Rotate, daang * (-360./2048), DTA_Color, shadeToLight(pspr->shade), DTA_ScaleX, j / 65536., DTA_ScaleY, j / 65536., TAG_DONE);
|
DTA_Rotate, daang * -BAngToDegree, DTA_Color, shadeToLight(pspr->shade), DTA_ScaleX, j / 65536., DTA_ScaleY, j / 65536., TAG_DONE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -755,7 +755,7 @@ static void processVehicleInput(player_struct *p, ControlInfo* const hidInput, I
|
||||||
}
|
}
|
||||||
|
|
||||||
input.fvel = xs_CRoundToInt(p->MotoSpeed);
|
input.fvel = xs_CRoundToInt(p->MotoSpeed);
|
||||||
input.avel *= (45. / 256.);
|
input.avel *= BAngToDegree;
|
||||||
loc.avel += input.avel;
|
loc.avel += input.avel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2611,7 +2611,7 @@ static void operateweapon(int snum, ESyncBits actions, int psect)
|
||||||
fi.shoot(pact, RPG);
|
fi.shoot(pact, RPG);
|
||||||
checkavailweapon(p);
|
checkavailweapon(p);
|
||||||
}
|
}
|
||||||
else if (p->kickback_pic == (cl_dukefixrpgrecoil ? 13 : 20))
|
else if (p->kickback_pic == 20)
|
||||||
p->okickback_pic = p->kickback_pic = 0;
|
p->okickback_pic = p->kickback_pic = 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -413,8 +413,8 @@ public:
|
||||||
p->drunkang = 400;
|
p->drunkang = 400;
|
||||||
}
|
}
|
||||||
|
|
||||||
DrawRotated(tileGetTexture(GUTMETER), 256, top + 15, DI_ITEM_RELCENTER, p->drunkang * (-360. / 2048), 1, scale, scale, 0xffffffff, 0);
|
DrawRotated(tileGetTexture(GUTMETER), 256, top + 15, DI_ITEM_RELCENTER, p->drunkang * -BAngToDegree, 1, scale, scale, 0xffffffff, 0);
|
||||||
DrawRotated(tileGetTexture(GUTMETER), 292, top + 15, DI_ITEM_RELCENTER, p->eatang * (-360. / 2048), 1, scale, scale, 0xffffffff, 0);
|
DrawRotated(tileGetTexture(GUTMETER), 292, top + 15, DI_ITEM_RELCENTER, p->eatang * -BAngToDegree, 1, scale, scale, 0xffffffff, 0);
|
||||||
|
|
||||||
if (p->drink_amt >= 0 && p->drink_amt <= 30)
|
if (p->drink_amt >= 0 && p->drink_amt <= 30)
|
||||||
{
|
{
|
||||||
|
|
|
@ -250,7 +250,7 @@ public:
|
||||||
{
|
{
|
||||||
twod->ClearScreen();
|
twod->ClearScreen();
|
||||||
DrawTexture(twod, decoder.animTex().GetFrame(), 160, 100, DTA_FullscreenScale, FSMode_Fit320x200,
|
DrawTexture(twod, decoder.animTex().GetFrame(), 160, 100, DTA_FullscreenScale, FSMode_Fit320x200,
|
||||||
DTA_CenterOffset, true, DTA_FlipY, true, DTA_ScaleX, z / 65536., DTA_ScaleY, z / 65536., DTA_Rotate, (-angle - 512) * (360. / 2048.), TAG_DONE);
|
DTA_CenterOffset, true, DTA_FlipY, true, DTA_ScaleX, z / 65536., DTA_ScaleY, z / 65536., DTA_Rotate, (-angle - 512) * BAngToDegree, TAG_DONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
lastclock = clock;
|
lastclock = clock;
|
||||||
|
|
|
@ -1814,7 +1814,7 @@ bool GameInterface::DrawAutomapPlayer(int cposx, int cposy, int czoom, int cang,
|
||||||
double sc = czoom * (spr->yrepeat) / 32768.;
|
double sc = czoom * (spr->yrepeat) / 32768.;
|
||||||
if (spnum >= 0)
|
if (spnum >= 0)
|
||||||
{
|
{
|
||||||
DrawTexture(twod, tileGetTexture(1196 + pspr_ndx[myconnectindex], true), xd, yd, DTA_ScaleX, sc, DTA_ScaleY, sc, DTA_Rotate, daang * (-360. / 2048),
|
DrawTexture(twod, tileGetTexture(1196 + pspr_ndx[myconnectindex], true), xd, yd, DTA_ScaleX, sc, DTA_ScaleY, sc, DTA_Rotate, daang * -BAngToDegree,
|
||||||
DTA_CenterOffsetRel, true, DTA_TranslationIndex, TRANSLATION(Translation_Remap, spr->pal), DTA_Color, shadeToLight(spr->shade),
|
DTA_CenterOffsetRel, true, DTA_TranslationIndex, TRANSLATION(Translation_Remap, spr->pal), DTA_Color, shadeToLight(spr->shade),
|
||||||
DTA_Alpha, (spr->cstat & 2) ? 0.33 : 1., TAG_DONE);
|
DTA_Alpha, (spr->cstat & 2) ? 0.33 : 1., TAG_DONE);
|
||||||
}
|
}
|
||||||
|
|
|
@ -569,7 +569,7 @@ void hud_drawsprite(double sx, double sy, int z, double a, int picnum, int dasha
|
||||||
DTA_FlipX, !!(dastat & RS_XFLIPHUD),
|
DTA_FlipX, !!(dastat & RS_XFLIPHUD),
|
||||||
DTA_FlipY, !!(dastat & RS_YFLIPHUD),
|
DTA_FlipY, !!(dastat & RS_YFLIPHUD),
|
||||||
DTA_Pin, (dastat & RS_ALIGN_R) ? 1 : (dastat & RS_ALIGN_L) ? -1 : 0,
|
DTA_Pin, (dastat & RS_ALIGN_R) ? 1 : (dastat & RS_ALIGN_L) ? -1 : 0,
|
||||||
DTA_Rotate, a * (-360./2048),
|
DTA_Rotate, a * -BAngToDegree,
|
||||||
DTA_FlipOffsets, !(dastat & (/*RS_TOPLEFT |*/ RS_CENTER)),
|
DTA_FlipOffsets, !(dastat & (/*RS_TOPLEFT |*/ RS_CENTER)),
|
||||||
DTA_Alpha, alpha,
|
DTA_Alpha, alpha,
|
||||||
TAG_DONE);
|
TAG_DONE);
|
||||||
|
|
Loading…
Reference in a new issue