Skip to content

Commit e9d57b9

Browse files
committed
lobby initial game settings sync fix
1 parent a4a264a commit e9d57b9

File tree

8 files changed

+34
-34
lines changed

8 files changed

+34
-34
lines changed

GLSMAC_data/default/ui/parts/mainmenu/steps/multiplayer_lobby/game_settings.gls.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ return (i) => {
22

33
const glsmac = i.glsmac;
44
const game = glsmac.game;
5-
const settings = game.get_settings();
5+
const settings = game.get_settings().global;
66

77
const readonly = game.is_slave();
88

9-
return i.make_section(settings.global.game_name, {
9+
return i.make_section(settings.game_name, {
1010
width: 296,
1111
height: 358,
1212
}, (body) => {
@@ -63,39 +63,39 @@ return (i) => {
6363
['112x56', 'Standard planet'],
6464
['140x70', 'Large planet'],
6565
['180x90', 'Huge planet'],
66-
], '112x56', (v) => {
66+
], #to_string(settings.map.size_x) + 'x' + #to_string(settings.map.size_y), (v) => {
6767
return v; // TODO
6868
});
6969

7070
make_line('ocean_coverage', 'Ocean Coverage', [
7171
['0.4', '30-50% of surface'],
7272
['0.6', '50-70% of surface'],
7373
['0.8', '70-90% of surface'],
74-
], '0.6', (v) => {
74+
], #to_string(settings.map.ocean_coverage), (v) => {
7575
return #to_float(v);
7676
});
7777

7878
make_line('erosive_forces', 'Erosive Forces', [
7979
['0.5', 'Strong'],
8080
['0.75', 'Average'],
8181
['1.0', 'Weak'],
82-
], '0.75', (v) => {
82+
], #to_string(settings.map.erosive_forces), (v) => {
8383
return #to_float(v);
8484
});
8585

8686
make_line('native_lifeforms', 'Native Lifeforms', [
8787
['0.25', 'Rare'],
8888
['0.5', 'Average'],
8989
['0.75', 'Abundant'],
90-
], '0.5', (v) => {
90+
], #to_string(settings.map.native_lifeforms), (v) => {
9191
return #to_float(v);
9292
});
9393

9494
make_line('cloud_cover', 'Cloud Cover', [
9595
['0.25', 'Sparse'],
9696
['0.5', 'Average'],
9797
['0.75', 'Dense'],
98-
], '0.5', (v) => {
98+
], #to_string(settings.map.cloud_cover), (v) => {
9999
return #to_float(v);
100100
});
101101

GLSMAC_data/default/ui/parts/mainmenu/steps/multiplayer_lobby/players.gls.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,11 @@ return (i) => {
5252
}
5353
};
5454

55+
const players = i.glsmac.game.get_players();
56+
for (player of players) {
57+
add_row(player);
58+
}
59+
5560
i.connection.on('player_join', (e) => {
5661
add_row(e.player);
5762
});

src/game/backend/Game.cpp

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -790,25 +790,6 @@ WRAPIMPL_BEGIN( Game )
790790
return m_state->m_settings.Wrap( GSE_CALL, true );
791791
} )
792792
},
793-
{
794-
"get_setting",
795-
NATIVE_CALL( this ) {
796-
N_EXPECT_ARGS( 1 );
797-
N_GETVALUE( key, 0, String );
798-
799-
return VALUE( gse::value::Undefined );
800-
} )
801-
},
802-
{
803-
"set_setting",
804-
NATIVE_CALL( this ) {
805-
N_EXPECT_ARGS( 2 );
806-
N_GETVALUE( key, 0, String );
807-
N_GETVALUE( value, 1, String );
808-
809-
return VALUE( gse::value::Undefined );
810-
} )
811-
},
812793
{
813794
"register_event",
814795
NATIVE_CALL( this ) {

src/game/backend/connection/Client.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@ void Client::ProcessEvent( const network::LegacyEvent& event ) {
117117
m_on_global_settings_update();
118118
}
119119
m_are_global_settings_received = true;
120+
OnOpen();
120121
break;
121122
}
122123
case types::Packet::PT_SLOT_UPDATE:

src/game/backend/connection/Connection.cpp

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@ void Connection::SetState( State* state ) {
1818
}
1919

2020
void Connection::ResetHandlers() {
21+
if ( m_f_on_open ) {
22+
Unpersist( m_f_on_open );
23+
m_f_on_open = nullptr;
24+
}
2125
m_on_connect = nullptr;
2226
m_on_cancel = nullptr;
2327
m_on_disconnect = nullptr;
@@ -169,13 +173,6 @@ const bool Connection::IterateAndMaybeDelete() {
169173
WTrigger(
170174
"connect", ARGS_F() {}; }
171175
);
172-
if ( m_f_on_open ) {
173-
m_state->WithGSE( this, [ this ]( GSE_CALLABLE ) {
174-
m_f_on_open->Run( GSE_CALL, {} );
175-
Unpersist( m_f_on_open );
176-
m_f_on_open = nullptr;
177-
});
178-
}
179176
break;
180177
}
181178
case network::R_CANCELED: {
@@ -349,6 +346,16 @@ void Connection::WTrigger( const std::string& event, const f_args_t& fargs, cons
349346
}, f_after );
350347
}
351348

349+
void Connection::OnOpen() {
350+
if ( m_f_on_open ) {
351+
m_state->WithGSE( this, [ this ]( GSE_CALLABLE ) {
352+
m_f_on_open->Run( GSE_CALL, {} );
353+
Unpersist( m_f_on_open );
354+
m_f_on_open = nullptr;
355+
});
356+
}
357+
}
358+
352359
void Connection::Disconnect( const std::string& reason ) {
353360
if ( !reason.empty() ) {
354361
m_disconnect_reason = reason;

src/game/backend/connection/Connection.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,8 @@ class Connection : public gse::GCWrappable {
121121

122122
void WTrigger( const std::string& event, const f_args_t& fargs, const std::function< void() >& f_after = nullptr );
123123

124+
void OnOpen();
125+
124126
virtual void SendGameEvents( const game_events_t& game_events ) = 0;
125127

126128
private:

src/game/backend/connection/Server.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@ void Server::ProcessEvent( const network::LegacyEvent& event ) {
6262
}
6363
);
6464

65+
OnOpen();
66+
6567
break;
6668
}
6769
case network::LegacyEvent::ET_CLIENT_CONNECT: {

src/game/backend/slot/Slot.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,9 @@ WRAPIMPL_BEGIN( Slot )
180180
},
181181
{
182182
"faction",
183-
player->GetFaction()->Wrap( GSE_CALL, gc_space )
183+
player->GetFaction()
184+
? player->GetFaction()->Wrap( GSE_CALL, gc_space )
185+
: VALUE( gse::value::Undefined )
184186
},
185187
};
186188
WRAPIMPL_END_PTR()

0 commit comments

Comments
 (0)