forked from Mirrors/openclonk
Implement PLRZOOM_Set flag to allow setting current zoom and limits in the same call.
parent
cd8ab67c14
commit
893d5e87da
|
@ -56,6 +56,10 @@
|
|||
<literal_col>PLRZOOM_LimitMax</literal_col>
|
||||
<col>Set the maximum limit for zooming. The player cannot zoom in further than this.</col>
|
||||
</row>
|
||||
<row>
|
||||
<literal_col>PLRZOOM_Set</literal_col>
|
||||
<col>Set the current zoom. This flag is implied if neither PLRZOOM_LimitMin nor PLRZOOM_LimitMax is supplied but can be used if current zoom and limits should be set simultanuously.</col>
|
||||
</row>
|
||||
</table>
|
||||
</desc>
|
||||
</param>
|
||||
|
|
|
@ -55,6 +55,10 @@
|
|||
<literal_col>PLRZOOM_LimitMax</literal_col>
|
||||
<col>Set the maximum limit for zooming. The player cannot zoom in further than this.</col>
|
||||
</row>
|
||||
<row>
|
||||
<literal_col>PLRZOOM_Set</literal_col>
|
||||
<col>Set the current zoom. This flag is implied if neither PLRZOOM_LimitMin nor PLRZOOM_LimitMax is supplied but can be used if current zoom and limits should be set simultanuously.</col>
|
||||
</row>
|
||||
</table>
|
||||
</desc>
|
||||
</param>
|
||||
|
|
|
@ -685,7 +685,8 @@ static const int PLRZOOM_Direct = 0x01,
|
|||
PLRZOOM_NoIncrease = 0x04,
|
||||
PLRZOOM_NoDecrease = 0x08,
|
||||
PLRZOOM_LimitMin = 0x10,
|
||||
PLRZOOM_LimitMax = 0x20;
|
||||
PLRZOOM_LimitMax = 0x20,
|
||||
PLRZOOM_Set = 0x40;
|
||||
|
||||
static bool FnSetPlayerZoomByViewRange(C4PropList * _this, long plr_idx, long range_wdt, long range_hgt, long flags)
|
||||
{
|
||||
|
@ -705,13 +706,12 @@ static bool FnSetPlayerZoomByViewRange(C4PropList * _this, long plr_idx, long ra
|
|||
C4Player *plr = ::Players.Get(plr_idx);
|
||||
if (!plr) return false;
|
||||
// adjust values in player
|
||||
if (!(flags & (PLRZOOM_LimitMin | PLRZOOM_LimitMax)))
|
||||
plr->SetZoomByViewRange(range_wdt, range_hgt, !!(flags & PLRZOOM_Direct), !!(flags & PLRZOOM_NoIncrease), !!(flags & PLRZOOM_NoDecrease));
|
||||
else
|
||||
if ((flags & PLRZOOM_Set) || !(flags & (PLRZOOM_LimitMin | PLRZOOM_LimitMax)))
|
||||
{
|
||||
if (flags & PLRZOOM_LimitMin) plr->SetMinZoomByViewRange(range_wdt, range_hgt, !!(flags & PLRZOOM_NoIncrease), !!(flags & PLRZOOM_NoDecrease));
|
||||
if (flags & PLRZOOM_LimitMax) plr->SetMaxZoomByViewRange(range_wdt, range_hgt, !!(flags & PLRZOOM_NoIncrease), !!(flags & PLRZOOM_NoDecrease));
|
||||
plr->SetZoomByViewRange(range_wdt, range_hgt, !!(flags & PLRZOOM_Direct), !!(flags & PLRZOOM_NoIncrease), !!(flags & PLRZOOM_NoDecrease));
|
||||
}
|
||||
if (flags & PLRZOOM_LimitMin) plr->SetMinZoomByViewRange(range_wdt, range_hgt, !!(flags & PLRZOOM_NoIncrease), !!(flags & PLRZOOM_NoDecrease));
|
||||
if (flags & PLRZOOM_LimitMax) plr->SetMaxZoomByViewRange(range_wdt, range_hgt, !!(flags & PLRZOOM_NoIncrease), !!(flags & PLRZOOM_NoDecrease));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -737,13 +737,12 @@ static bool FnSetPlayerZoom(C4PropList * _this, long plr_idx, long zoom, long pr
|
|||
C4Player *plr = ::Players.Get(plr_idx);
|
||||
if (!plr) return false;
|
||||
// adjust values in player
|
||||
if (!(flags & (PLRZOOM_LimitMin | PLRZOOM_LimitMax)))
|
||||
plr->SetZoom(fZoom, !!(flags & PLRZOOM_Direct), !!(flags & PLRZOOM_NoIncrease), !!(flags & PLRZOOM_NoDecrease));
|
||||
else
|
||||
if ((flags & PLRZOOM_Set) || !(flags & (PLRZOOM_LimitMin | PLRZOOM_LimitMax)))
|
||||
{
|
||||
if (flags & PLRZOOM_LimitMin) plr->SetMinZoom(fZoom, !!(flags & PLRZOOM_NoIncrease), !!(flags & PLRZOOM_NoDecrease));
|
||||
if (flags & PLRZOOM_LimitMax) plr->SetMaxZoom(fZoom, !!(flags & PLRZOOM_NoIncrease), !!(flags & PLRZOOM_NoDecrease));
|
||||
plr->SetZoom(fZoom, !!(flags & PLRZOOM_Direct), !!(flags & PLRZOOM_NoIncrease), !!(flags & PLRZOOM_NoDecrease));
|
||||
}
|
||||
if (flags & PLRZOOM_LimitMin) plr->SetMinZoom(fZoom, !!(flags & PLRZOOM_NoIncrease), !!(flags & PLRZOOM_NoDecrease));
|
||||
if (flags & PLRZOOM_LimitMax) plr->SetMaxZoom(fZoom, !!(flags & PLRZOOM_NoIncrease), !!(flags & PLRZOOM_NoDecrease));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -2750,6 +2749,7 @@ C4ScriptConstDef C4ScriptGameConstMap[]=
|
|||
{ "PLRZOOM_NoDecrease" ,C4V_Int, PLRZOOM_NoDecrease },
|
||||
{ "PLRZOOM_LimitMin" ,C4V_Int, PLRZOOM_LimitMin },
|
||||
{ "PLRZOOM_LimitMax" ,C4V_Int, PLRZOOM_LimitMax },
|
||||
{ "PLRZOOM_Set" ,C4V_Int, PLRZOOM_Set },
|
||||
|
||||
{ "ATTACH_Front" ,C4V_Int, C4ATTACH_Front },
|
||||
{ "ATTACH_Back" ,C4V_Int, C4ATTACH_Back },
|
||||
|
|
Loading…
Reference in New Issue