diff options
-rw-r--r-- | Agent_Manager.cs | 2 | ||||
-rw-r--r-- | Asset_manager.cs | 2 | ||||
-rw-r--r-- | Class1.cs | 23 | ||||
-rw-r--r-- | Controller.cs | 229 | ||||
-rw-r--r-- | Main-sever.Designer.cs | 80 | ||||
-rw-r--r-- | Main-sever.cs | 270 | ||||
-rw-r--r-- | Main-sever.resx | 123 | ||||
-rw-r--r-- | Prim_manager.cs | 2 | ||||
-rw-r--r-- | Second-server.csproj | 34 | ||||
-rw-r--r-- | Second-server.sln | 23 | ||||
-rw-r--r-- | Server.cs | 2 | ||||
-rw-r--r-- | Texture_manager.cs | 2 | ||||
-rw-r--r-- | lib/Axiom.MathLib.dll | bin | 0 -> 69632 bytes | |||
-rw-r--r-- | lib/log4net.dll | bin | 0 -> 270336 bytes |
14 files changed, 269 insertions, 523 deletions
diff --git a/Agent_Manager.cs b/Agent_Manager.cs index 934fb57..3b05480 100644 --- a/Agent_Manager.cs +++ b/Agent_Manager.cs | |||
@@ -192,7 +192,7 @@ namespace Second_server | |||
192 | { | 192 | { |
193 | 193 | ||
194 | //shouldn't really have to read all this in from disk for every new client? | 194 | //shouldn't really have to read all this in from disk for every new client? |
195 | string data_path=System.Windows.Forms.Application.StartupPath + @"\layer_data\"; | 195 | string data_path=System.AppDomain.CurrentDomain.BaseDirectory + @"\layer_data\"; |
196 | 196 | ||
197 | //send layerdata | 197 | //send layerdata |
198 | LayerDataPacket layerpack=new LayerDataPacket(); | 198 | LayerDataPacket layerpack=new LayerDataPacket(); |
diff --git a/Asset_manager.cs b/Asset_manager.cs index 194d28f..3723e1d 100644 --- a/Asset_manager.cs +++ b/Asset_manager.cs | |||
@@ -118,7 +118,7 @@ namespace Second_server | |||
118 | } | 118 | } |
119 | private void load_asset(Asset_info info) | 119 | private void load_asset(Asset_info info) |
120 | { | 120 | { |
121 | string data_path=System.Windows.Forms.Application.StartupPath + @"\assets\"; | 121 | string data_path = System.AppDomain.CurrentDomain.BaseDirectory + @"\assets\"; |
122 | string filename=data_path+@info.filename; | 122 | string filename=data_path+@info.filename; |
123 | FileInfo fInfo = new FileInfo(filename); | 123 | FileInfo fInfo = new FileInfo(filename); |
124 | 124 | ||
diff --git a/Class1.cs b/Class1.cs deleted file mode 100644 index 761a7eb..0000000 --- a/Class1.cs +++ /dev/null | |||
@@ -1,23 +0,0 @@ | |||
1 | /* | ||
2 | * Created by SharpDevelop. | ||
3 | * User: Ma | ||
4 | * Date: 29/01/2007 | ||
5 | * Time: 18:02 | ||
6 | * | ||
7 | * To change this template use Tools | Options | Coding | Edit Standard Headers. | ||
8 | */ | ||
9 | |||
10 | using System; | ||
11 | |||
12 | namespace Second_server | ||
13 | { | ||
14 | /// <summary> | ||
15 | /// Description of Class1. | ||
16 | /// </summary> | ||
17 | public class Class1 | ||
18 | { | ||
19 | public Class1() | ||
20 | { | ||
21 | } | ||
22 | } | ||
23 | } | ||
diff --git a/Controller.cs b/Controller.cs new file mode 100644 index 0000000..351ff65 --- /dev/null +++ b/Controller.cs | |||
@@ -0,0 +1,229 @@ | |||
1 | /* | ||
2 | Copyright (c) 2007 Michael Wright | ||
3 | |||
4 | * Copyright (c) <year>, <copyright holder> | ||
5 | * All rights reserved. | ||
6 | * | ||
7 | * Redistribution and use in source and binary forms, with or without | ||
8 | * modification, are permitted provided that the following conditions are met: | ||
9 | * * Redistributions of source code must retain the above copyright | ||
10 | * notice, this list of conditions and the following disclaimer. | ||
11 | * * Redistributions in binary form must reproduce the above copyright | ||
12 | * notice, this list of conditions and the following disclaimer in the | ||
13 | * documentation and/or other materials provided with the distribution. | ||
14 | * * Neither the name of the <organization> nor the | ||
15 | * names of its contributors may be used to endorse or promote products | ||
16 | * derived from this software without specific prior written permission. | ||
17 | * | ||
18 | * THIS SOFTWARE IS PROVIDED BY <copyright holder> ``AS IS'' AND ANY | ||
19 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||
20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||
21 | * DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY | ||
22 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||
23 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
24 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||
25 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
26 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||
27 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
28 | */ | ||
29 | |||
30 | using System; | ||
31 | using System.Timers; | ||
32 | using System.Collections.Generic; | ||
33 | using libsecondlife; | ||
34 | using libsecondlife.Packets; | ||
35 | using System.Collections; | ||
36 | using System.Text; | ||
37 | using System.IO; | ||
38 | using Axiom.MathLib; | ||
39 | using log4net; | ||
40 | |||
41 | namespace Second_server { | ||
42 | /// <summary> | ||
43 | /// Description of MainForm. | ||
44 | /// </summary> | ||
45 | public partial class Controller : Server_callback { | ||
46 | |||
47 | |||
48 | |||
49 | [STAThread] | ||
50 | public static void Main( string[] args ) { | ||
51 | Controller c = new Controller(); | ||
52 | while( true ) // fuckin' a | ||
53 | System.Threading.Thread.Sleep( 1000 ); | ||
54 | |||
55 | } | ||
56 | public Server server; | ||
57 | |||
58 | private Agent_Manager agent_man; | ||
59 | private Prim_manager prim_man; | ||
60 | private Texture_manager texture_man; | ||
61 | private Asset_manager asset_man; | ||
62 | private Login_manager login_man; //built in login server | ||
63 | private ulong time; //ticks | ||
64 | private Timer timer1 = new Timer(); | ||
65 | |||
66 | |||
67 | public Controller() { | ||
68 | server = new Server( this ); | ||
69 | agent_man = new Agent_Manager( this.server ); | ||
70 | prim_man = new Prim_manager( this.server ); | ||
71 | texture_man = new Texture_manager( this.server ); | ||
72 | asset_man = new Asset_manager( this.server ); | ||
73 | prim_man.agent_man = agent_man; | ||
74 | agent_man.prim_man = prim_man; | ||
75 | login_man = new Login_manager(); // startup | ||
76 | login_man.startup(); // login server | ||
77 | timer1.Enabled = true; | ||
78 | timer1.Interval = 200; | ||
79 | timer1.Elapsed +=new ElapsedEventHandler( this.Timer1Tick ); | ||
80 | |||
81 | |||
82 | } | ||
83 | public void main_callback( Packet pack, User_Agent_info User_info ) { | ||
84 | if( ( pack.Type != PacketType.StartPingCheck ) && ( pack.Type != PacketType.AgentUpdate ) ) { | ||
85 | System.Console.WriteLine(pack.Type); | ||
86 | //this.richTextBox1.Text=this.richTextBox1.Text+"\n "+pack.Type; | ||
87 | } | ||
88 | if( pack.Type == PacketType.AgentSetAppearance ) { | ||
89 | System.Console.WriteLine(pack); | ||
90 | //this.richTextBox1.Text=this.richTextBox1.Text+"\n "+pack.Type; | ||
91 | |||
92 | } | ||
93 | if( pack.Type == PacketType.TransferRequest ) { | ||
94 | TransferRequestPacket tran = (TransferRequestPacket)pack; | ||
95 | LLUUID id = new LLUUID( tran.TransferInfo.Params, 0 ); | ||
96 | |||
97 | if( ( id == new LLUUID( "66c41e39-38f9-f75a-024e-585989bfab73" ) ) || ( id == new LLUUID( "e0ee49b5a4184df8d3c9a65361fe7f49" ) ) ) { | ||
98 | //System.Console.WriteLine(pack); | ||
99 | //System.Console.WriteLine(tran.TransferInfo.TransferID); | ||
100 | asset_man.add_request( User_info, id, tran ); | ||
101 | //this.richTextBox1.Text=this.richTextBox1.Text+"\n "+pack.Type; | ||
102 | } | ||
103 | |||
104 | } | ||
105 | if( ( pack.Type == PacketType.StartPingCheck ) ) { | ||
106 | //reply to pingcheck | ||
107 | libsecondlife.Packets.StartPingCheckPacket startp = (libsecondlife.Packets.StartPingCheckPacket)pack; | ||
108 | libsecondlife.Packets.CompletePingCheckPacket endping = new CompletePingCheckPacket(); | ||
109 | endping.PingID.PingID = startp.PingID.PingID; | ||
110 | server.SendPacket( endping, true, User_info ); | ||
111 | } | ||
112 | if( pack.Type == PacketType.CompleteAgentMovement ) { | ||
113 | // new client | ||
114 | agent_man.Agent_join( User_info ); | ||
115 | } | ||
116 | if( pack.Type == PacketType.RequestImage ) { | ||
117 | RequestImagePacket image_req = (RequestImagePacket)pack; | ||
118 | for( int i = 0; i < image_req.RequestImage.Length; i++ ) { | ||
119 | this.texture_man.add_request( User_info, image_req.RequestImage[ i ].Image ); | ||
120 | |||
121 | } | ||
122 | } | ||
123 | if( pack.Type == PacketType.RegionHandshakeReply ) { | ||
124 | //recieved regionhandshake so can now start sending info | ||
125 | agent_man.send_intial_data( User_info ); | ||
126 | //this.setuptemplates("objectupate164.dat",User_info,false); | ||
127 | } | ||
128 | if( pack.Type == PacketType.ObjectAdd ) { | ||
129 | ObjectAddPacket ad = (ObjectAddPacket)pack; | ||
130 | prim_man.create_prim( User_info, ad.ObjectData.RayEnd, ad ); | ||
131 | //this.send_prim(User_info,ad.ObjectData.RayEnd, ad); | ||
132 | } | ||
133 | if( pack.Type == PacketType.ObjectPosition ) { | ||
134 | //System.Console.WriteLine(pack.ToString()); | ||
135 | } | ||
136 | if( pack.Type == PacketType.MultipleObjectUpdate ) { | ||
137 | //System.Console.WriteLine(pack.ToString()); | ||
138 | MultipleObjectUpdatePacket mupd = (MultipleObjectUpdatePacket)pack; | ||
139 | |||
140 | for( int i = 0; i < mupd.ObjectData.Length; i++ ) { | ||
141 | if( mupd.ObjectData[ i ].Type == 9 ) //change position | ||
142 | { | ||
143 | libsecondlife.LLVector3 pos = new LLVector3( mupd.ObjectData[ i ].Data, 0 ); | ||
144 | |||
145 | prim_man.update_prim_position( User_info, pos.X, pos.Y, pos.Z, mupd.ObjectData[ i ].ObjectLocalID ); | ||
146 | //should update stored position of the prim | ||
147 | } | ||
148 | } | ||
149 | } | ||
150 | if( pack.Type == PacketType.AgentWearablesRequest ) { | ||
151 | agent_man.send_intial_avatar_apper( User_info ); | ||
152 | } | ||
153 | |||
154 | if( pack.Type == PacketType.AgentUpdate ) { | ||
155 | AgentUpdatePacket ag = (AgentUpdatePacket)pack; | ||
156 | uint mask = ag.AgentData.ControlFlags & ( 1 ); | ||
157 | Avatar_data m_av = agent_man.Get_Agent( User_info.AgentID ); | ||
158 | if( m_av != null ) { | ||
159 | if( m_av.started ) { | ||
160 | if( mask == ( 1 ) ) { | ||
161 | if( !m_av.walk ) { | ||
162 | //start walking | ||
163 | agent_man.send_move_command( User_info, false, m_av.pos.X, m_av.pos.Y, m_av.pos.Z, 0, ag.AgentData.BodyRotation ); | ||
164 | Axiom.MathLib.Vector3 v3 = new Axiom.MathLib.Vector3( 1, 0, 0 ); | ||
165 | Axiom.MathLib.Quaternion q = new Axiom.MathLib.Quaternion( ag.AgentData.BodyRotation.W, ag.AgentData.BodyRotation.X, ag.AgentData.BodyRotation.Y, ag.AgentData.BodyRotation.Z ); | ||
166 | Axiom.MathLib.Vector3 direc = q * v3; | ||
167 | direc.Normalize(); | ||
168 | direc = direc * ( ( 0.03f ) * 128f ); | ||
169 | |||
170 | m_av.vel.X = direc.x; | ||
171 | m_av.vel.Y = direc.y; | ||
172 | m_av.vel.Z = direc.z; | ||
173 | m_av.walk = true; | ||
174 | } | ||
175 | } | ||
176 | else { | ||
177 | if( m_av.walk ) { | ||
178 | //walking but key not pressed so need to stop | ||
179 | agent_man.send_move_command( User_info, true, m_av.pos.X, m_av.pos.Y, m_av.pos.Z, 0, ag.AgentData.BodyRotation ); | ||
180 | m_av.walk = false; | ||
181 | m_av.vel.X = 0; | ||
182 | m_av.vel.Y = 0; | ||
183 | m_av.vel.Z = 0; | ||
184 | } | ||
185 | } | ||
186 | } | ||
187 | } | ||
188 | } | ||
189 | |||
190 | if( pack.Type == PacketType.ChatFromViewer ) { | ||
191 | ChatFromViewerPacket chat = (ChatFromViewerPacket)pack; | ||
192 | System.Text.Encoding enc = System.Text.Encoding.ASCII; | ||
193 | |||
194 | string myString = enc.GetString( chat.ChatData.Message ); | ||
195 | if( myString != "" ) { | ||
196 | string[] comp = new string[ 10 ]; | ||
197 | string delimStr = " , "; | ||
198 | char[] delimiter = delimStr.ToCharArray(); | ||
199 | string line; | ||
200 | |||
201 | line = myString; | ||
202 | comp = line.Split( delimiter ); | ||
203 | if( comp[ 0 ] == "pos" ) { | ||
204 | } | ||
205 | else if( comp[ 0 ] == "veloc" ) { | ||
206 | } | ||
207 | else { | ||
208 | agent_man.send_chat_message( User_info, line ); | ||
209 | |||
210 | } | ||
211 | } | ||
212 | } | ||
213 | } | ||
214 | public void new_user( User_Agent_info User_info ) { | ||
215 | Console.WriteLine( "new user - {0} - has joined [session {1}]", User_info.AgentID.ToString(), User_info.SessionID.ToString() ); | ||
216 | agent_man.New_Agent( User_info ); | ||
217 | } | ||
218 | |||
219 | public void error( string text ) { | ||
220 | Console.WriteLine( "error report: {0}", text ); | ||
221 | } | ||
222 | |||
223 | void Timer1Tick( object sender, System.EventArgs e ) { | ||
224 | this.time++; | ||
225 | agent_man.tick(); | ||
226 | texture_man.Do_work( time ); | ||
227 | } | ||
228 | } | ||
229 | } \ No newline at end of file | ||
diff --git a/Main-sever.Designer.cs b/Main-sever.Designer.cs deleted file mode 100644 index af8cfe8..0000000 --- a/Main-sever.Designer.cs +++ /dev/null | |||
@@ -1,80 +0,0 @@ | |||
1 | /* | ||
2 | Copyright (c) 2007 Michael Wright | ||
3 | |||
4 | This program is free software; you can redistribute it and/or | ||
5 | modify it under the terms of the GNU General Public License | ||
6 | as published by the Free Software Foundation; either version 2 | ||
7 | of the License, or (at your option) any later version. | ||
8 | |||
9 | This program is distributed in the hope that it will be useful, | ||
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
12 | GNU General Public License for more details. | ||
13 | |||
14 | You should have received a copy of the GNU General Public License | ||
15 | along with this program; if not, write to the Free Software | ||
16 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | ||
17 | */ | ||
18 | namespace Second_server | ||
19 | { | ||
20 | partial class Main_server : System.Windows.Forms.Form | ||
21 | { | ||
22 | /// <summary> | ||
23 | /// Designer variable used to keep track of non-visual components. | ||
24 | /// </summary> | ||
25 | private System.ComponentModel.IContainer components = null; | ||
26 | |||
27 | /// <summary> | ||
28 | /// Disposes resources used by the form. | ||
29 | /// </summary> | ||
30 | /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> | ||
31 | protected override void Dispose(bool disposing) | ||
32 | { | ||
33 | if (disposing) { | ||
34 | if (components != null) { | ||
35 | components.Dispose(); | ||
36 | } | ||
37 | } | ||
38 | base.Dispose(disposing); | ||
39 | } | ||
40 | |||
41 | /// <summary> | ||
42 | /// This method is required for Windows Forms designer support. | ||
43 | /// Do not change the method contents inside the source code editor. The Forms designer might | ||
44 | /// not be able to load this method if it was changed manually. | ||
45 | /// </summary> | ||
46 | private void InitializeComponent() | ||
47 | { | ||
48 | this.components = new System.ComponentModel.Container(); | ||
49 | this.richTextBox1 = new System.Windows.Forms.RichTextBox(); | ||
50 | this.timer1 = new System.Windows.Forms.Timer(this.components); | ||
51 | this.SuspendLayout(); | ||
52 | // | ||
53 | // richTextBox1 | ||
54 | // | ||
55 | this.richTextBox1.Location = new System.Drawing.Point(11, 12); | ||
56 | this.richTextBox1.Name = "richTextBox1"; | ||
57 | this.richTextBox1.Size = new System.Drawing.Size(346, 402); | ||
58 | this.richTextBox1.TabIndex = 0; | ||
59 | this.richTextBox1.Text = ""; | ||
60 | // | ||
61 | // timer1 | ||
62 | // | ||
63 | this.timer1.Enabled = true; | ||
64 | this.timer1.Interval = 200; | ||
65 | this.timer1.Tick += new System.EventHandler(this.Timer1Tick); | ||
66 | // | ||
67 | // Main_server | ||
68 | // | ||
69 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); | ||
70 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; | ||
71 | this.ClientSize = new System.Drawing.Size(596, 426); | ||
72 | this.Controls.Add(this.richTextBox1); | ||
73 | this.Name = "Main_server"; | ||
74 | this.Text = "Main_sever"; | ||
75 | this.ResumeLayout(false); | ||
76 | } | ||
77 | private System.Windows.Forms.Timer timer1; | ||
78 | private System.Windows.Forms.RichTextBox richTextBox1; | ||
79 | } | ||
80 | } | ||
diff --git a/Main-sever.cs b/Main-sever.cs deleted file mode 100644 index 911d9d7..0000000 --- a/Main-sever.cs +++ /dev/null | |||
@@ -1,270 +0,0 @@ | |||
1 | /* | ||
2 | Copyright (c) 2007 Michael Wright | ||
3 | |||
4 | * Copyright (c) <year>, <copyright holder> | ||
5 | * All rights reserved. | ||
6 | * | ||
7 | * Redistribution and use in source and binary forms, with or without | ||
8 | * modification, are permitted provided that the following conditions are met: | ||
9 | * * Redistributions of source code must retain the above copyright | ||
10 | * notice, this list of conditions and the following disclaimer. | ||
11 | * * Redistributions in binary form must reproduce the above copyright | ||
12 | * notice, this list of conditions and the following disclaimer in the | ||
13 | * documentation and/or other materials provided with the distribution. | ||
14 | * * Neither the name of the <organization> nor the | ||
15 | * names of its contributors may be used to endorse or promote products | ||
16 | * derived from this software without specific prior written permission. | ||
17 | * | ||
18 | * THIS SOFTWARE IS PROVIDED BY <copyright holder> ``AS IS'' AND ANY | ||
19 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | ||
20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | ||
21 | * DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY | ||
22 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | ||
23 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | ||
24 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | ||
25 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
26 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||
27 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
28 | */ | ||
29 | |||
30 | using System; | ||
31 | using System.Collections.Generic; | ||
32 | using System.Drawing; | ||
33 | using System.Windows.Forms; | ||
34 | using libsecondlife; | ||
35 | using libsecondlife.Packets; | ||
36 | using System.Collections; | ||
37 | using System.Text; | ||
38 | using System.IO; | ||
39 | using Axiom.MathLib; | ||
40 | |||
41 | namespace Second_server | ||
42 | { | ||
43 | /// <summary> | ||
44 | /// Description of MainForm. | ||
45 | /// </summary> | ||
46 | public partial class Main_server:Server_callback | ||
47 | { | ||
48 | |||
49 | [STAThread] | ||
50 | public static void Main(string[] args) | ||
51 | { | ||
52 | Application.EnableVisualStyles(); | ||
53 | Application.SetCompatibleTextRenderingDefault(false); | ||
54 | Application.Run(new Main_server()); | ||
55 | } | ||
56 | public Server server; | ||
57 | |||
58 | //public bool intin=false; | ||
59 | //private libsecondlife.Packets.ObjectUpdatePacket.ObjectDataBlock avatar_template; | ||
60 | //private libsecondlife.Packets.ObjectUpdatePacket.ObjectDataBlock object_template; | ||
61 | |||
62 | private Agent_Manager agent_man; | ||
63 | private Prim_manager prim_man; | ||
64 | private Texture_manager texture_man; | ||
65 | private Asset_manager asset_man; | ||
66 | private Login_manager login_man; //built in login server | ||
67 | private ulong time; //ticks | ||
68 | |||
69 | public Main_server() | ||
70 | { | ||
71 | // | ||
72 | // The InitializeComponent() call is required for Windows Forms designer support. | ||
73 | // | ||
74 | InitializeComponent(); | ||
75 | |||
76 | // | ||
77 | // TODO: Add constructor code after the InitializeComponent() call. | ||
78 | // | ||
79 | |||
80 | server=new Server(this); | ||
81 | agent_man=new Agent_Manager(this.server); | ||
82 | prim_man=new Prim_manager(this.server); | ||
83 | texture_man=new Texture_manager(this.server); | ||
84 | asset_man=new Asset_manager(this.server); | ||
85 | prim_man.agent_man=agent_man; | ||
86 | agent_man.prim_man=prim_man; | ||
87 | login_man=new Login_manager(); // startup | ||
88 | login_man.startup(); // login server | ||
89 | |||
90 | } | ||
91 | public void main_callback(Packet pack, User_Agent_info User_info) | ||
92 | { | ||
93 | if((pack.Type!= PacketType.StartPingCheck) && (pack.Type!= PacketType.AgentUpdate)) | ||
94 | { | ||
95 | //System.Console.WriteLine(pack.Type); | ||
96 | //this.richTextBox1.Text=this.richTextBox1.Text+"\n "+pack.Type; | ||
97 | } | ||
98 | if(pack.Type== PacketType.AgentSetAppearance) | ||
99 | { | ||
100 | //System.Console.WriteLine(pack); | ||
101 | //this.richTextBox1.Text=this.richTextBox1.Text+"\n "+pack.Type; | ||
102 | |||
103 | } | ||
104 | if(pack.Type== PacketType.TransferRequest) | ||
105 | { | ||
106 | TransferRequestPacket tran=(TransferRequestPacket)pack; | ||
107 | LLUUID id=new LLUUID(tran.TransferInfo.Params,0); | ||
108 | |||
109 | if((id==new LLUUID("66c41e39-38f9-f75a-024e-585989bfab73")) ||(id==new LLUUID("e0ee49b5a4184df8d3c9a65361fe7f49"))) | ||
110 | { | ||
111 | //System.Console.WriteLine(pack); | ||
112 | //System.Console.WriteLine(tran.TransferInfo.TransferID); | ||
113 | asset_man.add_request(User_info,id,tran); | ||
114 | //this.richTextBox1.Text=this.richTextBox1.Text+"\n "+pack.Type; | ||
115 | } | ||
116 | |||
117 | } | ||
118 | if((pack.Type== PacketType.StartPingCheck) ) | ||
119 | { | ||
120 | //reply to pingcheck | ||
121 | libsecondlife.Packets.StartPingCheckPacket startp=(libsecondlife.Packets.StartPingCheckPacket)pack; | ||
122 | libsecondlife.Packets.CompletePingCheckPacket endping=new CompletePingCheckPacket(); | ||
123 | endping.PingID.PingID=startp.PingID.PingID; | ||
124 | server.SendPacket(endping,true,User_info); | ||
125 | } | ||
126 | if(pack.Type==PacketType.CompleteAgentMovement) | ||
127 | { | ||
128 | // new client | ||
129 | agent_man.Agent_join(User_info); | ||
130 | } | ||
131 | if (pack.Type==PacketType.RequestImage) | ||
132 | { | ||
133 | RequestImagePacket image_req=(RequestImagePacket)pack; | ||
134 | for(int i=0; i<image_req.RequestImage.Length ;i++) | ||
135 | { | ||
136 | this.texture_man.add_request(User_info,image_req.RequestImage[i].Image); | ||
137 | |||
138 | } | ||
139 | } | ||
140 | if (pack.Type==PacketType.RegionHandshakeReply) | ||
141 | { | ||
142 | //recieved regionhandshake so can now start sending info | ||
143 | agent_man.send_intial_data(User_info); | ||
144 | //this.setuptemplates("objectupate164.dat",User_info,false); | ||
145 | } | ||
146 | if(pack.Type== PacketType.ObjectAdd) | ||
147 | { | ||
148 | ObjectAddPacket ad=(ObjectAddPacket)pack; | ||
149 | prim_man.create_prim(User_info,ad.ObjectData.RayEnd, ad); | ||
150 | //this.send_prim(User_info,ad.ObjectData.RayEnd, ad); | ||
151 | } | ||
152 | if(pack.Type== PacketType.ObjectPosition) | ||
153 | { | ||
154 | //System.Console.WriteLine(pack.ToString()); | ||
155 | } | ||
156 | if(pack.Type== PacketType.MultipleObjectUpdate) | ||
157 | { | ||
158 | //System.Console.WriteLine(pack.ToString()); | ||
159 | MultipleObjectUpdatePacket mupd=(MultipleObjectUpdatePacket)pack; | ||
160 | |||
161 | for(int i=0; i<mupd.ObjectData.Length; i++) | ||
162 | { | ||
163 | if(mupd.ObjectData[i].Type==9) //change position | ||
164 | { | ||
165 | libsecondlife.LLVector3 pos=new LLVector3(mupd.ObjectData[i].Data, 0); | ||
166 | |||
167 | prim_man.update_prim_position(User_info, pos.X,pos.Y,pos.Z,mupd.ObjectData[i].ObjectLocalID); | ||
168 | //should update stored position of the prim | ||
169 | } | ||
170 | } | ||
171 | } | ||
172 | if(pack.Type== PacketType.AgentWearablesRequest) | ||
173 | { | ||
174 | agent_man.send_intial_avatar_apper(User_info); | ||
175 | } | ||
176 | |||
177 | if(pack.Type==PacketType.AgentUpdate) | ||
178 | { | ||
179 | AgentUpdatePacket ag=(AgentUpdatePacket)pack; | ||
180 | uint mask=ag.AgentData.ControlFlags&(1); | ||
181 | Avatar_data m_av=agent_man.Get_Agent(User_info.AgentID); | ||
182 | if(m_av!=null) | ||
183 | { | ||
184 | if(m_av.started) | ||
185 | { | ||
186 | if(mask==(1)) | ||
187 | { | ||
188 | if(!m_av.walk) | ||
189 | { | ||
190 | //start walking | ||
191 | agent_man.send_move_command(User_info,false,m_av.pos.X,m_av.pos.Y,m_av.pos.Z,0,ag.AgentData.BodyRotation); | ||
192 | Axiom.MathLib.Vector3 v3=new Axiom.MathLib.Vector3(1,0,0); | ||
193 | Axiom.MathLib.Quaternion q=new Axiom.MathLib.Quaternion(ag.AgentData.BodyRotation.W,ag.AgentData.BodyRotation.X,ag.AgentData.BodyRotation.Y,ag.AgentData.BodyRotation.Z); | ||
194 | Axiom.MathLib.Vector3 direc=q*v3; | ||
195 | direc.Normalize(); | ||
196 | direc=direc*((0.03f)*128f); | ||
197 | |||
198 | m_av.vel.X=direc.x; | ||
199 | m_av.vel.Y=direc.y; | ||
200 | m_av.vel.Z=direc.z; | ||
201 | m_av.walk=true; | ||
202 | } | ||
203 | } | ||
204 | else{ | ||
205 | if(m_av.walk) | ||
206 | { | ||
207 | //walking but key not pressed so need to stop | ||
208 | agent_man.send_move_command(User_info,true,m_av.pos.X,m_av.pos.Y,m_av.pos.Z,0,ag.AgentData.BodyRotation); | ||
209 | m_av.walk=false; | ||
210 | m_av.vel.X=0; | ||
211 | m_av.vel.Y=0; | ||
212 | m_av.vel.Z=0; | ||
213 | } | ||
214 | } | ||
215 | }} | ||
216 | } | ||
217 | |||
218 | if(pack.Type==PacketType.ChatFromViewer) | ||
219 | { | ||
220 | ChatFromViewerPacket chat=(ChatFromViewerPacket)pack; | ||
221 | System.Text.Encoding enc = System.Text.Encoding.ASCII; | ||
222 | |||
223 | string myString = enc.GetString(chat.ChatData.Message ); | ||
224 | if(myString!="") | ||
225 | { | ||
226 | string [] comp= new string[10]; | ||
227 | string delimStr = " , "; | ||
228 | char [] delimiter = delimStr.ToCharArray(); | ||
229 | string line; | ||
230 | |||
231 | line=myString; | ||
232 | comp=line.Split(delimiter); | ||
233 | if(comp[0]=="pos") | ||
234 | { | ||
235 | } | ||
236 | else if(comp[0]=="veloc") | ||
237 | { | ||
238 | } | ||
239 | else | ||
240 | { | ||
241 | agent_man.send_chat_message(User_info,line); | ||
242 | |||
243 | } | ||
244 | } | ||
245 | } | ||
246 | } | ||
247 | public void new_user(User_Agent_info User_info) | ||
248 | { | ||
249 | this.richTextBox1.Text=this.richTextBox1.Text+"\n "+"new user - "+User_info.AgentID.ToString()+" - has joined"; | ||
250 | this.richTextBox1.Text=this.richTextBox1.Text+"\n "+"session id := "+User_info.SessionID.ToString(); | ||
251 | agent_man.New_Agent(User_info); | ||
252 | |||
253 | } | ||
254 | |||
255 | public void error(string text) | ||
256 | { | ||
257 | this.richTextBox1.Text=this.richTextBox1.Text+"\n error report: "+text; | ||
258 | } | ||
259 | |||
260 | void Timer1Tick(object sender, System.EventArgs e) | ||
261 | { | ||
262 | this.time++; | ||
263 | agent_man.tick(); | ||
264 | texture_man.Do_work(time); | ||
265 | } | ||
266 | |||
267 | |||
268 | } | ||
269 | |||
270 | } | ||
diff --git a/Main-sever.resx b/Main-sever.resx deleted file mode 100644 index 6999fbf..0000000 --- a/Main-sever.resx +++ /dev/null | |||
@@ -1,123 +0,0 @@ | |||
1 | <?xml version="1.0" encoding="utf-8"?> | ||
2 | <root> | ||
3 | <!-- | ||
4 | Microsoft ResX Schema | ||
5 | |||
6 | Version 2.0 | ||
7 | |||
8 | The primary goals of this format is to allow a simple XML format | ||
9 | that is mostly human readable. The generation and parsing of the | ||
10 | various data types are done through the TypeConverter classes | ||
11 | associated with the data types. | ||
12 | |||
13 | Example: | ||
14 | |||
15 | ... ado.net/XML headers & schema ... | ||
16 | <resheader name="resmimetype">text/microsoft-resx</resheader> | ||
17 | <resheader name="version">2.0</resheader> | ||
18 | <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> | ||
19 | <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> | ||
20 | <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> | ||
21 | <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> | ||
22 | <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> | ||
23 | <value>[base64 mime encoded serialized .NET Framework object]</value> | ||
24 | </data> | ||
25 | <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> | ||
26 | <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> | ||
27 | <comment>This is a comment</comment> | ||
28 | </data> | ||
29 | |||
30 | There are any number of "resheader" rows that contain simple | ||
31 | name/value pairs. | ||
32 | |||
33 | Each data row contains a name, and value. The row also contains a | ||
34 | type or mimetype. Type corresponds to a .NET class that support | ||
35 | text/value conversion through the TypeConverter architecture. | ||
36 | Classes that don't support this are serialized and stored with the | ||
37 | mimetype set. | ||
38 | |||
39 | The mimetype is used for serialized objects, and tells the | ||
40 | ResXResourceReader how to depersist the object. This is currently not | ||
41 | extensible. For a given mimetype the value must be set accordingly: | ||
42 | |||
43 | Note - application/x-microsoft.net.object.binary.base64 is the format | ||
44 | that the ResXResourceWriter will generate, however the reader can | ||
45 | read any of the formats listed below. | ||
46 | |||
47 | mimetype: application/x-microsoft.net.object.binary.base64 | ||
48 | value : The object must be serialized with | ||
49 | : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter | ||
50 | : and then encoded with base64 encoding. | ||
51 | |||
52 | mimetype: application/x-microsoft.net.object.soap.base64 | ||
53 | value : The object must be serialized with | ||
54 | : System.Runtime.Serialization.Formatters.Soap.SoapFormatter | ||
55 | : and then encoded with base64 encoding. | ||
56 | |||
57 | mimetype: application/x-microsoft.net.object.bytearray.base64 | ||
58 | value : The object must be serialized into a byte array | ||
59 | : using a System.ComponentModel.TypeConverter | ||
60 | : and then encoded with base64 encoding. | ||
61 | --> | ||
62 | <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> | ||
63 | <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> | ||
64 | <xsd:element name="root" msdata:IsDataSet="true"> | ||
65 | <xsd:complexType> | ||
66 | <xsd:choice maxOccurs="unbounded"> | ||
67 | <xsd:element name="metadata"> | ||
68 | <xsd:complexType> | ||
69 | <xsd:sequence> | ||
70 | <xsd:element name="value" type="xsd:string" minOccurs="0" /> | ||
71 | </xsd:sequence> | ||
72 | <xsd:attribute name="name" use="required" type="xsd:string" /> | ||
73 | <xsd:attribute name="type" type="xsd:string" /> | ||
74 | <xsd:attribute name="mimetype" type="xsd:string" /> | ||
75 | <xsd:attribute ref="xml:space" /> | ||
76 | </xsd:complexType> | ||
77 | </xsd:element> | ||
78 | <xsd:element name="assembly"> | ||
79 | <xsd:complexType> | ||
80 | <xsd:attribute name="alias" type="xsd:string" /> | ||
81 | <xsd:attribute name="name" type="xsd:string" /> | ||
82 | </xsd:complexType> | ||
83 | </xsd:element> | ||
84 | <xsd:element name="data"> | ||
85 | <xsd:complexType> | ||
86 | <xsd:sequence> | ||
87 | <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> | ||
88 | <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> | ||
89 | </xsd:sequence> | ||
90 | <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> | ||
91 | <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> | ||
92 | <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> | ||
93 | <xsd:attribute ref="xml:space" /> | ||
94 | </xsd:complexType> | ||
95 | </xsd:element> | ||
96 | <xsd:element name="resheader"> | ||
97 | <xsd:complexType> | ||
98 | <xsd:sequence> | ||
99 | <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> | ||
100 | </xsd:sequence> | ||
101 | <xsd:attribute name="name" type="xsd:string" use="required" /> | ||
102 | </xsd:complexType> | ||
103 | </xsd:element> | ||
104 | </xsd:choice> | ||
105 | </xsd:complexType> | ||
106 | </xsd:element> | ||
107 | </xsd:schema> | ||
108 | <resheader name="resmimetype"> | ||
109 | <value>text/microsoft-resx</value> | ||
110 | </resheader> | ||
111 | <resheader name="version"> | ||
112 | <value>2.0</value> | ||
113 | </resheader> | ||
114 | <resheader name="reader"> | ||
115 | <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> | ||
116 | </resheader> | ||
117 | <resheader name="writer"> | ||
118 | <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> | ||
119 | </resheader> | ||
120 | <metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> | ||
121 | <value>17, 17</value> | ||
122 | </metadata> | ||
123 | </root> \ No newline at end of file | ||
diff --git a/Prim_manager.cs b/Prim_manager.cs index dff2d24..da1d626 100644 --- a/Prim_manager.cs +++ b/Prim_manager.cs | |||
@@ -258,7 +258,7 @@ namespace Second_server | |||
258 | objupdate.ObjectData=new libsecondlife.Packets.ObjectUpdatePacket.ObjectDataBlock[num]; | 258 | objupdate.ObjectData=new libsecondlife.Packets.ObjectUpdatePacket.ObjectDataBlock[num]; |
259 | 259 | ||
260 | // int count=0; | 260 | // int count=0; |
261 | string data_path=System.Windows.Forms.Application.StartupPath + @"\data\"; | 261 | string data_path = System.AppDomain.CurrentDomain.BaseDirectory + @"\data\"; |
262 | for(int cc=0; cc<num; cc++) | 262 | for(int cc=0; cc<num; cc++) |
263 | { | 263 | { |
264 | string filenam=data_path+@"prim_updates"+start+".dat"; | 264 | string filenam=data_path+@"prim_updates"+start+".dat"; |
diff --git a/Second-server.csproj b/Second-server.csproj index 4823611..79db97f 100644 --- a/Second-server.csproj +++ b/Second-server.csproj | |||
@@ -1,7 +1,7 @@ | |||
1 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | 1 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
2 | <PropertyGroup> | 2 | <PropertyGroup> |
3 | <OutputType>Exe</OutputType> | 3 | <OutputType>Exe</OutputType> |
4 | <RootNamespace>Second_server</RootNamespace> | 4 | <RootNamespace>Controller</RootNamespace> |
5 | <AssemblyName>Second-server</AssemblyName> | 5 | <AssemblyName>Second-server</AssemblyName> |
6 | <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> | 6 | <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> |
7 | <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> | 7 | <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> |
@@ -24,32 +24,22 @@ | |||
24 | <CheckForOverflowUnderflow>False</CheckForOverflowUnderflow> | 24 | <CheckForOverflowUnderflow>False</CheckForOverflowUnderflow> |
25 | </PropertyGroup> | 25 | </PropertyGroup> |
26 | <ItemGroup> | 26 | <ItemGroup> |
27 | <Reference Include="System" /> | 27 | <Reference Include="Axiom.MathLib, Version=0.7.0.25497, Culture=neutral"> |
28 | <Reference Include="System.Data" /> | ||
29 | <Reference Include="System.Drawing" /> | ||
30 | <Reference Include="System.Windows.Forms" /> | ||
31 | <Reference Include="System.Xml" /> | ||
32 | <Reference Include="Axiom.MathLib"> | ||
33 | <HintPath>bin\Release\Axiom.MathLib.dll</HintPath> | ||
34 | <SpecificVersion>False</SpecificVersion> | 28 | <SpecificVersion>False</SpecificVersion> |
29 | <HintPath>lib\Axiom.MathLib.dll</HintPath> | ||
35 | </Reference> | 30 | </Reference> |
36 | <Reference Include="libsecondlife"> | 31 | <Reference Include="log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821, processorArchitecture=MSIL"> |
37 | <HintPath>bin\Release\libsecondlife.dll</HintPath> | ||
38 | <SpecificVersion>False</SpecificVersion> | 32 | <SpecificVersion>False</SpecificVersion> |
33 | <HintPath>lib\log4net.dll</HintPath> | ||
39 | </Reference> | 34 | </Reference> |
35 | <Reference Include="System" /> | ||
36 | <Reference Include="System.Data" /> | ||
37 | <Reference Include="System.Xml" /> | ||
40 | </ItemGroup> | 38 | </ItemGroup> |
41 | <ItemGroup> | 39 | <ItemGroup> |
42 | <Compile Include="AssemblyInfo.cs" /> | 40 | <Compile Include="AssemblyInfo.cs" /> |
43 | <Compile Include="Main-sever.Designer.cs"> | ||
44 | <DependentUpon>Main-sever.cs</DependentUpon> | ||
45 | </Compile> | ||
46 | <Compile Include="Main-sever.cs"> | ||
47 | <SubType>Form</SubType> | ||
48 | </Compile> | ||
49 | <EmbeddedResource Include="Main-sever.resx"> | ||
50 | <DependentUpon>Main-sever.cs</DependentUpon> | ||
51 | </EmbeddedResource> | ||
52 | <Compile Include="Agent_Manager.cs" /> | 41 | <Compile Include="Agent_Manager.cs" /> |
42 | <Compile Include="Controller.cs" /> | ||
53 | <Compile Include="Prim_manager.cs" /> | 43 | <Compile Include="Prim_manager.cs" /> |
54 | <Compile Include="Texture_manager.cs" /> | 44 | <Compile Include="Texture_manager.cs" /> |
55 | <Compile Include="Login_manager.cs" /> | 45 | <Compile Include="Login_manager.cs" /> |
@@ -58,5 +48,11 @@ | |||
58 | <Compile Include="Script_manager.cs" /> | 48 | <Compile Include="Script_manager.cs" /> |
59 | <Compile Include="Server.cs" /> | 49 | <Compile Include="Server.cs" /> |
60 | </ItemGroup> | 50 | </ItemGroup> |
51 | <ItemGroup> | ||
52 | <ProjectReference Include="..\..\libsecondlife\libsecondlife-cs\libsecondlife.csproj"> | ||
53 | <Project>{D9CDEDFB-8169-4B03-B57F-0DF638F044EC}</Project> | ||
54 | <Name>libsecondlife</Name> | ||
55 | </ProjectReference> | ||
56 | </ItemGroup> | ||
61 | <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" /> | 57 | <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" /> |
62 | </Project> \ No newline at end of file | 58 | </Project> \ No newline at end of file |
diff --git a/Second-server.sln b/Second-server.sln index 0106f61..9cdd672 100644 --- a/Second-server.sln +++ b/Second-server.sln | |||
@@ -1,17 +1,34 @@ | |||
1 | | 1 | |
2 | Microsoft Visual Studio Solution File, Format Version 9.00 | 2 | Microsoft Visual Studio Solution File, Format Version 9.00 |
3 | # SharpDevelop 2.1.0.2017 | 3 | # Visual Studio 2005 |
4 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Second-server", "Second-server.csproj", "{132A6E3E-8F2D-4BF5-BDFB-8555F53F334E}" | 4 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Second-server", "Second-server.csproj", "{132A6E3E-8F2D-4BF5-BDFB-8555F53F334E}" |
5 | EndProject | 5 | EndProject |
6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "libsecondlife", "..\..\libsecondlife\libsecondlife-cs\libsecondlife.csproj", "{D9CDEDFB-8169-4B03-B57F-0DF638F044EC}" | ||
7 | EndProject | ||
6 | Global | 8 | Global |
7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution | 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution |
10 | Debug|.NET 1.1 = Debug|.NET 1.1 | ||
8 | Debug|Any CPU = Debug|Any CPU | 11 | Debug|Any CPU = Debug|Any CPU |
12 | Release|.NET 1.1 = Release|.NET 1.1 | ||
9 | Release|Any CPU = Release|Any CPU | 13 | Release|Any CPU = Release|Any CPU |
10 | EndGlobalSection | 14 | EndGlobalSection |
11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution | 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution |
12 | {132A6E3E-8F2D-4BF5-BDFB-8555F53F334E}.Debug|Any CPU.Build.0 = Debug|Any CPU | 16 | {132A6E3E-8F2D-4BF5-BDFB-8555F53F334E}.Debug|.NET 1.1.ActiveCfg = Debug|Any CPU |
13 | {132A6E3E-8F2D-4BF5-BDFB-8555F53F334E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | 17 | {132A6E3E-8F2D-4BF5-BDFB-8555F53F334E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU |
14 | {132A6E3E-8F2D-4BF5-BDFB-8555F53F334E}.Release|Any CPU.Build.0 = Release|Any CPU | 18 | {132A6E3E-8F2D-4BF5-BDFB-8555F53F334E}.Debug|Any CPU.Build.0 = Debug|Any CPU |
19 | {132A6E3E-8F2D-4BF5-BDFB-8555F53F334E}.Release|.NET 1.1.ActiveCfg = Release|Any CPU | ||
15 | {132A6E3E-8F2D-4BF5-BDFB-8555F53F334E}.Release|Any CPU.ActiveCfg = Release|Any CPU | 20 | {132A6E3E-8F2D-4BF5-BDFB-8555F53F334E}.Release|Any CPU.ActiveCfg = Release|Any CPU |
21 | {132A6E3E-8F2D-4BF5-BDFB-8555F53F334E}.Release|Any CPU.Build.0 = Release|Any CPU | ||
22 | {D9CDEDFB-8169-4B03-B57F-0DF638F044EC}.Debug|.NET 1.1.ActiveCfg = Debug|.NET 1.1 | ||
23 | {D9CDEDFB-8169-4B03-B57F-0DF638F044EC}.Debug|.NET 1.1.Build.0 = Debug|.NET 1.1 | ||
24 | {D9CDEDFB-8169-4B03-B57F-0DF638F044EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
25 | {D9CDEDFB-8169-4B03-B57F-0DF638F044EC}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
26 | {D9CDEDFB-8169-4B03-B57F-0DF638F044EC}.Release|.NET 1.1.ActiveCfg = Release|.NET 1.1 | ||
27 | {D9CDEDFB-8169-4B03-B57F-0DF638F044EC}.Release|.NET 1.1.Build.0 = Release|.NET 1.1 | ||
28 | {D9CDEDFB-8169-4B03-B57F-0DF638F044EC}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
29 | {D9CDEDFB-8169-4B03-B57F-0DF638F044EC}.Release|Any CPU.Build.0 = Release|Any CPU | ||
30 | EndGlobalSection | ||
31 | GlobalSection(SolutionProperties) = preSolution | ||
32 | HideSolutionNode = FALSE | ||
16 | EndGlobalSection | 33 | EndGlobalSection |
17 | EndGlobal | 34 | EndGlobal |
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * * Copyright (c) <year>, <copyright holder> | 2 | * Copyright (c) OpenSim project, http://sim.opensecondlife.org/ |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
5 | * Redistribution and use in source and binary forms, with or without | 5 | * Redistribution and use in source and binary forms, with or without |
diff --git a/Texture_manager.cs b/Texture_manager.cs index 990557e..1321358 100644 --- a/Texture_manager.cs +++ b/Texture_manager.cs | |||
@@ -169,7 +169,7 @@ namespace Second_server | |||
169 | } | 169 | } |
170 | private void load_image(Texture_image im) | 170 | private void load_image(Texture_image im) |
171 | { | 171 | { |
172 | string data_path=System.Windows.Forms.Application.StartupPath + @"\textures\"; | 172 | string data_path=System.AppDomain.CurrentDomain.BaseDirectory + @"\textures\"; |
173 | string filename=data_path+@im.filename; | 173 | string filename=data_path+@im.filename; |
174 | FileInfo fInfo = new FileInfo(filename); | 174 | FileInfo fInfo = new FileInfo(filename); |
175 | 175 | ||
diff --git a/lib/Axiom.MathLib.dll b/lib/Axiom.MathLib.dll new file mode 100644 index 0000000..21ce3a8 --- /dev/null +++ b/lib/Axiom.MathLib.dll | |||
Binary files differ | |||
diff --git a/lib/log4net.dll b/lib/log4net.dll new file mode 100644 index 0000000..ffc57e1 --- /dev/null +++ b/lib/log4net.dll | |||
Binary files differ | |||