Skip to content

Commit

Permalink
fix: formation lap type options on settings page were not generating …
Browse files Browse the repository at this point in the history
…correctly
  • Loading branch information
Stoolbend committed May 28, 2024
1 parent bde8925 commit 9f2361c
Show file tree
Hide file tree
Showing 3 changed files with 68 additions and 130 deletions.
46 changes: 23 additions & 23 deletions src/lib/gameData.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,12 @@ export type CupCategoryOption = {
border: string
}
} & BasicType<number>
export enum CupCategory {
Overall = 0,
ProAm = 1,
Am = 2,
Silver = 3,
National = 4,
export const CupCategory = {
Overall: 0,
ProAm: 1,
Am: 2,
Silver: 3,
National: 4,
}
export const CupCategories = [
{
Expand Down Expand Up @@ -107,15 +107,15 @@ export const CupCategories = [
//#endregion Cup categories

//#region Driver categories
export enum DriverCategory {
Bronze = 0,
Silver = 1,
Gold = 2,
Platinum = 3,
export const DriverCategory = {
Bronze: 0,
Silver: 1,
Gold: 2,
Platinum: 3,
}
export type DriverCategoryOption = {
short: string
} & BasicType<DriverCategory>
} & BasicType<number>
export const DriverCategories = [
{
name: 'Bronze',
Expand Down Expand Up @@ -626,17 +626,17 @@ export const Tracks = [
//#endregion Tracks

//#region Settings
export enum SettingsCarGroup {
FreeForAll = 'FreeForAll',
GT3 = 'GT3',
GT4 = 'GT4',
GTC = 'GTC',
export const SettingsCarGroup = {
FreeForAll: 'FreeForAll',
GT3: 'GT3',
GT4: 'GT4',
GTC: 'GTC',
}
export enum SettingsFormationLapType {
Free = 0,
OldLimiterLap = 1,
Default = 3,
OneLap = 4,
Short = 5,
export const SettingsFormationLapType = {
Free: 0,
OldLimiterLap: 1,
Default: 3,
OneLap: 4,
Short: 5,
}
//#endregion
6 changes: 3 additions & 3 deletions src/lib/gameFiles.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,15 +40,15 @@ export class Settings {
adminPassword: string = 'letmeadmin'
password: string = ''
spectatorPassword: string = ''
carGroup: SettingsCarGroup = SettingsCarGroup.FreeForAll
carGroup: string = SettingsCarGroup.FreeForAll
trackMedalsRequirement: number = 3
safetyRatingRequirement: number = 49
racecraftRatingRequirement: number = -1
maxCarSlots: number = 30
allowAutoDQ: 0 | 1 = 1
isRaceLocked: 0 | 1 = 0
shortFormationLap: 0 | 1 = 0
formationLapType: SettingsFormationLapType = SettingsFormationLapType.Default
formationLapType: number = SettingsFormationLapType.Default
randomizeTrackWhenEmpty: 0 | 1 = 0
centralEntryListPath: string = ''
ignorePrematureDisconnects: 0 | 1 = 1
Expand Down Expand Up @@ -79,6 +79,6 @@ export class EntryListDriver {
firstName?: string
lastName?: string
shortName?: string
driverCategory?: DriverCategory
driverCategory?: number
}
//#endregion
146 changes: 42 additions & 104 deletions src/views/SettingsView.vue
Original file line number Diff line number Diff line change
Expand Up @@ -16,41 +16,41 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
import FilePicker from '@/components/FilePicker.vue';
import { SettingsCarGroup, SettingsFormationLapType } from '@/lib/gameData';
import { Settings } from '@/lib/gameFiles';
import { randomString } from '@/lib/utils';
import { computed } from 'vue';
import { ref } from 'vue';
import FilePicker from '@/components/FilePicker.vue'
import { SettingsCarGroup, SettingsFormationLapType } from '@/lib/gameData'
import { Settings } from '@/lib/gameFiles'
import { randomString } from '@/lib/utils'
import { computed } from 'vue'
import { ref } from 'vue'
const data = ref<Settings>();
const data = ref<Settings>()
const carGroupOptions = computed(() => {
const results = [];
const results = []
for (const [key, value] of Object.entries(SettingsCarGroup)) {
results.push({ value: value, text: key });
results.push({ value: value, text: key })
}
return results;
return results
})
const formationLapOptions = computed(() => {
const results = [];
const results = []
for (const [key, value] of Object.entries(SettingsFormationLapType)) {
results.push({ value: value, text: key });
results.push({ value: value, text: key })
}
return results;
return results
})
function generateAdminPassword() {
if (!data.value) return;
data.value.adminPassword = randomString();
if (!data.value) return
data.value.adminPassword = randomString()
}
function generateDriverPassword() {
if (!data.value) return;
data.value.password = randomString();
if (!data.value) return
data.value.password = randomString()
}
function generateSpectatorPassword() {
if (!data.value) return;
data.value.spectatorPassword = randomString();
if (!data.value) return
data.value.spectatorPassword = randomString()
}
</script>

Expand All @@ -63,99 +63,66 @@ function generateSpectatorPassword() {
</div>
<b-form v-if="data" class="row">
<div class="col-12 col-lg-6">
<b-form-group
class="mb-3"
label="Server name"
label-cols-md="3">
<b-form-group class="mb-3" label="Server name" label-cols-md="3">
<b-input-group>
<b-form-input v-model="data.serverName" type="text" />
</b-input-group>
</b-form-group>
<b-form-group
class="mb-3"
label="Admin password"
label-cols-md="3">
<b-form-group class="mb-3" label="Admin password" label-cols-md="3">
<b-input-group>
<b-form-input v-model="data.adminPassword" type="text" class="font-mono" />
<template #append>
<b-button variant="secondary" @click="generateAdminPassword">Generate</b-button>
</template>
</b-input-group>
</b-form-group>
<b-form-group
class="mb-3"
label="Driver password"
label-cols-md="3">
<b-form-group class="mb-3" label="Driver password" label-cols-md="3">
<b-input-group>
<b-form-input v-model="data.password" type="text" class="font-mono" />
<template #append>
<b-button variant="secondary" @click="generateDriverPassword">Generate</b-button>
</template>
</b-input-group>
</b-form-group>
<b-form-group
class="mb-3"
label="Spectator password"
label-cols-md="3">
<b-form-group class="mb-3" label="Spectator password" label-cols-md="3">
<b-input-group>
<b-form-input v-model="data.spectatorPassword" type="text" class="font-mono" />
<template #append>
<b-button variant="secondary" @click="generateSpectatorPassword">Generate</b-button>
</template>
</b-input-group>
</b-form-group>
<b-form-group
class="mb-3"
label="Car group"
label-cols-md="3">
<b-form-group class="mb-3" label="Car group" label-cols-md="3">
<b-form-select v-model="data.carGroup" :options="carGroupOptions" />
</b-form-group>
<b-form-group
class="mb-3"
label="Track medals required"
label-cols-md="3">
<b-form-group class="mb-3" label="Track medals required" label-cols-md="3">
<b-input-group>
<b-form-input v-model="data.trackMedalsRequirement" type="number" min="0" max="3" step="1" />
<template #append>
<b-input-group-text>medals</b-input-group-text>
</template>
</b-input-group>
<FormItemInfo>
Amount of track medals required to be able to join the server.
</FormItemInfo>
<FormItemInfo> Amount of track medals required to be able to join the server. </FormItemInfo>
</b-form-group>
<b-form-group
class="mb-3"
label="Safety rating required"
label-cols-md="3">
<b-form-group class="mb-3" label="Safety rating required" label-cols-md="3">
<b-input-group>
<b-form-input v-model="data.safetyRatingRequirement" type="number" min="-1" max="99" step="1" />
<template #append>
<b-input-group-text>SA</b-input-group-text>
</template>
</b-input-group>
<FormItemInfo>
Set to -1 to disable.
</FormItemInfo>
<FormItemInfo> Set to -1 to disable. </FormItemInfo>
</b-form-group>
<b-form-group
class="mb-3"
label="Racecraft rating required"
label-cols-md="3">
<b-form-group class="mb-3" label="Racecraft rating required" label-cols-md="3">
<b-input-group>
<b-form-input v-model="data.racecraftRatingRequirement" type="number" min="-1" max="99" step="1" />
<template #append>
<b-input-group-text>RC</b-input-group-text>
</template>
</b-input-group>
<FormItemInfo>
Set to -1 to disable.
</FormItemInfo>
<FormItemInfo> Set to -1 to disable. </FormItemInfo>
</b-form-group>
<b-form-group
class="mb-3"
label="Max car slots"
label-cols-md="3">
<b-form-group class="mb-3" label="Max car slots" label-cols-md="3">
<b-input-group>
<b-form-input v-model="data.maxCarSlots" type="number" min="1" step="1" />
<template #append>
Expand All @@ -165,43 +132,23 @@ function generateSpectatorPassword() {
</b-form-group>
</div>
<div class="col-12 col-lg-6">
<b-form-group
class="mb-3"
label="Auto DQ"
label-cols-md="3">
<b-form-group class="mb-3" label="Auto DQ" label-cols-md="3">
<b-form-checkbox v-model="data.allowAutoDQ" :value="1" :unchecked-value="0" />
<FormItemInfo>
If disabled, the game will instead issue SG30 penalties and it will be up to admins to DQ drivers.
</FormItemInfo>
<FormItemInfo> If disabled, the game will instead issue SG30 penalties and it will be up to admins to DQ drivers. </FormItemInfo>
</b-form-group>
<b-form-group
class="mb-3"
label="Allow joining during race sessions"
label-cols-md="3">
<b-form-group class="mb-3" label="Allow joining during race sessions" label-cols-md="3">
<b-form-checkbox v-model="data.isRaceLocked" :value="1" :unchecked-value="0" />
</b-form-group>
<b-form-group
class="mb-3"
label="Short formation lap"
label-cols-md="3">
<b-form-group class="mb-3" label="Short formation lap" label-cols-md="3">
<b-form-checkbox v-model="data.shortFormationLap" :value="1" :unchecked-value="0" />
</b-form-group>
<b-form-group
class="mb-3"
label="Formation lap type"
label-cols-md="3">
<b-form-group class="mb-3" label="Formation lap type" label-cols-md="3">
<b-form-select v-model="data.formationLapType" :options="formationLapOptions" />
</b-form-group>
<b-form-group
class="mb-3"
label="Randomize track when empty"
label-cols-md="3">
<b-form-group class="mb-3" label="Randomize track when empty" label-cols-md="3">
<b-form-checkbox v-model="data.randomizeTrackWhenEmpty" :value="1" :unchecked-value="0" />
</b-form-group>
<b-form-group
class="mb-3"
label="Entry list path override"
label-cols-md="3">
<b-form-group class="mb-3" label="Entry list path override" label-cols-md="3">
<b-input-group>
<b-form-input v-model="data.centralEntryListPath" type="text" />
</b-input-group>
Expand All @@ -210,22 +157,13 @@ function generateSpectatorPassword() {
<div class="text-danger">The path seperators have to be slashes ( / ), backslashes ( \ ) will not work.</div>
</FormItemInfo>
</b-form-group>
<b-form-group
class="mb-3"
label="Ignore premature disconnects"
label-cols-md="3">
<b-form-group class="mb-3" label="Ignore premature disconnects" label-cols-md="3">
<b-form-checkbox v-model="data.ignorePrematureDisconnects" :value="1" :unchecked-value="0" />
</b-form-group>
<b-form-group
class="mb-3"
label="Dump entry list"
label-cols-md="3">
<b-form-group class="mb-3" label="Dump entry list" label-cols-md="3">
<b-form-checkbox v-model="data.dumpEntryList" :value="1" :unchecked-value="0" />
</b-form-group>
<b-form-group
class="mb-3"
label="Dump leaderboards"
label-cols-md="3">
<b-form-group class="mb-3" label="Dump leaderboards" label-cols-md="3">
<b-form-checkbox v-model="data.dumpLeaderboards" :value="1" :unchecked-value="0" />
</b-form-group>
</div>
Expand All @@ -236,4 +174,4 @@ function generateSpectatorPassword() {
</main>
</template>

<style scoped></style>
<style scoped></style>

0 comments on commit 9f2361c

Please sign in to comment.