| 2975 | } |
| 2976 | |
| 2977 | static void GUI_StrategicMap_AnimateSelected(uint16 selected, StrategicMapData *data) |
| 2978 | { |
| 2979 | char key[4]; |
| 2980 | char buffer[81]; |
| 2981 | int16 x; |
| 2982 | int16 y; |
| 2983 | uint8 *sprite; |
| 2984 | uint16 width; |
| 2985 | uint16 height; |
| 2986 | uint16 i; |
| 2987 | |
| 2988 | GUI_Palette_CreateRemap(g_playerHouseID); |
| 2989 | |
| 2990 | for (i = 0; i < 20; i++) { |
| 2991 | GUI_StrategicMap_AnimateArrows(); |
| 2992 | |
| 2993 | if (data[i].index == 0 || data[i].index == selected) continue; |
| 2994 | |
| 2995 | GUI_Mouse_Hide_Safe(); |
| 2996 | GFX_Screen_Copy2(i * 16, 0, data[i].offsetX, data[i].offsetY, 16, 16, SCREEN_1, SCREEN_0, false); |
| 2997 | GUI_Mouse_Show_Safe(); |
| 2998 | } |
| 2999 | |
| 3000 | sprintf(key, "%d", selected); |
| 3001 | |
| 3002 | Ini_GetString("PIECES", key, NULL, buffer, sizeof(buffer) - 1, g_fileRegionINI); |
| 3003 | sscanf(buffer, "%hd,%hd", &x, &y); |
| 3004 | |
| 3005 | sprite = g_sprites[477 + selected]; |
| 3006 | width = Sprite_GetWidth(sprite); |
| 3007 | height = Sprite_GetHeight(sprite); |
| 3008 | |
| 3009 | x += 8; |
| 3010 | y += 24; |
| 3011 | |
| 3012 | GUI_Mouse_Hide_Safe(); |
| 3013 | GFX_Screen_Copy2(x, y, 16, 16, width, height, SCREEN_0, SCREEN_1, false); |
| 3014 | GUI_Mouse_Show_Safe(); |
| 3015 | |
| 3016 | GFX_Screen_Copy2(16, 16, 176, 16, width, height, SCREEN_1, SCREEN_1, false); |
| 3017 | |
| 3018 | GUI_DrawSprite(SCREEN_1, sprite, 16, 16, 0, DRAWSPRITE_FLAG_REMAP, g_remap, 1); |
| 3019 | |
| 3020 | for (i = 0; i < 20; i++) { |
| 3021 | GUI_StrategicMap_AnimateArrows(); |
| 3022 | |
| 3023 | if (data[i].index != selected) continue; |
| 3024 | |
| 3025 | GUI_DrawSprite(SCREEN_1, g_sprites[505 + data[i].arrow], data[i].offsetX + 16 - x, data[i].offsetY + 16 - y, 0, DRAWSPRITE_FLAG_REMAP, g_remap, 1); |
| 3026 | } |
| 3027 | |
| 3028 | for (i = 0; i < 4; i++) { |
| 3029 | GUI_Mouse_Hide_Safe(); |
| 3030 | GFX_Screen_Copy2((i % 2 == 0) ? 16 : 176, 16, x, y, width, height, SCREEN_1, SCREEN_0, false); |
| 3031 | GUI_Mouse_Show_Safe(); |
| 3032 | |
| 3033 | for (g_timerTimeout = 20; g_timerTimeout != 0; sleepIdle()) { |
| 3034 | GUI_StrategicMap_AnimateArrows(); |
no test coverage detected