@@ -28,9 +28,9 @@ pub enum ScriptsReloadResponseType {
2828pub fn scripts_reload_response_type ( response : & WitcherPacket ) -> Result < ScriptsReloadResponseType , String > {
2929
3030 fn file_line_msg ( response : & WitcherPacket ) -> ( String , String , String ) {
31- let file = format ! ( "{}" , response. payload[ 3 ] ) ;
32- let line = format ! ( "{}" , response. payload[ 2 ] ) ;
33- let msg = format ! ( "{}" , response. payload[ 4 ] ) ;
31+ let file = response. payload [ 3 ] . to_string ( ) ;
32+ let line = response. payload [ 2 ] . to_string ( ) ;
33+ let msg = response. payload [ 4 ] . to_string ( ) ;
3434
3535 ( file, line, msg)
3636 }
@@ -40,7 +40,7 @@ pub fn scripts_reload_response_type(response: &WitcherPacket) -> Result<ScriptsR
4040 return Ok ( ScriptsReloadResponseType :: Started ) ;
4141 }
4242 else if response. payload [ 1 ] == WitcherPacketData :: StringUTF8 ( "log" . to_string ( ) ) {
43- return Ok ( ScriptsReloadResponseType :: Log ( format ! ( "{}" , response. payload[ 2 ] ) ) ) ;
43+ return Ok ( ScriptsReloadResponseType :: Log ( response. payload [ 2 ] . to_string ( ) ) ) ;
4444 }
4545 else if response. payload [ 1 ] == WitcherPacketData :: StringUTF8 ( "warn" . to_string ( ) ) {
4646 let ( file, line, msg) = file_line_msg ( response) ;
@@ -93,7 +93,7 @@ pub fn scripts_root_path_formatter(response: &WitcherPacket) -> String {
9393 if response. payload . len ( ) > 2
9494 && response. payload [ 0 ] == WitcherPacketData :: StringUTF8 ( "ScriptCompiler" . to_string ( ) )
9595 && response. payload [ 1 ] == WitcherPacketData :: StringUTF8 ( "RootPathConfirm" . to_string ( ) ) {
96- return format ! ( "{}" , response. payload[ 2 ] ) ;
96+ return response. payload [ 2 ] . to_string ( ) ;
9797 }
9898
9999 default_formatter ( response)
@@ -102,7 +102,7 @@ pub fn scripts_root_path_formatter(response: &WitcherPacket) -> String {
102102
103103pub fn scripts_execute_formatter ( response : & WitcherPacket ) -> String {
104104 if response. payload . len ( ) > 2 {
105- return format ! ( "{}" , response. payload[ 2 ] ) ;
105+ return response. payload [ 2 ] . to_string ( ) ;
106106 }
107107
108108 default_formatter ( response)
@@ -119,12 +119,17 @@ pub fn mod_list_formatter(response: &WitcherPacket) -> String {
119119 result += & format ! ( "Mods installed: {}\n " , installed) ;
120120 }
121121
122+ let mut mods = Vec :: new ( ) ;
122123 if response. payload . len ( ) > 3 {
123124 for i in ( 3 .. response. payload . len ( ) ) . step_by ( 2 ) {
124- result += & format ! ( "{}\n " , response. payload[ i] ) ;
125+ let mod_name = response. payload [ i] . to_string ( ) ;
126+ mods. push ( mod_name) ;
125127 }
126128 }
127129
130+ mods. sort ( ) ;
131+ mods. iter ( ) . for_each ( |m| result += & format ! ( "{}\n " , m) ) ;
132+
128133 return result;
129134 }
130135
@@ -145,6 +150,12 @@ pub fn opcode_formatter(response: &WitcherPacket) -> String {
145150}
146151
147152
153+ struct VarlistEntry {
154+ pub section : String ,
155+ pub variable : String ,
156+ pub value : String
157+ }
158+
148159pub fn var_list_formatter ( response : & WitcherPacket ) -> String {
149160 if response. payload . len ( ) > 4
150161 && response. payload [ 1 ] == WitcherPacketData :: StringUTF8 ( "vars" . to_string ( ) ) {
@@ -155,10 +166,24 @@ pub fn var_list_formatter(response: &WitcherPacket) -> String {
155166 result += & format ! ( "{:40}| {:45}| {}\n " , "Section" , "Variable" , "Value" ) ;
156167 result += & tab_line;
157168
169+ let mut entries = Vec :: new ( ) ;
158170 for i in ( 4 .. response. payload . len ( ) ) . step_by ( 5 ) {
159- result += & format ! ( "{:40}| {:45}| {}\n " , response. payload[ i+1 ] , response. payload[ i] , response. payload[ i+2 ] ) ;
171+ entries. push ( VarlistEntry {
172+ section : response. payload [ i+1 ] . to_string ( ) ,
173+ variable : response. payload [ i] . to_string ( ) ,
174+ value : response. payload [ i+2 ] . to_string ( )
175+ } ) ;
160176 }
161177
178+ entries. sort_by ( |e1, e2| {
179+ match e1. section . cmp ( & e2. section ) {
180+ std:: cmp:: Ordering :: Equal => e1. variable . cmp ( & e2. variable ) ,
181+ other => other
182+ }
183+ } ) ;
184+
185+ entries. iter ( ) . for_each ( |e| result += & format ! ( "{:40}| {:45}| {}\n " , e. section, e. variable, e. value) ) ;
186+
162187 return result;
163188 }
164189
0 commit comments