equal
deleted
inserted
replaced
3092 break; |
3092 break; |
3093 } |
3093 } |
3094 |
3094 |
3095 grfmsg(8, "CfgApply: Applying %u bytes from parameter 0x%02X at offset 0x%04X", param_size, param_num, offset); |
3095 grfmsg(8, "CfgApply: Applying %u bytes from parameter 0x%02X at offset 0x%04X", param_size, param_num, offset); |
3096 |
3096 |
|
3097 bool carry = false; |
3097 for (i = 0; i < param_size; i++) { |
3098 for (i = 0; i < param_size; i++) { |
3098 uint32 value = GetParamVal(param_num + i / 4, NULL); |
3099 uint32 value = GetParamVal(param_num + i / 4, NULL); |
|
3100 /* Reset carry flag for each iteration of the variable (only really |
|
3101 * matters if param_size is greater than 4) */ |
|
3102 if (i == 0) carry = false; |
3099 |
3103 |
3100 if (add_value) { |
3104 if (add_value) { |
3101 _preload_sprite[offset + i] += GB(value, (i % 4) * 8, 8); |
3105 uint new_value = _preload_sprite[offset + i] + GB(value, (i % 4) * 8, 8) + (carry ? 1 : 0); |
|
3106 _preload_sprite[offset + i] = GB(new_value, 0, 8); |
|
3107 /* Check if the addition overflowed */ |
|
3108 carry = new_value >= 256; |
3102 } else { |
3109 } else { |
3103 _preload_sprite[offset + i] = GB(value, (i % 4) * 8, 8); |
3110 _preload_sprite[offset + i] = GB(value, (i % 4) * 8, 8); |
3104 } |
3111 } |
3105 } |
3112 } |
3106 } |
3113 } |