]> git.mxchange.org Git - flightgear.git/commitdiff
Base length of time messages are displayed for on dt rather than iterations in order...
authordaveluff <daveluff>
Thu, 20 Mar 2003 11:22:08 +0000 (11:22 +0000)
committerdaveluff <daveluff>
Thu, 20 Mar 2003 11:22:08 +0000 (11:22 +0000)
src/ATC/ATCdisplay.cxx
src/ATC/ATCdisplay.hxx

index de77e9b89681c53bce39a945d011ef5d480f95f1..85bb9245efed9f77ba3221497941c97f7451d54a 100644 (file)
@@ -145,14 +145,14 @@ void FGATCDisplay::update(double dt) {
                                                guiFnt.drawString( m.msg.c_str(),
                                                int(iwidth - 10 - m.dsp_offset),
                                                (iheight - 40) );
-                                               ++m.counter;
+                                               m.counter += dt;
                                                m.dsp_offset += (80.0/fps);
                                                msgList[i] = m;
                                                ++msgList_itr;
                                                ++i;
                                        } else {
                                                //cout << "Not yet started single message\n";
-                                               ++m.counter;
+                                               m.counter += dt;
                                                msgList[i] = m;
                                                ++msgList_itr;
                                                ++i;
@@ -172,12 +172,12 @@ void FGATCDisplay::update(double dt) {
                                                (iwidth - (m.msg.size() * 8))/2,
                                                //iwidth/2,
                                                (iheight - 40) );       // TODO - relate the distance in that the string is rendered to the string length.
-                                               ++m.counter;
+                                               m.counter += dt;
                                                msgList[i] = m;
                                                ++msgList_itr;
                                                ++i;
                                        } else {
-                                               ++m.counter;
+                                               m.counter += dt;
                                                msgList[i] = m;
                                                ++msgList_itr;
                                                ++i;
@@ -194,13 +194,13 @@ void FGATCDisplay::update(double dt) {
        }
 }
 
-void FGATCDisplay::RegisterSingleMessage(string msg, int delay) {
+void FGATCDisplay::RegisterSingleMessage(string msg, double delay) {
        atcMessage m;
        m.msg = msg;
        m.repeating = false;
-       m.counter = 0;
-       m.start_count = delay * 30;             // Fixme - need to use actual FPS
-       m.stop_count = m.start_count + 400;             // Display for 3 - 5 seconds for now - this might have to change eg. be related to length of message in future
+       m.counter = 0.0;
+       m.start_count = delay;
+       m.stop_count = m.start_count + 5.0;             // Display for 5ish seconds for now - this might have to change eg. be related to length of message in future
        //cout << "m.stop_count = " << m.stop_count << '\n';
        m.id = 0;
        m.dsp_offset = 0.0;
index d3c9e1fca352be7b67d780168989a8392055aea7..ba50fd6c52d261ba215d178c86b1e0cd9c131036 100644 (file)
@@ -38,9 +38,9 @@ SG_USING_STD(string);
 struct atcMessage {
     string msg;
     bool repeating;
-    int counter;       // count of how many iterations since posting
-    int start_count;   // value of counter at which display should start
-    int stop_count;    // value of counter at which display should stop
+    double counter;            // count of how many seconds since the message was registered
+    double start_count;        // value of counter at which display should start (seconds)
+    double stop_count; // value of counter at which display should stop (seconds)
     int id;
        double dsp_offset;
 };
@@ -76,7 +76,7 @@ public:
 
     // Register a single message for display after a delay of delay seconds
     // Will automatically stop displaying after a suitable interval.
-    void RegisterSingleMessage(string msg, int delay); // OK - I know passing a string in and out is probably not good but it will have to do for now.
+    void RegisterSingleMessage(string msg, double delay);      // OK - I know passing a string in and out is probably not good but it will have to do for now.
 
     // For now we will assume only one repeating message at once
     // This is not really robust