Add WIP config parser arg plus config file

This commit is contained in:
2026-08-14 21:09:28 -05:00
parent ed6f243b93
commit 27411ea5fa
2 changed files with 55 additions and 0 deletions

View File

@@ -47,6 +47,8 @@ func _parse_args() -> void:
match arg:
"join_server":
join_server(arg)
"config":
config(arg)
"client":
client(arg)
"game":
@@ -111,6 +113,31 @@ func join_server(_arg: String) -> void:
game_client.start_client(server_address, int(server_port))
func config(_arg: String) -> void:
var config_entry = OS.get_cmdline_user_args()[-1]
var config_file = ConfigFile.new()
var err = config_file.load("res://configs/games.cfg")
if err != OK:
push_error("Config file not loaded...")
return
if not config_file.has_section(config_entry):
push_error("Config entry doesn't exist: ", config_entry)
return
var keys = config_file.get_section_keys(config_entry)
for key in keys:
match key:
"server":
var _server = config_file.get_value(config_entry, key)
"client1":
var _client1 = config_file.get_value(config_entry, key)
"client2":
var _client2 = config_file.get_value(config_entry, key)
_:
pass
func client(_arg: String) -> void:
Globals.game_state.set_game_scene(
"res://scenes/screens/lobby_screen/lobby.tscn"

28
configs/games.cfg Normal file
View File

@@ -0,0 +1,28 @@
[lobby_load]
; Defaults to joning a lobby server bound to 8080.
; Has clients go through lobby to load a mode.
client1="client host_freeball freeball88"
client2="client join freeball88"
[only_game_server]
server="server_5010 game freeball"
[8ball_game_server]
server="server_5001 game 8ball"
client1="join_server 127.0.0.1 5001"
client2="join_server 127.0.0.1 5001"
[9ball_game_server]
server="server_5002 game 9ball"
client1="join_server 127.0.0.1 5002"
client2="join_server 127.0.0.1 5002"
[snooker_game_server]
server="server_5003 game snooker"
client1="join_server 127.0.0.1 5003"
client2="join_server 127.0.0.1 5003"
[freeball_game_server]
server="server_5004 game freeball"
client1="join_server 127.0.0.1 5004"
client2="join_server 127.0.0.1 5004"