You can subscribe to this list here.
| 2006 | Jan | Feb | Mar (11) | Apr (47) | May (14) | Jun | Jul (73) | Aug (4) | Sep (2) | Oct (60) | Nov (48) | Dec (66) | 
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2007 | Jan | Feb (1) | Mar (27) | Apr (82) | May (89) | Jun (91) | Jul (44) | Aug (53) | Sep (113) | Oct (20) | Nov (37) | Dec (10) | 
| 2008 | Jan | Feb (2) | Mar | Apr (2) | May (21) | Jun (3) | Jul | Aug | Sep | Oct | Nov | Dec (1) | 
| 2009 | Jan (76) | Feb (89) | Mar (52) | Apr (11) | May (1) | Jun | Jul | Aug | Sep (1) | Oct | Nov | Dec (27) | 
| 2010 | Jan (11) | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec | 
| 2011 | Jan | Feb | Mar | Apr | May | Jun | Jul (1) | Aug (9) | Sep | Oct | Nov | Dec (14) | 
| 2012 | Jan | Feb | Mar | Apr | May | Jun | Jul (1) | Aug (2) | Sep (11) | Oct (3) | Nov | Dec | 
| 2013 | Jan (4) | Feb | Mar (2) | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec | 
| 
      
      
      From: <ult...@us...> - 2007-06-18 20:20:48
      
     | 
| Revision: 576
          http://svn.sourceforge.net/opengate/?rev=576&view=rev
Author:   ultrasick
Date:     2007-06-18 13:20:49 -0700 (Mon, 18 Jun 2007)
Log Message:
-----------
moving more stuff to the misc dir
Added Paths:
-----------
    trunk/data/misc/credits.txt
    trunk/data/misc/ids.xml
Removed Paths:
-------------
    trunk/data/credits.txt
    trunk/data/ids.xml
Deleted: trunk/data/credits.txt
===================================================================
--- trunk/data/credits.txt	2007-06-18 20:18:48 UTC (rev 575)
+++ trunk/data/credits.txt	2007-06-18 20:20:49 UTC (rev 576)
@@ -1,23 +0,0 @@
-Project leader:
----------------
-- eGore
-
-Regular contributors:
----------------------
-
-- eGore (source code, 3d models)
-- Spom (source code)
-- Ultrasick (graphics, website, 3d models)
-
-Other contributors:
--------------------
-
-- AFK_ (source code)
-
-Special thanks to ...
----------------------
-
-... Delwin for providing his super fast computer to do blender renderings for a dozen times!
-... LordOtter for his great webradio which I (Ultrasick) listened to for hours while I was working on Opengate! :-)
-... Ramiel (www.jagthesite.com) for providing nice base textures for the Lady Kickstart!
-... www.a1freesoundeffects.com for the sonar ping sound file we used in the open source splash screen!
\ No newline at end of file
Deleted: trunk/data/ids.xml
===================================================================
(Binary files differ)
Added: trunk/data/misc/credits.txt
===================================================================
--- trunk/data/misc/credits.txt	                        (rev 0)
+++ trunk/data/misc/credits.txt	2007-06-18 20:20:49 UTC (rev 576)
@@ -0,0 +1,23 @@
+Project leader:
+---------------
+- eGore
+
+Regular contributors:
+---------------------
+
+- eGore (source code, 3d models)
+- Spom (source code)
+- Ultrasick (graphics, website, 3d models)
+
+Other contributors:
+-------------------
+
+- AFK_ (source code)
+
+Special thanks to ...
+---------------------
+
+... Delwin for providing his super fast computer to do blender renderings for a dozen times!
+... LordOtter for his great webradio which I (Ultrasick) listened to for hours while I was working on Opengate! :-)
+... Ramiel (www.jagthesite.com) for providing nice base textures for the Lady Kickstart!
+... www.a1freesoundeffects.com for the sonar ping sound file we used in the open source splash screen!
\ No newline at end of file
Property changes on: trunk/data/misc/credits.txt
___________________________________________________________________
Name: svn:eol-style
   + native
Added: trunk/data/misc/ids.xml
===================================================================
(Binary files differ)
Property changes on: trunk/data/misc/ids.xml
___________________________________________________________________
Name: svn:mime-type
   + application/xml
Name: svn:eol-style
   + native
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <ult...@us...> - 2007-06-18 20:18:46
      
     | 
| Revision: 575
          http://svn.sourceforge.net/opengate/?rev=575&view=rev
Author:   ultrasick
Date:     2007-06-18 13:18:48 -0700 (Mon, 18 Jun 2007)
Log Message:
-----------
uploading credits text file (to be shown in the options screen)
+ moving jgdata.xml to misc directory
Added Paths:
-----------
    trunk/data/credits.txt
    trunk/data/misc/jgdata.xml
Removed Paths:
-------------
    trunk/data/jgdata.xml
Added: trunk/data/credits.txt
===================================================================
--- trunk/data/credits.txt	                        (rev 0)
+++ trunk/data/credits.txt	2007-06-18 20:18:48 UTC (rev 575)
@@ -0,0 +1,23 @@
+Project leader:
+---------------
+- eGore
+
+Regular contributors:
+---------------------
+
+- eGore (source code, 3d models)
+- Spom (source code)
+- Ultrasick (graphics, website, 3d models)
+
+Other contributors:
+-------------------
+
+- AFK_ (source code)
+
+Special thanks to ...
+---------------------
+
+... Delwin for providing his super fast computer to do blender renderings for a dozen times!
+... LordOtter for his great webradio which I (Ultrasick) listened to for hours while I was working on Opengate! :-)
+... Ramiel (www.jagthesite.com) for providing nice base textures for the Lady Kickstart!
+... www.a1freesoundeffects.com for the sonar ping sound file we used in the open source splash screen!
\ No newline at end of file
Property changes on: trunk/data/credits.txt
___________________________________________________________________
Name: svn:eol-style
   + native
Deleted: trunk/data/jgdata.xml
===================================================================
--- trunk/data/jgdata.xml	2007-06-18 20:04:25 UTC (rev 574)
+++ trunk/data/jgdata.xml	2007-06-18 20:18:48 UTC (rev 575)
@@ -1,1108 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<?RAVL  class="JGMapper::JGDataSetC" ?>
-<JGDataSet >
- <Space colour="236 73 76" name="Octavius" />
- <Space colour="243 199 245" name="Amananth" />
- <Space colour="237 185 122" name="Hyperial" />
- <Space colour="127 127 127" name="Unreg" />
- <Space colour="114 152 199" name="Solrain" />
- <Space colour="156 212 94" name="Quantar" />
- <Sector flux="7" space="Unreg" name="Light Gateway" mapcoord="327 379 " >
-  <Jumpgate name="Inner Gyre" position="0 0 0" />
-  <Jumpgate name="Outer Gyre" position="-19600 18500 24400" />
-  <Jumpgate name="Light Crossroads" position="-16900 3300 -200" />
-  <Beacon position="-10100 11500 14200" />
-  <Anomaly position="4600 14700 8700" />
-  <Distance to="Outer Gyre" from="Light Crossroads" distance="29044" />
-  <Distance to="Inner Gyre" from="Light Crossroads" distance="17294" />
-  <Distance to="Outer Gyre" from="Inner Gyre" distance="36458" />
- </Sector>
- <Sector flux="1" space="Quantar" name="Quanaus Crossing" mapcoord="489 414 " >
-  <Jumpgate name="Path of Hordes" position="13300 33400 -12500" />
-  <Jumpgate name="Quantar Core" position="0 0 0" />
-  <Beacon position="1100 12400 -3800" />
-  <Distance to="Quantar Core" from="Path of Hordes" distance="38081" />
- </Sector>
- <Sector flux="1" space="Quantar" name="Ring View" mapcoord="412 353 " >
-  <Jumpgate name="Connexion" position="35600 10700 -24200" />
-  <Jumpgate name="Gurge" position="48600 600 -21600" />
-  <Jumpgate name="Quantar Hook" position="9800 -16100 6500" />
-  <Jumpgate name="Ekoo's Stop" position="0 0 0" />
-  <Beacon position="21800 -14000 -16600" />
-  <Distance to="Connexion" from="Ekoo's Stop" distance="44412" />
-  <Distance to="Quantar Hook" from="Ekoo's Stop" distance="19944" />
-  <Distance to="Quantar Hook" from="Connexion" distance="48240" />
-  <Distance to="Connexion" from="Gurge" distance="16651" />
-  <Distance to="Ekoo's Stop" from="Gurge" distance="53186" />
-  <Distance to="Quantar Hook" from="Gurge" distance="50681" />
- </Sector>
- <Sector flux="1" space="Solrain" name="Morain Harbour" mapcoord="269 476 " >
-  <Jumpgate name="Tranquillus Major" position="25400 11600 1600" />
-  <Jumpgate name="Fields" position="0 0 0" />
-  <Jumpgate name="Purian Lake" position="12900 5600 -17000" />
-  <Jumpgate name="Bronci Rift" position="13200 16800 900" />
-  <Beacon position="12500 7700 -7500" />
-  <Distance to="Bronci Rift" from="Purian Lake" distance="21037" />
-  <Distance to="Purian Lake" from="Tranquillus Major" distance="23150" />
-  <Distance to="Bronci Rift" from="Tranquillus Major" distance="13315" />
-  <Distance to="Purian Lake" from="Fields" distance="22036" />
-  <Distance to="Bronci Rift" from="Fields" distance="21333" />
-  <Distance to="Tranquillus Major" from="Fields" distance="27954" />
- </Sector>
- <Sector flux="6" space="Amananth" name="Last Point" mapcoord="409 307 " >
-  <Jumpgate name="Dark" position="0 0 0" />
-  <Jumpgate name="Inner Aman" position="18700 -1400 13700" />
-  <Beacon position="400 -5300 1100" />
-  <Building type="Subspace Transceiver" position="-10300 -800 7700" />
-  <Distance to="Dark" from="Inner Aman" distance="23181" />
- </Sector>
- <Sector flux="1" space="Amananth" name="Inner Aman" mapcoord="525 100 " >
-  <Jumpgate name="Amananth" position="0 0 0" />
-  <Jumpgate name="Last Point" position="7800 -4800 49000" />
-  <Beacon position="12900 2500 -19500" />
-  <Distance to="Last Point" from="Amananth" distance="49881" />
- </Sector>
- <Sector flux="1" space="Unreg" name="Connexion" mapcoord="304 327 " >
-  <Jumpgate name="Dark Crossroads" position="-3100 -19100 14900" />
-  <Jumpgate name="Stith" position="21200 -8900 15600" />
-  <Jumpgate name="Ring View" position="-1100 -12400 39400" />
-  <Jumpgate name="Light Crossroads" position="0 0 0" />
-  <Beacon position="9300 -11100 14600" />
-  <Distance to="Stith" from="Ring View" distance="32795" />
-  <Distance to="Light Crossroads" from="Ring View" distance="41294" />
-  <Distance to="Dark Crossroads" from="Ring View" distance="25529" />
-  <Distance to="Light Crossroads" from="Dark Crossroads" distance="24462" />
-  <Distance to="Stith" from="Dark Crossroads" distance="26413" />
-  <Distance to="Stith" from="Light Crossroads" distance="27809" />
- </Sector>
- <Sector flux="5" space="Unreg" name="Far Point" mapcoord="194 378 " >
-  <Jumpgate name="Dark Gateway" position="15700 -20200 12400" />
-  <Jumpgate name="Lothar's Landing" position="0 0 0" />
-  <Jumpgate name="Light Crossroads" position="-13100 1400 45200" />
-  <Beacon position="3800 -14800 15900" />
-  <Distance to="Dark Gateway" from="Light Crossroads" distance="48663" />
-  <Distance to="Lothar's Landing" from="Light Crossroads" distance="47002" />
-  <Distance to="Lothar's Landing" from="Dark Gateway" distance="28426" />
- </Sector>
- <Sector flux="1" space="Solrain" name="Tranquillus Minor" mapcoord="104 561 " >
-  <Jumpgate name="Solrain Depot" position="6900 -20100 -21700" />
-  <Jumpgate name="Inner Oasis" position="29200 -12600 -21000" />
-  <Jumpgate name="Fields" position="19500 2700 8300" />
-  <Jumpgate name="Narrow Canal" position="0 0 0" />
-  <Beacon position="9400 2100 4300" />
-  <Distance to="Narrow Canal" from="Fields" distance="21384" />
-  <Distance to="Inner Oasis" from="Fields" distance="34475" />
-  <Distance to="Narrow Canal" from="Inner Oasis" distance="38129" />
-  <Distance to="Fields" from="Solrain Depot" distance="39701" />
-  <Distance to="Inner Oasis" from="Solrain Depot" distance="23472" />
-  <Distance to="Narrow Canal" from="Solrain Depot" distance="30349" />
- </Sector>
- <Sector flux="6" space="Solrain" name="Cerulean Clouds" mapcoord="214 721 " >
-  <Jumpgate name="Hirbel's Channel" position="0 0 0" />
-  <Jumpgate name="Azure Churn" position="-19400 12200 -5500" />
-  <Jumpgate name="Tribular Canal" position="-1100 32400 -12200" />
-  <Anomaly position="-8400 4200 -15700" />
-  <Beacon position="-9000 11100 -10100" />
-  <Distance to="Tribular Canal" from="Azure Churn" distance="28033" />
-  <Distance to="Tribular Canal" from="Hirbel's Channel" distance="34611" />
-  <Distance to="Azure Churn" from="Hirbel's Channel" distance="23549" />
- </Sector>
- <Sector flux="5" space="Solrain" name="Hirbel's Channel" mapcoord="250 573 " >
-  <Jumpgate name="Cerulean Clouds" position="0 0 0" />
-  <Jumpgate name="Wake" position="14000 -1800 -7800" />
-  <Beacon position="2200 -8800 -1300" />
-  <Distance to="Wake" from="Cerulean Clouds" distance="16104" />
- </Sector>
- <Sector flux="1" space="Quantar" name="Omni IV" mapcoord="441 376 " >
-  <Jumpgate name="Path of Hordes" position="-14200 -18600 -6400" />
-  <Jumpgate name="Quantar Core" position="0 0 0" />
-  <Beacon position="-6100 -10700 -2000" />
-  <Distance to="Path of Hordes" from="Quantar Core" distance="24283" />
- </Sector>
- <Sector flux="1" space="Octavius" name="Gurge" mapcoord="338 254 " >
-  <Jumpgate name="Dark Crossroads" position="0 0 0" />
-  <Jumpgate name="Evenings End" position="-15800 -6900 -24900" />
-  <Jumpgate name="Octavian Shore" position="0100 -24900 -54700" />
-  <Jumpgate name="Ring View" position="52100 -12500 -27400" />
-  <Beacon position="17400 -1700 -32400" />
-  <Distance to="Ring View" from="Dark Crossroads" distance="60144" />
-  <Distance to="Octavian Shore" from="Dark Crossroads" distance="60097" />
-  <Distance to="Ring View" from="Octavian Shore" distance="60011" />
-  <Distance to="Evenings End" from="Ring View" distance="68137" />
-  <Distance to="Evenings End" from="Octavian Shore" distance="38293" />
-  <Distance to="Evenings End" from="Dark Crossroads" distance="30257" />
- </Sector>
- <Sector flux="7" space="Quantar" name="Quantar Gate" mapcoord="385 412 " >
-  <Jumpgate name="Greater Arm" position="-21800 8800 -900" />
-  <Jumpgate name="Inner Storm" position="0 0 0" />
-  <Jumpgate name="Ekoo's Stop" position="-31200 19200 21900" />
-  <Beacon position="-11200 4500 -2300" />
-  <Building type="Ore Depot" position="-12800 8900 1500" />
-  <Building type="Rearm Arsenal" position="-3800 18300 12300" />
-  <Building type="Refueling Stop" position="-24300 22000 21300" />
-  <Distance to="Ekoo's Stop" from="Greater Arm" distance="26674" />
-  <Distance to="Inner Storm" from="Greater Arm" distance="23566" />
-  <Distance to="Ekoo's Stop" from="Inner Storm" distance="42646" />
- </Sector>
- <Sector flux="1" space="Solrain" name="Outer Lighthouse" mapcoord="268 421 " >
-  <Jumpgate name="Greater Locks" position="26900 16800 22300" />
-  <Jumpgate name="Purian Lake" position="0 0 0" />
-  <Beacon position="12300 5900 10500" />
-  <Distance to="Greater Locks" from="Purian Lake" distance="38747" />
- </Sector>
- <Sector flux="6" space="Octavius" name="Orrus Minor" mapcoord="138 50 " >
-  <Jumpgate name="Orrus Major" position="0 0 0" />
-  <Jumpgate name="Vorgus 2" position="-4900 -2600 24700" />
-  <Beacon position="-4600 -1400 14300" />
-  <Distance to="Orrus Major" from="Vorgus 2" distance="25265" />
- </Sector>
- <Sector flux="7" space="Hyperial" name="Inner Cloud" mapcoord="373 568 " >
-  <Jumpgate name="Main Gate" position="31500 -2200 13800" />
-  <Jumpgate name="T&P" position="0 0 0" />
-  <Beacon position="4300 -2200 18800" />
-  <Distance to="Main Gate" from="T&P" distance="34471" />
- </Sector>
- <Sector flux="7" space="Quantar" name="Inner Third" mapcoord="538 640 " >
-  <Jumpgate name="Orus' Tail" position="3400 14800 -17200" />
-  <Jumpgate name="Outer Third" position="0 0 0" />
-  <Beacon position="900 7000 -2900" />
-  <Distance to="Outer Third" from="Orus' Tail" distance="22913" />
- </Sector>
- <Sector flux="0" space="Octavius" name="Octavius Depot" mapcoord="202 176 " >
-  <Station name="Octavius Depot" position="1300 -5600 -13000" />
-  <Jumpgate name="Vorgus 2" position="0 0 0" />
-  <Building type="Science Factory" item="Centerfuge Mk. V" position="4600 -4700 -19400" />
-  <Building type="Custom Producer" item="Centerfuge Mk. V" position="-3700 -1700 -25600" />
-  <Distance to="Vorgus 2" from="Octavius Depot" distance="14226" />
- </Sector>
- <Sector flux="1" space="Quantar" name="Great Venure Belt" mapcoord="347 517 " >
-  <Jumpgate name="Klatsches Hold" position="7700 15800 -12100" />
-  <Jumpgate name="Main Gate" position="28500 7800 6500" />
-  <Jumpgate name="Hyperion Gate" position="-9400 12000 7000" />
-  <Jumpgate name="Zealots Refuge" position="0 0 0" />
-  <Beacon position="12000 12000 -9800" />
-  <Building type="Ore Depot" position="17300 8300 -14700" />
-  <Building type="Nano Assembler" item="Chromium" position="8600 3300 -24100" />
-  <Building type="Nano Assembler" item="Antimony" position="28600 -6800 -28000" />
-  <Distance to="Main Gate" from="Hyperion Gate" distance="38078" />
-  <Distance to="Hyperion Gate" from="Zealots Refuge" distance="16761" />
-  <Distance to="Main Gate" from="Zealots Refuge" distance="30208" />
-  <Distance to="Zealots Refuge" from="Klatsches Hold" distance="21347" />
-  <Distance to="Hyperion Gate" from="Klatsches Hold" distance="25958" />
-  <Distance to="Main Gate" from="Klatsches Hold" distance="28941" />
- </Sector>
- <Sector flux="5" space="Solrain" name="Greater Locks" mapcoord="239 387 " >
-  <Jumpgate name="Outer Lighthouse" position="0 0 0" />
-  <Jumpgate name="Dark Gateway" position="-1800 -11900 -13400" />
-  <Jumpgate name="Inner Lighthouse" position="2500 700 10500" />
-  <Beacon position="-400 -2300 -9800" />
-  <Distance to="Dark Gateway" from="Inner Lighthouse" distance="27362" />
-  <Distance to="Inner Lighthouse" from="Outer Lighthouse" distance="10799" />
-  <Distance to="Dark Gateway" from="Outer Lighthouse" distance="18040" />
- </Sector>
- <Sector flux="7" space="Unreg" name="Outer Gyre" mapcoord="344 348 " >
-  <Jumpgate name="Light Gateway" position="0 0 0" />
-  <Jumpgate name="Greater Arm" position="7300 6600 5600" />
-  <Jumpgate name="Pulsar" position="6400 17300 13600" />
-  <Jumpgate name="Aman Gate" position="-8800 13600 22500" />
-  <Beacon position="-2100 11200 3600" />
-  <Distance to="Greater Arm" from="Aman Gate" distance="24278" />
-  <Distance to="Light Gateway" from="Aman Gate" distance="27758" />
-  <Distance to="Pulsar" from="Aman Gate" distance="18045" />
-  <Distance to="Light Gateway" from="Pulsar" distance="22868" />
-  <Distance to="Greater Arm" from="Pulsar" distance="13323" />
-  <Distance to="Greater Arm" from="Light Gateway" distance="11218" />
- </Sector>
- <Sector flux="10" space="Unreg" name="Lesser Arm" mapcoord="274 383 " >
-  <Jumpgate name="Light Crossroads" position="0 0 0" />
- </Sector>
- <Sector flux="1" space="Octavius" name="Arkan's Cloud" mapcoord="182 256 " >
-  <Jumpgate name="Rim" position="11700 4100 -1100" />
-  <Jumpgate name="Outer Edge" position="0 0 0" />
-  <Jumpgate name="Outpost" position="15000 -18400 14300" />
-  <Jumpgate name="Primus Point" position="30900 -26300 15300" />
-  <Beacon position="23200 -15300 7600" />
-  <Distance to="Rim" from="Outer Edge" distance="12409" />
-  <Distance to="Primus Point" from="Outer Edge" distance="43363" />
-  <Distance to="Outpost" from="Outer Edge" distance="27659" />
-  <Distance to="Rim" from="Outpost" distance="27378" />
-  <Distance to="Primus Point" from="Outpost" distance="17803" />
-  <Distance to="Primus Point" from="Rim" distance="39504" />
- </Sector>
- <Sector flux="1" space="Quantar" name="Hook of Roh" mapcoord="520 475 " >
-  <Jumpgate name="Dark Path" position="0 0 0" />
-  <Jumpgate name="Quantar Depot" position="3000 -19800 8500" />
-  <Jumpgate name="Square of Quantos" position="-22300 -16900 23200" />
-  <Beacon position="-11500 -10800 9700" />
-  <Distance to="Dark Path" from="Square of Quantos" distance="36395" />
-  <Distance to="Quantar Depot" from="Dark Path" distance="21727" />
-  <Distance to="Quantar Depot" from="Square of Quantos" distance="29478" />
- </Sector>
- <Sector flux="1" space="Quantar" name="Orus' Tail" mapcoord="483 598 " >
-  <Jumpgate name="Upper Third" position="13200 -15600 28800" />
-  <Jumpgate name="Corridor" position="-8600 -33200 13100" />
-  <Jumpgate name="Inner Third" position="0 0 0" />
-  <Beacon position="5100 -21500 16600" />
-  <Distance to="Inner Third" from="Corridor" distance="36759" />
-  <Distance to="Upper Third" from="Corridor" distance="32116" />
-  <Distance to="Inner Third" from="Upper Third" distance="35338" />
- </Sector>
- <Sector flux="1" space="Amananth" name="Aman Gate" mapcoord="331 318 " >
-  <Jumpgate name="Dark" position="-1400 -2400 -12000" />
-  <Jumpgate name="Outer Gyre" position="-14400 -2800 -23600" />
-  <Jumpgate name="Inner Gyre" position="0 0 0" />
-  <Beacon position="9300 -500 -4600" />
-  <Distance to="Inner Gyre" from="Dark" distance="12331" />
-  <Distance to="Outer Gyre" from="Dark" distance="17406" />
-  <Distance to="Inner Gyre" from="Outer Gyre" distance="27790" />
- </Sector>
- <Sector flux="7" space="Octavius" name="Sark's Passage" mapcoord="198 302 " >
-  <Jumpgate name="Edge" position="0 0 0" />
-  <Jumpgate name="Primus Point" position="-2000 -41000 14800" />
-  <Beacon position="-800 -14900 3200" />
-  <Distance to="Primus Point" from="Edge" distance="43625" />
- </Sector>
- <Sector flux="1" space="Solrain" name="Narrow Canal" mapcoord="255 652 " >
-  <Jumpgate name="Lesser Locks" position="0 0 0" />
-  <Jumpgate name="Tranquillus Minor" position="-32900 -900 1100" />
-  <Jumpgate name="Solrain Core" position="-34600 34300 -20800" />
-  <Beacon position="-21700 4800 -7500" />
-  <Distance to="Tranquillus Minor" from="Lesser Locks" distance="32899" />
-  <Distance to="Solrain Core" from="Lesser Locks" distance="52949" />
-  <Distance to="Tranquillus Minor" from="Solrain Core" distance="41500" />
- </Sector>
- <Sector flux="12" space="Quantar" name="Outer Third" mapcoord="556 675 " >
-  <Jumpgate name="Inner Third" position="0 0 0" />
-  <Beacon position="1400 11800 3200" />
-  <Anomaly position="10400 14300 10300" />
- </Sector>
- <Sector flux="7" space="Solrain" name="Bronci Rift" mapcoord="224 556 " >
-  <Jumpgate name="Tranquillus Major" position="7300 -10100 14500" />
-  <Jumpgate name="Morain Harbour" position="21300 -11900 6700" />
-  <Jumpgate name="Zealots Refuge" position="0 0 0" />
-  <Beacon position="21200 -21900 10700" />
-  <Anomaly position="8200 -7300 4300" />
-  <Distance to="Morain Harbour" from="Tranquillus Major" distance="16105" />
-  <Distance to="Zealots Refuge" from="Tranquillus Major" distance="19127" />
-  <Distance to="Zealots Refuge" from="Morain Harbour" distance="25292" />
- </Sector>
- <Sector flux="9" space="Unreg" name="Outer Storm" mapcoord="389 454 " >
-  <Jumpgate name="Inner Storm" position="0 0 0" />
- </Sector>
- <Sector flux="1" space="Hyperial" name="Outer Cloud" mapcoord="432 628 " >
-  <Jumpgate name="Reaches" position="27100 12200 14600" />
-  <Jumpgate name="Rear Gate" position="0 0 0" />
-  <Beacon position="13700 4700 6600" />
-  <Distance to="Rear Gate" from="Reaches" distance="33135" />
- </Sector>
- <Sector flux="1" space="Quantar" name="Inner Roh-Cloud" mapcoord="480 465 " >
-  <Jumpgate name="Quantar Core" position="12800 15300 1300" />
-  <Jumpgate name="Square of Quantos" position="-25800 27300 -15800" />
-  <Jumpgate name="Outer Roh-Cloud" position="0 0 0" />
-  <Beacon position="-15100 17800 -9700" />
-  <Distance to="Outer Roh-Cloud" from="Quantar Core" distance="19962" />
-  <Distance to="Square of Quantos" from="Quantar Core" distance="43808" />
-  <Distance to="Square of Quantos" from="Outer Roh-Cloud" distance="40727" />
- </Sector>
- <Sector flux="1" space="Quantar" name="Quadrangle" mapcoord="488 291 " >
-  <Jumpgate name="Path of Hordes" position="0 0 0" />
-  <Jumpgate name="Long Walk" position="22300 -5800 14500" />
-  <Jumpgate name="Tictac's Hook" position="-800 7200 21700" />
-  <Beacon position="14000 -2800 4400" />
-  <Anomaly position="20200 18900 56600" />
-  <Distance to="Tictac's Hook" from="Long Walk" distance="27211" />
-  <Distance to="Path of Hordes" from="Long Walk" distance="27211" />
-  <Distance to="Path of Hordes" from="Tictac's Hook" distance="22837" />
- </Sector>
- <Sector flux="6" space="Unreg" name="Inner Storm" mapcoord="363 446 " >
-  <Jumpgate name="Quantar Gate" />
-  <Jumpgate name="Outer Storm" />
-  <Jumpgate name="Four Fingers" />
-  <Distance to="Outer Storm" from="Quantar Gate" distance="14471" />
-  <Distance to="Four Fingers" from="Quantar Gate" distance="10358" />
-  <Distance to="Outer Storm" from="Four Fingers" distance="21013" />
- </Sector>
- <Sector flux="7" space="Quantar" name="Orus' Leg" mapcoord="533 575 " >
-  <Jumpgate name="Upper Third" position="0 0 0" />
-  <Jumpgate name="Dark End" position="17900 29100 -24800" />
-  <Beacon position="7900 21200 -15800" />
-  <Distance to="Dark End" from="Upper Third" distance="42179" />
- </Sector>
- <Sector flux="7" space="Octavius" name="Outer Edge" mapcoord="72 289 " >
-  <Jumpgate name="Arkan's Cloud" position="-4800 -11000 18100" />
-  <Jumpgate name="Outer Rim" position="-25700 -4700 2900" />
-  <Jumpgate name="Mokk's Battlefield" position="0 0 0" />
-  <Beacon position="-14400 -8000 11200" />
-  <Distance to="Arkan's Cloud" from="Outer Rim" distance="26618" />
-  <Distance to="Mokk's Battlefield" from="Outer Rim" distance="26309" />
-  <Distance to="Arkan's Cloud" from="Mokk's Battlefield" distance="21702" />
- </Sector>
- <Sector flux="7" space="Unreg" name="Light Crossroads" mapcoord="297 355 " >
-  <Jumpgate name="Light Gateway" position="24300 24700 -19200" />
-  <Jumpgate name="Far Point" position="0 0 0" />
-  <Jumpgate name="Connexion" position="11300 14600 -10300" />
-  <Jumpgate name="Lesser Arm" position="32400 -9200 -32700" />
-  <Beacon position="30200 2000 -29200" />
-  <Distance to="Light Gateway" from="Connexion" distance="18748" />
-  <Distance to="Far Point" from="Connexion" distance="21089" />
-  <Distance to="Lesser Arm" from="Connexion" distance="38966" />
-  <Distance to="Far Point" from="Lesser Arm" distance="47005" />
-  <Distance to="Light Gateway" from="Lesser Arm" distance="37317" />
-  <Distance to="Far Point" from="Light Gateway" distance="39590" />
- </Sector>
- <Sector flux="1" space="Solrain" name="Azure Churn" mapcoord="163 638 " >
-  <Jumpgate name="Cerulean Clouds" position="-15500 -1000 -11200" />
-  <Jumpgate name="Cornea" position="0 0 0" />
-  <Beacon position="6100 600 -5300" />
-  <Distance to="Cerulean Clouds" from="Cornea" distance="19120" />
- </Sector>
- <Sector flux="10" space="Unreg" name="Dark Crossroads" mapcoord="319 298 " >
-  <Jumpgate name="Connexion" />
-  <Jumpgate name="Gurge" />
-  <Distance to="Connexion" from="Gurge" distance="16470" />
- </Sector>
- <Sector flux="1" space="Amananth" name="Sea of Shadows" mapcoord="376 279 " >
-  <Jumpgate name="Split" position="0 0 0" />
-  <Jumpgate name="Last Parsec" position="6500 -1000 -12900" />
-  <Beacon position="3200 -9100 -6600" />
-  <Distance to="Split" from="Last Parsec" distance="14453" />
- </Sector>
- <Sector flux="1" space="Octavius" name="Imperial Crossroads" mapcoord="83 118 " >
-  <Jumpgate name="Dark Fork" position="-25100 -2400 -20800" />
-  <Jumpgate name="Great Pillars" position="0 0 0" />
-  <Beacon position="-15000 -900 -9100" />
-  <Distance to="Great Pillars" from="Dark Fork" distance="32660" />
- </Sector>
- <Sector flux="1" space="Solrain" name="Lesser Locks" mapcoord="343 631 " >
-  <Jumpgate name="Main Gate" position="-44500 34300 -27500" />
-  <Jumpgate name="Narrow Canal" position="0 0 0" />
-  <Anomaly position="-5800 15700 -28100" />
-  <Beacon position="-14000 11100 -12900" />
-  <Distance to="Narrow Canal" from="Main Gate" distance="62555" />
- </Sector>
- <Sector flux="7" space="Solrain" name="Inner Lighthouse" mapcoord="217 341 " >
-  <Jumpgate name="Greater Locks" position="5000 7800 13600" />
-  <Jumpgate name="Wanderer's Pond" position="0 0 0" />
-  <Beacon position="-6900 4500 10000" />
-  <Distance to="Greater Locks" from="Wanderer's Pond" distance="16498" />
- </Sector>
- <Sector flux="1" space="Quantar" name="Quantar Hook" mapcoord="439 333 " >
-  <Jumpgate name="Third Gate" position="6300 12500 18000" />
-  <Jumpgate name="Ring View" position="0 0 0" />
-  <Beacon position="2200 5700 9300" />
-  <Distance to="Third Gate" from="Ring View" distance="22844" />
- </Sector>
- <Sector flux="11" space="Amananth" name="Canis 9502" mapcoord="333 50 " >
-  <Jumpgate name="Aman Hook" position="0 0 0" />
- </Sector>
- <Sector flux="7" space="Octavius" name="Edge" mapcoord="150 318 " >
-  <Jumpgate name="Sark's Passage" position="0 0 0" />
-  <Jumpgate name="Divide" position="5300 -26200 19700" />
-  <Beacon position="3500 -15600 10900" />
-  <Distance to="Divide" from="Sark's Passage" distance="32639" />
- </Sector>
- <Sector flux="0" space="Solrain" name="Solrain Core" mapcoord="178 573 " >
-  <Station name="Solrain Core" position="17300 -2300 16200" />
-  <Jumpgate name="Sea of Solrain" position="19200 8500 28300" />
-  <Jumpgate name="Narrow Canal" position="0 0 0" />
-  <Jumpgate name="Wanderer's Pond" position="26600 -8800 6100" />
-  <Building type="Subspace Transceiver" position="34200 500 11100" />
-  <Building type="Naval Yard" position="38100 600 14400" />
-  <Building type="Custom Producer" item="Construction Materials" position="42900 1700 11100" />
-  <Building type="Naval Yard" position="41400 900 5500" />
-  <Building type="Naval Yard" position="36400 400 6000" />
-  <Building type="Naval Yard" position="28800 -400 32500" />
-  <Building type="Naval Yard" position="-3800 1800 45800" />
-  <Building type="Custom Producer" item="Echo" position="39600 2100 45900" />
-  <Distance to="Solrain Core" from="Narrow Canal" distance="23532" />
-  <Distance to="Sea of Solrain" from="Narrow Canal" distance="35265" />
-  <Distance to="Wanderer's Pond" from="Narrow Canal" distance="28633" />
-  <Distance to="Sea of Solrain" from="Solrain Core" distance="15641" />
-  <Distance to="Wanderer's Pond" from="Solrain Core" distance="15655" />
-  <Distance to="Sea of Solrain" from="Wanderer's Pond" distance="29125" />
- </Sector>
- <Sector flux="1" space="Unreg" name="Stith" mapcoord="280 295 " >
-  <Jumpgate name="Diluted Reaches" position="0 0 0" />
-  <Jumpgate name="Connexion" position="9900 -21300 31300" />
-  <Jumpgate name="Last Parsec" position="15200 -6900 -8600" />
-  <Beacon position="12800 -12700 7900" />
-  <Distance to="Diluted Reaches" from="Connexion" distance="39111" />
-  <Distance to="Last Parsec" from="Connexion" distance="42759" />
-  <Distance to="Diluted Reaches" from="Last Parsec" distance="18781" />
- </Sector>
- <Sector flux="1" space="Quantar" name="Tictac's Hook" mapcoord="542 258 " >
-  <Jumpgate name="Callow Passage" position="14200 12900 1800" />
-  <Jumpgate name="Long Walk" position="13800 -20100 -16300" />
-  <Jumpgate name="TriPoint" position="-1200 -14700 -18300" />
-  <Jumpgate name="Quadrangle" position="0 0 0"/>
-  <Beacon position="-3300 -11300 -8600" />
-  <Distance to="TriPoint" from="Quadrangle" distance="23447" />
-  <Distance to="Long Walk" from="TriPoint" distance="16070" />
-  <Distance to="Quadrangle" from="Long Walk" distance="29321" />
-  <Distance to="Quadrangle" from="Callow Passage" distance="19262" />
-  <Distance to="TriPoint" from="Callow Passage" distance="37449" />
-  <Distance to="Long Walk" from="Callow Passage" distance="37695" />
- </Sector>
- <Sector flux="6" space="Octavius" name="Orrus Major" mapcoord="104 76 " >
-  <Jumpgate name="Octavius Core" position="0 0 0" />
-  <Jumpgate name="Orrus Minor" position="20700 2600 16900" />
-  <Beacon position="6200 2900 13000" />
-  <Distance to="Octavius Core" from="Orrus Minor" distance="26840" />
- </Sector>
- <Sector flux="1" space="Solrain" name="Purian Lake" mapcoord="254 455 " >
-  <Jumpgate name="Outer Lighthouse" position="13800 9400 -2300" />
-  <Jumpgate name="Wake" position="10600 16800 16600" />
-  <Jumpgate name="Morain Harbour" position="0 0 0" />
-  <Beacon position="19300 4100 6600" />
-  <Distance to="Wake" from="Outer Lighthouse" distance="20604" />
-  <Distance to="Outer Lighthouse" from="Morain Harbour" distance="16838" />
-  <Distance to="Wake" from="Morain Harbour" distance="25888" />
- </Sector>
- <Sector flux="1" space="Quantar" name="Third Gate" mapcoord="503 395 " >
-  <Jumpgate name="Long Walk" position="0 0 0" />
-  <Jumpgate name="Quantar Hook" position="-20000 10400 -3400" />
-  <Beacon position="-11900 7000 -800" />
-  <Distance to="Long Walk" from="Quantar Hook" distance="22736" />
- </Sector>
- <Sector flux="1" space="Hyperial" name="T&P" mapcoord="493 641 " >
-  <Jumpgate name="Inner Cloud" position="-27100 -12200 -14600" />
-  <Jumpgate name="Far Gate" position="0 0 0" />
-  <Beacon position="-13400 -7500 -8000" />
-  <Distance to="Inner Cloud" from="Far Gate" distance="33135" />
- </Sector>
- <Sector flux="11" space="Octavius" name="Mokk's Battlefield" mapcoord="100 318 " >
-  <Jumpgate name="Outer Edge" position="0 0 0" />
- </Sector>
- <Sector flux="1" space="Hyperial" name="Main Gate" mapcoord="405 551 " >
-  <Jumpgate name="Lesser Locks" position="39100 0 -25700" />
-  <Jumpgate name="Great Venure Belt" position="66100 0 -26800" />
-  <Jumpgate name="Inner Cloud" position="0 0 0" />
-  <Jumpgate name="Reaches" position="40200 0 -43700" />
-  <Beacon position="30000 200 -32600" />
-  <Distance to="Reaches" from="Great Venure Belt" distance="30969" />
-  <Distance to="Lesser Locks" from="Reaches" distance="18055" />
-  <Distance to="Great Venure Belt" from="Lesser Locks" distance="27098" />
-  <Distance to="Inner Cloud" from="Lesser Locks" distance="46731" />
-  <Distance to="Inner Cloud" from="Great Venure Belt" distance="71350" />
-  <Distance to="Reaches" from="Inner Cloud" distance="59344" />
- </Sector>
- <Sector flux="7" space="Unreg" name="Greater Arm" mapcoord="368 364 " >
-  <Jumpgate name="Quantar Gate" position="-20300 -7600 -8700" />
-  <Jumpgate name="Outer Gyre" position="-21600 4800 100" />
-  <Jumpgate name="Saron's Eye" position="0 0 0" />
-  <Beacon position="-11600 800 -1100" />
-  <Distance to="Saron's Eye" from="Outer Gyre" distance="22103" />
-  <Distance to="Quantar Gate" from="Outer Gyre" distance="15217" />
-  <Distance to="Saron's Eye" from="Quantar Gate" distance="23424" />
- </Sector>
- <Sector flux="1" space="Solrain" name="Wanderer's Pond" mapcoord="213 527 " >
-  <Jumpgate name="Inner Lighthouse" position="-20300 -7700 -15600" />
-  <Jumpgate name="Solrain Core" position="0 0 0" />
-  <Beacon position="-14400 -2300 -9800" />
-  <Distance to="Solrain Core" from="Inner Lighthouse" distance="26474" />
- </Sector>
- <Sector flux="6" space="Amananth" name="Dark" mapcoord="364 321 " >
-  <Jumpgate name="Last Point" position="0 0 0" />
-  <Jumpgate name="Aman Gate" position="21800 0 9900" />
-  <Beacon position="11700 200 8800" />
-  <Distance to="Aman Gate" from="Last Point" distance="23933" />
- </Sector>
- <Sector flux="1" space="Solrain" name="Inner Oasis" mapcoord="136 565 " >
-  <Jumpgate name="Midpoint Rift" position="0 0 0" />
-  <Jumpgate name="Tranquillus Minor" position="-8300 12200 14200" />
-  <Beacon position="2100 1100 11900" />
-  <Distance to="Midpoint Rift" from="Tranquillus Minor" distance="20483" />
- </Sector>
- <Sector flux="1" space="Octavius" name="Rim" mapcoord="109 232 " >
-  <Jumpgate name="Divide" position="23400 -15100 17300" />
-  <Jumpgate name="Arkan's Cloud" position="0 0 0" />
-  <Jumpgate name="Outer Rim" position="14300 8300 12900" />
-  <Beacon position="11800 -2900 5400" />
-  <Distance to="Outer Rim" from="Divide" distance="25515" />
-  <Distance to="Arkan's Cloud" from="Divide" distance="32811" />
-  <Distance to="Outer Rim" from="Arkan's Cloud" distance="20960" />
- </Sector>
- <Sector flux="1" space="Solrain" name="Tranquillus Major" mapcoord="181 520 " >
-  <Jumpgate name="Morain Harbour" position="9300 1300 -15100" />
-  <Jumpgate name="Bronci Rift" position="0 0 0" />
-  <Anomaly position="14100 7900 -2200" />
-  <Beacon position="-2500 5200 -10600" />
-  <Distance to="Bronci Rift" from="Morain Harbour" distance="17843" />
- </Sector>
- <Sector flux="1" space="Octavius" name="Imperial Causeway" mapcoord="216 61 " >
-  <Jumpgate name="Verselus' Hook" position="32800 -2600 6000" />
-  <Jumpgate name="Octavius Core" position="0 0 0" />
-  <Beacon position="18600 -1400 3300" />
-  <Anomaly position="22100 8800 -14500" />
-  <Distance to="Octavius Core" from="Verselus' Hook" distance="33474" />
- </Sector>
- <Sector flux="1" space="Quantar" name="Ekoo's Stop" mapcoord="406 403 " >
-  <Jumpgate name="Quantar Gate" position="0 0 0" />
-  <Jumpgate name="Rounds of Quantos" position="-35000 5400 -11200" />
-  <Jumpgate name="Ring View" position="-18600 6700 -2000" />
-  <Jumpgate name="Omni V" position="-29100 23400 15000" />
-  <Beacon position="-20100 19100 5600" />
-  <Distance to="Quantar Gate" from="Omni V" distance="40251" />
-  <Distance to="Ring View" from="Omni V" distance="26007" />
-  <Distance to="Rounds of Quantos" from="Omni V" distance="32317" />
-  <Distance to="Rounds of Quantos" from="Ring View" distance="18903" />
-  <Distance to="Quantar Gate" from="Ring View" distance="19870" />
-  <Distance to="Rounds of Quantos" from="Quantar Gate" distance="37181" />
- </Sector>
- <Sector flux="7" space="Hyperial" name="Hyperian Hook" mapcoord="442 720 " >
-  <Jumpgate name="Far Gate" position="0 0 0" />
-  <Jumpgate name="Rear Gate" position="31500 -16100 -20400" />
-  <Beacon position="13700 -9800 -12200" />
-  <Anomaly position="4700 -18100 -3200" />
-  <Distance to="Far Gate" from="Rear Gate" distance="40859" />
- </Sector>
- <Sector flux="1" space="Solrain" name="Sea of Solrain" mapcoord="220 591 " >
-  <Jumpgate name="Fields" position="0 0 0" />
-  <Jumpgate name="Solrain Core" position="14000 -1800 -7800" />
-  <Beacon position="13900 -11800 -3800" />
-  <Distance to="Fields" from="Solrain Core" distance="16105" />
- </Sector>
- <Sector flux="1" space="Hyperial" name="Rear Gate" mapcoord="444 672 " >
-  <Jumpgate name="Outer Cloud" position="-30100 6000 -19400" />
-  <Jumpgate name="Hyperial" position="-46700 -12900 -7400" />
-  <Jumpgate name="Hyperian Hook" position="0 0 0" />
-  <Beacon position="-21200 -6600 -24500" />
-  <Distance to="Hyperian Hook" from="Outer Cloud" distance="36247" />
-  <Distance to="Hyperial" from="Outer Cloud" distance="27840" />
-  <Distance to="Hyperian Hook" from="Hyperial" distance="48989" />
- </Sector>
- <Sector flux="1" space="Octavius" name="Primus Point" mapcoord="241 284 " >
-  <Jumpgate name="Sark's Passage" position="0 0 0" />
-  <Jumpgate name="Dark Gateway" position="-4600 -29700 -9400" />
-  <Jumpgate name="Arkan's Cloud" position="-19900 -10400 -800" />
-  <Beacon position="-9400 -14700 -4900" />
-  <Building type="Repair Station" position="-9400 -14000 -6000" />
-  <Distance to="Sark's Passage" from="Arkan's Cloud" distance="22464" />
-  <Distance to="Arkan's Cloud" from="Dark Gateway" distance="25986" />
-  <Distance to="Sark's Passage" from="Dark Gateway" distance="31484" />
- </Sector>
- <Sector flux="1" space="Hyperial" name="Far Gate" mapcoord="500 708 " >
-  <Jumpgate name="Hyperial" position="-48600 37100 -29400" />
-  <Jumpgate name="T&P" position="-17700 7500 33300" />
-  <Jumpgate name="Hyperian Hook" position="0 0 0" />
-  <Beacon position="-29200 25800 21600" />
-  <Anomaly position="-51100 29600 11300" />
-  <Building type="Subspace Transciever" position="3200 17700 30900" />
-  <Distance to="T&P" from="Hyperian Hook" distance="38382" />
-  <Distance to="Hyperial" from="Hyperian Hook" distance="67813" />
-  <Distance to="T&P" from="Hyperial" distance="75851" />
- </Sector>
- <Sector flux="1" space="Amananth" name="Gyre" mapcoord="441 190 " >
-  <Jumpgate name="Amananth" position="11200 0 19500" />
-  <Jumpgate name="Aman Hook" position="22500 0 0" />
-  <Jumpgate name="Split" position="0 0 0" />
-  <Beacon position="11200 0 6600" />
-  <Building type="Subspace Transceiver" position="-1000 9500 29600" />
-  <Distance to="Amananth" from="Split" distance="22515" />
-  <Distance to="Amananth" from="Aman Hook" distance="22515" />
-  <Distance to="Split" from="Aman Hook" distance="22453" />
- </Sector>
- <Sector flux="1" space="Solrain" name="Midpoint Rift" mapcoord="106 597 " >
-  <Jumpgate name="Inner Oasis" position="-18300 1000 18100" />
-  <Jumpgate name="Outer Oasis" position="0 0 0" />
-  <Beacon position="-9200 1700 6300" />
-  <Distance to="Outer Oasis" from="Inner Oasis" distance="25764" />
- </Sector>
- <Sector flux="7" space="Unreg" name="Inner Gyre" mapcoord="306 380 " >
-  <Jumpgate name="Light Gateway" position="12300 15400 12700" />
-  <Jumpgate name="Saron's Shoulder" position="0 0 0" />
-  <Jumpgate name="Pulsar" position="-22300 18500 28800" />
-  <Jumpgate name="Aman Gate" position="-12000 12900 17600" />
-  <Beacon position="-700 11500 11700" />
-  <Building type="Subspace Transciever" position="-17700 14500 3300" />
-  <Distance to="Saron's Shoulder" from="Aman Gate" distance="24792" />
-  <Distance to="Pulsar" from="Aman Gate" distance="16276" />
-  <Distance to="Light Gateway" from="Aman Gate" distance="24940" />
-  <Distance to="Pulsar" from="Light Gateway" distance="38377" />
-  <Distance to="Saron's Shoulder" from="Light Gateway" distance="23462" />
-  <Distance to="Saron's Shoulder" from="Pulsar" distance="40804" />
- </Sector>
- <Sector flux="11" space="Solrain" name="Outer Depths" mapcoord="98 723 " >
-  <Jumpgate name="Tribular Canal" position="0 0 0" />
-  <Jumpgate name="Cornea" position="32700 -2500 1200" />
-  <Distance to="Tribular Canal" from="Cornea" distance="32839" />
- </Sector>
- <Sector flux="10" space="Unreg" name="Four Fingers" mapcoord="343 432 " >
-  <Jumpgate name="Outer Ring" />
-  <Jumpgate name="Inner Storm" />
-  <Jumpgate name="Outskirts" />
-  <Jumpgate name="Saron's Eye" />
-  <Distance to="Outer Ring" from="Inner Storm" distance="23449" />
-  <Distance to="Saron's Eye" from="Inner Storm" distance="31050" />
-  <Distance to="Outskirts" from="Inner Storm" distance="19066" />
-  <Distance to="Saron's Eye" from="Outer Ring" distance="23591" />
-  <Distance to="Outskirts" from="Outer Ring" distance="24979" />
-  <Distance to="Saron's Eye" from="Outskirts" distance="15673" />
- </Sector>
- <Sector flux="0" space="Quantar" name="Quantar Core" mapcoord="463 418 " >
-  <Jumpgate name="Quanaus Crossing" position="-1900 -9500 -17000" />
-  <Station name="Quantar Core" position="-5800 -2300 -8500" />
-  <Jumpgate name="Omni IV" position="-13900 3700 -2200" />
-  <Jumpgate name="Omni V" position="-29300 -9500 -9200" />
-  <Jumpgate name="Inner Roh-Cloud" position="0 0 0"/>
-  <Building type="Subspace Transciever" position="-19600 -100 -300" />
-  <Building type="Custom Producer" item="Mechanical Parts" position="-22600 7000 3900" />
-  <Building type="Naval Yard" position="-27000 3300 8400" />
-  <Building type="Naval Yard" position="-31100 2900 5100" />
-  <Building type="Naval Yard" position="-32500 11200 11700" />
-  <Building type="Tooling Center" position="4300 -700 -200" />
-  <Distance to="Inner Roh-Cloud" from="Quantar Core" distance="15588" />
-  <Distance to="Omni IV" from="Quantar Core" distance="11945" />
-  <Distance to="Quanaus Crossing" from="Quantar Core" distance="11738" />
-  <Distance to="Quanaus Crossing" from="Inner Roh-Cloud" distance="19564" />
-  <Distance to="Omni V" from="Inner Roh-Cloud" distance="32107" />
-  <Distance to="Omni V" from="Quantar Core" distance="24458" />
-  <Distance to="Omni IV" from="Quanaus Crossing" distance="23197" />
-  <Distance to="Omni V" from="Quanaus Crossing" distance="28439" />
-  <Distance to="Omni IV" from="Inner Roh-Cloud" distance="14567" />
-  <Distance to="Omni IV" from="Omni V" distance="21396" />
- </Sector>
- <Sector flux="1" space="Amananth" name="Last Parsec" mapcoord="381 169 " >
-  <Jumpgate name="Aman Hook" position="28400 10000 -17500" />
-  <Jumpgate name="Stith" position="0 0 0" />
-  <Jumpgate name="Sea of Shadows" position="26100 10000 16000" />
-  <Beacon position="-10100 12000 44400" />
-  <Distance to="Aman Hook" from="Stith" distance="34857" />
-  <Distance to="Sea of Shadows" from="Stith" distance="32220" />
-  <Distance to="Aman Hook" from="Sea of Shadows" distance="33643" />
- </Sector>
- <Sector flux="9" space="Unreg" name="Saron's Shoulder" mapcoord="316 413 " >
-  <Jumpgate name="Pulsar" position="-12800 15400 9700" />
-  <Jumpgate name="Inner Gyre" position="3800 17800 3800" />
-  <Jumpgate name="Outskirts" position="-20400 10100 -2900" />
-  <Jumpgate name="GBS" position="0 0 0" />
-  <Beacon position="-12000 10700 -600" />
-  <Building type="Subspace Transciever" position="-33600 -200 -17600" />
-  <Distance to="Pulsar" from="Outskirts" distance="15573" />
-  <Distance to="Inner Gyre" from="Outskirts" distance="26364" />
-  <Distance to="Pulsar" from="Inner Gyre" distance="17750" />
-  <Distance to="GBS" from="Pulsar" distance="22817" />
-  <Distance to="GBS" from="Outskirts" distance="23065" />
-  <Distance to="GBS" from="Inner Gyre" distance="18560" />
- </Sector>
- <Sector flux="0" space="Quantar" name="Corridor" mapcoord="481 544 " >
-  <Jumpgate name="Orus' Tail" position="23300 18100 3100" />
-  <Jumpgate name="Dark Trail" position="0 0 0" />
-  <Jumpgate name="Dark End" position="36000 21800 20200" />
-  <Station name="Corridor" position="19500 5800 1700" />
-  <Building type="Science Factory" item="Abattis" position="17800 9900 -1500" />
-  <Building type="Naval Yard" position="14700 6000 2600" />
-  <Building type="Custom Producer" item="Ivy" position="16700 8400 7100" />
-  <Building type="Naval Yard" position="20900 1900 8600" />
-  <Distance to="Dark Trail" from="Corridor" distance="20270" />
-  <Distance to="Orus' Tail" from="Corridor" distance="13136" />
-  <Distance to="Dark End" from="Corridor" distance="29693" />
-  <Distance to="Dark Trail" from="Orus' Tail" distance="29635" />
-  <Distance to="Dark Trail" from="Dark End" distance="46670" />
-  <Distance to="Dark End" from="Orus' Tail" distance="21628" />
- </Sector>
- <Sector flux="0" space="Unreg" name="Lothar's Landing" mapcoord="176 412 " >
-  <Jumpgate name="Far Point" position="0 0 0" />
-  <Station name="Lothar's Landing" position="8300 -3300 5100" />
-  <Distance to="Far Point" from="Lothar's Landing" distance="9921" />
- </Sector>
- <Sector flux="0" space="Quantar" name="TriPoint" mapcoord="524 302 " >
-  <Station name="TriPoint" position="600 -14900 0" />
-  <Jumpgate name="Tictac's Hook" position="0 0 0" />
-  <Building type="Naval Yard" position="-17300 -17900 -3900" />
-  <Distance to="TriPoint" from="Tictac's Hook" distance="15138" />
- </Sector>
- <Sector flux="0" space="Unreg" name="Klatsches Hold" mapcoord="323 555 " >
-  <Jumpgate name="Great Venure Belt" position="0 0 0" />
-  <Station name="Klatsches Hold" position="4500 -3700 7300" />
-  <Distance to="Great Venure Belt" from="Klatsches Hold" distance="9058" />
- </Sector>
- <Sector flux="1" space="Octavius" name="Verselus' Hook" mapcoord="237 142 " >
-  <Jumpgate name="Imperial Causeway" position="-600 -5800 -11500" />
-  <Jumpgate name="Octavian Shore" position="0 0 0" />
-  <Jumpgate name="Dark Fork" position="-42600 -22600 11200" />
-  <Beacon position="-13600 -9100 -5200" />
-  <Distance to="Dark Fork" from="Octavian Shore" distance="49522" />
-  <Distance to="Imperial Causeway" from="Octavian Shore" distance="12919" />
-  <Distance to="Dark Fork" from="Imperial Causeway" distance="50633" />
- </Sector>
- <Sector flux="1" space="Solrain" name="Outer Oasis" mapcoord="74 634 " >
-  <Jumpgate name="Midpoint Rift" position="-18300 1000 18100" />
-  <Jumpgate name="Cornea" position="0 0 0" />
-  <Beacon position="-9200 1700 6300" />
-  <Distance to="Cornea" from="Midpoint Rift" distance="25764" />
- </Sector>
- <Sector flux="1" space="Octavius" name="Octavian Shore" mapcoord="294 125 " >
-  <Jumpgate name="Verselus' Hook" position="0 0 0" />
-  <Jumpgate name="Gurge" position="-18700 -35800 31700" />
-  <Jumpgate name="Blasted Corner" position="34800 -7500 -10900" />
-  <Beacon position="21400 -2600 -9000" />
-  <Distance to="Verselus' Hook" from="Blasted Corner" distance="37185" />
-  <Distance to="Gurge" from="Verselus' Hook" distance="51359" />
-  <Distance to="Gurge" from="Blasted Corner" distance="73990" />
- </Sector>
- <Sector flux="1" space="Solrain" name="Fields" mapcoord="121 502 " >
-  <Jumpgate name="Sea of Solrain" position="13300 -3600 -4900" />
-  <Jumpgate name="Morain Harbour" position="-10000 5100 19700" />
-  <Jumpgate name="Tranquillus Minor" position="0 0 0" />
-  <Beacon position="-700 4400 11800" />
-  <Distance to="Tranquillus Minor" from="Sea of Solrain" distance="14593" />
-  <Distance to="Morain Harbour" from="Sea of Solrain" distance="34933" />
-  <Distance to="Tranquillus Minor" from="Morain Harbour" distance="22639" />
- </Sector>
- <Sector flux="0" space="Solrain" name="Solrain Depot" mapcoord="72 531 " >
-  <Station name="Solrain Depot" position="-10700 3100 -9900" />
-  <Jumpgate name="Tranquillus Minor" position="0 0 0" />
-  <Building type="Custom Producer" item="Sabre" position="-35300 5400 -18100" />
-  <Distance to="Solrain Depot" from="Tranquillus Minor" distance="14271" />
- </Sector>
- <Sector flux="1" space="Quantar" name="Hyperion Gate" mapcoord="414 504 " >
-  <Jumpgate name="Rounds of Quantos" position="38600 17900 -5600" />
-  <Jumpgate name="Great Venure Belt" position="0 0 0" />
-  <Beacon position="59600 10900 -3500" />
-  <Distance to="Great Venure Belt" from="Rounds of Quantos" distance="42917" />
- </Sector>
- <Sector flux="1" space="Octavius" name="Imperial Gates" mapcoord="179 68 " >
-  <Jumpgate name="Octavius Core" position="16200 8400 30000" />
-  <Jumpgate name="Dark Fork"  position="0 0 0" />
-  <Beacon position="5700 4900 20100" />
-  <Distance to="Dark Fork" from="Octavius Core" distance="35148" />
- </Sector>
- <Sector flux="7" space="Amananth" name="Aman Hook" mapcoord="400 78 " >
-  <Jumpgate name="Canis 9502" position="-3200 -21900 -2000" />
-  <Jumpgate name="Last Parsec" position="0 0 0" />
-  <Jumpgate name="Gyre" position="-6800 -11700 30400" />
-  <Beacon position="-14900 -6000 25500" />
-  <Anomaly position="-22800 -8200 16600" />
-  <Distance to="Gyre" from="Last Parsec" distance="33311" />
-  <Distance to="Gyre" from="Canis 9502" distance="34183" />
-  <Distance to="Canis 9502" from="Last Parsec" distance="22192" />
- </Sector>
- <Sector flux="0" space="Hyperial" name="Hyperial" mapcoord="482 672 " >
-  <Station name="Hyperial" position="6600 5800 -16000" />
-  <Jumpgate name="Far Gate" position="0 0 0" />
-  <Jumpgate name="Rear Gate" position="7400 -4300 -16900" />
-  <Building type="Custom Producer" item="Insight" position="-1000 -6900 7000" />
-  <Building type="Custom Producer" item="Deepol" position="1100 -6900 4400" />
-  <Building type="Subspace Tranceiver" position="-4000 4500 -17300" />
-  <Building type="Science Factory" item="Construction Materials" position="-4100 4400 -22000" />
-  <Distance to="Hyperial" from="Rear Gate" distance="10376" />
-  <Distance to="Far Gate" from="Hyperial" distance="18115" />
-  <Distance to="Rear Gate" from="Far Gate" distance="18957" />
- </Sector>
- <Sector flux="1" space="Octavius" name="Dark Gateway" mapcoord="257 318 " >
-  <Jumpgate name="Far Point" position="0 0 0" />
-  <Jumpgate name="Diluted Reaches" position="-36800 9800 -15100" />
-  <Jumpgate name="Greater Locks" position="-6000 37400 4700" />
-  <Jumpgate name="Primus Point" position="-9800 8100 12600" />
-  <Beacon position="-5800 23000 6000" />
-  <Building type="Rearm Arsenal" position="6300 16000 15200" />
-  <Distance to="Far Point" from="Diluted Reaches" distance="41003" />
-  <Distance to="Primus Point" from="Diluted Reaches" distance="38788" />
-  <Distance to="Greater Locks" from="Diluted Reaches" distance="45909" />
-  <Distance to="Primus Point" from="Greater Locks" distance="30602" />
-  <Distance to="Far Point" from="Greater Locks" distance="38130" />
-  <Distance to="Primus Point" from="Far Point" distance="17887" />
- </Sector>
- <Sector flux="1" space="Quantar" name="Outer Roh-Cloud" mapcoord="455 466 " >
-  <Jumpgate name="Dark Trail" position="0 0 0" />
-  <Jumpgate name="Inner Roh-Cloud" position="53800 5900 -1900" />
-  <Beacon position="-18400 2200 -1200" />
-  <Distance to="Dark Trail" from="Inner Roh-Cloud" distance="54109" />
- </Sector>
- <Sector flux="1" space="Octavius" name="Divide" mapcoord="147 209 " >
-  <Jumpgate name="Edge" position="5100 22200 1500" />
-  <Jumpgate name="Rim" position="0 0 0" />
-  <Jumpgate name="Great Pillars" position="8100 52900 17300" />
-  <Beacon position="7600 39700 16200" />
-  <Distance to="Edge" from="Rim" distance="22831" />
-  <Distance to="Rim" from="Great Pillars" distance="56209" />
-  <Distance to="Edge" from="Great Pillars" distance="34624" />
- </Sector>
- <Sector flux="1" space="Octavius" name="Dark Fork" mapcoord="137 110 " >
-  <Jumpgate name="Verselus' Hook" position="25700 21700 23700" />
-  <Jumpgate name="Vorgus 2" position="-9100 24700 -11500" />
-  <Jumpgate name="Imperial Crossroads" position="0 0 0" />
-  <Jumpgate name="Imperial Gates" position="18800 8200 -5600" />
-  <Beacon position="800 17000 2200" />
-  <Distance to="Vorgus 2" from="Imperial Gates" distance="32929" />
-  <Distance to="Verselus' Hook" from="Imperial Gates" distance="32930" />
-  <Distance to="Imperial Crossroads" from="Imperial Gates" distance="21288" />
-  <Distance to="Imperial Crossroads" from="Verselus' Hook" distance="41160" />
-  <Distance to="Vorgus 2" from="Verselus' Hook" distance="49569" />
-  <Distance to="Imperial Crossroads" from="Vorgus 2" distance="28702" />
- </Sector>
- <Sector flux="8" space="Unreg" name="Light Lost" mapcoord="297 470 " >
-  <Jumpgate name="Outskirts" position="300 -15400 49900" />
-  <Jumpgate name="Zealots Refuge" position="0 0 0" />
-  <Anomaly position="18000 9300 46300" />
-  <Beacon position="-11700 -1400 47600" />
-  <Distance to="Zealots Refuge" from="Outskirts" distance="52209" />
- </Sector>
- <Sector flux="0" space="Unreg" name="Evenings End" mapcoord="362 224 " >
-  <Jumpgate name="Gurge" position="0 0 0" />
-  <Station name="Evenings End" position="-4000 6400 -6600" />
-  <Distance to="Gurge" from="Evenings End" distance="10211" />
- </Sector>
- <Sector flux="1" space="Quantar" name="Rounds of Quantos" mapcoord="420 463 " >
-  <Jumpgate name="Hyperion Gate" position="0 0 0" />
-  <Jumpgate name="Ekoo's Stop" position="26600 6300 27200" />
-  <Beacon position="20200 4800 16000" />
-  <Distance to="Hyperion Gate" from="Ekoo's Stop" distance="38536" />
- </Sector>
- <Sector flux="0" space="Octavius" name="Octavius Core" mapcoord="198 99 " >
-  <Jumpgate name="Imperial Causeway" position="0 0 0" />
-  <Jumpgate name="Orrus Major" position="-28400 -2100 700" />
-  <Station name="Octavius Core" position="-11800 1600 10100" />
-  <Jumpgate name="Imperial Gates" position="-100 7200 15400" />
-  <Building type="Subspace Transceiver" position="-3900 11000 17800" />
-  <Building type="Naval Yard" position="-7500 8400 22800" />
-  <Building type="Naval Yard" position="-13100 8100 22800" />
-  <Building type="Naval Yard" position="-16200 10500 17800" />
-  <Building type="Custom Producer" item="HellRazor" position="8000 -2600 -1900" /> 
-  <Building type="Naval Yard" position="-27400 -1600 -7200" />
-  <Distance to="Octavius Core" from="Imperial Causeway" distance="14273" />
-  <Distance to="Imperial Gates" from="Imperial Causeway" distance="16973" />
-  <Distance to="Orrus Major" from="Imperial Causeway" distance="28516" />
-  <Distance to="Orrus Major" from="Octavius Core" distance="18404" />
-  <Distance to="Imperial Gates" from="Octavius Core" distance="15203" />
-  <Distance to="Orrus Major" from="Imperial Gates" distance="33236" />
- </Sector>
- <Sector flux="1" space="Unreg" name="Zealots Refuge" mapcoord="305 524 " >
-  <Jumpgate name="Great Venure Belt" position="-11500 14900 -52800" />
-  <Jumpgate name="Outer Ring" position="2600 26400 -17500" />
-  <Jumpgate name="Light Lost" position="24700 -13700 -54400" />
-  <Jumpgate name="Bronci Rift" position="0 0 0" />
-  <Beacon position="-2300 5700 -28600" />
-  <Distance to="Bronci Rift" from="Light Lost" distance="61267" />
-  <Distance to="Outer Ring" from="Light Lost" distance="58114" />
-  <Distance to="Great Venure Belt" from="Light Lost" distance="46125" />
-  <Distance to="Outer Ring" from="Bronci Rift" distance="31998" />
-  <Distance to="Great Venure Belt" from="Bronci Rift" distance="56094" />
-  <Distance to="Great Venure Belt" from="Outer Ring" distance="40521" />
- </Sector>
- <Sector flux="12" space="Unreg" name="Pulsar" mapcoord="339 401 " >
-  <Jumpgate name="Saron's Shoulder" />
-  <Jumpgate name="Outer Gyre" />
-  <Jumpgate name="Inner Gyre" />
-  <Jumpgate name="Saron's Eye" />
-  <Distance to="Inner Gyre" from="Saron's Eye" distance="23625" />
-  <Distance to="Saron's Eye" from="Outer Gyre" distance="15947" />
-  <Distance to="Inner Gyre" from="Outer Gyre" distance="13627" />
-  <Distance to="Outer Gyre" from="Saron's Shoulder" distance="23324" />
-  <Distance to="Saron's Eye" from="Saron's Shoulder" distance="25179" />
-  <Distance to="Inner Gyre" from="Saron's Shoulder" distance="20272" />
- </Sector>
- <Sector flux="5" space="Quantar" name="Long Walk" mapcoord="533 345 " >
-  <Jumpgate name="Third Gate" position="0 0 0" />
-  <Jumpgate name="Quantar Depot" position="3900 -5500 20900" />
-  <Jumpgate name="Tictac's Hook" position="20900 -21200 4700" />
-  <Jumpgate name="Quadrangle" position="8300 -27900 -6900" />
-  <Beacon position="10100 -15900 -2300" />
-  <Distance to="Quadrangle" from="Third Gate" distance="29926" />
-  <Distance to="Tictac's Hook" from="Third Gate" distance="30133" />
-  <Distance to="Tictac's Hook" from="Quadrangle" distance="18434" />
-  <Distance to="Quantar Depot" from="Third Gate" distance="21919" />
-  <Distance to="Quantar Depot" from="Quadrangle" distance="35915" />
-  <Distance to="Quantar Depot" from="Tictac's Hook" distance="28222" />
- </Sector>
- <Sector flux="1" space="Quantar" name="Square of Quantos" mapcoord="502 452 " >
-  <Jumpgate name="Hook of Roh" position="31800 -18900 -22400" />
-  <Jumpgate name="Inner Roh-Cloud" position="0 0 0" />
-  <Beacon position="9600 -8600 -11500" />
-  <Distance to="Hook of Roh" from="Inner Roh-Cloud" distance="43172" />
- </Sector>
- <Sector flux="8" space="Unreg" name="Outer Ring" mapcoord="329 468 " >
-  <Jumpgate name="Zealots Refuge" />
-  <Jumpgate name="Four Fingers" />
-  <Distance to="Zealots Refuge" from="Four Fingers" distance="36793" />
- </Sector>
- <Sector flux="6" space="Quantar" name="Path of Hordes" mapcoord="480 356 " >
-  <Jumpgate name="Quanaus Crossing" position="14300 -16000 -21100" />
-  <Jumpgate name="Omni IV" position="0 0 0" />
-  <Jumpgate name="Quadrangle" position="-17900 -16400 -38600" />
-  <Beacon position="6800 -810 -13700" />
-  <Distance to="Quanaus Crossing" from="Omni IV" distance="30107" />
-  <Distance to="Quadrangle" from="Omni IV" distance="45626" />
-  <Distance to="Quadrangle" from="Quanaus Crossing" distance="36743" />
- </Sector>
- <Sector flux="1" space="Quantar" name="Dark Trail" mapcoord="451 543 " >
-  <Jumpgate name="Dark Path" position="-33200 -8800 -13100" />
-  <Jumpgate name="Corridor" position="0 0 0" />
-  <Jumpgate name="Outer Roh-Cloud" position="-4300 21700 -15500" />
-  <Beacon position="-14100 -300 -9600" />
-  <Distance to="Corridor" from="Outer Roh-Cloud" distance="27003" />
-  <Distance to="Corridor" from="Dark Path" distance="36757" />
-  <Distance to="Dark Path" from="Outer Roh-Cloud" distance="42110" />
- </Sector>
- <Sector flux="7" space="Unreg" name="Outskirts" mapcoord="289 449 " >
-  <Jumpgate name="Saron's Shoulder" position="43700 18500 -32300" />
-  <Jumpgate name="Light Lost" position="0 0 0" />
-  <Jumpgate name="Four Fingers" position="13800 4000 -27700" />
-  <Beacon position="12300 10400 -16300" />
-  <Building type="Subspace Transciever" position="21500 34200 -20100" />
-  <Distance to="Light Lost" from="Four Fingers" distance="31223" />
-  <Distance to="Four Fingers" from="Saron's Shoulder" distance="33486" />
-  <Distance to="Light Lost" from="Saron's Shoulder" distance="57355" />
- </Sector>
- <Sector flux="6" space="Quantar" name="Callow Passage" mapcoord="554 485 " >
-  <Jumpgate name="Tictac's Hook" position="37000 -29500 -3600" />
-  <Jumpgate name="Dark End" position="0 0 0" />
-  <Beacon position="13100 -25000 16600" />
-  <Distance to="Tictac's Hook" from="Dark End" distance="47409" />
- </Sector>
- <Sector flux="5" space="Octavius" name="Vorgus 2" mapcoord="162 166 " >
-  <Jumpgate name="Octavius Depot" position="0 0 0" />
-  <Jumpgate name="Orrus Minor" position="-40500 15800 -19000" />
-  <Jumpgate name="Dark Fork" position="5000 -19400 -15900" />
-  <Beacon position="-28300 11700 -11700" />
-  <Anomaly position="14800 -19200 -29200" />
-  <Distance to="Orrus Minor" from="Dark Fork" distance="57565" />
-  <Distance to="Dark Fork" from="Octavius Depot" distance="25533" />
-  <Distance to="Orrus Minor" from="Octavius Depot" distance="47409" />
- </Sector>
- <Sector flux="1" space="Octavius" name="Blasted Corner" mapcoord="264 214 " >
-  <Jumpgate name="Octavian Shore" position="27600 -2500 14700" />
-  <Jumpgate name="Outpost" position="0 0 0" />
-  <Beacon position="16700 400 4600" />
-  <Anomaly position="36500 10500 19600" />
-  <Distance to="Octavian Shore" from="Outpost" distance="31391" />
- </Sector>
- <Sector flux="0" space="Octavius" name="Great Pillars" mapcoord="118 177 " >
-  <Jumpgate name="Divide" position="0 0 0" />
-  <Station name="Great Pillars" position="1300 1200 12900" />
-  <Jumpgate name="Imperial Crossroads" position="-3800 13100 11900" />
-  <Building type="Naval Yard" position="-2600 4000 -8100" />
-  <Building type="Custom Producer" item="Sentinel" position="-6100 7200 -12800" />
-  <Building type="Science Factory" item="Duelist" position="100 2700 -3000" />
-  <Distance to="Divide" from="Great Pillars" distance="12914" />
-  <Distance to="Great Pillars" from="Imperial Crossroads" distance="13282" />
-  <Distance to="Divide" from="Imperial Crossroads" distance="18186" />
- </Sector>
- <Sector flux="1" space="Quantar" name="Upper Third" mapcoord="554 602 " >
-  <Jumpgate name="Orus' Tail" position="-7200 -29500 3200" />
-  <Jumpgate name="Orus' Leg" position="0 0 0"/>
-  <Beacon position="-4400 -17700 500" />
-  <Distance to="Orus' Leg" from="Orus' Tail" distance="30524" />
- </Sector>
- <Sector flux="1" space="Octavius" name="Outer Rim" mapcoord="82 216 " >
-  <Jumpgate name="Rim" position="28100 -20700 17300" />
-  <Jumpgate name="Outer Edge" position="0 0 0" />
-  <Beacon position="12700 -11000 13300" />
-  <Distance to="Rim" from="Outer Edge" distance="38971" />
- </Sector>
- <Sector flux="0" space="Quantar" name="Quantar Depot" mapcoord="528 431 " >
-  <Jumpgate name="Hook of Roh" position="0 0 0" />
-  <Jumpgate name="Long Walk" position="15100 2400 33100" />
-  <Station name="Quantar Depot" position="-10600 3100 -9500" />
-  <Building type="Custom Producer" item="Glaive" position="3300 200 -3000" />
-  <Distance to="Quantar Depot" from="Long Walk" distance="49490" />
-  <Distance to="Quantar Depot" from="Hook of Roh" distance="14271" />
-  <Distance to="Long Walk" from="Hook of Roh" distance="36451" />
- </Sector>
- <Sector flux="1" space="Unreg" name="Diluted Reaches" mapcoord="228 309 " >
-  <Jumpgate name="Dark Gateway" position="0 0 0" />
-  <Jumpgate name="Stith" position="17800 -28700 29400" />
-  <Beacon position="5300 -10700 10900" />
-  <Distance to="Dark Gateway" from="Stith" distance="44784" />
- </Sector>
- <Sector flux="1" space="Quantar" name="Omni V" mapcoord="430 410 " >
-  <Jumpgate name="Quantar Core" position="0 0 0" />
-  <Jumpgate name="Ekoo's Stop" position="-27200 -16700 18700" />
-  <Beacon position="-16300 -5900 9700" />
-  <Distance to="Ekoo's Stop" from="Quantar Core" distance="36992" />
- </Sector>
- <Sector flux="1" space="Hyperial" name="Reaches" mapcoord="429 578 " >
-  <Jumpgate name="Outer Cloud" position="0 0 0" />
-  <Jumpgate name="Main Gate" position="22500 -14500 -21100" />
-  <Beacon position="10600 -3900 -10900" />
-  <Asteroid name="Emma" type="Semifluxor" position="8800 -5700 -8400" />
-  <Distance to="Outer Cloud" from="Main Gate" distance="34051" />
- </Sector>
- <Sector flux="0" space="Solrain" name="Cornea" mapcoord="113 672 " >
-  <Jumpgate name="Azure Churn" position="5300 3400 7800" />
-  <Jumpgate name="Outer Oasis" position="-24800 -5500 4600" />
-  <Jumpgate name="Outer Depths" position="0 0 0" />
-  <Station name="Cornea" position="-11500 -2100 4700" />
-  <Building type="Naval Yard" position="-28100 -2900 -1300" />
-  <Building type="Custom Producer" item="Echo" position=...
 
[truncated message content] | 
| 
      
      
      From: <ult...@us...> - 2007-06-18 20:04:23
      
     | 
| Revision: 574
          http://svn.sourceforge.net/opengate/?rev=574&view=rev
Author:   ultrasick
Date:     2007-06-18 13:04:25 -0700 (Mon, 18 Jun 2007)
Log Message:
-----------
deleteing files with old image format
+ uploading new image format
+ camera adjustments in den blender files
+ activated file compression
Modified Paths:
--------------
    trunk/data/shields/kydango.blend
    trunk/data/shields/pod.blend
    trunk/data/shields/shelter.blend
Added Paths:
-----------
    trunk/data/shields/alpaa_290x290.png
    trunk/data/shields/alpaa_76x76.png
    trunk/data/shields/flatiron_290x290.png
    trunk/data/shields/flatiron_76x76.png
    trunk/data/shields/himelea_290x290.png
    trunk/data/shields/himelea_76x76.png
    trunk/data/shields/kydango_290x290.png
    trunk/data/shields/kydango_76x76.png
    trunk/data/shields/pod_290x290.png
    trunk/data/shields/pod_76x76.png
    trunk/data/shields/shelter_290x290.png
    trunk/data/shields/shelter_76x76.png
    trunk/data/shields/t-s-13_290x290.png
    trunk/data/shields/t-s-13_76x76.png
Removed Paths:
-------------
    trunk/data/shields/alpaa.png
    trunk/data/shields/flatiron.png
    trunk/data/shields/himelea.png
    trunk/data/shields/kydango.png
    trunk/data/shields/pod.png
    trunk/data/shields/shelter.png
    trunk/data/shields/t-s-13.png
Deleted: trunk/data/shields/alpaa.png
===================================================================
(Binary files differ)
Added: trunk/data/shields/alpaa_290x290.png
===================================================================
(Binary files differ)
Property changes on: trunk/data/shields/alpaa_290x290.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream
Added: trunk/data/shields/alpaa_76x76.png
===================================================================
(Binary files differ)
Property changes on: trunk/data/shields/alpaa_76x76.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream
Deleted: trunk/data/shields/flatiron.png
===================================================================
(Binary files differ)
Added: trunk/data/shields/flatiron_290x290.png
===================================================================
(Binary files differ)
Property changes on: trunk/data/shields/flatiron_290x290.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream
Added: trunk/data/shields/flatiron_76x76.png
===================================================================
(Binary files differ)
Property changes on: trunk/data/shields/flatiron_76x76.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream
Deleted: trunk/data/shields/himelea.png
===================================================================
(Binary files differ)
Added: trunk/data/shields/himelea_290x290.png
===================================================================
(Binary files differ)
Property changes on: trunk/data/shields/himelea_290x290.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream
Added: trunk/data/shields/himelea_76x76.png
===================================================================
(Binary files differ)
Property changes on: trunk/data/shields/himelea_76x76.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream
Modified: trunk/data/shields/kydango.blend
===================================================================
(Binary files differ)
Deleted: trunk/data/shields/kydango.png
===================================================================
(Binary files differ)
Added: trunk/data/shields/kydango_290x290.png
===================================================================
(Binary files differ)
Property changes on: trunk/data/shields/kydango_290x290.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream
Added: trunk/data/shields/kydango_76x76.png
===================================================================
(Binary files differ)
Property changes on: trunk/data/shields/kydango_76x76.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream
Modified: trunk/data/shields/pod.blend
===================================================================
(Binary files differ)
Deleted: trunk/data/shields/pod.png
===================================================================
(Binary files differ)
Added: trunk/data/shields/pod_290x290.png
===================================================================
(Binary files differ)
Property changes on: trunk/data/shields/pod_290x290.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream
Added: trunk/data/shields/pod_76x76.png
===================================================================
(Binary files differ)
Property changes on: trunk/data/shields/pod_76x76.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream
Modified: trunk/data/shields/shelter.blend
===================================================================
(Binary files differ)
Deleted: trunk/data/shields/shelter.png
===================================================================
(Binary files differ)
Added: trunk/data/shields/shelter_290x290.png
===================================================================
(Binary files differ)
Property changes on: trunk/data/shields/shelter_290x290.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream
Added: trunk/data/shields/shelter_76x76.png
===================================================================
(Binary files differ)
Property changes on: trunk/data/shields/shelter_76x76.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream
Deleted: trunk/data/shields/t-s-13.png
===================================================================
(Binary files differ)
Added: trunk/data/shields/t-s-13_290x290.png
===================================================================
(Binary files differ)
Property changes on: trunk/data/shields/t-s-13_290x290.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream
Added: trunk/data/shields/t-s-13_76x76.png
===================================================================
(Binary files differ)
Property changes on: trunk/data/shields/t-s-13_76x76.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <spo...@us...> - 2007-06-18 18:13:22
      
     | 
| Revision: 573
          http://svn.sourceforge.net/opengate/?rev=573&view=rev
Author:   spom_spom
Date:     2007-06-18 11:13:25 -0700 (Mon, 18 Jun 2007)
Log Message:
-----------
win compatibility commit
Modified Paths:
--------------
    branches/ogsector/win32/ogsectorclient/ogsectorclient.exe
Modified: branches/ogsector/win32/ogsectorclient/ogsectorclient.exe
===================================================================
(Binary files differ)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <spo...@us...> - 2007-06-18 17:58:58
      
     | 
| Revision: 572
          http://svn.sourceforge.net/opengate/?rev=572&view=rev
Author:   spom_spom
Date:     2007-06-18 10:58:58 -0700 (Mon, 18 Jun 2007)
Log Message:
-----------
some small fixes
Modified Paths:
--------------
    branches/ogsector/src/GameStateManager.cpp
    branches/ogsector/src/Sector.cpp
    branches/ogsector/src/Sector.h
    branches/ogsector/src/ShipConfigDialog.cpp
    branches/ogsector/src/UnDockedState.cpp
    branches/ogsector/src/networkProtocol.h
    branches/ogsector/src/networkServerUser.cpp
Modified: branches/ogsector/src/GameStateManager.cpp
===================================================================
--- branches/ogsector/src/GameStateManager.cpp	2007-06-18 17:51:58 UTC (rev 571)
+++ branches/ogsector/src/GameStateManager.cpp	2007-06-18 17:58:58 UTC (rev 572)
@@ -201,6 +201,8 @@
 	if ( sector ) sector->receiveVesselRegister( &msgs[ i ][ 0 ] ); break;
       case PROTO_SHIP_DEREGISTER:
 	if ( sector ) sector->receiveVesselDeRegister( &msgs[ i ][ 0 ] ); break;
+      case PROTO_SHIP_DIED:
+	if ( sector ) sector->receiveVesselDied( &msgs[ i ][ 0 ] ); break;
       case PROTO_SHIP_STATUS:
 	if ( sector ) sector->receiveVesselStatus( &msgs[ i ][ 0 ] ); break;
       case PROTO_SHIP_MOVEMENT:{
Modified: branches/ogsector/src/Sector.cpp
===================================================================
--- branches/ogsector/src/Sector.cpp	2007-06-18 17:51:58 UTC (rev 571)
+++ branches/ogsector/src/Sector.cpp	2007-06-18 17:58:58 UTC (rev 572)
@@ -327,6 +327,7 @@
 
 void Sector::avatarDied( ){
   if ( avatar_ ){
+    sendVesselDied( avatar_ );
     listener_->avatarDeathSequence( true );
   }
 }
@@ -654,6 +655,24 @@
   }
 }
 
+void Sector::sendVesselDied( SectorObjectMoveableLocal * obj ){
+  MessageBodyShipDied msg( 0, obj->childID() );
+  network_->send( msg );
+}
+
+void Sector::receiveVesselDied( const MessageBodyShipDied & msg ){
+  if ( movableObjects_.count( createGlobalID( msg.senderID(), msg.childID() ) ) ){
+    log_->info( std::string( "Receive vessel died " )
+		+ movableObjects_[ createGlobalID( msg.senderID(), msg.childID() ) ]->name() );
+
+    SectorObjectMoveable *obj = movableObjects_[ createGlobalID( msg.senderID(), msg.childID() ) ];
+    obj->deathSequence( 0.0 );
+  } else {
+    log_->warn( std::string( "Died vessel request for unknown object: " ) + 
+		toStr( msg.senderID() ) + ": " + toStr( (int)msg.childID() ) );
+  }
+}
+
 void Sector::receiveVesselMovement( const std::vector < MessageBodyShipMovement * > & movements ){
 
   std::map < long, const MessageBodyShipMovement * > singleMsg;
Modified: branches/ogsector/src/Sector.h
===================================================================
--- branches/ogsector/src/Sector.h	2007-06-18 17:51:58 UTC (rev 571)
+++ branches/ogsector/src/Sector.h	2007-06-18 17:58:58 UTC (rev 572)
@@ -80,6 +80,9 @@
   void sendAllVesselInfos( );
   void sendAllVesselMovements( );
 
+  void sendVesselDied( SectorObjectMoveableLocal * obj );
+  void receiveVesselDied( const MessageBodyShipDied & msg );
+
   void sendVesselRegister( SectorObjectMoveableLocal * obj );
   void receiveVesselRegister( const MessageBodyShipRegister & msg );
 
Modified: branches/ogsector/src/ShipConfigDialog.cpp
===================================================================
--- branches/ogsector/src/ShipConfigDialog.cpp	2007-06-18 17:51:58 UTC (rev 571)
+++ branches/ogsector/src/ShipConfigDialog.cpp	2007-06-18 17:58:58 UTC (rev 572)
@@ -214,7 +214,8 @@
 
 bool ShipConfigDialog::handleSelectShipButton( const CEGUI::EventArgs & e ){
   devices_->avatar->setVessel( *(*itVessel_) );
-  hide();
+  LogManager::getSingleton().info( std::string( "Select vessel: " ) + devices_->avatar->vessel()->name() + " id:" + toStr( devices_->avatar->vessel()->id() ) );
+  updateEquipmentView();
   return true;
 }
 
Modified: branches/ogsector/src/UnDockedState.cpp
===================================================================
--- branches/ogsector/src/UnDockedState.cpp	2007-06-18 17:51:58 UTC (rev 571)
+++ branches/ogsector/src/UnDockedState.cpp	2007-06-18 17:58:58 UTC (rev 572)
@@ -893,10 +893,10 @@
       
 	targetVelocity_->setText( "V" + Ogre::StringConverter::toString( round(
 		dynamic_cast< SectorObjectMoveable *>( target_ )->speed(), 2 ), 4 ) );
-	targetShieldText_->setText( "S" + Ogre::StringConverter::toString( 
-		  dynamic_cast< SectorObjectMoveable *>( target_ )->shieldRate() * 100.0f, 4 ) );
-	targetArmorText_->setText( "A" + Ogre::StringConverter::toString( 
-		 dynamic_cast< SectorObjectMoveable *>( target_ )->armorRate() * 100.0f, 4 ) );
+	targetShieldText_->setText( "S" + Ogre::StringConverter::toString( round(
+        	 dynamic_cast< SectorObjectMoveable *>( target_ )->shieldRate() * 100.0f, 1), 4 ) );
+	    targetArmorText_->setText( "A" + Ogre::StringConverter::toString( round( 
+	    dynamic_cast< SectorObjectMoveable *>( target_ )->armorRate() * 100.0f, 1), 4 ) );
 
       } else{
 	targetVelocity_->setText( "" );
Modified: branches/ogsector/src/networkProtocol.h
===================================================================
--- branches/ogsector/src/networkProtocol.h	2007-06-18 17:51:58 UTC (rev 571)
+++ branches/ogsector/src/networkProtocol.h	2007-06-18 17:58:58 UTC (rev 572)
@@ -47,6 +47,7 @@
 #define PROTO_SHIP_MOVEMENT 14
 #define PROTO_SHIP_AMMOHIT 15
 #define PROTO_SHIP_PROJECTILEFIRED 16
+#define PROTO_SHIP_DIED 17
 #define PROTO_TEST 255
 
 #define CONNECTION_REFUSED_USER_ALREADY_EXIST 1
@@ -387,6 +388,29 @@
 protected:
 };
 
+class MessageBodyShipDied : public MessageBodyShipBase {
+public:
+  MessageBodyShipDied( const Uint32 senderID, const Uint8 childID ): MessageBodyShipBase( childID ){
+    senderID_ = senderID;
+    type_ = (Uint8)PROTO_SHIP_DIED;
+  }
+  
+  MessageBodyShipDied( const char * data ) : MessageBodyShipBase( data ){ }
+  
+  virtual ~MessageBodyShipDied(  ){ }
+  
+  void createOutStream() {
+    MessageBodyShipBase::createOutStream();
+  }
+  
+  friend std::ostream & operator << ( std::ostream & str, const MessageBodyShipDied & msg ){
+    str << "Type: " << (int)( msg.type() ) << " senderID:  " << msg.senderID() << " childID: " << msg.childID();
+    return str;
+  }
+
+protected:
+};
+
 class MessageBodyShipMovement : public MessageBodyShipBase {
 public:
   MessageBodyShipMovement( Uint8 childID, const Ogre::Vector3 & pos,
Modified: branches/ogsector/src/networkServerUser.cpp
===================================================================
--- branches/ogsector/src/networkServerUser.cpp	2007-06-18 17:51:58 UTC (rev 571)
+++ branches/ogsector/src/networkServerUser.cpp	2007-06-18 17:58:58 UTC (rev 572)
@@ -140,6 +140,10 @@
       MessageBodyShipDeRegister msg( readMsg_.body() );
       server_->receiveShipDeRegister( this, msg );
     } break;
+    case PROTO_SHIP_DIED:{
+      MessageBodyShipDied msg( readMsg_.body() );
+      sendToRange( msg );
+    } break;
     case PROTO_SHIP_STATUS:{
       MessageBodyShipStatus msg( readMsg_.body() );
 //       if ( msg.childID() > 0 )
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <spo...@us...> - 2007-06-18 17:51:58
      
     | 
| Revision: 571
          http://svn.sourceforge.net/opengate/?rev=571&view=rev
Author:   spom_spom
Date:     2007-06-18 10:51:58 -0700 (Mon, 18 Jun 2007)
Log Message:
-----------
change object_id for vessels
Modified Paths:
--------------
    trunk/data/ships/octavius/apteryx/apteryx.xml
    trunk/data/ships/quantar/storm/storm.xml
    trunk/data/ships/squadrok/squid/squid.xml
Modified: trunk/data/ships/octavius/apteryx/apteryx.xml
===================================================================
--- trunk/data/ships/octavius/apteryx/apteryx.xml	2007-06-18 09:25:02 UTC (rev 570)
+++ trunk/data/ships/octavius/apteryx/apteryx.xml	2007-06-18 17:51:58 UTC (rev 571)
@@ -4,7 +4,7 @@
 	<!-- Naming -->
 	<faction>octavius</faction>
 	<faction_id>3</faction_id>
-	<object_id>1</object_id>
+	<object_id>301</object_id>
 	<name>apteryx</name>
 
 	<!-- Generic Data -->
Modified: trunk/data/ships/quantar/storm/storm.xml
===================================================================
--- trunk/data/ships/quantar/storm/storm.xml	2007-06-18 09:25:02 UTC (rev 570)
+++ trunk/data/ships/quantar/storm/storm.xml	2007-06-18 17:51:58 UTC (rev 571)
@@ -3,7 +3,7 @@
 <ship>
 	<!-- Naming -->
 	<faction_id>2</faction_id>
-        <object_id>2</object_id>
+        <object_id>201</object_id>
         <name>storm</name>
 
 	<!-- Generic Data -->
Modified: trunk/data/ships/squadrok/squid/squid.xml
===================================================================
--- trunk/data/ships/squadrok/squid/squid.xml	2007-06-18 09:25:02 UTC (rev 570)
+++ trunk/data/ships/squadrok/squid/squid.xml	2007-06-18 17:51:58 UTC (rev 571)
@@ -4,7 +4,7 @@
 	<!-- Naming -->
 	<faction_id>4</faction_id>
 	<name>Squid</name>
-        <object_id>1</object_id>
+        <object_id>401</object_id>
 
 	<!-- Generic Data -->
 	<class>Probe</class>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <ult...@us...> - 2007-06-18 09:25:02
      
     | 
| Revision: 570
          http://svn.sourceforge.net/opengate/?rev=570&view=rev
Author:   ultrasick
Date:     2007-06-18 02:25:02 -0700 (Mon, 18 Jun 2007)
Log Message:
-----------
correcting required component from "zino" to "zinc"
Modified Paths:
--------------
    trunk/data/commodities/chemicals.xml
Modified: trunk/data/commodities/chemicals.xml
===================================================================
(Binary files differ)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <ult...@us...> - 2007-06-18 09:20:10
      
     | 
| Revision: 569
          http://svn.sourceforge.net/opengate/?rev=569&view=rev
Author:   ultrasick
Date:     2007-06-18 02:20:10 -0700 (Mon, 18 Jun 2007)
Log Message:
-----------
removed the muscle, added a second eye instead
Modified Paths:
--------------
    trunk/data/commodities/prostheses.blend
    trunk/data/commodities/prostheses_290x290.png
    trunk/data/commodities/prostheses_76x76.png
Modified: trunk/data/commodities/prostheses.blend
===================================================================
(Binary files differ)
Modified: trunk/data/commodities/prostheses_290x290.png
===================================================================
(Binary files differ)
Modified: trunk/data/commodities/prostheses_76x76.png
===================================================================
(Binary files differ)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <ult...@us...> - 2007-06-18 00:30:26
      
     | 
| Revision: 568
          http://svn.sourceforge.net/opengate/?rev=568&view=rev
Author:   ultrasick
Date:     2007-06-17 17:30:27 -0700 (Sun, 17 Jun 2007)
Log Message:
-----------
correcting file name
Added Paths:
-----------
    trunk/data/commodities/prostheses.xml
Removed Paths:
-------------
    trunk/data/commodities/protheses.xml
Added: trunk/data/commodities/prostheses.xml
===================================================================
(Binary files differ)
Property changes on: trunk/data/commodities/prostheses.xml
___________________________________________________________________
Name: svn:mime-type
   + application/xml
Name: svn:eol-style
   + native
Deleted: trunk/data/commodities/protheses.xml
===================================================================
(Binary files differ)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <ult...@us...> - 2007-06-18 00:18:03
      
     | 
| Revision: 567
          http://svn.sourceforge.net/opengate/?rev=567&view=rev
Author:   ultrasick
Date:     2007-06-17 17:18:04 -0700 (Sun, 17 Jun 2007)
Log Message:
-----------
uploading missing xml file for the protheses
Added Paths:
-----------
    trunk/data/commodities/protheses.xml
Added: trunk/data/commodities/protheses.xml
===================================================================
(Binary files differ)
Property changes on: trunk/data/commodities/protheses.xml
___________________________________________________________________
Name: svn:mime-type
   + application/xml
Name: svn:eol-style
   + native
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <ult...@us...> - 2007-06-17 23:46:23
      
     | 
| Revision: 566
          http://svn.sourceforge.net/opengate/?rev=566&view=rev
Author:   ultrasick
Date:     2007-06-17 16:46:24 -0700 (Sun, 17 Jun 2007)
Log Message:
-----------
uploading commodity: protheses
Added Paths:
-----------
    trunk/data/commodities/prostheses.blend
    trunk/data/commodities/prostheses_290x290.png
    trunk/data/commodities/prostheses_76x76.png
Added: trunk/data/commodities/prostheses.blend
===================================================================
(Binary files differ)
Property changes on: trunk/data/commodities/prostheses.blend
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream
Added: trunk/data/commodities/prostheses_290x290.png
===================================================================
(Binary files differ)
Property changes on: trunk/data/commodities/prostheses_290x290.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream
Added: trunk/data/commodities/prostheses_76x76.png
===================================================================
(Binary files differ)
Property changes on: trunk/data/commodities/prostheses_76x76.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <spo...@us...> - 2007-06-17 21:32:56
      
     | 
| Revision: 565
          http://svn.sourceforge.net/opengate/?rev=565&view=rev
Author:   spom_spom
Date:     2007-06-17 14:32:55 -0700 (Sun, 17 Jun 2007)
Log Message:
-----------
Fixed some net issues and add grey skybox
Modified Paths:
--------------
    branches/ogsector/data/materials/simpleSkybox.material
    branches/ogsector/data/povray/buildSkyBox.sh
    branches/ogsector/data/simpleSkybox.zip
    branches/ogsector/src/GameStateManager.cpp
    branches/ogsector/src/Sector.cpp
    branches/ogsector/src/Sector.h
    branches/ogsector/src/SectorObjects.cpp
    branches/ogsector/src/SectorObjects.h
    branches/ogsector/src/networkProtocol.h
    branches/ogsector/src/networkServerUser.cpp
Modified: branches/ogsector/data/materials/simpleSkybox.material
===================================================================
--- branches/ogsector/data/materials/simpleSkybox.material	2007-06-17 13:51:31 UTC (rev 564)
+++ branches/ogsector/data/materials/simpleSkybox.material	2007-06-17 21:32:55 UTC (rev 565)
@@ -37,3 +37,20 @@
 		}
 	}
 }
+material OpenGate/SimpleSkyBox3
+{
+	technique
+	{
+		pass
+		{
+			lighting off
+			depth_write off
+
+			texture_unit
+			{
+				cubic_texture skybox3.png separateUV
+				tex_address_mode clamp
+			}
+		}
+	}
+}
Modified: branches/ogsector/data/povray/buildSkyBox.sh
===================================================================
--- branches/ogsector/data/povray/buildSkyBox.sh	2007-06-17 13:51:31 UTC (rev 564)
+++ branches/ogsector/data/povray/buildSkyBox.sh	2007-06-17 21:32:55 UTC (rev 565)
@@ -6,7 +6,7 @@
 RESOLUTION=512
 for POVFILE in $ALLPOVFILES; do
 	OUT=${POVFILE%.pov}
-	OUTNAME=$OUT'_'$RESOLUTION
+	OUTNAME=$OUT
 
 	for i in 0 1 2 3 4 5; do
 
Modified: branches/ogsector/data/simpleSkybox.zip
===================================================================
(Binary files differ)
Modified: branches/ogsector/src/GameStateManager.cpp
===================================================================
--- branches/ogsector/src/GameStateManager.cpp	2007-06-17 13:51:31 UTC (rev 564)
+++ branches/ogsector/src/GameStateManager.cpp	2007-06-17 21:32:55 UTC (rev 565)
@@ -197,18 +197,20 @@
 	MessageBodyChat msg( &msgs[ i ][ 0 ] );
 	log_->chat( devices_.network->userName( msg.senderID() ), msg.message() );
       } break;
-      case PROTO_SHIPREGISTER:
+      case PROTO_SHIP_REGISTER:
 	if ( sector ) sector->receiveVesselRegister( &msgs[ i ][ 0 ] ); break;
-      case PROTO_SHIPDEREGISTER:
+      case PROTO_SHIP_DEREGISTER:
 	if ( sector ) sector->receiveVesselDeRegister( &msgs[ i ][ 0 ] ); break;
-      case PROTO_SHIPSTATUS:
+      case PROTO_SHIP_STATUS:
 	if ( sector ) sector->receiveVesselStatus( &msgs[ i ][ 0 ] ); break;
-      case PROTO_SHIPMOVEMENT:{
+      case PROTO_SHIP_MOVEMENT:{
 	//** we handle that in sum, so we can ignore dups because of packet loss
 	MessageBodyShipMovement *msg = new MessageBodyShipMovement( &msgs[ i ][ 0 ] );
 	movements.push_back( msg );
       } break;
-      case PROTO_SHIPAMMOHIT:
+      case PROTO_SHIP_PROJECTILEFIRED:
+	if ( sector ) sector->receiveProjectile( &msgs[ i ][ 0 ] );  break;
+      case PROTO_SHIP_AMMOHIT:
 	if ( sector ) sector->receiveVesselAmmoHit( &msgs[ i ][ 0 ] );  break;
       default:
 	std::cerr << "PROTO type unknown: " << msgs[ i ][ 0 ] << " " << msgs[ i ].size() << std::endl;
Modified: branches/ogsector/src/Sector.cpp
===================================================================
--- branches/ogsector/src/Sector.cpp	2007-06-17 13:51:31 UTC (rev 564)
+++ branches/ogsector/src/Sector.cpp	2007-06-17 21:32:55 UTC (rev 565)
@@ -71,7 +71,7 @@
   collsionDetection_ = new OpcodeCollisionDetection( sceneMgr_ );
 
   //** Create a skybox;
-  sceneMgr_->setSkyBox( true, "OpenGate/SimpleSkyBox1" );
+  sceneMgr_->setSkyBox( true, "OpenGate/SimpleSkyBox3" );
 
   //*** starfield test 1
 //    Ogre::ManualObject* myManualObject =  sceneMgr_->createManualObject("manual1"); 
@@ -607,6 +607,7 @@
       obj->mainNode()->setPosition( msg.position() );
       obj->setMass( msg.mass() );
       obj->setMaxShield( msg.maxShield() );
+      obj->setMaxThrust( msg.maxThrust() );
 
     } else {
       log_->info( "Create ai object " + msg.name()+ " " + toStr( msg.senderID() ) + " " + 
@@ -745,4 +746,27 @@
   }
 }
 
+void Sector::sendProjectile( const Projectile & projectile ){
+  if ( network_->online() ){
+    MessageBodyShipProjectileFired msg( projectile.parent().childID(), projectile.shotCount(),
+					projectile.position(), projectile.velocity(), 
+					projectile.damage(), projectile.liveTime() );
+    network_->send( msg );
+  }
+}
+
+void Sector::receiveProjectile( const MessageBodyShipProjectileFired & msg ){
+  if ( msg.senderID() != network_->userID() ){
+
+    std::map< long, SectorObjectMoveable * >::iterator it;
+    if ( ( it = movableObjects_.find( createGlobalID( msg.senderID(), msg.childID() ) ) ) != movableObjects_.end() ){
+      Projectile * pro = new Projectile( it->second, msg.shotCount(), msg.velocity().length(), msg.damage(), msg.liveTime() );
+      it->second->addProjectile( pro );    
+    } else {
+      log_->warn( "Unknown shooter" );
+    }
+  }
+}
+
+
 } // namespace OpenGate
Modified: branches/ogsector/src/Sector.h
===================================================================
--- branches/ogsector/src/Sector.h	2007-06-17 13:51:31 UTC (rev 564)
+++ branches/ogsector/src/Sector.h	2007-06-17 21:32:55 UTC (rev 565)
@@ -95,6 +95,9 @@
   void sendVesselAmmoHit( const Projectile & projectile, BaseObject * victim );
   void receiveVesselAmmoHit( const MessageBodyShipAmmoHit & msg );
 
+  void sendProjectile( const Projectile & projectile );
+  void receiveProjectile( const MessageBodyShipProjectileFired & msg );
+
 protected:
   Ogre::SceneManager * sceneMgr_;
   NetworkClient * network_;
Modified: branches/ogsector/src/SectorObjects.cpp
===================================================================
--- branches/ogsector/src/SectorObjects.cpp	2007-06-17 13:51:31 UTC (rev 564)
+++ branches/ogsector/src/SectorObjects.cpp	2007-06-17 21:32:55 UTC (rev 565)
@@ -48,8 +48,9 @@
   sceneMgr_->getRootSceneNode()->removeAndDestroyChild( mainNode_->getName() );
 }
 
-Projectile::Projectile( BaseObject * parent, long shotCounter, Ogre::Real speed )
-  : BaseObject( parent->name() + "_" + toStr( shotCounter ), parent->sector() ), parent_( parent ) {
+Projectile::Projectile( BaseObject * parent, long shotCounter, Ogre::Real speed, Uint32 damage, Ogre::Real liveTime )
+  : BaseObject( parent->name() + "_" + toStr( shotCounter ), parent->sector() ), parent_( parent ), 
+    shotCount_( shotCounter),  damage_( damage ), maxLiveTime_( liveTime ){
   selectable_ = false;
 
   Ogre::String bulletName( name_ + "_" + toStr( shotCounter ) );
@@ -115,11 +116,9 @@
 
   //  mainNode_->setOrientation( direction );
 
-  maxLiveTime_ = 1.4;
   lifeTime_ = 0.0;
   oldTime_ = 0.0;
 
-  damage_ = 5000 * 1000;
   vel_ = speed * -direction.zAxis().normalisedCopy() + parent->velocity();
 }
 
@@ -517,7 +516,7 @@
   if ( thrusterParticles_ ){
     int nEmits = thrusterParticles_->getNumEmitters( );
     Ogre::Real thrustRate = 0;
-    if ( maxThrust() > 0 ) thrustRate = thrust() / maxThrust();
+    if ( maxThrust() > 0 ) thrustRate = (float)thrust_ / maxThrust_ * 100;
     
     for ( int i = 0; i < nEmits; i ++ ){
       Ogre::ParticleEmitter * pEmit;
@@ -565,6 +564,10 @@
   }
 }
 
+void SectorObjectMoveable::addProjectile( Projectile * pro ){
+  projectiles_.insert( pro );
+}
+
 SectorObjectMoveableLocal::SectorObjectMoveableLocal( const Ogre::String & name, Sector * sector, long userID, int childID,  
 						      Vessel * vessel )
   : SectorObjectMoveable( name, sector, userID, childID, vessel ){
@@ -607,10 +610,14 @@
 
   if ( fireDelay_ <= 0 ){
 
-    Uint32 damage = 500000;
+    Uint32 damage = 1000000;
+    Ogre::Real liveTime = 1.4;
     if ( firePressed_ ){
       if ( capacity_ > damage ){
-	projectiles_.insert( new Projectile( this, shotsFired_, ammoSpeed_ ) );
+	Projectile * pro = new Projectile( this, shotsFired_, ammoSpeed_, damage, liveTime );
+	addProjectile( pro );
+	sector_->sendProjectile( *pro );
+
 	fireDelay_ = delayTime;
 	shotsFired_++;
 	capacity_ -= damage;
Modified: branches/ogsector/src/SectorObjects.h
===================================================================
--- branches/ogsector/src/SectorObjects.h	2007-06-17 13:51:31 UTC (rev 564)
+++ branches/ogsector/src/SectorObjects.h	2007-06-17 21:32:55 UTC (rev 565)
@@ -92,7 +92,7 @@
 
 class Projectile : public BaseObject {
 public:
-  Projectile( BaseObject * parent, long shotCount, Ogre::Real speed );
+  Projectile( BaseObject * parent, long shotCount, Ogre::Real speed, Uint32 damage, Ogre::Real liveTime );
 
   virtual ~Projectile();
 
@@ -109,9 +109,16 @@
   BaseObject & parent( ) const { return *parent_; }
 
   Ogre::Vector3 velocity() const { return vel_; }
+  Ogre::Vector3 position() const { return Ogre::Vector3( mainNode_->getPosition() ); }
 
+  Ogre::Real liveTime() const { return maxLiveTime_; }
+
+  Uint16 shotCount() const { return shotCount_; }
+
 protected:
   BaseObject * parent_;
+  Uint16 shotCount_;
+  Uint32 damage_;
   //  Ogre::BillboardChain * chain_;
   Ogre::BillboardSet * bbs_;
   //  Ogre::ManualObject * bullet_;
@@ -119,7 +126,6 @@
 
   Ogre::Real maxLiveTime_;
   Ogre::Real oldTime_;
-  Uint32 damage_;
 };
 
 class SectorObject : public BaseObject {
@@ -278,6 +284,8 @@
   /*! The Object is death, starts a sequence for the explosion. */
   virtual bool deathSequence( Ogre::Real elapsedTime );
 
+  void addProjectile( Projectile * pro );
+
 protected:
   void inititializeVesselStats_();
   
Modified: branches/ogsector/src/networkProtocol.h
===================================================================
--- branches/ogsector/src/networkProtocol.h	2007-06-17 13:51:31 UTC (rev 564)
+++ branches/ogsector/src/networkProtocol.h	2007-06-17 21:32:55 UTC (rev 565)
@@ -40,12 +40,13 @@
 #define PROTO_DISCONNECT 5
 #define PROTO_CONNECTION_REFUSED 6
 #define PROTO_CHAT 7
-#define PROTO_SHIPBASE 10
-#define PROTO_SHIPREGISTER 11
-#define PROTO_SHIPDEREGISTER 12
-#define PROTO_SHIPSTATUS 13
-#define PROTO_SHIPMOVEMENT 14
-#define PROTO_SHIPAMMOHIT 15
+#define PROTO_SHIP_BASE 10
+#define PROTO_SHIP_REGISTER 11
+#define PROTO_SHIP_DEREGISTER 12
+#define PROTO_SHIP_STATUS 13
+#define PROTO_SHIP_MOVEMENT 14
+#define PROTO_SHIP_AMMOHIT 15
+#define PROTO_SHIP_PROJECTILEFIRED 16
 #define PROTO_TEST 255
 
 #define CONNECTION_REFUSED_USER_ALREADY_EXIST 1
@@ -277,7 +278,7 @@
 public:
   MessageBodyShipBase( Uint8 childID )
     : MessageBodyBase(), childID_( childID ){
-    type_ = (Uint8)PROTO_SHIPBASE;
+    type_ = (Uint8)PROTO_SHIP_BASE;
   }
 
   MessageBodyShipBase( const char * data ) : MessageBodyBase( data ){
@@ -308,7 +309,7 @@
     : MessageBodyShipBase( childID ), name_( name ), pos_( pos ), vesselID_( vesselID ),
       mass_( mass ), maxShield_( maxShield ), maxThrust_( maxThrust ){
     senderID_ = senderID;
-    type_ = (Uint8)PROTO_SHIPREGISTER;
+    type_ = (Uint8)PROTO_SHIP_REGISTER;
   }
 
   MessageBodyShipRegister( const char * data ) : MessageBodyShipBase( data ){
@@ -367,7 +368,7 @@
 public:
   MessageBodyShipDeRegister( const Uint32 senderID, const Uint8 childID ): MessageBodyShipBase( childID ){
     senderID_ = senderID;
-    type_ = (Uint8)PROTO_SHIPDEREGISTER;
+    type_ = (Uint8)PROTO_SHIP_DEREGISTER;
   }
   
   MessageBodyShipDeRegister( const char * data ) : MessageBodyShipBase( data ){ }
@@ -393,7 +394,7 @@
 			   Uint32 thrust, float yaw, float pitch, float roll, int seq )
     : MessageBodyShipBase( childID ), pos_( pos ), vel_( vel ), orient_( orient ),
       thrust_( thrust ), yaw_( yaw ), pitch_( pitch ), roll_( roll ), seqNr_( seq ) {
-    type_ = (Uint8)PROTO_SHIPMOVEMENT;
+    type_ = (Uint8)PROTO_SHIP_MOVEMENT;
   }
 
   MessageBodyShipMovement( const char * data ) : MessageBodyShipBase( data ){
@@ -465,7 +466,7 @@
   MessageBodyShipStatus( Uint8 childID, Uint32 shield, Uint32 armor, bool fire, bool afterburner, bool breakPressed )
     : MessageBodyShipBase( childID ), shield_( shield ), armor_( armor ),
       fire_( fire ), afterburner_( afterburner ), break_( breakPressed ) {
-    type_ = (Uint8)PROTO_SHIPSTATUS;
+    type_ = (Uint8)PROTO_SHIP_STATUS;
   }
 
   MessageBodyShipStatus( const char * data ) : MessageBodyShipBase( data ){
@@ -511,11 +512,54 @@
   bool break_;
 };
 
+class MessageBodyShipProjectileFired : public MessageBodyShipBase {
+public:
+  MessageBodyShipProjectileFired( Uint8 childID, Uint16 shotCount, const Ogre::Vector3 & pos, 
+				  const Ogre::Vector3 & vel, Uint32 damage, Ogre::Real liveTime )
+    : MessageBodyShipBase( childID ), shotCount_( shotCount ), pos_( pos ), 
+      vel_( vel ), damage_( damage ), liveTime_( liveTime ) {
+    type_ = (Uint8)PROTO_SHIP_PROJECTILEFIRED;
+  }
+  MessageBodyShipProjectileFired( const char * data )
+    : MessageBodyShipBase( data ){
+    int count = MessageBodyShipBase::dataSize();
+    readFromData( shotCount_, data, count );
+    readFromData( pos_,       data, count );
+    readFromData( vel_,       data, count );
+    readFromData( damage_,    data, count );
+    readFromData( liveTime_,  data, count );
+  }
+
+  ~MessageBodyShipProjectileFired( ){}
+
+  void createOutStream() {
+    MessageBodyShipBase::createOutStream();
+    writeToOut( out_, shotCount_ );
+    writeToOut( out_, pos_ );
+    writeToOut( out_, vel_ );
+    writeToOut( out_, damage_ );
+    writeToOut( out_, liveTime_ );
+  }
+
+  Uint16 shotCount() const { return shotCount_ ; }
+  Ogre::Vector3 position() const { return pos_; }
+  Ogre::Vector3 velocity() const { return vel_; }
+  Uint32 damage() const { return damage_; }
+  Ogre::Real liveTime() const { return liveTime_; }
+
+protected:
+  Uint16         shotCount_;
+  Ogre::Vector3  pos_;
+  Ogre::Vector3  vel_;
+  Uint32         damage_;
+  Ogre::Real    liveTime_;
+};
+
 class MessageBodyShipAmmoHit : public MessageBodyShipBase {
 public:
   MessageBodyShipAmmoHit( Uint8 childID, Uint32 targetID, Uint8 targetChildID, Uint32 damage )
     : MessageBodyShipBase( childID ), targetID_( targetID ),  targetChildID_( targetChildID ), damage_( damage ) {
-    type_ = (Uint8)PROTO_SHIPAMMOHIT;
+    type_ = (Uint8)PROTO_SHIP_AMMOHIT;
   }
 
   MessageBodyShipAmmoHit( const char * data )
Modified: branches/ogsector/src/networkServerUser.cpp
===================================================================
--- branches/ogsector/src/networkServerUser.cpp	2007-06-17 13:51:31 UTC (rev 564)
+++ branches/ogsector/src/networkServerUser.cpp	2007-06-17 21:32:55 UTC (rev 565)
@@ -132,21 +132,21 @@
       MessageBodyChat msg( readMsg_.body() );
       server_->receiveChat( this, msg );
     } break;      
-    case PROTO_SHIPREGISTER:{
+    case PROTO_SHIP_REGISTER:{
       MessageBodyShipRegister msg( readMsg_.body() );
       server_->receiveShipRegister( this, msg );
     } break;
-    case PROTO_SHIPDEREGISTER:{
+    case PROTO_SHIP_DEREGISTER:{
       MessageBodyShipDeRegister msg( readMsg_.body() );
       server_->receiveShipDeRegister( this, msg );
     } break;
-    case PROTO_SHIPSTATUS:{
+    case PROTO_SHIP_STATUS:{
       MessageBodyShipStatus msg( readMsg_.body() );
 //       if ( msg.childID() > 0 )
 // 	LogManager::getSingleton().fatal( std::string( "PROTO_SHIPSTATUS: " ) + child( msg.childID() )->name() );
       sendToRange( msg );
     } break;
-    case PROTO_SHIPMOVEMENT:{
+    case PROTO_SHIP_MOVEMENT:{
       MessageBodyShipMovement msg( readMsg_.body() );
       child( msg.childID() )->setPosition( msg.position() );
 //       if ( msg.childID() > 0 )
@@ -154,10 +154,14 @@
 // 					  " " + toStr( msg.position() ) );
       sendToRange( msg );
     } break;
-    case PROTO_SHIPAMMOHIT:{
+    case PROTO_SHIP_AMMOHIT:{
       MessageBodyShipAmmoHit msg( readMsg_.body() );
       sendToRange( msg );
     } break;
+    case PROTO_SHIP_PROJECTILEFIRED:{
+      MessageBodyShipProjectileFired msg( readMsg_.body() );
+      sendToRange( msg );
+    } break;
     default:
       LogManager::getSingleton().fatal( std::string( "PROTO_UNKNOWN: " ) + toStr( (int)base.type() ) );
       break;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <spo...@us...> - 2007-06-17 13:51:31
      
     | 
| Revision: 564
          http://svn.sourceforge.net/opengate/?rev=564&view=rev
Author:   spom_spom
Date:     2007-06-17 06:51:31 -0700 (Sun, 17 Jun 2007)
Log Message:
-----------
litte code renovation
Modified Paths:
--------------
    branches/ogsector/data/gui/schemes/opengate/BlueHighway-10.font
    branches/ogsector/data/gui/schemes/opengate/BlueHighway-12.font
    branches/ogsector/data/gui/schemes/opengate/BlueHighway-14.font
    branches/ogsector/data/gui/schemes/opengate/BlueHighway-16.font
    branches/ogsector/data/gui/schemes/opengate/BlueHighway-18.font
    branches/ogsector/data/gui/schemes/opengate/BlueHighway-8.font
    branches/ogsector/data/gui/schemes/opengate/opengate.imageset
    branches/ogsector/data/gui/schemes/opengate/opengate.png
    branches/ogsector/src/DeviceManager.cpp
    branches/ogsector/src/DeviceManager.h
    branches/ogsector/src/Entity.cpp
    branches/ogsector/src/Entity.h
    branches/ogsector/src/EntityManager.cpp
    branches/ogsector/src/GameStateManager.cpp
    branches/ogsector/src/MarketDialog.cpp
    branches/ogsector/src/OpcodeWrapper.h
    branches/ogsector/src/Sector.cpp
    branches/ogsector/src/Sector.h
    branches/ogsector/src/SectorObjects.cpp
    branches/ogsector/src/SectorObjects.h
    branches/ogsector/src/ShipConfigDialog.cpp
    branches/ogsector/src/ShipConfigDialog.h
    branches/ogsector/src/UnDockedState.cpp
    branches/ogsector/src/Vessel.cpp
    branches/ogsector/src/Vessel.h
    branches/ogsector/src/VesselManager.cpp
    branches/ogsector/src/common.h
    branches/ogsector/src/networkProtocol.h
    branches/ogsector/src/networkServer.cpp
    branches/ogsector/src/networkServerUser.h
Removed Paths:
-------------
    branches/ogsector/data/ships/squadrok/squid/
Modified: branches/ogsector/data/gui/schemes/opengate/BlueHighway-10.font
===================================================================
--- branches/ogsector/data/gui/schemes/opengate/BlueHighway-10.font	2007-06-17 13:48:07 UTC (rev 563)
+++ branches/ogsector/data/gui/schemes/opengate/BlueHighway-10.font	2007-06-17 13:51:31 UTC (rev 564)
@@ -1,2 +1,2 @@
 <?xml version="1.0" ?>
-<Font Name="BlueHighway-10" Filename="BlueHighway.ttf" Type="FreeType" Size="10" NativeHorzRes="800" NativeVertRes="600" AutoScaled="false" />
+<Font Name="BlueHighway-10" Filename="BlueHighway.ttf" Type="FreeType" Size="10" NativeHorzRes="1024" NativeVertRes="768" AutoScaled="true" />
Modified: branches/ogsector/data/gui/schemes/opengate/BlueHighway-12.font
===================================================================
--- branches/ogsector/data/gui/schemes/opengate/BlueHighway-12.font	2007-06-17 13:48:07 UTC (rev 563)
+++ branches/ogsector/data/gui/schemes/opengate/BlueHighway-12.font	2007-06-17 13:51:31 UTC (rev 564)
@@ -1,2 +1,2 @@
 <?xml version="1.0" ?>
-<Font Name="BlueHighway-12" Filename="BlueHighway.ttf" Type="FreeType" Size="12" NativeHorzRes="800" NativeVertRes="600" AutoScaled="false" />
+<Font Name="BlueHighway-12" Filename="BlueHighway.ttf" Type="FreeType" Size="12" NativeHorzRes="1024" NativeVertRes="768" AutoScaled="true" />
Modified: branches/ogsector/data/gui/schemes/opengate/BlueHighway-14.font
===================================================================
--- branches/ogsector/data/gui/schemes/opengate/BlueHighway-14.font	2007-06-17 13:48:07 UTC (rev 563)
+++ branches/ogsector/data/gui/schemes/opengate/BlueHighway-14.font	2007-06-17 13:51:31 UTC (rev 564)
@@ -1,2 +1,2 @@
 <?xml version="1.0" ?>
-<Font Name="BlueHighway-14" Filename="BlueHighway.ttf" Type="FreeType" Size="14" NativeHorzRes="800" NativeVertRes="600" AutoScaled="false" />
+<Font Name="BlueHighway-14" Filename="BlueHighway.ttf" Type="FreeType" Size="14" NativeHorzRes="1024" NativeVertRes="768" AutoScaled="true" />
Modified: branches/ogsector/data/gui/schemes/opengate/BlueHighway-16.font
===================================================================
--- branches/ogsector/data/gui/schemes/opengate/BlueHighway-16.font	2007-06-17 13:48:07 UTC (rev 563)
+++ branches/ogsector/data/gui/schemes/opengate/BlueHighway-16.font	2007-06-17 13:51:31 UTC (rev 564)
@@ -1,2 +1,2 @@
 <?xml version="1.0" ?>
-<Font Name="BlueHighway-16" Filename="BlueHighway.ttf" Type="FreeType" Size="16" NativeHorzRes="800" NativeVertRes="600" AutoScaled="false" />
+<Font Name="BlueHighway-16" Filename="BlueHighway.ttf" Type="FreeType" Size="16" NativeHorzRes="1024" NativeVertRes="768" AutoScaled="true" />
Modified: branches/ogsector/data/gui/schemes/opengate/BlueHighway-18.font
===================================================================
--- branches/ogsector/data/gui/schemes/opengate/BlueHighway-18.font	2007-06-17 13:48:07 UTC (rev 563)
+++ branches/ogsector/data/gui/schemes/opengate/BlueHighway-18.font	2007-06-17 13:51:31 UTC (rev 564)
@@ -1,2 +1,2 @@
 <?xml version="1.0" ?>
-<Font Name="BlueHighway-18" Filename="BlueHighway.ttf" Type="FreeType" Size="18" NativeHorzRes="800" NativeVertRes="600" AutoScaled="false" />
+<Font Name="BlueHighway-18" Filename="BlueHighway.ttf" Type="FreeType" Size="18" NativeHorzRes="1024" NativeVertRes="768" AutoScaled="true" />
Modified: branches/ogsector/data/gui/schemes/opengate/BlueHighway-8.font
===================================================================
--- branches/ogsector/data/gui/schemes/opengate/BlueHighway-8.font	2007-06-17 13:48:07 UTC (rev 563)
+++ branches/ogsector/data/gui/schemes/opengate/BlueHighway-8.font	2007-06-17 13:51:31 UTC (rev 564)
@@ -1,2 +1,2 @@
 <?xml version="1.0" ?>
-<Font Name="BlueHighway-8" Filename="BlueHighway.ttf" Type="FreeType" Size="8" NativeHorzRes="800" NativeVertRes="600" AutoScaled="false" />
+<Font Name="BlueHighway-8" Filename="BlueHighway.ttf" Type="FreeType" Size="8" NativeHorzRes="1024" NativeVertRes="768" AutoScaled="true" />
Modified: branches/ogsector/data/gui/schemes/opengate/opengate.imageset
===================================================================
--- branches/ogsector/data/gui/schemes/opengate/opengate.imageset	2007-06-17 13:48:07 UTC (rev 563)
+++ branches/ogsector/data/gui/schemes/opengate/opengate.imageset	2007-06-17 13:51:31 UTC (rev 564)
@@ -68,75 +68,65 @@
 	<Image Name="IconCommodityNormal"     XPos="142" YPos="256" Width="15" Height="15" />
 	<Image Name="IconCommodityHover"      XPos="142" YPos="272" Width="15" Height="15" />
 	<Image Name="IconCommodity0"          XPos="142" YPos="288" Width="15" Height="15" />
-	<Image Name="IconCommodity1"          XPos="142" YPos="288" Width="15" Height="15" />
-	<Image Name="IconCommodity2"          XPos="142" YPos="304" Width="15" Height="15" />
-	<Image Name="IconCommodity3"          XPos="142" YPos="320" Width="15" Height="15" />
-	<Image Name="IconCommodity4"          XPos="142" YPos="336" Width="15" Height="15" />
+	<Image Name="IconCommodity1"          XPos="142" YPos="304" Width="15" Height="15" />
+	<Image Name="IconCommodity2"          XPos="142" YPos="320" Width="15" Height="15" />
+	<Image Name="IconCommodity3"          XPos="142" YPos="336" Width="15" Height="15" />
 	<Image Name="IconPowerplantNormal"    XPos="158" YPos="256" Width="15" Height="15" />
 	<Image Name="IconPowerplantHover"     XPos="158" YPos="272" Width="15" Height="15" />
 	<Image Name="IconPowerplant0"         XPos="158" YPos="288" Width="15" Height="15" />
-	<Image Name="IconPowerplant1"         XPos="158" YPos="288" Width="15" Height="15" />
-	<Image Name="IconPowerplant2"         XPos="158" YPos="304" Width="15" Height="15" />
-	<Image Name="IconPowerplant3"         XPos="158" YPos="320" Width="15" Height="15" />
-	<Image Name="IconPowerplant4"         XPos="158" YPos="336" Width="15" Height="15" />
+	<Image Name="IconPowerplant1"         XPos="158" YPos="304" Width="15" Height="15" />
+	<Image Name="IconPowerplant2"         XPos="158" YPos="320" Width="15" Height="15" />
+	<Image Name="IconPowerplant3"         XPos="158" YPos="336" Width="15" Height="15" />
 	<Image Name="IconEngineNormal"        XPos="174" YPos="256" Width="16" Height="15" />
 	<Image Name="IconEngineHover"         XPos="174" YPos="272" Width="16" Height="15" />
 	<Image Name="IconEngine0"             XPos="174" YPos="288" Width="15" Height="15" />
-	<Image Name="IconEngine1"             XPos="174" YPos="288" Width="15" Height="15" />
-	<Image Name="IconEngine2"             XPos="174" YPos="304" Width="15" Height="15" />
-	<Image Name="IconEngine3"             XPos="174" YPos="320" Width="15" Height="15" />
-	<Image Name="IconEngine4"             XPos="174" YPos="336" Width="15" Height="15" />
+	<Image Name="IconEngine1"             XPos="174" YPos="304" Width="15" Height="15" />
+	<Image Name="IconEngine2"             XPos="174" YPos="320" Width="15" Height="15" />
+	<Image Name="IconEngine3"             XPos="174" YPos="336" Width="15" Height="15" />
 	<Image Name="IconRadarNormal"         XPos="190" YPos="256" Width="15" Height="15" />
 	<Image Name="IconRadarHover"          XPos="190" YPos="272" Width="15" Height="15" />
 	<Image Name="IconRadar0"              XPos="190" YPos="288" Width="15" Height="15" />
-	<Image Name="IconRadar1"              XPos="190" YPos="288" Width="15" Height="15" />
-	<Image Name="IconRadar2"              XPos="190" YPos="304" Width="15" Height="15" />
-	<Image Name="IconRadar3"              XPos="190" YPos="320" Width="15" Height="15" />
-	<Image Name="IconRadar4"              XPos="190" YPos="336" Width="15" Height="15" />
+	<Image Name="IconRadar1"              XPos="190" YPos="304" Width="15" Height="15" />
+	<Image Name="IconRadar2"              XPos="190" YPos="320" Width="15" Height="15" />
+	<Image Name="IconRadar3"              XPos="190" YPos="336" Width="15" Height="15" />
 	<Image Name="IconECMNormal"           XPos="206" YPos="256" Width="15" Height="15" />
 	<Image Name="IconECMHover"            XPos="206" YPos="272" Width="15" Height="15" />
 	<Image Name="IconECM0"                XPos="206" YPos="288" Width="15" Height="15" />
-	<Image Name="IconECM1"                XPos="206" YPos="288" Width="15" Height="15" />
-	<Image Name="IconECM2"                XPos="206" YPos="304" Width="15" Height="15" />
-	<Image Name="IconECM3"                XPos="206" YPos="320" Width="15" Height="15" />
-	<Image Name="IconECM4"                XPos="206" YPos="336" Width="15" Height="15" />
+	<Image Name="IconECM1"                XPos="206" YPos="304" Width="15" Height="15" />
+	<Image Name="IconECM2"                XPos="206" YPos="320" Width="15" Height="15" />
+	<Image Name="IconECM3"                XPos="206" YPos="336" Width="15" Height="15" />
 	<Image Name="IconCapacitorNormal"     XPos="222" YPos="256" Width="15" Height="15" />
 	<Image Name="IconCapacitorHover"      XPos="222" YPos="272" Width="15" Height="15" />
 	<Image Name="IconCapacitor0"          XPos="222" YPos="288" Width="15" Height="15" />
-	<Image Name="IconCapacitor1"          XPos="222" YPos="288" Width="15" Height="15" />
-	<Image Name="IconCapacitor2"          XPos="222" YPos="304" Width="15" Height="15" />
-	<Image Name="IconCapacitor3"          XPos="222" YPos="320" Width="15" Height="15" />
-	<Image Name="IconCapacitor4"          XPos="222" YPos="336" Width="15" Height="15" />
+	<Image Name="IconCapacitor1"          XPos="222" YPos="304" Width="15" Height="15" />
+	<Image Name="IconCapacitor2"          XPos="222" YPos="320" Width="15" Height="15" />
+	<Image Name="IconCapacitor3"          XPos="222" YPos="336" Width="15" Height="15" />
 	<Image Name="IconShieldNormal"        XPos="238" YPos="256" Width="15" Height="15" />
 	<Image Name="IconShieldHover"         XPos="238" YPos="272" Width="15" Height="15" />
 	<Image Name="IconShield0"             XPos="238" YPos="288" Width="15" Height="15" />
-	<Image Name="IconShield1"             XPos="238" YPos="288" Width="15" Height="15" />
-	<Image Name="IconShield2"             XPos="238" YPos="304" Width="15" Height="15" />
-	<Image Name="IconShield3"             XPos="228" YPos="320" Width="15" Height="15" />
-	<Image Name="IconShield4"             XPos="238" YPos="336" Width="15" Height="15" />
+	<Image Name="IconShield1"             XPos="238" YPos="304" Width="15" Height="15" />
+	<Image Name="IconShield2"             XPos="238" YPos="320" Width="15" Height="15" />
+	<Image Name="IconShield3"             XPos="238" YPos="336" Width="15" Height="15" />
 	<Image Name="IconGunNormal"           XPos="254" YPos="256" Width="15" Height="15" />
 	<Image Name="IconGunHover"            XPos="254" YPos="272" Width="15" Height="15" />
 	<Image Name="IconGun0"                XPos="254" YPos="288" Width="15" Height="15" />
-	<Image Name="IconGun1"                XPos="254" YPos="288" Width="15" Height="15" />
-	<Image Name="IconGun2"                XPos="254" YPos="304" Width="15" Height="15" />
-	<Image Name="IconGun3"                XPos="254" YPos="320" Width="15" Height="15" />
-	<Image Name="IconGun4"                XPos="254" YPos="336" Width="15" Height="15" />
+	<Image Name="IconGun1"                XPos="254" YPos="304" Width="15" Height="15" />
+	<Image Name="IconGun2"                XPos="254" YPos="320" Width="15" Height="15" />
+	<Image Name="IconGun3"                XPos="254" YPos="336" Width="15" Height="15" />
 	<Image Name="IconMissileNormal"       XPos="270" YPos="256" Width="15" Height="15" />
 	<Image Name="IconMissileHover"        XPos="270" YPos="272" Width="15" Height="15" />
 	<Image Name="IconMissile0"            XPos="270" YPos="288" Width="15" Height="15" />
-	<Image Name="IconMissile1"            XPos="270" YPos="288" Width="15" Height="15" />
-	<Image Name="IconMissile2"            XPos="270" YPos="304" Width="15" Height="15" />
-	<Image Name="IconMissile3"            XPos="270" YPos="320" Width="15" Height="15" />
-	<Image Name="IconMissile4"            XPos="270" YPos="336" Width="15" Height="15" />
+	<Image Name="IconMissile1"            XPos="270" YPos="304" Width="15" Height="15" />
+	<Image Name="IconMissile2"            XPos="270" YPos="320" Width="15" Height="15" />
+	<Image Name="IconMissile3"            XPos="270" YPos="336" Width="15" Height="15" />
 	<Image Name="IconMODxNormal"          XPos="286" YPos="256" Width="15" Height="15" />
 	<Image Name="IconMODxHover"           XPos="286" YPos="272" Width="15" Height="15" />
 	<Image Name="IconMODx0"               XPos="286" YPos="288" Width="15" Height="15" />
-	<Image Name="IconMODx1"               XPos="286" YPos="288" Width="15" Height="15" />
-	<Image Name="IconMODx2"               XPos="286" YPos="304" Width="15" Height="15" />
-	<Image Name="IconMODx3"               XPos="286" YPos="320" Width="15" Height="15" />
-	<Image Name="IconMODx4"               XPos="286" YPos="336" Width="15" Height="15" />
-	<Image Name="IconStorageNormal"        XPos="410" YPos="256" Width="15" Height="15" />
-	<Image Name="IconStorageHover"         XPos="426" YPos="256" Width="15" Height="15" />
+	<Image Name="IconMODx1"               XPos="286" YPos="304" Width="15" Height="15" />
+	<Image Name="IconMODx2"               XPos="286" YPos="320" Width="15" Height="15" />
+	<Image Name="IconMODx3"               XPos="286" YPos="336" Width="15" Height="15" />
+	<Image Name="IconStorageNormal"       XPos="410" YPos="256" Width="15" Height="15" />
+	<Image Name="IconStorageHover"        XPos="426" YPos="256" Width="15" Height="15" />
 
 	<Image Name="IconSize1"               XPos="473" YPos="223" Width="12" Height="26" />
 	<Image Name="IconSize2"               XPos="460" YPos="223" Width="12" Height="26" />
Modified: branches/ogsector/data/gui/schemes/opengate/opengate.png
===================================================================
(Binary files differ)
Modified: branches/ogsector/src/DeviceManager.cpp
===================================================================
--- branches/ogsector/src/DeviceManager.cpp	2007-06-17 13:48:07 UTC (rev 563)
+++ branches/ogsector/src/DeviceManager.cpp	2007-06-17 13:51:31 UTC (rev 564)
@@ -18,13 +18,19 @@
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
 
+#include "tinyxml/tinyxml.h"
 #include "DeviceManager.h"
+#include "LogManager.h"
+#include <OgreArchiveManager.h>
+#include <OgreFileSystem.h>
 
 namespace OpenGate{
 
 template<> DeviceManager * Ogre::Singleton< DeviceManager >::ms_Singleton = 0;
 
 DeviceManager::DeviceManager( ) : modifier_( KEY_NONE ){
+  log_ = LogManager::getSingletonPtr();
+
   ogreRoot      = NULL;
   renderWindow  = NULL;
   inputManager  = NULL;
@@ -40,6 +46,64 @@
 DeviceManager::~DeviceManager( ) {
 }
 
+std::string DeviceManager::factionName( int id ) {
+  if ( factionIDs_.count( id ) ){
+    return factionIDs_[ id ];
+  }
+  return "unknown";
+}
+
+void DeviceManager::loadGlobalIDs(const std::set < std::string > & resourcePaths, const std::string & fileName ){
+
+  Ogre::FileSystemArchive * pArch = new Ogre::FileSystemArchive( (*resourcePaths.begin()), "FileSystem" );
+  Ogre::StringVectorPtr file = pArch->find( fileName, true, false);
+
+  std::string fileFullName( fileName );
+  if ( (*file).size() > 0 ){
+    fileFullName = (*resourcePaths.begin() ) + "/" + (*file)[ 0 ] ;
+  }
+
+  for ( unsigned int i = 0; i < (*file).size(); i ++ ){
+    log_->info( std::string( "Found ressource: " ) + (*resourcePaths.begin() ) + "/" + (*file)[ i ] );
+  }
+  delete pArch;
+
+  TiXmlDocument doc( fileFullName );
+  bool loadOkay = doc.LoadFile();
+
+  if ( !loadOkay ) {
+    log_->fatal( std::string( "Failed to load id file: " + fileName ) );
+    return;
+  }
+
+  TiXmlHandle docHandle( &doc );
+  TiXmlElement *pElem, *pElemId, *pElemName;
+  TiXmlHandle hRoot( 0 );
+
+  pElem = docHandle.FirstChildElement().Element();
+  hRoot = TiXmlHandle( pElem );
+
+  if ( !pElem ) {
+    log_->fatal( fileName + " cannot read first node." );
+    return;
+  }
+
+  if ( strcmp( "container", pElem->Value() ) != 0 ) {
+    log_->fatal( fileName + " is no container description" );
+    return;
+  }
+
+  for ( pElem = hRoot.FirstChild( "faction" ).Element(); pElem != 0; pElem = pElem->NextSiblingElement() ) {
+    pElemId =  pElem->FirstChildElement( "faction_id" );
+    pElemName =  pElem->FirstChildElement( "name_en" );
+    if ( pElemId && pElemName )  {
+      factionIDs_[ toInt( pElemId->FirstChild()->Value() ) ] = pElemName->FirstChild()->Value();
+    }
+  }
+}
+
+
+
 DeviceManager & DeviceManager::getSingleton( ){
   assert( ms_Singleton );
   return ( *ms_Singleton );
Modified: branches/ogsector/src/DeviceManager.h
===================================================================
--- branches/ogsector/src/DeviceManager.h	2007-06-17 13:48:07 UTC (rev 563)
+++ branches/ogsector/src/DeviceManager.h	2007-06-17 13:51:31 UTC (rev 564)
@@ -66,18 +66,11 @@
 
   std::string languageSuffix() const { return languageSuffix_; }
   std::string className( int id ) const { return "unknown"; }
-  std::string factionName( int id ) const {
-    switch( id ){
-    case 0: return "neutral"; 
-    case 1: return "tauseti"; 
-    case 2: return "quantar"; 
-    case 3: return "octavius"; 
-    case 4: return "squadrok"; 
-    case 5: return "amanath"; 
-    case 6: return "hyperial"; 
-    }
-    return "unknown";
-  }
+
+  void loadGlobalIDs(const std::set < std::string > & resourcePaths, const std::string & fileName );
+
+  std::string factionName( int id );
+
   std::string categoryName( EntityType rtti ) const {
     switch( rtti ){
     case COMMODITY:  return "Commodity"; 
@@ -106,8 +99,12 @@
   Avatar                   * avatar;
 
 protected:
+  LogManager               * log_;
+
   GlobalKeyModifier modifier_;
   std::string languageSuffix_;
+
+  std::map< int, std::string > factionIDs_;
 };
 
 } //namespace OpenGate
Modified: branches/ogsector/src/Entity.cpp
===================================================================
--- branches/ogsector/src/Entity.cpp	2007-06-17 13:48:07 UTC (rev 563)
+++ branches/ogsector/src/Entity.cpp	2007-06-17 13:51:31 UTC (rev 564)
@@ -51,6 +51,9 @@
 void Entity::loadImages_( ) { 
   imageInitialised_ = true;
   bool haveSmall = true;
+
+  if ( imageFileName_ == "unknown" ) imageFileName_ = name_;
+
   haveSmall = initialiseImage( imageFileName_ + "_76x76.png", imageFileName_ + "Small" );
   if ( haveSmall ){
     ceguiSmallImageName_ = ceguiImageName_;
@@ -68,31 +71,30 @@
 
 bool Entity::initialiseImage( const std::string & imageName, const std::string & targetName, bool verbose ){
   bool fail = false;
-  CEGUI::Texture * texture;
+  CEGUI::Texture * texture = NULL;
   
-  if ( imageName != "unknown" ){
-
-    try {
-      texture = dynamic_cast< CEGUI::OgreCEGUIRenderer * >( DeviceManager::getSingleton().guiRenderer )->createTexture( imageName, "General");
-    } catch( CEGUI::Exception & e ){
-      if ( verbose ) LogManager::getSingleton().warn( e.getMessage().c_str() ); 
-      fail = true;
-    } 
-  } else {
+  try {
+    texture = dynamic_cast< CEGUI::OgreCEGUIRenderer * >( DeviceManager::getSingleton().guiRenderer )->createTexture( imageName, "General");
+  } catch( CEGUI::Exception & e ){
+    if ( verbose ) LogManager::getSingleton().warn( e.getMessage().c_str() ); 
     fail = true;
+  } catch( Ogre::Exception & e ){
+    if ( verbose ) LogManager::getSingleton().warn( e.what() ); 
+    fail = true;
+  } catch( ... ){
+    if ( verbose ) LogManager::getSingleton().warn( "Unknown exception" ); 
   }
   
-  if ( !fail ){
+  if ( !fail && texture ){
     CEGUI::Imageset * imageSet = CEGUI::ImagesetManager::getSingleton().createImageset( targetName, texture );
     imageSet->defineImage( targetName, CEGUI::Point(0.0f, 0.0f), 
 			   CEGUI::Size( texture->getWidth(), texture->getHeight() ), CEGUI::Point(0.0f,0.0f));
-
+    
     ceguiImageName_ = "set:" + targetName + " image:" + targetName;
   } else {
-    //** fallback image
-    //      ceguiImageName_ = "set:" + name_ + " image:full_image";
+    //** fallback image;
+    ceguiImageName_ = "set:" + targetName + " image:" + targetName;
   }
-  //      image_ = new CEGUI::Texture();
   return !fail;
 }
 
Modified: branches/ogsector/src/Entity.h
===================================================================
--- branches/ogsector/src/Entity.h	2007-06-17 13:48:07 UTC (rev 563)
+++ branches/ogsector/src/Entity.h	2007-06-17 13:51:31 UTC (rev 564)
@@ -69,7 +69,7 @@
   inline int techLevel( ) const { return techLevel_; }
 
   inline void setMass( long mass ){ mass_ = mass; }
-  inline long mass( ) const { return mass_; }
+  inline Uint32 mass( ) const { return mass_; }
 
   inline void setSize( int size ){ size_ = size; }
   inline int size( ) const { return size_; }
@@ -120,7 +120,7 @@
   /*! The required tech level to interact with this object */
   int techLevel_;
   /*! The mass of this entity. */
-  long mass_;
+  Uint32 mass_;
   /*! The amount of slots necessary to plug in such a device. */
   int size_;
 
@@ -149,14 +149,18 @@
   inline void setEfficiency( double efficiency ) { efficiency_ = efficiency; }
   inline double efficiency( ) const { return efficiency_; }
 
-  inline void setPowerConsumption( double powerConsumption ) { powerConsumption_ = powerConsumption; }
-  virtual inline double powerConsumption( ) { return powerConsumption_; }
+  inline void setPowerConsumption( Uint32 powerConsumption ) { 
+    powerConsumption_ = powerConsumption; 
+    //** if input power is < 1000, then input is scaled in kW
+    if ( powerConsumption_ < 1e3 ) powerConsumption_ *= 1000;
+  }
+  virtual inline Uint32 powerConsumption( ) { return powerConsumption_; }
 
 protected:
   Equipment() : Entity(), manufacturer_( "unkown" ) {
     size_ = 0;
     efficiency_ = 1.0;
-    powerConsumption_ = 0.0;
+    powerConsumption_ = 0;
   }
 
   virtual ~Equipment() { }
@@ -168,7 +172,7 @@
   double efficiency_;
 
   /*! Stores the power consumption of this equipment */
-  double powerConsumption_;
+  Uint32 powerConsumption_;
 };
 
 /*!
@@ -183,13 +187,17 @@
 public:
   PowerPlant() : Equipment(){
     rtti_ = POWERPLANT;
-    powerOutput_ = 0.0;
+    powerOutput_ = 0;
   }
-  void setPowerOutput( double power ) { powerOutput_ = power; }
-  double powerOutput( ) const { return powerOutput_; }
+  inline void setPowerOutput( Uint32 power ) { 
+    powerOutput_ = power; 
+    //** if input power is < 100kW, then input is scaled in kW
+    if ( powerOutput_ < 1e5 ) powerOutput_ *= 1000;
+  }
+  inline Uint32 powerOutput( ) const { return powerOutput_; }
 
 protected:
-  double powerOutput_;
+  Uint32 powerOutput_;
 };
 
 /*!
@@ -205,17 +213,21 @@
 
   Engine() : Equipment() {
     rtti_ = ENGINE;
-    maxThrust_ = 0.0;
+    maxThrust_ = 0;
   }
 
-  inline void setMaxThrust( double maxThrust ) { maxThrust_ = maxThrust; }
-  inline double maxThrust( ) { return maxThrust_; }
+  inline void setMaxThrust( Uint32 maxThrust ) { 
+    maxThrust_ = maxThrust; 
+    //** if input thrust is < 100kN, then input is scaled in kN
+    if ( maxThrust_ < 1e5 ) maxThrust_ *= 1000;
+  }
+  inline Uint32 maxThrust( ) { return maxThrust_; }
 
-  double powerConsumption( ) const { return ( maxThrust_ / 1000 ) / efficiency_; }
+  virtual Uint32 powerConsumption( ) const { return (Uint32)rint(( (float)maxThrust_ / efficiency_ )); }
 
 private:
   /*! Stores the maximum thrust of this engine */
-  double maxThrust_;
+  Uint32 maxThrust_;
 };
 
 /*!
@@ -231,11 +243,11 @@
   Radar() : Equipment(){
     rtti_ = RADAR;
   }
-  void setMaxRange( double range ){ range_ = range; }
-  double maxRange() const{ return range_; }
+  inline void setMaxRange( Uint32 range ){ range_ = range; }
+  inline Uint32 maxRange() const{ return range_; }
 
 protected:
-  double range_;
+  Uint32 range_;
 };
 
 /*!
@@ -276,18 +288,25 @@
     rtti_ = SHIELD;
   }
 
-  void setMaxDeflection( double deflection ){ setMaximumDeflection_ = deflection; }
-  double maxDeflection( ) const { return setMaximumDeflection_; }
+  inline void setMaxDeflection( Uint32 deflection ){ 
+    setMaximumDeflection_ = deflection; 
+    //** if input deflection is < 100kJ, then input is scaled in kJ
+    if ( setMaximumDeflection_ < 1e5 ) setMaximumDeflection_ *= 1000;
+  }
+  inline Uint32 maxDeflection( ) const { return setMaximumDeflection_; }
 
-  void setRegenerationRate( double regenRate ){ regenerationRate_ = regenRate; }
-  double regenerationRate( ) const { return regenerationRate_; }
+  inline void setRegenerationRate( Uint32 regenRate ){ 
+    regenerationRate_ = regenRate; 
+    //** if input regeneration rate is < 10kJ, then input is scaled in kJ
+    if ( regenerationRate_ < 1e4 ) regenerationRate_ *= 1000;
+  }
+  inline Uint32 regenerationRate( ) const { return regenerationRate_; }
 
-  double powerConsumption( ) const { return regenerationRate_ / efficiency_; }
+  inline Uint32 powerConsumption( ) const { return (Uint32) rint( regenerationRate_ / efficiency_ ); }
 
 protected:
-  double regenerationRate_;
-  double setMaximumDeflection_;
-
+  Uint32 regenerationRate_;
+  Uint32 setMaximumDeflection_;
 };
 
 /*!
@@ -306,12 +325,16 @@
     capacity_ = 0;
   }
 
-  inline void setCapacity( long capacity ) { capacity_ = capacity; }
-  inline long capacity( ) { return capacity_; }
+  inline void setCapacity( Uint32 capacity ) { 
+    capacity_ = capacity; 
+    //** if input capacity is < 100kJ, then input is scaled in kJ
+    if ( capacity_ < 1e5 ) capacity_ *= 1000;
+  }
+  inline Uint32 capacity( ) { return capacity_; }
 
 private:
   /*! Stores the capacity of a capacitor */
-  long capacity_;
+  Uint32 capacity_;
 };
 
 
Modified: branches/ogsector/src/EntityManager.cpp
===================================================================
--- branches/ogsector/src/EntityManager.cpp	2007-06-17 13:48:07 UTC (rev 563)
+++ branches/ogsector/src/EntityManager.cpp	2007-06-17 13:51:31 UTC (rev 564)
@@ -46,39 +46,6 @@
   }
 
   delete pArch;
-//   for ( std::set < std::string >::iterator it = resourcePaths.begin(); it != resourcePaths.end(); it ++ ){
-//     std::string resourceFile( (*it) + "/" + resourceName );
-
-//     TiXmlDocument doc( resourceFile );
-//     bool loadOkay = doc.LoadFile();
-
-//     std::map < int, std::string > entities;
-
-//     if ( loadOkay ) {
-//       log_->info( std::string( "open resource file: ") + resourceFile );
-//       TiXmlHandle docHandle( &doc );
-//       TiXmlElement* pElem;
-//       TiXmlHandle hRoot( 0 );
-
-//       pElem = docHandle.FirstChildElement().Element();
-//       hRoot = TiXmlHandle( pElem );
-      
-//       if ( pElem ) {
-// 	for ( pElem = hRoot.FirstChild( "Resource" ).Element(); pElem != 0; pElem = pElem->NextSiblingElement() ) {
-// 	  log_->info( std::string( "Found ressource: " ) + pElem->Attribute("location") );
-// 	  entities[ toInt( pElem->Attribute("id") ) ] = pElem->Attribute("location");
-// 	}
-//       } else {
-// 	log_->fatal( resourceFile + " cannot read first node." );
-//       }
-//     } else {
-//       //      log_->info( resourceFile + " cannot open resourceFile." );
-//     }
-    
-//     for ( std::map < int, std::string >::iterator it = entities.begin(); it != entities.end(); it ++ ){
-//       loadAndCreate( it->first, it->second );
-//     }
-//  }
 }
 
 template<> EquipmentManager * Ogre::Singleton< EquipmentManager >::ms_Singleton = 0;
@@ -286,9 +253,9 @@
     if ( efficiency > 1 ) efficiency /= 100;
   }
 
-  double powerConsumption = 0.0;
+  Uint32 powerConsumption = 0;
   pElem = hRoot.ChildElement( "power_input", 0 ).Element();
-  if ( pElem ) powerConsumption = toDouble( pElem->FirstChild()->Value() );
+  if ( pElem ) powerConsumption = toInt( pElem->FirstChild()->Value() );
 
   pElem = hRoot.ChildElement( "description_" + DeviceManager::getSingleton().languageSuffix(), 0 ).Element();
   if ( !pElem ){    //** fallback to english
@@ -306,12 +273,12 @@
   switch ( entity->entityType() ){
   case POWERPLANT:
     pElem = hRoot.ChildElement( "power_output", 0 ).Element();
-    if ( pElem ) dynamic_cast< PowerPlant * >( entity )->setPowerOutput( toDouble( pElem->FirstChild()->Value() ) );
+    if ( pElem ) dynamic_cast< PowerPlant * >( entity )->setPowerOutput( toInt( pElem->FirstChild()->Value() ) );
     break;
   case ENGINE:
     dynamic_cast< Engine * >( entity )->setEfficiency( efficiency );
     pElem = hRoot.ChildElement( "maximum_thrust", 0 ).Element();
-    if ( pElem ) dynamic_cast< Engine * >( entity )->setMaxThrust( toDouble( pElem->FirstChild()->Value() ) );
+    if ( pElem ) dynamic_cast< Engine * >( entity )->setMaxThrust( toInt( pElem->FirstChild()->Value() ) );
 
     break;
   case RADAR:
@@ -319,7 +286,7 @@
     dynamic_cast< Radar * >( entity )->setPowerConsumption( powerConsumption );
 
     pElem = hRoot.ChildElement( "maximum_range", 0 ).Element();
-    if ( pElem ) dynamic_cast< Radar * >( entity )->setMaxRange( toDouble( pElem->FirstChild()->Value() ) );
+    if ( pElem ) dynamic_cast< Radar * >( entity )->setMaxRange( toInt( pElem->FirstChild()->Value() ) );
 
     break;
   case ECM:
Modified: branches/ogsector/src/GameStateManager.cpp
===================================================================
--- branches/ogsector/src/GameStateManager.cpp	2007-06-17 13:48:07 UTC (rev 563)
+++ branches/ogsector/src/GameStateManager.cpp	2007-06-17 13:51:31 UTC (rev 564)
@@ -315,6 +315,8 @@
   devices_.console->addCommand( "/time", &GameStateManager::CMD_printTime, "Show current system time" );
   devices_.console->addCommand( "/ai", &GameStateManager::CMD_spawnAi, "[name] Spawn ai subject. /ai help show all available ships." );
 
+  devices_.loadGlobalIDs( resourcePaths_, "ids.xml" );
+
   vesselManager_ = new VesselManager( );
   vesselManager_->load( resourcePaths_, "ships" );
 
@@ -419,7 +421,7 @@
 }
 
 void GameStateManager::CMD_spawnAi( const std::vector < std::string > & argv ){ 
-  std::string aiName = "squid";
+  std::string aiName = "Squid";
   if ( argv.size() > 1 ){
     aiName = argv[ 1 ];
   }
Modified: branches/ogsector/src/MarketDialog.cpp
===================================================================
--- branches/ogsector/src/MarketDialog.cpp	2007-06-17 13:48:07 UTC (rev 563)
+++ branches/ogsector/src/MarketDialog.cpp	2007-06-17 13:51:31 UTC (rev 564)
@@ -554,7 +554,7 @@
 
     switch( item->entityType() ){
     case POWERPLANT:
-      str1a = "Wattage:"; str1b = toStr( dynamic_cast< PowerPlant *>(item)->powerOutput() ) + "K";
+      str1a = "Wattage:"; str1b = toStr( dynamic_cast< PowerPlant *>(item)->powerOutput()/1000 ) + "K";
       break;
     case ENGINE:
       str1a = "Efficiency:" ; str1b = toStr( dynamic_cast< Engine *>(item)->efficiency() );
@@ -562,19 +562,19 @@
       break;
     case RADAR:
       str1a = "Max. range:" ; str1b = toStr( dynamic_cast< Radar *>(item)->maxRange() );
-      str2a = "Power:"      ; str2b = toStr( dynamic_cast< Radar *>(item)->powerConsumption() ) + "K";
+      str2a = "Power:"      ; str2b = toStr( dynamic_cast< Radar *>(item)->powerConsumption()/1000 ) + "K";
       break;
     case ECM:
-      str1a = "Power:" ; str1b = toStr( dynamic_cast< Engine *>(item)->powerConsumption() ) + "K";
+      str1a = "Power:" ; str1b = toStr( dynamic_cast< Engine *>(item)->powerConsumption()/1000 ) + "K";
       break;
     case SHIELD:
       str1a = "Efficiency:"  ; str1b = toStr( dynamic_cast< Shield *>(item)->efficiency() );
-      str2a = "Max. Damage:" ; str2b = toStr( dynamic_cast< Shield *>(item)->maxDeflection() ) + "K";
+      str2a = "Max. Damage:" ; str2b = toStr( dynamic_cast< Shield *>(item)->maxDeflection()/1000 ) + "K";
       str3a = "Recharge:"    ; str3b = toStr( dynamic_cast< Shield *>(item)->regenerationRate() / 1000) + "K";
       break;
     case CAPACITOR:
       str1a = "Efficiency:"  ; str1b = toStr( dynamic_cast< Capacitor *>( item )->efficiency() );
-      str2a = "Max. Power:"  ; str2b = toStr( dynamic_cast< Capacitor *>( item )->capacity() ) + "K";
+      str2a = "Max. Power:"  ; str2b = toStr( dynamic_cast< Capacitor *>( item )->capacity()/1000 ) + "K";
       break;
     default:
       break;
Modified: branches/ogsector/src/OpcodeWrapper.h
===================================================================
--- branches/ogsector/src/OpcodeWrapper.h	2007-06-17 13:48:07 UTC (rev 563)
+++ branches/ogsector/src/OpcodeWrapper.h	2007-06-17 13:51:31 UTC (rev 564)
@@ -36,7 +36,6 @@
 class SectorObject;
 class Projectile;
 
-
 class OpcodeCollisionDetection : public Ogre::Singleton< OpcodeCollisionDetection >{
 public:
   OpcodeCollisionDetection( Ogre::SceneManager * sceneMgr );
Modified: branches/ogsector/src/Sector.cpp
===================================================================
--- branches/ogsector/src/Sector.cpp	2007-06-17 13:48:07 UTC (rev 563)
+++ branches/ogsector/src/Sector.cpp	2007-06-17 13:51:31 UTC (rev 564)
@@ -351,10 +351,9 @@
     radarMap->removeChild( obj->dotB()->getName() );
   }
 
-  for ( std::map< long, SectorObjectMoveableAi * >::iterator it = localAiObjects_.begin(); 
-	it != localAiObjects_.end(); it ++ ){
+  for ( std::map< long, SectorObjectMoveableAi * >::iterator it = localAiObjects_.begin(); it != localAiObjects_.end(); it ++ ){
     if ( it->second->target() == obj ){
-      log_->warn( std::string( "ai object target: " ) +  it->second->name() + " loose target." );
+      log_->warn( std::string( "ai object target: " ) + it->second->name() + " loose target." );
       it->second->setTarget( NULL );
     }
   }
@@ -421,7 +420,7 @@
   obj->mainNode()->setPosition( Ogre::Math::RangeRandom( xmin, xmax ),
    				Ogre::Math::RangeRandom( ymin, ymax ),
    				Ogre::Math::RangeRandom( zmin, zmax ) );
-  obj->setThrustPercent( 100 );
+  obj->setThrust( obj->maxThrust() );
 
   //  obj->mainNode()->setPosition( 0.0f, 0.0f, 200.0f);
   
@@ -572,27 +571,27 @@
   }
 }
 
-void Sector::sendVesselMovement( SectorObjectMoveable * obj ){
+void Sector::sendVesselMovement( SectorObjectMoveableLocal * obj ){
   if ( obj ){
     MessageBodyShipMovement msg( obj->childID(),
 				 obj->mainNode()->getPosition(),
-				 obj->velDirection(),
+				 obj->velocity(),
 				 obj->mainNode()->getOrientation(),
-				 obj->thrustPercent(),
+				 obj->thrust(),
 				 obj->scaledYaw(),
 				 obj->scaledPitch(),
 				 obj->scaledRoll(),
-				 obj->incNetSequence() );
+				 0 );
     
     network_->send( msg );
   }
 }
 
-void Sector::sendVesselRegister( SectorObjectMoveable * obj ){
+void Sector::sendVesselRegister( SectorObjectMoveableLocal * obj ){
   if ( obj ) {
     log_->info( std::string( "Send register " ) + obj->name() + " id:" + toStr( obj->vessel()->id() ) );
     MessageBodyShipRegister msg( obj->userID(), obj->childID(), obj->name(), obj->mainNode()->getPosition(), 
-				 obj->vessel()->id() );
+				 obj->vessel()->id(), obj->mass(), obj->maxShield(), obj->maxThrust() );
     network_->send( msg );
   }
 
@@ -606,6 +605,9 @@
       SectorObjectMoveable * obj = createMoveableObject( msg.name(), msg.senderID(), msg.childID(), 
 							 *VesselManager::getSingleton().vessel( msg.vesselID() ) );
       obj->mainNode()->setPosition( msg.position() );
+      obj->setMass( msg.mass() );
+      obj->setMaxShield( msg.maxShield() );
+
     } else {
       log_->info( "Create ai object " + msg.name()+ " " + toStr( msg.senderID() ) + " " + 
 		  toStr( (int)msg.childID() ) + " " + toStr( msg.vesselID() ) );
@@ -684,14 +686,9 @@
 
 }
 
-void Sector::sendVesselStatus( SectorObjectMoveable * obj ){
+void Sector::sendVesselStatus( SectorObjectMoveableLocal * obj ){
   if ( obj ){
-    MessageBodyShipStatus msg( obj->childID(),
-			       obj->shieldPercent(),
-			       obj->armorPercent(),
-			       obj->firePressed(),
-			       obj->afterburnerPressed(),
-			       obj->breakPressed() );
+    MessageBodyShipStatus msg( obj->childID(), obj->shield(), obj->armor(), 0, 0, 0 );
     network_->send( msg );
   }
 }
@@ -744,7 +741,6 @@
       for ( std::map< long, SectorObjectMoveable * >::iterator i = movableObjects_.begin(); i != movableObjects_.end(); i++){
 	std::cerr << "\t" << i->first << " " << i->second->name() << " " << std::endl;
       }
-
     }
   }
 }
Modified: branches/ogsector/src/Sector.h
===================================================================
--- branches/ogsector/src/Sector.h	2007-06-17 13:48:07 UTC (rev 563)
+++ branches/ogsector/src/Sector.h	2007-06-17 13:51:31 UTC (rev 564)
@@ -44,12 +44,8 @@
 
   UnDockedState * listener( ){ return listener_; }
 
-  void setNetwork( NetworkClient * network ){ network_ = network; }
-
   void update( Ogre::Real elapsedTime );
 
-  LogManager * log() { return log_; }
-
   void createStaticObject( const Ogre::String & meshname, const Ogre::String & objectname, 
 			   const Ogre::Vector3 & pos, Ogre::Real targetSize, Ogre::Degree yaw );
 
@@ -72,6 +68,7 @@
   void createCircle( );
 
   void selectNextTarget( SectorObject * obj = NULL );
+
   void selectPrevTarget( SectorObject * obj = NULL );
 
   inline SectorObject * firstTarget( ){ return *itTarget_; }
@@ -83,16 +80,16 @@
   void sendAllVesselInfos( );
   void sendAllVesselMovements( );
 
-  void sendVesselRegister( SectorObjectMoveable * obj );
+  void sendVesselRegister( SectorObjectMoveableLocal * obj );
   void receiveVesselRegister( const MessageBodyShipRegister & msg );
 
   void sendVesselDeRegister( SectorObjectMoveable * obj );
   void receiveVesselDeRegister( const MessageBodyShipDeRegister & msg );
 
-  void sendVesselMovement( SectorObjectMoveable * obj );
+  void sendVesselMovement( SectorObjectMoveableLocal * obj );
   void receiveVesselMovement( const std::vector < MessageBodyShipMovement * > & movements );
 
-  void sendVesselStatus( SectorObjectMoveable * obj );
+  void sendVesselStatus( SectorObjectMoveableLocal * obj );
   void receiveVesselStatus( const MessageBodyShipStatus & msg );
 
   void sendVesselAmmoHit( const Projectile & projectile, BaseObject * victim );
Modified: branches/ogsector/src/SectorObjects.cpp
===================================================================
--- branches/ogsector/src/SectorObjects.cpp	2007-06-17 13:48:07 UTC (rev 563)
+++ branches/ogsector/src/SectorObjects.cpp	2007-06-17 13:51:31 UTC (rev 564)
@@ -119,9 +119,8 @@
   lifeTime_ = 0.0;
   oldTime_ = 0.0;
 
-  //  damage_ = 250.0;
-  damage_ = (9000.0 + 5700.0) / 4.01;
-  vel_ = speed * -direction.zAxis().normalisedCopy() + parent->velDirection();
+  damage_ = 5000 * 1000;
+  vel_ = speed * -direction.zAxis().normalisedCopy() + parent->velocity();
 }
 
 Projectile::~Projectile() {
@@ -180,7 +179,6 @@
 // 	return true;
 //       }
 //     }
-
   }
   return true;
 }
@@ -247,7 +245,7 @@
   baseYaw( Ogre::Degree( vessel_->baseYaw() ) );
   setBaseSize( vessel_->baseSize() );
 
-  if ( vessel_->factionName() == "squadrok" ){
+  if ( vessel_->factionID() == 4 ){
     thrusterParticles_ = NULL;
 
     thrusterBbs_ = sceneMgr_->createBillboardSet( name_ + "thrust_BBS" );
@@ -269,7 +267,7 @@
   }
 
   explosion_ = NULL;
-  setThrustPercent( 0.0 );
+  setThrust( 0 );
   updateThruster();
 }
 
@@ -294,12 +292,68 @@
   //  Projectile globalisieren.
 }
 
+bool SectorObjectMoveable::update( Ogre::Real elapsedTime ){
+  if ( elapsedTime < 0.001 ) return true;
+
+  lifeTime_ += elapsedTime;
+  lastFrameCount_ ++;
+
+  Ogre::Real rotFric = rotFriction();
+  if ( !isChild() ){
+    mainNode_->yaw(   Ogre::Degree( yaw_   * ( vessel_->yaw()   * rotFric ) * elapsedTime ) );
+    mainNode_->pitch( Ogre::Degree( pitch_ * ( vessel_->pitch() * rotFric ) * elapsedTime ) );
+    mainNode_->roll(  Ogre::Degree( roll_  * ( vessel_->roll()  * rotFric ) * elapsedTime ) );
+  } else {
+    mainNode_->yaw(   Ogre::Degree( yaw_   * ( vessel_->yaw()   * rotFric ) * elapsedTime ), Ogre::Node::TS_PARENT );
+    mainNode_->pitch( Ogre::Degree( pitch_ * ( vessel_->pitch() * rotFric ) * elapsedTime ), Ogre::Node::TS_PARENT );
+    mainNode_->roll(  Ogre::Degree( roll_  * ( vessel_->roll()  * rotFric ) * elapsedTime ), Ogre::Node::TS_PARENT );
+  }
+
+  //  mainNode_->rotate( interpolateRot_, Ogre::Node::TS_PARENT );
+
+  //** friction = drag * v^2;
+  Ogre::Real friction = ethernalDensity_ * vessel_->dragFactor() * speed() * speed();
+
+  Ogre::Vector3 trustDir( mainNode_->getOrientation().zAxis() );
+  Ogre::Vector3 flightDir( vel_ ); flightDir.normalise();
+
+  //** thrust = mass * acc;
+  if ( mass_ > 0 ){
+    acc_ = ( - trustDir * thrust() - flightDir * friction ) / mass_;
+  } else {
+    std::cerr << "mass: " << mass_ << std::endl;
+  }
+
+  if ( breakPressed_ == true ) {
+    if ( speed() > 0 ) {
+      acc_ -= flightDir * 4.0;
+    }
+  }
+
+  //** v = a * t;
+  vel_ += acc_ * elapsedTime;
+  mainNode_->translate( ( vel_ + interpolateVel_ ) * elapsedTime );
+
+  for ( std::set < Projectile * >::iterator it = projectiles_.begin(); it != projectiles_.end();){
+    if ( !(*it)->update( elapsedTime ) ) {
+      delete *it;
+      projectiles_.erase( it++ );
+    } else ++it;
+  }
+
+  //** snap quaternion
+  Ogre::Quaternion rnd( mainNode_->getOrientation() );
+  mainNode_->setOrientation( round( rnd.w, 5 ), round( rnd.x, 5 ), round( rnd.y, 5 ), round( rnd.z, 5 ) );
+
+  return true;
+}
+
 void SectorObjectMoveable::setFlightProperties( const MessageBodyShipMovement & msg ){
   if ( forceMovement_ ){
     mainNode_->setPosition( msg.position() );
     mainNode_->setOrientation( msg.orientation() );
     vel_ = msg.velocity();
-    setThrustPercent( msg.thrust() );
+    setThrust( msg.thrust() );
     setScaledYaw( msg.yaw() );
     setScaledPitch( msg.pitch() );
     setScaledRoll( msg.roll() );
@@ -327,7 +381,7 @@
     setScaledPitch( msg.pitch() );
 
     vel_ = msg.velocity();
-    setThrustPercent( msg.thrust() );
+    setThrust( msg.thrust() );
 
     Ogre::Vector3 srcP = mainNode_->getPosition( );
     Ogre::Quaternion srcQ = mainNode_->getOrientation( );
@@ -389,12 +443,12 @@
 }
 
 void SectorObjectMoveable::setStatus( const MessageBodyShipStatus & msg ){
-  setFirePressed( msg.firePressed() );
-  setAfterburnerPressed( msg.afterburnerPressed() );
-  setBreakPressed( msg.breakPressed() );
+//   setFirePressed( msg.firePressed() );
+//   setAfterburnerPressed( msg.afterburnerPressed() );
+//   setBreakPressed( msg.breakPressed() );
 
-  setShieldPercent( msg.shield() );
-  setArmorPercent( msg.armor() );
+  setShield( msg.shield() );
+  setArmor( msg.armor() );
 
   statusChanged_ = false;
 }
@@ -425,130 +479,15 @@
   }
 }
 
-void SectorObjectMoveable::hitByAmmo( float damage ){
-  shield_ -= damage;
-
-  if ( shield_ < 0 ){
-    armor_ += shield_;
-    shield_ = 0.0;
-    armor_ = max( 0.0f, armor_ );
-  }
-  statusChanged_ = true;
-}
-
-bool SectorObjectMoveable::update( Ogre::Real elapsedTime ){
-  if ( elapsedTime < 0.001 ) return true;
-
-  lifeTime_ += elapsedTime;
-  lastFrameCount_ ++;
-
-  Ogre::Real rotFric = rotFriction();
-  if ( !isChild() ){
-    mainNode_->yaw( Ogre::Degree( yaw_ * ( vessel_->yaw() * rotFric ) * elapsedTime ) );
-    mainNode_->pitch( Ogre::Degree( pitch_ * ( vessel_->pitch() * rotFric ) * elapsedTime ) );
-    mainNode_->roll( Ogre::Degree( roll_ * ( vessel_->roll() * rotFric ) * elapsedTime ) );
-  } else {
-    mainNode_->yaw( Ogre::Degree( yaw_ * ( vessel_->yaw() * rotFric ) * elapsedTime ), Ogre::Node::TS_PARENT ) ;
-    mainNode_->pitch( Ogre::Degree( pitch_ * ( vessel_->pitch() * rotFric ) * elapsedTime ), Ogre::Node::TS_PARENT );
-    mainNode_->roll( Ogre::Degree( roll_ * ( vessel_->roll() * rotFric ) * elapsedTime ), Ogre::Node::TS_PARENT );
-  }
-
-  //  mainNode_->rotate( interpolateRot_, Ogre::Node::TS_PARENT );
-
-  //** friction = drag * v^2;
-  Ogre::Real friction = ethernalDensity_ * vessel_->dragFactor() * velocity() * velocity();
-
-  Ogre::Vector3 trustDir( mainNode_->getOrientation().zAxis() );
-  Ogre::Vector3 flightDir( vel_ ); flightDir.normalise();
-
-  updatePowerGrid( elapsedTime );
-
-  //** thrust = mass * acc;
-  if ( mass_ > 0 ){
-    acc_ = ( - trustDir * thrust() - flightDir * friction ) / mass_;
-  } else {
-    std::cerr << "mass: " << mass_ << std::endl;
-  }
-
-  if ( breakPressed_ == true ) {
-    if ( velocity() > 0 ) {
-      acc_ -= flightDir * 4.0;
-    }
-  }
-
-  //** v = a * t;
-  vel_ += acc_ * elapsedTime;
-  mainNode_->translate( ( vel_ + interpolateVel_ )* elapsedTime );
-
-  for ( std::set < Projectile * >::iterator it = projectiles_.begin(); it != projectiles_.end();){
-    if ( !(*it)->update( elapsedTime ) ) {
-      delete *it;
-      projectiles_.erase( it++ );
-    } else ++it;
-  }
-
-  //** object died
-  if ( armor_ <= 0 || deathSequence_ ) {
-    return deathSequence( elapsedTime );
-  }
-
-  fire( elapsedTime );
-
-  //** snap quaternion
-  Ogre::Quaternion rnd( mainNode_->getOrientation() );
-  mainNode_->setOrientation( round( rnd.w, 5 ), round( rnd.x, 5 ), round( rnd.y, 5 ), round( rnd.z, 5 ) );
-
-  return true;
-}
-
-bool SectorObjectMoveable::updatePowerGrid( Ogre::Real elapsedTime ){
-  double powerLine = 0.0;
-  if ( vessel_->powerPlant() ) powerLine = vessel_->powerPlant()->powerOutput();
-
-  double engineIn = 0.0;
-  if ( vessel_->engine() )  {
-    engineIn = vessel_->engine()->powerConsumption() * percentageThrust_ / 100;
-    engineIn = min( engineIn, powerLine );
-    thrust_ = engineIn * 1000 * vessel_->engine()->efficiency();
-  } else {
-    thrust_ = 0.0;
-  }
-  powerLine -= engineIn;
-  powerLine = max( 0.0, powerLine );
-
-  double shieldIn = 0;
-  if ( vessel_->shield() ){
-    shieldIn = min( vessel_->shield()->powerConsumption(), powerLine );
-    shield_ += shieldIn * vessel_->shield()->efficiency() * elapsedTime;
-    shield_ = min( shield_, maxShield() );
-  }
-
-  powerLine -= shieldIn;
-  powerLine = max( 0.0, powerLine );
-
-  if ( vessel_->capacitor() ){
-    capacity_ += powerLine * vessel_->capacitor()->efficiency() * elapsedTime;
-    capacity_ = min( (long)capacity_, vessel_->capacitor()->capacity() );
-  }
-  return true;
-}
-
 void SectorObjectMoveable::inititializeVesselStats_(){
-  mass_ = vessel_->totalMass();
 
-  shield_   = maxShield();
-  capacity_ = maxCapacity();
   armor_    = maxArmor();
-
   yaw_   = 0;
   roll_  = 0;
   pitch_ = 0;
 
-  ammoSpeed_ = 1000;
-
   velocity_ = 0.0;
   acceleration_ = 0.0;
-  percentageThrust_ = 0.0;
   shotsFired_ = 0;
   //** increase this value to add some fog-friction;
   ethernalDensity_ = 1.0;
@@ -556,7 +495,7 @@
   afterburnerPressed_ = false;
   flashfire_ = false;
   firePressed_ = false;
-  fireDelay_ = 0;
+
   vel_ = Ogre::Vector3( 0.0, 0.0, 0.0 );
 
   interpolateRot_ = Ogre::Quaternion( 1.0, 0.0, 0.0, 0.0 );
@@ -577,14 +516,15 @@
 void SectorObjectMoveable::updateThruster(){
   if ( thrusterParticles_ ){
     int nEmits = thrusterParticles_->getNumEmitters( );
-    Ogre::Real thrust = thrustPercent();
+    Ogre::Real thrustRate = 0;
+    if ( maxThrust() > 0 ) thrustRate = thrust() / maxThrust();
     
     for ( int i = 0; i < nEmits; i ++ ){
       Ogre::ParticleEmitter * pEmit;
       pEmit = thrusterParticles_->getEmitter( i );
-      pEmit->setTimeToLive( thrust / 3000.0 );
-      pEmit->setEmissionRate( thrust * 10.0 );
-      pEmit->setParticleVelocity( thrust * 5.0 );
+      pEmit->setTimeToLive( thrustRate / 3000.0 );
+      pEmit->setEmissionRate( thrustRate * 10.0 );
+      pEmit->setParticleVelocity( thrustRate * 5.0 );
       
       if ( afterburnerPressed_ ) {
 	pEmit->setColour( Ogre::ColourValue::Blue, Ogre::ColourValue::Red);
@@ -595,15 +535,79 @@
   }
 }
 
-void SectorObjectMoveable::fire( Ogre::Real elapsedTime ){
+bool SectorObjectMoveable::deathSequence( Ogre::Real elapsedTime ){
+  if ( !deathSequence_ ){
+    setVisible( false );
+    setSelectable( false );
+    sector_->selectNextTarget( this );
+    LogManager::getSingleton().info( name_ + " destroyed." );
 
+    if ( !explosion_ ){
+      explosion_ = sceneMgr_->createParticleSystem( name_ + "ExplosionSystem", "OpenGate/ExplosionStart" );
+      mainNode_->attachObject( explosion_ );
+    }
+    explosion_->getEmitter( 0 )->setEnabled( true );
+    explodeSequenceTime_ = explosion_->getEmitter( 0 )->getDuration() + explosion_->getEmitter( 0 )->getMaxTimeToLive();
+    
+    if ( thrusterBbs_ ) thrusterBbs_->setVisible( false );
+    thrust_ = 0;
+    updateThruster();
+    deathSequence_ = true;
+  }
+
+  explodeSequenceTime_ -= elapsedTime;
+
+  if ( explodeSequenceTime_ > 0 || projectiles_.size() > 0 ) {
+    return true;
+  } else {
+    if ( explosion_ ) explosion_->getEmitter( 0 )->setEnabled( false );
+    return false;
+  }
+}
+
+SectorObjectMoveableLocal::SectorObjectMoveableLocal( const Ogre::String & name, Sector * sector, long userID, int childID,  
+						      Vessel * vessel )
+  : SectorObjectMoveable( name, sector, userID, childID, vessel ){
+  
+  setMass( vessel_->totalMass() );
+
+  maxThrust_   = 0;
+  if ( vessel_->engine() ){
+    maxThrust_ = vessel_->engine()->maxThrust();
+  }
+
+  maxShield_  = 0;
+  if ( vessel_->shield() ) maxShield_ = vessel_->shield()->maxDeflection();
+  shield_     = maxShield_;
+}
+
+bool SectorObjectMoveableLocal::update( Ogre::Real elapsedTime ){
+  SectorObjectMoveable::update( elapsedTime );
+
+  //** object died
+  if ( armor_ <= 0 || deathSequence_ ) {
+    return deathSequence( elapsedTime );
+  }
+
+  if ( statusChanged_ ){
+    sector_->sendVesselStatus( this );
+    statusChanged_ = false;
+    lastShieldSend_ = shield_;
+  };
+
+  fire( elapsedTime );
+  return true;
+}
+
+void SectorObjectMoveableLocal::fire( Ogre::Real elapsedTime ){
+
   Ogre::Real delayTime = 0.2;
 
   fireDelay_ -= elapsedTime;
 
   if ( fireDelay_ <= 0 ){
 
-    Ogre::Real damage = 500.0;
+    Uint32 damage = 500000;
     if ( firePressed_ ){
       if ( capacity_ > damage ){
 	projectiles_.insert( new Projectile( this, shotsFired_, ammoSpeed_ ) );
@@ -626,41 +630,56 @@
   }
 }
 
-bool SectorObjectMoveable::deathSequence( Ogre::Real elapsedTime ){
-  if ( !deathSequence_ ){
-    setVisible( false );
-    setSelectable( false );
-    sector_->selectNextTarget( this );
-    LogManager::getSingleton().info( name_ + " destroyed." );
+void SectorObjectMoveableLocal::hitByAmmo( Uint32 damage ){
 
-    if ( !explosion_ ){
-      explosion_ = sceneMgr_->createParticleSystem( name_ + "ExplosionSystem", "OpenGate/ExplosionStart" );
-      mainNode_->attachObject( explosion_ );
-    }
-    explosion_->getEmitter( 0 )->setEnabled( true );
-    explodeSequenceTime_ = explosion_->getEmitter( 0 )->getDuration() + explosion_->getEmitter( 0 )->getMaxTimeToLive();
+  shield_ -= damage;
 
-    
-    if ( thrusterBbs_ ) thrusterBbs_->setVisible( false );
-    percentageThrust_ = 0;
-    updateThruster();
-    deathSequence_ = true;
+  if ( shield_ < 0 ){
+    armor_ += shield_;
+    shield_ = 0;
+    armor_ = max( 0, armor_);
   }
+  statusChanged_ = true;
+}
 
-  explodeSequenceTime_ -= elapsedTime;
+bool SectorObjectMoveableLocal::updatePowerGrid( Ogre::Real elapsedTime ){
+  Uint32 powerLine = 0;
+  if ( vessel_->powerPlant() ) powerLine = vessel_->powerPlant()->powerOutput();
 
-  if ( explodeSequenceTime_ > 0 || projectiles_.size() > 0 ) {
-    return true;
+  Uint32 engineIn = 0;
+  if ( vessel_->engine() )  {
+    engineIn = (Uint32)rint( vessel_->engine()->powerConsumption() * thrustRate_ );
+    engineIn = min( engineIn, powerLine );
+    thrust_ = (Uint32)rint( engineIn * vessel_->engine()->efficiency() );
   } else {
-    if ( explosion_ )  explosion_->getEmitter( 0 )->setEnabled( false );
-    return false;
+    thrust_ = 0;
   }
 
+  powerLine -= engineIn;
+  powerLine = max( 0, powerLine );
+
+  Uint32 shieldIn = 0;
+  if ( vessel_->shield() ){
+    shieldIn = min( vessel_->shield()->powerConsumption(), powerLine );
+    shield_ += (Uint32)rint( shieldIn * vessel_->shield()->efficiency() * elapsedTime );
+    shield_ = min( shield_, maxShield() );
+
+    if ( (float)( shield_ - lastShieldSend_ ) / (float)maxShield() > 0.01 ) statusChanged_ = true;
+  }
+
+  powerLine -= shieldIn;
+  powerLine = max( 0, powerLine );
+
+  if ( vessel_->capacitor() ){
+    capacity_ += (Uint32)rint( (Ogre::Real)powerLine * vessel_->capacitor()->efficiency() * elapsedTime );
+    capacity_ = min( capacity_, vessel_->capacitor()->capacity() );
+  }
+  return true;
 }
 
 SectorObjectMoveableAi::SectorObjectMoveableAi( const Ogre::String & name, Sector * sector, long userID, int childID,
 						Vessel * vessel )
-  : SectorObjectMoveable( name, sector, userID, childID, vessel ){
+  : SectorObjectMoveableLocal( name, sector, userID, childID, vessel ){
 }
 
 bool SectorObjectMoveableAi::update( Ogre::Real elapsedTime ){
@@ -709,18 +728,22 @@
     //    searchTarget;
   }
 
-  if ( statusChanged_ ){
-    sector_->sendVesselStatus( this );
-    statusChanged_ = false;
-  };
-
-  return SectorObjectMoveable::update( elapsedTime );
+  return SectorObjectMoveableLocal::update( elapsedTime );
 }
 
-SectorObjectAvatar::SectorObjectAvatar( const Ogre::String & name, Sector * sector, long userID, 
-					Vessel * vessel )
-  : SectorObjectMoveable( name, sector, userID, 0, vessel ) {
+SectorObjectAvatar::SectorObjectAvatar( const Ogre::String & name, Sector * sector, long userID, Vessel * vessel )
+  : SectorObjectMoveableLocal( name, sector, userID, 0, vessel ) {
 
+  ammoSpeed_ = 1000;
+
+  thrustRate_ = 0;
+
+  maxCapacity_ = 0;
+  if ( vessel_->capacitor() ) maxCapacity_ = vessel_->capacitor()->capacity();
+  capacity_   = maxCapacity_;
+
+  fireDelay_  = 0;
+
   targetArrow_ = NULL;
   flightArrow_ = NULL;
   forceMovement_ = false;
@@ -779,19 +802,17 @@
 }
 
 bool SectorObjectAvatar::update( Ogre::Real elapsedTime ){
-  if ( statusChanged_ ){
-    sector_->sendVesselStatus( this );
-    statusChanged_ = false;
-  };
-  return SectorObjectMoveable::update( elapsedTime );
+  updatePowerGrid( elapsedTime );
+
+  return SectorObjectMoveableLocal::update( elapsedTime );
 }
 
 void SectorObjectAvatar::reset( ){
   deathSequence_ = false;
   mainNode_->showBoundingBox( false );
-  setShieldPercent( 100 );
-  setArmorPercent( 100 );
-  setThrustPercent( 0.0 );
+  setShield( maxShield() );
+  setArmor( maxArmor() );
+  setThrust( 0 );
 }
 
 bool SectorObjectAvatar::deathSequence( Ogre::Real elapsedTime ){
Modified: branches/ogsector/src/SectorObjects.h
===================================================================
--- branches/ogsector/src/SectorObjects.h	2007-06-17 13:48:07 UTC (rev 563)
+++ branches/ogsector/src/SectorObjects.h	2007-06-17 13:51:31 UTC (rev 564)
@@ -66,11 +66,11 @@
 
   virtual bool update( Ogre::Real elapsedTime ) = 0;
 
-  virtual void hitByAmmo( float damage ){}
+  virtual void hitByAmmo( Uint32 damage ){}
 
   Sector * sector( ) { return sector_; }
 
-  virtual Ogre::Vector3 velDirection() const = 0;
+  virtual Ogre::Vector3 velocity() const = 0;
 
   bool selectable() const { return selectable_ ;}
 
@@ -100,7 +100,7 @@
 
   virtual void collide( BaseObject * object );
 
-  inline Ogre::Real damage( ) const { return damage_; }
+  inline Uint32 damage( ) const { return damage_; }
 
   virtual bool update( Ogre::Real elapsedTime );
 
@@ -108,7 +108,7 @@
 
   BaseObject & parent( ) const { return *parent_; }
 
-  Ogre::Vector3 velDirection() const { return vel_; }
+  Ogre::Vector3 velocity() const { return vel_; }
 
 protected:
   BaseObject * parent_;
@@ -119,7 +119,7 @@
 
   Ogre::Real maxLiveTime_;
   Ogre::Real oldTime_;
-  Ogre::Real damage_;
+  Uint32 damage_;
 };
 
 class SectorObject : public BaseObject {
@@ -151,7 +151,7 @@
   bool isOnRadar() const { return isOnRadar_; }
   void onRadar( bool onradar ) { isOnRadar_ = onradar; }
 
-  virtual Ogre::Vector3 velDirection() const { return Ogre::Vector3(0.0, 0.0, 0.0 ); }
+  virtual Ogre::Vector3 velocity() const { return Ogre::Vector3(0.0, 0.0, 0.0 ); }
 
   Ogre::OverlayElement * dotA() { return dotA_; }
   Ogre::OverlayElement * dotB() { return dotB_; }
@@ -168,152 +168,133 @@
   double baseSize_;
 };
 
+/*! Base class for movable objects, instances are only used for foreign player objects. */
+
 class SectorObjectMoveable : public SectorObject {
 public:
   SectorObjectMoveable( const Ogre::String & name, Sector * sector, int userID, int childID, Vessel * vessel );
 
   virtual ~SectorObjectMoveable();
 
+  /*! Returns a handle to the actual vessel */
   Vessel * vessel(){ return vessel_; }
 
   inline virtual long getTypeID() const { return SECTOROBJECTMOVABLE_RTTI; }
 
+  virtual bool update( Ogre::Real elapsedTime );
+
+  /*! Change visibility - Useful for 1st person view and death sequence */
+  inline void setVisible( bool visible ) { mainNodeEntity_->setVisible( visible ); }
+
+  /*! Apply movement from net.*/
   void setFlightProperties( const MessageBodyShipMovement & msg );
 
+  /*! Apply status from net.*/
   void setStatus( const MessageBodyShipStatus & msg );
 
+  /*! Decide what happen if this object collide with another. */
   virtual void collide( BaseObject * object );
 
-  virtual bool update( Ogre::Real elapsedTime );
-  virtual bool updatePowerGrid( Ogre::Real elapsedTime );
-
-  virtual void hitByAmmo( float damage );
-
+  /*! Set relative yaw, between 0 and 1. */
+  inline void setScaledYaw( float rot ){ yaw_ = rot; }
   inline Ogre::Real scaledYaw() const { return yaw_; }
-  inline void setScaledYaw( float rot ){ yaw_ = rot; }
 
+  /*! Set relative pitch, between 0 and 1. */
+  inline void setScaledPitch( float rot ){ pitch_ = rot; }
   inline Ogre::Real scaledPitch() const { return pitch_; }
-  inline void setScaledPitch( float rot ){ pitch_ = rot; }
 
+  /*! Set relative roll, between 0 and 1. */
+  inline void setScaledRoll( float rot ){ roll_ = rot; }
   inline Ogre::Real scaledRoll() const { return roll_; }
-  inline void setScaledRoll( float rot ){ roll_ = rot; }
 
-  Ogre::Real rotFriction(){ return 0.4 + ( 0.6 * ( 100.0 - percentageThrust_ )/ 100.0 ); }
+  /*! Calculate friction factor for yaw, pitch, roll, friction increase by thrust */
+  inline Ogre::Real rotFriction(){ return 0.4 + ( 0.6 * ( 1.0 - thrustRate() ) ); }
 
-  // Change visibility - Useful for 1st person view
-  inline void setVisible( bool visible ) { mainNodeEntity_->setVisible( visible ); }
+  /*! Update visual feedback for thrusters */
+  void updateThruster();
 
+  /*! Set the current thrust */
+  inline void setThrust( Uint32 thrust ) { thrust_ = thrust; updateThruster(); }
 
-  inline void setThrustPercent( Ogre::Real thrust ) {
-    percentageThrust_ = min( thrust, Ogre::Real( 100.0 ) );
-    percentageThrust_ = max( Ogre::Real( 0.0 ), thrust );
-    updateThruster();
-  }
+  /*! Return the current thrust */
+  virtual inline Uint32 thrust() const { return thrust_; }
 
-  inline Ogre::Real maxThrust() const { return vessel_->maxThrust(); }
-  inline Ogre::Real thrustRate() const { 
-    if ( maxThrust() > 1e-4 ) return ( thrust() / maxThrust() ); else return 0.0; ...
 
[truncated message content] | 
| 
      
      
      From: <spo...@us...> - 2007-06-17 13:48:13
      
     | 
| Revision: 563
          http://svn.sourceforge.net/opengate/?rev=563&view=rev
Author:   spom_spom
Date:     2007-06-17 06:48:07 -0700 (Sun, 17 Jun 2007)
Log Message:
-----------
reintegrate squid
Added Paths:
-----------
    trunk/data/ships/squadrok/squid/squid.mesh
    trunk/data/ships/squadrok/squid/squid.xml
Added: trunk/data/ships/squadrok/squid/squid.mesh
===================================================================
(Binary files differ)
Property changes on: trunk/data/ships/squadrok/squid/squid.mesh
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream
Added: trunk/data/ships/squadrok/squid/squid.xml
===================================================================
--- trunk/data/ships/squadrok/squid/squid.xml	                        (rev 0)
+++ trunk/data/ships/squadrok/squid/squid.xml	2007-06-17 13:48:07 UTC (rev 563)
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+
+<ship>
+	<!-- Naming -->
+	<faction_id>4</faction_id>
+	<name>Squid</name>
+        <object_id>1</object_id>
+
+	<!-- Generic Data -->
+	<class>Probe</class>
+	<size>10</size>
+	<mass>20000</mass>
+
+	<!-- Sizes -->	
+	<engines>1</engines>
+	<guns>2</guns>
+	<armor>1000</armor>
+
+	<!-- Movement -->
+	<dragfactor>20.00</dragfactor>
+	<pitch>0.001571</pitch>
+	<roll>0.001222</roll>
+	<yaw>0.001396</yaw>
+
+	<!-- ai specs -->
+	<speed>250</speed>
+	<shield>8000</shield>
+
+	<baseyaw>180</baseyaw>
+</ship>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <eg...@us...> - 2007-06-17 11:18:04
      
     | 
| Revision: 562
          http://svn.sourceforge.net/opengate/?rev=562&view=rev
Author:   egore
Date:     2007-06-17 04:18:04 -0700 (Sun, 17 Jun 2007)
Log Message:
-----------
Try to add a login against metaserver and fail with C++ (enough crap written for today)
Added Paths:
-----------
    branches/ogsector/src/metaserver.cpp
    branches/ogsector/src/metaserver.h
Added: branches/ogsector/src/metaserver.cpp
===================================================================
--- branches/ogsector/src/metaserver.cpp	                        (rev 0)
+++ branches/ogsector/src/metaserver.cpp	2007-06-17 11:18:04 UTC (rev 562)
@@ -0,0 +1,121 @@
+/***************************************************************************
+ *   Copyright (C) 2006-2007 by OpenGate development team                  *
+ *   eg...@us...                                           *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This program is distributed in the hope that it will be useful,       *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+ *   GNU General Public License for more details.                          *
+ *                                                                         *
+ *   You should have received a copy of the GNU General Public License     *
+ *   along with this program; if not, write to the                         *
+ *   Free Software Foundation, Inc.,                                       *
+ *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
+ ***************************************************************************/
+
+#include "metaserver.h"
+
+namespace OpenGate{
+
+MetaConnection::MetaConnection( asio::io_service & io_service, const std::string & hostName )
+  : io_service_( io_service ), socket_( io_service ), resolver_( io_service ),
+    hostname_( hostName ) {
+
+  log_ = LogManager::getSingletonPtr();
+
+  try {
+    asio::ip::tcp::resolver::query query(hostName.c_str(), "http");
+    asio::ip::tcp::resolver::iterator endpoint_iterator = resolver_.resolve(query);
+    asio::ip::tcp::resolver::iterator end;
+
+    // Try each endpoint until we successfully establish a connection.
+    asio::error error = asio::error::host_not_found;
+    while (error && endpoint_iterator != end)
+    {
+      socket_.close();
+      socket_.connect(*endpoint_iterator++, asio::assign_error(error));
+    }
+    if (error)
+      throw error;
+
+  } catch ( asio::error & e) {
+    log_->fatal( e.what() );
+  } catch (...) {
+    log_->fatal( "Unkown exception occured while resolving the metaserver" );
+  }
+
+}
+
+#define SCRIPT_PATH "/script/schnittstelle/"
+
+void MetaConnection::login( const std::string & userName, const std::string & passwd ) {
+  try {
+
+    // Form the request. We specify the "Connection: close" header so that the
+    // server will close the socket after transmitting the response. This will
+    // allow us to treat all data up until the EOF as the content.
+    asio::streambuf request;
+    std::ostream request_stream(&request);
+    request_stream << "GET " SCRIPT_PATH << "?action=login&username=" <<userName <<"&password=" << passwd << " HTTP/1.0\r\n";
+    request_stream << "Host: " << hostname_ << "\r\n";
+    request_stream << "Accept: */*\r\n";
+    request_stream << "Connection: close\r\n\r\n";
+
+    // Send the request.
+    asio::write(socket, request);
+
+    // Read the response status line.
+    asio::streambuf response;
+    asio::read_until(socket, response, boost::regex("\r\n"));
+
+    // Check that response is OK.
+    std::istream response_stream(&response);
+    std::string http_version;
+    response_stream >> http_version;
+    unsigned int status_code;
+    response_stream >> status_code;
+    std::string status_message;
+    std::getline(response_stream, status_message);
+    if (!response_stream || http_version.substr(0, 5) != "HTTP/"){
+      log_->fatal( "Invalid response from metaserver " );
+      return;
+    }
+    if (status_code != 200){
+     log_->fatal( std::string("Response returned with status code ") /* + status_code FIXME: I suck at CPP streams */ );
+      return;
+    }
+
+    // Read the response headers, which are terminated by a blank line.
+    asio::read_until(socket, response, boost::regex("\r\n\r\n"));
+
+    // Process the response headers.
+    std::string header;
+    while (std::getline(response_stream, header) && header != "\r")
+      std::cout << header << "\n";
+    std::cout << "\n";
+
+    // Write whatever content we already have to output.
+    if (response.size() > 0)
+      std::cout << &response;
+
+    // Read until EOF, writing data to output as we go.
+    asio::error error = asio::error::eof;
+    while (asio::read(socket, response,
+          asio::transfer_at_least(1),
+          asio::assign_error(error)))
+      std::cout << &response;
+    if (error != asio::error::eof)
+      throw error;
+  } catch ( asio::error & e) {
+    log_->fatal( e.what() );
+  } catch (...) {
+    log_->fatal( "Unkown exception occured while resolving the metaserver" );
+  }
+}
+
+} // namespace OpenGate
Property changes on: branches/ogsector/src/metaserver.cpp
___________________________________________________________________
Name: svn:mime-type
   + text/x-c++src
Name: svn:eol-style
   + native
Added: branches/ogsector/src/metaserver.h
===================================================================
--- branches/ogsector/src/metaserver.h	                        (rev 0)
+++ branches/ogsector/src/metaserver.h	2007-06-17 11:18:04 UTC (rev 562)
@@ -0,0 +1,51 @@
+/***************************************************************************
+ *   Copyright (C) 2006-2007 by OpenGate development team                  *
+ *   eg...@us...                                           *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This program is distributed in the hope that it will be useful,       *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+ *   GNU General Public License for more details.                          *
+ *                                                                         *
+ *   You should have received a copy of the GNU General Public License     *
+ *   along with this program; if not, write to the                         *
+ *   Free Software Foundation, Inc.,                                       *
+ *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
+ ***************************************************************************/
+
+#ifndef _OPENGATE_METASERVER__H
+#define _OPENGATE_METASERVER__H
+
+#include <asio.hpp>
+#include <boost/bind.hpp>
+
+#include "LogManager.h"
+
+namespace OpenGate{
+
+class MetaConnection {
+public:
+  MetaConnection( asio::io_service & io_service, const std::string & hostName );
+
+  ~MetaConnection();
+
+  void login( const std::string & userName, const std::string & passwd );
+private:
+
+  asio::io_service & io_service_;
+  asio::ip::tcp::socket socket_;
+  asio::ip::tcp::resolver resolver_;
+  std::string hostname_;
+
+  LogManager *log_;
+
+};
+
+}
+
+#endif //_OPENGATE_METASERVER__H
Property changes on: branches/ogsector/src/metaserver.h
___________________________________________________________________
Name: svn:mime-type
   + text/x-c++hdr
Name: svn:eol-style
   + native
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <ult...@us...> - 2007-06-15 01:53:05
      
     | 
| Revision: 561
          http://svn.sourceforge.net/opengate/?rev=561&view=rev
Author:   ultrasick
Date:     2007-06-14 18:53:06 -0700 (Thu, 14 Jun 2007)
Log Message:
-----------
removing old image format
+ uploading new image format
+ camera adjustments
+ activated file compression
Modified Paths:
--------------
    trunk/data/radars/cyclops.blend
    trunk/data/radars/hall_monitor.blend
    trunk/data/radars/outlook.blend
    trunk/data/radars/t-r-9.blend
Added Paths:
-----------
    trunk/data/radars/cyclops_290x290.png
    trunk/data/radars/cyclops_76x76.png
    trunk/data/radars/hall_monitor_290x290.png
    trunk/data/radars/hall_monitor_76x76.png
    trunk/data/radars/outlook_290x290.png
    trunk/data/radars/outlook_76x76.png
    trunk/data/radars/t-r-9_290x290.png
    trunk/data/radars/t-r-9_76x76.png
Removed Paths:
-------------
    trunk/data/radars/cyclops.png
    trunk/data/radars/hall_monitor.png
    trunk/data/radars/outlook.png
    trunk/data/radars/t-r-9.png
Modified: trunk/data/radars/cyclops.blend
===================================================================
(Binary files differ)
Deleted: trunk/data/radars/cyclops.png
===================================================================
(Binary files differ)
Added: trunk/data/radars/cyclops_290x290.png
===================================================================
(Binary files differ)
Property changes on: trunk/data/radars/cyclops_290x290.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream
Added: trunk/data/radars/cyclops_76x76.png
===================================================================
(Binary files differ)
Property changes on: trunk/data/radars/cyclops_76x76.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream
Modified: trunk/data/radars/hall_monitor.blend
===================================================================
(Binary files differ)
Deleted: trunk/data/radars/hall_monitor.png
===================================================================
(Binary files differ)
Added: trunk/data/radars/hall_monitor_290x290.png
===================================================================
(Binary files differ)
Property changes on: trunk/data/radars/hall_monitor_290x290.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream
Added: trunk/data/radars/hall_monitor_76x76.png
===================================================================
(Binary files differ)
Property changes on: trunk/data/radars/hall_monitor_76x76.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream
Modified: trunk/data/radars/outlook.blend
===================================================================
(Binary files differ)
Deleted: trunk/data/radars/outlook.png
===================================================================
(Binary files differ)
Added: trunk/data/radars/outlook_290x290.png
===================================================================
(Binary files differ)
Property changes on: trunk/data/radars/outlook_290x290.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream
Added: trunk/data/radars/outlook_76x76.png
===================================================================
(Binary files differ)
Property changes on: trunk/data/radars/outlook_76x76.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream
Modified: trunk/data/radars/t-r-9.blend
===================================================================
(Binary files differ)
Deleted: trunk/data/radars/t-r-9.png
===================================================================
(Binary files differ)
Added: trunk/data/radars/t-r-9_290x290.png
===================================================================
(Binary files differ)
Property changes on: trunk/data/radars/t-r-9_290x290.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream
Added: trunk/data/radars/t-r-9_76x76.png
===================================================================
(Binary files differ)
Property changes on: trunk/data/radars/t-r-9_76x76.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <ult...@us...> - 2007-06-14 06:02:32
      
     | 
| Revision: 560
          http://svn.sourceforge.net/opengate/?rev=560&view=rev
Author:   ultrasick
Date:     2007-06-13 23:02:33 -0700 (Wed, 13 Jun 2007)
Log Message:
-----------
replaced the copper trade good with a little more eye catching one than the 4 cubes.
+ removing the old image format
+ uploading the new image format
Modified Paths:
--------------
    trunk/data/commodities/copper.blend
Added Paths:
-----------
    trunk/data/commodities/copper_290x290.png
    trunk/data/commodities/copper_76x76.png
Removed Paths:
-------------
    trunk/data/commodities/copper.png
Modified: trunk/data/commodities/copper.blend
===================================================================
(Binary files differ)
Deleted: trunk/data/commodities/copper.png
===================================================================
(Binary files differ)
Added: trunk/data/commodities/copper_290x290.png
===================================================================
(Binary files differ)
Property changes on: trunk/data/commodities/copper_290x290.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream
Added: trunk/data/commodities/copper_76x76.png
===================================================================
(Binary files differ)
Property changes on: trunk/data/commodities/copper_76x76.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <ult...@us...> - 2007-06-14 03:31:48
      
     | 
| Revision: 559
          http://svn.sourceforge.net/opengate/?rev=559&view=rev
Author:   ultrasick
Date:     2007-06-13 20:31:48 -0700 (Wed, 13 Jun 2007)
Log Message:
-----------
camera adjustments
+ uploading right image format
+ removing old image format
Modified Paths:
--------------
    trunk/data/power_plants/contender.blend
    trunk/data/power_plants/contender_xl.blend
    trunk/data/power_plants/contender_xpr.blend
Added Paths:
-----------
    trunk/data/power_plants/contender_290x290.png
    trunk/data/power_plants/contender_76x76.png
    trunk/data/power_plants/contender_xl_290x290.png
    trunk/data/power_plants/contender_xl_76x76.png
    trunk/data/power_plants/contender_xpr_290x290.png
    trunk/data/power_plants/contender_xpr_76x76.png
Removed Paths:
-------------
    trunk/data/power_plants/contender.png
    trunk/data/power_plants/contender_xl.png
    trunk/data/power_plants/contender_xpr.png
Modified: trunk/data/power_plants/contender.blend
===================================================================
(Binary files differ)
Deleted: trunk/data/power_plants/contender.png
===================================================================
(Binary files differ)
Added: trunk/data/power_plants/contender_290x290.png
===================================================================
(Binary files differ)
Property changes on: trunk/data/power_plants/contender_290x290.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream
Added: trunk/data/power_plants/contender_76x76.png
===================================================================
(Binary files differ)
Property changes on: trunk/data/power_plants/contender_76x76.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream
Modified: trunk/data/power_plants/contender_xl.blend
===================================================================
(Binary files differ)
Deleted: trunk/data/power_plants/contender_xl.png
===================================================================
(Binary files differ)
Added: trunk/data/power_plants/contender_xl_290x290.png
===================================================================
(Binary files differ)
Property changes on: trunk/data/power_plants/contender_xl_290x290.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream
Added: trunk/data/power_plants/contender_xl_76x76.png
===================================================================
(Binary files differ)
Property changes on: trunk/data/power_plants/contender_xl_76x76.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream
Modified: trunk/data/power_plants/contender_xpr.blend
===================================================================
(Binary files differ)
Deleted: trunk/data/power_plants/contender_xpr.png
===================================================================
(Binary files differ)
Added: trunk/data/power_plants/contender_xpr_290x290.png
===================================================================
(Binary files differ)
Property changes on: trunk/data/power_plants/contender_xpr_290x290.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream
Added: trunk/data/power_plants/contender_xpr_76x76.png
===================================================================
(Binary files differ)
Property changes on: trunk/data/power_plants/contender_xpr_76x76.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <ult...@us...> - 2007-06-13 00:47:34
      
     | 
| Revision: 558
          http://svn.sourceforge.net/opengate/?rev=558&view=rev
Author:   ultrasick
Date:     2007-06-12 17:47:36 -0700 (Tue, 12 Jun 2007)
Log Message:
-----------
set a few pipes smooth (this is only visible if you render at a high resolution)
Modified Paths:
--------------
    trunk/data/engines/t-e-15.blend
Modified: trunk/data/engines/t-e-15.blend
===================================================================
(Binary files differ)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <ult...@us...> - 2007-06-12 23:26:53
      
     | 
| Revision: 557
          http://svn.sourceforge.net/opengate/?rev=557&view=rev
Author:   ultrasick
Date:     2007-06-12 16:26:54 -0700 (Tue, 12 Jun 2007)
Log Message:
-----------
uploading 76x76 and 290x290 pixel images for the engines
+ removing old images
+ adjusting the camera in the blender file a little
+ changing material from the T-E-15 pipes on the top of the engine from ugly brown to hammered green
Modified Paths:
--------------
    trunk/data/engines/money.blend
    trunk/data/engines/t-e-15.blend
Added Paths:
-----------
    trunk/data/engines/money_290x290.png
    trunk/data/engines/money_76x76.png
    trunk/data/engines/t-e-15_290x290.png
    trunk/data/engines/t-e-15_76x76.png
Removed Paths:
-------------
    trunk/data/engines/money.png
    trunk/data/engines/t-e-15.png
Modified: trunk/data/engines/money.blend
===================================================================
(Binary files differ)
Deleted: trunk/data/engines/money.png
===================================================================
(Binary files differ)
Added: trunk/data/engines/money_290x290.png
===================================================================
(Binary files differ)
Property changes on: trunk/data/engines/money_290x290.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream
Added: trunk/data/engines/money_76x76.png
===================================================================
(Binary files differ)
Property changes on: trunk/data/engines/money_76x76.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream
Modified: trunk/data/engines/t-e-15.blend
===================================================================
(Binary files differ)
Deleted: trunk/data/engines/t-e-15.png
===================================================================
(Binary files differ)
Added: trunk/data/engines/t-e-15_290x290.png
===================================================================
(Binary files differ)
Property changes on: trunk/data/engines/t-e-15_290x290.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream
Added: trunk/data/engines/t-e-15_76x76.png
===================================================================
(Binary files differ)
Property changes on: trunk/data/engines/t-e-15_76x76.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <ult...@us...> - 2007-06-12 21:22:09
      
     | 
| Revision: 556
          http://svn.sourceforge.net/opengate/?rev=556&view=rev
Author:   ultrasick
Date:     2007-06-12 14:22:09 -0700 (Tue, 12 Jun 2007)
Log Message:
-----------
uploading xml file for class_ids, category_ids and now also faction_ids
Added Paths:
-----------
    trunk/data/ids.xml
Removed Paths:
-------------
    trunk/data/categories.xml
    trunk/data/classes.xml
Deleted: trunk/data/categories.xml
===================================================================
(Binary files differ)
Deleted: trunk/data/classes.xml
===================================================================
(Binary files differ)
Added: trunk/data/ids.xml
===================================================================
(Binary files differ)
Property changes on: trunk/data/ids.xml
___________________________________________________________________
Name: svn:mime-type
   + application/xml
Name: svn:eol-style
   + native
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <spo...@us...> - 2007-06-12 20:01:14
      
     | 
| Revision: 555
          http://svn.sourceforge.net/opengate/?rev=555&view=rev
Author:   spom_spom
Date:     2007-06-12 13:01:16 -0700 (Tue, 12 Jun 2007)
Log Message:
-----------
win compatibility commit
Modified Paths:
--------------
    branches/ogsector/win32/ogsectorclient/ogsectorclient.cbp
    branches/ogsector/win32/ogsectorclient/ogsectorclient.exe
Modified: branches/ogsector/win32/ogsectorclient/ogsectorclient.cbp
===================================================================
--- branches/ogsector/win32/ogsectorclient/ogsectorclient.cbp	2007-06-12 19:57:16 UTC (rev 554)
+++ branches/ogsector/win32/ogsectorclient/ogsectorclient.cbp	2007-06-12 20:01:16 UTC (rev 555)
@@ -81,6 +81,8 @@
 		<Unit filename="..\..\src\LogManager.h" />
 		<Unit filename="..\..\src\MarketDialog.cpp" />
 		<Unit filename="..\..\src\MarketDialog.h" />
+		<Unit filename="..\..\src\OpcodeWrapper.cpp" />
+		<Unit filename="..\..\src\OpcodeWrapper.h" />
 		<Unit filename="..\..\src\Sector.cpp" />
 		<Unit filename="..\..\src\Sector.h" />
 		<Unit filename="..\..\src\SectorObjects.cpp" />
@@ -89,6 +91,7 @@
 		<Unit filename="..\..\src\ShipConfigDialog.h" />
 		<Unit filename="..\..\src\UnDockedState.cpp" />
 		<Unit filename="..\..\src\UnDockedState.h" />
+		<Unit filename="..\..\src\Vessel.cpp" />
 		<Unit filename="..\..\src\Vessel.h" />
 		<Unit filename="..\..\src\VesselManager.cpp" />
 		<Unit filename="..\..\src\VesselManager.h" />
Modified: branches/ogsector/win32/ogsectorclient/ogsectorclient.exe
===================================================================
(Binary files differ)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <ult...@us...> - 2007-06-12 19:57:14
      
     | 
| Revision: 554
          http://svn.sourceforge.net/opengate/?rev=554&view=rev
Author:   ultrasick
Date:     2007-06-12 12:57:16 -0700 (Tue, 12 Jun 2007)
Log Message:
-----------
uploading missing image files from the knocker
Added Paths:
-----------
    trunk/data/radars/knocker_290x290.png
    trunk/data/radars/knocker_76x76.png
Added: trunk/data/radars/knocker_290x290.png
===================================================================
(Binary files differ)
Property changes on: trunk/data/radars/knocker_290x290.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream
Added: trunk/data/radars/knocker_76x76.png
===================================================================
(Binary files differ)
Property changes on: trunk/data/radars/knocker_76x76.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <spo...@us...> - 2007-06-12 19:49:23
      
     | 
| Revision: 553
          http://svn.sourceforge.net/opengate/?rev=553&view=rev
Author:   spom_spom
Date:     2007-06-12 12:49:24 -0700 (Tue, 12 Jun 2007)
Log Message:
-----------
Clear the code a bit to remove annoying warnings
Modified Paths:
--------------
    branches/ogsector/src/Avatar.cpp
    branches/ogsector/src/BaseDialog.cpp
    branches/ogsector/src/ConfigDialog.cpp
    branches/ogsector/src/Console.cpp
    branches/ogsector/src/EntityManager.cpp
    branches/ogsector/src/EntityManager.h
    branches/ogsector/src/Makefile.am
    branches/ogsector/src/Makefile.in
    branches/ogsector/src/MarketDialog.cpp
    branches/ogsector/src/Sector.cpp
    branches/ogsector/src/Sector.h
    branches/ogsector/src/SectorObjects.cpp
    branches/ogsector/src/SectorObjects.h
    branches/ogsector/src/ShipConfigDialog.cpp
    branches/ogsector/src/networkServer.cpp
    branches/ogsector/src/openALSoundManager.cpp
Added Paths:
-----------
    branches/ogsector/src/OpcodeWrapper.cpp
    branches/ogsector/src/OpcodeWrapper.h
Modified: branches/ogsector/src/Avatar.cpp
===================================================================
--- branches/ogsector/src/Avatar.cpp	2007-06-12 17:12:12 UTC (rev 552)
+++ branches/ogsector/src/Avatar.cpp	2007-06-12 19:49:24 UTC (rev 553)
@@ -104,6 +104,9 @@
   case CAPACITOR: 
     if ( vessel_->setCapacitor( dynamic_cast< Capacitor * >(item) ) ){ delCargoToFloor( items ); return true; } 
     break;
+  default: 
+    return false;
+    break;
   }
   return false;
 }
@@ -123,6 +126,7 @@
     break;
   case CAPACITOR:  vessel_->setCapacitor( NULL );
     break;
+  default: break;
   }
 
   std::vector < Entity * > items; items.push_back( item );
Modified: branches/ogsector/src/BaseDialog.cpp
===================================================================
--- branches/ogsector/src/BaseDialog.cpp	2007-06-12 17:12:12 UTC (rev 552)
+++ branches/ogsector/src/BaseDialog.cpp	2007-06-12 19:49:24 UTC (rev 553)
@@ -30,7 +30,7 @@
 void renameClonedWindows( const CEGUI::Window * parent, const CEGUI::String & namePrefix) { 
   //  std::cout << parent->getName() << ": " << parent->getChildCount() << std::endl;
 
-  for ( int i = 0; i < parent->getChildCount(); i ++ ){
+  for ( unsigned int i = 0; i < parent->getChildCount(); i ++ ){
     //    std::cout << i << "accessing: "<< parent->getName()  << std::endl;
     CEGUI::Window * child = parent->getChildAtIdx( i );
     child->rename( namePrefix + child->getName() ); 
Modified: branches/ogsector/src/ConfigDialog.cpp
===================================================================
--- branches/ogsector/src/ConfigDialog.cpp	2007-06-12 17:12:12 UTC (rev 552)
+++ branches/ogsector/src/ConfigDialog.cpp	2007-06-12 19:49:24 UTC (rev 553)
@@ -42,6 +42,7 @@
 
 bool ConfigDialog::handleQuitButton( const CEGUI::EventArgs & e ){
   devices_->gameStateRoot->shutdown();
+  return true;
 }
 
 } // namespace OpenGate
Modified: branches/ogsector/src/Console.cpp
===================================================================
--- branches/ogsector/src/Console.cpp	2007-06-12 17:12:12 UTC (rev 552)
+++ branches/ogsector/src/Console.cpp	2007-06-12 19:49:24 UTC (rev 553)
@@ -152,7 +152,7 @@
 
   for ( int i = 0; i < ceil( t.size()/consoleLineLength_ )+1; i ++ ){
     int count = consoleLineLength_;
-    if ( i*consoleLineLength_ + count > t.size() ){ count = -1; }
+    if ( i * consoleLineLength_ + count > (int)t.size() ){ count = -1; }
     CEGUI::String text( t, i*consoleLineLength_, count );
 
     CEGUI::ListboxTextItem * item = new CEGUI::ListboxTextItem( text );      
Modified: branches/ogsector/src/EntityManager.cpp
===================================================================
--- branches/ogsector/src/EntityManager.cpp	2007-06-12 17:12:12 UTC (rev 552)
+++ branches/ogsector/src/EntityManager.cpp	2007-06-12 19:49:24 UTC (rev 553)
@@ -40,7 +40,7 @@
   Ogre::FileSystemArchive * pArch = new Ogre::FileSystemArchive( (*resourcePaths.begin()) + "/" + resourceName, "FileSystem" );
 
   Ogre::StringVectorPtr files = pArch->find( "*.xml", true, false);
-  for ( int i = 0; i < (*files).size(); i ++ ){
+  for ( unsigned int i = 0; i < (*files).size(); i ++ ){
     log_->info( std::string( "Found ressource: " ) + (*files)[ i ] );
     loadAndCreate( (*resourcePaths.begin()) + "/" + resourceName + "/" + (*files)[ i ] );
   }
Modified: branches/ogsector/src/EntityManager.h
===================================================================
--- branches/ogsector/src/EntityManager.h	2007-06-12 17:12:12 UTC (rev 552)
+++ branches/ogsector/src/EntityManager.h	2007-06-12 19:49:24 UTC (rev 553)
@@ -131,7 +131,7 @@
   virtual Entity * loadAndCreate( const std::string & filename );
 
   std::vector < Entity * > allByCategory( const std::string & category ){
-    EntityType rtti;
+    EntityType rtti = NONE;
     if ( category != "All" ) rtti = categoryType( category );
     std::vector < Entity * > items;
     for ( std::map < std::string, Entity * >::iterator it = templatesByName_.begin(); it != templatesByName_.end(); it ++ ){
Modified: branches/ogsector/src/Makefile.am
===================================================================
--- branches/ogsector/src/Makefile.am	2007-06-12 17:12:12 UTC (rev 552)
+++ branches/ogsector/src/Makefile.am	2007-06-12 19:49:24 UTC (rev 553)
@@ -40,6 +40,8 @@
 	LogManager.cpp \
 	MarketDialog.h \
 	MarketDialog.cpp \
+	OpcodeWrapper.h \
+	OpcodeWrapper.cpp \
 	Sector.h \
 	Sector.cpp \
 	SectorObjects.h \
Modified: branches/ogsector/src/Makefile.in
===================================================================
--- branches/ogsector/src/Makefile.in	2007-06-12 17:12:12 UTC (rev 552)
+++ branches/ogsector/src/Makefile.in	2007-06-12 19:49:24 UTC (rev 553)
@@ -56,10 +56,10 @@
 	DockedState.$(OBJEXT) Entity.$(OBJEXT) EntityManager.$(OBJEXT) \
 	GameState.$(OBJEXT) GameStateManager.$(OBJEXT) \
 	InputManager.$(OBJEXT) LogManager.$(OBJEXT) \
-	MarketDialog.$(OBJEXT) Sector.$(OBJEXT) \
-	SectorObjects.$(OBJEXT) ShipConfigDialog.$(OBJEXT) \
-	UnDockedState.$(OBJEXT) Vessel.$(OBJEXT) \
-	VesselManager.$(OBJEXT)
+	MarketDialog.$(OBJEXT) OpcodeWrapper.$(OBJEXT) \
+	Sector.$(OBJEXT) SectorObjects.$(OBJEXT) \
+	ShipConfigDialog.$(OBJEXT) UnDockedState.$(OBJEXT) \
+	Vessel.$(OBJEXT) VesselManager.$(OBJEXT)
 opengateclient_OBJECTS = $(am_opengateclient_OBJECTS)
 opengateclient_LDADD = $(LDADD)
 am_opengateserver_OBJECTS = opengateserver.$(OBJEXT) common.$(OBJEXT) \
@@ -219,6 +219,8 @@
 	LogManager.cpp \
 	MarketDialog.h \
 	MarketDialog.cpp \
+	OpcodeWrapper.h \
+	OpcodeWrapper.cpp \
 	Sector.h \
 	Sector.cpp \
 	SectorObjects.h \
@@ -337,6 +339,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/InputManager.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/LogManager.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/MarketDialog.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/OpcodeWrapper.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Sector.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/SectorObjects.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ShipConfigDialog.Po@am__quote@
Modified: branches/ogsector/src/MarketDialog.cpp
===================================================================
--- branches/ogsector/src/MarketDialog.cpp	2007-06-12 17:12:12 UTC (rev 552)
+++ branches/ogsector/src/MarketDialog.cpp	2007-06-12 19:49:24 UTC (rev 553)
@@ -135,13 +135,13 @@
 		    CEGUI::PushButton::EventClicked, MarketDialog::handleMarketItemChangeAmount );
 
 
-  for ( int i = 0; i < marketItems_.size(); i ++ ){
+  for ( unsigned int i = 0; i < marketItems_.size(); i ++ ){
     BIND_CEGUI_EVENT( marketItems_[ i ], CEGUI::Window::EventMouseEnters, MarketDialog::handleMarketItemMouseEnters );
     BIND_CEGUI_EVENT( marketItems_[ i ], CEGUI::Window::EventMouseLeaves, MarketDialog::handleMarketItemMouseLeaves );
     BIND_CEGUI_EVENT( marketItems_[ i ], CEGUI::Window::EventMouseClick,  MarketDialog::handleMarketItemClicked );
   }
 
-  for ( int i = 0; i < inventItems_.size(); i ++ ){
+  for ( unsigned int i = 0; i < inventItems_.size(); i ++ ){
     BIND_CEGUI_EVENT( inventItems_[ i ], CEGUI::Window::EventMouseEnters, MarketDialog::handleMarketItemMouseEnters );
     BIND_CEGUI_EVENT( inventItems_[ i ], CEGUI::Window::EventMouseLeaves, MarketDialog::handleMarketItemMouseLeaves );
     BIND_CEGUI_EVENT( inventItems_[ i ], CEGUI::Window::EventMouseClick,  MarketDialog::handleInventItemClicked );
@@ -207,8 +207,8 @@
   
   for ( int i = 0; i < marketItemWindowRow_; i ++ ){
     for ( int j = 0; j < marketItemWindowCol_; j ++ ){
-      int widgetCount = i * marketItemWindowCol_ + j;
-      int itemCount = ( i + marketOffsetRow_ ) * marketItemWindowCol_ + j;
+      unsigned int widgetCount = i * marketItemWindowCol_ + j;
+      unsigned int itemCount = ( i + marketOffsetRow_ ) * marketItemWindowCol_ + j;
       
       if ( itemCount >= items.size() ) {
 	fillShortItemWindow( marketItems_[ widgetCount ] );
@@ -423,7 +423,7 @@
     int lineLength = 130;
     for ( int i = 0; i < ceil( t.size()/lineLength )+1; i ++ ){
       int count = lineLength;
-      if ( i * lineLength + count > t.size() ){ count = -1; }
+      if ( i * lineLength + count > (int)t.size() ){ count = -1; }
       CEGUI::String text( t, i * lineLength, count );
       outText += text;
       if ( count != -1 ) outText += '\n';
@@ -447,6 +447,7 @@
     CEGUI::WindowManager::getSingleton().getWindow( (CEGUI::utf8*)"ItemDescription/Mass/Label")->hide();
     CEGUI::WindowManager::getSingleton().getWindow( (CEGUI::utf8*)"ItemDescription/Text")->hide();
   }
+  return true;
 }
 
 bool MarketDialog::handleMarketItemClicked( const CEGUI::EventArgs & e ){
@@ -572,10 +573,11 @@
       str3a = "Recharge:"    ; str3b = toStr( dynamic_cast< Shield *>(item)->regenerationRate() / 1000) + "K";
       break;
     case CAPACITOR:
-      str1a = "Efficiency:"  ; str1b = toStr( dynamic_cast< Capacitor *>(item)->efficiency() );
-      str2a = "Max. Power:"  ; str2b = toStr( dynamic_cast< Capacitor *>(item)->capacity() ); + "K";
+      str1a = "Efficiency:"  ; str1b = toStr( dynamic_cast< Capacitor *>( item )->efficiency() );
+      str2a = "Max. Power:"  ; str2b = toStr( dynamic_cast< Capacitor *>( item )->capacity() ) + "K";
       break;
-
+    default:
+      break;
     }
 
     CEGUI::WindowManager::getSingleton().getWindow( "MarketItemDetailedView/EquipmentSpecs1a" )->setProperty( "Text", str1a );
@@ -685,6 +687,7 @@
 bool MarketDialog::handeMainWindowShown( const CEGUI::EventArgs & e ){
   updateMarketView();
   updateInventView();
+  return true;
 }
 
 
Added: branches/ogsector/src/OpcodeWrapper.cpp
===================================================================
--- branches/ogsector/src/OpcodeWrapper.cpp	                        (rev 0)
+++ branches/ogsector/src/OpcodeWrapper.cpp	2007-06-12 19:49:24 UTC (rev 553)
@@ -0,0 +1,134 @@
+
+/***************************************************************************
+ *   Copyright (C) 2006-2007 by OpenGate development team                  *
+ *   spo...@us...                                       *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This program is distributed in the hope that it will be useful,       *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+ *   GNU General Public License for more details.                          *
+ *                                                                         *
+ *   You should have received a copy of the GNU General Public License     *
+ *   along with this program; if not, write to the                         *
+ *   Free Software Foundation, Inc.,                                       *
+ *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
+ ***************************************************************************/
+
+#include "OpcodeWrapper.h"
+#include "SectorObjects.h"
+
+#include <OgreOpcode.h>
+
+namespace OpenGate{
+
+template<> OpcodeCollisionDetection * Ogre::Singleton< OpcodeCollisionDetection >::ms_Singleton = 0;
+
+OpcodeCollisionDetection::OpcodeCollisionDetection( Ogre::SceneManager * sceneMgr ){
+
+  new OgreOpcode::CollisionManager( sceneMgr );
+
+  OgreOpcode::CollisionManager::getSingletonPtr()->addCollClass( "SectorObject" );
+  OgreOpcode::CollisionManager::getSingletonPtr()->addCollClass( "Bullet" );
+  
+  OgreOpcode::CollisionManager::getSingletonPtr()->addCollType( "Bullet",       "Bullet",       OgreOpcode::COLLTYPE_IGNORE );
+  OgreOpcode::CollisionManager::getSingletonPtr()->addCollType( "SectorObject", "Bullet",       OgreOpcode::COLLTYPE_EXACT );
+  OgreOpcode::CollisionManager::getSingletonPtr()->addCollType( "SectorObject", "SectorObject", OgreOpcode::COLLTYPE_CONTACT );
+    //  OgreOpcode::CollisionManager::getSingletonPtr()->addCollType( "SectorObject", "SectorObject", OgreOpcode::COLLTYPE_QUICK );
+    
+  collideInSectorContext_ = OgreOpcode::CollisionManager::getSingletonPtr()->getDefaultContext();
+
+}
+
+OpcodeCollisionDetection::~OpcodeCollisionDetection(){
+  delete OgreOpcode::CollisionManager::getSingletonPtr();
+}
+
+bool OpcodeCollisionDetection::update( Ogre::Real elapsedTime ){
+  collideInSectorContext_->collide( 0.0 );
+  collideInSectorContext_->collide( elapsedTime );
+  
+  OgreOpcode::CollisionReporter report( collideInSectorContext_->getCollisionReport() );
+  
+  int nCollids = report.getNumCollisions();
+  if ( nCollids > 0 ){
+    //    std::cout << "Collisions: " << nCollids << std::endl;
+    
+    OgreOpcode::CollisionPair **collisionReport;
+    report.getAllCollisions( collisionReport );
+    
+    for ( int i = 0; i < nCollids; i ++ ){
+      OgreOpcode::CollisionObject* col1 = collisionReport[ i ]->this_object;
+      OgreOpcode::CollisionObject* col2 = collisionReport[ i ]->other_object;
+      
+      static_cast< BaseObject * >( col1->getClientData() )->collide( static_cast< BaseObject * >( col2->getClientData() ) );
+      static_cast< BaseObject * >( col2->getClientData() )->collide( static_cast< BaseObject * >( col1->getClientData() ) );
+    }
+  //     std::cout << "CollisionContext attached objects: " + Ogre::StringConverter::toString(collideInSectorContext_->getAttachedObjectCount()) << std::endl;
+//     std::cout << "CollisionContext owned objects: " + Ogre::StringConverter::toString(collideInSectorContext_->getOwnedObjectCount()) << std::endl;
+//     std::cout << "CollisionManager shapes: " + Ogre::StringConverter::toString(OgreOpcode::CollisionManager::getSingletonPtr()->getShapeCount())<< std::endl;
+
+  }
+
+  return true;
+}
+
+OgreOpcode::CollisionObject * OpcodeCollisionDetection::createObject( SectorObject * obj ){
+
+  OgreOpcode::EntityCollisionShape * collShape = OgreOpcode::CollisionManager::getSingletonPtr()
+    ->createEntityCollisionShape( obj->name() + "/CollShape" );
+  collShape->load( obj->shape() );
+
+  OgreOpcode::CollisionObject * collObj = collideInSectorContext_->createObject( obj->name() + "/CollObj" );
+  collObj->setCollClass( OgreOpcode::CollisionManager::getSingletonPtr()->queryCollClass( "SectorObject" ) );
+  collObj->setShape( collShape );
+
+  collideInSectorContext_->addObject( collObj );
+  collObj->setClientData( obj );
+  return collObj;
+}
+
+void OpcodeCollisionDetection::destroyObject( OgreOpcode::CollisionObject * obj ){
+  collideInSectorContext_->destroyObject( obj );
+  OgreOpcode::CollisionManager::getSingletonPtr()->destroyShape( obj->getShape() );
+}
+
+bool OpcodeCollisionDetection::checkCollideRay( Projectile * ammo, const Ogre::Ray & ray, double rayLength){
+  OgreOpcode::CollisionPair ** rayPickReport;
+  int nColl = collideInSectorContext_->rayCheck( ray, rayLength, OgreOpcode::COLLTYPE_EXACT,
+						 OgreOpcode::COLLTYPE_ALWAYS_EXACT, rayPickReport );
+  
+  if ( nColl > 0 ){
+    OgreOpcode::CollisionObject* col1 = rayPickReport[ 0 ]->this_object;
+    OgreOpcode::CollisionObject* col2 = rayPickReport[ 0 ]->other_object;
+    
+    if ( ammo->name() != static_cast< BaseObject * >( col1->getClientData() )->name() ){
+      
+      ammo->mainNode()->setPosition( rayPickReport[ 0 ]->contact );
+      
+      ammo->collide( static_cast< BaseObject * >( col2->getClientData() ) );
+      static_cast< BaseObject * >( col1->getClientData() )->collide( ammo );
+      return true;
+    }
+  } 
+  return false;
+}
+
+OpcodeCollisionDetection & OpcodeCollisionDetection::getSingleton( ){
+  assert( ms_Singleton );
+  return ( *ms_Singleton );
+}
+
+OpcodeCollisionDetection * OpcodeCollisionDetection::getSingletonPtr( ){
+  if ( ms_Singleton == NULL ){
+    std::cerr << "OpcodeCollisionDetection not initialized." << std::endl;
+  }
+  return ms_Singleton;
+}
+
+
+} // namespace OpenGate{
Added: branches/ogsector/src/OpcodeWrapper.h
===================================================================
--- branches/ogsector/src/OpcodeWrapper.h	                        (rev 0)
+++ branches/ogsector/src/OpcodeWrapper.h	2007-06-12 19:49:24 UTC (rev 553)
@@ -0,0 +1,67 @@
+/***************************************************************************
+ *   Copyright (C) 2006-2007 by OpenGate development team                  *
+ *   spo...@us...                                       *
+ *                                                                         *
+ *   This program is free software; you can redistribute it and/or modify  *
+ *   it under the terms of the GNU General Public License as published by  *
+ *   the Free Software Foundation; either version 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This program is distributed in the hope that it will be useful,       *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
+ *   GNU General Public License for more details.                          *
+ *                                                                         *
+ *   You should have received a copy of the GNU General Public License     *
+ *   along with this program; if not, write to the                         *
+ *   Free Software Foundation, Inc.,                                       *
+ *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
+ ***************************************************************************/
+
+#ifndef _OPENGATE_OPCODEWRAPPER__H
+#define _OPENGATE_OPCODEWRAPPER__H
+
+#include <OgreSceneManager.h>
+
+#include <OgreSingleton.h>
+#include <OgreRay.h>
+
+namespace OgreOpcode{
+  class CollisionContext;
+  class CollisionObject;
+}
+
+namespace OpenGate{
+
+class SectorObject;
+class Projectile;
+
+
+class OpcodeCollisionDetection : public Ogre::Singleton< OpcodeCollisionDetection >{
+public:
+  OpcodeCollisionDetection( Ogre::SceneManager * sceneMgr );
+
+  ~OpcodeCollisionDetection();
+
+  bool update( Ogre::Real elapsedTime );
+
+  OgreOpcode::CollisionObject * createObject( SectorObject * obj );
+
+  void destroyObject( OgreOpcode::CollisionObject * obj );
+
+  bool checkCollideRay( Projectile * ammo, const Ogre::Ray & bulletRay, double rayLength);
+
+  OgreOpcode::CollisionContext * collideInSectorContext(){ return collideInSectorContext_; }
+
+  static OpcodeCollisionDetection & getSingleton( );
+  static OpcodeCollisionDetection * getSingletonPtr( );
+
+protected:
+  OgreOpcode::CollisionContext * collideInSectorContext_;
+
+};
+
+
+} // opengate{
+
+#endif // _OPENGATE_OPCODEWRAPPER__H
Modified: branches/ogsector/src/Sector.cpp
===================================================================
--- branches/ogsector/src/Sector.cpp	2007-06-12 17:12:12 UTC (rev 552)
+++ branches/ogsector/src/Sector.cpp	2007-06-12 19:49:24 UTC (rev 553)
@@ -20,6 +20,7 @@
 
 #include "Sector.h"
 #include "Avatar.h"
+#include "OpcodeWrapper.h"
 
 namespace OpenGate{
 
@@ -67,6 +68,8 @@
   //  l->setPosition( 50, 0, 300 );
 
 
+  collsionDetection_ = new OpcodeCollisionDetection( sceneMgr_ );
+
   //** Create a skybox;
   sceneMgr_->setSkyBox( true, "OpenGate/SimpleSkyBox1" );
 
@@ -130,19 +133,6 @@
     planetNode_->setPosition( Ogre::Vector3( 20000.0, 10000.0, 50000 ) );
   }
 
-  new OgreOpcode::CollisionManager( sceneMgr_ );
-  OgreOpcode::CollisionManager::getSingletonPtr()->addCollClass( "SectorObject" );
-  OgreOpcode::CollisionManager::getSingletonPtr()->addCollClass( "Bullet" );
-  
-  OgreOpcode::CollisionManager::getSingletonPtr()->addCollType( "Bullet", "Bullet", OgreOpcode::COLLTYPE_IGNORE );
-  OgreOpcode::CollisionManager::getSingletonPtr()->addCollType( "SectorObject", "Bullet", OgreOpcode::COLLTYPE_EXACT );
-  OgreOpcode::CollisionManager::getSingletonPtr()->addCollType( "SectorObject", "SectorObject", OgreOpcode::COLLTYPE_CONTACT );
-    //  OgreOpcode::CollisionManager::getSingletonPtr()->addCollType( "SectorObject", "SectorObject", OgreOpcode::COLLTYPE_QUICK );
-    
-  collideInSectorContext_ = OgreOpcode::CollisionManager::getSingletonPtr()->getDefaultContext();
-
-
-
 //   Ogre::MeshPtr pMesh = Ogre::MeshManager::getSingleton().load( "astro/Sphere.mesh",
 //  								Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME,    
 //  								Ogre::HardwareBuffer::HBU_DYNAMIC_WRITE_ONLY, 
@@ -235,37 +225,12 @@
   sceneMgr_->destroyManualObject( "Planet" );
   sceneMgr_->getRootSceneNode()->removeAndDestroyChild( "PlanetNode" );
 
-  delete OgreOpcode::CollisionManager::getSingletonPtr();
+  delete collsionDetection_;
 }
 
 void Sector::update( Ogre::Real elapsedTime ){
-
-  collideInSectorContext_->collide( 0.0 );
-  collideInSectorContext_->collide( elapsedTime );
-
-  OgreOpcode::CollisionReporter report( collideInSectorContext_->getCollisionReport() );
-
-  int nCollids = report.getNumCollisions();
-  if ( nCollids > 0 ){
-    //    std::cout << "Collisions: " << nCollids << std::endl;
-
-    OgreOpcode::CollisionPair **collisionReport;
-    report.getAllCollisions( collisionReport );
-
-    for ( int i = 0; i < nCollids; i ++ ){
-      OgreOpcode::CollisionObject* col1 = collisionReport[ i ]->this_object;
-      OgreOpcode::CollisionObject* col2 = collisionReport[ i ]->other_object;
-
-      static_cast< BaseObject * >( col1->getClientData() )->collide( static_cast< BaseObject * >( col2->getClientData() ) );
-      static_cast< BaseObject * >( col2->getClientData() )->collide( static_cast< BaseObject * >( col1->getClientData() ) );
-    }
-
-//     std::cout << "CollisionContext attached objects: " + Ogre::StringConverter::toString(collideInSectorContext_->getAttachedObjectCount()) << std::endl;
-//     std::cout << "CollisionContext owned objects: " + Ogre::StringConverter::toString(collideInSectorContext_->getOwnedObjectCount()) << std::endl;
-//     std::cout << "CollisionManager shapes: " + Ogre::StringConverter::toString(OgreOpcode::CollisionManager::getSingletonPtr()->getShapeCount())<< std::endl;
-
-  }
-
+  collsionDetection_->update(  elapsedTime );
+ 
   if ( avatar_ ) {
     if ( planetNode_ ){
       Ogre::Vector3 src = planetNode_->getWorldOrientation() * Ogre::Vector3::UNIT_Z;
Modified: branches/ogsector/src/Sector.h
===================================================================
--- branches/ogsector/src/Sector.h	2007-06-12 17:12:12 UTC (rev 552)
+++ branches/ogsector/src/Sector.h	2007-06-12 19:49:24 UTC (rev 553)
@@ -18,11 +18,10 @@
  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
  ***************************************************************************/
 
-#ifndef SECTOR__H
-#define SECTOR__H
+#ifndef _OPENGATE_SECTOR__H
+#define _OPENGATE_SECTOR__H
 
 #include <Ogre.h>
-#include <OgreOpcode.h>
 
 #include "UnDockedState.h"
 #include "SectorObjects.h"
@@ -70,8 +69,6 @@
 
   void spawnAiObject( const std::string & vesselName );
 
-  OgreOpcode::CollisionContext * collisionContext() { return collideInSectorContext_; }
-
   void createCircle( );
 
   void selectNextTarget( SectorObject * obj = NULL );
@@ -114,8 +111,6 @@
   Ogre::SceneNode * planetNode_;
   Ogre::SceneNode * starsNode_;
 
-  OgreOpcode::CollisionContext * collideInSectorContext_;
-
   std::set< SectorObject * > sectorObjects_;
   std::set< SectorObject * >::iterator itTarget_;
 
@@ -125,9 +120,12 @@
   float avatarDeathSequenceTime_;
 
   bool radar_ ;
+
+  OpcodeCollisionDetection * collsionDetection_;
+
 };
 
 } // namespace OpenGate
 
 
-#endif // SECTOR__H
+#endif // _OPENGATE_SECTOR__H
Modified: branches/ogsector/src/SectorObjects.cpp
===================================================================
--- branches/ogsector/src/SectorObjects.cpp	2007-06-12 17:12:12 UTC (rev 552)
+++ branches/ogsector/src/SectorObjects.cpp	2007-06-12 19:49:24 UTC (rev 553)
@@ -21,6 +21,9 @@
 #include "Sector.h"
 #include "SectorObjects.h"
 #include "common.h"
+#include "OpcodeWrapper.h"
+//#include <OgreOpcode.h>
+
 #include <string>
 
 namespace OpenGate{
@@ -145,36 +148,39 @@
 }
 
 bool Projectile::update( Ogre::Real elapsedTime ){
-  if ( elapsedTime < 0.001 ){
-    return true;
-  }
-
+  if ( elapsedTime < 0.001 ) return true;
+  
   lifeTime_ += elapsedTime;
   if ( lifeTime_ >= maxLiveTime_ ) return false;
 
   if ( vel_.length() > 0.1 ){
-    OgreOpcode::CollisionPair ** rayPickReport;
 
     Ogre::Ray bulletRay( mainNode_->getPosition(), vel_.normalisedCopy() );
 
-    int nColl = sector_->collisionContext()->rayCheck( bulletRay, (vel_ * elapsedTime).length(),
-						       OgreOpcode::COLLTYPE_EXACT,
-						       OgreOpcode::COLLTYPE_ALWAYS_EXACT, rayPickReport );
+    if ( !OpcodeCollisionDetection::getSingleton().checkCollideRay( this, bulletRay, (vel_ * elapsedTime).length() ) ){
+      mainNode_->translate( vel_ * elapsedTime );
+    }
 
-    if ( nColl > 0 ){
-      OgreOpcode::CollisionObject* col1 = rayPickReport[ 0 ]->this_object;
-      OgreOpcode::CollisionObject* col2 = rayPickReport[ 0 ]->other_object;
+//     OgreOpcode::CollisionPair ** rayPickReport;
+//     int nColl = OgreOpcode::CollisionManager::getSingletonPtr()
+//       ->getDefaultContext()->rayCheck( bulletRay, (vel_ * elapsedTime).length(),
+// 				       OgreOpcode::COLLTYPE_EXACT,
+// 				       OgreOpcode::COLLTYPE_ALWAYS_EXACT, rayPickReport );
 
-      if ( this->name() !=  static_cast< BaseObject * >( col1->getClientData() )->name() ){
+//     if ( nColl > 0 ){
+//       OgreOpcode::CollisionObject* col1 = rayPickReport[ 0 ]->this_object;
+//       OgreOpcode::CollisionObject* col2 = rayPickReport[ 0 ]->other_object;
 
-	mainNode_->setPosition( rayPickReport[ 0 ]->contact );
+//       if ( this->name() !=  static_cast< BaseObject * >( col1->getClientData() )->name() ){
 
-	this->collide( static_cast< BaseObject * >( col2->getClientData() ) );
-	static_cast< BaseObject * >( col1->getClientData() )->collide( this );
-	return true;
-      }
-    }
-    mainNode_->translate( vel_ * elapsedTime );
+// 	mainNode_->setPosition( rayPickReport[ 0 ]->contact );
+
+// 	this->collide( static_cast< BaseObject * >( col2->getClientData() ) );
+// 	static_cast< BaseObject * >( col1->getClientData() )->collide( this );
+// 	return true;
+//       }
+//     }
+
   }
   return true;
 }
@@ -209,8 +215,7 @@
   Ogre::OverlayManager::getSingleton().destroyOverlayElement( "Radar/Map/DotA_" + name_ );
   Ogre::OverlayManager::getSingleton().destroyOverlayElement( "Radar/Map/DotB_" + name_ );
 
-  sector_->collisionContext()->destroyObject( collObj_ );
-  OgreOpcode::CollisionManager::getSingletonPtr()->destroyShape( collObj_->getShape() );
+  OpcodeCollisionDetection::getSingleton().destroyObject( collObj_ );
 
   mainNodeEntity_->detachObject( entity_ );
   sceneMgr_->destroyEntity( entity_ );
@@ -220,16 +225,7 @@
 void SectorObject::setShape( const Ogre::String & meshname ){
   entity_ = sceneMgr_->createEntity( name_ + "_shape", meshname );
   mainNodeEntity_->attachObject( entity_ );
-
-  OgreOpcode::EntityCollisionShape * collShape = OgreOpcode::CollisionManager::getSingletonPtr()->createEntityCollisionShape( name_ + "CollShape" );
-  collShape->load( this->shape() );
-
-  collObj_ = sector_->collisionContext()->createObject( name_ + "CollObj" );
-  collObj_->setCollClass( OgreOpcode::CollisionManager::getSingletonPtr()->queryCollClass( "SectorObject" ) );
-  collObj_->setShape( collShape );
-
-  sector_->collisionContext()->addObject( collObj_ );
-  collObj_->setClientData( this );
+  collObj_ = OpcodeCollisionDetection::getSingleton().createObject( this );
 }
 
 void SectorObject::setBaseSize( Ogre::Real targetSize ){
@@ -534,7 +530,7 @@
     capacity_ += powerLine * vessel_->capacitor()->efficiency() * elapsedTime;
     capacity_ = min( (long)capacity_, vessel_->capacitor()->capacity() );
   }
-
+  return true;
 }
 
 void SectorObjectMoveable::inititializeVesselStats_(){
Modified: branches/ogsector/src/SectorObjects.h
===================================================================
--- branches/ogsector/src/SectorObjects.h	2007-06-12 17:12:12 UTC (rev 552)
+++ branches/ogsector/src/SectorObjects.h	2007-06-12 19:49:24 UTC (rev 553)
@@ -23,12 +23,14 @@
 
 #include <Ogre.h>
 
-#include <OgreOpcode.h>
-
 #include "common.h"
 #include "networkProtocol.h"
 #include "VesselManager.h"
 
+namespace OgreOpcode{
+  class CollisionObject;
+}
+
 namespace OpenGate{
 
 #define PROJECTILE_RTTI 100001
@@ -38,6 +40,7 @@
 #define AVATAR_RTTI 100005
 
 class Sector;
+class OpcodeCollisionDetection;
 
 class BaseObject : public Ogre::UserDefinedObject{
 public:
Modified: branches/ogsector/src/ShipConfigDialog.cpp
===================================================================
--- branches/ogsector/src/ShipConfigDialog.cpp	2007-06-12 17:12:12 UTC (rev 552)
+++ branches/ogsector/src/ShipConfigDialog.cpp	2007-06-12 19:49:24 UTC (rev 553)
@@ -104,7 +104,7 @@
   BIND_CEGUI_EVENT( wmgr.getWindow( (CEGUI::utf8*)"ShipConfigDialog/SelectShip"),
 		    CEGUI::PushButton::EventClicked, ShipConfigDialog::handleSelectShipButton );
 
-  for ( int i = 0; i < equipmentButtons_.size(); i ++ ){
+  for ( unsigned int i = 0; i < equipmentButtons_.size(); i ++ ){
     BIND_CEGUI_EVENT( wmgr.getWindow( equipmentButtons_[ i ]->getName() + "ShipConfigEquipmentItem/Load"),
 		      CEGUI::PushButton::EventClicked, ShipConfigDialog::handleLoadItem );
     BIND_CEGUI_EVENT( wmgr.getWindow( equipmentButtons_[ i ]->getName() + "ShipConfigEquipmentItem/UnLoad"),
@@ -258,6 +258,7 @@
     case ECM:        ecms.push_back(       &(*it) ); break;
     case RADAR:      radars.push_back(     &(*it) ); break;
     case CAPACITOR:  capacitors.push_back( &(*it) ); break;
+    default: break;
     }
   }
 
@@ -413,7 +414,7 @@
       CEGUI::WindowManager::getSingleton().getWindow( itemWindow->getName()+"ShipConfigEquipmentItem/UnLoad" )->show();
     }
   }
-  updatePowerGrid( );
+  return updatePowerGrid( );
 }
 
 bool ShipConfigDialog::handleUnLoadItem( const CEGUI::EventArgs & e ){
@@ -427,7 +428,7 @@
       CEGUI::WindowManager::getSingleton().getWindow( itemWindow->getName()+"ShipConfigEquipmentItem/UnLoad" )->hide();
     }
   }
-  updatePowerGrid( );
+  return updatePowerGrid( );
 }
 
 bool ShipConfigDialog::updatePowerGrid( ){
@@ -507,6 +508,7 @@
   CEGUI::WindowManager::getSingleton().getWindow( "ShipConfiguration/PowerGrid/Values/Remain" )
     ->setProperty("Text", toStr( (int)powerLine ) + "K" );
   
+  return true;
 }
 
 
Modified: branches/ogsector/src/networkServer.cpp
===================================================================
--- branches/ogsector/src/networkServer.cpp	2007-06-12 17:12:12 UTC (rev 552)
+++ branches/ogsector/src/networkServer.cpp	2007-06-12 19:49:24 UTC (rev 553)
@@ -48,7 +48,7 @@
 Server::~Server(){
   // TODO: necessary? delete(newUser);
   shutdown( );
-  segfaults: acceptor_.close();
+  //  segfaults: acceptor_.close();
 }
 
 void Server::shutdown( ){
Modified: branches/ogsector/src/openALSoundManager.cpp
===================================================================
--- branches/ogsector/src/openALSoundManager.cpp	2007-06-12 17:12:12 UTC (rev 552)
+++ branches/ogsector/src/openALSoundManager.cpp	2007-06-12 19:49:24 UTC (rev 553)
@@ -95,6 +95,7 @@
   ALenum error = 0;
   if ( ( error = alGetError() ) == AL_NO_ERROR ) return false;
   displayOpenALError( str, error );
+  return true;
 }
 
 void OpenALSoundManager::displayOpenALError( const std::string & str, ALenum error ){
@@ -274,18 +275,21 @@
   pos[ 0 ] = x; pos[ 1 ] = y; pos[ 2 ] = z;
   alSourcefv( audioSources_[  sourceId ], AL_POSITION, pos );
   if ( checkOpenALError( "setSourcePosition::alSourcefv:AL_POSITION" ) ) return false;
+  return true;
 }
 
 bool OpenALSoundManager::setListenerPosition( const ALfloat x, const ALfloat y, const ALfloat z ){
   listenerPosition_[ 0 ] = x; listenerPosition_[ 1 ] = y; listenerPosition_[ 2 ] = z;
   alListenerfv( AL_POSITION, listenerPosition_ );
   if ( checkOpenALError( "setListenerPosition::alListenerfv:AL_POSITION" ) ) return false;
+  return true;
 }
 
 bool OpenALSoundManager::setListenerVelocity( const ALfloat x, const ALfloat y, const ALfloat z ){
   listenerVelocity_[ 0 ] = x; listenerVelocity_[ 1 ] = y; listenerVelocity_[ 2 ] = z;
   alListenerfv( AL_VELOCITY, listenerVelocity_ );
   if ( checkOpenALError( "setListenerVelocity::alListenerfv:AL_VELOCITY" ) ) return false;
+  return true;
 }
 
 bool OpenALSoundManager::setListenerOrientation( const ALfloat x,  const ALfloat y,  const ALfloat z, 
@@ -294,6 +298,7 @@
   listenerOrientation_[ 3 ] = x1; listenerOrientation_[ 4 ] = y1; listenerOrientation_[ 5 ] = z1;
   alListenerfv( AL_ORIENTATION, listenerOrientation_ );
   if ( checkOpenALError( "setListenerOrientation::alListenerfv:AL_ORIENTATION" ) ) return false;
+  return true;
 }
 
 } // namespace OpenGate
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 | 
| 
      
      
      From: <spo...@us...> - 2007-06-12 17:12:22
      
     | 
| Revision: 552
          http://svn.sourceforge.net/opengate/?rev=552&view=rev
Author:   spom_spom
Date:     2007-06-12 10:12:12 -0700 (Tue, 12 Jun 2007)
Log Message:
-----------
Add very basic ship configuratoin dialog. Its just quite ugly.
Modified Paths:
--------------
    branches/ogsector/configure.ac
    branches/ogsector/data/gui/layouts/dialogs/MarketDialog.layout
    branches/ogsector/data/gui/layouts/dialogs/MarketItemShortDialog.layout
    branches/ogsector/data/gui/layouts/dialogs/ShipConfigDialog.layout
    branches/ogsector/data/gui/schemes/opengate/opengate.imageset
    branches/ogsector/data/gui/schemes/opengate/opengate.png
    branches/ogsector/src/Avatar.cpp
    branches/ogsector/src/Avatar.h
    branches/ogsector/src/BaseDialog.cpp
    branches/ogsector/src/BaseDialog.h
    branches/ogsector/src/DeviceManager.h
    branches/ogsector/src/DockedState.cpp
    branches/ogsector/src/DockedState.h
    branches/ogsector/src/Entity.cpp
    branches/ogsector/src/Entity.h
    branches/ogsector/src/EntityManager.cpp
    branches/ogsector/src/EntityManager.h
    branches/ogsector/src/GameStateManager.cpp
    branches/ogsector/src/Makefile.am
    branches/ogsector/src/Makefile.in
    branches/ogsector/src/MarketDialog.cpp
    branches/ogsector/src/MarketDialog.h
    branches/ogsector/src/Sector.cpp
    branches/ogsector/src/SectorObjects.cpp
    branches/ogsector/src/SectorObjects.h
    branches/ogsector/src/ShipConfigDialog.cpp
    branches/ogsector/src/ShipConfigDialog.h
    branches/ogsector/src/UnDockedState.cpp
    branches/ogsector/src/Vessel.h
Added Paths:
-----------
    branches/ogsector/data/gui/layouts/dialogs/ShipConfigEquipmentButton.layout
    branches/ogsector/src/Vessel.cpp
Modified: branches/ogsector/configure.ac
===================================================================
--- branches/ogsector/configure.ac	2007-06-12 03:50:11 UTC (rev 551)
+++ branches/ogsector/configure.ac	2007-06-12 17:12:12 UTC (rev 552)
@@ -51,7 +51,7 @@
 AC_SUBST(AM_CXXFLAGS, "$AM_CXXFLAGS $freealut_CFLAGS")
 AC_SUBST(AM_LDFLAGS, "$AM_LDFLAGS $freealut_LIBS")
 
-AC_SUBST([CXXFLAGS], ["${CXXFLAGS} -I$OGSECTOR_EXTERNALS_PATH/include"])
+AC_SUBST([CXXFLAGS], ["${CXXFLAGS} -Wall -I$OGSECTOR_EXTERNALS_PATH/include"])
 AC_SUBST([CXXFLAGS], ["${CXXFLAGS} -I$OGSECTOR_EXTERNALS_PATH/ogreopcode/include"])
 AC_SUBST([CXXFLAGS], ["${CXXFLAGS} -I$OGSECTOR_EXTERNALS_PATH/ogreopcode/opcode132"])
 AC_SUBST([LDFLAGS], ["${LDFLAGS} -L$OGSECTOR_EXTERNALS_PATH/lib/ -lOpcode -lOgreOpcode"])
Modified: branches/ogsector/data/gui/layouts/dialogs/MarketDialog.layout
===================================================================
--- branches/ogsector/data/gui/layouts/dialogs/MarketDialog.layout	2007-06-12 03:50:11 UTC (rev 551)
+++ branches/ogsector/data/gui/layouts/dialogs/MarketDialog.layout	2007-06-12 17:12:12 UTC (rev 552)
@@ -51,8 +51,8 @@
           <Property Name="FrameEnabled"      Value="False" />
         </Window> 
         <Window Type="opengate/StaticGreenImage" Name="MarketItemDetailedView/TextFrame">
-          <Property Name="UnifiedPosition"       Value="{{0.0,  330},{0.5, -120}}" />
-          <Property Name="UnifiedSize"           Value="{{0.0,  250},{0.0,  240}}" />
+          <Property Name="UnifiedPosition"       Value="{{0.0,  330},{0.5, -145}}" />
+          <Property Name="UnifiedSize"           Value="{{0.0,  250},{0.0,  290}}" />
           <Property Name="BackgroundEnabled"     Value="False" />
           <Property Name="FrameEnabled"          Value="False" />
           <Window Type="opengate/StaticLabel" Name="MarketItemDetailedView/TextFrame/Name">
@@ -82,8 +82,47 @@
               <Property Name="UnifiedSize"      Value="{{1.0, -100},{1.0, 0}}" />
             </Window> 
           </Window> 
+          <Window Type="opengate/StaticLabel" Name="MarketItemDetailedView/EquipmentSpecs">
+            <Property Name="UnifiedPosition"  Value="{{0.0, 0},{0.0, 100}}" />
+            <Property Name="UnifiedSize"      Value="{{1.0, 0},{1.0, -80}}" />
+            <Window Type="opengate/StaticLabel" Name="MarketItemDetailedView/EquipmentSpecs1a">
+              <Property Name="UnifiedPosition"  Value="{{0.0,   0},{0.0,  0}}" />
+              <Property Name="UnifiedSize"      Value="{{0.0, 100},{0.0, 20}}" />
+            </Window>
+            <Window Type="opengate/StaticLabel" Name="MarketItemDetailedView/EquipmentSpecs1b">
+              <Property Name="UnifiedPosition"  Value="{{0.0, 100},{0.0,   0}}" />
+              <Property Name="UnifiedSize"      Value="{{0.0,  50},{0.0,  20}}" />
+            </Window>
+
+            <Window Type="opengate/StaticLabel" Name="MarketItemDetailedView/EquipmentSpecs2a">
+              <Property Name="UnifiedPosition"  Value="{{0.0,   0},{0.0,  20}}" />
+              <Property Name="UnifiedSize"      Value="{{0.0, 100},{0.0,  20}}" />
+            </Window>
+            <Window Type="opengate/StaticLabel" Name="MarketItemDetailedView/EquipmentSpecs2b">
+              <Property Name="UnifiedPosition"  Value="{{0.0, 100},{0.0,  20}}" />
+              <Property Name="UnifiedSize"      Value="{{0.0,  50},{0.0,  20}}" />
+            </Window>
+
+            <Window Type="opengate/StaticLabel" Name="MarketItemDetailedView/EquipmentSpecs3a">
+              <Property Name="UnifiedPosition"  Value="{{0.0,   0},{0.0,  40}}" />
+              <Property Name="UnifiedSize"      Value="{{0.0, 100},{0.0,  20}}" />
+            </Window>
+            <Window Type="opengate/StaticLabel" Name="MarketItemDetailedView/EquipmentSpecs3b">
+              <Property Name="UnifiedPosition"  Value="{{0.0, 100},{0.0,  40}}" />
+              <Property Name="UnifiedSize"      Value="{{0.0,  50},{0.0,  20}}" />
+            </Window>
+
+            <Window Type="opengate/StaticLabel" Name="MarketItemDetailedView/EquipmentSpecs4a">
+              <Property Name="UnifiedPosition"  Value="{{0.0,   0},{0.0,  60}}" />
+              <Property Name="UnifiedSize"      Value="{{0.0, 100},{0.0,  20}}" />
+            </Window>
+            <Window Type="opengate/StaticLabel" Name="MarketItemDetailedView/EquipmentSpecs4b">
+              <Property Name="UnifiedPosition"  Value="{{0.0, 100},{0.0,  60}}" />
+              <Property Name="UnifiedSize"      Value="{{0.0,  50},{0.0,  20}}" />
+            </Window>
+          </Window>
           <Window Type="opengate/StaticLabel" Name="MarketItemDetailedView/TextFrame/Amount">
-            <Property Name="UnifiedPosition"  Value="{{0.0, 0},{0.0,  70}}" />
+            <Property Name="UnifiedPosition"  Value="{{0.0, 0},{1.0,  -60}}" />
             <Property Name="UnifiedSize"      Value="{{1.0, 0},{0.0,  20}}" />
             <Property Name="Text"             Value="Amount available:" />
             <Window Type="opengate/StaticLabel" Name="MarketItemDetailedView/TextFrame/Amount/Text">
@@ -92,7 +131,7 @@
             </Window> 
           </Window> 
           <Window Type="opengate/StaticLabel" Name="MarketItemDetailedView/TextFrame/Price">
-            <Property Name="UnifiedPosition"  Value="{{0.0, 0},{0.0,  100}}" />
+            <Property Name="UnifiedPosition"  Value="{{0.0, 0},{1.0, -40}}" />
             <Property Name="UnifiedSize"      Value="{{1.0, 0},{0.0,  20}}" />
             <Property Name="Text"             Value="Cost with tax:" />
             <Window Type="opengate/StaticLabel" Name="MarketItemDetailedView/TextFrame/Price/Text">
Modified: branches/ogsector/data/gui/layouts/dialogs/MarketItemShortDialog.layout
===================================================================
--- branches/ogsector/data/gui/layouts/dialogs/MarketItemShortDialog.layout	2007-06-12 03:50:11 UTC (rev 551)
+++ branches/ogsector/data/gui/layouts/dialogs/MarketItemShortDialog.layout	2007-06-12 17:12:12 UTC (rev 552)
@@ -17,7 +17,7 @@
       <Property Name="UnifiedSize" Value="{{0.0, 12},{0.0, 12}}" />
       <Property Name="BackgroundEnabled" Value="False" />
       <Property Name="FrameEnabled" Value="false" />
-      <Property Name="Image" Value="set:opengate image:IconCommoditiesNeutral" />
+      <Property Name="Image" Value="set:opengate image:IconCommodity0" />
       <Property Name="MousePassThroughEnabled" Value="true" />
     </Window>
     <Window Type="opengate/StaticGreenImage" Name="MarketShortItemSizeIcon">
Modified: branches/ogsector/data/gui/layouts/dialogs/ShipConfigDialog.layout
===================================================================
--- branches/ogsector/data/gui/layouts/dialogs/ShipConfigDialog.layout	2007-06-12 03:50:11 UTC (rev 551)
+++ branches/ogsector/data/gui/layouts/dialogs/ShipConfigDialog.layout	2007-06-12 17:12:12 UTC (rev 552)
@@ -1,75 +1,340 @@
 <?xml version="1.0" ?>
 <GUILayout>
-    <Window Type="opengate/FrameWindow" Name="ShipConfigDialog">
-      <Property Name="UnifiedPosition" Value="{{0.15,0},{0.15,0}}" />
-      <Property Name="UnifiedSize" Value="{{0.7,0},{0.7,0}}" />
-      <Property Name="SizingEnabled" Value="false" />
+    <Window Type="opengate/StaticGreenImage" Name="ShipConfigDialog">
+ <!--     <Property Name="MousePassThroughEnabled" Value="True" /> -->
+      <Property Name="UnifiedPosition" Value="{{0.0,100},{0.0,115}}" />
+      <Property Name="UnifiedSize" Value="{{1.0,-167},{1.0,-217}}" />
+<!-- *** -->
+<!-- *** Left part ship selection *** -->
+<!-- *** -->
+      <Window Type="opengate/StaticGreenImage" Name="ShipSelection">
+        <Property Name="UnifiedPosition"       Value="{{0.0,  10},{0.0,  10}}" />
+        <Property Name="UnifiedSize"           Value="{{0.5, -50},{1.0, -20}}" />
+        <Property Name="BackgroundEnabled"     Value="False" />
+        <Property Name="FrameEnabled"          Value="False" />
+<!-- *** Start frame *** -->
+        <Window Type="opengate/StaticGreenImage" Name="ShipSelection/TopLeft">
+          <Property Name="UnifiedPosition"       Value="{{0.0,  0},{0.0, 0}}" />
+          <Property Name="UnifiedSize"           Value="{{0.0, 31},{0.0, 31}}" />
+          <Property Name="BackgroundEnabled"     Value="False" />
+          <Property Name="FrameEnabled"          Value="False" />
+          <Property Name="RiseOnClick"           Value="False" />
+          <Property Name="Image"                 Value="set:opengate image:StaticGreenTopLeft"/>
+        </Window> 
+        <Window Type="opengate/StaticGreenImage" Name="ShipSelection/Top">
+          <Property Name="UnifiedPosition"       Value="{{0.0,   31},{ 0.0,  0}}" />
+          <Property Name="UnifiedSize"           Value="{{1.0,  -31},{ 0.0, 31}}" />
+          <Property Name="BackgroundEnabled"     Value="False" />
+          <Property Name="FrameEnabled"          Value="False" />
+          <Property Name="RiseOnClick"           Value="False" />
+          <Property Name="Image"                 Value="set:opengate image:StaticGreenTop"/>
+        </Window> 
+        <Window Type="opengate/StaticGreenImage" Name="ShipSelection/Right">
+          <Property Name="UnifiedPosition"       Value="{{1.0,  -1},{ 0.0,  0}}" />
+          <Property Name="UnifiedSize"           Value="{{0.0,   1},{ 1.0,  0}}" />
+          <Property Name="BackgroundEnabled"     Value="False" />
+          <Property Name="FrameEnabled"          Value="False" />
+          <Property Name="RiseOnClick"           Value="False" />
+          <Property Name="Image"                 Value="set:opengate image:StaticGreenVertLine"/>
+        </Window> 
+        <Window Type="opengate/StaticGreenImage" Name="ShipSelection/Bottom">
+          <Property Name="UnifiedPosition"       Value="{{0.0,  31},{ 1.0, -31}}" />
+          <Property Name="UnifiedSize"           Value="{{1.0, -32},{ 0.0,  31}}" />
+          <Property Name="BackgroundEnabled"     Value="False" />
+          <Property Name="FrameEnabled"          Value="False" />
+          <Property Name="RiseOnClick"           Value="False" />
+          <Property Name="Image"                 Value="set:opengate image:StaticGreenBottom"/>
+        </Window> 
+        <Window Type="opengate/StaticGreenImage" Name="ShipSelection/BottomLeft">
+          <Property Name="UnifiedPosition"       Value="{{0.0,  0},{ 1.0, -31}}" />
+          <Property Name="UnifiedSize"           Value="{{0.0, 31},{ 0.0,  31}}" />
+          <Property Name="BackgroundEnabled"     Value="False" />
+          <Property Name="FrameEnabled"          Value="False" />
+          <Property Name="RiseOnClick"           Value="False" />
+          <Property Name="Image"                 Value="set:opengate image:StaticGreenBottomLeft"/>
+        </Window> 
+        <Window Type="opengate/StaticGreenImage" Name="ShipSelection/Left">
+          <Property Name="UnifiedPosition"       Value="{{0.0,  0},{ 0.0,  31}}" />
+          <Property Name="UnifiedSize"           Value="{{0.0, 31},{ 1.0, -62}}" />
+          <Property Name="BackgroundEnabled"     Value="False" />
+          <Property Name="FrameEnabled"          Value="False" />
+          <Property Name="RiseOnClick"           Value="False" />
+          <Property Name="Image"                 Value="set:opengate image:StaticGreenLeft"/>
+        </Window> 
+        <Window Type="opengate/StaticGreenImage" Name="ShipSelection/Background">
+          <Property Name="UnifiedPosition"       Value="{{0.0,  31},{ 0.0,  31}}" />
+          <Property Name="UnifiedSize"           Value="{{1.0, -32},{ 1.0, -62}}" />
+          <Property Name="BackgroundEnabled"     Value="False" />
+          <Property Name="FrameEnabled"          Value="False" />
+          <Property Name="RiseOnClick"           Value="False" />
+          <Property Name="Image"                 Value="set:opengate image:StaticGreenBackdrop"/>
+        </Window> 
+<!-- *** End frame *** -->
+        <Window Type="opengate/StaticGreenImage" Name="ShipConfigDialog/ShipView">
+          <Property Name="UnifiedPosition"       Value="{{0.0,  31},{0.0,  31}}" />
+          <Property Name="UnifiedSize"           Value="{{0.0, 200},{0.0, 150}}" />
+          <Property Name="BackgroundEnabled"     Value="False" />
+          <Property Name="FrameEnabled"          Value="False" />
+        </Window>
+        <Window Type="opengate/EmptyButton" Name="ShipConfigDialog/PrevShip">
+          <Property Name="UnifiedPosition"  Value="{{0.0, 31},{0.0, 190}}" />
+          <Property Name="UnifiedSize"      Value="{{0.0, 56},{0.0,  14}}" /> 
+          <Property Name="NormalImage"      Value="set:opengate image:ScrollThumbLeftNormal" />
+          <Property Name="HoverImage"       Value="set:opengate image:ScrollThumbLeftHover" />
+          <Property Name="PushedImage"      Value="set:opengate image:ScrollThumbLeftPushed" />
+        </Window>
+        <Window Type="opengate/EmptyButton" Name="ShipConfigDialog/NextShip">
+          <Property Name="UnifiedPosition"  Value="{{0.0, 175},{0.0, 190}}" />
+          <Property Name="UnifiedSize"      Value="{{0.0,  56},{0.0,  14}}" /> 
+          <Property Name="NormalImage"      Value="set:opengate image:ScrollThumbRightNormal" />
+          <Property Name="HoverImage"       Value="set:opengate image:ScrollThumbRightHover" />
+          <Property Name="PushedImage"      Value="set:opengate image:ScrollThumbRightPushed" />
+        </Window>
+        <Window Type="opengate/Button"     Name="ShipConfigDialog/SelectOctavius">
+          <Property Name="UnifiedPosition" Value="{{0.0, 260},{0.0, 10}}" />
+          <Property Name="UnifiedSize"     Value="{{0.0, 100},{0.0, 24}}" />
+          <Property Name="Text"            Value="Octavius" />
+          <Property Name="Disabled"        Value="true" />
+        </Window>
+        <Window Type="opengate/Button"     Name="ShipConfigDialog/SelectQuanter">
+          <Property Name="UnifiedPosition" Value="{{0.0, 260},{0.0, 36}}" />
+          <Property Name="UnifiedSize"     Value="{{0.0, 100},{0.0, 24}}" />
+          <Property Name="Text"            Value="Quantar" />
+          <Property Name="Disabled"        Value="true" />
+        </Window>
+        <Window Type="opengate/Button"     Name="ShipConfigDialog/SelectTauseti">
+          <Property Name="UnifiedPosition" Value="{{0.0, 260},{0.0, 62}}" />
+          <Property Name="UnifiedSize"     Value="{{0.0, 100},{0.0, 24}}" />
+          <Property Name="Text"            Value="Tauseti" />
+          <Property Name="Disabled"        Value="true" />
+        </Window>
+        <Window Type="opengate/Button"     Name="ShipConfigDialog/SelectSquadrok">
+          <Property Name="UnifiedPosition" Value="{{0.0, 260},{0.0, 88}}" />
+          <Property Name="UnifiedSize"     Value="{{0.0, 100},{0.0, 24}}" />
+          <Property Name="Text"            Value="Squadrok" />
+          <Property Name="Disabled"        Value="true" />
+        </Window>
+        <Window Type="opengate/Button"     Name="ShipConfigDialog/SelectAll">
+          <Property Name="UnifiedPosition" Value="{{0.0, 260},{0.0, 120}}" />
+          <Property Name="UnifiedSize"     Value="{{0.0, 100},{0.0,  24}}" />
+          <Property Name="Text"            Value="All" />
+          <Property Name="Disabled"        Value="true" />
+        </Window>
+        <Window Type="opengate/Button"     Name="ShipConfigDialog/SelectShip">
+          <Property Name="UnifiedPosition" Value="{{0.0, 260},{0.0, 154}}" />
+          <Property Name="UnifiedSize"     Value="{{0.0, 100},{0.0,  24}}" />
+          <Property Name="Text"            Value="Select" />
+        </Window>
+        <Window Type="opengate/StaticGreenImage" Name="ShipConfigDialog/MiddleLine">
+          <Property Name="UnifiedPosition"       Value="{{0.0, 0},{ 0.0, 220}}" />
+          <Property Name="UnifiedSize"           Value="{{1.0, 0},{ 0.0, 1}}" />
+          <Property Name="BackgroundEnabled"     Value="False" />
+          <Property Name="FrameEnabled"          Value="False" />
+          <Property Name="RiseOnClick"           Value="False" />
+          <Property Name="Image"                 Value="set:opengate image:StaticGreenHorizLine"/>
+        </Window> 
+<!-- *** -->
+<!-- *** Ship selection bottom part *** -->
+<!-- *** -->
+        <Window Type="opengate/EmptyButton"     Name="ShipConfigDialog/SelectGun">
+          <Property Name="UnifiedPosition"      Value="{{0.0,  10},{0.0, 300}}" />
+          <Property Name="UnifiedSize"          Value="{{0.0, 100},{0.0,  24}}" />
+          <Property Name="Font"                 Value="BlueHighway-16" />
+          <Property Name="Text"                 Value="Guns" />
+          <Property Name="Disabled"             Value="True" />
+<!--           <Property Name="HorizontalAlignment"  Value="Left" /> -->
+        </Window>
+        <Window Type="opengate/EmptyButton"   Name="ShipConfigDialog/SelectMissile">
+          <Property Name="UnifiedPosition"    Value="{{0.0,  10},{0.0, 330}}" />
+          <Property Name="UnifiedSize"        Value="{{0.0, 100},{0.0,  24}}" />
+          <Property Name="Font"               Value="BlueHighway-16" />
+          <Property Name="Text"               Value="Missiles" />
+          <Property Name="Disabled"             Value="True" />
+        </Window>
+        <Window Type="opengate/EmptyButton"   Name="ShipConfigDialog/SelectEquipment">
+          <Property Name="UnifiedPosition"    Value="{{0.0,  10},{0.0, 360}}" />
+          <Property Name="UnifiedSize"        Value="{{0.0, 100},{0.0,  24}}" />
+          <Property Name="Font"               Value="BlueHighway-16" />
+          <Property Name="Text"               Value="Equipment" />
+        </Window>
+        <Window Type="opengate/EmptyButton"   Name="ShipConfigDialog/SelectMODx">
+          <Property Name="UnifiedPosition"    Value="{{0.0,  10},{0.0, 390}}" />
+          <Property Name="UnifiedSize"        Value="{{0.0, 100},{0.0,  24}}" />
+          <Property Name="Font"               Value="BlueHighway-16" />
+          <Property Name="Text"               Value="MODx" />
+          <Property Name="Disabled"             Value="True" />
+        </Window>
 
-<!--       <Property Name="HorizontalAlignment" Value="Centre" /> -->
-<!--       <Property Name="VerticalAlignment" Value="Centre" /> -->
-      <Property Name="Alpha" Value="0.7" />
-      <Property Name="Text" Value="Ship Configurator" />
-      <Window Type="opengate/FrameWindow" Name="ShipConfigDialog/ShipStats">
-        <Property Name="UnifiedPosition" Value="{{0.7,0},{0.0,22}}" />
-        <Property Name="UnifiedSize" Value="{{0.3,0},{1.0,-22}}" />
-        <Property Name="SizingEnabled" Value="false" />
-        <Property Name="TitlebarEnabled" Value="false" />
-        <Property Name="CloseButtonEnabled" Value="false" />
-        <Property Name="Alpha" Value="0.7" />
       </Window>
-      <Window Type="opengate/Button" Name="ShipConfigDialog/SelectOctavius">
-        <Property Name="UnifiedPosition" Value="{{0.55,0.0},{0.3,0}}" />
-        <Property Name="UnifiedSize" Value="{{0.0,100},{0.0,24}}" />
-        <Property Name="Text" Value="Octavius" />
-	<Property Name="Disabled" Value="true" />
+<!-- *** -->
+<!-- *** Right part ship configuration *** -->
+<!-- *** -->
+      <Window Type="opengate/StaticGreenImage" Name="ShipConfiguration">
+        <Property Name="UnifiedPosition"       Value="{{0.5, -30},{0.0,  10}}" />
+        <Property Name="UnifiedSize"           Value="{{0.5,  19},{1.0, -20}}" />
+        <Property Name="BackgroundEnabled"     Value="False" />
+        <Property Name="FrameEnabled"          Value="False" />
+<!-- *** Start frame *** -->
+        <Window Type="opengate/StaticGreenImage" Name="ShipConfiguration/Top">
+          <Property Name="UnifiedPosition"       Value="{{0.0,   0},{ 0.0,  0}}" />
+          <Property Name="UnifiedSize"           Value="{{1.0, -31},{ 0.0, 31}}" />
+          <Property Name="BackgroundEnabled"     Value="False" />
+          <Property Name="FrameEnabled"          Value="False" />
+          <Property Name="Image"                 Value="set:opengate image:StaticGreenTop"/>
+          <Property Name="RiseOnClick"           Value="False" />
+        </Window> 
+        <Window Type="opengate/StaticGreenImage" Name="ShipConfiguration/TopRight">
+          <Property Name="UnifiedPosition"       Value="{{1.0, -31},{0.0,  0}}" />
+          <Property Name="UnifiedSize"           Value="{{0.0,  31},{0.0, 31}}" />
+          <Property Name="BackgroundEnabled"     Value="False" />
+          <Property Name="FrameEnabled"          Value="False" />
+          <Property Name="RiseOnClick"           Value="False" />
+          <Property Name="Image"                 Value="set:opengate image:StaticGreenTopRight"/>
+        </Window> 
+        <Window Type="opengate/StaticGreenImage" Name="ShipConfiguration/Right">
+          <Property Name="UnifiedPosition"       Value="{{1.0, -31},{ 0.0,  31}}" />
+          <Property Name="UnifiedSize"           Value="{{0.0,  31},{ 1.0, -62}}" />
+          <Property Name="BackgroundEnabled"     Value="False" />
+          <Property Name="FrameEnabled"          Value="False" />
+          <Property Name="RiseOnClick"           Value="False" />
+          <Property Name="Image"                 Value="set:opengate image:StaticGreenRight"/>
+        </Window> 
+        <Window Type="opengate/StaticGreenImage" Name="ShipConfiguration/BottomRight">
+          <Property Name="UnifiedPosition"       Value="{{1.0, -31},{ 1.0, -31}}" />
+          <Property Name="UnifiedSize"           Value="{{0.0,  31},{ 0.0,  31}}" />
+          <Property Name="BackgroundEnabled"     Value="False" />
+          <Property Name="FrameEnabled"          Value="False" />
+          <Property Name="RiseOnClick"           Value="False" />
+          <Property Name="Image"                 Value="set:opengate image:StaticGreenBottomRight"/>
+        </Window> 
+        <Window Type="opengate/StaticGreenImage" Name="ShipConfiguration/Bottom">
+          <Property Name="UnifiedPosition"       Value="{{0.0,   0},{1.0, -31}}" />
+          <Property Name="UnifiedSize"           Value="{{1.0, -31},{0.0,  31}}" />
+          <Property Name="BackgroundEnabled"     Value="False" />
+          <Property Name="FrameEnabled"          Value="False" />
+          <Property Name="RiseOnClick"           Value="False" />
+          <Property Name="Image"                 Value="set:opengate image:StaticGreenBottom"/>
+        </Window> 
+        <Window Type="opengate/StaticGreenImage" Name="ShipConfiguration/Left">
+          <Property Name="UnifiedPosition"       Value="{{0.0,  0},{0.0,  0}}" />
+          <Property Name="UnifiedSize"           Value="{{0.0,  1},{1.0,  0}}" />
+          <Property Name="BackgroundEnabled"     Value="False" />
+          <Property Name="FrameEnabled"          Value="False" />
+          <Property Name="RiseOnClick"           Value="False" />
+          <Property Name="Image"                 Value="set:opengate image:StaticGreenVertLine"/>
+        </Window> 
+        <Window Type="opengate/StaticGreenImage" Name="ShipConfiguration/Background">
+          <Property Name="UnifiedPosition"       Value="{{0.0,   1},{0.0,  31}}" />
+          <Property Name="UnifiedSize"           Value="{{1.0, -32},{1.0, -62}}" />
+          <Property Name="BackgroundEnabled"     Value="False" />
+          <Property Name="FrameEnabled"          Value="False" />
+          <Property Name="RiseOnClick"           Value="False" />
+          <Property Name="Image"                 Value="set:opengate image:StaticGreenBackdrop"/>
+        </Window> 
+<!-- *** End frame *** -->
+        <Window Type="opengate/StaticGreenImage"    Name="ShipConfiguration/EquipmentWindow">
+          <Property Name="UnifiedPosition"         Value="{{0.0, 15},{0.0,  5}}" />
+          <Property Name="UnifiedSize"             Value="{{0.6,  0},{1.0, -5}}" />
+          <Property Name="BackgroundEnabled"       Value="False" />
+          <Property Name="FrameEnabled"            Value="False" />
+          <Property Name="MousePassThroughEnabled" Value="True" />
+        </Window>
+        <Window Type="opengate/StaticGreenImage"    Name="ShipConfiguration/PowerGrid">
+          <Property Name="UnifiedPosition"         Value="{{0.6,  15},{0.0,  10}}" />
+          <Property Name="UnifiedSize"             Value="{{0.4, -25},{1.0, -20}}" />
+          <Property Name="BackgroundEnabled"       Value="False" />
+          <Property Name="FrameEnabled"            Value="True" />
+          <Window Type="opengate/StaticGreenImage"    Name="ShipConfiguration/PowerGrid/Icons">
+            <Property Name="UnifiedPosition"         Value="{{0.0,   0},{0.0,  31}}" />
+            <Property Name="UnifiedSize"             Value="{{1.0, -50},{1.0, -62}}" />
+            <Property Name="BackgroundEnabled"       Value="False" />
+            <Property Name="FrameEnabled"            Value="False" />
+            <Window Type="opengate/StaticGreenImage"  Name="ShipConfiguration/PowerGrid/Icons/Engine">
+              <Property Name="UnifiedPosition"       Value="{{0.0,  30},{0.0, 37}}" />
+              <Property Name="UnifiedSize"           Value="{{1.0, -30},{0.0, 40}}" />
+              <Property Name="BackgroundEnabled"     Value="False" />
+              <Property Name="FrameEnabled"          Value="False" />
+              <Window Type="opengate/EmptyButton"     Name="ShipConfiguration/PowerGrid/Icons/Engine/Decrease">
+                <Property Name="UnifiedPosition"     Value="{{0.0,  0},{0.5, -10}}" />
+                <Property Name="UnifiedSize"         Value="{{0.0,  8},{0.0,  20}}" />
+                <Property Name="NormalImage"         Value="set:opengate image:ShipConfigEquipmentPrevItemNormal" />
+                <Property Name="HoverImage"          Value="set:opengate image:ShipConfigEquipmentPrevItemHover" />
+              </Window>				     
+              <Window Type="opengate/StaticLabel"     Name="ShipConfiguration/PowerGrid/Icons/Engine/TrustPercent">
+                <Property Name="UnifiedPosition"     Value="{{0.0,  12},{0.0, 5}}" />
+                <Property Name="UnifiedSize"         Value="{{1.0, -40},{0.0, 15}}" />
+                <Property Name="Text"                Value="100%" />
+              </Window>				     
+              <Window Type="opengate/StaticLabel"     Name="ShipConfiguration/PowerGrid/Icons/Engine/Speed">
+                <Property Name="UnifiedPosition"     Value="{{0.0,  12},{0.0, 20}}" />
+                <Property Name="UnifiedSize"         Value="{{1.0, -40},{0.0, 15}}" />
+                <Property Name="Text"                Value="V000" />
+              </Window>				     
+              <Window Type="opengate/EmptyButton"     Name="ShipConfiguration/PowerGrid/Icons/Engine/Increase">
+                <Property Name="UnifiedPosition"     Value="{{1.0, -25},{0.5, -10}}" />
+                <Property Name="UnifiedSize"         Value="{{0.0,   8},{0.0,  20}}" />
+                <Property Name="NormalImage"         Value="set:opengate image:ShipConfigEquipmentNextItemNormal" />
+                <Property Name="HoverImage"          Value="set:opengate image:ShipConfigEquipmentNextItemHover" />
+              </Window>
+            </Window>
+          </Window>
+          <Window Type="opengate/StaticGreenImage"    Name="ShipConfiguration/PowerGrid/Values">
+            <Property Name="UnifiedPosition"         Value="{{1.0, -50},{0.0,  31}}" />
+            <Property Name="UnifiedSize"             Value="{{0.0,  50},{1.0, -62}}" />
+            <Property Name="BackgroundEnabled"       Value="False" />
+            <Property Name="FrameEnabled"            Value="False" />
+            <Window Type="opengate/StaticLabel"      Name="ShipConfiguration/PowerGrid/Values/PowerPlantOut">
+              <Property Name="UnifiedPosition"         Value="{{0.0, 0},{0.0,  10}}" />
+              <Property Name="UnifiedSize"             Value="{{1.0, 0},{0.0,  20}}" />
+              <Property Name="Text"                    Value="0" />
+            </Window>
+            <Window Type="opengate/StaticLabel"      Name="ShipConfiguration/PowerGrid/Values/EngineIn">
+              <Property Name="UnifiedPosition"         Value="{{0.0, 0},{0.0,  50}}" />
+              <Property Name="UnifiedSize"             Value="{{1.0, 0},{0.0,  20}}" />
+              <Property Name="Text"                    Value="0" />
+            </Window>
+            <Window Type="opengate/StaticLabel"      Name="ShipConfiguration/PowerGrid/Values/EngineOut">
+              <Property Name="UnifiedPosition"         Value="{{0.0, 0},{0.0,  70}}" />
+              <Property Name="UnifiedSize"             Value="{{1.0, 0},{0.0,  20}}" />
+              <Property Name="Text"                    Value="0" />
+            </Window>
+            <Window Type="opengate/StaticLabel"      Name="ShipConfiguration/PowerGrid/Values/RadarIn">
+              <Property Name="UnifiedPosition"         Value="{{0.0, 0},{0.0,  110}}" />
+              <Property Name="UnifiedSize"             Value="{{1.0, 0},{0.0,   20}}" />
+              <Property Name="Text"                    Value="0" />
+            </Window>
+            <Window Type="opengate/StaticLabel"      Name="ShipConfiguration/PowerGrid/Values/RadarOut">
+              <Property Name="UnifiedPosition"         Value="{{0.0, 0},{0.0,  130}}" />
+              <Property Name="UnifiedSize"             Value="{{1.0, 0},{0.0,   20}}" />
+              <Property Name="Text"                    Value="0" />
+            </Window>
+            <Window Type="opengate/StaticLabel"      Name="ShipConfiguration/PowerGrid/Values/EcmIn">
+              <Property Name="UnifiedPosition"         Value="{{0.0, 0},{0.0,  170}}" />
+              <Property Name="UnifiedSize"             Value="{{1.0, 0},{0.0,   20}}" />
+              <Property Name="Text"                    Value="0" />
+            </Window>
+            <Window Type="opengate/StaticLabel"      Name="ShipConfiguration/PowerGrid/Values/EcmOut">
+              <Property Name="UnifiedPosition"         Value="{{0.0, 0},{0.0,  190}}" />
+              <Property Name="UnifiedSize"             Value="{{1.0, 0},{0.0,  20}}" />
+              <Property Name="Text"                    Value="0" />
+            </Window>
+            <Window Type="opengate/StaticLabel"      Name="ShipConfiguration/PowerGrid/Values/ShieldIn">
+              <Property Name="UnifiedPosition"         Value="{{0.0, 0},{0.0,  230}}" />
+              <Property Name="UnifiedSize"             Value="{{1.0, 0},{0.0,  20}}" />
+              <Property Name="Text"                    Value="0" />
+            </Window>
+            <Window Type="opengate/StaticLabel"      Name="ShipConfiguration/PowerGrid/Values/ShieldOut">
+              <Property Name="UnifiedPosition"         Value="{{0.0, 0},{0.0,  250}}" />
+              <Property Name="UnifiedSize"             Value="{{1.0, 0},{0.0,  20}}" />
+              <Property Name="Text"                    Value="0" />
+            </Window>
+            <Window Type="opengate/StaticLabel"      Name="ShipConfiguration/PowerGrid/Values/Remain">
+              <Property Name="UnifiedPosition"         Value="{{0.0, 0},{1.0,  -30}}" />
+              <Property Name="UnifiedSize"             Value="{{1.0, 0},{0.0,  20}}" />
+              <Property Name="Text"                    Value="0" />
+            </Window>
+          </Window>
+        </Window>
       </Window>
-      <Window Type="opengate/Button" Name="ShipConfigDialog/SelectQuanter">
-        <Property Name="UnifiedPosition" Value="{{0.55,0.0},{0.3,+26}}" />
-        <Property Name="UnifiedSize" Value="{{0.0,100},{0.0,24}}" />
-        <Property Name="Text" Value="Quantar" />
-        <Property Name="Disabled" Value="true" />
-      </Window>
-      <Window Type="opengate/Button" Name="ShipConfigDialog/SelectTauseti">
-        <Property Name="UnifiedPosition" Value="{{0.55,0.0},{0.3,+52}}" />
-        <Property Name="UnifiedSize" Value="{{0.0,100},{0.0,24}}" />
-        <Property Name="Text" Value="Tauseti" />
-        <Property Name="Disabled" Value="true" />
     </Window>
-      <Window Type="opengate/Button" Name="ShipConfigDialog/SelectSquadrok">
-        <Property Name="UnifiedPosition" Value="{{0.55,0.0},{0.3,+78}}" />
-        <Property Name="UnifiedSize" Value="{{0.0,100},{0.0,24}}" />
-        <Property Name="Text" Value="Squadrok" />
-        <Property Name="Disabled" Value="true" />
-      </Window>
-      <Window Type="opengate/Button" Name="ShipConfigDialog/SelectAll">
-        <Property Name="UnifiedPosition" Value="{{0.55,0.0},{0.3,+110}}" />
-        <Property Name="UnifiedSize" Value="{{0.0,100},{0.0,24}}" />
-        <Property Name="Text" Value="All" />
-        <Property Name="Disabled" Value="true" />
-    </Window>
-      <Window Type="opengate/StaticImage" Name="ShipConfigDialog/ShipView">
-        <Property Name="UnifiedPosition" Value="{{0.1,0},{0.3,0}}" />
-        <Property Name="UnifiedSize" Value="{{0.4,0},{ 0.4,0}}" />
-        <Property Name="Alpha" Value="1.0" />
-      </Window>
-      <Window Type="opengate/EmptyButton" Name="ShipConfigDialog/PrevShip">
-        <Property Name="UnifiedPosition" Value="{{0.1,0},{0.7,+10}}" />
-        <Property Name="UnifiedSize" Value="{{0.0,56},{ 0.0,14}}" /> 
-        <Property Name="NormalImage" Value="set:opengate image:ScrollThumbLeftNormal" />
-        <Property Name="HoverImage"  Value="set:opengate image:ScrollThumbLeftHover" />
-        <Property Name="PushedImage" Value="set:opengate image:ScrollThumbLeftPushed" />
-      </Window>
-      <Window Type="opengate/EmptyButton" Name="ShipConfigDialog/NextShip">
-        <Property Name="UnifiedPosition" Value="{{0.5,-56},{0.7,+10}}" />
-        <Property Name="UnifiedSize" Value="{{0.0,56},{ 0.0,14}}" /> 
-        <Property Name="NormalImage" Value="set:opengate image:ScrollThumbRightNormal" />
-        <Property Name="HoverImage"  Value="set:opengate image:ScrollThumbRightHover" />
-        <Property Name="PushedImage" Value="set:opengate image:ScrollThumbRightPushed" />
-      </Window>
-      <Window Type="opengate/Button" Name="ShipConfigDialog/SelectShip">
-        <Property Name="UnifiedPosition" Value="{{0.0,+10},{1,-34}}" />
-        <Property Name="UnifiedSize" Value="{{0.0,100},{0.0,24}}" />
-        <Property Name="Text" Value="Select" />
-      </Window>
-    </Window>
 </GUILayout>
Added: branches/ogsector/data/gui/layouts/dialogs/ShipConfigEquipmentButton.layout
===================================================================
--- branches/ogsector/data/gui/layouts/dialogs/ShipConfigEquipmentButton.layout	                        (rev 0)
+++ branches/ogsector/data/gui/layouts/dialogs/ShipConfigEquipmentButton.layout	2007-06-12 17:12:12 UTC (rev 552)
@@ -0,0 +1,97 @@
+<?xml version="1.0" ?>
+<GUILayout>
+  <Window Type="opengate/StaticGreenImage"    Name="ShipConfigEquipmentItem">
+    <Property Name="UnifiedPosition"         Value="{{0.0,  10},{0.0,  10}}" />
+    <Property Name="UnifiedSize"             Value="{{0.0, 131},{0.0, 120}}" />
+    <Property Name="BackgroundEnabled"       Value="False" />
+    <Property Name="FrameEnabled"            Value="False" />
+    <Window Type="opengate/EmptyButton"         Name="ShipConfigEquipmentButton">
+      <Property Name="UnifiedPosition"         Value="{{0.0,   9},{0.0,   0}}" />
+      <Property Name="UnifiedSize"             Value="{{0.0, 121},{0.0, 106}}" />
+      <Property Name="BackgroundEnabled"       Value="False" />
+      <Property Name="FrameEnabled"            Value="False" />
+      <Property Name="NormalImage"             Value="set:opengate image:ShipConfigEquipmentItemWindowNormal" />
+      <Property Name="HoverImage"              Value="set:opengate image:ShipConfigEquipmentItemWindowHover" />
+      <Property Name="PushedImage"             Value="set:opengate image:ShipConfigEquipmentItemWindowHover" />
+      <Property Name="RiseOnClick"             Value="False" />
+      <Window Type="opengate/StaticGreenImage"   Name="ShipConfigEquipmentButton/Image">
+        <Property Name="UnifiedPosition"         Value="{{0.5, -38},{0.0,  7}}" />
+        <Property Name="UnifiedSize"             Value="{{0.0,  76},{0.0, 76}}" />
+        <Property Name="BackgroundEnabled"       Value="False" />
+        <Property Name="FrameEnabled"            Value="False" />
+        <Property Name="RiseOnClick"             Value="False" />
+        <Property Name="MousePassThroughEnabled" Value="True" />
+      </Window>
+      <Window Type="opengate/StaticGreenImage"   Name="ShipConfigEquipmentButton/CategoryIcon">
+        <Property Name="UnifiedPosition"         Value="{{1.0, -15},{0.0,  3}}" />
+        <Property Name="UnifiedSize"             Value="{{0.0,  12},{0.0, 12}}" />
+        <Property Name="BackgroundEnabled"       Value="False" />
+        <Property Name="FrameEnabled"            Value="False" />
+        <Property Name="RiseOnClick"             Value="False" />
+        <Property Name="MousePassThroughEnabled" Value="True" />
+      </Window>
+      <Window Type="opengate/StaticLabel"        Name="ShipConfigEquipmentButton/Name">
+        <Property Name="UnifiedPosition"         Value="{{0.0,  2},{1.0, -13}}" />
+        <Property Name="UnifiedSize"             Value="{{1.0, -4},{0.0,  12}}" />
+        <Property Name="Text"                    Value="Label" />
+        <Property Name="Font"                    Value="BlueHighway-10" />
+        <Property Name="RiseOnClick"             Value="False" />
+        <Property Name="MousePassThroughEnabled" Value="True" />
+      </Window>
+      <Window Type="opengate/EmptyButton"        Name="ShipConfigEquipmentButton/PrevItem">
+        <Property Name="UnifiedPosition"         Value="{{0.0,  4},{0.5, -10}}" />
+        <Property Name="UnifiedSize"             Value="{{0.0, 11},{0.0,  21}}" />
+        <Property Name="RiseOnClick"             Value="False" />
+        <Property Name="NormalImage"             Value="set:opengate image:ShipConfigEquipmentPrevItemNormal" />
+        <Property Name="HoverImage"              Value="set:opengate image:ShipConfigEquipmentPrevItemHover" />
+      </Window>
+      <Window Type="opengate/EmptyButton"        Name="ShipConfigEquipmentButton/NextItem">
+        <Property Name="UnifiedPosition"         Value="{{1.0, -15},{0.5, -10}}" />
+        <Property Name="UnifiedSize"             Value="{{0.0,  11},{0.0,  21}}" />
+        <Property Name="Font"                    Value="BlueHighway-10" />
+        <Property Name="RiseOnClick"             Value="False" />
+        <Property Name="NormalImage"             Value="set:opengate image:ShipConfigEquipmentNextItemNormal" />
+        <Property Name="HoverImage"              Value="set:opengate image:ShipConfigEquipmentNextItemHover" />
+      </Window>
+    </Window>
+    <Window Type="opengate/EmptyButton"  Name="ShipConfigEquipmentItem/Load">
+      <Property Name="UnifiedPosition"  Value="{{0.0,  0},{0.0,  0}}" />
+      <Property Name="UnifiedSize"      Value="{{0.0, 28},{0.0, 21}}" />
+      <Property Name="NormalImage"      Value="set:opengate image:ShipConfigEquipmentLoadBlue" />
+      <Property Name="HoverImage"       Value="set:opengate image:ShipConfigEquipmentLoadGreen" />
+      <Property Name="PushedImage"      Value="set:opengate image:ShipConfigEquipmentLoadRed" />
+      <Window Type="opengate/StaticImage"         Name="ShipConfigEquipmentItem/Load/Arrow">
+        <Property Name="UnifiedPosition"         Value="{{0.5, -6},{0.5, -7}}" />
+        <Property Name="UnifiedSize"             Value="{{0.0, 14},{0.0, 12}}" />
+        <Property Name="BackgroundEnabled"       Value="False" />
+        <Property Name="FrameEnabled"            Value="False" />
+        <Property Name="Image"                   Value="set:opengate image:ShipConfigEquipmentLeftArrow" />
+        <Property Name="AlwaysOnTop"             Value="True" />
+        <Property Name="MousePassThroughEnabled" Value="True" />
+      </Window>
+    </Window>
+    <Window Type="opengate/EmptyButton"  Name="ShipConfigEquipmentItem/UnLoad">
+      <Property Name="UnifiedPosition"  Value="{{0.0,  0},{0.0,  0}}" />
+      <Property Name="UnifiedSize"      Value="{{0.0, 28},{0.0, 21}}" />
+      <Property Name="NormalImage"      Value="set:opengate image:ShipConfigEquipmentLoadRed" />
+      <Property Name="HoverImage"       Value="set:opengate image:ShipConfigEquipmentLoadGreen" />
+      <Property Name="PushedImage"      Value="set:opengate image:ShipConfigEquipmentLoadBlue" />
+      <Property Name="AlwaysOnTop"      Value="True" />
+      <Property Name="Visible"          Value="False" />
+      <Window Type="opengate/StaticImage"         Name="ShipConfigEquipmentItem/UnLoad/Arrow">
+        <Property Name="UnifiedPosition"         Value="{{0.5, -6},{0.5, -7}}" />
+        <Property Name="UnifiedSize"             Value="{{0.0, 14},{0.0, 12}}" />
+        <Property Name="BackgroundEnabled"       Value="False" />
+        <Property Name="FrameEnabled"            Value="False" />
+        <Property Name="Image"                   Value="set:opengate image:ShipConfigEquipmentRightArrow" />
+        <Property Name="MousePassThroughEnabled" Value="True" />
+      </Window>
+    </Window>
+    <Window Type="opengate/StaticLabel"  Name="ShipConfigEquipmentButton/Label">
+      <Property Name="UnifiedPosition"   Value="{{0.0,  40},{1.0, -14}}" />
+      <Property Name="UnifiedSize"       Value="{{1.0, -40},{0.0,  12}}" />
+      <Property Name="Text"              Value="Label" />
+      <Property Name="Font"              Value="BlueHighway-10" />
+    </Window>
+  </Window>
+</GUILayout>
Modified: branches/ogsector/data/gui/schemes/opengate/opengate.imageset
===================================================================
--- branches/ogsector/data/gui/schemes/opengate/opengate.imageset	2007-06-12 03:50:11 UTC (rev 551)
+++ branches/ogsector/data/gui/schemes/opengate/opengate.imageset	2007-06-12 17:12:12 UTC (rev 552)
@@ -135,7 +135,6 @@
 	<Image Name="IconMODx2"               XPos="286" YPos="304" Width="15" Height="15" />
 	<Image Name="IconMODx3"               XPos="286" YPos="320" Width="15" Height="15" />
 	<Image Name="IconMODx4"               XPos="286" YPos="336" Width="15" Height="15" />
-
 	<Image Name="IconStorageNormal"        XPos="410" YPos="256" Width="15" Height="15" />
 	<Image Name="IconStorageHover"         XPos="426" YPos="256" Width="15" Height="15" />
 
@@ -201,8 +200,20 @@
 	<Image Name="MarketSellAllHover"          XPos="454" YPos="193" Width="22" Height="17" />
 	<Image Name="MarketSellAllPushed"         XPos="477" YPos="193" Width="22" Height="17" />
 
+	<Image Name="ShipConfigEquipmentItemWindowNormal" XPos="1"   YPos="405" Width="121" Height="106" />
+	<Image Name="ShipConfigEquipmentItemWindowHover"  XPos="123" YPos="405" Width="121" Height="106" />
+	<Image Name="ShipConfigEquipmentLoadBlue"         XPos="245" YPos="405" Width="28"  Height="21" />
+	<Image Name="ShipConfigEquipmentLoadGreen"        XPos="245" YPos="426" Width="28"  Height="21" />
+	<Image Name="ShipConfigEquipmentLoadRed"          XPos="245" YPos="447" Width="28"  Height="21" />
+	<Image Name="ShipConfigEquipmentRightArrow"       XPos="245" YPos="468" Width="14"  Height="12" />
+	<Image Name="ShipConfigEquipmentLeftArrow"        XPos="245" YPos="481" Width="14"  Height="12" />
+	<Image Name="ShipConfigEquipmentPrevItemNormal"   XPos="274" YPos="405" Width="11"  Height="21" />
+	<Image Name="ShipConfigEquipmentPrevItemHover"    XPos="274" YPos="427" Width="11"  Height="21" />
+	<Image Name="ShipConfigEquipmentNextItemNormal"   XPos="286" YPos="405" Width="11"  Height="21" />
+	<Image Name="ShipConfigEquipmentNextItemHover"    XPos="286" YPos="427" Width="11"  Height="21" />
 
 
+
 	<Image Name="AltProgressLeft" XPos="10" YPos="10" Width="10" Height="10" />
 	<Image Name="AltProgressMiddle" XPos="20" YPos="10" Width="10" Height="10" />
 	<Image Name="AltProgressRight" XPos="30" YPos="10" Width="10" Height="10" />
Modified: branches/ogsector/data/gui/schemes/opengate/opengate.png
===================================================================
(Binary files differ)
Modified: branches/ogsector/src/Avatar.cpp
===================================================================
--- branches/ogsector/src/Avatar.cpp	2007-06-12 03:50:11 UTC (rev 551)
+++ branches/ogsector/src/Avatar.cpp	2007-06-12 17:12:12 UTC (rev 552)
@@ -24,7 +24,6 @@
 namespace OpenGate{
 
 Avatar::Avatar( const std::string & name, int ID ): name_( name ), id_( ID ) {
-  setVessel( *VesselManager::getSingleton().vessel( "apteryx" ) );
   cargoHold_ = 0;
 }
 
@@ -33,9 +32,6 @@
 
 void Avatar::setVessel( Vessel & vessel ){ 
   vessel_ = & vessel;
-  std::cout << "setVessel " << vessel_->name() << " " << vessel_->allEquipmentMaximumSize()
-	    << " " << vessel_->cargoSize() << std::endl;
-  
   maxCargoHold_ = vessel_->allEquipmentMaximumSize() + vessel_->cargoSize();
 } 
 
@@ -84,5 +80,55 @@
     }
   }
 }
+
+bool Avatar::loadItem( Entity * item ){
+
+  std::vector < Entity * > items; items.push_back( item );
+
+  switch( item->entityType() ){
+  case POWERPLANT: 
+    if ( vessel_->setPowerPlant( dynamic_cast< PowerPlant *>(item) ) ){ delCargoToFloor( items );  return true; } 
+    break;
+  case ENGINE: 
+    if ( vessel_->setEngine( dynamic_cast< Engine * >(item) ) ){ delCargoToFloor( items ); return true; } 
+    break;
+  case RADAR: 
+    if ( vessel_->setRadar( dynamic_cast< Radar * >(item) ) ){ delCargoToFloor( items ); return true; } 
+    break;
+  case ECM: 
+    if ( vessel_->setEcm( dynamic_cast< Ecm * >(item) ) ){ delCargoToFloor( items ); return true; } 
+    break;
+  case SHIELD: 
+    if ( vessel_->setShield( dynamic_cast< Shield * >(item) ) ){ delCargoToFloor( items ); return true; } 
+    break;
+  case CAPACITOR: 
+    if ( vessel_->setCapacitor( dynamic_cast< Capacitor * >(item) ) ){ delCargoToFloor( items ); return true; } 
+    break;
+  }
+  return false;
+}
+
+bool Avatar::unLoadItem( Entity * item ){
+
+  switch( item->entityType() ){
+  case POWERPLANT: vessel_->setPowerPlant( NULL ); 
+    break;
+  case ENGINE:     vessel_->setEngine( NULL ); 
+    break;
+  case RADAR:      vessel_->setRadar( NULL );
+    break;
+  case ECM:        vessel_->setEcm( NULL );
+    break;
+  case SHIELD:     vessel_->setShield( NULL );
+    break;
+  case CAPACITOR:  vessel_->setCapacitor( NULL );
+    break;
+  }
+
+  std::vector < Entity * > items; items.push_back( item );
+  addCargoToFloor( items );
+  return true;
+}
+
 } // namespace OpenGate{
 
Modified: branches/ogsector/src/Avatar.h
===================================================================
--- branches/ogsector/src/Avatar.h	2007-06-12 03:50:11 UTC (rev 551)
+++ branches/ogsector/src/Avatar.h	2007-06-12 17:12:12 UTC (rev 552)
@@ -44,7 +44,7 @@
   int userID() const { return id_; }
 
   void setVessel( Vessel & vessel );
-  Vessel & vessel() { return *vessel_; }
+  Vessel * vessel() { return vessel_; }
 
   void addCargoToFloor( const std::vector < Entity * > & item );
   void delCargoToFloor( const std::vector < Entity * > & item );
@@ -54,6 +54,9 @@
 
   std::list< std::deque < Entity * > > * floorCargo() { return & floorCargo_; }
 
+  bool loadItem( Entity * item );
+  bool unLoadItem( Entity * item );
+
 protected:
   std::string name_;
   int id_;
Modified: branches/ogsector/src/BaseDialog.cpp
===================================================================
--- branches/ogsector/src/BaseDialog.cpp	2007-06-12 03:50:11 UTC (rev 551)
+++ branches/ogsector/src/BaseDialog.cpp	2007-06-12 17:12:12 UTC (rev 552)
@@ -21,10 +21,33 @@
 #include "BaseDialog.h"
 #include "DeviceManager.h"
 
+#include <OgreRenderWindow.h>
+
 #include <CEGUIWindowManager.h>
 
 namespace OpenGate{
 
+void renameClonedWindows( const CEGUI::Window * parent, const CEGUI::String & namePrefix) { 
+  //  std::cout << parent->getName() << ": " << parent->getChildCount() << std::endl;
+
+  for ( int i = 0; i < parent->getChildCount(); i ++ ){
+    //    std::cout << i << "accessing: "<< parent->getName()  << std::endl;
+    CEGUI::Window * child = parent->getChildAtIdx( i );
+    child->rename( namePrefix + child->getName() ); 
+    renameClonedWindows( child, namePrefix ); 
+  } 
+}
+
+float windowHeight( const CEGUI::Window * child ){
+  if ( child->getParent() ) return child->getHeight().asAbsolute( windowHeight( child->getParent() ) );
+  return child->getHeight().asAbsolute( DeviceManager::getSingleton().renderWindow->getHeight() );
+}
+
+float windowWidth( const CEGUI::Window * child ){
+  if ( child->getParent() ) return child->getWidth().asAbsolute( windowWidth( child->getParent() ) );
+  return child->getWidth().asAbsolute( DeviceManager::getSingleton().renderWindow->getWidth() );
+}
+
 BaseDialog::BaseDialog( const std::string & layout )
   : rootWindow_( CEGUI::WindowManager::getSingleton().loadWindowLayout( layout ) ),
     devices_( DeviceManager::getSingletonPtr() ), visible_( false ) {
Modified: branches/ogsector/src/BaseDialog.h
===================================================================
--- branches/ogsector/src/BaseDialog.h	2007-06-12 03:50:11 UTC (rev 551)
+++ branches/ogsector/src/BaseDialog.h	2007-06-12 17:12:12 UTC (rev 552)
@@ -32,6 +32,10 @@
 
 namespace OpenGate{
 
+void renameClonedWindows( const CEGUI::Window * parent, const CEGUI::String & namePrefix );
+float windowHeight( const CEGUI::Window * child );
+float windowWidth(  const CEGUI::Window * child );
+
 /*!
  * \brief This is a base class for dialogs
  *
Modified: branches/ogsector/src/DeviceManager.h
===================================================================
--- branches/ogsector/src/DeviceManager.h	2007-06-12 03:50:11 UTC (rev 551)
+++ branches/ogsector/src/DeviceManager.h	2007-06-12 17:12:12 UTC (rev 552)
@@ -30,7 +30,7 @@
 
 namespace OpenGate{
 
-enum EntityType{ENTITY,VESSEL,COMMODITY,POWERPLANT,ENGINE,RADAR,ECM,CAPACITOR,SHIELD,GUN,MISSILE,MODX};
+enum EntityType{NONE,ENTITY,VESSEL,COMMODITY,POWERPLANT,ENGINE,RADAR,ECM,CAPACITOR,SHIELD,GUN,MISSILE,MODX};
 
 /*!
  * \brief This is a storage to handle current status of several things
@@ -86,7 +86,11 @@
     case ENGINE:     return "Engine"; 
     case SHIELD:     return "Shield"; 
     case RADAR:      return "Radar"; 
-    default:        return "unknown";
+    case ECM:        return "ECM"; 
+    case GUN:        return "GUN"; 
+    case MISSILE:    return "MISSILE"; 
+    case MODX:       return "MODx"; 
+    default:         return "unknown";
     }
     return "unknown";
   }
Modified: branches/ogsector/src/DockedState.cpp
===================================================================
--- branches/ogsector/src/DockedState.cpp	2007-06-12 03:50:11 UTC (rev 551)
+++ branches/ogsector/src/DockedState.cpp	2007-06-12 17:12:12 UTC (rev 552)
@@ -20,6 +20,8 @@
 
 #include "DockedState.h"
 #include "Console.h"
+#include "Avatar.h"
+#include "Vessel.h"
 
 #include <OgreCEGUITexture.h>
 #include <CEGUI/elements/CEGUIPushButton.h>
@@ -198,6 +200,31 @@
 		   CEGUI::Window::EventSized, CEGUI::Event::Subscriber(&Console::handleResize, devices_->console ) ) ;
 }  
 
+bool DockedState::handleLaunch( const CEGUI::EventArgs & e ){
+  if ( !devices_->avatar->vessel()->powerPlant() ) {
+    log_->warn( "You have to equip a power plant first." );
+    return true;
+  }
+  if ( !devices_->avatar->vessel()->engine() ) {
+    log_->warn( "You have to equip an engine first." );
+    return true;
+  }
+
+  parent_->start( parent_->findByName( "UnDockedState" ) );
+  return true;
+}
+  
+bool DockedState::handleShipConfigButton( const CEGUI::EventArgs & e ){
+  if ( shipConfigDialog_ ) shipConfigDialog_->setVisible( !shipConfigDialog_->isVisible() );
+  if ( marketDialog_ ) marketDialog_->hide();
+  return true;
+}
+bool DockedState::handleMarketButton( const CEGUI::EventArgs & e ){
+  if ( marketDialog_ ) marketDialog_->setVisible( !marketDialog_->isVisible() );
+  if ( shipConfigDialog_ ) shipConfigDialog_->hide();
+  return true;
+}
+
 bool DockedState::switchConfigDialog( ){
   devices_->gameStateRoot->switchConfigDialog( );
   return true;
Modified: branches/ogsector/src/DockedState.h
===================================================================
--- branches/ogsector/src/DockedState.h	2007-06-12 03:50:11 UTC (rev 551)
+++ branches/ogsector/src/DockedState.h	2007-06-12 17:12:12 UTC (rev 552)
@@ -80,19 +80,10 @@
   virtual ~DockedState(){}
 
   inline bool handleQuit( const CEGUI::EventArgs & e ){ shutdown(); return true; }
-  inline bool handleLaunch( const CEGUI::EventArgs & e ){
-    parent_->start( parent_->findByName( "UnDockedState" ) );
-    return true;
-  }
-  inline bool handleShipConfigButton( const CEGUI::EventArgs & e ){
-    if ( shipConfigDialog_ ) shipConfigDialog_->setVisible( !shipConfigDialog_->isVisible() );
-    return true;
-  }
-  inline bool handleMarketButton( const CEGUI::EventArgs & e ){
-    if ( marketDialog_ ) marketDialog_->setVisible( !marketDialog_->isVisible() );
-    return true;
-  }
-
+  bool handleLaunch( const CEGUI::EventArgs & e );
+  bool handleShipConfigButton( const CEGUI::EventArgs & e );
+  bool handleMarketButton( const CEGUI::EventArgs & e );
+  
   inline bool handleMaximiseConsole( const CEGUI::EventArgs & e ){ return maximiseConsole(); }
   inline bool handleMinimiseConsole( const CEGUI::EventArgs & e ){ return minimiseConsole(); }
   inline bool handleConfigBackButton( const CEGUI::EventArgs & e ){ return switchConfigDialog(); }
Modified: branches/ogsector/src/Entity.cpp
===================================================================
--- branches/ogsector/src/Entity.cpp	2007-06-12 03:50:11 UTC (rev 551)
+++ branches/ogsector/src/Entity.cpp	2007-06-12 17:12:12 UTC (rev 552)
@@ -39,6 +39,7 @@
   size_ = 1;
   rtti_ = ENTITY;
   factionID_ = 1;
+  imageInitialised_ = false;
   setFactionName_( DeviceManager::getSingleton().factionName( factionID_ ) );
 }
 
@@ -47,18 +48,17 @@
   setFactionName_( DeviceManager::getSingleton().factionName( factionID_ ) );
 }
 
-void Entity::setImageName( const std::string & imageFileName ) { 
-  imageFileName_ = imageFileName;
-
+void Entity::loadImages_( ) { 
+  imageInitialised_ = true;
   bool haveSmall = true;
-  haveSmall = initialiseImage( imageFileName + "_76x76.png", imageFileName + "Small" );
+  haveSmall = initialiseImage( imageFileName_ + "_76x76.png", imageFileName_ + "Small" );
   if ( haveSmall ){
     ceguiSmallImageName_ = ceguiImageName_;
   } 
 
-  if ( !initialiseImage( imageFileName + "_290x290.png", imageFileName ) ){
+  if ( !initialiseImage( imageFileName_ + "_290x290.png", imageFileName_ ) ){
     //**fallback
-    initialiseImage( imageFileName + ".png", imageFileName, true );
+    initialiseImage( imageFileName_ + ".png", imageFileName_, true );
   }
     
   if ( !haveSmall ) ceguiSmallImageName_ = ceguiImageName_;
Modified: branches/ogsector/src/Entity.h
===================================================================
--- branches/ogsector/src/Entity.h	2007-06-12 03:50:11 UTC (rev 551)
+++ branches/ogsector/src/Entity.h	2007-06-12 17:12:12 UTC (rev 552)
@@ -77,11 +77,10 @@
   inline void setDescription( const std::string & description ){ description_ = description; }
   inline std::string description( ) const { return description_; }
 
-  void setImageName( const std::string & imageFileName );
-
+  inline void setImageName( const std::string & imageFileName ) { imageFileName_ = imageFileName; }
   inline std::string imageName() const { return imageFileName_; }
-  inline std::string ceguiImageName() const { return ceguiImageName_; }
-  inline std::string ceguiSmallImageName() const { return ceguiSmallImageName_; }
+  inline std::string ceguiImageName() { if ( !imageInitialised_ ) loadImages_();  return ceguiImageName_;  }
+  inline std::string ceguiSmallImageName() { if ( !imageInitialised_ ) loadImages_(); return ceguiSmallImageName_; }
 
   bool initialiseImage( const std::string & imageName, const std::string & targetName, bool verbose = false );
 
@@ -95,6 +94,7 @@
 
 protected:
   inline void setFactionName_( const std::string & name ) { factionName_ = name; }
+  void loadImages_( );
 
   std::string name_;
   std::string className_;
@@ -107,6 +107,7 @@
   std::string imageFileName_;
   std::string ceguiSmallImageName_;
   std::string ceguiImageName_;
+  bool imageInitialised_;
 
   /*! The places where this part of equipment is built */
   std::set < std::string > productionCenters_;
@@ -192,31 +193,29 @@
 };
 
 /*!
- * \brief This class stores the basical information of a Shield
+ * \brief This class stores the basical information of an engine
  *
  * This class, like all other equipment classes, is filled by loading the
- * information from an XML file. It defines the details for a shield, which
+ * information from an XML file. It defines the details for an engine, which
  * is a component that is plugged into the ship.
  * \author Christoph Brill <eg...@us...>
  */
-class Shield : public Equipment {
+class Engine : public Equipment {
 public:
-  Shield() : Equipment(){
-    rtti_ = SHIELD;
+
+  Engine() : Equipment() {
+    rtti_ = ENGINE;
+    maxThrust_ = 0.0;
   }
 
-  void setMaximumDeflection( double deflection ){ setMaximumDeflection_ = deflection; }
-  double maximumDeflection( ) const { return setMaximumDeflection_; }
+  inline void setMaxThrust( double maxThrust ) { maxThrust_ = maxThrust; }
+  inline double maxThrust( ) { return maxThrust_; }
 
-  void setRegenerationRate( double regenRate ){ regenerationRate_ = regenRate; }
-  double regenerationRate( ) const { return regenerationRate_; }
+  double powerConsumption( ) const { return ( maxThrust_ / 1000 ) / efficiency_; }
 
-  double powerConsumption( ) const { return regenerationRate_ / efficiency_; }
-
-protected:
-  double regenerationRate_;
-  double setMaximumDeflection_;
-
+private:
+  /*! Stores the maximum thrust of this engine */
+  double maxThrust_;
 };
 
 /*!
@@ -232,87 +231,90 @@
   Radar() : Equipment(){
     rtti_ = RADAR;
   }
-  void setMaximumRange( double range ){ range_ = range; }
-  double maximumRange() const{ return range_; }
+  void setMaxRange( double range ){ range_ = range; }
+  double maxRange() const{ return range_; }
 
 protected:
   double range_;
 };
 
 /*!
- * \brief This class stores the basical information of a capactitor
+ * \brief This class stores the basical information of an Ecm (Evasion and Counter Measures)
  *
  * This class, like all other equipment classes, is filled by loading the
- * information from an XML file. It...
 
[truncated message content] |