mirror of
https://github.com/DrBeef/QuestZDoom.git
synced 2025-04-25 02:31:12 +00:00
Small change to allow adjustment of individual haptic intensity
This commit is contained in:
parent
f8ab514d5c
commit
8bd954828a
14 changed files with 50 additions and 21 deletions
|
@ -1,8 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.drbeef.questzdoom"
|
||||
android:versionCode="25"
|
||||
android:versionName="1.2.0" android:installLocation="auto" >
|
||||
android:versionCode="26"
|
||||
android:versionName="1.2.1" android:installLocation="auto" >
|
||||
|
||||
<!-- Tell the system this app requires OpenGL ES 3.1. -->
|
||||
<uses-feature android:glEsVersion="0x00030001" android:required="true"/>
|
||||
|
|
|
@ -1677,6 +1677,19 @@ FBaseCVar *FindCVarSub (const char *var_name, int namelen)
|
|||
return var;
|
||||
}
|
||||
|
||||
float C_GetExternalHapticLevelValue(const char *haptic_name)
|
||||
{
|
||||
char buffer[256];
|
||||
sprintf(buffer, "ext_haptic_level_%s", haptic_name);
|
||||
FBaseCVar *pCVar = FindCVar(buffer, NULL);
|
||||
if (pCVar != NULL)
|
||||
{
|
||||
return pCVar->GetGenericRep(CVAR_Float).Float;
|
||||
}
|
||||
|
||||
return 1.0;
|
||||
}
|
||||
|
||||
FBaseCVar *GetCVar(int playernum, const char *cvarname)
|
||||
{
|
||||
FBaseCVar *cvar = FindCVar(cvarname, nullptr);
|
||||
|
|
|
@ -181,6 +181,7 @@ private:
|
|||
friend void C_BackupCVars (void);
|
||||
friend FBaseCVar *FindCVar (const char *var_name, FBaseCVar **prev);
|
||||
friend FBaseCVar *FindCVarSub (const char *var_name, int namelen);
|
||||
friend float C_GetExternalHapticLevelValue(const char *haptic_name);
|
||||
friend void UnlatchCVars (void);
|
||||
friend void DestroyCVarsFlagged (uint32_t flags);
|
||||
friend void C_ArchiveCVars (FConfigFile *f, uint32_t filter);
|
||||
|
@ -210,6 +211,10 @@ void C_BackupCVars (void);
|
|||
FBaseCVar *FindCVar (const char *var_name, FBaseCVar **prev);
|
||||
FBaseCVar *FindCVarSub (const char *var_name, int namelen);
|
||||
|
||||
//Returns the configured level (0-1.0, 1.0 if not defined) for any given haptic
|
||||
//to use set a value in the config file like: haptic_level_shotgun
|
||||
float C_GetExternalHapticLevelValue(const char *haptic_name);
|
||||
|
||||
// Used for ACS and DECORATE.
|
||||
FBaseCVar *GetCVar(int playernum, const char *cvarname);
|
||||
FBaseCVar *GetUserCVar(int playernum, const char *cvarname);
|
||||
|
|
|
@ -2081,7 +2081,7 @@ void FParser::SF_CloseDoor(void)
|
|||
else speed = 1; // 1= normal speed
|
||||
|
||||
EV_DoDoor(DDoor::doorClose, NULL, NULL, sectag, 2.*clamp(speed, 1, 127), 0, 0, 0);
|
||||
QzDoom_HapticEvent("doorclose", 0, 100, 0, 0);
|
||||
QzDoom_HapticEvent("doorclose", 0, 100 * C_GetExternalHapticLevelValue("doorclose"), 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -109,7 +109,7 @@ bool FWeaponSlot::AddWeapon(PClassActor *type)
|
|||
WeaponInfo info = { type, -1 };
|
||||
Weapons.Push(info);
|
||||
|
||||
QzDoom_HapticEvent("pickup_weapon", 0, 100, 0, 0);
|
||||
QzDoom_HapticEvent("pickup_weapon", 0, 100 * C_GetExternalHapticLevelValue("pickup_weapon"), 0, 0);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -357,7 +357,7 @@ int FMugShot::UpdateState(player_t *player, StateFlags stateflags)
|
|||
QzDoom_Vibrate(80, 0, vr_pickup_haptic_level); // left
|
||||
QzDoom_Vibrate(80, 1, vr_pickup_haptic_level); // right
|
||||
|
||||
QzDoom_HapticEvent("pickup", 0, 100, 0, 0);
|
||||
QzDoom_HapticEvent("pickup", 0, 100 * C_GetExternalHapticLevelValue("pickup"), 0, 0);
|
||||
}
|
||||
|
||||
SetState("grin", false);
|
||||
|
|
|
@ -104,6 +104,17 @@ FRandom pr_cajump("CustomJump");
|
|||
|
||||
CVAR(Bool, vr_recoil, false, CVAR_ARCHIVE|CVAR_GLOBALCONFIG)
|
||||
|
||||
//External Haptics Level CVARs
|
||||
CVAR(Float, ext_haptic_level_damage_projectile, 1.0, CVAR_ARCHIVE|CVAR_GLOBALCONFIG)
|
||||
CVAR(Float, ext_haptic_level_pickup_weapon, 1.0, CVAR_ARCHIVE|CVAR_GLOBALCONFIG)
|
||||
CVAR(Float, ext_haptic_level_pickup, 1.0, CVAR_ARCHIVE|CVAR_GLOBALCONFIG)
|
||||
CVAR(Float, ext_haptic_level_fire_weapon, 1.0, CVAR_ARCHIVE|CVAR_GLOBALCONFIG)
|
||||
CVAR(Float, ext_haptic_level_poison, 1.0, CVAR_ARCHIVE|CVAR_GLOBALCONFIG)
|
||||
CVAR(Float, ext_haptic_level_healstation, 1.0, CVAR_ARCHIVE|CVAR_GLOBALCONFIG)
|
||||
CVAR(Float, ext_haptic_level_heartbeat, 1.0, CVAR_ARCHIVE|CVAR_GLOBALCONFIG)
|
||||
CVAR(Float, ext_haptic_level_rumble, 1.0, CVAR_ARCHIVE|CVAR_GLOBALCONFIG)
|
||||
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
// ACustomInventory :: CallStateChain
|
||||
|
|
|
@ -1362,13 +1362,13 @@ static int DamageMobj (AActor *target, AActor *inflictor, AActor *source, int da
|
|||
if (mod == NAME_None)
|
||||
{
|
||||
if (damage >= 15) {
|
||||
QzDoom_HapticEvent("shotgun", 0, 100, attackAngle.Normalized360().Degrees, 0);
|
||||
QzDoom_HapticEvent("shotgun", 0, 100 * C_GetExternalHapticLevelValue("damage_projectile"), attackAngle.Normalized360().Degrees, 0);
|
||||
}
|
||||
else {
|
||||
QzDoom_HapticEvent("bullet", 0, 100, attackAngle.Normalized360().Degrees, 0);
|
||||
QzDoom_HapticEvent("bullet", 0, 100 * C_GetExternalHapticLevelValue("damage_projectile"), attackAngle.Normalized360().Degrees, 0);
|
||||
}
|
||||
} else {
|
||||
QzDoom_HapticEvent(mod, 0, 100, attackAngle.Normalized360().Degrees, 0);
|
||||
QzDoom_HapticEvent(mod, 0, 100 * C_GetExternalHapticLevelValue("damage_projectile"), attackAngle.Normalized360().Degrees, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1786,7 +1786,7 @@ void P_PoisonDamage (player_t *player, AActor *source, int damage, bool playPain
|
|||
QzDoom_Vibrate(500, 0, level); // left
|
||||
QzDoom_Vibrate(500, 1, level); // right
|
||||
|
||||
QzDoom_HapticEvent(player->poisontype, 0, 100, 0, 0);
|
||||
QzDoom_HapticEvent(player->poisontype, 0, 100 * C_GetExternalHapticLevelValue("poison"), 0, 0);
|
||||
}
|
||||
|
||||
if (player->health < 50 && !deathmatch)
|
||||
|
|
|
@ -4491,11 +4491,11 @@ AActor *P_LineAttack(AActor *t1, DAngle angle, double distance,
|
|||
//Haptics
|
||||
long rightHanded = vr_control_scheme < 10;
|
||||
QzDoom_Vibrate(150, rightHanded ? 1 : 0, 0.8);
|
||||
QzDoom_HapticEvent("fire_weapon", rightHanded ? 2 : 1, 100, 0, 0);
|
||||
QzDoom_HapticEvent("fire_weapon", rightHanded ? 2 : 1, 100 * C_GetExternalHapticLevelValue("fire_weapon"), 0, 0);
|
||||
|
||||
if (weaponStabilised) {
|
||||
QzDoom_Vibrate(150, rightHanded ? 0 : 1, 0.6);
|
||||
QzDoom_HapticEvent("fire_weapon", rightHanded ? 1 : 2, 100, 0, 0);
|
||||
QzDoom_HapticEvent("fire_weapon", rightHanded ? 1 : 2, 100 * C_GetExternalHapticLevelValue("fire_weapon"), 0, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -924,7 +924,7 @@ bool P_GiveBody(AActor *actor, int num, int max)
|
|||
QzDoom_Vibrate(100, 0, level); // left
|
||||
QzDoom_Vibrate(100, 1, level); // right
|
||||
|
||||
QzDoom_HapticEvent("healstation", 0, 100 * level, 0, 0);
|
||||
QzDoom_HapticEvent("healstation", 0, 100 * level * C_GetExternalHapticLevelValue("healstation"), 0, 0);
|
||||
}
|
||||
|
||||
actor->health = player->health;
|
||||
|
@ -6859,11 +6859,11 @@ AActor *P_SpawnPlayerMissile (AActor *source, double x, double y, double z,
|
|||
//Haptics
|
||||
long rightHanded = vr_control_scheme < 10;
|
||||
QzDoom_Vibrate(150, rightHanded ? 1 : 0, 0.8);
|
||||
QzDoom_HapticEvent("fire_weapon", rightHanded ? 2 : 1, 100, 0, 0);
|
||||
QzDoom_HapticEvent("fire_weapon", rightHanded ? 2 : 1, 100 * C_GetExternalHapticLevelValue("fire_weapon"), 0, 0);
|
||||
if (weaponStabilised)
|
||||
{
|
||||
QzDoom_Vibrate(150, rightHanded ? 0 : 1, 0.6);
|
||||
QzDoom_HapticEvent("fire_weapon", rightHanded ? 1 : 2, 100, 0, 0);
|
||||
QzDoom_HapticEvent("fire_weapon", rightHanded ? 1 : 2, 100 * C_GetExternalHapticLevelValue("fire_weapon"), 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1266,13 +1266,13 @@ void P_PlayerThink (player_t *player)
|
|||
{
|
||||
if (player->health > previous_health)
|
||||
{
|
||||
QzDoom_HapticEvent("healstation", 0, 100, 0, 0);
|
||||
QzDoom_HapticEvent("healstation", 0, 100 * C_GetExternalHapticLevelValue("healstation"), 0, 0);
|
||||
}
|
||||
}
|
||||
else if (player->health > 0 && player->health <= 25)
|
||||
{
|
||||
//heartbeat is a special case that uses intensity for a different purpose
|
||||
QzDoom_HapticEvent("heartbeat", 0, player->health, 0, 0);
|
||||
QzDoom_HapticEvent("heartbeat", 0, player->health * C_GetExternalHapticLevelValue("heartbeat"), 0, 0);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -929,8 +929,8 @@ void R_SetupFrame (FRenderViewpoint &viewpoint, FViewWindow &viewwindow, AActor
|
|||
QzDoom_Vibrate(10, 0, (float)left); // left
|
||||
QzDoom_Vibrate(10, 1, (float)right); // right
|
||||
|
||||
QzDoom_HapticEvent("rumble_front", 0, 100 * left, 120, 0);
|
||||
QzDoom_HapticEvent("rumble_back", 0, 100 * right, 120, 0);
|
||||
QzDoom_HapticEvent("rumble_front", 0, 100 * left * C_GetExternalHapticLevelValue("rumble"), 120, 0);
|
||||
QzDoom_HapticEvent("rumble_back", 0, 100 * right * C_GetExternalHapticLevelValue("rumble"), 120, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -135,7 +135,7 @@ void V_AddPlayerBlend (player_t *CPlayer, float blend[4], float maxinvalpha, int
|
|||
QzDoom_Vibrate(50, 0, vr_pickup_haptic_level); // left
|
||||
QzDoom_Vibrate(50, 1, vr_pickup_haptic_level); // right
|
||||
|
||||
QzDoom_HapticEvent("pickup", 0, 100, 0, 0);
|
||||
QzDoom_HapticEvent("pickup", 0, 100 * C_GetExternalHapticLevelValue("pickup"), 0, 0);
|
||||
}
|
||||
|
||||
// [SP] Allow player to tone down intensity of pickup flash.
|
||||
|
|
|
@ -41,7 +41,7 @@ const char *GetVersionString();
|
|||
|
||||
/** Lots of different version numbers **/
|
||||
|
||||
#define VERSIONSTR "DrBeef's QuestZDoom-1.2.0 (LZDoom 3.86)"
|
||||
#define VERSIONSTR "DrBeef's QuestZDoom-1.2.1 (LZDoom 3.86)"
|
||||
|
||||
// The version as seen in the Windows resource
|
||||
#define RC_FILEVERSION 3,86,0
|
||||
|
|
Loading…
Reference in a new issue