Skip to content

Commit 9068bac

Browse files
committed
Added elapsed time for GetLineInfo
1 parent 3210dac commit 9068bac

File tree

2 files changed

+37
-1
lines changed

2 files changed

+37
-1
lines changed

scripting/lua_methods.cpp

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2827,9 +2827,27 @@ static int L_GetLineInfo (lua_State *L)
28272827
MakeTableItem (L, "styles", pLine->styleList.GetCount ()); // 11
28282828

28292829
// high-performance timer
2830-
double ticks = (double) pLine->m_lineHighPerformanceTime.QuadPart / (double) App.m_iCounterFrequency;
2830+
double ticks = 0;
2831+
2832+
if (App.m_iCounterFrequency)
2833+
ticks = (double) pLine->m_lineHighPerformanceTime.QuadPart / (double) App.m_iCounterFrequency;
28312834
MakeTableItem (L, "ticks", ticks);
28322835

2836+
LONGLONG iTimeTaken;
2837+
double fElapsedTime;
2838+
2839+
// elapsed time from when world started
2840+
iTimeTaken = pLine->m_lineHighPerformanceTime.QuadPart -
2841+
pDoc->m_whenWorldStartedHighPrecision.QuadPart;
2842+
2843+
if (App.m_iCounterFrequency)
2844+
fElapsedTime = ((double) iTimeTaken) /
2845+
((double) App.m_iCounterFrequency);
2846+
else
2847+
fElapsedTime = pLine->m_theTime.GetTime () - (double) pDoc->m_whenWorldStarted.GetTime ();
2848+
2849+
MakeTableItem (L, "elapsed", fElapsedTime);
2850+
28332851
return 1; // one table
28342852
} // end of returning a table
28352853

scripting/methods/methods_info.cpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1198,6 +1198,24 @@ CLine * pLine = m_LineList.GetAt (GetLinePosition (LineNumber - 1));
11981198
}
11991199
break;
12001200

1201+
case 13:
1202+
{
1203+
LONGLONG iTimeTaken;
1204+
double fElapsedTime;
1205+
1206+
// elapsed time from when world started
1207+
iTimeTaken = pLine->m_lineHighPerformanceTime.QuadPart -
1208+
m_whenWorldStartedHighPrecision.QuadPart;
1209+
1210+
if (App.m_iCounterFrequency)
1211+
fElapsedTime = ((double) iTimeTaken) /
1212+
((double) App.m_iCounterFrequency);
1213+
else
1214+
fElapsedTime = pLine->m_theTime.GetTime () - (double) m_whenWorldStarted.GetTime ();
1215+
SetUpVariantDouble (vaResult, fElapsedTime);
1216+
}
1217+
break;
1218+
12011219
default:
12021220
vaResult.vt = VT_NULL;
12031221
break;

0 commit comments

Comments
 (0)