perf: remove some if statements in gamespy 2
This commit is contained in:
parent
96289b2b00
commit
fb6a5a1c7a
|
@ -10,6 +10,7 @@
|
|||
* TeamSpeak 2 - Fixed how `state.name` is set (By @podrivo #544)
|
||||
* Grand Theft Auto: San Andreas OpenMP - Fixed `state.players` returning an empty array (By @Focus04 #547)
|
||||
* Perf: Re-write of the `core` class.
|
||||
* Perf: Remove many if statements from `GameSpy2`.
|
||||
|
||||
## 5.0.0-beta.2
|
||||
* Fixed support for projects using `require`.
|
||||
|
|
|
@ -110,26 +110,23 @@ export default class gamespy2 extends Core {
|
|||
const units = []
|
||||
while (!reader.done()) {
|
||||
const unit = {}
|
||||
for (let iField = 0; iField < fields.length; iField++) {
|
||||
let key = fields[iField]
|
||||
for (let index = 0; index < fields.length; index++) {
|
||||
let key = fields[index]
|
||||
let value = reader.string()
|
||||
if (!value && iField === 0) return units
|
||||
if (!value && index === 0) return units
|
||||
|
||||
this.logger.debug('value:' + value)
|
||||
if (key === 'player_') key = 'name'
|
||||
else if (key === 'score_') key = 'score'
|
||||
else if (key === 'deaths_') key = 'deaths'
|
||||
else if (key === 'ping_') key = 'ping'
|
||||
else if (key === 'team_') key = 'team'
|
||||
else if (key === 'kills_') key = 'kills'
|
||||
|
||||
// many fields end with "_"
|
||||
if (key.endsWith('_')) {
|
||||
key = key.slice(0, -1)
|
||||
}
|
||||
|
||||
if (key === 'player') key = 'name'
|
||||
else if (key === 'team_t') key = 'name'
|
||||
else if (key === 'tickets_t') key = 'tickets'
|
||||
|
||||
if (
|
||||
key === 'score' || key === 'deaths' ||
|
||||
key === 'ping' || key === 'team' ||
|
||||
key === 'kills' || key === 'tickets'
|
||||
) {
|
||||
if (['score', 'deaths', 'ping', 'team', 'kills', 'tickets'].includes(key)) {
|
||||
if (value === '') continue
|
||||
value = parseInt(value)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue