Misc/Fixup

* floating changes
 * condense several switch() into match() constructs
 * fix ucFirst not making the rest of the word lowercase
This commit is contained in:
Sarjuuk
2025-04-02 22:19:52 +02:00
parent 44ff43c113
commit 3078763ec3
5 changed files with 53 additions and 92 deletions

View File

@@ -1488,15 +1488,15 @@ class ItemList extends BaseType
{
$mask = $this->curTpl['scalingStatValue'];
switch ($type)
$mask &= match ($type)
{
case 'stats': $mask &= 0x04001F; break;
case 'armor': $mask &= 0xF001E0; break;
case 'dps' : $mask &= 0x007E00; break;
case 'spell': $mask &= 0x008000; break;
case 'fap' : $mask &= 0x010000; break; // unused
default: $mask &= 0x0;
}
'stats' => 0x04001F,
'armor' => 0xF001E0,
'dps' => 0x007E00,
'spell' => 0x008000,
'fap' => 0x010000, // unused
default => 0x0
};
$field = null;
for ($i = 0; $i < count(Util::$ssdMaskFields); $i++)

View File

@@ -550,22 +550,21 @@ abstract class Util
return Lang::item('ratingString', [$statId, $result, $level]);
}
// default ucFirst doesn't convert UTF-8 chars
public static function ucFirst($str)
// default ucFirst doesn't convert UTF-8 chars (php 8.4 finally implemented this .. see ya in 2027)
public static function ucFirst(string $str) : string
{
$len = mb_strlen($str) - 1;
$first = mb_substr($str, 0, 1);
$rest = mb_substr($str, 1, $len);
$rest = mb_substr($str, 1);
return mb_strtoupper($first).$rest;
return mb_strtoupper($first).mb_strtolower($rest);
}
public static function ucWords($str)
public static function ucWords(string $str) : string
{
return mb_convert_case($str, MB_CASE_TITLE);
}
public static function lower($str)
public static function lower(string $str) : string
{
return mb_strtolower($str);
}

View File

@@ -409,6 +409,7 @@ class Lang
if ($short && $schoolMask == SPELL_ALL_SCHOOLS)
return self::main('all');
if ($short && $schoolMask == SPELL_MAGIC_SCHOOLS)
return self::main('all').' ('.self::game('dt', 1).')';
@@ -429,27 +430,18 @@ class Lang
{
$classMask &= ChrClass::MASK_ALL; // clamp to available classes..
if ($classMask == ChrClass::MASK_ALL) // available to all classes
if (!$classMask || $classMask == ChrClass::MASK_ALL)// available to all classes
return '';
$tmp = [];
switch ($fmt)
[$base, $br] = match ($fmt)
{
case self::FMT_HTML:
$base = '<a href="?class=%1$d" class="c%1$d">%2$s</a>';
$br = '';
break;
case self::FMT_MARKUP:
$base = '[class=%1$d]';
$br = '[br]';
break;
case self::FMT_RAW:
default:
$base = '%2$s';
$br = '';
}
self::FMT_HTML => ['<a href="?class=%1$d" class="c%1$d">%2$s</a>', ''],
self::FMT_MARKUP => ['[class=%1$d]', '[br]'],
self::FMT_RAW => ['%2$s', ''],
default => ['%2$s', '']
};
$tmp = [];
foreach (ChrClass::fromMask($classMask) as $c)
$tmp[$c] = (!fMod(count($tmp) + 1, 3) ? $br : null).sprintf($base, $c, self::game('cl', $c));
@@ -462,38 +454,26 @@ class Lang
{
$raceMask &= ChrRace::MASK_ALL; // clamp to available races..
if ($raceMask == ChrRace::MASK_ALL) // available to all races (we don't display 'both factions')
if (!$raceMask || $raceMask == ChrRace::MASK_ALL) // available to all races (we don't display 'both factions')
return '';
if (!$raceMask)
return '';
$tmp = [];
switch ($fmt)
{
case self::FMT_HTML:
$base = '<a href="?race=%1$d" class="q1">%2$s</a>';
$br = '';
break;
case self::FMT_MARKUP:
$base = '[race=%1$d]';
$br = '[br]';
break;
case self::FMT_RAW:
default:
$base = '%2$s';
$br = '';
}
if ($raceMask == ChrRace::MASK_HORDE)
return self::game('ra', -2);
if ($raceMask == ChrRace::MASK_ALLIANCE)
return self::game('ra', -1);
[$base, $br] = match ($fmt)
{
self::FMT_HTML => ['<a href="?race=%1$d" class="q1">%2$s</a>', ''],
self::FMT_MARKUP => ['[race=%1$d]', '[br]'],
self::FMT_RAW => ['%2$s', ''],
default => ['%2$s', '']
};
$tmp = [];
foreach (ChrRace::fromMask($raceMask) as $r)
$tmp[$r] = (!fMod(count($tmp) + 1, 3) ? $br : null).sprintf($base, $r, self::game('ra', $r));
$tmp[$r] = (!fMod(count($tmp) + 1, 3) ? $br : '').sprintf($base, $r, self::game('ra', $r));
$ids = array_keys($tmp);

View File

@@ -99,17 +99,12 @@ class AchievementPage extends GenericPage
// todo (low)
// faction
switch ($this->subject->getField('faction'))
$infobox[] = Lang::main('side').Lang::main('colon') . match ($this->subject->getField('faction'))
{
case 1:
$infobox[] = Lang::main('side').Lang::main('colon').'[span class=icon-alliance]'.Lang::game('si', SIDE_ALLIANCE).'[/span]';
break;
case 2:
$infobox[] = Lang::main('side').Lang::main('colon').'[span class=icon-horde]'.Lang::game('si', SIDE_HORDE).'[/span]';
break;
default: // case 3
$infobox[] = Lang::main('side').Lang::main('colon').Lang::game('si', SIDE_BOTH);
}
SIDE_ALLIANCE => '[span class=icon-alliance]'.Lang::game('si', SIDE_ALLIANCE).'[/span]',
SIDE_HORDE => '[span class=icon-horde]'.Lang::game('si', SIDE_HORDE).'[/span]',
default => Lang::game('si', SIDE_BOTH) // 0, 3
};
// icon
if ($_ = $this->subject->getField('iconId'))

