1 /*
2     SPDX-FileCopyrightText: 1998-2001 Andreas Zehender <az@azweb.de>
3 
4     SPDX-License-Identifier: GPL-2.0-or-later
5 */
6 
7 #ifndef __SP_STRUCTS_H
8 #define __SP_STRUCTS_H
9 
10 #include <KLocalizedString>
11 
12 struct SConfig
13 {
14    double gamespeed,gravity,acc,energyNeed,sunEnergy,rotationSpeed,
15       mineActivateTime,mineFuel,shotSpeed,shotEnergyNeed,mineEnergyNeed,
16       rotationEnergyNeed,startPosX,startPosY,startVelX,startVelY,
17       bulletLifeTime,mineReloadTime,bulletReloadTime;
18    unsigned bulletDamage,shipDamage,mineDamage,maxBullets,maxMines;
19    double powerupLifeTime, powerupRefreshTime;
20    double powerupEnergyAmount;
21    unsigned powerupShieldAmount;
22 };
23 
24 bool operator!=(const SConfig &s1, const SConfig &s2);
25 
26 #define predefinedConfigNum 4
27 const SConfig predefinedConfig[]={{1.0, 2200.0, 0.2, 1.0, 9000.0, 1.0,
28                                    15.0, 65.0, 3.0, 10.0, 5.0,
29                                    0.2, -130.0, -100.0, 3.0, -1.7,
30                                    500.0,10.0,10.0,
31                                    20, 50, 30, 5, 3,
32                                    400.0, 800.0, 50, 30},
33                                   {1.0, 2200.0, 0.2, 1.0, 9000.0, 1.0,
34                                    15.0, 40.0, 5.0, 20.0, 10.0,
35                                    0.2, -50.0, -150.0, 3.5, 0.9,
36                                    500.0,10.0,10.0,
37                                    20, 50, 30, 6, 2,
38                                    400.0, 800.0, 50, 30},
39                                   {1.3, 2200.0, 0.2, 1.0, 13000.0, 1.0,
40                                    15.0, 50.0, 4.0, 10.0, 10.0,
41                                    0.2, -50.0, -150.0, 3.2, -0.9,
42                                    400.0,10.0,10.0,
43                                    20, 50, 30, 7, 5,
44                                    400.0, 800.0, 50, 30},
45                                   {1.0, 2200.0, 0.2, 1.0, 9000.0, 1.0,
46                                    15.0, 40.0, 5.0, 60.0, 50.0,
47                                    0.4, -50.0, -170.0, 3.0, -0.5,
48                                    500.0,10.0,10.0,
49                                    20, 50, 30, 5, 3,
50                                    400.0, 800.0, 50, 30}};
51 const char predefinedConfigName[predefinedConfigNum][15]=
52 {I18N_NOOP("Default"),I18N_NOOP("Bullet"),I18N_NOOP("Chaos"),I18N_NOOP("Lack of Energy")};
53 
54 // This is because on Solaris, sun is defined (it's the vendor)
55 #ifdef sun
56 #undef sun
57 #endif
58 
59 struct AiSprite
60 {
61    double x,y,dx,dy;
62    bool sun, border;
63 };
64 
65 #endif
66