Stability fixes: avoid somfusions with same named variables in one function; Properly sort out players from player list that use too long filenames; Removed call for gr_set_fontcolor in kconfig where no canvas is set, causing crashes when trying to reassign a button, key or axis

This commit is contained in:
zicodxx 2011-07-13 23:26:42 +02:00
parent 8bc5fd54a1
commit cf23e6bb24
5 changed files with 26 additions and 13 deletions

View file

@ -1,5 +1,9 @@
D1X-Rebirth Changelog
20110713
--------
arch/sdl/event.c, arch/sdl/key.c, main/kconfig.c, main/menu.c: Stability fixes: avoid somfusions with same named variables in one function; Properly sort out players from player list that use too long filenames; Removed call for gr_set_fontcolor in kconfig where no canvas is set, causing crashes when trying to reassign a button, key or axis
20110712
--------
main/wall.c: Add fallback routine from D2 source in wall_frame_process() to automatically set open-flag if wall state is set to opened

View file

@ -72,8 +72,8 @@ void event_poll()
case SDL_JOYBALLMOTION:
break;
case SDL_QUIT: {
d_event event = { EVENT_QUIT };
call_default_handler(&event);
d_event qevent = { EVENT_QUIT };
call_default_handler(&qevent);
idle = 0;
} break;
}
@ -82,10 +82,10 @@ void event_poll()
// Send the idle event if there were no other events
if (idle)
{
d_event event;
d_event ievent;
event.type = EVENT_IDLE;
event_send(&event);
ievent.type = EVENT_IDLE;
event_send(&ievent);
}
mouse_cursor_autohide();

View file

@ -363,22 +363,22 @@ unsigned char key_ascii()
return 255;
}
void key_handler(SDL_KeyboardEvent *event)
void key_handler(SDL_KeyboardEvent *kevent)
{
int keycode, event_keysym=-1, key_state;
// Read SDLK symbol and state
event_keysym = event->keysym.sym;
key_state = (event->state == SDL_PRESSED)?1:0;
event_keysym = kevent->keysym.sym;
key_state = (kevent->state == SDL_PRESSED)?1:0;
// fill the unicode frame-related unicode buffer
if (key_state && event->keysym.unicode > 31 && event->keysym.unicode < 255)
if (key_state && kevent->keysym.unicode > 31 && kevent->keysym.unicode < 255)
{
int i = 0;
for (i = 0; i < KEY_BUFFER_SIZE; i++)
if (unicode_frame_buffer[i] == '\0')
{
unicode_frame_buffer[i] = event->keysym.unicode;
unicode_frame_buffer[i] = kevent->keysym.unicode;
break;
}
}

View file

@ -566,7 +566,6 @@ void kconfig_start_changing(kc_menu *menu)
return;
}
gr_set_fontcolor( BM_XRGB(28,28,28), -1 );
menu->q_fade_i = 0; // start question mark flasher
menu->changing = 1;
}

View file

@ -369,12 +369,22 @@ int RegisterPlayer()
{
char *p;
if (strlen(*f) > FILENAME_LEN-1 || strlen(*f) < 5) // sorry guys, can only have up to eight chars for the player name
{
NumItems--;
continue;
}
m[i++] = *f;
p = strchr(*f, '.');
if (p)
*p = '\0'; // chop the .plr
if ((p - *f) > 8)
*f[8] = 0; // sorry guys, can only have up to eight chars for the player name
}
if (NumItems <= 1) // so it seems all plr files we found were too long. funny. let's make a real player
{
MakeNewPlayerFile(0); // make a new player without showing listbox
PHYSFS_freeList(list);
return 0;
}
// Sort by name, except the <Create New Player> string