mirror of https://github.com/zeldaret/oot.git
Add ENV_LIGHT_SETTINGS_BLEND_RATE_AND_FOG_NEAR_PACK, fix extracted negative blendRate
This commit is contained in:
parent
80c4f33da5
commit
b57da0041d
|
@ -155,8 +155,10 @@ typedef struct CurrentEnvLightSettings {
|
|||
// The blendRate determines how fast the current light settings fade to the next one
|
||||
// (under LIGHT_MODE_SETTINGS, otherwise unused).
|
||||
|
||||
#define ENV_LIGHT_SETTINGS_BLEND_RATE_AND_FOG_NEAR_PACK(blendRate, fogNear) (s16)((((blendRate) / 4) << 10) | (fogNear))
|
||||
|
||||
// Get blend rate from `EnvLightSettings.blendRateAndFogNear` in 0-255 range
|
||||
#define ENV_LIGHT_SETTINGS_BLEND_RATE_U8(blendRateAndFogNear) (((blendRateAndFogNear) >> 10) * 4)
|
||||
#define ENV_LIGHT_SETTINGS_BLEND_RATE_U8(blendRateAndFogNear) (u8)(((blendRateAndFogNear) >> 10) * 4)
|
||||
#define ENV_LIGHT_SETTINGS_FOG_NEAR(blendRateAndFogNear) ((blendRateAndFogNear) & 0x3FF)
|
||||
|
||||
typedef struct EnvLightSettings {
|
||||
|
|
|
@ -293,8 +293,10 @@ class EnvLightSettingsListResource(CDataArrayNamedLengthResource):
|
|||
|
||||
def write_blendRateAndFogNear(v):
|
||||
blendRate = (v >> 10) * 4
|
||||
if blendRate < 0:
|
||||
blendRate += 0x100
|
||||
fogNear = v & 0x3FF
|
||||
return f"(({blendRate} / 4) << 10) | {fogNear}"
|
||||
return f"ENV_LIGHT_SETTINGS_BLEND_RATE_AND_FOG_NEAR_PACK({blendRate}, {fogNear})"
|
||||
|
||||
elem_cdata_ext = CDataExt_Struct(
|
||||
(
|
||||
|
|
Loading…
Reference in New Issue