summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--GUI.cpp38
-rw-r--r--GUI.h2
-rw-r--r--data/levels/Level_template.txt6
-rw-r--r--data/levels/insanelevel.txt14
-rw-r--r--data/levels/introlevel.txt8
-rw-r--r--data/levels/level2.txt10
-rw-r--r--data/levels/level3.txt14
-rw-r--r--data/levels/level4.txt8
-rw-r--r--data/projectiles/beam.txt4
-rw-r--r--data/projectiles/bigspit.txt4
-rw-r--r--data/projectiles/fire1.txt4
-rw-r--r--data/projectiles/projectile_template.txt4
-rw-r--r--data/projectiles/psi.txt4
-rw-r--r--data/projectiles/spit.txt4
-rw-r--r--data/ships/EnemyShip_template.txt4
-rw-r--r--data/ships/tork/capsule.txt2
-rw-r--r--data/ships/tork/cruiser.txt6
-rw-r--r--data/ships/tork/interceptor.txt8
-rw-r--r--data/ships/tork/spacerocket.txt6
-rw-r--r--data/ships/tork/sting.txt4
-rw-r--r--data/ships/tork/tanker.txt2
-rw-r--r--data/ships/user/UserShip_template.txt6
-rw-r--r--data/ships/user/hornet.txt8
-rw-r--r--data/ships/user/small_fighter.txt6
-rw-r--r--data/weapons/Ubeamer.txt31
-rw-r--r--data/weapons/beamer1.txt4
-rw-r--r--data/weapons/beamer2.txt8
-rw-r--r--data/weapons/empty.txt2
-rw-r--r--data/weapons/fireball1.txt4
-rw-r--r--data/weapons/inawaffe.txt31
-rw-r--r--data/weapons/nova1.txt602
-rw-r--r--data/weapons/novaspitter1.txt14
-rw-r--r--data/weapons/spitter1.txt4
-rw-r--r--data/weapons/spitter2.txt8
-rw-r--r--data/weapons/spitter3.txt16
-rw-r--r--data/weapons/weapon_template.txt6
-rw-r--r--data/weapons/weapons.txt2
-rw-r--r--engine.cpp32
-rw-r--r--enginecore.cpp36
-rw-r--r--enginecore.h1
-rw-r--r--main.cpp48
-rw-r--r--main.h2
-rw-r--r--save/default account.txt40
-rw-r--r--util.h1
44 files changed, 522 insertions, 546 deletions
diff --git a/GUI.cpp b/GUI.cpp
index 7dabac9..45a5d5d 100644
--- a/GUI.cpp
+++ b/GUI.cpp
@@ -61,7 +61,7 @@ int Label::setCaption(string ncaption)
61 61
62int Label::render() 62int Label::render()
63{ 63{
64 TTF_Font *font = TTF_OpenFont("data/fonts/OpenSans-Semibold.ttf",pos.h); 64 TTF_Font *font = TTF_OpenFont((get_data_path() + "fonts/OpenSans-Semibold.ttf").c_str(),pos.h);
65 image = NULL; 65 image = NULL;
66 image = TTF_RenderText_Solid(font, caption.c_str(),textColor); 66 image = TTF_RenderText_Solid(font, caption.c_str(),textColor);
67 if(caption.size() == 0) 67 if(caption.size() == 0)
@@ -299,7 +299,7 @@ Button::Button(SDL_Rect npos, string message, int& shouldbeTextSize)
299 bool done = false; 299 bool done = false;
300 while(!done && textSize) 300 while(!done && textSize)
301 { 301 {
302 TTF_Font *font = TTF_OpenFont("data/fonts/OpenSans-Semibold.ttf",textSize); 302 TTF_Font *font = TTF_OpenFont((get_data_path() + "fonts/OpenSans-Semibold.ttf").c_str(),textSize);
303 normal = NULL; 303 normal = NULL;
304 normal = TTF_RenderText_Solid(font, message.c_str(),textColor); 304 normal = TTF_RenderText_Solid(font, message.c_str(),textColor);
305 if(normal == NULL) 305 if(normal == NULL)
@@ -323,7 +323,7 @@ Button::Button(SDL_Rect npos, string message, int& shouldbeTextSize)
323 done = false; 323 done = false;
324 while(!done && textSize) 324 while(!done && textSize)
325 { 325 {
326 TTF_Font *font = TTF_OpenFont("data/fonts/OpenSans-Bold.ttf",textSize); 326 TTF_Font *font = TTF_OpenFont((get_data_path() + "fonts/OpenSans-Bold.ttf").c_str(),textSize);
327 mouseOver = NULL; 327 mouseOver = NULL;
328 mouseOver = TTF_RenderText_Solid(font, message.c_str(),textColor); 328 mouseOver = TTF_RenderText_Solid(font, message.c_str(),textColor);
329 if(mouseOver == NULL) 329 if(mouseOver == NULL)
@@ -348,7 +348,7 @@ Button::Button(SDL_Rect npos, string message, int& shouldbeTextSize)
348 textColor.b = 17; 348 textColor.b = 17;
349 textColor.g = 200; 349 textColor.g = 200;
350 textColor.r = 250; 350 textColor.r = 250;
351 TTF_Font *font = TTF_OpenFont("data/fonts/OpenSans-Semibold.ttf",textSize); 351 TTF_Font *font = TTF_OpenFont((get_data_path() + "fonts/OpenSans-Semibold.ttf").c_str(),textSize);
352 pressed = NULL; 352 pressed = NULL;
353 pressed = TTF_RenderText_Solid(font, message.c_str(),textColor); 353 pressed = TTF_RenderText_Solid(font, message.c_str(),textColor);
354 if(pressed == NULL) 354 if(pressed == NULL)
@@ -537,34 +537,34 @@ Button::Button(SDL_Rect npos, SDL_Surface* content, bool fancy)
537 int size = 48; 537 int size = 48;
538 538
539 SDL_Surface* norm = NULL; 539 SDL_Surface* norm = NULL;
540 norm = IMG_Load("data/images/fancy_button.bmp"); 540 norm = IMG_Load((get_data_path() + "images/fancy_button.bmp").c_str());
541 if(norm == NULL) 541 if(norm == NULL)
542 { 542 {
543 cout << "Error loading bmp while creating fancy button!" << endl; 543 cout << "Error loading bmp while creating fancy button!" << endl;
544 } 544 }
545 SDL_Surface* inac = NULL; 545 SDL_Surface* inac = NULL;
546 inac = IMG_Load("data/images/fancy_button_unavailable.bmp"); 546 inac = IMG_Load((get_data_path() + "images/fancy_button_unavailable.bmp").c_str());
547 if(inac == NULL) 547 if(inac == NULL)
548 { 548 {
549 cout << "Error loading bmp while creating fancy button!" << endl; 549 cout << "Error loading bmp while creating fancy button!" << endl;
550 } 550 }
551 SDL_Surface* pres = NULL; 551 SDL_Surface* pres = NULL;
552 pres = IMG_Load("data/images/fancy_button_clicked.bmp"); 552 pres = IMG_Load((get_data_path() + "images/fancy_button_clicked.bmp").c_str());
553 if(pres == NULL) 553 if(pres == NULL)
554 { 554 {
555 cout << "Error loading bmp while creating fancy button!" << endl; 555 cout << "Error loading bmp while creating fancy button!" << endl;
556 } 556 }
557 SDL_Surface* mous = NULL; 557 SDL_Surface* mous = NULL;
558 mous = IMG_Load("data/images/fancy_button_selected.bmp"); 558 mous = IMG_Load((get_data_path() + "images/fancy_button_selected.bmp").c_str());
559 if(mous == NULL) 559 if(mous == NULL)
560 { 560 {
561 cout << "Error loading bmp while creating fancy button!" << endl; 561 cout << "Error loading bmp while creating fancy button!" << endl;
562 } 562 }
563 563
564 pressed = IMG_Load("data/images/fancy_button_clicked.bmp"); 564 pressed = IMG_Load((get_data_path() + "images/fancy_button_clicked.bmp").c_str());
565 inactive = IMG_Load("data/images/fancy_button_unavailable.bmp"); 565 inactive = IMG_Load((get_data_path() + "images/fancy_button_unavailable.bmp").c_str());
566 mouseOver = IMG_Load("data/images/fancy_button_selected.bmp"); 566 mouseOver = IMG_Load((get_data_path() + "images/fancy_button_selected.bmp").c_str());
567 normal = IMG_Load("data/images/fancy_button.bmp"); 567 normal = IMG_Load((get_data_path() + "images/fancy_button.bmp").c_str());
568 SDL_Rect dest; 568 SDL_Rect dest;
569 dest.x = size/2 - content->w/2; 569 dest.x = size/2 - content->w/2;
570 dest.y = size/2 - content->h/2; 570 dest.y = size/2 - content->h/2;
@@ -603,7 +603,7 @@ Scrollbar::Scrollbar(SDL_Rect npos)
603 else 603 else
604 horizontal = false; 604 horizontal = false;
605 dot = NULL; 605 dot = NULL;
606 dot = IMG_Load("data/images/glowing_dot.png"); 606 dot = IMG_Load((get_data_path() + "images/glowing_dot.png").c_str());
607 if(!dot) 607 if(!dot)
608 { 608 {
609 cout << "Error loading dot for scrollbar!" << endl; 609 cout << "Error loading dot for scrollbar!" << endl;
@@ -623,13 +623,13 @@ Scrollbar::Scrollbar(SDL_Rect npos)
623 SDL_Surface* barEnd2 = NULL; 623 SDL_Surface* barEnd2 = NULL;
624 if(horizontal) 624 if(horizontal)
625 { 625 {
626 barEnd1 = IMG_Load("data/images/scrollbar_end_h1.png"); 626 barEnd1 = IMG_Load((get_data_path() + "images/scrollbar_end_h1.png").c_str());
627 barEnd2 = IMG_Load("data/images/scrollbar_end_h2.png"); 627 barEnd2 = IMG_Load((get_data_path() + "images/scrollbar_end_h2.png").c_str());
628 } 628 }
629 else 629 else
630 { 630 {
631 barEnd1 = IMG_Load("data/images/scrollbar_end_v1.png"); 631 barEnd1 = IMG_Load((get_data_path() + "images/scrollbar_end_v1.png").c_str());
632 barEnd2 = IMG_Load("data/images/scrollbar_end_v2.png"); 632 barEnd2 = IMG_Load((get_data_path() + "images/scrollbar_end_v2.png").c_str());
633 } 633 }
634 if(!barEnd1 || !barEnd2) 634 if(!barEnd1 || !barEnd2)
635 { 635 {
@@ -654,9 +654,9 @@ Scrollbar::Scrollbar(SDL_Rect npos)
654 } 654 }
655 SDL_Surface* barMiddle = NULL; 655 SDL_Surface* barMiddle = NULL;
656 if(horizontal) 656 if(horizontal)
657 barMiddle = IMG_Load("data/images/scrollbar_h.png"); 657 barMiddle = IMG_Load((get_data_path() + "images/scrollbar_h.png").c_str());
658 else 658 else
659 barMiddle = IMG_Load("data/images/scrollbar_v.png"); 659 barMiddle = IMG_Load((get_data_path() + "images/scrollbar_v.png").c_str());
660 if(!barMiddle) 660 if(!barMiddle)
661 { 661 {
662 cout << "Error in middle of bar!" << endl; 662 cout << "Error in middle of bar!" << endl;
diff --git a/GUI.h b/GUI.h
index c60e524..180c5b5 100644
--- a/GUI.h
+++ b/GUI.h
@@ -14,8 +14,8 @@
14#define MENU_CLICK 1<<26 14#define MENU_CLICK 1<<26
15 15
16 16
17using namespace std;
18 17
18using namespace std;
19 19
20class Label 20class Label
21{ 21{
diff --git a/data/levels/Level_template.txt b/data/levels/Level_template.txt
index fe3ce3d..bb4ba42 100644
--- a/data/levels/Level_template.txt
+++ b/data/levels/Level_template.txt
@@ -1,13 +1,13 @@
1IntroLevel #name 1IntroLevel #name
2data/images/bg_stars.bmp #path of background 2images/bg_stars.bmp #path of background
330 #speed of background 330 #speed of background
41 #wether to randomize background position 41 #wether to randomize background position
560 #duration [s] 560 #duration [s]
612346543 #seed 612346543 #seed
72 #number of Shiptypes 72 #number of Shiptypes
8data/tork_capsule.txt #path of Ship 8tork_capsule.txt #path of Ship
940 #how many of them should spawn 940 #how many of them should spawn
10data/tork_spacerocket.txt #path of Ship 10tork_spacerocket.txt #path of Ship
118 #how many 118 #how many
121 #how many events shall happen 121 #how many events shall happen
130.5 #percentage of completion the event happens 130.5 #percentage of completion the event happens
diff --git a/data/levels/insanelevel.txt b/data/levels/insanelevel.txt
index 6fa5f2e..cd9ffe2 100644
--- a/data/levels/insanelevel.txt
+++ b/data/levels/insanelevel.txt
@@ -1,20 +1,20 @@
1Insane Level 1Insane Level
2data/images/bg_stars.bmp 2images/bg_stars.bmp
360 360
41 41
540 540
611374431 611374431
76 76
8data/ships/tork/capsule.txt 8ships/tork/capsule.txt
920 920
10data/ships/tork/spacerocket.txt 10ships/tork/spacerocket.txt
1125 1125
12data/ships/tork/interceptor.txt 12ships/tork/interceptor.txt
136 136
14data/ships/tork/cruiser.txt 14ships/tork/cruiser.txt
1510 1510
16data/ships/tork/tanker.txt 16ships/tork/tanker.txt
1716 1716
18data/ships/tork/sting.txt 18ships/tork/sting.txt
1945 1945
200 200
diff --git a/data/levels/introlevel.txt b/data/levels/introlevel.txt
index 94d26df..4ad286e 100644
--- a/data/levels/introlevel.txt
+++ b/data/levels/introlevel.txt
@@ -1,14 +1,14 @@
1Introlevel 1Introlevel
2data/images/bg_stars.bmp 2images/bg_stars.bmp
360 360
41 41
550 550
61246436 61246436
73 73
8data/ships/tork/capsule.txt 8ships/tork/capsule.txt
9140 9140
10data/ships/tork/spacerocket.txt 10ships/tork/spacerocket.txt
1110 1110
12data/ships/tork/interceptor.txt 12ships/tork/interceptor.txt
134 134
140 140
diff --git a/data/levels/level2.txt b/data/levels/level2.txt
index 1a31fcb..2bbe43b 100644
--- a/data/levels/level2.txt
+++ b/data/levels/level2.txt
@@ -1,16 +1,16 @@
1Level 2 1Level 2
2data/images/bg_stars.bmp 2images/bg_stars.bmp
360 360
41 41
5105 5105
611654436 611654436
74 74
8data/ships/tork/capsule.txt 8ships/tork/capsule.txt
9160 9160
10data/ships/tork/spacerocket.txt 10ships/tork/spacerocket.txt
1120 1120
12data/ships/tork/interceptor.txt 12ships/tork/interceptor.txt
1312 1312
14data/ships/tork/cruiser.txt 14ships/tork/cruiser.txt
154 154
160 160
diff --git a/data/levels/level3.txt b/data/levels/level3.txt
index 212a241..8641772 100644
--- a/data/levels/level3.txt
+++ b/data/levels/level3.txt
@@ -1,20 +1,20 @@
1Level 3 1Level 3
2data/images/bg_stars.bmp 2images/bg_stars.bmp
360 360
41 41
565 565
611374331 611374331
76 76
8data/ships/tork/capsule.txt 8ships/tork/capsule.txt
9120 9120
10data/ships/tork/spacerocket.txt 10ships/tork/spacerocket.txt
1120 1120
12data/ships/tork/interceptor.txt 12ships/tork/interceptor.txt
138 138
14data/ships/tork/cruiser.txt 14ships/tork/cruiser.txt
158 158
16data/ships/tork/tanker.txt 16ships/tork/tanker.txt
1780 1780
18data/ships/tork/sting.txt 18ships/tork/sting.txt
1980 1980
200 200
diff --git a/data/levels/level4.txt b/data/levels/level4.txt
index 7652e9d..bb9629a 100644
--- a/data/levels/level4.txt
+++ b/data/levels/level4.txt
@@ -1,14 +1,14 @@
1Level 4 1Level 4
2data/images/bg_stars.bmp 2images/bg_stars.bmp
360 360
41 41
550 550
61246436 61246436
73 73
8data/ships/tork/sting.txt 8ships/tork/sting.txt
9140 9140
10data/ships/tork/interceptor.txt 10ships/tork/interceptor.txt
1110 1110
12data/ships/tork/cruiser.txt 12ships/tork/cruiser.txt
134 134
140 140
diff --git a/data/projectiles/beam.txt b/data/projectiles/beam.txt
index 35b6c18..3458633 100644
--- a/data/projectiles/beam.txt
+++ b/data/projectiles/beam.txt
@@ -1,5 +1,5 @@
1data/images/spit.bmp 1images/spit.bmp
2data/sounds/piu 2sounds/piu
30.3 30.3
410 410
51 51
diff --git a/data/projectiles/bigspit.txt b/data/projectiles/bigspit.txt
index 3da95e6..bdc5254 100644
--- a/data/projectiles/bigspit.txt
+++ b/data/projectiles/bigspit.txt
@@ -1,5 +1,5 @@
1data/images/bigspit.bmp 1images/bigspit.bmp
2data/sounds/bigspit 2sounds/bigspit
38 38
40 40
54 54
diff --git a/data/projectiles/fire1.txt b/data/projectiles/fire1.txt
index 316f367..83217f9 100644
--- a/data/projectiles/fire1.txt
+++ b/data/projectiles/fire1.txt
@@ -1,5 +1,5 @@
1data/images/fire1.bmp 1images/fire1.bmp
2data/sounds/fire 2sounds/fire
32 32
410 410
53.5 53.5
diff --git a/data/projectiles/projectile_template.txt b/data/projectiles/projectile_template.txt
index 66bd2de..8fd229f 100644
--- a/data/projectiles/projectile_template.txt
+++ b/data/projectiles/projectile_template.txt
@@ -1,5 +1,5 @@
1data/projectile2.bmp #path of the imagefile 1images/projectile2.bmp #path of the imagefile
2data/sounds/spit #path of the soundfile without n.wav for int n 2sounds/spit #path of the soundfile without n.wav for int n
310 #damage 310 #damage
42 #armorPiercing 42 #armorPiercing
51.4142 #collisionSize 51.4142 #collisionSize
diff --git a/data/projectiles/psi.txt b/data/projectiles/psi.txt
index ed05829..c0f99ac 100644
--- a/data/projectiles/psi.txt
+++ b/data/projectiles/psi.txt
@@ -1,5 +1,5 @@
1data/images/psi.bmp 1images/psi.bmp
2data/sounds/piu 2sounds/piu
31.5 31.5
410000 410000
52.2 52.2
diff --git a/data/projectiles/spit.txt b/data/projectiles/spit.txt
index 90d0147..9d3c9f0 100644
--- a/data/projectiles/spit.txt
+++ b/data/projectiles/spit.txt
@@ -1,5 +1,5 @@
1data/images/spit.bmp 1images/spit.bmp
2data/sounds/spit 2sounds/spit
31 31
40 40
51.4142 51.4142
diff --git a/data/ships/EnemyShip_template.txt b/data/ships/EnemyShip_template.txt
index 2fdb348..949fc14 100644
--- a/data/ships/EnemyShip_template.txt
+++ b/data/ships/EnemyShip_template.txt
@@ -1,5 +1,5 @@
1Tork Spacerocket #name 1Tork Spacerocket #name
2data/images/tork_spacerocket.bmp #path of imagefile 2images/tork_spacerocket.bmp #path of imagefile
37 #maxhp 37 #maxhp
45 #armor 45 #armor
550 #moveSpeed 550 #moveSpeed
@@ -9,4 +9,4 @@ data/images/tork_spacerocket.bmp #path of imagefile
93 #score 93 #score
101 #number of weapons 101 #number of weapons
110 -1 #relative Position of weapon 110 -1 #relative Position of weapon
12data/fireball.txt #path of weapon 12fireball.txt #path of weapon
diff --git a/data/ships/tork/capsule.txt b/data/ships/tork/capsule.txt
index ae60c7f..94986a3 100644
--- a/data/ships/tork/capsule.txt
+++ b/data/ships/tork/capsule.txt
@@ -1,5 +1,5 @@
1Tork Capsule 1Tork Capsule
2data/images/ship1.bmp 2images/ship1.bmp
30.6 30.6
410 410
5140 5140
diff --git a/data/ships/tork/cruiser.txt b/data/ships/tork/cruiser.txt
index 11772da..5979ec0 100644
--- a/data/ships/tork/cruiser.txt
+++ b/data/ships/tork/cruiser.txt
@@ -1,5 +1,5 @@
1Tork Cruiser 1Tork Cruiser
2data/images/tork_cruiser.bmp 2images/tork_cruiser.bmp
39 39
425 425
530 530
@@ -9,6 +9,6 @@ data/images/tork_cruiser.bmp
90 90
102 102
110 3 110 3
12data/weapons/spitter1.txt 12weapons/spitter1.txt
130 0 130 0
14data/weapons/novaspitter1.txt 14weapons/novaspitter1.txt
diff --git a/data/ships/tork/interceptor.txt b/data/ships/tork/interceptor.txt
index 40e3651..70d9b8b 100644
--- a/data/ships/tork/interceptor.txt
+++ b/data/ships/tork/interceptor.txt
@@ -1,5 +1,5 @@
1Tork Interceptor 1Tork Interceptor
2data/images/tork_interceptor.bmp 2images/tork_interceptor.bmp
38 38
415 415
555 555
@@ -9,8 +9,8 @@ data/images/tork_interceptor.bmp
90 90
103 103
115 6 115 6
12data/weapons/fireball1.txt 12weapons/fireball1.txt
13-5 6 13-5 6
14data/weapons/fireball1.txt 14weapons/fireball1.txt
150 2 150 2
16data/weapons/spitter2.txt 16weapons/spitter2.txt
diff --git a/data/ships/tork/spacerocket.txt b/data/ships/tork/spacerocket.txt
index 6d0a929..5f39e43 100644
--- a/data/ships/tork/spacerocket.txt
+++ b/data/ships/tork/spacerocket.txt
@@ -1,5 +1,5 @@
1Tork Spacerocket 1Tork Spacerocket
2data/images/ship2.bmp 2images/ship2.bmp
33 33
410 410
530 530
@@ -9,6 +9,6 @@ data/images/ship2.bmp
90 90
102 102
114 4 114 4
12data/weapons/fireball1.txt 12weapons/fireball1.txt
13-4 4 13-4 4
14data/weapons/fireball1.txt 14weapons/fireball1.txt
diff --git a/data/ships/tork/sting.txt b/data/ships/tork/sting.txt
index 4cd73b1..c29b3d0 100644
--- a/data/ships/tork/sting.txt
+++ b/data/ships/tork/sting.txt
@@ -1,5 +1,5 @@
1Tork Sting 1Tork Sting
2data/images/tork_sting.bmp 2images/tork_sting.bmp
34 34
48 48
565 565
@@ -9,4 +9,4 @@ data/images/tork_sting.bmp
90 90
101 101
110 0 110 0
12data/weapons/fireball1.txt 12weapons/fireball1.txt
diff --git a/data/ships/tork/tanker.txt b/data/ships/tork/tanker.txt
index 04fd19a..9ede361 100644
--- a/data/ships/tork/tanker.txt
+++ b/data/ships/tork/tanker.txt
@@ -1,5 +1,5 @@
1Tork Tanker 1Tork Tanker
2data/images/tork_tanker.bmp 2images/tork_tanker.bmp
310 310
440 440
515 515
diff --git a/data/ships/user/UserShip_template.txt b/data/ships/user/UserShip_template.txt
index ed29661..d26b4bf 100644
--- a/data/ships/user/UserShip_template.txt
+++ b/data/ships/user/UserShip_template.txt
@@ -1,5 +1,5 @@
1small Fighter #name 1small Fighter #name
2data/images/small_fighter.bmp #path of imagefile 2images/small_fighter.bmp #path of imagefile
3300 #cost 3300 #cost
410 #maxhp 410 #maxhp
550 #armor 550 #armor
@@ -11,7 +11,7 @@ data/images/small_fighter.bmp #path of imagefile
112 #number of weapons 112 #number of weapons
124 4 #relative Position of weapon 124 4 #relative Position of weapon
133 #maxSize of attached weapon 133 #maxSize of attached weapon
14data/fireball.txt #path of weapon 14fireball.txt #path of weapon
154 4 #relative Position of weapon 154 4 #relative Position of weapon
163 #maxSize of attached weapon 163 #maxSize of attached weapon
17data/fireball.txt #path of weapon 17fireball.txt #path of weapon
diff --git a/data/ships/user/hornet.txt b/data/ships/user/hornet.txt
index d33c78c..e4e4535 100644
--- a/data/ships/user/hornet.txt
+++ b/data/ships/user/hornet.txt
@@ -1,5 +1,5 @@
1Hornet 1Hornet
2data/images/hornet.bmp 2images/hornet.bmp
3750 3750
423 423
525 525
@@ -11,10 +11,10 @@ data/images/hornet.bmp
113 113
126 -6 126 -6
133 133
14data/weapons/empty.txt 14weapons/empty.txt
15-6 -6 15-6 -6
163 163
17data/weapons/empty.txt 17weapons/empty.txt
180 -3 180 -3
193 193
20data/weapons/empty.txt 20weapons/empty.txt
diff --git a/data/ships/user/small_fighter.txt b/data/ships/user/small_fighter.txt
index 0501c22..46fc7e5 100644
--- a/data/ships/user/small_fighter.txt
+++ b/data/ships/user/small_fighter.txt
@@ -1,5 +1,5 @@
1Small Fighter 1Small Fighter
2data/images/small_fighter.bmp 2images/small_fighter.bmp
30 30
415 415
510 510
@@ -11,7 +11,7 @@ data/images/small_fighter.bmp
112 112
124 -2 124 -2
133 133
14data/weapons/beamer2.txt 14weapons/beamer2.txt
15-4 -2 15-4 -2
163 163
17data/weapons/empty.txt 17weapons/empty.txt
diff --git a/data/weapons/Ubeamer.txt b/data/weapons/Ubeamer.txt
new file mode 100644
index 0000000..dc89ba6
--- /dev/null
+++ b/data/weapons/Ubeamer.txt
@@ -0,0 +1,31 @@
1Ultimate Beamer
2images/beamer1.bmp
31.25
41
50
65
70.3
80
9projectiles/beam.txt
100
11700
120.3
130.06
14projectiles/beam.txt
15200
16600
170.3
180.12
19projectiles/beam.txt
20-200
21600
220.3
230.18
24projectiles/beam.txt
2550
26675
270.3
280.24
29projectiles/beam.txt
30-50
31675
diff --git a/data/weapons/beamer1.txt b/data/weapons/beamer1.txt
index 0538fbc..5996b2e 100644
--- a/data/weapons/beamer1.txt
+++ b/data/weapons/beamer1.txt
@@ -1,11 +1,11 @@
1Beamer 1 1Beamer 1
2data/images/beamer1.bmp 2images/beamer1.bmp
34 34
41 41
50 50
61 61
70.08 70.08
80 80
9data/projectiles/beam.txt 9projectiles/beam.txt
100 100
111000 111000
diff --git a/data/weapons/beamer2.txt b/data/weapons/beamer2.txt
index a28d8d6..da9bfbc 100644
--- a/data/weapons/beamer2.txt
+++ b/data/weapons/beamer2.txt
@@ -1,21 +1,21 @@
1Beamer 2 1Beamer 2
2data/images/beamer1.bmp 2images/beamer1.bmp
36 36
41 41
50 50
63 63
70.15 70.15
80 80
9data/projectiles/beam.txt 9projectiles/beam.txt
100 100
111000 111000
120.2 120.2
130.02 130.02
14data/projectiles/beam.txt 14projectiles/beam.txt
15-50 15-50
16990 16990
170.2 170.2
180.04 180.04
19data/projectiles/beam.txt 19projectiles/beam.txt
2050 2050
21990 21990
diff --git a/data/weapons/empty.txt b/data/weapons/empty.txt
index 6536e97..fbac9f8 100644
--- a/data/weapons/empty.txt
+++ b/data/weapons/empty.txt
@@ -1,5 +1,5 @@
1empty Slot 1empty Slot
2data/images/empty.bmp 2images/empty.bmp
30 30
40 40
50 50
diff --git a/data/weapons/fireball1.txt b/data/weapons/fireball1.txt
index 78d6f41..60ebfc4 100644
--- a/data/weapons/fireball1.txt
+++ b/data/weapons/fireball1.txt
@@ -1,11 +1,11 @@
1Fireball 1 1Fireball 1
2data/images/fire1.bmp 2images/fire1.bmp
31 31
41 41
50 50
61 61
71.4 71.4
80.6 80.6
9data/projectiles/fire1.txt 9projectiles/fire1.txt
100 100
11135 11135
diff --git a/data/weapons/inawaffe.txt b/data/weapons/inawaffe.txt
deleted file mode 100644
index 46c65ab..0000000
--- a/data/weapons/inawaffe.txt
+++ /dev/null
@@ -1,31 +0,0 @@
1Ina's OP-Waffe
2data/images/beamer1.bmp
31.25
41
50
65
70.3
80
9data/projectiles/beam.txt
100
11700
120.3
130.06
14data/projectiles/beam.txt
15200
16600
170.3
180.12
19data/projectiles/beam.txt
20-200
21600
220.3
230.18
24data/projectiles/beam.txt
2550
26675
270.3
280.24
29data/projectiles/beam.txt
30-50
31675
diff --git a/data/weapons/nova1.txt b/data/weapons/nova1.txt
index 4dc8898..74f5a2f 100644
--- a/data/weapons/nova1.txt
+++ b/data/weapons/nova1.txt
@@ -1,1506 +1,1506 @@
1Nova 1 1Nova 1
2data/images/empty.bmp 2images/empty.bmp
325 325
41 41
50 50
6300 6300
710 710
86.9999 86.9999
9data/projectiles/psi.txt 9projectiles/psi.txt
10320 10320
110 110
1210 1210
136.9979 136.9979
14data/projectiles/psi.txt 14projectiles/psi.txt
15318.878 15318.878
1626.7769 1626.7769
1710 1710
186.9959 186.9959
19data/projectiles/psi.txt 19projectiles/psi.txt
20315.519 20315.519
2153.366 2153.366
2210 2210
236.9939 236.9939
24data/projectiles/psi.txt 24projectiles/psi.txt
25309.947 25309.947
2679.5808 2679.5808
2710 2710
286.9919 286.9919
29data/projectiles/psi.txt 29projectiles/psi.txt
30302.2 30302.2
31105.237 31105.237
3210 3210
336.9899 336.9899
34data/projectiles/psi.txt 34projectiles/psi.txt
35292.335 35292.335
36130.156 36130.156
3710 3710
386.9879 386.9879
39data/projectiles/psi.txt 39projectiles/psi.txt
40280.418 40280.418
41154.161 41154.161
4210 4210
436.9859 436.9859
44data/projectiles/psi.txt 44projectiles/psi.txt
45266.535 45266.535
46177.085 46177.085
4710 4710
486.9839 486.9839
49data/projectiles/psi.txt 49projectiles/psi.txt
50250.782 50250.782
51198.767 51198.767
5210 5210
536.9819 536.9819
54data/projectiles/psi.txt 54projectiles/psi.txt
55233.27 55233.27
56219.055 56219.055
5710 5710
586.9799 586.9799
59data/projectiles/psi.txt 59projectiles/psi.txt
60214.122 60214.122
61237.806 61237.806
6210 6210
636.9779 636.9779
64data/projectiles/psi.txt 64projectiles/psi.txt
65193.472 65193.472
66254.89 66254.89
6710 6710
686.9759 686.9759
69data/projectiles/psi.txt 69projectiles/psi.txt
70171.465 70171.465
71270.185 71270.185
7210 7210
736.9739 736.9739
74data/projectiles/psi.txt 74projectiles/psi.txt
75148.255 75148.255
76283.585 76283.585
7710 7710
786.9719 786.9719
79data/projectiles/psi.txt 79projectiles/psi.txt
80124.005 80124.005
81294.996 81294.996
8210 8210
836.9699 836.9699
84data/projectiles/psi.txt 84projectiles/psi.txt
8598.8854 8598.8854
86304.338 86304.338
8710 8710
886.9679 886.9679
89data/projectiles/psi.txt 89projectiles/psi.txt
9073.0723 9073.0723
91311.545 91311.545
9210 9210
936.9659 936.9659
94data/projectiles/psi.txt 94projectiles/psi.txt
9546.7466 9546.7466
96316.567 96316.567
9710 9710
986.9639 986.9639
99data/projectiles/psi.txt 99projectiles/psi.txt
10020.093 10020.093
101319.369 101319.369
10210 10210
1036.9619 1036.9619
104data/projectiles/psi.txt 104projectiles/psi.txt
105-6.70157 105-6.70157
106319.93 106319.93
10710 10710
1086.9599 1086.9599
109data/projectiles/psi.txt 109projectiles/psi.txt
110-33.4491 110-33.4491
111318.247 111318.247
11210 11210
1136.9579 1136.9579
114data/projectiles/psi.txt 114projectiles/psi.txt
115-59.962 115-59.962
116314.332 116314.332
11710 11710
1186.9559 1186.9559
119data/projectiles/psi.txt 119projectiles/psi.txt
120-86.0543 120-86.0543
121308.212 121308.212
12210 12210
1236.9539 1236.9539
124data/projectiles/psi.txt 124projectiles/psi.txt
125-111.543 125-111.543
126299.93 126299.93
12710 12710
1286.9519 1286.9519
129data/projectiles/psi.txt 129projectiles/psi.txt
130-136.249 130-136.249
131289.545 131289.545
13210 13210
1336.9499 1336.9499
134data/projectiles/psi.txt 134projectiles/psi.txt
135-160 135-160
136277.128 136277.128
13710 13710
1386.9479 1386.9479
139data/projectiles/psi.txt 139projectiles/psi.txt
140-182.628 140-182.628
141262.768 141262.768
14210 14210
1436.9459 1436.9459
144data/projectiles/psi.txt 144projectiles/psi.txt
145-203.976 145-203.976
146246.564 146246.564
14710 14710
1486.9439 1486.9439
149data/projectiles/psi.txt 149projectiles/psi.txt
150-223.892 150-223.892
151228.631 151228.631
15210 15210
1536.9419 1536.9419
154data/projectiles/psi.txt 154projectiles/psi.txt
155-242.238 155-242.238
156209.095 156209.095
15710 15710
1586.9399 1586.9399
159data/projectiles/psi.txt 159projectiles/psi.txt
160-258.885 160-258.885
161188.091 161188.091
16210 16210
1636.9379 1636.9379
164data/projectiles/psi.txt 164projectiles/psi.txt
165-273.717 165-273.717
166165.769 166165.769
16710 16710
1686.9359 1686.9359
169data/projectiles/psi.txt 169projectiles/psi.txt
170-286.628 170-286.628
171142.283 171142.283
17210 17210
1736.9339 1736.9339
174data/projectiles/psi.txt 174projectiles/psi.txt
175-297.528 175-297.528
176117.8 176117.8
17710 17710
1786.9319 1786.9319
179data/projectiles/psi.txt 179projectiles/psi.txt
180-306.342 180-306.342
18192.4902 18192.4902
18210 18210
1836.9299 1836.9299
184data/projectiles/psi.txt 184projectiles/psi.txt
185-313.007 185-313.007
18666.5317 18666.5317
18710 18710
1886.9279 1886.9279
189data/projectiles/psi.txt 189projectiles/psi.txt
190-317.477 190-317.477
19140.1066 19140.1066
19210 19210
1936.9259 1936.9259
194data/projectiles/psi.txt 194projectiles/psi.txt
195-319.719 195-319.719
19613.4002 19613.4002
19710 19710
1986.9239 1986.9239
199data/projectiles/psi.txt 199projectiles/psi.txt
200-319.719 200-319.719
201-13.4002 201-13.4002
20210 20210
2036.9219 2036.9219
204data/projectiles/psi.txt 204projectiles/psi.txt
205-317.477 205-317.477
206-40.1066 206-40.1066
20710 20710
2086.9199 2086.9199
209data/projectiles/psi.txt 209projectiles/psi.txt
210-313.007 210-313.007
211-66.5317 211-66.5317
21210 21210
2136.9179 2136.9179
214data/projectiles/psi.txt 214projectiles/psi.txt
215-306.342 215-306.342
216-92.4902 216-92.4902
21710 21710
2186.9159 2186.9159
219data/projectiles/psi.txt 219projectiles/psi.txt
220-297.528 220-297.528
221-117.8 221-117.8
22210 22210
2236.9139 2236.9139
224data/projectiles/psi.txt 224projectiles/psi.txt
225-286.628 225-286.628
226-142.283 226-142.283
22710 22710
2286.9119 2286.9119
229data/projectiles/psi.txt 229projectiles/psi.txt
230-273.717 230-273.717
231-165.769 231-165.769
23210 23210
2336.9099 2336.9099
234data/projectiles/psi.txt 234projectiles/psi.txt
235-258.885 235-258.885
236-188.091 236-188.091
23710 23710
2386.9079 2386.9079
239data/projectiles/psi.txt 239projectiles/psi.txt
240-242.238 240-242.238
241-209.095 241-209.095
24210 24210
2436.9059 2436.9059
244data/projectiles/psi.txt 244projectiles/psi.txt
245-223.892 245-223.892
246-228.631 246-228.631
24710 24710
2486.9039 2486.9039
249data/projectiles/psi.txt 249projectiles/psi.txt
250-203.976 250-203.976
251-246.564 251-246.564
25210 25210
2536.9019 2536.9019
254data/projectiles/psi.txt 254projectiles/psi.txt
255-182.628 255-182.628
256-262.768 256-262.768
25710 25710
2586.8999 2586.8999
259data/projectiles/psi.txt 259projectiles/psi.txt
260-160 260-160
261-277.128 261-277.128
26210 26210
2636.8979 2636.8979
264data/projectiles/psi.txt 264projectiles/psi.txt
265-136.249 265-136.249
266-289.545 266-289.545
26710 26710
2686.8959 2686.8959
269data/projectiles/psi.txt 269projectiles/psi.txt
270-111.543 270-111.543
271-299.93 271-299.93
27210 27210
2736.8939 2736.8939
274data/projectiles/psi.txt 274projectiles/psi.txt
275-86.0543 275-86.0543
276-308.212 276-308.212
27710 27710
2786.8919 2786.8919
279data/projectiles/psi.txt 279projectiles/psi.txt
280-59.962 280-59.962
281-314.332 281-314.332
28210 28210
2836.8899 2836.8899
284data/projectiles/psi.txt 284projectiles/psi.txt
285-33.4491 285-33.4491
286-318.247 286-318.247
28710 28710
2886.8879 2886.8879
289data/projectiles/psi.txt 289projectiles/psi.txt
290-6.70157 290-6.70157
291-319.93 291-319.93
29210 29210
2936.8859 2936.8859
294data/projectiles/psi.txt 294projectiles/psi.txt
29520.093 29520.093
296-319.369 296-319.369
29710 29710
2986.8839 2986.8839
299data/projectiles/psi.txt 299projectiles/psi.txt
30046.7466 30046.7466
301-316.567 301-316.567
30210 30210
3036.8819 3036.8819
304data/projectiles/psi.txt 304projectiles/psi.txt
30573.0723 30573.0723
306-311.545 306-311.545
30710 30710
3086.8799 3086.8799
309data/projectiles/psi.txt 309projectiles/psi.txt
31098.8854 31098.8854
311-304.338 311-304.338
31210 31210
3136.8779 3136.8779
314data/projectiles/psi.txt 314projectiles/psi.txt
315124.005 315124.005
316-294.996 316-294.996
31710 31710
3186.8759 3186.8759
319data/projectiles/psi.txt 319projectiles/psi.txt
320148.255 320148.255
321-283.585 321-283.585
32210 32210
3236.8739 3236.8739
324data/projectiles/psi.txt 324projectiles/psi.txt
325171.465 325171.465
326-270.185 326-270.185
32710 32710
3286.8719 3286.8719
329data/projectiles/psi.txt 329projectiles/psi.txt
330193.472 330193.472
331-254.89 331-254.89
33210 33210
3336.8699 3336.8699
334data/projectiles/psi.txt 334projectiles/psi.txt
335214.122 335214.122
336-237.806 336-237.806
33710 33710
3386.8679 3386.8679
339data/projectiles/psi.txt 339projectiles/psi.txt
340233.27 340233.27
341-219.055 341-219.055
34210 34210
3436.8659 3436.8659
344data/projectiles/psi.txt 344projectiles/psi.txt
345250.782 345250.782
346-198.767 346-198.767
34710 34710
3486.8639 3486.8639
349data/projectiles/psi.txt 349projectiles/psi.txt
350266.535 350266.535
351-177.085 351-177.085
35210 35210
3536.8619 3536.8619
354data/projectiles/psi.txt 354projectiles/psi.txt
355280.418 355280.418
356-154.161 356-154.161
35710 35710
3586.8599 3586.8599
359data/projectiles/psi.txt 359projectiles/psi.txt
360292.335 360292.335
361-130.156 361-130.156
36210 36210
3636.8579 3636.8579
364data/projectiles/psi.txt 364projectiles/psi.txt
365302.2 365302.2
366-105.237 366-105.237
36710 36710
3686.8559 3686.8559
369data/projectiles/psi.txt 369projectiles/psi.txt
370309.947 370309.947
371-79.5808 371-79.5808
37210 37210
3736.8539 3736.8539
374data/projectiles/psi.txt 374projectiles/psi.txt
375315.519 375315.519
376-53.366 376-53.366
37710 37710
3786.8519 3786.8519
379data/projectiles/psi.txt 379projectiles/psi.txt
380318.878 380318.878
381-26.7769 381-26.7769
38210 38210
3836.8499 3836.8499
384data/projectiles/psi.txt 384projectiles/psi.txt
385320 385320
386-7.83774e-14 386-7.83774e-14
38710 38710
3886.8479 3886.8479
389data/projectiles/psi.txt 389projectiles/psi.txt
390318.878 390318.878
39126.7769 39126.7769
39210 39210
3936.8459 3936.8459
394data/projectiles/psi.txt 394projectiles/psi.txt
395315.519 395315.519
39653.366 39653.366
39710 39710
3986.8439 3986.8439
399data/projectiles/psi.txt 399projectiles/psi.txt
400309.947 400309.947
40179.5808 40179.5808
40210 40210
4036.8419 4036.8419
404data/projectiles/psi.txt 404projectiles/psi.txt
405302.2 405302.2
406105.237 406105.237
40710 40710
4086.8399 4086.8399
409data/projectiles/psi.txt 409projectiles/psi.txt
410292.335 410292.335
411130.156 411130.156
41210 41210
4136.8379 4136.8379
414data/projectiles/psi.txt 414projectiles/psi.txt
415280.418 415280.418
416154.161 416154.161
41710 41710
4186.8359 4186.8359
419data/projectiles/psi.txt 419projectiles/psi.txt
420266.535 420266.535
421177.085 421177.085
42210 42210
4236.8339 4236.8339
424data/projectiles/psi.txt 424projectiles/psi.txt
425250.782 425250.782
426198.767 426198.767
42710 42710
4286.8319 4286.8319
429data/projectiles/psi.txt 429projectiles/psi.txt
430233.27 430233.27
431219.055 431219.055
43210 43210
4336.8299 4336.8299
434data/projectiles/psi.txt 434projectiles/psi.txt
435214.122 435214.122
436237.806 436237.806
43710 43710
4386.8279 4386.8279
439data/projectiles/psi.txt 439projectiles/psi.txt
440193.472 440193.472
441254.89 441254.89
44210 44210
4436.8259 4436.8259
444data/projectiles/psi.txt 444projectiles/psi.txt
445171.465 445171.465
446270.185 446270.185
44710 44710
4486.8239 4486.8239
449data/projectiles/psi.txt 449projectiles/psi.txt
450148.255 450148.255
451283.585 451283.585
45210 45210
4536.8219 4536.8219
454data/projectiles/psi.txt 454projectiles/psi.txt
455124.005 455124.005
456294.996 456294.996
45710 45710
4586.8199 4586.8199
459data/projectiles/psi.txt 459projectiles/psi.txt
46098.8854 46098.8854
461304.338 461304.338
46210 46210
4636.8179 4636.8179
464data/projectiles/psi.txt 464projectiles/psi.txt
46573.0723 46573.0723
466311.545 466311.545
46710 46710
4686.8159 4686.8159
469data/projectiles/psi.txt 469projectiles/psi.txt
47046.7466 47046.7466
471316.567 471316.567
47210 47210
4736.8139 4736.8139
474data/projectiles/psi.txt 474projectiles/psi.txt
47520.093 47520.093
476319.369 476319.369
47710 47710
4786.8119 4786.8119
479data/projectiles/psi.txt 479projectiles/psi.txt
480-6.70157 480-6.70157
481319.93 481319.93
48210 48210
4836.8099 4836.8099
484data/projectiles/psi.txt 484projectiles/psi.txt
485-33.4491 485-33.4491
486318.247 486318.247
48710 48710
4886.8079 4886.8079
489data/projectiles/psi.txt 489projectiles/psi.txt
490-59.962 490-59.962
491314.332 491314.332
49210 49210
4936.8059 4936.8059
494data/projectiles/psi.txt 494projectiles/psi.txt
495-86.0543 495-86.0543
496308.212 496308.212
49710 49710
4986.8039 4986.8039
499data/projectiles/psi.txt 499projectiles/psi.txt
500-111.543 500-111.543
501299.93 501299.93
50210 50210
5036.8019 5036.8019
504data/projectiles/psi.txt 504projectiles/psi.txt
505-136.249 505-136.249
506289.545 506289.545
50710 50710
5086.7999 5086.7999
509data/projectiles/psi.txt 509projectiles/psi.txt
510-160 510-160
511277.128 511277.128
51210 51210
5136.7979 5136.7979
514data/projectiles/psi.txt 514projectiles/psi.txt
515-182.628 515-182.628
516262.768 516262.768
51710 51710
5186.7959 5186.7959
519data/projectiles/psi.txt 519projectiles/psi.txt
520-203.976 520-203.976
521246.564 521246.564
52210 52210
5236.7939 5236.7939
524data/projectiles/psi.txt 524projectiles/psi.txt
525-223.892 525-223.892
526228.631 526228.631
52710 52710
5286.7919 5286.7919
529data/projectiles/psi.txt 529projectiles/psi.txt
530-242.238 530-242.238
531209.095 531209.095
53210 53210
5336.7899 5336.7899
534data/projectiles/psi.txt 534projectiles/psi.txt
535-258.885 535-258.885
536188.091 536188.091
53710 53710
5386.7879 5386.7879
539data/projectiles/psi.txt 539projectiles/psi.txt
540-273.717 540-273.717
541165.769 541165.769
54210 54210
5436.7859 5436.7859
544data/projectiles/psi.txt 544projectiles/psi.txt
545-286.628 545-286.628
546142.283 546142.283
54710 54710
5486.7839 5486.7839
549data/projectiles/psi.txt 549projectiles/psi.txt
550-297.528 550-297.528
551117.8 551117.8
55210 55210
5536.7819 5536.7819
554data/projectiles/psi.txt 554projectiles/psi.txt
555-306.342 555-306.342
55692.4902 55692.4902
55710 55710
5586.7799 5586.7799
559data/projectiles/psi.txt 559projectiles/psi.txt
560-313.007 560-313.007
56166.5317 56166.5317
56210 56210
5636.7779 5636.7779
564data/projectiles/psi.txt 564projectiles/psi.txt
565-317.477 565-317.477
56640.1066 56640.1066
56710 56710
5686.7759 5686.7759
569data/projectiles/psi.txt 569projectiles/psi.txt
570-319.719 570-319.719
57113.4002 57113.4002
57210 57210
5736.7739 5736.7739
574data/projectiles/psi.txt 574projectiles/psi.txt
575-319.719 575-319.719
576-13.4002 576-13.4002
57710 57710
5786.7719 5786.7719
579data/projectiles/psi.txt 579projectiles/psi.txt
580-317.477 580-317.477
581-40.1066 581-40.1066
58210 58210
5836.7699 5836.7699
584data/projectiles/psi.txt 584projectiles/psi.txt
585-313.007 585-313.007
586-66.5317 586-66.5317
58710 58710
5886.7679 5886.7679
589data/projectiles/psi.txt 589projectiles/psi.txt
590-306.342 590-306.342
591-92.4902 591-92.4902
59210 59210
5936.7659 5936.7659
594data/projectiles/psi.txt 594projectiles/psi.txt
595-297.528 595-297.528
596-117.8 596-117.8
59710 59710
5986.7639 5986.7639
599data/projectiles/psi.txt 599projectiles/psi.txt
600-286.628 600-286.628
601-142.283 601-142.283
60210 60210
6036.7619 6036.7619
604data/projectiles/psi.txt 604projectiles/psi.txt
605-273.717 605-273.717
606-165.769 606-165.769
60710 60710
6086.7599 6086.7599
609data/projectiles/psi.txt 609projectiles/psi.txt
610-258.885 610-258.885
611-188.091 611-188.091
61210 61210
6136.7579 6136.7579
614data/projectiles/psi.txt 614projectiles/psi.txt
615-242.238 615-242.238
616-209.095 616-209.095
61710 61710
6186.7559 6186.7559
619data/projectiles/psi.txt 619projectiles/psi.txt
620-223.892 620-223.892
621-228.631 621-228.631
62210 62210
6236.7539 6236.7539
624data/projectiles/psi.txt 624projectiles/psi.txt
625-203.976 625-203.976
626-246.564 626-246.564
62710 62710
6286.7519 6286.7519
629data/projectiles/psi.txt 629projectiles/psi.txt
630-182.628 630-182.628
631-262.768 631-262.768
63210 63210
6336.7499 6336.7499
634data/projectiles/psi.txt 634projectiles/psi.txt
635-160 635-160
636-277.128 636-277.128
63710 63710
6386.7479 6386.7479
639data/projectiles/psi.txt 639projectiles/psi.txt
640-136.249 640-136.249
641-289.545 641-289.545
64210 64210
6436.7459 6436.7459
644data/projectiles/psi.txt 644projectiles/psi.txt
645-111.543 645-111.543
646-299.93 646-299.93
64710 64710
6486.7439 6486.7439
649data/projectiles/psi.txt 649projectiles/psi.txt
650-86.0543 650-86.0543
651-308.212 651-308.212
65210 65210
6536.7419 6536.7419
654data/projectiles/psi.txt 654projectiles/psi.txt
655-59.962 655-59.962
656-314.332 656-314.332
65710 65710
6586.7399 6586.7399
659data/projectiles/psi.txt 659projectiles/psi.txt
660-33.4491 660-33.4491
661-318.247 661-318.247
66210 66210
6636.7379 6636.7379
664data/projectiles/psi.txt 664projectiles/psi.txt
665-6.70157 665-6.70157
666-319.93 666-319.93
66710 66710
6686.7359 6686.7359
669data/projectiles/psi.txt 669projectiles/psi.txt
67020.093 67020.093
671-319.369 671-319.369
67210 67210
6736.7339 6736.7339
674data/projectiles/psi.txt 674projectiles/psi.txt
67546.7466 67546.7466
676-316.567 676-316.567
67710 67710
6786.7319 6786.7319
679data/projectiles/psi.txt 679projectiles/psi.txt
68073.0723 68073.0723
681-311.545 681-311.545
68210 68210
6836.7299 6836.7299
684data/projectiles/psi.txt 684projectiles/psi.txt
68598.8854 68598.8854
686-304.338 686-304.338
68710 68710
6886.7279 6886.7279
689data/projectiles/psi.txt 689projectiles/psi.txt
690124.005 690124.005
691-294.996 691-294.996
69210 69210
6936.7259 6936.7259
694data/projectiles/psi.txt 694projectiles/psi.txt
695148.255 695148.255
696-283.585 696-283.585
69710 69710
6986.7239 6986.7239
699data/projectiles/psi.txt 699projectiles/psi.txt
700171.465 700171.465
701-270.185 701-270.185
70210 70210
7036.7219 7036.7219
704data/projectiles/psi.txt 704projectiles/psi.txt
705193.472 705193.472
706-254.89 706-254.89
70710 70710
7086.7199 7086.7199
709data/projectiles/psi.txt 709projectiles/psi.txt
710214.122 710214.122
711-237.806 711-237.806
71210 71210
7136.7179 7136.7179
714data/projectiles/psi.txt 714projectiles/psi.txt
715233.27 715233.27
716-219.055 716-219.055
71710 71710
7186.7159 7186.7159
719data/projectiles/psi.txt 719projectiles/psi.txt
720250.782 720250.782
721-198.767 721-198.767
72210 72210
7236.7139 7236.7139
724data/projectiles/psi.txt 724projectiles/psi.txt
725266.535 725266.535
726-177.085 726-177.085
72710 72710
7286.7119 7286.7119
729data/projectiles/psi.txt 729projectiles/psi.txt
730280.418 730280.418
731-154.161 731-154.161
73210 73210
7336.7099 7336.7099
734data/projectiles/psi.txt 734projectiles/psi.txt
735292.335 735292.335
736-130.156 736-130.156
73710 73710
7386.7079 7386.7079
739data/projectiles/psi.txt 739projectiles/psi.txt
740302.2 740302.2
741-105.237 741-105.237
74210 74210
7436.7059 7436.7059
744data/projectiles/psi.txt 744projectiles/psi.txt
745309.947 745309.947
746-79.5808 746-79.5808
74710 74710
7486.7039 7486.7039
749data/projectiles/psi.txt 749projectiles/psi.txt
750315.519 750315.519
751-53.366 751-53.366
75210 75210
7536.7019 7536.7019
754data/projectiles/psi.txt 754projectiles/psi.txt
755318.878 755318.878
756-26.7769 756-26.7769
75710 75710
7586.6999 7586.6999
759data/projectiles/psi.txt 759projectiles/psi.txt
760320 760320
761-1.56755e-13 761-1.56755e-13
76210 76210
7636.6979 7636.6979
764data/projectiles/psi.txt 764projectiles/psi.txt
765318.878 765318.878
76626.7769 76626.7769
76710 76710
7686.6959 7686.6959
769data/projectiles/psi.txt 769projectiles/psi.txt
770315.519 770315.519
77153.366 77153.366
77210 77210
7736.6939 7736.6939
774data/projectiles/psi.txt 774projectiles/psi.txt
775309.947 775309.947
77679.5808 77679.5808
77710 77710
7786.6919 7786.6919
779data/projectiles/psi.txt 779projectiles/psi.txt
780302.2 780302.2
781105.237 781105.237
78210 78210
7836.6899 7836.6899
784data/projectiles/psi.txt 784projectiles/psi.txt
785292.335 785292.335
786130.156 786130.156
78710 78710
7886.6879 7886.6879
789data/projectiles/psi.txt 789projectiles/psi.txt
790280.418 790280.418
791154.161 791154.161
79210 79210
7936.6859 7936.6859
794data/projectiles/psi.txt 794projectiles/psi.txt
795266.535 795266.535
796177.085 796177.085
79710 79710
7986.6839 7986.6839
799data/projectiles/psi.txt 799projectiles/psi.txt
800250.782 800250.782
801198.767 801198.767
80210 80210
8036.6819 8036.6819
804data/projectiles/psi.txt 804projectiles/psi.txt
805233.27 805233.27
806219.055 806219.055
80710 80710
8086.6799 8086.6799
809data/projectiles/psi.txt 809projectiles/psi.txt
810214.122 810214.122
811237.806 811237.806
81210 81210
8136.6779 8136.6779
814data/projectiles/psi.txt 814projectiles/psi.txt
815193.472 815193.472
816254.89 816254.89
81710 81710
8186.6759 8186.6759
819data/projectiles/psi.txt 819projectiles/psi.txt
820171.465 820171.465
821270.185 821270.185
82210 82210
8236.6739 8236.6739
824data/projectiles/psi.txt 824projectiles/psi.txt
825148.255 825148.255
826283.585 826283.585
82710 82710
8286.6719 8286.6719
829data/projectiles/psi.txt 829projectiles/psi.txt
830124.005 830124.005
831294.996 831294.996
83210 83210
8336.6699 8336.6699
834data/projectiles/psi.txt 834projectiles/psi.txt
83598.8854 83598.8854
836304.338 836304.338
83710 83710
8386.6679 8386.6679
839data/projectiles/psi.txt 839projectiles/psi.txt
84073.0723 84073.0723
841311.545 841311.545
84210 84210
8436.6659 8436.6659
844data/projectiles/psi.txt 844projectiles/psi.txt
84546.7466 84546.7466
846316.567 846316.567
84710 84710
8486.6639 8486.6639
849data/projectiles/psi.txt 849projectiles/psi.txt
85020.093 85020.093
851319.369 851319.369
85210 85210
8536.6619 8536.6619
854data/projectiles/psi.txt 854projectiles/psi.txt
855-6.70157 855-6.70157
856319.93 856319.93
85710 85710
8586.6599 8586.6599
859data/projectiles/psi.txt 859projectiles/psi.txt
860-33.4491 860-33.4491
861318.247 861318.247
86210 86210
8636.6579 8636.6579
864data/projectiles/psi.txt 864projectiles/psi.txt
865-59.962 865-59.962
866314.332 866314.332
86710 86710
8686.6559 8686.6559
869data/projectiles/psi.txt 869projectiles/psi.txt
870-86.0543 870-86.0543
871308.212 871308.212
87210 87210
8736.6539 8736.6539
874data/projectiles/psi.txt 874projectiles/psi.txt
875-111.543 875-111.543
876299.93 876299.93
87710 87710
8786.6519 8786.6519
879data/projectiles/psi.txt 879projectiles/psi.txt
880-136.249 880-136.249
881289.545 881289.545
88210 88210
8836.6499 8836.6499
884data/projectiles/psi.txt 884projectiles/psi.txt
885-160 885-160
886277.128 886277.128
88710 88710
8886.6479 8886.6479
889data/projectiles/psi.txt 889projectiles/psi.txt
890-182.628 890-182.628
891262.768 891262.768
89210 89210
8936.6459 8936.6459
894data/projectiles/psi.txt 894projectiles/psi.txt
895-203.976 895-203.976
896246.564 896246.564
89710 89710
8986.6439 8986.6439
899data/projectiles/psi.txt 899projectiles/psi.txt
900-223.892 900-223.892
901228.631 901228.631
90210 90210
9036.6419 9036.6419
904data/projectiles/psi.txt 904projectiles/psi.txt
905-242.238 905-242.238
906209.095 906209.095
90710 90710
9086.6399 9086.6399
909data/projectiles/psi.txt 909projectiles/psi.txt
910-258.885 910-258.885
911188.091 911188.091
91210 91210
9136.6379 9136.6379
914data/projectiles/psi.txt 914projectiles/psi.txt
915-273.717 915-273.717
916165.769 916165.769
91710 91710
9186.6359 9186.6359
919data/projectiles/psi.txt 919projectiles/psi.txt
920-286.628 920-286.628
921142.283 921142.283
92210 92210
9236.6339 9236.6339
924data/projectiles/psi.txt 924projectiles/psi.txt
925-297.528 925-297.528
926117.8 926117.8
92710 92710
9286.6319 9286.6319
929data/projectiles/psi.txt 929projectiles/psi.txt
930-306.342 930-306.342
93192.4902 93192.4902
93210 93210
9336.6299 9336.6299
934data/projectiles/psi.txt 934projectiles/psi.txt
935-313.007 935-313.007
93666.5317 93666.5317
93710 93710
9386.6279 9386.6279
939data/projectiles/psi.txt 939projectiles/psi.txt
940-317.477 940-317.477
94140.1066 94140.1066
94210 94210
9436.6259 9436.6259
944data/projectiles/psi.txt 944projectiles/psi.txt
945-319.719 945-319.719
94613.4002 94613.4002
94710 94710
9486.6239 9486.6239
949data/projectiles/psi.txt 949projectiles/psi.txt
950-319.719 950-319.719
951-13.4002 951-13.4002
95210 95210
9536.6219 9536.6219
954data/projectiles/psi.txt 954projectiles/psi.txt
955-317.477 955-317.477
956-40.1066 956-40.1066
95710 95710
9586.6199 9586.6199
959data/projectiles/psi.txt 959projectiles/psi.txt
960-313.007 960-313.007
961-66.5317 961-66.5317
96210 96210
9636.6179 9636.6179
964data/projectiles/psi.txt 964projectiles/psi.txt
965-306.342 965-306.342
966-92.4902 966-92.4902
96710 96710
9686.6159 9686.6159
969data/projectiles/psi.txt 969projectiles/psi.txt
970-297.528 970-297.528
971-117.8 971-117.8
97210 97210
9736.6139 9736.6139
974data/projectiles/psi.txt 974projectiles/psi.txt
975-286.628 975-286.628
976-142.283 976-142.283
97710 97710
9786.6119 9786.6119
979data/projectiles/psi.txt 979projectiles/psi.txt
980-273.717 980-273.717
981-165.769 981-165.769
98210 98210
9836.6099 9836.6099
984data/projectiles/psi.txt 984projectiles/psi.txt
985-258.885 985-258.885
986-188.091 986-188.091
98710 98710
9886.6079 9886.6079
989data/projectiles/psi.txt 989projectiles/psi.txt
990-242.238 990-242.238
991-209.095 991-209.095
99210 99210
9936.6059 9936.6059
994data/projectiles/psi.txt 994projectiles/psi.txt
995-223.892 995-223.892
996-228.631 996-228.631
99710 99710
9986.6039 9986.6039
999data/projectiles/psi.txt 999projectiles/psi.txt
1000-203.976 1000-203.976
1001-246.564 1001-246.564
100210 100210
10036.6019 10036.6019
1004data/projectiles/psi.txt 1004projectiles/psi.txt
1005-182.628 1005-182.628
1006-262.768 1006-262.768
100710 100710
10086.5999 10086.5999
1009data/projectiles/psi.txt 1009projectiles/psi.txt
1010-160 1010-160
1011-277.128 1011-277.128
101210 101210
10136.5979 10136.5979
1014data/projectiles/psi.txt 1014projectiles/psi.txt
1015-136.249 1015-136.249
1016-289.545 1016-289.545
101710 101710
10186.5959 10186.5959
1019data/projectiles/psi.txt 1019projectiles/psi.txt
1020-111.543 1020-111.543
1021-299.93 1021-299.93
102210 102210
10236.5939 10236.5939
1024data/projectiles/psi.txt 1024projectiles/psi.txt
1025-86.0543 1025-86.0543
1026-308.212 1026-308.212
102710 102710
10286.5919 10286.5919
1029data/projectiles/psi.txt 1029projectiles/psi.txt
1030-59.962 1030-59.962
1031-314.332 1031-314.332
103210 103210
10336.5899 10336.5899
1034data/projectiles/psi.txt 1034projectiles/psi.txt
1035-33.4491 1035-33.4491
1036-318.247 1036-318.247
103710 103710
10386.5879 10386.5879
1039data/projectiles/psi.txt 1039projectiles/psi.txt
1040-6.70157 1040-6.70157
1041-319.93 1041-319.93
104210 104210
10436.5859 10436.5859
1044data/projectiles/psi.txt 1044projectiles/psi.txt
104520.093 104520.093
1046-319.369 1046-319.369
104710 104710
10486.5839 10486.5839
1049data/projectiles/psi.txt 1049projectiles/psi.txt
105046.7466 105046.7466
1051-316.567 1051-316.567
105210 105210
10536.5819 10536.5819
1054data/projectiles/psi.txt 1054projectiles/psi.txt
105573.0723 105573.0723
1056-311.545 1056-311.545
105710 105710
10586.5799 10586.5799
1059data/projectiles/psi.txt 1059projectiles/psi.txt
106098.8854 106098.8854
1061-304.338 1061-304.338
106210 106210
10636.5779 10636.5779
1064data/projectiles/psi.txt 1064projectiles/psi.txt
1065124.005 1065124.005
1066-294.996 1066-294.996
106710 106710
10686.5759 10686.5759
1069data/projectiles/psi.txt 1069projectiles/psi.txt
1070148.255 1070148.255
1071-283.585 1071-283.585
107210 107210
10736.5739 10736.5739
1074data/projectiles/psi.txt 1074projectiles/psi.txt
1075171.465 1075171.465
1076-270.185 1076-270.185
107710 107710
10786.5719 10786.5719
1079data/projectiles/psi.txt 1079projectiles/psi.txt
1080193.472 1080193.472
1081-254.89 1081-254.89
108210 108210
10836.5699 10836.5699
1084data/projectiles/psi.txt 1084projectiles/psi.txt
1085214.122 1085214.122
1086-237.806 1086-237.806
108710 108710
10886.5679 10886.5679
1089data/projectiles/psi.txt 1089projectiles/psi.txt
1090233.27 1090233.27
1091-219.055 1091-219.055
109210 109210
10936.5659 10936.5659
1094data/projectiles/psi.txt 1094projectiles/psi.txt
1095250.782 1095250.782
1096-198.767 1096-198.767
109710 109710
10986.5639 10986.5639
1099data/projectiles/psi.txt 1099projectiles/psi.txt
1100266.535 1100266.535
1101-177.085 1101-177.085
110210 110210
11036.5619 11036.5619
1104data/projectiles/psi.txt 1104projectiles/psi.txt
1105280.418 1105280.418
1106-154.161 1106-154.161
110710 110710
11086.5599 11086.5599
1109data/projectiles/psi.txt 1109projectiles/psi.txt
1110292.335 1110292.335
1111-130.156 1111-130.156
111210 111210
11136.5579 11136.5579
1114data/projectiles/psi.txt 1114projectiles/psi.txt
1115302.2 1115302.2
1116-105.237 1116-105.237
111710 111710
11186.5559 11186.5559
1119data/projectiles/psi.txt 1119projectiles/psi.txt
1120309.947 1120309.947
1121-79.5808 1121-79.5808
112210 112210
11236.5539 11236.5539
1124data/projectiles/psi.txt 1124projectiles/psi.txt
1125315.519 1125315.519
1126-53.366 1126-53.366
112710 112710
11286.5519 11286.5519
1129data/projectiles/psi.txt 1129projectiles/psi.txt
1130318.878 1130318.878
1131-26.7769 1131-26.7769
113210 113210
11336.5499 11336.5499
1134data/projectiles/psi.txt 1134projectiles/psi.txt
1135320 1135320
1136-2.35132e-13 1136-2.35132e-13
113710 113710
11386.5479 11386.5479
1139data/projectiles/psi.txt 1139projectiles/psi.txt
1140318.878 1140318.878
114126.7769 114126.7769
114210 114210
11436.5459 11436.5459
1144data/projectiles/psi.txt 1144projectiles/psi.txt
1145315.519 1145315.519
114653.366 114653.366
114710 114710
11486.5439 11486.5439
1149data/projectiles/psi.txt 1149projectiles/psi.txt
1150309.947 1150309.947
115179.5808 115179.5808
115210 115210
11536.5419 11536.5419
1154data/projectiles/psi.txt 1154projectiles/psi.txt
1155302.2 1155302.2
1156105.237 1156105.237
115710 115710
11586.5399 11586.5399
1159data/projectiles/psi.txt 1159projectiles/psi.txt
1160292.335 1160292.335
1161130.156 1161130.156
116210 116210
11636.5379 11636.5379
1164data/projectiles/psi.txt 1164projectiles/psi.txt
1165280.418 1165280.418
1166154.161 1166154.161
116710 116710
11686.5359 11686.5359
1169data/projectiles/psi.txt 1169projectiles/psi.txt
1170266.535 1170266.535
1171177.085 1171177.085
117210 117210
11736.5339 11736.5339
1174data/projectiles/psi.txt 1174projectiles/psi.txt
1175250.782 1175250.782
1176198.767 1176198.767
117710 117710
11786.5319 11786.5319
1179data/projectiles/psi.txt 1179projectiles/psi.txt
1180233.27 1180233.27
1181219.055 1181219.055
118210 118210
11836.5299 11836.5299
1184data/projectiles/psi.txt 1184projectiles/psi.txt
1185214.122 1185214.122
1186237.806 1186237.806
118710 118710
11886.5279 11886.5279
1189data/projectiles/psi.txt 1189projectiles/psi.txt
1190193.472 1190193.472
1191254.89 1191254.89
119210 119210
11936.5259 11936.5259
1194data/projectiles/psi.txt 1194projectiles/psi.txt
1195171.465 1195171.465
1196270.185 1196270.185
119710 119710
11986.5239 11986.5239
1199data/projectiles/psi.txt 1199projectiles/psi.txt
1200148.255 1200148.255
1201283.585 1201283.585
120210 120210
12036.5219 12036.5219
1204data/projectiles/psi.txt 1204projectiles/psi.txt
1205124.005 1205124.005
1206294.996 1206294.996
120710 120710
12086.5199 12086.5199
1209data/projectiles/psi.txt 1209projectiles/psi.txt
121098.8854 121098.8854
1211304.338 1211304.338
121210 121210
12136.5179 12136.5179
1214data/projectiles/psi.txt 1214projectiles/psi.txt
121573.0723 121573.0723
1216311.545 1216311.545
121710 121710
12186.5159 12186.5159
1219data/projectiles/psi.txt 1219projectiles/psi.txt
122046.7466 122046.7466
1221316.567 1221316.567
122210 122210
12236.5139 12236.5139
1224data/projectiles/psi.txt 1224projectiles/psi.txt
122520.093 122520.093
1226319.369 1226319.369
122710 122710
12286.5119 12286.5119
1229data/projectiles/psi.txt 1229projectiles/psi.txt
1230-6.70157 1230-6.70157
1231319.93 1231319.93
123210 123210
12336.5099 12336.5099
1234data/projectiles/psi.txt 1234projectiles/psi.txt
1235-33.4491 1235-33.4491
1236318.247 1236318.247
123710 123710
12386.5079 12386.5079
1239data/projectiles/psi.txt 1239projectiles/psi.txt
1240-59.962 1240-59.962
1241314.332 1241314.332
124210 124210
12436.5059 12436.5059
1244data/projectiles/psi.txt 1244projectiles/psi.txt
1245-86.0543 1245-86.0543
1246308.212 1246308.212
124710 124710
12486.5039 12486.5039
1249data/projectiles/psi.txt 1249projectiles/psi.txt
1250-111.543 1250-111.543
1251299.93 1251299.93
125210 125210
12536.5019 12536.5019
1254data/projectiles/psi.txt 1254projectiles/psi.txt
1255-136.249 1255-136.249
1256289.545 1256289.545
125710 125710
12586.4999 12586.4999
1259data/projectiles/psi.txt 1259projectiles/psi.txt
1260-160 1260-160
1261277.128 1261277.128
126210 126210
12636.4979 12636.4979
1264data/projectiles/psi.txt 1264projectiles/psi.txt
1265-182.628 1265-182.628
1266262.768 1266262.768
126710 126710
12686.4959 12686.4959
1269data/projectiles/psi.txt 1269projectiles/psi.txt
1270-203.976 1270-203.976
1271246.564 1271246.564
127210 127210
12736.4939 12736.4939
1274data/projectiles/psi.txt 1274projectiles/psi.txt
1275-223.892 1275-223.892
1276228.631 1276228.631
127710 127710
12786.4919 12786.4919
1279data/projectiles/psi.txt 1279projectiles/psi.txt
1280-242.238 1280-242.238
1281209.095 1281209.095
128210 128210
12836.4899 12836.4899
1284data/projectiles/psi.txt 1284projectiles/psi.txt
1285-258.885 1285-258.885
1286188.091 1286188.091
128710 128710
12886.4879 12886.4879
1289data/projectiles/psi.txt 1289projectiles/psi.txt
1290-273.717 1290-273.717
1291165.769 1291165.769
129210 129210
12936.4859 12936.4859
1294data/projectiles/psi.txt 1294projectiles/psi.txt
1295-286.628 1295-286.628
1296142.283 1296142.283
129710 129710
12986.4839 12986.4839
1299data/projectiles/psi.txt 1299projectiles/psi.txt
1300-297.528 1300-297.528
1301117.8 1301117.8
130210 130210
13036.4819 13036.4819
1304data/projectiles/psi.txt 1304projectiles/psi.txt
1305-306.342 1305-306.342
130692.4902 130692.4902
130710 130710
13086.4799 13086.4799
1309data/projectiles/psi.txt 1309projectiles/psi.txt
1310-313.007 1310-313.007
131166.5317 131166.5317
131210 131210
13136.4779 13136.4779
1314data/projectiles/psi.txt 1314projectiles/psi.txt
1315-317.477 1315-317.477
131640.1066 131640.1066
131710 131710
13186.4759 13186.4759
1319data/projectiles/psi.txt 1319projectiles/psi.txt
1320-319.719 1320-319.719
132113.4002 132113.4002
132210 132210
13236.4739 13236.4739
1324data/projectiles/psi.txt 1324projectiles/psi.txt
1325-319.719 1325-319.719
1326-13.4002 1326-13.4002
132710 132710
13286.4719 13286.4719
1329data/projectiles/psi.txt 1329projectiles/psi.txt
1330-317.477 1330-317.477
1331-40.1066 1331-40.1066
133210 133210
13336.4699 13336.4699
1334data/projectiles/psi.txt 1334projectiles/psi.txt
1335-313.007 1335-313.007
1336-66.5317 1336-66.5317
133710 133710
13386.4679 13386.4679
1339data/projectiles/psi.txt 1339projectiles/psi.txt
1340-306.342 1340-306.342
1341-92.4902 1341-92.4902
134210 134210
13436.4659 13436.4659
1344data/projectiles/psi.txt 1344projectiles/psi.txt
1345-297.528 1345-297.528
1346-117.8 1346-117.8
134710 134710
13486.4639 13486.4639
1349data/projectiles/psi.txt 1349projectiles/psi.txt
1350-286.628 1350-286.628
1351-142.283 1351-142.283
135210 135210
13536.4619 13536.4619
1354data/projectiles/psi.txt 1354projectiles/psi.txt
1355-273.717 1355-273.717
1356-165.769 1356-165.769
135710 135710
13586.4599 13586.4599
1359data/projectiles/psi.txt 1359projectiles/psi.txt
1360-258.885 1360-258.885
1361-188.091 1361-188.091
136210 136210
13636.4579 13636.4579
1364data/projectiles/psi.txt 1364projectiles/psi.txt
1365-242.238 1365-242.238
1366-209.095 1366-209.095
136710 136710
13686.4559 13686.4559
1369data/projectiles/psi.txt 1369projectiles/psi.txt
1370-223.892 1370-223.892
1371-228.631 1371-228.631
137210 137210
13736.4539 13736.4539
1374data/projectiles/psi.txt 1374projectiles/psi.txt
1375-203.976 1375-203.976
1376-246.564 1376-246.564
137710 137710
13786.4519 13786.4519
1379data/projectiles/psi.txt 1379projectiles/psi.txt
1380-182.628 1380-182.628
1381-262.768 1381-262.768
138210 138210
13836.4499 13836.4499
1384data/projectiles/psi.txt 1384projectiles/psi.txt
1385-160 1385-160
1386-277.128 1386-277.128
138710 138710
13886.4479 13886.4479
1389data/projectiles/psi.txt 1389projectiles/psi.txt
1390-136.249 1390-136.249
1391-289.545 1391-289.545
139210 139210
13936.4459 13936.4459
1394data/projectiles/psi.txt 1394projectiles/psi.txt
1395-111.543 1395-111.543
1396-299.93 1396-299.93
139710 139710
13986.4439 13986.4439
1399data/projectiles/psi.txt 1399projectiles/psi.txt
1400-86.0543 1400-86.0543
1401-308.212 1401-308.212
140210 140210
14036.4419 14036.4419
1404data/projectiles/psi.txt 1404projectiles/psi.txt
1405-59.962 1405-59.962
1406-314.332 1406-314.332
140710 140710
14086.4399 14086.4399
1409data/projectiles/psi.txt 1409projectiles/psi.txt
1410-33.4491 1410-33.4491
1411-318.247 1411-318.247
141210 141210
14136.4379 14136.4379
1414data/projectiles/psi.txt 1414projectiles/psi.txt
1415-6.70157 1415-6.70157
1416-319.93 1416-319.93
141710 141710
14186.4359 14186.4359
1419data/projectiles/psi.txt 1419projectiles/psi.txt
142020.093 142020.093
1421-319.369 1421-319.369
142210 142210
14236.4339 14236.4339
1424data/projectiles/psi.txt 1424projectiles/psi.txt
142546.7466 142546.7466
1426-316.567 1426-316.567
142710 142710
14286.4319 14286.4319
1429data/projectiles/psi.txt 1429projectiles/psi.txt
143073.0723 143073.0723
1431-311.545 1431-311.545
143210 143210
14336.4299 14336.4299
1434data/projectiles/psi.txt 1434projectiles/psi.txt
143598.8854 143598.8854
1436-304.338 1436-304.338
143710 143710
14386.4279 14386.4279
1439data/projectiles/psi.txt 1439projectiles/psi.txt
1440124.005 1440124.005
1441-294.996 1441-294.996
144210 144210
14436.4259 14436.4259
1444data/projectiles/psi.txt 1444projectiles/psi.txt
1445148.255 1445148.255
1446-283.585 1446-283.585
144710 144710
14486.4239 14486.4239
1449data/projectiles/psi.txt 1449projectiles/psi.txt
1450171.465 1450171.465
1451-270.185 1451-270.185
145210 145210
14536.4219 14536.4219
1454data/projectiles/psi.txt 1454projectiles/psi.txt
1455193.472 1455193.472
1456-254.89 1456-254.89
145710 145710
14586.4199 14586.4199
1459data/projectiles/psi.txt 1459projectiles/psi.txt
1460214.122 1460214.122
1461-237.806 1461-237.806
146210 146210
14636.4179 14636.4179
1464data/projectiles/psi.txt 1464projectiles/psi.txt
1465233.27 1465233.27
1466-219.055 1466-219.055
146710 146710
14686.4159 14686.4159
1469data/projectiles/psi.txt 1469projectiles/psi.txt
1470250.782 1470250.782
1471-198.767 1471-198.767
147210 147210
14736.4139 14736.4139
1474data/projectiles/psi.txt 1474projectiles/psi.txt
1475266.535 1475266.535
1476-177.085 1476-177.085
147710 147710
14786.4119 14786.4119
1479data/projectiles/psi.txt 1479projectiles/psi.txt
1480280.418 1480280.418
1481-154.161 1481-154.161
148210 148210
14836.4099 14836.4099
1484data/projectiles/psi.txt 1484projectiles/psi.txt
1485292.335 1485292.335
1486-130.156 1486-130.156
148710 148710
14886.4079 14886.4079
1489data/projectiles/psi.txt 1489projectiles/psi.txt
1490302.2 1490302.2
1491-105.237 1491-105.237
149210 149210
14936.4059 14936.4059
1494data/projectiles/psi.txt 1494projectiles/psi.txt
1495309.947 1495309.947
1496-79.5808 1496-79.5808
149710 149710
14986.4039 14986.4039
1499data/projectiles/psi.txt 1499projectiles/psi.txt
1500315.519 1500315.519
1501-53.366 1501-53.366
150210 150210
15036.4019 15036.4019
1504data/projectiles/psi.txt 1504projectiles/psi.txt
1505318.878 1505318.878
1506-26.7769 1506-26.7769
diff --git a/data/weapons/novaspitter1.txt b/data/weapons/novaspitter1.txt
index a9adbfa..4b71143 100644
--- a/data/weapons/novaspitter1.txt
+++ b/data/weapons/novaspitter1.txt
@@ -1,36 +1,36 @@
1Novaspitter 1 1Novaspitter 1
2data/images/empty.bmp 2images/empty.bmp
38 38
41 41
50 50
66 66
70.8 70.8
80.0999 80.0999
9data/projectiles/spit.txt 9projectiles/spit.txt
10250 10250
110 110
120.8 120.8
130.0999 130.0999
14data/projectiles/spit.txt 14projectiles/spit.txt
15125 15125
16216.506 16216.506
170.8 170.8
180.0999 180.0999
19data/projectiles/spit.txt 19projectiles/spit.txt
20-125 20-125
21216.506 21216.506
220.8 220.8
230.0999 230.0999
24data/projectiles/spit.txt 24projectiles/spit.txt
25-250 25-250
263.06162e-14 263.06162e-14
270.8 270.8
280.0999 280.0999
29data/projectiles/spit.txt 29projectiles/spit.txt
30-125 30-125
31-216.506 31-216.506
320.8 320.8
330.0999 330.0999
34data/projectiles/spit.txt 34projectiles/spit.txt
35125 35125
36-216.506 36-216.506
diff --git a/data/weapons/spitter1.txt b/data/weapons/spitter1.txt
index 8866663..a73c3d2 100644
--- a/data/weapons/spitter1.txt
+++ b/data/weapons/spitter1.txt
@@ -1,11 +1,11 @@
1Spitter 1 1Spitter 1
2data/images/spitter1.bmp 2images/spitter1.bmp
32 32
41 41
50 50
61 61
70.6 70.6
80.55 80.55
9data/projectiles/spit.txt 9projectiles/spit.txt
100 100
11250 11250
diff --git a/data/weapons/spitter2.txt b/data/weapons/spitter2.txt
index be15295..7019a95 100644
--- a/data/weapons/spitter2.txt
+++ b/data/weapons/spitter2.txt
@@ -1,21 +1,21 @@
1Spitter 2 1Spitter 2
2data/images/spitter1.bmp 2images/spitter1.bmp
37 37
41 41
50 50
63 63
70.6 70.6
80 80
9data/projectiles/spit.txt 9projectiles/spit.txt
100 100
11250 11250
120.6 120.6
130.2 130.2
14data/projectiles/spit.txt 14projectiles/spit.txt
1540 1540
16240 16240
170.6 170.6
180.4 180.4
19data/projectiles/spit.txt 19projectiles/spit.txt
20-40 20-40
21240 21240
diff --git a/data/weapons/spitter3.txt b/data/weapons/spitter3.txt
index cf7ee3c..54c7630 100644
--- a/data/weapons/spitter3.txt
+++ b/data/weapons/spitter3.txt
@@ -1,41 +1,41 @@
1Spitter 3 1Spitter 3
2data/images/spitter3.bmp 2images/spitter3.bmp
315 315
41 41
50 50
67 67
72 72
80 80
9data/projectiles/bigspit.txt 9projectiles/bigspit.txt
100 100
11250 11250
120.8 120.8
130 130
14data/projectiles/spit.txt 14projectiles/spit.txt
1510 1510
16247 16247
170.8 170.8
180 180
19data/projectiles/spit.txt 19projectiles/spit.txt
20-10 20-10
21247 21247
220.8 220.8
230.16 230.16
24data/projectiles/spit.txt 24projectiles/spit.txt
25176.78 25176.78
26176.78 26176.78
270.8 270.8
280.32 280.32
29data/projectiles/spit.txt 29projectiles/spit.txt
30-176.78 30-176.78
31176.78 31176.78
320.8 320.8
330.48 330.48
34data/projectiles/spit.txt 34projectiles/spit.txt
35176.78 35176.78
36-176.78 36-176.78
370.8 370.8
380.64 380.64
39data/projectiles/spit.txt 39projectiles/spit.txt
40-176.78 40-176.78
41-176.78 41-176.78
diff --git a/data/weapons/weapon_template.txt b/data/weapons/weapon_template.txt
index b900b0c..c02b37a 100644
--- a/data/weapons/weapon_template.txt
+++ b/data/weapons/weapon_template.txt
@@ -1,16 +1,16 @@
1epic imbaweapon of massdestruction #name 1epic imbaweapon of massdestruction #name
2data/weapon89.bmp #filename of image of weapon 2images/weapon89.bmp #filename of image of weapon
30.5 #energyusage 30.5 #energyusage
41 #sellable 41 #sellable
510000 #cost (0 for auto (recommended)) 510000 #cost (0 for auto (recommended))
62 #number of distinguished Projectiles 62 #number of distinguished Projectiles
71 #cooldown 71 #cooldown
80.5 #startTimer 80.5 #startTimer
9data/projectile11.txt #path 9projectiles/projectile11.txt #path
100 #xSpeed 100 #xSpeed
11700 #-ySpeed 11700 #-ySpeed
125 #cooldown 125 #cooldown
130 #startTimer 130 #startTimer
14data/projectile14.txt #path 14projectiles/projectile14.txt #path
150 #xSpeed 150 #xSpeed
16500 #-ySpeed 16500 #-ySpeed
diff --git a/data/weapons/weapons.txt b/data/weapons/weapons.txt
index 5c08b65..15f1cc6 100644
--- a/data/weapons/weapons.txt
+++ b/data/weapons/weapons.txt
@@ -6,5 +6,5 @@ novaspitter1.txt
6beamer1.txt 6beamer1.txt
7beamer2.txt 7beamer2.txt
8fireball1.txt 8fireball1.txt
9inawaffe.txt 9Ubeamer.txt
10nova1.txt 10nova1.txt
diff --git a/engine.cpp b/engine.cpp
index 50b39ee..41d6a95 100644
--- a/engine.cpp
+++ b/engine.cpp
@@ -2,7 +2,7 @@
2 2
3UserShip* getShipWithName(string shipname) 3UserShip* getShipWithName(string shipname)
4{ 4{
5 string path = "data/ships/user/"; 5 string path = get_data_path() + "ships/user/";
6 ifstream ships; 6 ifstream ships;
7 ships.open((path + "userships.txt").c_str()); 7 ships.open((path + "userships.txt").c_str());
8 char workaround; 8 char workaround;
@@ -34,7 +34,7 @@ UserShip* getShipWithName(string shipname)
34 34
35Weapon* getWeaponWithName(string weaponname) 35Weapon* getWeaponWithName(string weaponname)
36{ 36{
37 string path = "data/weapons/"; 37 string path = get_data_path() + "weapons/";
38 ifstream weapons; 38 ifstream weapons;
39 weapons.open((path + "weapons.txt").c_str()); 39 weapons.open((path + "weapons.txt").c_str());
40 char workaround; 40 char workaround;
@@ -68,7 +68,7 @@ Account::Account()
68 gold = 0; 68 gold = 0;
69 highscore = 0; 69 highscore = 0;
70 ifstream ins; 70 ifstream ins;
71 string path = "data/ships/user/"; 71 string path = get_data_path() + "ships/user/";
72 ins.open((path + "userships.txt").c_str()); 72 ins.open((path + "userships.txt").c_str());
73 current = 0; 73 current = 0;
74 string shippath; 74 string shippath;
@@ -361,14 +361,14 @@ HUD::HUD(long long *nhighscore, double *nhp, double nhpmax, double *nenergy, dou
361 maxEnergy = nmaxEnergy; 361 maxEnergy = nmaxEnergy;
362 gold = ngold; 362 gold = ngold;
363 exp = nexp; 363 exp = nexp;
364 energyRaw = loadBMP("data/images/energy_raw2.bmp"); 364 energyRaw = loadBMP(get_data_path() + "images/energy_raw2.bmp");
365 SDL_Surface *bubbles = loadBMP("data/images/energy_bubbles3.bmp"); 365 SDL_Surface *bubbles = loadBMP(get_data_path() + "images/energy_bubbles3.bmp");
366 energyBubbles = new SlidingBackground(bubbles,0,-200); 366 energyBubbles = new SlidingBackground(bubbles,0,-200);
367 energyMasc = loadBMP("data/images/energy_masc2.bmp"); 367 energyMasc = loadBMP(get_data_path() + "images/energy_masc2.bmp");
368 hpRaw = loadBMP("data/images/hp_raw.bmp"); 368 hpRaw = loadBMP(get_data_path() + "images/hp_raw.bmp");
369 hpMasc = loadBMP("data/images/hp_masc2.bmp"); 369 hpMasc = loadBMP(get_data_path() + "images/hp_masc2.bmp");
370 background = loadBMP("data/images/hud_background.bmp"); 370 background = loadBMP(get_data_path() + "images/hud_background.bmp");
371 font = TTF_OpenFont("data/fonts/OpenSans-Semibold.ttf",12); 371 font = TTF_OpenFont((get_data_path() + "fonts/OpenSans-Semibold.ttf").c_str(),12);
372 if(font == NULL) 372 if(font == NULL)
373 { 373 {
374 cout << "Error loading font in HUD" << endl; 374 cout << "Error loading font in HUD" << endl;
@@ -683,15 +683,15 @@ vector<pair<double,vector<pair<double,double> > > > generateWave(int number, int
683 683
684/*structure of a LevelFile 684/*structure of a LevelFile
685IntroLevel #name 685IntroLevel #name
686data/images/bg_stars.bmp #path of background 686images/bg_stars.bmp #path of background
68730 #speed of background 68730 #speed of background
6881 #wether to randomize background position 6881 #wether to randomize background position
68960 #duration [s] 68960 #duration [s]
69012346543 #seed 69012346543 #seed
6912 #number of Shiptypes 6912 #number of Shiptypes
692data/tork_capsule.txt #path of Ship 692tork_capsule.txt #path of Ship
69350 #how many of them should spawn 69350 #how many of them should spawn
694data/tork_spacerocket.txt #path of Ship 694tork_spacerocket.txt #path of Ship
69512 #how many 69512 #how many
6961 #how many events shall happen 6961 #how many events shall happen
6970.5 #percentage of completion the event happens 6970.5 #percentage of completion the event happens
@@ -701,7 +701,7 @@ LevelGenerator::LevelGenerator(string filename, Account* user, SDL_Surface* nscr
701{ 701{
702 vector<int> shouldSpawn; 702 vector<int> shouldSpawn;
703 screen = nscreen; 703 screen = nscreen;
704 SDL_Surface* fakeScreen = loadBMP("data/images/game_screen.bmp"); 704 SDL_Surface* fakeScreen = loadBMP(get_data_path() + "images/game_screen.bmp");
705 current = 0; 705 current = 0;
706 completed = 0; 706 completed = 0;
707 event = false; 707 event = false;
@@ -716,7 +716,7 @@ LevelGenerator::LevelGenerator(string filename, Account* user, SDL_Surface* nscr
716 getline(ins, name); 716 getline(ins, name);
717 string backgroundPath; 717 string backgroundPath;
718 getline(ins, backgroundPath); 718 getline(ins, backgroundPath);
719 SDL_Surface* background = loadBMP(backgroundPath); 719 SDL_Surface* background = loadBMP(get_data_path() + backgroundPath);
720 OH = new ObjectHandler(user, fakeScreen,background); 720 OH = new ObjectHandler(user, fakeScreen,background);
721 UserShip *s = user->ships[user->current]; 721 UserShip *s = user->ships[user->current];
722 hud = new HUD(&OH->highscore, &s->hp, s->maxhp, &s->energy, s->maxEnergy, &OH->gold, user->getExpPointer()); 722 hud = new HUD(&OH->highscore, &s->hp, s->maxhp, &s->energy, s->maxEnergy, &OH->gold, user->getExpPointer());
@@ -735,7 +735,7 @@ LevelGenerator::LevelGenerator(string filename, Account* user, SDL_Surface* nscr
735 ins >> workaround; 735 ins >> workaround;
736 string shipFilename; 736 string shipFilename;
737 getline(ins, shipFilename); 737 getline(ins, shipFilename);
738 EnemyShip* enemy = new EnemyShip(workaround + shipFilename); 738 EnemyShip* enemy = new EnemyShip(get_data_path() + workaround + shipFilename);
739 prototypes.push_back(enemy); 739 prototypes.push_back(enemy);
740 for(int l = 0; l < (int) enemy->weapons.size(); ++l) 740 for(int l = 0; l < (int) enemy->weapons.size(); ++l)
741 for(int i = 0; i < (int) enemy->weapons[l]->sounds.size(); ++i) 741 for(int i = 0; i < (int) enemy->weapons[l]->sounds.size(); ++i)
diff --git a/enginecore.cpp b/enginecore.cpp
index 047511e..69bd0b7 100644
--- a/enginecore.cpp
+++ b/enginecore.cpp
@@ -128,8 +128,8 @@ Projectile::Projectile(const Projectile& P) : DObject((DObject) P)
128} 128}
129 129
130/*structure of a ProjectileFile 130/*structure of a ProjectileFile
131data/projectile2.bmp #path of the imagefile 131projectile2.bmp #path of the imagefile
132data/sounds/spit #path of the soundfile without n.wav for int n 132sounds/spit #path of the soundfile without n.wav for int n
13310 #damage 13310 #damage
1342 #armorPiercing 1342 #armorPiercing
1351.4142 #collisionSize 1351.4142 #collisionSize
@@ -144,14 +144,14 @@ Projectile::Projectile(string filename, vector<Mix_Chunk*>& sounds)
144 } 144 }
145 string imageFilename; 145 string imageFilename;
146 getline(ins, imageFilename); 146 getline(ins, imageFilename);
147 image = loadBMP(imageFilename); 147 image = loadBMP(get_data_path() + imageFilename);
148 string soundPath; 148 string soundPath;
149 getline(ins, soundPath); 149 getline(ins, soundPath);
150 bool good = true; 150 bool good = true;
151 long long files = 1; 151 long long files = 1;
152 while(good) 152 while(good)
153 { 153 {
154 string actualPath = soundPath + lltostr(files) + ".wav"; 154 string actualPath = get_data_path() + soundPath + lltostr(files) + ".wav";
155 Mix_Chunk* temp = NULL; 155 Mix_Chunk* temp = NULL;
156 temp = Mix_LoadWAV(actualPath.c_str()); 156 temp = Mix_LoadWAV(actualPath.c_str());
157 if(temp == NULL) 157 if(temp == NULL)
@@ -232,19 +232,19 @@ Weapon::Weapon(const Weapon& w):Item((Item) w)
232 232
233/* structure of a Weaponfile: 233/* structure of a Weaponfile:
234epic imbaweapon of massdestruction #name 234epic imbaweapon of massdestruction #name
235data/weapon89.bmp #filename of image of weapon 235weapon89.bmp #filename of image of weapon
2360.5 #energyusage 2360.5 #energyusage
2370 #sellable 2370 #sellable
23810000000 #cost 23810000000 #cost
2392 #number of distinguished Projectiles 2392 #number of distinguished Projectiles
2401 #cooldown 2401 #cooldown
2410.5 #startTimer 2410.5 #startTimer
242data/projectile11.txt #path 242projectiles/projectile11.txt #path
2430 #xSpeed 2430 #xSpeed
244700 #-ySpeed 244700 #-ySpeed
2455 #cooldown 2455 #cooldown
2460 #startTimer 2460 #startTimer
247data/projectile14.txt #path 247projectiles/projectile14.txt #path
2480 #xSpeed 2480 #xSpeed
249500 #-ySpeed 249500 #-ySpeed
250*/ 250*/
@@ -261,7 +261,7 @@ Weapon::Weapon(string filename)
261 string imageFilename; 261 string imageFilename;
262 getline(ins, imageFilename); 262 getline(ins, imageFilename);
263// cout << imageFilename << endl; 263// cout << imageFilename << endl;
264 image = loadBMP(imageFilename); 264 image = loadBMP(get_data_path() + imageFilename);
265 active = true; 265 active = true;
266 ins >> energyUsage; 266 ins >> energyUsage;
267 ins >> sellable; 267 ins >> sellable;
@@ -281,7 +281,7 @@ Weapon::Weapon(string filename)
281 ins >> workaround; 281 ins >> workaround;
282 getline(ins,projectileFilename); 282 getline(ins,projectileFilename);
283 vector<Mix_Chunk*> projectileSounds; 283 vector<Mix_Chunk*> projectileSounds;
284 prototypes.push_back(new Projectile(workaround + projectileFilename, projectileSounds)); 284 prototypes.push_back(new Projectile(get_data_path() + workaround + projectileFilename, projectileSounds));
285 ins >> prototypes[prototypes.size()-1]->xSpeed; 285 ins >> prototypes[prototypes.size()-1]->xSpeed;
286 ins >> prototypes[prototypes.size()-1]->ySpeed; 286 ins >> prototypes[prototypes.size()-1]->ySpeed;
287 prototypes[prototypes.size()-1]->ySpeed *= -1; 287 prototypes[prototypes.size()-1]->ySpeed *= -1;
@@ -497,7 +497,7 @@ EnemyShip::EnemyShip(const EnemyShip& s): Ship((Ship) s)
497 497
498/*structure of an EnemShipfile 498/*structure of an EnemShipfile
499Tork Spacerocket #name 499Tork Spacerocket #name
500data/images/tork_spacerocket.bmp #path of imagefile 500images/tork_spacerocket.bmp #path of imagefile
5017 #maxhp 5017 #maxhp
5025 #armor 5025 #armor
50350 #moveSpeed 50350 #moveSpeed
@@ -507,7 +507,7 @@ data/images/tork_spacerocket.bmp #path of imagefile
5073 #score 5073 #score
5081 #number of weapons 5081 #number of weapons
5090 -1 #relative Position of weapon 5090 -1 #relative Position of weapon
510data/fireball.txt #path of weapon 510weapons/fireball.txt #path of weapon
511*/ 511*/
512EnemyShip::EnemyShip(string filename) 512EnemyShip::EnemyShip(string filename)
513{ 513{
@@ -520,7 +520,7 @@ EnemyShip::EnemyShip(string filename)
520 getline(ins, name); 520 getline(ins, name);
521 string imagePath; 521 string imagePath;
522 getline(ins, imagePath); 522 getline(ins, imagePath);
523 image = loadBMP(imagePath); 523 image = loadBMP(get_data_path() + imagePath);
524 ins >> maxhp; 524 ins >> maxhp;
525 hp = maxhp; 525 hp = maxhp;
526 ins >> armor; 526 ins >> armor;
@@ -542,7 +542,7 @@ EnemyShip::EnemyShip(string filename)
542 ins >> workaround; 542 ins >> workaround;
543 string weaponpath; 543 string weaponpath;
544 getline(ins, weaponpath); 544 getline(ins, weaponpath);
545 weapons.push_back(new Weapon(workaround + weaponpath)); 545 weapons.push_back(new Weapon(get_data_path() + workaround + weaponpath));
546 weapons[weapons.size()-1]->mirror(); 546 weapons[weapons.size()-1]->mirror();
547 } 547 }
548 if(!(exp || gold || score)) 548 if(!(exp || gold || score))
@@ -715,7 +715,7 @@ vector<Projectile*> UserShip::frame(double time, SDL_Surface* screen)
715 715
716/*structure of an UserShipfile 716/*structure of an UserShipfile
717small Fighter #name 717small Fighter #name
718data/images/small_fighter.bmp #path of imagefile 718images/small_fighter.bmp #path of imagefile
719200 #cost 719200 #cost
7207 #maxhp 7207 #maxhp
72150 #armor 72150 #armor
@@ -727,10 +727,10 @@ data/images/small_fighter.bmp #path of imagefile
7272 #number of weapons 7272 #number of weapons
7284 4 #relative Position of weapon 7284 4 #relative Position of weapon
7293 #maxSize of attached weapon 7293 #maxSize of attached weapon
730data/fireball.txt #path of weapon 730fireball.txt #path of weapon
7314 4 #relative Position of weapon 7314 4 #relative Position of weapon
7323 #maxSize of attached weapon 7323 #maxSize of attached weapon
733data/fireball.txt #path of weapon 733fireball.txt #path of weapon
734*/ 734*/
735UserShip::UserShip(string filename) 735UserShip::UserShip(string filename)
736{ 736{
@@ -746,7 +746,7 @@ UserShip::UserShip(string filename)
746 getline(ins, name); 746 getline(ins, name);
747 string imagePath; 747 string imagePath;
748 getline(ins, imagePath); 748 getline(ins, imagePath);
749 image = loadBMP(imagePath); 749 image = loadBMP(get_data_path() + imagePath);
750 ins >> cost; 750 ins >> cost;
751 ins >> maxhp; 751 ins >> maxhp;
752 maxhp.name = "Hitpoints"; 752 maxhp.name = "Hitpoints";
@@ -783,7 +783,7 @@ UserShip::UserShip(string filename)
783 ins >> workaround; 783 ins >> workaround;
784 string weaponpath; 784 string weaponpath;
785 getline(ins, weaponpath); 785 getline(ins, weaponpath);
786 weapons.push_back(new Weapon(workaround + weaponpath)); 786 weapons.push_back(new Weapon(get_data_path() + workaround + weaponpath));
787 } 787 }
788 if(cost == 0) 788 if(cost == 0)
789 cost = round_beautiful(estimateValue(*this)); 789 cost = round_beautiful(estimateValue(*this));
diff --git a/enginecore.h b/enginecore.h
index 5ea49ae..00cc47a 100644
--- a/enginecore.h
+++ b/enginecore.h
@@ -10,6 +10,7 @@
10 10
11using namespace std; 11using namespace std;
12 12
13
13//a drawable object featering an image and a position 14//a drawable object featering an image and a position
14class DObject 15class DObject
15{ 16{
diff --git a/main.cpp b/main.cpp
index 738743d..305c67f 100644
--- a/main.cpp
+++ b/main.cpp
@@ -1,4 +1,11 @@
1#include "main.h" 1#include "main.h"
2
3
4string get_data_path()
5{
6 return DATA_PATH;
7}
8
2AbstractInteractive* getWeaponInfo(Weapon* w, SDL_Rect target, int textSize) 9AbstractInteractive* getWeaponInfo(Weapon* w, SDL_Rect target, int textSize)
3{ 10{
4 SDL_Rect tRect = target; 11 SDL_Rect tRect = target;
@@ -62,7 +69,7 @@ Shop::Shop(Account** nuser, int ngameMenu)
62 gameMenu = ngameMenu; 69 gameMenu = ngameMenu;
63 currentWeapon = 0; 70 currentWeapon = 0;
64 currentShip = 0; 71 currentShip = 0;
65 SDL_Surface* BG = loadBMP("data/images/bg_stars.bmp"); 72 SDL_Surface* BG = loadBMP(get_data_path() + "images/bg_stars.bmp");
66 SDL_Surface* mbg = SDL_CreateRGBSurface(0,400,400,32,0,0,0,0); 73 SDL_Surface* mbg = SDL_CreateRGBSurface(0,400,400,32,0,0,0,0);
67 SDL_FillRect(mbg,NULL,0x000102); 74 SDL_FillRect(mbg,NULL,0x000102);
68 SDL_SetColorKey(mbg,SDL_SRCCOLORKEY,0x000102); 75 SDL_SetColorKey(mbg,SDL_SRCCOLORKEY,0x000102);
@@ -88,7 +95,7 @@ Shop::Shop(Account** nuser, int ngameMenu)
88 95
89 //reading available weapons 96 //reading available weapons
90 ifstream ins; 97 ifstream ins;
91 string path = "data/weapons/"; 98 string path = get_data_path() + "weapons/";
92 ins.open((path+"weapons.txt").c_str()); 99 ins.open((path+"weapons.txt").c_str());
93 char workaround; 100 char workaround;
94 ins >> workaround; 101 ins >> workaround;
@@ -126,11 +133,11 @@ Shop::Shop(Account** nuser, int ngameMenu)
126 subRect.h = height; 133 subRect.h = height;
127 Scrollable* temps = new Scrollable(targetRect, tempm, subRect, false, true); 134 Scrollable* temps = new Scrollable(targetRect, tempm, subRect, false, true);
128 submenues.push_back(temps); 135 submenues.push_back(temps);
129 path = "data/ships/user/"; 136 path = get_data_path() + "ships/user/";
130 ins.open((path+"userships.txt").c_str()); 137 ins.open((path+"userships.txt").c_str());
131 ins >> workaround; 138 ins >> workaround;
132 vector<SDL_Surface*> shipPics; 139 vector<SDL_Surface*> shipPics;
133 Weapon empty = Weapon("data/weapons/empty.txt"); 140 Weapon empty = Weapon(get_data_path() + "weapons/empty.txt");
134 while(ins.good()) 141 while(ins.good())
135 { 142 {
136 string filepath; 143 string filepath;
@@ -270,7 +277,7 @@ void Shop::draw(SDL_Surface* screen)
270 textColor.r = 255; 277 textColor.r = 255;
271 textColor.g = 255; 278 textColor.g = 255;
272 textColor.b = 255; 279 textColor.b = 255;
273 TTF_Font *font = TTF_OpenFont("data/fonts/OpenSans-Semibold.ttf", 30); 280 TTF_Font *font = TTF_OpenFont((get_data_path() + "fonts/OpenSans-Semibold.ttf").c_str(), 30);
274 SDL_Surface* headline = NULL; 281 SDL_Surface* headline = NULL;
275 headline = TTF_RenderText_Solid(font, "Shop",textColor); 282 headline = TTF_RenderText_Solid(font, "Shop",textColor);
276 if(headline == NULL) 283 if(headline == NULL)
@@ -320,7 +327,7 @@ InventoryMenu::InventoryMenu(Account** nuser, int ngameMenu)
320 MY = 0; 327 MY = 0;
321 user = nuser; 328 user = nuser;
322 gameMenu = ngameMenu; 329 gameMenu = ngameMenu;
323 BG = new SlidingBackground(loadBMP("data/images/bg_stars.bmp"), 0, 100); 330 BG = new SlidingBackground(loadBMP(get_data_path() + "images/bg_stars.bmp"), 0, 100);
324 SDL_Rect backPos; 331 SDL_Rect backPos;
325 backPos.x = 0; 332 backPos.x = 0;
326 backPos.y = 460; 333 backPos.y = 460;
@@ -462,8 +469,8 @@ int InventoryMenu::handleEvents(SDL_Event event)
462 { 469 {
463 SDL_FreeSurface(cursor); 470 SDL_FreeSurface(cursor);
464 cursor = NULL; 471 cursor = NULL;
465 int x = event.button.x; 472// int x = event.button.x;
466 int y = event.button.y; 473// int y = event.button.y;
467 } 474 }
468 } 475 }
469 476
@@ -523,12 +530,12 @@ bool init(SDL_Surface*& screen)
523 530
524Menu* makeLoadGameMenu(SDL_Surface *screen) 531Menu* makeLoadGameMenu(SDL_Surface *screen)
525{ 532{
526 string bfile = "data/images/bg_stars.bmp"; 533 string bfile = get_data_path() + "images/bg_stars.bmp";
527 SDL_Surface *bg = loadBMP(bfile); 534 SDL_Surface *bg = loadBMP(bfile);
528 vector<string> ts; 535 vector<string> ts;
529 vector<int> ti; 536 vector<int> ti;
530 ifstream ins; 537 ifstream ins;
531 ins.open("save/saves.txt"); 538 ins.open((SAVE_PATH + "saves.txt").c_str());
532 char workaround; 539 char workaround;
533 ins >> workaround; 540 ins >> workaround;
534 int counter = 0; 541 int counter = 0;
@@ -551,7 +558,7 @@ Menu* makeLoadGameMenu(SDL_Surface *screen)
551 558
552Menu* makeMainMenu(SDL_Surface *screen) 559Menu* makeMainMenu(SDL_Surface *screen)
553{ 560{
554 string bfile = "data/images/bg_stars.bmp"; 561 string bfile = get_data_path() + "images/bg_stars.bmp";
555 SDL_Surface *bg = loadBMP(bfile); 562 SDL_Surface *bg = loadBMP(bfile);
556 vector<string> ts; 563 vector<string> ts;
557 ts.push_back("New Game"); 564 ts.push_back("New Game");
@@ -568,7 +575,7 @@ Menu* makeMainMenu(SDL_Surface *screen)
568 575
569Menu* makeGameMenu(SDL_Surface *screen) 576Menu* makeGameMenu(SDL_Surface *screen)
570{ 577{
571 string bfile = "data/images/bg_stars.bmp"; 578 string bfile = get_data_path() + "images/bg_stars.bmp";
572 SDL_Surface *bg = loadBMP(bfile); 579 SDL_Surface *bg = loadBMP(bfile);
573 vector<string> ts; 580 vector<string> ts;
574 ts.push_back("Missions"); 581 ts.push_back("Missions");
@@ -591,7 +598,7 @@ Menu* makeGameMenu(SDL_Surface *screen)
591 598
592Menu* makeLevelMenu(vector<string> levels, SDL_Surface *screen) 599Menu* makeLevelMenu(vector<string> levels, SDL_Surface *screen)
593{ 600{
594 string bfile = "data/images/bg_stars.bmp"; 601 string bfile = get_data_path() + "images/bg_stars.bmp";
595 SDL_Surface *bg = loadBMP(bfile); 602 SDL_Surface *bg = loadBMP(bfile);
596 vector<string> ts; 603 vector<string> ts;
597 vector<int> ti; 604 vector<int> ti;
@@ -619,7 +626,7 @@ GameHandler::GameHandler()
619 isGood = false; 626 isGood = false;
620 //reading available levels 627 //reading available levels
621 ifstream ins; 628 ifstream ins;
622 string path = "data/levels/"; 629 string path = get_data_path() + "levels/";
623 ins.open((path+"levels.txt").c_str()); 630 ins.open((path+"levels.txt").c_str());
624 char workaround; 631 char workaround;
625 ins >> workaround; 632 ins >> workaround;
@@ -638,7 +645,7 @@ GameHandler::GameHandler()
638 menus.push_back(makeLevelMenu(levelpaths,screen)); 645 menus.push_back(makeLevelMenu(levelpaths,screen));
639 menus.push_back(new Shop(&user, MENU | 1)); 646 menus.push_back(new Shop(&user, MENU | 1));
640 menus.push_back(makeLoadGameMenu(screen)); 647 menus.push_back(makeLoadGameMenu(screen));
641 SDL_Surface* bg = loadBMP("data/images/bg_stars.bmp"); 648 SDL_Surface* bg = loadBMP(get_data_path() + "images/bg_stars.bmp");
642 GetStringMenu* mt = new GetStringMenu("Enter your Nickname:", MENU | 0, LEVEL | 0, bg, screen); 649 GetStringMenu* mt = new GetStringMenu("Enter your Nickname:", MENU | 0, LEVEL | 0, bg, screen);
643 acname = &mt->s; 650 acname = &mt->s;
644 menus.push_back(mt); 651 menus.push_back(mt);
@@ -691,7 +698,7 @@ int GameHandler::game()
691 if(*acname != "") 698 if(*acname != "")
692 { 699 {
693 delete user; 700 delete user;
694 user = new Account("data/default/account.txt"); 701 user = new Account(get_data_path() + "default/account.txt");
695 user->name = *acname; 702 user->name = *acname;
696 menus[5]->refresh(); 703 menus[5]->refresh();
697 menus[3]->refresh(); 704 menus[3]->refresh();
@@ -710,7 +717,7 @@ int GameHandler::game()
710 if(state & LOAD) 717 if(state & LOAD)
711 { 718 {
712 ifstream ins; 719 ifstream ins;
713 ins.open("save/saves.txt"); 720 ins.open((SAVE_PATH + "saves.txt").c_str());
714 char workaround; 721 char workaround;
715 ins >> workaround; 722 ins >> workaround;
716 int counter = 0; 723 int counter = 0;
@@ -722,7 +729,7 @@ int GameHandler::game()
722 { 729 {
723 account = workaround + account; 730 account = workaround + account;
724 delete user; 731 delete user;
725 user = new Account("save/" + account + ".txt"); 732 user = new Account(SAVE_PATH + account + ".txt");
726 menus[3]->refresh(); 733 menus[3]->refresh();
727 menus[6]->refresh(); 734 menus[6]->refresh();
728 user->resetShips(); 735 user->resetShips();
@@ -802,6 +809,11 @@ int GameHandler::game()
802 809
803int main(int argc, char* args[]) 810int main(int argc, char* args[])
804{ 811{
812 if(getenv("RCADE_DATA") != NULL)
813 DATA_PATH = getenv("RCADE_DATA");
814
815 if(getenv("RCADE_SAVE") != NULL)
816 SAVE_PATH = getenv("RCADE_DATA");
805 GameHandler* GH = new GameHandler(); 817 GameHandler* GH = new GameHandler();
806 818
807// Account a = Account(); 819// Account a = Account();
diff --git a/main.h b/main.h
index 17c0e3c..207e05e 100644
--- a/main.h
+++ b/main.h
@@ -15,6 +15,8 @@ using namespace std;
15#define GAME_QUIT (1 << 28) 15#define GAME_QUIT (1 << 28)
16 16
17 17
18string SAVE_PATH = "save/";
19string DATA_PATH = "data/";
18const int SCREEN_WIDTH = 500; 20const int SCREEN_WIDTH = 500;
19const int SCREEN_HEIGHT = 500; 21const int SCREEN_HEIGHT = 500;
20const int SCREEN_BPP = 32; 22const int SCREEN_BPP = 32;
diff --git a/save/default account.txt b/save/default account.txt
deleted file mode 100644
index d5eda86..0000000
--- a/save/default account.txt
+++ /dev/null
@@ -1,40 +0,0 @@
1Start-Account
20
30
41
5Small Fighter
6Hitpoints
710
820
91
100
11Armor
1250
1320
141
150
16Battery
1710
1820
191
200
21Generator
222
2320
241
250
26Acceleration
27300
2820
291
300
31Max Speed
32200
3320
341
350
362
37Beamer 2
38empty Slot
390
400
diff --git a/util.h b/util.h
index acabdcb..4d33ba2 100644
--- a/util.h
+++ b/util.h
@@ -11,6 +11,7 @@
11 11
12using namespace std; 12using namespace std;
13 13
14string get_data_path();
14//splits at '\n' and ' ' 15//splits at '\n' and ' '
15vector<vector<string> > splitString(string s); 16vector<vector<string> > splitString(string s);
16 17