has_color() performance fixes
Performance profiling showed that multiple strcmpi() calls were occurring each and every time a character was going to the map. This update: - honors the WC_COLOR capability - It allows a window-port to control individual color availability should the window-port wish to do so. - Makes checking on the individual colors for the active window-port is a straightforward table lookup at the CLR_ offset. iflags.use_color remains a master on/off switch for use of color, regardless of the capability compiled into the game (default TRUE). The has_color() routine, which is now a shared routine in src/windows.c, could likely be made into a simple macro to eliminate the function call, but this update does not go that far. This hits a lot of port files due to the window-port interface change, mostly cookie-cutter.
This commit is contained in:
@@ -28,7 +28,9 @@ long amii_scrnmode;
|
||||
* the intuition interface for the amiga...
|
||||
*/
|
||||
struct window_procs amii_procs = {
|
||||
"amii", WC_COLOR | WC_HILITE_PET | WC_INVERSE, 0L, amii_init_nhwindows,
|
||||
"amii", WC_COLOR | WC_HILITE_PET | WC_INVERSE,
|
||||
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, /* color availability */
|
||||
0L, amii_init_nhwindows,
|
||||
amii_player_selection, amii_askname, amii_get_nh_event,
|
||||
amii_exit_nhwindows, amii_suspend_nhwindows, amii_resume_nhwindows,
|
||||
amii_create_nhwindow, amii_clear_nhwindow, amii_display_nhwindow,
|
||||
@@ -60,7 +62,9 @@ struct window_procs amii_procs = {
|
||||
* a shared library to allow the executable to be smaller.
|
||||
*/
|
||||
struct window_procs amiv_procs = {
|
||||
"amitile", WC_COLOR | WC_HILITE_PET | WC_INVERSE, 0L, amii_init_nhwindows,
|
||||
"amitile", WC_COLOR | WC_HILITE_PET | WC_INVERSE,
|
||||
{1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, /* color availability */
|
||||
0L, amii_init_nhwindows,
|
||||
amii_player_selection, amii_askname, amii_get_nh_event,
|
||||
amii_exit_nhwindows, amii_suspend_nhwindows, amii_resume_nhwindows,
|
||||
amii_create_nhwindow, amii_clear_nhwindow, amii_display_nhwindow,
|
||||
|
||||
Reference in New Issue
Block a user