summaryrefslogtreecommitdiff
path: root/http/api-inc.php
diff options
context:
space:
mode:
Diffstat (limited to 'http/api-inc.php')
-rw-r--r--http/api-inc.php33
1 files changed, 33 insertions, 0 deletions
diff --git a/http/api-inc.php b/http/api-inc.php
index ca8e0de..e6da049 100644
--- a/http/api-inc.php
+++ b/http/api-inc.php
@@ -642,6 +642,39 @@ class ApiPklV3_1 extends ApiPklV3 {
// 2025.01.01 - parameterized points for 1st place are no longer a minimum, they're strictly applied
class ApiPklV4 extends ApiPklV3_1 {
+ function check_parameters($parameters) {
+ // Check for newly introduced 'override_type_multiplier' parameter
+ if (isset($parameters['manual'])
+ && isset($parameters['manual']['override_type_multiplier'])) {
+ $this->check_values($parameters['manual'], array(
+ 'override_type_multiplier' => function($r) {
+ return is_integer_like($r) && intval($r) >= 0 && intval($r) <= 1;
+ }
+ ));
+ }
+ return parent::check_parameters($parameters);
+ }
+
+ function parse_parameters($parameters) {
+ $return = parent::parse_parameters($parameters);
+ // By default, leave the 1.25x multiplier for teams
+ $return['override_type_multiplier'] = FALSE;
+ // But if 'manual'->'override_type_multiplier' is set,
+ // interpret it.
+ if (isset($parameters['manual'])
+ && isset($parameters['manual']['override_type_multiplier'])) {
+ $return['override_type_multiplier'] = ($parameters['manual']['override_type_multiplier'] == 1);
+ }
+ return $return;
+ }
+
+ protected function _get_type_multiplier() {
+ if ($this->parameters['override_type_multiplier']) {
+ return 1.0;
+ }
+ return parent::_get_type_multiplier();
+ }
+
protected function _get_max_points() {
if ($this->parameters['min_points']) {
// 2025.02.12 amendment: