717 {PE_UINT16, PF_0ISDIS, STR_CONFIG_PATCHES_SERVINT_TRAINS, &_patches.servint_trains, 30, 1200, 10}, |
716 {PE_UINT16, PF_0ISDIS, STR_CONFIG_PATCHES_SERVINT_TRAINS, &_patches.servint_trains, 30, 1200, 10}, |
718 {PE_UINT16, PF_0ISDIS, STR_CONFIG_PATCHES_SERVINT_ROADVEH, &_patches.servint_roadveh, 30, 1200, 10}, |
717 {PE_UINT16, PF_0ISDIS, STR_CONFIG_PATCHES_SERVINT_ROADVEH, &_patches.servint_roadveh, 30, 1200, 10}, |
719 {PE_UINT16, PF_0ISDIS, STR_CONFIG_PATCHES_SERVINT_AIRCRAFT, &_patches.servint_aircraft, 30, 1200, 10}, |
718 {PE_UINT16, PF_0ISDIS, STR_CONFIG_PATCHES_SERVINT_AIRCRAFT, &_patches.servint_aircraft, 30, 1200, 10}, |
720 {PE_UINT16, PF_0ISDIS, STR_CONFIG_PATCHES_SERVINT_SHIPS, &_patches.servint_ships, 30, 1200, 10}, |
719 {PE_UINT16, PF_0ISDIS, STR_CONFIG_PATCHES_SERVINT_SHIPS, &_patches.servint_ships, 30, 1200, 10}, |
721 |
720 |
722 {PE_BYTE, 0, STR_CONFIG_PATCHES_AI_BUILDS_TRAINS, &_patches.ai_disable_veh, 0x01}, |
721 {PE_BOOL, 0, STR_CONFIG_PATCHES_AI_BUILDS_TRAINS, &_patches.ai_disable_veh_train}, |
723 {PE_BYTE, 0, STR_CONFIG_PATCHES_AI_BUILDS_ROADVEH, &_patches.ai_disable_veh, 0x02}, |
722 {PE_BOOL, 0, STR_CONFIG_PATCHES_AI_BUILDS_ROADVEH, &_patches.ai_disable_veh_roadveh}, |
724 {PE_BYTE, 0, STR_CONFIG_PATCHES_AI_BUILDS_AIRCRAFT, &_patches.ai_disable_veh, 0x04}, |
723 {PE_BOOL, 0, STR_CONFIG_PATCHES_AI_BUILDS_AIRCRAFT, &_patches.ai_disable_veh_aircraft}, |
725 {PE_BYTE, 0, STR_CONFIG_PATCHES_AI_BUILDS_SHIPS, &_patches.ai_disable_veh, 0x08}, |
724 {PE_BOOL, 0, STR_CONFIG_PATCHES_AI_BUILDS_SHIPS, &_patches.ai_disable_veh_ship}, |
726 }; |
725 }; |
727 |
726 |
728 static const PatchEntry _patches_stations[] = { |
727 static const PatchEntry _patches_stations[] = { |
729 {PE_BOOL, 0, STR_CONFIG_PATCHES_JOINSTATIONS, &_patches.join_stations}, |
728 {PE_BOOL, 0, STR_CONFIG_PATCHES_JOINSTATIONS, &_patches.join_stations}, |
730 {PE_BOOL, 0, STR_CONFIG_PATCHES_FULLLOADANY, &_patches.full_load_any}, |
729 {PE_BOOL, 0, STR_CONFIG_PATCHES_FULLLOADANY, &_patches.full_load_any}, |
781 |
779 |
782 static void WritePE(const PatchEntry *pe, int32 val) |
780 static void WritePE(const PatchEntry *pe, int32 val) |
783 { |
781 { |
784 switch(pe->type) { |
782 switch(pe->type) { |
785 case PE_BOOL: *(bool*)pe->variable = (bool)val; break; |
783 case PE_BOOL: *(bool*)pe->variable = (bool)val; break; |
786 case PE_BYTE: if ((byte)val > (byte)pe->max) |
|
787 *(byte*)pe->variable = (byte)pe->max; |
|
788 else if ((byte)val < (byte)pe->min) |
|
789 *(byte*)pe->variable = (byte)pe->min; |
|
790 else |
|
791 *(byte*)pe->variable = (byte)val; |
|
792 break; |
|
793 |
784 |
794 case PE_UINT8: if ((uint8)val > (uint8)pe->max) |
785 case PE_UINT8: if ((uint8)val > (uint8)pe->max) |
795 *(uint8*)pe->variable = (uint8)pe->max; |
786 *(uint8*)pe->variable = (uint8)pe->max; |
796 else if ((uint8)val < (uint8)pe->min) |
787 else if ((uint8)val < (uint8)pe->min) |
797 *(uint8*)pe->variable = (uint8)pe->min; |
788 *(uint8*)pe->variable = (uint8)pe->min; |
849 for(i=0,pe=page->entries; i!=page->num; i++,pe++) { |
840 for(i=0,pe=page->entries; i!=page->num; i++,pe++) { |
850 bool disabled = false; |
841 bool disabled = false; |
851 if (pe->type == PE_BOOL) { |
842 if (pe->type == PE_BOOL) { |
852 DrawFrameRect(x+5, y+1, x+15+9, y+9, (*(bool*)pe->variable)?6:4, (*(bool*)pe->variable)?0x20:0); |
843 DrawFrameRect(x+5, y+1, x+15+9, y+9, (*(bool*)pe->variable)?6:4, (*(bool*)pe->variable)?0x20:0); |
853 SET_DPARAM16(0, *(bool*)pe->variable ? STR_CONFIG_PATCHES_ON : STR_CONFIG_PATCHES_OFF); |
844 SET_DPARAM16(0, *(bool*)pe->variable ? STR_CONFIG_PATCHES_ON : STR_CONFIG_PATCHES_OFF); |
854 } else if (pe->type == PE_BYTE) { |
|
855 bool enabled; |
|
856 val = ReadPE(pe); |
|
857 enabled = (byte)val & (byte)pe->min; |
|
858 DrawFrameRect(x+5, y+1, x+15+9, y+9, enabled?6:4, enabled?0x20:0); |
|
859 SET_DPARAM16(0, enabled ? STR_CONFIG_PATCHES_ON : STR_CONFIG_PATCHES_OFF); |
|
860 } else { |
845 } else { |
861 DrawFrameRect(x+5, y+1, x+5+9, y+9, 3, clk == i*2+1 ? 0x20 : 0); |
846 DrawFrameRect(x+5, y+1, x+5+9, y+9, 3, clk == i*2+1 ? 0x20 : 0); |
862 DrawFrameRect(x+15, y+1, x+15+9, y+9, 3, clk == i*2+2 ? 0x20 : 0); |
847 DrawFrameRect(x+15, y+1, x+15+9, y+9, 3, clk == i*2+2 ? 0x20 : 0); |
863 DrawStringCentered(x+10, y+1, STR_6819, 0); |
848 DrawStringCentered(x+10, y+1, STR_6819, 0); |
864 DrawStringCentered(x+20, y+1, STR_681A, 0); |
849 DrawStringCentered(x+20, y+1, STR_681A, 0); |