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

Function GUI_FactoryWindow_Init

src/gui/gui.c:2801–2863  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2799}
2800
2801static void GUI_FactoryWindow_Init(void)
2802{
2803 static const uint8 xSrc[HOUSE_MAX] = { 0, 0, 16, 0, 0, 0 };
2804 static const uint8 ySrc[HOUSE_MAX] = { 8, 152, 48, 0, 0, 0 };
2805 Screen oldScreenID;
2806 void *wsa;
2807 int16 i;
2808 ObjectInfo *oi;
2809
2810 oldScreenID = GFX_Screen_SetActive(SCREEN_1);
2811
2812 Sprites_LoadImage("CHOAM.CPS", SCREEN_1, NULL);
2813 GUI_DrawSprite(SCREEN_1, g_sprites[11], 192, 0, 0, 0); /* "Credits" */
2814
2815 GUI_Palette_RemapScreen(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_1, g_remap);
2816
2817 GUI_Screen_Copy(xSrc[g_playerHouseID], ySrc[g_playerHouseID], 0, 8, 7, 40, SCREEN_1, SCREEN_1);
2818 GUI_Screen_Copy(xSrc[g_playerHouseID], ySrc[g_playerHouseID], 0, 152, 7, 40, SCREEN_1, SCREEN_1);
2819
2820 GUI_FactoryWindow_CreateWidgets();
2821 GUI_FactoryWindow_LoadGraymapTbl();
2822 GUI_FactoryWindow_InitItems();
2823
2824 for (i = g_factoryWindowTotal; i < 4; i++) GUI_Widget_MakeInvisible(GUI_Widget_Get_ByIndex(g_widgetInvoiceTail, i + 46));
2825
2826 for (i = 0; i < 4; i++) {
2827 FactoryWindowItem *item = GUI_FactoryWindow_GetItem(i);
2828
2829 if (item == NULL) continue;
2830
2831 oi = item->objectInfo;
2832 if (oi->available == -1) {
2833 GUI_DrawSprite(SCREEN_1, g_sprites[oi->spriteID], 72, 24 + i * 32, 0, DRAWSPRITE_FLAG_REMAP, s_factoryWindowGraymapTbl, 1);
2834 } else {
2835 GUI_DrawSprite(SCREEN_1, g_sprites[oi->spriteID], 72, 24 + i * 32, 0, 0);
2836 }
2837 }
2838
2839 g_factoryWindowBase = 0;
2840 g_factoryWindowSelected = 0;
2841
2842 oi = g_factoryWindowItems[0].objectInfo;
2843
2844 wsa = WSA_LoadFile(oi->wsa, s_factoryWindowWsaBuffer, sizeof(s_factoryWindowWsaBuffer), false);
2845 WSA_DisplayFrame(wsa, 0, 128, 48, SCREEN_1);
2846 WSA_Unload(wsa);
2847
2848 GUI_Mouse_Hide_Safe();
2849 GUI_Screen_Copy(0, 0, 0, 0, SCREEN_WIDTH / 8, SCREEN_HEIGHT, SCREEN_1, SCREEN_0);
2850 GUI_Mouse_Show_Safe();
2851
2852 GUI_DrawFilledRectangle(64, 0, 112, SCREEN_HEIGHT - 1, GFX_GetPixel(72, 23));
2853
2854 GUI_FactoryWindow_PrepareScrollList();
2855
2856 GFX_Screen_SetActive(SCREEN_0);
2857
2858 GUI_FactoryWindow_DrawDetails();

Callers 1

GUI_DisplayFactoryWindowFunction · 0.85

Calls 15

GFX_Screen_SetActiveFunction · 0.85
Sprites_LoadImageFunction · 0.85
GUI_DrawSpriteFunction · 0.85
GUI_Palette_RemapScreenFunction · 0.85
GUI_Screen_CopyFunction · 0.85
GUI_Widget_MakeInvisibleFunction · 0.85
GUI_Widget_Get_ByIndexFunction · 0.85
WSA_LoadFileFunction · 0.85

Tested by

no test coverage detected