2008-06-24 03:17:31 -07:00
|
|
|
#include "ShipType.h"
|
2008-11-24 13:05:28 -08:00
|
|
|
#include "Serializer.h"
|
2008-06-24 03:17:31 -07:00
|
|
|
|
2009-06-23 13:22:27 -07:00
|
|
|
const char *ShipType::gunmountNames[GUNMOUNT_MAX] = {
|
|
|
|
"Front", "Rear" };
|
|
|
|
|
2008-06-26 08:50:27 -07:00
|
|
|
const ShipType ShipType::types[] = {
|
2008-06-24 03:17:31 -07:00
|
|
|
{
|
2009-07-07 10:26:19 -07:00
|
|
|
"Swordfish Starfighter",
|
|
|
|
"66",
|
|
|
|
{ 2e6,-2e6,1e6,-1e6,-1e6,1e6 },
|
|
|
|
1e7,
|
|
|
|
{
|
|
|
|
{ vector3f(0,-0.5,0), vector3f(0,0,-1) },
|
|
|
|
{ vector3f(0,0,0), vector3f(0,0,1) }
|
|
|
|
},
|
2009-11-09 06:33:55 -08:00
|
|
|
{ 20, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
|
2009-11-07 07:37:55 -08:00
|
|
|
20, 20, 4000000,
|
2009-10-19 06:07:27 -07:00
|
|
|
Equip::DRIVE_CLASS1,
|
2009-07-07 10:26:19 -07:00
|
|
|
}, {
|
2008-06-26 08:50:27 -07:00
|
|
|
// besides running a wicked corporatist regime in the
|
|
|
|
// sirius system, Sirius corporation make a range of
|
|
|
|
// lovely starships
|
2010-01-12 07:21:56 -08:00
|
|
|
"Sirius Interdictor", "interdictor",
|
2009-11-07 07:37:55 -08:00
|
|
|
{ 2e7,-2e7,1e7,-1e7,-1e7,1e7 },
|
2009-07-07 04:02:43 -07:00
|
|
|
4e7,
|
2008-06-26 08:50:27 -07:00
|
|
|
{
|
2009-02-02 04:39:12 -08:00
|
|
|
{ vector3f(0,-0.5,0), vector3f(0,0,-1) },
|
|
|
|
{ vector3f(0,-0.5,0), vector3f(0,0,1) }
|
2008-06-27 11:16:04 -07:00
|
|
|
},
|
2009-11-09 06:33:55 -08:00
|
|
|
{ 90, 1, 2, 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
|
2009-11-07 07:37:55 -08:00
|
|
|
90, 100, 16000000,
|
2009-10-19 06:07:27 -07:00
|
|
|
Equip::DRIVE_CLASS3,
|
2008-06-26 08:50:27 -07:00
|
|
|
}, {
|
|
|
|
// john - you should pick names yourself or this happens
|
|
|
|
"Ladybird Starfighter",
|
2010-01-12 07:21:56 -08:00
|
|
|
"ladybird",
|
2009-02-02 04:39:12 -08:00
|
|
|
{ 2e6,-2e6,1e6,-1e6,-1e6,1e6 },
|
2008-06-28 12:08:33 -07:00
|
|
|
1e7,
|
2008-06-26 08:50:27 -07:00
|
|
|
{
|
2009-02-02 04:39:12 -08:00
|
|
|
{ vector3f(0,-0.5,0), vector3f(0,0,-1) },
|
|
|
|
{ vector3f(0,0,0), vector3f(0,0,1) }
|
2008-06-27 11:16:04 -07:00
|
|
|
},
|
2009-11-09 06:33:55 -08:00
|
|
|
{ 60, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
|
2009-11-07 07:37:55 -08:00
|
|
|
60, 60, 8700000,
|
2009-10-19 06:07:27 -07:00
|
|
|
Equip::DRIVE_CLASS2,
|
2009-06-20 03:41:14 -07:00
|
|
|
}, {
|
|
|
|
"Taipan",
|
2010-01-12 07:21:56 -08:00
|
|
|
"ladybird",
|
2009-06-20 03:41:14 -07:00
|
|
|
{ 4e6,-4e6,1e6,-1e6,-1e6,1e6 },
|
|
|
|
1e7,
|
|
|
|
{
|
|
|
|
{ vector3f(0,-0.5,0), vector3f(0,0,-1) },
|
|
|
|
{ vector3f(0,0,0), vector3f(0,0,1) }
|
|
|
|
},
|
2009-11-09 06:33:55 -08:00
|
|
|
{ 240, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
|
2009-11-07 07:37:55 -08:00
|
|
|
240, 200, 56000000,
|
2009-10-19 06:07:27 -07:00
|
|
|
Equip::DRIVE_CLASS4,
|
2009-07-07 10:26:19 -07:00
|
|
|
}, {
|
|
|
|
"Walrus",
|
2010-01-12 07:21:56 -08:00
|
|
|
"walrus",
|
2009-07-07 10:26:19 -07:00
|
|
|
{ 12e6,-12e6,4e6,-4e6,-4e6,4e6 },
|
|
|
|
1e7,
|
|
|
|
{
|
|
|
|
{ vector3f(0,-0.5,0), vector3f(0,0,-1) },
|
|
|
|
{ vector3f(0,0,0), vector3f(0,0,1) }
|
|
|
|
},
|
2009-11-09 06:33:55 -08:00
|
|
|
{ 320, 1, 1, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
|
2009-11-07 07:37:55 -08:00
|
|
|
320, 300, 35000000,
|
2009-10-19 06:07:27 -07:00
|
|
|
Equip::DRIVE_CLASS5,
|
2008-06-26 08:50:27 -07:00
|
|
|
}, {
|
|
|
|
"Flowerfairy Heavy Trader",
|
2010-01-12 07:21:56 -08:00
|
|
|
"flowerfairy_heavy_trader",
|
2009-11-07 07:37:55 -08:00
|
|
|
{ 1e5,-1e5,1e5,-1e5,-1e5,1e5 },
|
2008-06-28 12:08:33 -07:00
|
|
|
1e7,
|
2008-06-24 03:17:31 -07:00
|
|
|
{
|
2009-02-02 04:39:12 -08:00
|
|
|
{ vector3f(0,-0.5,0), vector3f(0,0,-1) },
|
|
|
|
{ vector3f(0,0,0), vector3f(0,0,1) }
|
2008-06-27 11:16:04 -07:00
|
|
|
},
|
2009-11-09 06:33:55 -08:00
|
|
|
{ 500, 1, 2, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
|
2009-11-07 07:37:55 -08:00
|
|
|
500, 500, 55000000,
|
2009-10-19 06:07:27 -07:00
|
|
|
Equip::DRIVE_CLASS6,
|
2009-10-29 08:45:19 -07:00
|
|
|
}, {
|
2009-10-30 06:27:29 -07:00
|
|
|
0,
|
|
|
|
"missile",
|
|
|
|
{ 0, -4e5, 0, 0, 0, 0 },
|
|
|
|
0, {},
|
|
|
|
{ 0, 0, 1, 0 },
|
|
|
|
10, 1, 100
|
|
|
|
}, {
|
|
|
|
0,
|
2009-10-29 08:45:19 -07:00
|
|
|
"missile",
|
|
|
|
{ 1e5, -2e5, 0, 0, 0, 0 },
|
|
|
|
2e4, {},
|
|
|
|
{ 0, 0, 1, 0 },
|
|
|
|
10, 1, 100
|
|
|
|
}, {
|
2009-10-30 06:27:29 -07:00
|
|
|
0,
|
2009-10-29 08:45:19 -07:00
|
|
|
"missile",
|
|
|
|
{ 1.5e5, -3e5, 0, 0, 0, 0 },
|
|
|
|
2e4, {},
|
|
|
|
{ 0, 0, 1, 0 },
|
|
|
|
10, 1, 100
|
|
|
|
}, {
|
2009-10-30 06:27:29 -07:00
|
|
|
0,
|
2009-10-29 08:45:19 -07:00
|
|
|
"missile",
|
|
|
|
{ 2.0e5, -4e5, 0, 0, 0, 0 },
|
|
|
|
2e4, {},
|
|
|
|
{ 0, 0, 1, 0 },
|
|
|
|
10, 1, 100
|
2008-06-24 03:17:31 -07:00
|
|
|
}
|
|
|
|
};
|
|
|
|
|
2008-11-24 13:05:28 -08:00
|
|
|
void EquipSet::Save()
|
|
|
|
{
|
|
|
|
using namespace Serializer::Write;
|
2009-11-08 10:27:38 -08:00
|
|
|
wr_int(Equip::SLOT_MAX);
|
2008-11-24 13:05:28 -08:00
|
|
|
for (int i=0; i<Equip::SLOT_MAX; i++) {
|
2009-11-08 10:27:38 -08:00
|
|
|
wr_int(equip[i].size());
|
2008-11-24 13:05:28 -08:00
|
|
|
for (unsigned int j=0; j<equip[i].size(); j++) {
|
|
|
|
wr_int(static_cast<int>(equip[i][j]));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Should have initialised with EquipSet(ShipType::Type) first
|
|
|
|
*/
|
|
|
|
void EquipSet::Load()
|
|
|
|
{
|
|
|
|
using namespace Serializer::Read;
|
2009-11-08 10:27:38 -08:00
|
|
|
const int numSlots = rd_int();
|
|
|
|
assert(numSlots <= Equip::SLOT_MAX);
|
|
|
|
for (int i=0; i<numSlots; i++) {
|
|
|
|
const int numItems = rd_int();
|
|
|
|
assert(numItems <= (signed)equip[i].size());
|
|
|
|
for (int j=0; j<numItems; j++) {
|
2008-11-24 13:05:28 -08:00
|
|
|
equip[i][j] = static_cast<Equip::Type>(rd_int());
|
|
|
|
}
|
|
|
|
}
|
2009-10-30 16:22:10 -07:00
|
|
|
onChange.emit();
|
2008-11-24 13:05:28 -08:00
|
|
|
}
|
|
|
|
|