33#include " interface/c_controller.hpp"
44#include " interface/c_gui_widget.hpp"
55#include " interface/user_interface_session.hpp"
6+ #include " interface/user_interface_utilities.hpp"
67#include " memory/module.hpp"
78#include " tag_files/string_ids.hpp"
89
@@ -51,6 +52,12 @@ bool __thiscall c_gui_roster_data::_get_integer_value(long element_handle, long
5152 return true ;
5253 }
5354 break ;
55+ case STRING_ID (global , team):
56+ {
57+ *value = player_row->player_configuration .host .team_index ;
58+ return true ;
59+ }
60+ break ;
5461 // case STRING_ID(gui, matchmaking):
5562 // {
5663 // *value = player_row->in_matchmaking;
@@ -63,6 +70,12 @@ bool __thiscall c_gui_roster_data::_get_integer_value(long element_handle, long
6370 return true ;
6471 }
6572 break ;
73+ case STRING_ID (gui, party_bar_length):
74+ {
75+ *value = player_row->party_bar_length ;
76+ return true ;
77+ }
78+ break ;
6679 case STRING_ID (gui, special_status):
6780 {
6881 *value = player_row->special_status ;
@@ -109,85 +122,67 @@ bool __thiscall c_gui_roster_data::_get_integer_value(long element_handle, long
109122
110123bool __thiscall c_gui_roster_data::_get_text_value (long element_handle, long value_name, c_static_wchar_string<1024 >* value)
111124{
112- bool result = false ;
113- HOOK_INVOKE_CLASS_MEMBER (result =, c_gui_roster_data, _get_text_value, element_handle, value_name, value);
125+ // bool result = false;
126+ // HOOK_INVOKE_CLASS_MEMBER(result =, c_gui_roster_data, _get_text_value, element_handle, value_name, value);
127+
128+ if (!VALID_INDEX (element_handle, m_player_count))
129+ return false ;
130+
131+ c_gui_roster_data::s_player_row* player_row = &m_players[element_handle];
114132
115133 switch (value_name)
116134 {
117135 case STRING_ID (global, player_name):
118136 {
119- if (!result)
120- return true ;
121- }
122- break ;
123- case STRING_ID (gui, name_hilite):
124- {
125- if (!result)
137+ if (player_row->player_row_type == _player_row_type_player)
138+ {
139+ value->set (player_row->player_configuration .host .name .get_string ());
126140 return true ;
141+ }
127142 }
128143 break ;
129144 case STRING_ID (global, press_a_to_join):
130145 {
131- value->set (L" PRESS A TO JOIN" );
132- if (!result)
146+ if (player_row->player_row_type == _player_row_type_press_a_to_join)
147+ {
148+ user_interface_global_string_get (STRING_ID (global, press_a_to_join), value);
133149 return true ;
150+ }
134151 }
135152 break ;
136153 case STRING_ID (gui, looking_for_player):
137154 {
138- value->set (L" LOOKING FOR PLAYER" );
139- if (!result)
155+ if (player_row->player_row_type == _player_row_type_searching)
156+ {
157+ user_interface_global_string_get (STRING_ID (gui, looking_for_player), value);
140158 return true ;
159+ }
141160 }
142161 break ;
143162 case STRING_ID (gui, player_found):
144163 {
145- value->set (L" PLAYER FOUND" );
146- if (!result)
164+ if (player_row->player_row_type == _player_row_type_found)
165+ {
166+ user_interface_global_string_get (STRING_ID (gui, player_found), value);
147167 return true ;
168+ }
148169 }
149170 break ;
150171 case STRING_ID (gui, service_tag):
151172 {
152- if (!m_players[element_handle].player_configuration .host .appearance .service_tag .length ())
173+ bool is_elite = player_row->player_configuration .host .appearance .player_model_choice == _player_model_choice_elite;
174+ c_static_wchar_string<1024 > player_model_text;
175+ if (user_interface_global_string_get (is_elite ? STRING_ID (global, dervish) : STRING_ID (global, masterchief), &player_model_text))
153176 {
154- long player_index = m_players[element_handle].session_player_index ;
155- if (user_interface_session_is_local_player (player_index))
156- {
157- c_controller_interface* controller = controller_get (m_players[element_handle].local_controller_index );
158-
159- if (!value->length ())
160- {
161- value->print (L" %s - %s" , L" SPARTAN" , controller->m_player_profile .m_appearance .desired_service_tag );
162- }
163- else
164- {
165- value->append (controller->m_player_profile .m_appearance .desired_service_tag );
166- }
167- }
168- else
169- {
170- s_player_configuration* player_data = user_interface_session_get_player_data (player_index);
171- if (player_data)
172- {
173- if (!value->length ())
174- {
175- value->print (L" %s - %s" , L" SPARTAN" , player_data->host .appearance .service_tag .get_string ());
176- }
177- else
178- {
179- value->append (player_data->host .appearance .service_tag .get_string ());
180- }
181- }
182- }
183- }
184-
185- if (!result)
177+ c_static_wchar_string<256 > service_tag_text;
178+ service_tag_text.set (player_row->player_configuration .host .appearance .service_tag .get_string ());
179+ value->print (L" %s - %s" , player_model_text.get_string (), service_tag_text.get_string ());
186180 return true ;
181+ }
187182 }
188183 break ;
189184 }
190185
191- return result ;
186+ return false ;
192187}
193188
0 commit comments