|
|
|
@ -795,6 +795,12 @@ static int32 ReadPE(const PatchEntry*pe)
|
|
|
|
|
|
|
|
|
|
static void WritePE(const PatchEntry *pe, int32 val)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
if ((pe->flags & PF_0ISDIS) && val <= 0) {
|
|
|
|
|
*(bool*)pe->variable = 0; // "clamp" 'disabled' value to smallest type, PE_BOOL
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
switch(pe->type) {
|
|
|
|
|
case PE_BOOL: *(bool*)pe->variable = (bool)val; break;
|
|
|
|
|
|
|
|
|
@ -816,8 +822,6 @@ static void WritePE(const PatchEntry *pe, int32 val)
|
|
|
|
|
|
|
|
|
|
case PE_UINT16: if ((uint16)val > (uint16)pe->max)
|
|
|
|
|
*(uint16*)pe->variable = (uint16)pe->max;
|
|
|
|
|
else if ( (pe->flags & PF_0ISDIS) && ((int16)val < (int16)pe->min) )
|
|
|
|
|
*(int16*)pe->variable = 0;
|
|
|
|
|
else if ((uint16)val < (uint16)pe->min)
|
|
|
|
|
*(uint16*)pe->variable = (uint16)pe->min;
|
|
|
|
|
else
|
|
|
|
|