Luke - 2005-12-15

Logged In: YES
user_id=1404516

Could this problem be fixed not only in the latest release,
but also updated in all releases 200 to 215 please?

The clean way to fix this bug:
// Comment out the following line (delete)
// graphics.bmp_main_switch = graphics.bmp_main_down;
// Add the following lines
graphics.bmp_main_switch =
(HBITMAP) LoadImage(hInstance, MAKEINTRESOURCE
(IDB_MAINDOWN),
IMAGE_BITMAP, 0, 0,
LR_CREATEDIBSECTION);
// Comment out the following line (delete)
// graphics.bmp_main_track_font =
graphics.bmp_main_time_font;
// Add the following lines
graphics.bmp_main_track_font =
(HBITMAP) LoadImage(hInstance, MAKEINTRESOURCE
(IDB_MAINBIGFONT),
IMAGE_BITMAP, 0, 0,
LR_CREATEDIBSECTION);

It is when the graphics.bmp_main_track_font =
graphics.bmp_main_time_font; in the main_set_default_skin()
funciton.
main_set_default_skin(void)
{
--------
// The following line probably generates an error when
a new skin is selected.
// The graphics.bmp_main_switch will need to be set to
NULL before the
// graphics.bmp_main_down is deleted.
// Otherwise, they will both point to the same
// place in memory and they will both be the same.
graphics.bmp_main_switch = graphics.bmp_main_down;
--------
// The following line generates an error when a new
skin is selected.
// The graphics.bmp_main_track_font will need to be set
to NULL before the
// graphics.bmp_main_time_font is deleted.
// Otherwise, they will both point to the same
// place in memory and they will both be the same.
graphics.bmp_main_track_font =
graphics.bmp_main_time_font;
--------
}

The messy way to fix this bug:
In the function "int main_skin_open(char *name)"
// if(globals.main_bool_skin_next_is_default == TRUE)
// sort of
// If the previous skin was the default skin,
// where graphics.bmp_main_switch =
graphics.bmp_main_down;
if(graphics.bmp_main_switch == graphics.bmp_main_down)
graphics.bmp_main_switch = NULL; // This
line must come before...
DeleteObject(graphics.bmp_main_down); // ...this
line
--------
// if(globals.main_bool_skin_next_is_default == TRUE)
// sort of
// If the previous skin was the default skin,
// where graphics.bmp_main_track_font =
graphics.bmp_main_time_font;
if(graphics.bmp_main_track_font ==
graphics.bmp_main_time_font)
graphics.bmp_main_track_font = NULL; // This
line must come before...
DeleteObject(graphics.bmp_main_time_font); // ...this
line