| 2799 | } |
| 2800 | |
| 2801 | static 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(); |
no test coverage detected