Esempio n. 1
0
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;
    }
}
Esempio n. 2
0
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);
}