Vegastrike 0.5.1 rc1  1.0
Original sources for Vegastrike Evolved
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ForceFeedback Class Reference

#include <force_feedback.h>

Public Member Functions

 ForceFeedback ()
 
 ~ForceFeedback ()
 
bool haveFF ()
 
void playDurationEffect (unsigned int eff_nr, bool activate)
 
void playShortEffect (unsigned int eff_nr)
 
void playHit (float angle, float strength)
 
void updateForce (float angle, float strength)
 
void updateSpeedEffect (float strength)
 
void playAfterburner (bool activate)
 
void playLaser ()
 

Detailed Description

Definition at line 77 of file force_feedback.h.

Constructor & Destructor Documentation

ForceFeedback::ForceFeedback ( )

Definition at line 40 of file force_feedback.cpp.

41 {
42 #if HAVE_FORCE_FEEDBACK
43  init();
44 #else
45  have_ff = false;
46  printf( "Force feedback support disabled when compiled\n" );
47 #endif
48 }
ForceFeedback::~ForceFeedback ( )

Definition at line 50 of file force_feedback.cpp.

References i, and N_EFFECTS.

51 {
52  if (!have_ff)
53  return;
54 #if HAVE_FORCE_FEEDBACK
55  if (ff_fd != -1) {
56  for (int i = 0; i < N_EFFECTS; i++)
57  stopEffect( i );
58  close( ff_fd );
59  }
60 #endif
61 }

Member Function Documentation

bool ForceFeedback::haveFF ( )

Definition at line 63 of file force_feedback.cpp.

64 {
65  return have_ff;
66 }
void ForceFeedback::playAfterburner ( bool  activate)

Definition at line 83 of file force_feedback.cpp.

References eff_ab_jerk, eff_ab_wiggle_x, eff_ab_wiggle_y, Mission::getGametime(), and mission.

84 {
85  if (!have_ff)
86  return;
87 #if HAVE_FORCE_FEEDBACK
88  double nowtime = mission->getGametime();
89 
90  int eff_nr = eff_ab_jerk;
91  if (activate == true)
92  eff_last_time[eff_nr] = nowtime;
93  if (activate == true && is_played[eff_nr] == false) {
94  printf( "starting ab\n" );
95  playEffect( eff_ab_wiggle_x );
96  playEffect( eff_ab_wiggle_y );
97  playEffect( eff_ab_jerk );
98 
99  is_played[eff_nr] = true;
100  } else if (activate == false && is_played[eff_nr] == true) {
101  if (nowtime > eff_last_time[eff_nr]+min_effect_time) {
102  printf( "stopped ab\n" );
103  stopEffect( eff_ab_wiggle_x );
104  stopEffect( eff_ab_wiggle_y );
105  stopEffect( eff_ab_jerk );
106 
107  is_played[eff_nr] = false;
108  eff_last_time[eff_nr] = nowtime;
109  }
110  }
111 #endif
112 }
void ForceFeedback::playDurationEffect ( unsigned int  eff_nr,
bool  activate 
)

Definition at line 132 of file force_feedback.cpp.

133 {
134  if (!have_ff)
135  return;
136  return;
137 
138 #if HAVE_FORCE_FEEDBACK
139  if (activate == true && is_played[eff_nr] == false) {
140  playEffect( eff_nr );
141  is_played[eff_nr] = true;
142  } else if (activate == false && is_played[eff_nr] == true) {
143  stopEffect( eff_nr );
144  is_played[eff_nr] = false;
145  }
146 #endif
147 }
void ForceFeedback::playHit ( float  angle,
float  strength 
)

Definition at line 78 of file force_feedback.cpp.

79 {
80  printf( "shield hit %f degrees %f\n", angle, strength );
81 }
void ForceFeedback::playLaser ( )

Definition at line 114 of file force_feedback.cpp.

References eff_laser_jerk, eff_laser_vibrate, Mission::getGametime(), and mission.

Referenced by Mount::Fire().

115 {
116  if (!have_ff)
117  return;
118 #if HAVE_FORCE_FEEDBACK
119  int eff_nr = eff_laser_jerk;
120 
121  double nowtime = mission->getGametime();
122  if (nowtime < eff_last_time[eff_nr]+min_effect_time)
123  //to make sure that effects aren't done too fast after another
124  return;
125  playEffect( eff_laser_jerk );
126  playEffect( eff_laser_vibrate );
127 
128  eff_last_time[eff_nr] = nowtime;
129 #endif
130 }
void ForceFeedback::playShortEffect ( unsigned int  eff_nr)

Definition at line 149 of file force_feedback.cpp.

References Mission::getGametime(), and mission.

150 {
151  if (!have_ff)
152  return;
153  return;
154 
155 #if HAVE_FORCE_FEEDBACK
156  double nowtime = mission->getGametime();
157  if (nowtime < eff_last_time[eff_nr]+min_effect_time)
158  //to make sure that effects aren't done too fast after another
159  return;
160  playEffect( eff_nr );
161 
162  eff_last_time[eff_nr] = nowtime;
163 #endif
164 }
void ForceFeedback::updateForce ( float  angle,
float  strength 
)

Definition at line 68 of file force_feedback.cpp.

69 {
70  printf( "update force %f degrees %f\n", angle, strength );
71 }
void ForceFeedback::updateSpeedEffect ( float  strength)

Definition at line 73 of file force_feedback.cpp.

74 {
75  printf( "speed effect %f\n", strength );
76 }

The documentation for this class was generated from the following files: