diff options
| author | Dark1-dev <shansarkar272@gmail.com> | 2023-03-01 21:30:57 +0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-03-01 21:30:57 +0600 |
| commit | 60a301a93b6057bb2c54ac04a7c38c38389037b3 (patch) | |
| tree | b09c5f8bc0045828c660654d8ed6744663856202 /src/Protocols/overrides.cpp | |
| parent | c784240d1af68dbd8d0466822b34fd05d6ccdda1 (diff) | |
| download | Masterserver-Qt5-60a301a93b6057bb2c54ac04a7c38c38389037b3.tar.gz Masterserver-Qt5-60a301a93b6057bb2c54ac04a7c38c38389037b3.zip | |
Add files via upload
Diffstat (limited to 'src/Protocols/overrides.cpp')
| -rw-r--r-- | src/Protocols/overrides.cpp | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/Protocols/overrides.cpp b/src/Protocols/overrides.cpp new file mode 100644 index 0000000..957c489 --- /dev/null +++ b/src/Protocols/overrides.cpp @@ -0,0 +1,44 @@ +#include "overrides.h" + +// some games use different key/value pairs. override with known key. +QString overrideKey(const QString &rawKey) +{ + // convert to lowercase + QString key = rawKey.toLower(); + + // some keys are indexed, like "player_0". + if ( _index_match.indexIn(key) >= 0 ) + { + // find keyword without index and match key + if ( _validKeys.contains( _index_match.cap(1) ) ) // group starts at 1, not 0 + { + // concat the index back and return found override + return _validKeys.value( _index_match.cap(1), key ) + _index_match.cap(2); + } + } + else + { + // non-indexed key + if ( _validKeys.contains( key ) ) + { + // return found override + return _validKeys.value(key, key); + } + } + + // no override found. return original. + return key; +} + +// some games deviate from the gamename protocol. override with correct gamename +QString overrideGamename(const QString &gamenameIn) +{ + // convert to lowercase + QString gamename = gamenameIn.toLower(); + + if ( _validGamenames.contains(gamename ) ) + { + return _validGamenames.value(gamename, gamename); + } + return gamename; +} |
