I have a problem, it appears sometimes, when I'm logging to my game.
It's my debug log:
Code: Select all
[8204] [DEBUG] [GameLoginWindow::~GameLoginWindow] destructor
[8204] [DEBUG] [LobbyWindow::LobbyWindow] constructor
[8204] [DEBUG] [ServerListWindow::~ServerListWindow] destructor
[8204] [ERROR] [ExcHandler] CRITICAL ERROR c0000005 at 00523BF2
When we go into it we will see:
Code: Select all
00523BF2 - 38 9e d8 05 00 00 - cmp [esi+000005d8],bl <-- bug
00523BF8 - 74 31 - je 00523c2b
00523BFA - ba 60 3c 5a 00 - mov edx,005a3c60 : ["Pushed"]
00523BFF - 38 9e d9 05 00 00 - cmp [esi+000005d9],bl
00523C05 - 75 05 - jne 00523c0c
00523C07 - ba 54 3c 5a 00 - mov edx,005a3c54 : ["PushedOff"]
00523C0C - 8b c2 - mov eax,edx
00523C0E - 8d 68 01 - lea ebp,[eax+01]
It crashes after loading layout. It looks like a bug in this function (FalButton.cpp)
Code: Select all
void FalagardButton::render()
{
ButtonBase* w = (ButtonBase*)d_window;
const WidgetLookFeel& wlf = getLookNFeel();
bool norm = false;
String state;
if (w->isDisabled()) //exception here !!!
{
state = "Disabled";
}
else if (w->isPushed())
{
state = w->isHovering() ? "Pushed" : "PushedOff";
}
else if (w->isHovering())
{
state = "Hover";
}
else
{
state = "Normal";
norm = true;
}
if (!norm && !wlf.isStateImageryPresent(state))
{
state = "Normal";
}
wlf.getStateImagery(actualStateName(state)).render(*w);
}
Looks like w == NULL. Am I doing something wrong or it's CEGUI ?
It's trying to operate on ButtonBase* w = (ButtonBase*)d_window which is NULL.