View File

@@ -1866,14 +1866,13 @@ class SpellPage extends GenericPage
}
break;
case SPELL_EFFECT_SKINNING:
$_ = '';
switch ($effMV)
$_ = match ($effMV)
{
case 0: $_ = Lang::game('ct', 1).', '.Lang::game('ct', 2); break; // Skinning > Beast, Dragonkin
case 1: // Herb gathering > Elemental
case 2: $_ = Lang::game('ct', 4); break; // Mining > Elemental
case 3: $_ = Lang::game('ct', 9); break; // Dismantling > Mechanic
}
0 => $_ = Lang::game('ct', 1).', '.Lang::game('ct', 2), // Skinning > Beast, Dragonkin
1, 2 => $_ = Lang::game('ct', 4), // Gathering, Mining > Elemental
3 => $_ = Lang::game('ct', 9), // Dismantling > Mechanic
default => ''
};
if ($_)
$_nameMV = $this->fmtStaffTip($_, 'MiscValue: '.$effMV);
break;
@@ -2181,30 +2180,18 @@ class SpellPage extends GenericPage
case SPELL_AURA_MOD_COMBAT_RESULT_CHANCE:
$valueFmt = '%s%%';
case SPELL_AURA_IGNORE_COMBAT_RESULT:
$what = '';
switch ($effMV)
$what = match ($effMV)
{
case 2: // Dodged
$what = Lang::spell('combatRating', 2);
break;
case 3: // Blocked
$what = Lang::spell('combatRating', 4);
break;
case 4: // Parried
$what = Lang::spell('combatRating', 3);
break;
case 0; // Evaded
case 1: // Missed
case 5: // Glanced
case 6: // Crited'ed..ed
case 7: // Crushed
case 8: // Regular
default:
trigger_error('unused case #'.$effMV.' found for aura #'.$effAura);
}
2 => Lang::spell('combatRating', 2), // Dodged
3 => Lang::spell('combatRating', 4), // Blocked
4 => Lang::spell('combatRating', 3), // Parried
default => '' // Evaded(0) Missed(1) Glanced(5) Crited'ed..ed(6) Crushed(7) Regular(8)
};
if ($what)
$_nameMV = $this->fmtStaffTip($what, 'MiscValue: '.$effMV);
else
trigger_error('unused case #'.$effMV.' found for aura #'.$effAura);
break;
case SPELL_AURA_SCREEN_EFFECT:
if ($ses = DB::Aowow()->selectRow('SELECT `name`, `ambienceDay` AS "0", IF(`ambienceNight` <> `ambienceDay`, `ambienceNight`, 0) AS "1", `musicDay` AS "2", IF(`musicNight` <> `musicDay`, `musicNight`, 0) AS "3" FROM ?_screeneffect_sounds WHERE `id` = ?d', $effMV))