Loop...and const. Crap.

Oh well. Still, wonder why mutable wouldn't work.
This commit is contained in:
Jason Felds
2013-04-30 22:42:47 -04:00
parent 15e9e1d1d4
commit 4979bf3218
+10 -9
View File
@@ -70,7 +70,7 @@ public:
virtual RString GetPageName() const { return "Main"; }
virtual bool ForceOffAfterUse() const { return false; }
virtual bool IsEnabled() const = 0;
virtual void DoAndLog( RString &sMessageOut )
virtual void DoAndLog( RString &sMessageOut ) const
{
RString s1 = GetDisplayTitle();
RString s2 = GetDisplayValue();
@@ -448,15 +448,16 @@ bool ScreenDebugOverlay::Input( const InputEventPlus &input )
return true;
}
FOREACH_CONST( IDebugLine*, *g_pvpSubscribers, p )
// Explicitly be tricky to keep the values aligned.
int i = -1;
for (IDebugLine const *p : *g_pvpSubscribers)
{
RString sPageName = (*p)->GetPageName();
int i = p-g_pvpSubscribers->begin();
RString sPageName = p->GetPageName();
++i;
// Gameplay buttons are available only in gameplay. Non-gameplay buttons
// are only available when the screen is displayed.
IDebugLine::Type type = (*p)->GetType();
IDebugLine::Type type = p->GetType();
switch( type )
{
case IDebugLine::all_screens:
@@ -473,17 +474,17 @@ bool ScreenDebugOverlay::Input( const InputEventPlus &input )
FAIL_M(ssprintf("Invalid debug line type: %i", type));
}
if( input.DeviceI == (*p)->m_Button )
if( input.DeviceI == p->m_Button )
{
if( input.type != IET_FIRST_PRESS )
return true; // eat the input but do nothing
// do the action
RString sMessage;
(*p)->DoAndLog( sMessage );
p->DoAndLog( sMessage );
if( !sMessage.empty() )
LOG->Trace("DEBUG: %s", sMessage.c_str() );
if( (*p)->ForceOffAfterUse() )
if( p->ForceOffAfterUse() )
m_bForcedHidden = true;
// update text to show the effect of what changed above