void change_cursor(POINT where_curs) { short curs_types[50] = {0,0,126,124,122,122,0,0,0,0, 0,124,124,124,124,122,0,0,0,0, 120,120,0,0,0,0,0,0,0,0, 0,0,0,0,0,129,129,129,0,0, 0,0,0,0,0,120,0,0,0,0 },cursor_needed; location cursor_direction; RECT world_screen = {23, 23, 274, 346}; where_curs.x -= ulx; where_curs.y -= uly; if (PtInRect(&world_screen,where_curs) == false) cursor_needed = 120; else cursor_needed = curs_types[overall_mode]; if (in_startup_mode == true) cursor_needed = 120; else if (cursor_needed == 0) { if ((PtInRect(&world_screen,where_curs) == false) || (in_startup_mode == true)) cursor_needed = 120; else { cursor_direction = get_cur_direction(where_curs); cursor_needed = 100 + (cursor_direction.x) + 10 * ( cursor_direction.y); if (cursor_needed == 100) cursor_needed = 120; } } current_cursor = cursor_needed; switch (cursor_needed) { case 120: SetCursor(sword_curs); break; case 121: case 122: SetCursor(key_curs); break; case 124: SetCursor(target_curs); break; case 126: SetCursor(talk_curs); break; case 129: SetCursor(look_curs); break; default: // an arrow SetCursor(arrow_curs[cursor_direction.x + 1][cursor_direction.y + 1]); break; } }
void change_cursor(location where_curs) { cursor_type cursor_needed; location cursor_direction; rectangle world_screen = {23, 23, 346, 274}; where_curs.x -= ul.x; where_curs.y -= ul.y; if(!world_screen.contains(where_curs)) cursor_needed = sword_curs; else cursor_needed = get_mode_cursor(); if((overall_mode == MODE_OUTDOORS || overall_mode == MODE_TOWN || overall_mode == MODE_COMBAT) && world_screen.contains(where_curs)){ cursor_direction = get_cur_direction(where_curs); cursor_needed = arrow_curs[cursor_direction.y + 1][cursor_direction.x + 1]; } if(cursor_needed != current_cursor) set_cursor(cursor_needed); }