MCPcopy Create free account
hub / github.com/OpenDUNE/OpenDUNE / GUI_StrategicMap_AnimateSelected

Function GUI_StrategicMap_AnimateSelected

src/gui/gui.c:2977–3037  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2975}
2976
2977static 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();

Callers 1

Calls 9

GUI_Palette_CreateRemapFunction · 0.85
GUI_Mouse_Hide_SafeFunction · 0.85
GFX_Screen_Copy2Function · 0.85
GUI_Mouse_Show_SafeFunction · 0.85
Ini_GetStringFunction · 0.85
Sprite_GetWidthFunction · 0.85
Sprite_GetHeightFunction · 0.85
GUI_DrawSpriteFunction · 0.85

Tested by

no test coverage detected