@@ -3,8 +3,10 @@ const Stream = std.net.Stream;
33const Allocator = std .mem .Allocator ;
44const print = std .debug .print ;
55const Message = @import ("message.zig" );
6- const Game = @import ("game.zig" ).Game ;
7- const Unit = @import ("game.zig" ).Unit ;
6+ const game = @import ("game.zig" );
7+ const Game = game .Game ;
8+ const Unit = game .Unit ;
9+ const Config = game .Config ;
810const coordOps = @import ("coordinateOps.zig" );
911
1012const singleReadSize = 50 ;
@@ -61,12 +63,22 @@ pub const Client = struct {
6163 switch (t ) {
6264 @intFromEnum (Message .Type .config ) = > {
6365 if (self .state == State .Connected ) {
64- var it = std .mem .tokenizeAny (u8 , buff [1.. ], " " );
65- _ = it .next (); // skip millis
66- _ = it .next (); // skip max players
67- const x = try std .fmt .parseUnsigned (u32 , it .next ().? , 10 );
68- const y = try std .fmt .parseUnsigned (u32 , it .next ().? , 10 );
69- self .game = try Game .init (x , y , allocator );
66+ var it = std .mem .tokenizeAny (u8 , buff [1.. ], " \n " );
67+
68+ const c = Config {
69+ .millis = try std .fmt .parseUnsigned (u32 , it .next ().? , 10 ),
70+ .maxPlayers = try std .fmt .parseUnsigned (u32 , it .next ().? , 10 ),
71+ .boardX = try std .fmt .parseUnsigned (u32 , it .next ().? , 10 ),
72+ .boardY = try std .fmt .parseUnsigned (u32 , it .next ().? , 10 ),
73+ .unitsToWin = try std .fmt .parseUnsigned (u32 , it .next ().? , 10 ),
74+ .startResources = try std .fmt .parseUnsigned (u32 , it .next ().? , 10 ),
75+ .resourceHp = try std .fmt .parseUnsigned (u32 , it .next ().? , 10 ),
76+ .unitHp = try std .fmt .parseUnsigned (u32 , it .next ().? , 10 ),
77+ .unitDamage = try std .fmt .parseUnsigned (u32 , it .next ().? , 10 ),
78+ .allowedNameCharacters = it .next ().? ,
79+ };
80+
81+ self .game = try Game .init (c , allocator );
7082 try self .send ("n" );
7183 try self .send (&(self .name ));
7284 try self .send ("\n " );
0 commit comments