gcblue-commits Mailing List for Global Conflict Blue (Page 8)
Status: Alpha
Brought to you by:
ddcforge
You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(6) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(112) |
Feb
(106) |
Mar
(88) |
Apr
(111) |
May
(53) |
Jun
(60) |
Jul
(58) |
Aug
(61) |
Sep
(45) |
Oct
(31) |
Nov
(71) |
Dec
(70) |
2005 |
Jan
(33) |
Feb
(57) |
Mar
(98) |
Apr
(47) |
May
(53) |
Jun
(79) |
Jul
(79) |
Aug
|
Sep
(33) |
Oct
(1) |
Nov
(20) |
Dec
(64) |
2006 |
Jan
(20) |
Feb
(1) |
Mar
(43) |
Apr
(11) |
May
(8) |
Jun
(23) |
Jul
|
Aug
(28) |
Sep
(58) |
Oct
(25) |
Nov
(47) |
Dec
(70) |
From: Dewitt C. <ddc...@us...> - 2006-09-13 23:49:39
|
Update of /cvsroot/gcblue/gcb_wx/src/graphics In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv3651/src/graphics Modified Files: tcPopupControl.cpp Log Message: Index: tcPopupControl.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/graphics/tcPopupControl.cpp,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** tcPopupControl.cpp 17 Aug 2006 01:28:04 -0000 1.16 --- tcPopupControl.cpp 13 Sep 2006 23:49:35 -0000 1.17 *************** *** 41,46 **** void tcPopupControl::Draw() { - static int drawCount = 0; - if (!mbActive) return; --- 41,44 ---- *************** *** 67,75 **** - void tcPopupControl::UpdateRegions() - { - - } - void tcPopupControl::InitMenu() --- 65,68 ---- *************** *** 123,126 **** --- 116,130 ---- } + void tcPopupControl::SetActive(bool abActive) + { + if (abActive == false) + { + if (mpMenu != 0) mpMenu->ClearSelected(); + if (mpPanel != 0) mpPanel->ClearSelected(); + } + + tc3DWindow::SetActive(abActive); + } + void tcPopupControl::SetBaseRenderBin(int n) { *************** *** 201,212 **** return true; } SetActive(true); wxWindow::Raise(); mpointUpperLeft = point; ! // MoveWindow(point.x,point.y - (mpMenu->GetSize()-1)*mnItemHeight); // adjust mrectWindow to new popup menu location MoveWindow(point.x, point.y); - mbActive = true; SetMenu(); ! UpdateRegions(); return true; } --- 205,219 ---- return true; } + + drawCount = -1; // so draw occurs next frame + SetActive(true); wxWindow::Raise(); mpointUpperLeft = point; ! mpointMouse = point; ! MoveWindow(point.x, point.y); SetMenu(); ! return true; } *************** *** 321,325 **** const wxPoint& pos, const wxSize& size, const wxString& name) : ! tc3DWindow(parent, pos, size, name) { mpointUpperLeft.x = 250; --- 328,333 ---- const wxPoint& pos, const wxSize& size, const wxString& name) : ! tc3DWindow(parent, pos, size, name), ! drawCount(0) { mpointUpperLeft.x = 250; |
From: Dewitt C. <ddc...@us...> - 2006-09-13 23:49:38
|
Update of /cvsroot/gcblue/gcb_wx/docs In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv3651/docs Modified Files: CHANGES.txt Log Message: Index: CHANGES.txt =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/docs/CHANGES.txt,v retrieving revision 1.56 retrieving revision 1.57 diff -C2 -d -r1.56 -r1.57 *** CHANGES.txt 6 Sep 2006 01:28:20 -0000 1.56 --- CHANGES.txt 13 Sep 2006 23:49:35 -0000 1.57 *************** *** 3,6 **** --- 3,10 ---- 0.8.3 --------------------------------------------------------------------- + + - Fixed flicker that occurred sometimes when opening popup menu + + *** 2006-09-05 *** - Added feature to gray loadout automation buttons for loadouts that are |
From: Dewitt C. <ddc...@us...> - 2006-09-13 23:49:38
|
Update of /cvsroot/gcblue/gcb_wx/include/graphics In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv3651/include/graphics Modified Files: tcPopupControl.h Log Message: Index: tcPopupControl.h =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/include/graphics/tcPopupControl.h,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** tcPopupControl.h 22 Mar 2006 01:23:29 -0000 1.6 --- tcPopupControl.h 13 Sep 2006 23:49:35 -0000 1.7 *************** *** 68,71 **** --- 68,72 ---- void AttachPythonInterface(tcSimPythonInterface *apIF) {mpPythonInterface = apIF;} virtual void SetBaseRenderBin(int n); + virtual void SetActive(bool abActive); void SetMenu(teMenuMode mode); void SetMenu(); ///< this shouldn't be an override? *************** *** 74,78 **** void OnMouseMove(wxMouseEvent& event); void Draw(); - void UpdateRegions(); void InitMenu(); --- 75,78 ---- *************** *** 95,99 **** wxRect mrectMenuExtent; ! bool mbShowDebug; bool mbRebuildMenu; // set true to rebuild menu before draw --- 95,99 ---- wxRect mrectMenuExtent; ! int drawCount; bool mbShowDebug; bool mbRebuildMenu; // set true to rebuild menu before draw |
From: Dewitt C. <ddc...@us...> - 2006-09-06 01:28:23
|
Update of /cvsroot/gcblue/gcb_wx/src/graphics In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv14752/src/graphics Modified Files: tcButton.cpp tcPlatformGui.cpp tcXmlWindow.cpp Log Message: Index: tcXmlWindow.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/graphics/tcXmlWindow.cpp,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** tcXmlWindow.cpp 27 Mar 2006 01:08:17 -0000 1.9 --- tcXmlWindow.cpp 6 Sep 2006 01:28:20 -0000 1.10 *************** *** 152,155 **** --- 152,171 ---- } + tcButton* tcXmlWindow::GetButtonWithCommand(long command) + { + for (unsigned int n=0; n<children.size(); n++) + { + if (tcButton* button = dynamic_cast<tcButton*>(children[n])) + { + if (button->GetCommand() == command) + { + return button; + } + } + } + + return 0; + } + /** * This allows a window to change the caption of a button based on game state Index: tcButton.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/graphics/tcButton.cpp,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** tcButton.cpp 5 Sep 2006 01:04:25 -0000 1.25 --- tcButton.cpp 6 Sep 2006 01:28:20 -0000 1.26 *************** *** 57,61 **** // image based button drawing osg::Texture2D* image = isButtonOn ? onImage.get() : offImage.get(); ! if (isMouseOver) { DrawMouseOverCaption(); --- 57,61 ---- // image based button drawing osg::Texture2D* image = isButtonOn ? onImage.get() : offImage.get(); ! if (isMouseOver && isInteractive) { DrawMouseOverCaption(); *************** *** 89,93 **** textColor.set(0, 0, 0, backgroundAlpha); } ! else if (isMouseOver) { backgroundColor = overColor; --- 89,93 ---- textColor.set(0, 0, 0, backgroundAlpha); } ! else if (isMouseOver && isInteractive) { backgroundColor = overColor; *************** *** 154,157 **** --- 154,159 ---- void tcButton::OnEnterWindow(wxMouseEvent& event) { + if (!isInteractive) return; + isMouseOver = true; *************** *** 168,171 **** --- 170,175 ---- void tcButton::OnLButtonDown(wxMouseEvent& event) { + if (!isInteractive) return; + // send command event wxCommandEvent cmd(wxEVT_COMMAND_BUTTON_CLICKED, command) ; *************** *** 181,184 **** --- 185,190 ---- void tcButton::OnLeaveWindow(wxMouseEvent& event) { + if (!isInteractive) return; + isMouseOver = false; *************** *** 236,239 **** --- 242,251 ---- } + void tcButton::SetInteractive(bool state) + { + isInteractive = state; + } + + void tcButton::SetMouseOverCaption(const std::string& s) *************** *** 259,262 **** --- 271,275 ---- command(-1), isButtonOn(false), + isInteractive(true), isMouseOver(false), soundEffect(""), *************** *** 392,395 **** --- 405,409 ---- command(-1), isButtonOn(false), + isInteractive(true), isMouseOver(false), soundEffect(""), Index: tcPlatformGui.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/graphics/tcPlatformGui.cpp,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** tcPlatformGui.cpp 5 Sep 2006 01:04:25 -0000 1.11 --- tcPlatformGui.cpp 6 Sep 2006 01:28:20 -0000 1.12 *************** *** 43,46 **** --- 43,48 ---- #include "tcStores.h" #include "tcFlightPortGui.h" + #include "tcButton.h" + #include <osg/Geometry> *************** *** 59,77 **** ! ! ! void tcPlatformGui::OnLoadoutCommand(wxCommandEvent& event) { - std::string loadoutType; - switch (event.GetId()) - { - case 10: loadoutType = "Empty"; break; - case 11: loadoutType = "AAW"; break; - case 12: loadoutType = "ASuW"; break; - case 13: loadoutType = "ASW"; break; - case 14: loadoutType = "Strike"; break; - default: loadoutType = "Error"; break; - } - tcPlatformObject* platform = GetPlatform(); tcPlatformObject* host = 0; --- 61,69 ---- ! /** ! * @return first stores that has at least one compatible item with platform launcher (or 0 if none found) ! */ ! tcStores* tcPlatformGui::GetLoadoutStores() { tcPlatformObject* platform = GetPlatform(); tcPlatformObject* host = 0; *************** *** 88,92 **** wxASSERT(platform != 0); wxASSERT(host != 0); ! size_t nStores = host->GetMagazineCount(); for (size_t n=0; n<nStores; n++) --- 80,84 ---- wxASSERT(platform != 0); wxASSERT(host != 0); ! size_t nStores = host->GetMagazineCount(); for (size_t n=0; n<nStores; n++) *************** *** 97,106 **** if (mag->HasStoresForThisObject(platform)) { ! mag->AddAutomationOp(loadoutType, platform); ! return; } } ! fprintf(stderr, "tcPlatformGui::OnLoadoutCommand -- No compatible magazine found\n"); } --- 89,122 ---- if (mag->HasStoresForThisObject(platform)) { ! return mag; } } ! return 0; ! } ! ! void tcPlatformGui::OnLoadoutCommand(wxCommandEvent& event) ! { ! std::string loadoutType; ! switch (event.GetId()) ! { ! case 10: loadoutType = "Empty"; break; ! case 11: loadoutType = "AAW"; break; ! case 12: loadoutType = "ASuW"; break; ! case 13: loadoutType = "ASW"; break; ! case 14: loadoutType = "Strike"; break; ! default: loadoutType = "Error"; break; ! } ! ! tcPlatformObject* platform = GetPlatform(); ! tcStores* mag = GetLoadoutStores(); ! if (mag != 0) ! { ! mag->AddAutomationOp(loadoutType, platform); ! } ! else ! { ! fprintf(stderr, "tcPlatformGui::OnLoadoutCommand -- No compatible magazine found\n"); ! } } *************** *** 165,168 **** --- 181,186 ---- UpdateGui(); + UpdateLoadoutButtons(); + bool blinkOn = tcTime::Get()->Get30HzCount() % 30 < 15; *************** *** 711,714 **** --- 729,782 ---- /** + * For gui mode with auto loadout (air object), update + * the button state to disallow clicking of loadout types that + * are not available for this platform + */ + void tcPlatformGui::UpdateLoadoutButtons() + { + tcPlatformObject* platform = GetPlatform(); + tcAirObject* air = dynamic_cast<tcAirObject*>(platform); + if (air == 0) return; + + tcStores* mag = GetLoadoutStores(); + if (mag == 0) return; + + const osg::Vec4 off_fade(0.5, 0.5, 0.5, 0.5); + const osg::Vec4 over_fade(0.5, 0.5, 0.5, 0.5); + const osg::Vec4 on_fade(0.5, 0.5, 0.5, 0.5); + + const osg::Vec4 off_avail(0, 0, 0, 0.8); + const osg::Vec4 over_avail(0.4, 1.0, 0.4, 0.8); + const osg::Vec4 on_avail(1.0, 1.0, 1.0, 0.8); + + + + const long cmd_list[4] = {11, 12, 13, 14}; + const int tgt_flags[4] = {AIR_TARGET, SURFACE_TARGET, SUBSURFACE_TARGET, LAND_TARGET}; + int availableTargetFlags = mag->GetAvailableTargetFlags(platform); + + for (size_t n=0; n<4; n++) + { + if (tcButton* button = GetButtonWithCommand(cmd_list[n])) + { + bool available = (availableTargetFlags & tgt_flags[n]) != 0; + button->SetInteractive(available); + + if (available) + { + button->SetFillColors(off_avail, over_avail, on_avail); + } + else + { + button->SetFillColors(off_fade, over_fade, on_fade); + } + } + } + + + + } + + /** * */ |
From: Dewitt C. <ddc...@us...> - 2006-09-06 01:28:23
|
Update of /cvsroot/gcblue/gcb_wx/src/sim In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv14752/src/sim Modified Files: tcStores.cpp Log Message: Index: tcStores.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/sim/tcStores.cpp,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** tcStores.cpp 5 Sep 2006 01:04:25 -0000 1.12 --- tcStores.cpp 6 Sep 2006 01:28:20 -0000 1.13 *************** *** 1225,1228 **** --- 1225,1230 ---- } + obj->SetLoadoutTag(type); + return true; } *************** *** 1285,1288 **** --- 1287,1292 ---- } + obj->SetLoadoutTag("Empty"); + return true; } *************** *** 1349,1352 **** --- 1353,1394 ---- } + /** + * @return bitwise OR of all target flags from weapons available in stores that + * are compatible with child's launchers + */ + int tcStores::GetAvailableTargetFlags(tcGameObject* child) + { + tcPlatformObject* obj = dynamic_cast<tcPlatformObject*>(GetChildOrParent(child)); + + // check that magazine is accessible (child hasn't taken off yet) + if (obj == 0) return 0; + + size_t nLaunchers = obj->GetLauncherCount(); + + int netTargetFlags = 0; + + for (size_t n=0; n<nLaunchers; n++) + { + tcLauncher* launcher = obj->GetLauncher(n); + + size_t nTypes = launcher->GetCompatibleCount(); + for (size_t k=0; k<nTypes; k++) + { + std::string type = launcher->GetCompatibleName(k); + size_t quantity = CurrentItemQuantity(type); + if (quantity > 0) + { + float range_km; + int targetFlags; + GetWeaponInfo(type, range_km, targetFlags); + + netTargetFlags |= targetFlags; + } + } + } + + return netTargetFlags; + } + /** |
From: Dewitt C. <ddc...@us...> - 2006-09-06 01:28:23
|
Update of /cvsroot/gcblue/gcb_wx/include/sim In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv14752/include/sim Modified Files: tcStores.h Log Message: Index: tcStores.h =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/include/sim/tcStores.h,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** tcStores.h 5 Sep 2006 01:04:24 -0000 1.9 --- tcStores.h 6 Sep 2006 01:28:20 -0000 1.10 *************** *** 121,124 **** --- 121,125 ---- bool AllLaunchersEmpty(tcGameObject* child); bool AllLaunchersReady(tcGameObject* child); + int GetAvailableTargetFlags(tcGameObject* child); bool HasActiveOp(tcGameObject* child) const; |
From: Dewitt C. <ddc...@us...> - 2006-09-06 01:28:22
|
Update of /cvsroot/gcblue/gcb_wx/include/graphics In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv14752/include/graphics Modified Files: tcButton.h tcPlatformGui.h tcXmlWindow.h Log Message: Index: tcXmlWindow.h =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/include/graphics/tcXmlWindow.h,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** tcXmlWindow.h 27 Mar 2006 01:08:30 -0000 1.8 --- tcXmlWindow.h 6 Sep 2006 01:28:20 -0000 1.9 *************** *** 35,38 **** --- 35,39 ---- class TiXmlDocument; + class tcButton; /** *************** *** 45,48 **** --- 46,51 ---- void SetButtonDisable(long command, bool state); + /// find first button with matching command + tcButton* GetButtonWithCommand(long command); /// find first button with matching command and change caption void SetButtonCaption(long command, const std::string& caption); Index: tcPlatformGui.h =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/include/graphics/tcPlatformGui.h,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** tcPlatformGui.h 5 Sep 2006 01:04:24 -0000 1.5 --- tcPlatformGui.h 6 Sep 2006 01:28:20 -0000 1.6 *************** *** 47,50 **** --- 47,51 ---- class tcLauncher; class tcStoresContainerItem; + class tcStores; /** *************** *** 110,113 **** --- 111,116 ---- void OnLoadoutCommand(wxCommandEvent& event); + tcStores* GetLoadoutStores(); + void UpdateLoadoutButtons(); DECLARE_EVENT_TABLE() Index: tcButton.h =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/include/graphics/tcButton.h,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** tcButton.h 28 Mar 2006 23:58:03 -0000 1.16 --- tcButton.h 6 Sep 2006 01:28:20 -0000 1.17 *************** *** 48,51 **** --- 48,52 ---- const std::string& GetCaption() const {return caption;} long GetCommand() const {return command;} + bool GetInteractive() const {return isInteractive;} bool IsOn() {return isButtonOn;} void LoadImages(const std::string& offImageName, const std::string& onImageName, *************** *** 60,63 **** --- 61,65 ---- void SetFontSize(float val); void SetForceDisable(bool state); + void SetInteractive(bool state); void SetMouseOverCaption(const std::string& s); void SetMouseOverCaptionPosition(const wxPoint& pos); *************** *** 75,78 **** --- 77,81 ---- long command; bool isButtonOn; + bool isInteractive; ///< false to ignore mouseover and click events bool isMouseOver; std::string soundEffect; |
From: Dewitt C. <ddc...@us...> - 2006-09-06 01:28:22
|
Update of /cvsroot/gcblue/gcb_wx/database/csv In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv14752/database/csv Modified Files: ballistic.csv Log Message: Index: ballistic.csv =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/database/csv/ballistic.csv,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ballistic.csv 4 Sep 2006 21:07:06 -0000 1.2 --- ballistic.csv 6 Sep 2006 01:28:20 -0000 1.3 *************** *** 94,102 **** "76mm HE-SAPOMER",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","76mm HE-SAPOMER - Range 20km - Damage 5.64 - ETA 22 Seconds",5.64,919,15,1,20,0.06 "76mm Mk-75",14,512,500,,"ball/gunammoico.jpg","5-inch.xml","76mm round",6,800,5,0,20,0.006 ! "GB-200",14,512,500,,"ball/gb200ico.jpg","mk-82.xml","200 kg gravity bomb",200,0,5,1,10,0.006 ! "GB-500",14,512,5000,,"ball/gb500ico.jpg","mk-84.xml","500 kg gravity bomb",500,0,5,1,10,0.006 ! "Mk-82",14,512,300,,"ball/mk82ico.jpg","mk-82.xml","500 lb iron gravity bomb",250,0,5,1,10,0.01 ! "Mk-83",14,512,1000,,"ball/mk83ico.jpg","mk-84.xml","1000 lb iron gravity bomb",500,0,5,1,10,0.01 ! "Mk-84",14,512,3100,,"ball/mk84ico.jpg","mk-84.xml","2000 lb iron gravity bomb",1000,0,5,1,10,0.01 "Shell-1",14,512,500,,"ball/gunammoico.jpg","5-inch.xml","Test naval gun round",10,300,5,0,10,0.006 "Shell-2",14,512,500,,"ball/gunammoico.jpg","5-inch.xml","Test naval gun round with slightly longer range",10,400,5,0,10,0.006 --- 94,102 ---- "76mm HE-SAPOMER",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","76mm HE-SAPOMER - Range 20km - Damage 5.64 - ETA 22 Seconds",5.64,919,15,1,20,0.06 "76mm Mk-75",14,512,500,,"ball/gunammoico.jpg","5-inch.xml","76mm round",6,800,5,0,20,0.006 ! "GB-200",14,512,500,,"ball/gb200ico.jpg","mk-82.xml","200 kg gravity bomb",200,0,4,1,10,0.006 ! "GB-500",14,512,5000,,"ball/gb500ico.jpg","mk-84.xml","500 kg gravity bomb",500,0,4,1,10,0.006 ! "Mk-82",14,512,300,,"ball/mk82ico.jpg","mk-82.xml","500 lb iron gravity bomb",250,0,4,1,10,0.01 ! "Mk-83",14,512,1000,,"ball/mk83ico.jpg","mk-84.xml","1000 lb iron gravity bomb",500,0,4,1,10,0.01 ! "Mk-84",14,512,3100,,"ball/mk84ico.jpg","mk-84.xml","2000 lb iron gravity bomb",1000,0,4,1,10,0.01 "Shell-1",14,512,500,,"ball/gunammoico.jpg","5-inch.xml","Test naval gun round",10,300,5,0,10,0.006 "Shell-2",14,512,500,,"ball/gunammoico.jpg","5-inch.xml","Test naval gun round with slightly longer range",10,400,5,0,10,0.006 |
From: Dewitt C. <ddc...@us...> - 2006-09-06 01:28:22
|
Update of /cvsroot/gcblue/gcb_wx/docs In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv14752/docs Modified Files: CHANGES.txt Log Message: Index: CHANGES.txt =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/docs/CHANGES.txt,v retrieving revision 1.55 retrieving revision 1.56 diff -C2 -d -r1.55 -r1.56 *** CHANGES.txt 5 Sep 2006 01:04:24 -0000 1.55 --- CHANGES.txt 6 Sep 2006 01:28:20 -0000 1.56 *************** *** 3,6 **** --- 3,10 ---- 0.8.3 --------------------------------------------------------------------- + *** 2006-09-05 *** + - Added feature to gray loadout automation buttons for loadouts that are + not available + *** 2006-07-01 through 2006-09-04 *** - Started loadout automation feature for airbases |
From: Dewitt C. <ddc...@us...> - 2006-09-06 01:28:22
|
Update of /cvsroot/gcblue/gcb_wx/database In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv14752/database Modified Files: database.db Log Message: Index: database.db =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/database/database.db,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 Binary files /tmp/cvsj0j5Np and /tmp/cvsWAS1C2 differ |
From: Dewitt C. <ddc...@us...> - 2006-09-05 01:04:57
|
Update of /cvsroot/gcblue/gcb_wx/database/csv In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv24958/database/csv Modified Files: missiles.csv Log Message: Index: missiles.csv =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/database/csv/missiles.csv,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** missiles.csv 20 Aug 2006 22:39:48 -0000 1.1 --- missiles.csv 5 Sep 2006 01:04:23 -0000 1.2 *************** *** 1,70 **** "DatabaseClass","ModelClassId","ClassificationId","Cost","ImageList","IconFileName","ModelFileName","Description","Damage","LaunchSpeed_mps","targetFlags","MinLaunchAlt_m","MaxLaunchAlt_m","Mass_kg","DragArea_sm","Gmax","MaxTurnRate_degps","Cdpsub","Cdptran","Cdpsup","Mcm","Msupm","Kdi","BoostThrust_N","BoostTime_s","SustThrust_N","SustTime_s","Rcs_dbsm","Range_km","ShutdownSpeed_mps","SensorClass","NeedsFireControl","PayloadClass","Rng1_km","Alt1_m","AltMode1","GuidMode1","Rng2_km","Alt2_m","AltMode2","GuidMode2","Rng3_km","Alt3_m","AltMode3","GuidMode3","Rng4_km","Alt4_m","AltMode4","GuidMode4","Rng5_km","Alt5_m","AltMode5","GuidMode5","Rng6_km","Alt6_m","AltMode6","GuidMode6","Rng7_km","Alt7_m","AltMode7","GuidMode7","Rng8_km","Alt8_m","AltMode8","GuidMode8" ! "YJ-6","5","64","200000","","mis/yj6ico.jpg","am-39.xml","(C-601) First generation air-launched anti-ship missile","90","0","1","0","34567","1100","1","20","40","0.5","0.7","4","0.85","0.9","0.1","100000","3","80000","350","0","95","150","YJ-6 Seeker","0","","25","70","0","1","0.01","70","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "UGM-84C","5","64","500000","","mis/usm_unk.jpg","mm-38.xml","Sub launched version.","50","0","1","-30","34567","80","0.01","20","15","0.1","0.18","0.13","0.9","1.1","0.1","45000","300","10000","20","0","200","150","RGM-84 Seeker","0","","20","300","0","1","5","100","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "Tien Kung-II SAM","5","64","100000","","mis/sam_unk.jpg","roland-sam.xml","(Sky Bow-II) Tien Kung II SAM","90","0","10","0","34567","1100","1","20","40","0.12","0.2","3","3.8","4","0.1","100000","5","80000","80","0","60","400","Tien Kung-II Seeker","1","","30","5000","2","0","0.01","4500","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "SSM-I","5","64","100000","","mis/ssm_unk.jpg","mm-38.xml","","50","0","1","0","34567","80","0.01","20","15","0.1","0.18","0.13","0.9","1.1","0.1","45000","300","10000","20","0","200","150","SSM Seeker","0","","20","300","0","1","5","100","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "SS-NX-26","5","64","0","","mis/ssm_unk.jpg","mm-38.xml","Ship-Surface Russian Surface to Air Missile - Mach 2.5, Range 250 km, ETA 4 Minutes, 55 Seconds","375","0","1","0","34567","2270","1","20","10","0.2","0.2","3","2.5","2.5","0.1","3000000","3","300000","295","5","250","100","SS-NX-26 seeker","0","","256","14000","0","1","128","14000","0","1","64","1400","0","1","32","140","0","1","16","15","0","1","8","10","2","2","0","0","0","0","0","0","0","0" ! "SS-N-9","5","64","0","","mis/ssm_unk.jpg","mm-38.xml","Ship-Surface Russian Surface to Air Missile - Mach 0.75, Range 111 km, ETA 7 Minutes, 16 Seconds","750","0","1","0","34567","2500","1","20","10","0.2","0.2","3","0.75","0.75","0.1","900000","3","90000","436","6","111","100","SS-N-9 seeker","0","","124","60","0","1","64","60","0","1","32","60","0","1","16","60","0","1","8","60","2","2","0","0","0","0","0","0","0","0","0","0","0","0" ! "SS-N-7","5","64","100000","","mis/usm_unk.jpg","ss-n-16.xml","Sub launched anti-ship missile","50","0","1","0","34567","80","0.01","20","15","0.1","0.18","0.13","0.9","1.1","0.1","50000","5","10000","180","0","60","150","SS-N-7 Seeker","0","","20","300","0","1","5","100","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "SS-N-2D","5","64","0","","mis/ssm_unk.jpg","mm-38.xml","Ship-Surface Russian Surface to Air Missile - Mach 0.9, Range 40 km, ETA 2 Minutes, 12 Seconds","675","0","1","0","34567","2300","1","20","10","0.2","0.2","3","0.9","0.9","0.1","1080000","3","108000","264","5","80","100","SS-N-2D seeker","0","","128","150","0","1","64","150","0","1","32","150","0","1","16","150","0","1","8","150","2","2","0","0","0","0","0","0","0","0","0","0","0","0" ! "SS-N-26","5","64","0","","mis/ssm_unk.jpg","mm-38.xml","Ship-Surface Russian Surface to Air Missile - Mach 2.5, Range 250 km, ETA 4 Minutes, 55 Seconds","375","0","1","0","34567","2270","1","20","10","0.2","0.2","3","2.5","2.5","0.1","3000000","3","300000","295","5","250","100","SS-N-26 seeker","0","","256","14000","0","1","128","14000","0","1","64","1400","0","1","32","140","0","1","16","15","0","1","8","10","2","2","0","0","0","0","0","0","0","0" ! "SS-N-25","5","64","0","","mis/ssm_unk.jpg","mm-38.xml","Ship-Surface Russian Surface to Air Missile - Mach 0.905, Range 130 km, ETA 7 Minutes, 3 Seconds","217.5","0","1","0","34567","603","1","20","10","0.2","0.2","3","0.905","0.905","0.1","1086000","3","108600","423","2","130","100","SS-N-25 seeker","0","","130","15","0","1","65","15","0","1","33","15","0","1","17","5","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "SS-N-22","5","64","0","","mis/ssm_unk.jpg","mm-38.xml","Ship-Surface Russian Surface to Air Missile - Mach 2.55, Range 250 km, ETA 4 Minutes, 49 Seconds","450","0","1","0","34567","3950","1","20","10","0.2","0.2","3","2.55","2.55","0.1","3060000","3","306000","289","5","250","100","SS-N-22 seeker","0","","256","20","0","1","128","15","0","1","64","10","0","1","32","8","0","1","16","7","2","2","0","0","0","0","0","0","0","0","0","0","0","0" ! "SS-N-19U","5","64","500000","","mis/usm_unk.jpg","ss-n-16.xml","Shipwreck sub-launched anti-ship missile","200","0","1","-20","34567","80","0.01","20","15","0.1","0.18","0.13","0.9","1.1","0.1","50000","5","10000","180","0","60","150","SS-N-7 Seeker","0","","20","300","0","1","5","100","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "SS-N-19","5","64","0","","mis/ssm_unk.jpg","mm-38.xml","Ship-Surface Russian Antiship cruise missile - Mach 1.34, Range 550 km, ETA 20 Minutes, 6 Seconds","1125","0","1","0","34567","6980","1","20","10","0.2","0.2","3","1.34","1.34","0.1","1608000","3","160800","1206","6","550","100","SS-N-19 seeker","0","","550","20000","0","1","275","20000","0","1","140","20000","0","1","70","20000","0","1","35","5","0","1","18","5","2","2","0","0","0","0","0","0","0","0" ! "SS-N-14","5","64","0","","mis/ssm_unk.jpg","mm-38.xml","Ship-Surface Russian Surface to Air Missile - Mach 0.9, Range 55 km, ETA 3 Minutes, 1 Seconds","750","0","1","0","34567","4000","1","20","10","0.2","0.2","3","0.9","0.9","0.1","1080000","3","108000","181","3","55","100","SS-N-14 seeker","0","","56","100","0","0","28","100","0","0","14","100","0","0","7","100","0","0","4","100","2","2","0","0","0","0","0","0","0","0","0","0","0","0" ! "SM-1MR SAM","5","64","400000","","mis/sam_unk.jpg","roland-sam.xml","SM-1 medium range SAM","90","0","10","0","34567","1100","1","20","40","0.12","0.2","3","3","3.1","0.1","100000","3","80000","45","0","35","400","SM-1 Seeker","1","","0.01","5000","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "Skyflash","5","64","0","","mis/skyflashico.jpg","am-39.xml","Super 530D Skyflash","25","0","10","0","34567","270","1.1","20","14","0.13","0.18","0.16","0.9","1.1","0.1","72000","8","65000","45","2","40","300","Skyflash Seeker","1","","20","8000","2","0","0.01","5000","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "Seawolf-SAM","5","64","100000","","mis/sam_unk.jpg","roland-sam.xml","","3","0","10","0","34567","80","0.003","20","15","0.15","0.2","0.15","0.9","1.1","0.1","100000","10","80000","50","10","100","400","Seawolf-SAM Seeker","1","","0","10000","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "Sea Dart Mod0","5","64","100000","","mis/sam_unk.jpg","seadart.xml","Sea Dart Mod0 SAM","4","0","10","0","34567","80","0.003","20","15","0.15","0.2","0.15","0.9","1.1","0.1","100000","10","80000","70","10","70","400","Sea Dart Seeker","1","","0","10000","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "SAM-I","5","64","100000","","mis/sam_unk.jpg","roland-sam.xml","","3","0","10","0","34567","80","0.003","20","15","0.15","0.2","0.15","0.9","1.1","0.1","100000","10","80000","50","10","70","400","SAM Seeker","0","","0","10000","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "SA-SAM","5","64","100000","","mis/sam_unk.jpg","roland-sam.xml","","3","0","10","0","34567","80","0.003","20","15","0.15","0.2","0.15","0.9","1.1","0.1","100000","10","80000","50","10","100","400","SA-SAM Seeker","1","","0","10000","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "SA-N-9","5","64","0","","mis/sam_unk.jpg","roland-sam.xml","Ship-Air Russian Surface to Air Missile - Mach 2.56, Range 12 km, ETA 15 Seconds","2.9","0","10","0","34567","165","1","20","40","0.2","0.2","3","2.56","2.56","0.1","3072000","3","307200","15","1","12","100","SA-N-9 seeker","1","","12","7000","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "SA-N-7","5","64","0","","mis/sam_unk.jpg","roland-sam.xml","Ship-Air Russian Surface to Air Missile - Mach 2.56, Range 32 km, ETA 38 Seconds","14","0","10","0","34567","690","1","20","40","0.2","0.2","3","2.56","2.56","0.1","3072000","3","307200","38","2","32","100","SA-N-7 seeker","0","","32","7000","0","0","15","7000","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "SA-N-6","5","64","0","","mis/sam_unk.jpg","roland-sam.xml","Ship-Air Russian Surface to Air Missile - Mach 5.12, Range 90 km, ETA 53 Seconds","26.6","0","10","0","34567","1480","1","20","40","0.2","0.2","3","5.12","5.12","0.1","6144000","3","614400","53","2","90","100","SA-N-6 seeker","0","","90","7000","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "SA-N-5","5","64","0","","mis/sam_unk.jpg","roland-sam.xml","Ship-Air Russian Surface to Air Missile - Mach 1.5, Range 6 km, ETA 13 Seconds","0.3","0","10","0","34567","70","1","20","40","0.2","0.2","3","1.5","1.5","0.1","1800000","3","180000","13","-8","6","100","SA-N-5 seeker","0","","8","7000","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "SA-N-4","5","64","0","","mis/sam_unk.jpg","roland-sam.xml","Ship-Air Russian Surface to Air Missile - Mach 1.81, Range 7 km, ETA 13 Seconds","3","0","10","0","34567","126","1","20","40","0.2","0.2","3","1.81","1.81","0.1","2172000","3","217200","13","-2","7","100","SA-N-4 seeker","1","","8","7000","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "SA-N-3","5","64","0","","mis/sam_unk.jpg","roland-sam.xml","Ship-Air Russian Surface to Air Missile - Mach 2.65, Range 55 km, ETA 62 Seconds","19.6","0","10","0","34567","1844","1","20","40","0.2","0.2","3","2.65","2.65","0.1","3180000","3","318000","62","4","55","100","SA-N-3 seeker","1","","64","7000","0","0","15","7000","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "SA-N-17","5","64","0","","mis/sam_unk.jpg","roland-sam.xml","Ship-Air Russian Surface to Air Missile - Mach 2.43, Range 35 km, ETA 44 Seconds","14","0","10","0","34567","690","1","20","40","0.2","0.2","3","2.43","2.43","0.1","2916000","3","291600","44","2","35","100","SA-N-17 seeker","1","","64","7000","0","0","15","7000","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "SA-N-11","5","64","0","","mis/sam_unk.jpg","roland-sam.xml","Ship-Air Russian Surface to Air Missile - Mach 3.32, Range 12 km, ETA 12 Seconds","1.8","0","10","0","34567","66.5","1","20","40","0.2","0.2","3","3.32","3.32","0.1","3984000","3","398400","12","-3","12","100","SA-N-11 seeker","1","","12","7000","2","2","0","0","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "SA-N-1","5","64","0","","mis/sam_unk.jpg","roland-sam.xml","Ship-Air Russian Surface to Air Missile - Mach 1.26, Range 45 km, ETA 106 Seconds","50","0","10","0","34567","3500","1","20","40","0.2","0.2","3","1.26","1.26","0.1","1512000","3","151200","106","1","45","100","SA-N-1 seeker","1","","46","7000","0","0","15","7000","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "SA-10 SAM","5","64","100000","","mis/sam_unk.jpg","rapier-sam.xml","SA-10 Grumble SAM missile","3","0","10","0","34567","80","0.003","20","40","0.15","0.2","0.15","0.9","1.1","0.1","100000","10","80000","1","0","70","400","SA-10 SAM Seeker","1","","0","2000","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "RIM-7P","5","64","0","","mis/sam_unk.jpg","roland-sam.xml","Ship-Air AIM-7P Sparrow - Naval Version - Mach 4, Range 26 km, ETA 21 Seconds","8","0","10","0","34567","231","1","20","40","0.2","0.2","3","4","4","0.1","4800000","3","480000","21","-2","26","100","RIM-7P seeker","0","","28","7000","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "RIM-67B","5","64","0","","mis/sam_unk.jpg","roland-sam.xml","Ship-Air US Surface to Air Standard 2ER Missile - Mach 3.05, Range 183 km, ETA 2 Minutes, 58 Seconds","6.2","0","10","0","34567","1341","1","20","40","0.2","0.2","3","3.05","3.05","0.1","3660000","3","366000","178","3","183","100","RIM-66/67 seeker","1","","190","7000","0","0","15","7000","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "RIM-67A","5","64","0","","mis/sam_unk.jpg","roland-sam.xml","Ship-Air US Surface to Air Standard 1ER Missile - Mach 3.05, Range 80 km, ETA 79 Seconds","6.2","0","10","0","34567","708","1","20","40","0.2","0.2","3","3.05","3.05","0.1","3660000","3","366000","79","3","80","100","RIM-66/67 seeker","1","","190","7000","0","0","15","7000","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "RIM-66B","5","64","0","","mis/sam_unk.jpg","roland-sam.xml","Ship-Air US Surface to Air Standard 2MR Missile - Mach 2.05, Range 73 km, ETA 106 Seconds","6.2","0","10","0","34567","1341","1","20","40","0.2","0.2","3","2.05","2.05","0.1","2460000","3","246000","106","1","73","100","RIM-66/67 seeker","1","","190","7000","0","0","15","7000","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "RIM-66A","5","64","0","","mis/sam_unk.jpg","roland-sam.xml","Ship-Air US Surface to Air Standard 1MR Missile - Mach 2.05, Range 50 km, ETA 73 Seconds","6.2","0","10","0","34567","630","1","20","40","0.2","0.2","3","2.05","2.05","0.1","2460000","3","246000","73","1","50","100","RIM-66/67 seeker","1","","190","7000","0","0","15","7000","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "RIM-116A RAM","5","64","0","","mis/sam_unk.jpg","roland-sam.xml","Ship-Air US Surface to Air Missile - Mach 2.2, Range 9 km, ETA 14 Seconds","4.1","0","10","0","34567","76","1","20","40","0.2","0.2","3","2.2","2.2","0.1","2640000","3","264000","32","-5","23","100","RIM-116A/B seeker","0","","25","1000","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "RGM-84D Harpoon","5","64","0","","mis/ssm_unk.jpg","mm-38.xml","Surface-Surface US Guided Anti Shipping Missile - Mach 0.85, Range 140 km, ETA 8 Minutes, 5 Seconds","331.5","0","1","0","34567","690","1","20","10","0.2","0.2","3","0.85","0.85","0.1","1020000","3","102000","485","1","140","100","RGM-84D seeker","0","","112","80","0","1","20","40","0","2","3.5","40","0","2","2","500","0","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "RGM-84","5","64","500000","","mis/ssm_unk.jpg","rgm-84.xml","","50","0","1","0","34567","80","0.01","20","15","0.1","0.18","0.13","0.9","1.1","0.1","45000","300","10000","20","0","200","150","RGM-84 Seeker","0","","20","300","0","1","5","100","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "Rapier-SAM","5","64","100000","","mis/sam_unk.jpg","rapier-sam.xml","Rapier SAM missile","3","0","10","0","34567","80","0.003","20","40","0.15","0.2","0.15","0.9","1.1","0.1","100000","10","80000","1","0","70","400","Rapier-SAM Seeker","1","","0","2000","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "R-73M","5","64","100000","","mis/r73ico.jpg","aa-11.xml","(AA-11 Archer) Short range AAM","7.4","0","2","0","34567","80","1","20","20","0.15","0.2","0.18","2.2","2.5","0.1","100000","5","80000","30","3","32","200","R-73M Infrared","1","","0.01","5000","2","2","","","","","","","","","","","","","","","","","","","","","","","","","","","","" ! "R-60","5","64","40000","","mis/r60ico.jpg","aim-9.xml","(AA-8 Aphid) Short range AAM","6","0","2","0","34567","43","1","20","18","0.1","0.19","0.125","0.9","1.1","0.1","120000","2","83000","8","1","6","200","R-60 Infrared","0","","0.2","5000","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "R-40R","5","64","0","","mis/r40rico.jpg","am-39.xml","R-40R (AA-6 Acrid) long range AIM","60","0","10","0","34567","461","1.2","20","14","0.15","0.2","0.17","0.9","1.1","0.1","115000","10","86000","87","5","60","300","R-40R Seeker","1","","30","8000","0","0","5","5000","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "R-27R","5","64","200000","r27.jpg;r27-1.jpg","mis/r27ico.jpg","aa-10.xml","(AA-10 Alamo) Medium range AAM","39","0","2","0","34567","80","1","20","20","0.15","4","10","3.8","4","0.1","100000","5","80000","70","3","80","200","R-27R Infrared","1","","25","12000","0","0","0.01","5000","2","2","","","","","","","","","","","","","","","","","","","","","","","","" ! "R-23/24R","5","64","285000","","mis/r23_24ico.jpg","aim-9.xml","(AA-7 Apex) Medium range AAM","23","0","2","0","34567","240","1","20","15","0.12","0.2","0.15","0.9","1.1","0.1","70000","7","50000","53","0","40","250","AIM-7M Seeker","1","","20","8000","0","0","0.01","5000","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "MICA","5","64","478000","","mis/micoico.jpg","am-39.xml","MICA Long range AIM","20","0","10","0","17000","112","1","20","17","0.12","0.15","0.125","0.9","1.1","0.1","105000","10","92000","85","5","60","250","MICA R Seeker","1","","80","8000","2","2","0.01","5000","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "Kh-22","5","64","500000","","mis/asm_unk.jpg","as-4.xml","(AS-4 Kitchen) Needs model for Kh-22 ","70","0","1","100","34567","2000","1","20","15","0.5","0.5","0.3","0.9","1.1","0.01","300000","8","50000","450","10","450","200","Kh-22 Seeker","0","","20","13500","0","1","9","5000","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "Igla-M SAM","5","64","50000","","mis/sam_unk.jpg","rapier-sam.xml","(SA-N-10 Grouse) Sub-launched version of man-portable SAM","3","0","2","-1","34567","40","1","20","40","0.15","0.2","0.15","0.9","1.1","0.1","100000","1","80000","7.5","0","5","300","Igla-M Infrared","0","","0","2000","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "Hsiung Feng-II","5","64","300000","","mis/ssm_unk.jpg","mm-38.xml","Taiwan anti-ship missile","65","0","1","0","34567","80","1","20","15","0.1","0.15","1","0.65","0.68","0.1","45000","3","10000","365","0","80","150","Feng-II Seeker","0","","20","300","0","1","0.01","150","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "FIM-92 Stinger","5","64","0","","mis/sam_unk.jpg","roland-sam.xml","Ship-AIr US MANPAD - Mach 2.2, Range 4.8 km, ETA 8 Seconds","0.6","0","10","0","34567","10.1","1","20","40","0.2","0.2","3","2.2","2.2","0.1","2640000","3","264000","8","-8","4.8","100","Stinger seeker","0","","5","1000","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "ESSM","5","64","0","","mis/sam_unk.jpg","roland-sam.xml","Ship-Air US Surface to Air Missile - Mach 4.05, Range 55 km, ETA 41 Seconds","7","0","10","0","34567","279.5","1","20","40","0.2","0.2","3","4.05","4.05","0.1","4860000","3","486000","15","-1","18.5","100","ESSM seeker","1","","30","7000","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "BGM-109 TLAM","5","64","0","","mis/ssm_unk.jpg","mm-38.xml","Ship-Surface US Cruise Missile Tomahawk - Mach 0.67, Range 2800 km, ETA 204 Minutes, 30 Seconds","455","0","4","0","34567","1575","1","20","10","0.2","0.2","3","0.67","0.67","0.1","804000","3","80400","12270","3","2800","100","BGM-109 seeker","0","","1536","550","0","1","1024","550","0","1","512","550","0","1","256","550","0","1","64","550","0","1","16","550","0","1","4","550","0","1","2","550","2","2" ! "BGM-109 TASM","5","64","0","","mis/ssm_unk.jpg","mm-38.xml","Ship-Surface US Cruise Missile Tomahawk - Mach 0.67, Range 2800 km, ETA 204 Minutes, 30 Seconds","682.5","0","1","0","34567","1575","1","20","10","0.2","0.2","3","0.67","0.67","0.1","804000","3","80400","12270","3","2800","100","BGM-109 seeker","0","","1536","550","0","1","1024","550","0","1","512","550","0","1","256","550","0","1","64","550","0","1","16","550","0","1","4","550","0","1","2","550","2","2" ! "ASROC-TEST","5","64","300000","","mis/ssm_unk.jpg","mm-38.xml","Test of missile (rocket) that deploys a torpedo","0","0","16","0","34567","80","1","20","15","0.1","0.15","1","0.65","0.68","0.1","45000","3","10000","70","0","15","150","","0","AT-2M","1","300","0","1","0.01","300","0","3","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "ASM-I","5","64","100000","","mis/asm_unk.jpg","am-39.xml","","50","0","1","0","34567","100","0.01","20","15","0.2","0.4","0.3","0.9","1.1","0.1","50000","20","20000","120","10","180","200","ASM Seeker","0","","20","15000","0","1","9","5000","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "AM-39","5","64","400000","","mis/asm_unk.jpg","am-39.xml","AM-39 Exocet anti-ship missile","50","0","1","100","34567","100","0.01","20","15","0.2","0.4","0.3","0.9","1.1","0.1","50000","20","20000","140","10","65","200","AM-39 Seeker","0","","20","15000","0","1","9","5000","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "AIM-9M","5","64","90000","","mis/aim9ico.jpg","aim-9.xml","AIM-9M Sidewinder air-to-air missile","9","0","2","0","34567","100","1","20","15","0.1","0.19","0.125","0.9","1.1","0.1","80000","4","50000","16","0","15","300","AIM-9M Seeker","1","","0.01","12000","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "AIM-7M","5","64","300000","","mis/aim7ico.jpg","aim-9.xml","Sparrow III medium range air-to-air missle","27","0","2","0","34567","225","1","20","12","0.12","0.2","0.15","0.9","1.1","0.1","70000","7","50000","50","0","35","300","AIM-7M Seeker","1","","20","8000","0","0","0.01","5000","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "AIM-54C","5","64","478000","","mis/aim54ico.jpg","am-39.xml","Phoenix long range air-to-air missle","40","0","10","0","34567","460","1.1","20","14","0.15","0.2","0.17","0.9","1.1","0.1","100000","10","80000","95","5","80","400","AIM-54C Seeker","1","","35","8000","0","0","0.01","5000","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "AIM-120C","5","64","400000","","mis/aim120ico.jpg","aim-9.xml","AMRAAM medium range air-to-air missile","12","0","2","0","34567","150","1","20","15","0.1","0.19","0.125","0.9","1.1","0.1","80000","4","50000","55","0","50","300","AIM-120 Seeker","1","","15","12000","0","0","0.01","5000","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "AGM-I","5","64","100000","","mis/asm_unk.jpg","am-39.xml","Test air to ground missile for land targets","50","0","4","0","34567","100","0.01","20","15","0.2","0.4","0.3","0.9","1.1","0.1","50000","20","20000","120","10","180","200","","0","","20","15000","0","1","1.5","250","1","1","0","750","3","1","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "AGM-88","5","64","300000","","mis/agm_unk.jpg","am-39.xml","HARM anti-radiation air-to-ground missile","56","0","4","0","34567","360","1","20","15","0.1","0.3","0.2","0.9","1.1","0.1","60000","5","60000","60","5","45","125","HARM Seeker","0","","10","10000","0","2","0","250","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "AGM-65D","5","64","125000","","mis/agm_unk.jpg","am-39.xml","Maverick air to ground missile","56","0","4","0","34567","200","1","20","15","0.1","0.3","0.2","0.9","1.1","0.1","50000","10","30000","50","5","27","125","Maverick Infrared","1","","9","8000","0","2","0","250","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "AGM-119B","5","64","0","","mis/sam_unk.jpg","roland-sam.xml","Penguin AGM-19B ASM","180","0","1","0","34567","385","1","20","10","0.2","0.2","3","1.2","1.2","0.1","44000","1","44000","62","0","35","100","AGM-119B seeker","0","","26","100","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "AAM-SR","5","64","100000","","mis/aam_unk.jpg","aim-9.xml","Short range air-to-air generic","2","0","2","0","34567","100","0.01","20","15","0.1","0.19","0.125","0.9","1.1","0.1","80000","5","50000","20","0","40","200","AAM Seeker","0","","0","5000","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "AAM-I","5","64","100000","","mis/aam_unk.jpg","aim-9.xml","","3","0","2","0","34567","100","0.01","20","15","0.1","0.19","0.125","0.9","1.1","0.1","80000","5","50000","55","0","60","200","AAM Seeker","0","","20","15000","0","2","4","5000","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "AA-2","5","64","45000","","mis/aa2ico.jpg","aim-9.xml","AA-2 Atoll","6","0","2","0","34567","75","0.01","20","14","0.1","0.19","0.125","0.9","1.1","0.1","80000","5","35000","14","0","10","300","AIM-9M Seeker","1","","0.01","5000","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "AA-12","5","64","100000","aa12-AXX-1.jpg;aa12_setup.jpg","mis/aam_unk.jpg","aa-12.xml","","3","0","2","0","34567","100","0.01","20","15","0.1","0.19","0.125","0.9","1.1","0.1","80000","5","50000","75","0","60","200","AA-12 Seeker","1","","20","15000","0","0","0.01","5000","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "9M-38","5","64","100000","","mis/sam_unk.jpg","roland-sam.xml","(SA-N-7) Shtil SAM","10","0","10","0","34567","55","1","20","15","0.15","0.2","5","2.8","3","0.1","100000","5","80000","40","10","30","400","9M-38 Seeker","1","","0","10000","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" ! "3M-80","5","64","500000","3m80.jpg;3m80-1.jpg","mis/ssm_unk.jpg","3m80.xml","(SS-N-22 Sunburn) Moskit ship-launched antiship missile","320","0","1","0","34567","4500","1","20","15","0.08","0.15","1","2.3","2.4","0.1","550000","5","50000","130","0","90","250","3M-80 Seeker","0","","25","300","0","1","5","40","2","2","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0","0" --- 1,70 ---- "DatabaseClass","ModelClassId","ClassificationId","Cost","ImageList","IconFileName","ModelFileName","Description","Damage","LaunchSpeed_mps","targetFlags","MinLaunchAlt_m","MaxLaunchAlt_m","Mass_kg","DragArea_sm","Gmax","MaxTurnRate_degps","Cdpsub","Cdptran","Cdpsup","Mcm","Msupm","Kdi","BoostThrust_N","BoostTime_s","SustThrust_N","SustTime_s","Rcs_dbsm","Range_km","ShutdownSpeed_mps","SensorClass","NeedsFireControl","PayloadClass","Rng1_km","Alt1_m","AltMode1","GuidMode1","Rng2_km","Alt2_m","AltMode2","GuidMode2","Rng3_km","Alt3_m","AltMode3","GuidMode3","Rng4_km","Alt4_m","AltMode4","GuidMode4","Rng5_km","Alt5_m","AltMode5","GuidMode5","Rng6_km","Alt6_m","AltMode6","GuidMode6","Rng7_km","Alt7_m","AltMode7","GuidMode7","Rng8_km","Alt8_m","AltMode8","GuidMode8" ! "YJ-6",5,64,200000,,"mis/yj6ico.jpg","am-39.xml","(C-601) First generation air-launched anti-ship missile",90,0,1,0,34567,1100,1,20,40,0.5,0.7,4,0.85,0.9,0.1,100000,3,80000,350,0,95,150,"YJ-6 Seeker",0,,25,70,0,1,0.01,70,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "UGM-84C",5,64,500000,,"mis/usm_unk.jpg","mm-38.xml","Sub launched version.",50,0,1,-30,34567,80,0.01,20,15,0.1,0.18,0.13,0.9,1.1,0.1,45000,300,10000,20,0,200,150,"RGM-84 Seeker",0,,20,300,0,1,5,100,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "Tien Kung-II SAM",5,64,100000,,"mis/sam_unk.jpg","roland-sam.xml","(Sky Bow-II) Tien Kung II SAM",90,0,10,0,34567,1100,1,20,40,0.12,0.2,3,3.8,4,0.1,100000,5,80000,80,0,60,400,"Tien Kung-II Seeker",1,,30,5000,2,0,0.01,4500,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "SSM-I",5,64,100000,,"mis/ssm_unk.jpg","mm-38.xml",,50,0,1,0,34567,80,0.01,20,15,0.1,0.18,0.13,0.9,1.1,0.1,45000,300,10000,20,0,200,150,"SSM Seeker",0,,20,300,0,1,5,100,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "SS-NX-26",5,64,0,,"mis/ssm_unk.jpg","mm-38.xml","Ship-Surface Russian Surface to Air Missile - Mach 2.5, Range 250 km, ETA 4 Minutes, 55 Seconds",375,0,1,0,34567,2270,1,20,10,0.2,0.2,3,2.5,2.5,0.1,3000000,3,300000,295,5,250,100,"SS-NX-26 seeker",0,,256,14000,0,1,128,14000,0,1,64,1400,0,1,32,140,0,1,16,15,0,1,8,10,2,2,0,0,0,0,0,0,0,0 ! "SS-N-9",5,64,0,,"mis/ssm_unk.jpg","mm-38.xml","Ship-Surface Russian Surface to Air Missile - Mach 0.75, Range 111 km, ETA 7 Minutes, 16 Seconds",750,0,1,0,34567,2500,1,20,10,0.2,0.2,3,0.75,0.75,0.1,900000,3,90000,436,6,111,100,"SS-N-9 seeker",0,,124,60,0,1,64,60,0,1,32,60,0,1,16,60,0,1,8,60,2,2,0,0,0,0,0,0,0,0,0,0,0,0 ! "SS-N-7",5,64,100000,,"mis/usm_unk.jpg","ss-n-16.xml","Sub launched anti-ship missile",50,0,1,0,34567,80,0.01,20,15,0.1,0.18,0.13,0.9,1.1,0.1,50000,5,10000,180,0,60,150,"SS-N-7 Seeker",0,,20,300,0,1,5,100,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "SS-N-2D",5,64,0,,"mis/ssm_unk.jpg","mm-38.xml","Ship-Surface Russian Surface to Air Missile - Mach 0.9, Range 40 km, ETA 2 Minutes, 12 Seconds",675,0,1,0,34567,2300,1,20,10,0.2,0.2,3,0.9,0.9,0.1,1080000,3,108000,264,5,80,100,"SS-N-2D seeker",0,,128,150,0,1,64,150,0,1,32,150,0,1,16,150,0,1,8,150,2,2,0,0,0,0,0,0,0,0,0,0,0,0 ! "SS-N-26",5,64,0,,"mis/ssm_unk.jpg","mm-38.xml","Ship-Surface Russian Surface to Air Missile - Mach 2.5, Range 250 km, ETA 4 Minutes, 55 Seconds",375,0,1,0,34567,2270,1,20,10,0.2,0.2,3,2.5,2.5,0.1,3000000,3,300000,295,5,250,100,"SS-N-26 seeker",0,,256,14000,0,1,128,14000,0,1,64,1400,0,1,32,140,0,1,16,15,0,1,8,10,2,2,0,0,0,0,0,0,0,0 ! "SS-N-25",5,64,0,,"mis/ssm_unk.jpg","mm-38.xml","Ship-Surface Russian Surface to Air Missile - Mach 0.905, Range 130 km, ETA 7 Minutes, 3 Seconds",217.5,0,1,0,34567,603,1,20,10,0.2,0.2,3,0.905,0.905,0.1,1086000,3,108600,423,2,130,100,"SS-N-25 seeker",0,,130,15,0,1,65,15,0,1,33,15,0,1,17,5,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "SS-N-22",5,64,0,,"mis/ssm_unk.jpg","mm-38.xml","Ship-Surface Russian Surface to Air Missile - Mach 2.55, Range 250 km, ETA 4 Minutes, 49 Seconds",450,0,1,0,34567,3950,1,20,10,0.2,0.2,3,2.55,2.55,0.1,3060000,3,306000,289,5,250,100,"SS-N-22 seeker",0,,256,20,0,1,128,15,0,1,64,10,0,1,32,8,0,1,16,7,2,2,0,0,0,0,0,0,0,0,0,0,0,0 ! "SS-N-19U",5,64,500000,,"mis/usm_unk.jpg","ss-n-16.xml","Shipwreck sub-launched anti-ship missile",200,0,1,-20,34567,80,0.01,20,15,0.1,0.18,0.13,0.9,1.1,0.1,50000,5,10000,180,0,60,150,"SS-N-7 Seeker",0,,20,300,0,1,5,100,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "SS-N-19",5,64,0,,"mis/ssm_unk.jpg","mm-38.xml","Ship-Surface Russian Antiship cruise missile - Mach 1.34, Range 550 km, ETA 20 Minutes, 6 Seconds",1125,0,1,0,34567,6980,1,20,10,0.2,0.2,3,1.34,1.34,0.1,1608000,3,160800,1206,6,550,100,"SS-N-19 seeker",0,,550,20000,0,1,275,20000,0,1,140,20000,0,1,70,20000,0,1,35,5,0,1,18,5,2,2,0,0,0,0,0,0,0,0 ! "SS-N-14",5,64,0,,"mis/ssm_unk.jpg","mm-38.xml","Ship-Surface Russian Surface to Air Missile - Mach 0.9, Range 55 km, ETA 3 Minutes, 1 Seconds",750,0,1,0,34567,4000,1,20,10,0.2,0.2,3,0.9,0.9,0.1,1080000,3,108000,181,3,55,100,"SS-N-14 seeker",0,,56,100,0,0,28,100,0,0,14,100,0,0,7,100,0,0,4,100,2,2,0,0,0,0,0,0,0,0,0,0,0,0 ! "SM-1MR SAM",5,64,400000,,"mis/sam_unk.jpg","roland-sam.xml","SM-1 medium range SAM",90,0,10,0,34567,1100,1,20,40,0.12,0.2,3,3,3.1,0.1,100000,3,80000,45,0,35,400,"SM-1 Seeker",1,,0.01,5000,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "Skyflash",5,64,0,,"mis/skyflashico.jpg","am-39.xml","Super 530D Skyflash",25,0,10,0,34567,270,1.1,20,14,0.13,0.18,0.16,0.9,1.1,0.1,72000,8,65000,45,2,40,300,"Skyflash Seeker",1,,20,8000,2,0,0.01,5000,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "Seawolf-SAM",5,64,100000,,"mis/sam_unk.jpg","roland-sam.xml",,3,0,10,0,34567,80,0.003,20,15,0.15,0.2,0.15,0.9,1.1,0.1,100000,10,80000,50,10,100,400,"Seawolf-SAM Seeker",1,,0,10000,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "Sea Dart Mod0",5,64,100000,,"mis/sam_unk.jpg","seadart.xml","Sea Dart Mod0 SAM",4,0,10,0,34567,80,0.003,20,15,0.15,0.2,0.15,0.9,1.1,0.1,100000,10,80000,70,10,70,400,"Sea Dart Seeker",1,,0,10000,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "SAM-I",5,64,100000,,"mis/sam_unk.jpg","roland-sam.xml",,3,0,10,0,34567,80,0.003,20,15,0.15,0.2,0.15,0.9,1.1,0.1,100000,10,80000,50,10,70,400,"SAM Seeker",0,,0,10000,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "SA-SAM",5,64,100000,,"mis/sam_unk.jpg","roland-sam.xml",,3,0,10,0,34567,80,0.003,20,15,0.15,0.2,0.15,0.9,1.1,0.1,100000,10,80000,50,10,100,400,"SA-SAM Seeker",1,,0,10000,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "SA-N-9",5,64,0,,"mis/sam_unk.jpg","roland-sam.xml","Ship-Air Russian Surface to Air Missile - Mach 2.56, Range 12 km, ETA 15 Seconds",2.9,0,10,0,34567,165,1,20,40,0.2,0.2,3,2.56,2.56,0.1,3072000,3,307200,15,1,12,100,"SA-N-9 seeker",1,,12,7000,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "SA-N-7",5,64,0,,"mis/sam_unk.jpg","roland-sam.xml","Ship-Air Russian Surface to Air Missile - Mach 2.56, Range 32 km, ETA 38 Seconds",14,0,10,0,34567,690,1,20,40,0.2,0.2,3,2.56,2.56,0.1,3072000,3,307200,38,2,32,100,"SA-N-7 seeker",0,,32,7000,0,0,15,7000,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "SA-N-6",5,64,0,,"mis/sam_unk.jpg","roland-sam.xml","Ship-Air Russian Surface to Air Missile - Mach 5.12, Range 90 km, ETA 53 Seconds",26.6,0,10,0,34567,1480,1,20,40,0.2,0.2,3,5.12,5.12,0.1,6144000,3,614400,53,2,90,100,"SA-N-6 seeker",0,,90,7000,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "SA-N-5",5,64,0,,"mis/sam_unk.jpg","roland-sam.xml","Ship-Air Russian Surface to Air Missile - Mach 1.5, Range 6 km, ETA 13 Seconds",0.3,0,10,0,34567,70,1,20,40,0.2,0.2,3,1.5,1.5,0.1,1800000,3,180000,13,-8,6,100,"SA-N-5 seeker",0,,8,7000,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "SA-N-4",5,64,0,,"mis/sam_unk.jpg","roland-sam.xml","Ship-Air Russian Surface to Air Missile - Mach 1.81, Range 7 km, ETA 13 Seconds",3,0,10,0,34567,126,1,20,40,0.2,0.2,3,1.81,1.81,0.1,2172000,3,217200,13,-2,7,100,"SA-N-4 seeker",1,,8,7000,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "SA-N-3",5,64,0,,"mis/sam_unk.jpg","roland-sam.xml","Ship-Air Russian Surface to Air Missile - Mach 2.65, Range 55 km, ETA 62 Seconds",19.6,0,10,0,34567,1844,1,20,40,0.2,0.2,3,2.65,2.65,0.1,3180000,3,318000,62,4,55,100,"SA-N-3 seeker",1,,64,7000,0,0,15,7000,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "SA-N-17",5,64,0,,"mis/sam_unk.jpg","roland-sam.xml","Ship-Air Russian Surface to Air Missile - Mach 2.43, Range 35 km, ETA 44 Seconds",14,0,10,0,34567,690,1,20,40,0.2,0.2,3,2.43,2.43,0.1,2916000,3,291600,44,2,35,100,"SA-N-17 seeker",1,,64,7000,0,0,15,7000,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "SA-N-11",5,64,0,,"mis/sam_unk.jpg","roland-sam.xml","Ship-Air Russian Surface to Air Missile - Mach 3.32, Range 12 km, ETA 12 Seconds",1.8,0,10,0,34567,66.5,1,20,40,0.2,0.2,3,3.32,3.32,0.1,3984000,3,398400,12,-3,12,100,"SA-N-11 seeker",1,,12,7000,2,2,0,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "SA-N-1",5,64,0,,"mis/sam_unk.jpg","roland-sam.xml","Ship-Air Russian Surface to Air Missile - Mach 1.26, Range 45 km, ETA 106 Seconds",50,0,10,0,34567,3500,1,20,40,0.2,0.2,3,1.26,1.26,0.1,1512000,3,151200,106,1,45,100,"SA-N-1 seeker",1,,46,7000,0,0,15,7000,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "SA-10 SAM",5,64,100000,,"mis/sam_unk.jpg","rapier-sam.xml","SA-10 Grumble SAM missile",3,0,10,0,34567,80,0.003,20,40,0.15,0.2,0.15,0.9,1.1,0.1,100000,10,80000,1,0,70,400,"SA-10 SAM Seeker",1,,0,2000,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "RIM-7P",5,64,0,,"mis/sam_unk.jpg","roland-sam.xml","Ship-Air AIM-7P Sparrow - Naval Version - Mach 4, Range 26 km, ETA 21 Seconds",8,0,10,0,34567,231,1,20,40,0.2,0.2,3,4,4,0.1,4800000,3,480000,21,-2,26,100,"RIM-7P seeker",0,,28,7000,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "RIM-67B",5,64,0,,"mis/sam_unk.jpg","roland-sam.xml","Ship-Air US Surface to Air Standard 2ER Missile - Mach 3.05, Range 183 km, ETA 2 Minutes, 58 Seconds",6.2,0,10,0,34567,1341,1,20,40,0.2,0.2,3,3.05,3.05,0.1,3660000,3,366000,178,3,183,100,"RIM-66/67 seeker",1,,190,7000,0,0,15,7000,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "RIM-67A",5,64,0,,"mis/sam_unk.jpg","roland-sam.xml","Ship-Air US Surface to Air Standard 1ER Missile - Mach 3.05, Range 80 km, ETA 79 Seconds",6.2,0,10,0,34567,708,1,20,40,0.2,0.2,3,3.05,3.05,0.1,3660000,3,366000,79,3,80,100,"RIM-66/67 seeker",1,,190,7000,0,0,15,7000,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "RIM-66B",5,64,0,,"mis/sam_unk.jpg","roland-sam.xml","Ship-Air US Surface to Air Standard 2MR Missile - Mach 2.05, Range 73 km, ETA 106 Seconds",6.2,0,10,0,34567,1341,1,20,40,0.2,0.2,3,2.05,2.05,0.1,2460000,3,246000,106,1,73,100,"RIM-66/67 seeker",1,,190,7000,0,0,15,7000,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "RIM-66A",5,64,0,,"mis/sam_unk.jpg","roland-sam.xml","Ship-Air US Surface to Air Standard 1MR Missile - Mach 2.05, Range 50 km, ETA 73 Seconds",6.2,0,10,0,34567,630,1,20,40,0.2,0.2,3,2.05,2.05,0.1,2460000,3,246000,73,1,50,100,"RIM-66/67 seeker",1,,190,7000,0,0,15,7000,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "RIM-116A RAM",5,64,0,,"mis/sam_unk.jpg","roland-sam.xml","Ship-Air US Surface to Air Missile - Mach 2.2, Range 9 km, ETA 14 Seconds",4.1,0,10,0,34567,76,1,20,40,0.2,0.2,3,2.2,2.2,0.1,2640000,3,264000,32,-5,23,100,"RIM-116A/B seeker",0,,25,1000,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "RGM-84D Harpoon",5,64,0,,"mis/ssm_unk.jpg","mm-38.xml","Surface-Surface US Guided Anti Shipping Missile - Mach 0.85, Range 140 km, ETA 8 Minutes, 5 Seconds",331.5,0,1,0,34567,690,1,20,10,0.2,0.2,3,0.85,0.85,0.1,1020000,3,102000,485,1,140,100,"RGM-84D seeker",0,,112,80,0,1,20,40,0,2,3.5,40,0,2,2,500,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "RGM-84",5,64,500000,,"mis/ssm_unk.jpg","rgm-84.xml",,50,0,1,0,34567,80,0.01,20,15,0.1,0.18,0.13,0.9,1.1,0.1,45000,300,10000,20,0,200,150,"RGM-84 Seeker",0,,20,300,0,1,5,100,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "Rapier-SAM",5,64,100000,,"mis/sam_unk.jpg","rapier-sam.xml","Rapier SAM missile",3,0,10,0,34567,80,0.003,20,40,0.15,0.2,0.15,0.9,1.1,0.1,100000,10,80000,1,0,70,400,"Rapier-SAM Seeker",1,,0,2000,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "R-73M",5,64,100000,,"mis/r73ico.jpg","aa-11.xml","(AA-11 Archer) Short range AAM",7.4,0,2,0,34567,80,1,20,20,0.15,0.2,0.18,2.2,2.5,0.1,100000,5,80000,30,3,32,200,"R-73M Infrared",1,,0.01,5000,2,2,,,,,,,,,,,,,,,,,,,,,,,,,,,, ! "R-60",5,64,40000,,"mis/r60ico.jpg","aim-9.xml","(AA-8 Aphid) Short range AAM",6,0,2,0,34567,43,1,20,18,0.1,0.19,0.125,0.9,1.1,0.1,120000,2,83000,8,1,6,200,"R-60 Infrared",0,,0.2,5000,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "R-40R",5,64,0,,"mis/r40rico.jpg","am-39.xml","R-40R (AA-6 Acrid) long range AIM",60,0,10,0,34567,461,1.2,20,14,0.15,0.2,0.17,0.9,1.1,0.1,115000,10,86000,87,5,60,300,"R-40R Seeker",1,,30,8000,0,0,5,5000,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "R-27R",5,64,200000,"r27.jpg;r27-1.jpg","mis/r27ico.jpg","aa-10.xml","(AA-10 Alamo) Medium range AAM",39,0,2,0,34567,80,1,20,20,0.15,4,10,3.8,4,0.1,100000,5,80000,70,3,80,200,"R-27R Infrared",1,,25,12000,0,0,0.01,5000,2,2,,,,,,,,,,,,,,,,,,,,,,,, ! "R-23/24R",5,64,285000,,"mis/r23_24ico.jpg","aim-9.xml","(AA-7 Apex) Medium range AAM",23,0,2,0,34567,240,1,20,15,0.12,0.2,0.15,0.9,1.1,0.1,70000,7,50000,53,0,40,250,"AIM-7M Seeker",1,,20,8000,0,0,0.01,5000,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "MICA",5,64,478000,,"mis/micoico.jpg","am-39.xml","MICA Long range AIM",20,0,10,0,17000,112,1,20,17,0.12,0.15,0.125,0.9,1.1,0.1,105000,10,92000,85,5,60,250,"MICA R Seeker",1,,80,8000,2,2,0.01,5000,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "Kh-22",5,64,500000,,"mis/asm_unk.jpg","as-4.xml","(AS-4 Kitchen) Needs model for Kh-22 ",70,0,1,100,34567,2000,1,20,15,0.5,0.5,0.3,0.9,1.1,0.01,300000,8,50000,450,10,450,200,"Kh-22 Seeker",0,,20,13500,0,1,9,5000,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "Igla-M SAM",5,64,50000,,"mis/sam_unk.jpg","rapier-sam.xml","(SA-N-10 Grouse) Sub-launched version of man-portable SAM",3,0,2,-1,34567,40,1,20,40,0.15,0.2,0.15,0.9,1.1,0.1,100000,1,80000,7.5,0,5,300,"Igla-M Infrared",0,,0,2000,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "Hsiung Feng-II",5,64,300000,,"mis/ssm_unk.jpg","mm-38.xml","Taiwan anti-ship missile",65,0,1,0,34567,80,1,20,15,0.1,0.15,1,0.65,0.68,0.1,45000,3,10000,365,0,80,150,"Feng-II Seeker",0,,20,300,0,1,0.01,150,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "FIM-92 Stinger",5,64,0,,"mis/sam_unk.jpg","roland-sam.xml","Ship-AIr US MANPAD - Mach 2.2, Range 4.8 km, ETA 8 Seconds",0.6,0,10,0,34567,10.1,1,20,40,0.2,0.2,3,2.2,2.2,0.1,2640000,3,264000,8,-8,4.8,100,"Stinger seeker",0,,5,1000,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "ESSM",5,64,0,,"mis/sam_unk.jpg","roland-sam.xml","Ship-Air US Surface to Air Missile - Mach 4.05, Range 55 km, ETA 41 Seconds",7,0,10,0,34567,279.5,1,20,40,0.2,0.2,3,4.05,4.05,0.1,4860000,3,486000,15,-1,18.5,100,"ESSM seeker",1,,30,7000,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "BGM-109 TLAM",5,64,0,,"mis/ssm_unk.jpg","mm-38.xml","Ship-Surface US Cruise Missile Tomahawk - Mach 0.67, Range 2800 km, ETA 204 Minutes, 30 Seconds",455,0,4,0,34567,1575,1,20,10,0.2,0.2,3,0.67,0.67,0.1,804000,3,80400,12270,3,2800,100,"BGM-109 seeker",0,,1536,550,0,1,1024,550,0,1,512,550,0,1,256,550,0,1,64,550,0,1,16,550,0,1,4,550,0,1,2,550,2,2 ! "BGM-109 TASM",5,64,0,,"mis/ssm_unk.jpg","mm-38.xml","Ship-Surface US Cruise Missile Tomahawk - Mach 0.67, Range 2800 km, ETA 204 Minutes, 30 Seconds",682.5,0,1,0,34567,1575,1,20,10,0.2,0.2,3,0.67,0.67,0.1,804000,3,80400,12270,3,2800,100,"BGM-109 seeker",0,,1536,550,0,1,1024,550,0,1,512,550,0,1,256,550,0,1,64,550,0,1,16,550,0,1,4,550,0,1,2,550,2,2 ! "ASROC-TEST",5,64,300000,,"mis/ssm_unk.jpg","mm-38.xml","Test of missile (rocket) that deploys a torpedo",0,0,16,0,34567,80,1,20,15,0.1,0.15,1,0.65,0.68,0.1,45000,3,10000,70,0,15,150,,0,"AT-2M",1,300,0,1,0.01,300,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "ASM-I",5,64,100000,,"mis/asm_unk.jpg","am-39.xml",,50,0,1,0,34567,100,0.01,20,15,0.2,0.4,0.3,0.9,1.1,0.1,50000,20,20000,120,10,180,200,"ASM Seeker",0,,20,15000,0,1,9,5000,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "AM-39",5,64,400000,,"mis/asm_unk.jpg","am-39.xml","AM-39 Exocet anti-ship missile",50,0,1,100,34567,100,0.01,20,15,0.2,0.4,0.3,0.9,1.1,0.1,50000,20,20000,140,10,65,200,"AM-39 Seeker",0,,20,15000,0,1,9,5000,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "AIM-9M",5,64,90000,,"mis/aim9ico.jpg","aim-9.xml","AIM-9M Sidewinder air-to-air missile",9,0,2,0,34567,100,1,20,15,0.1,0.19,0.125,0.9,1.1,0.1,80000,4,50000,16,0,15,300,"AIM-9M Seeker",1,,0.01,12000,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "AIM-7M",5,64,300000,,"mis/aim7ico.jpg","aim-9.xml","Sparrow III medium range air-to-air missle",27,0,2,0,34567,225,1,20,12,0.12,0.2,0.15,0.9,1.1,0.1,70000,7,50000,50,0,35,300,"AIM-7M Seeker",1,,20,8000,0,0,0.01,5000,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "AIM-54C",5,64,478000,,"mis/aim54ico.jpg","am-39.xml","Phoenix long range air-to-air missle",40,0,10,0,34567,460,1.1,20,14,0.15,0.2,0.17,0.9,1.1,0.1,100000,10,80000,95,5,80,400,"AIM-54C Seeker",1,,35,8000,0,0,0.01,5000,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "AIM-120C",5,64,400000,,"mis/aim120ico.jpg","aim-9.xml","AMRAAM medium range air-to-air missile",12,0,2,0,34567,150,1,20,15,0.1,0.19,0.125,0.9,1.1,0.1,80000,4,50000,55,0,50,300,"AIM-120 Seeker",1,,15,12000,0,0,0.01,5000,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "AGM-I",5,64,100000,,"mis/asm_unk.jpg","am-39.xml","Test air to ground missile for land targets",50,0,4,0,34567,100,0.01,20,15,0.2,0.4,0.3,0.9,1.1,0.1,50000,20,20000,120,10,180,200,,0,,20,15000,0,1,1.5,250,1,1,0,750,3,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "AGM-88",5,64,300000,,"mis/agm_unk.jpg","am-39.xml","HARM anti-radiation air-to-ground missile",56,0,4,0,34567,360,1,20,15,0.1,0.3,0.2,0.9,1.1,0.1,60000,5,60000,60,5,45,125,"HARM Seeker",0,,10,10000,0,2,0,250,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "AGM-65D",5,64,125000,,"mis/agm65ico.jpg","am-39.xml","Maverick air to ground missile",56,0,4,0,34567,200,1,20,15,0.1,0.3,0.2,0.9,1.1,0.1,50000,10,30000,50,5,27,125,"Maverick Infrared",1,,9,8000,0,2,0,250,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "AGM-119B",5,64,0,,"mis/sam_unk.jpg","roland-sam.xml","Penguin AGM-19B ASM",180,0,1,0,34567,385,1,20,10,0.2,0.2,3,1.2,1.2,0.1,44000,1,44000,62,0,35,100,"AGM-119B seeker",0,,26,100,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "AAM-SR",5,64,100000,,"mis/aam_unk.jpg","aim-9.xml","Short range air-to-air generic",2,0,2,0,34567,100,0.01,20,15,0.1,0.19,0.125,0.9,1.1,0.1,80000,5,50000,20,0,40,200,"AAM Seeker",0,,0,5000,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "AAM-I",5,64,100000,,"mis/aam_unk.jpg","aim-9.xml",,3,0,2,0,34567,100,0.01,20,15,0.1,0.19,0.125,0.9,1.1,0.1,80000,5,50000,55,0,60,200,"AAM Seeker",0,,20,15000,0,2,4,5000,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "AA-2",5,64,45000,,"mis/aa2ico.jpg","aim-9.xml","AA-2 Atoll",6,0,2,0,34567,75,0.01,20,14,0.1,0.19,0.125,0.9,1.1,0.1,80000,5,35000,14,0,10,300,"AIM-9M Seeker",1,,0.01,5000,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "AA-12",5,64,100000,"aa12-AXX-1.jpg;aa12_setup.jpg","mis/aam_unk.jpg","aa-12.xml",,3,0,2,0,34567,100,0.01,20,15,0.1,0.19,0.125,0.9,1.1,0.1,80000,5,50000,75,0,60,200,"AA-12 Seeker",1,,20,15000,0,0,0.01,5000,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "9M-38",5,64,100000,,"mis/sam_unk.jpg","roland-sam.xml","(SA-N-7) Shtil SAM",10,0,10,0,34567,55,1,20,15,0.15,0.2,5,2.8,3,0.1,100000,5,80000,40,10,30,400,"9M-38 Seeker",1,,0,10000,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ! "3M-80",5,64,500000,"3m80.jpg;3m80-1.jpg","mis/ssm_unk.jpg","3m80.xml","(SS-N-22 Sunburn) Moskit ship-launched antiship missile",320,0,1,0,34567,4500,1,20,15,0.08,0.15,1,2.3,2.4,0.1,550000,5,50000,130,0,90,250,"3M-80 Seeker",0,,25,300,0,1,5,40,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
Update of /cvsroot/gcblue/gcb_wx/src/graphics In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv24958/src/graphics Modified Files: tc3DModel.cpp tc3DViewer.cpp tc3DWindow.cpp tcButton.cpp tcFlightPortGui.cpp tcMapView.cpp tcPlatformGui.cpp Log Message: Index: tcFlightPortGui.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/graphics/tcFlightPortGui.cpp,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** tcFlightPortGui.cpp 18 Jun 2006 00:45:00 -0000 1.8 --- tcFlightPortGui.cpp 5 Sep 2006 01:04:25 -0000 1.9 *************** *** 400,405 **** wxPoint pos = wxWindow::GetPosition(); wxSize size = wxWindow::GetSize(); tcPlatformGui* gui = new tcPlatformGui(platform->mnID, platformId, wxPoint(pos.x, pos.y + size.GetHeight() + 10), ! "xml/platform_gui_default.xml"); wxASSERT(item); item->SetGui(gui); --- 400,416 ---- wxPoint pos = wxWindow::GetPosition(); wxSize size = wxWindow::GetSize(); + + wxString xmlFile; + if (tcAirObject* air = dynamic_cast<tcAirObject*>(platform)) + { + xmlFile = "xml/platform_gui_air.xml"; + } + else + { + xmlFile = "xml/platform_gui_default.xml"; + } + tcPlatformGui* gui = new tcPlatformGui(platform->mnID, platformId, wxPoint(pos.x, pos.y + size.GetHeight() + 10), ! xmlFile.c_str()); wxASSERT(item); item->SetGui(gui); Index: tc3DModel.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/graphics/tc3DModel.cpp,v retrieving revision 1.38 retrieving revision 1.39 diff -C2 -d -r1.38 -r1.39 *** tc3DModel.cpp 17 Aug 2006 01:28:04 -0000 1.38 --- tc3DModel.cpp 5 Sep 2006 01:04:25 -0000 1.39 *************** *** 615,619 **** { if (modelNode.valid()) return; // model already loaded ! if (tcOptions::Get()->OptionStringExists("Log3DModelDetails")) { std::cout << "Loading 3D model: " << model_name << " \n"; --- 615,622 ---- { if (modelNode.valid()) return; // model already loaded ! ! const bool log3Ddetails = tcOptions::Get()->OptionStringExists("Log3DModelDetails"); ! ! if (log3Ddetails) { std::cout << "Loading 3D model: " << model_name << " \n"; *************** *** 632,639 **** { osgUtil::SmoothingVisitor smoothingVisitor; ! modelNode->accept(smoothingVisitor); } ! fprintf(stdout, "tc3DModel--Loaded 3D model: %s\n", model_name.c_str()); #ifdef _DEBUG --- 635,645 ---- { osgUtil::SmoothingVisitor smoothingVisitor; ! modelNode->accept(smoothingVisitor); } ! if (log3Ddetails) ! { ! fprintf(stdout, "tc3DModel--Loaded 3D model: %s\n", model_name.c_str()); ! } #ifdef _DEBUG *************** *** 644,648 **** #endif - } --- 650,653 ---- Index: tcPlatformGui.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/graphics/tcPlatformGui.cpp,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** tcPlatformGui.cpp 18 Jun 2006 00:45:00 -0000 1.10 --- tcPlatformGui.cpp 5 Sep 2006 01:04:25 -0000 1.11 *************** *** 49,52 **** --- 49,108 ---- #endif + BEGIN_EVENT_TABLE(tcPlatformGui, tcXmlWindow) + EVT_COMMAND(10, wxEVT_COMMAND_BUTTON_CLICKED, tcPlatformGui::OnLoadoutCommand) + EVT_COMMAND(11, wxEVT_COMMAND_BUTTON_CLICKED, tcPlatformGui::OnLoadoutCommand) + EVT_COMMAND(12, wxEVT_COMMAND_BUTTON_CLICKED, tcPlatformGui::OnLoadoutCommand) + EVT_COMMAND(13, wxEVT_COMMAND_BUTTON_CLICKED, tcPlatformGui::OnLoadoutCommand) + EVT_COMMAND(14, wxEVT_COMMAND_BUTTON_CLICKED, tcPlatformGui::OnLoadoutCommand) + EVT_COMMAND(86, wxEVT_COMMAND_BUTTON_CLICKED, tcContainerGui::OnCloseCommand) + END_EVENT_TABLE() + + + + + void tcPlatformGui::OnLoadoutCommand(wxCommandEvent& event) + { + std::string loadoutType; + switch (event.GetId()) + { + case 10: loadoutType = "Empty"; break; + case 11: loadoutType = "AAW"; break; + case 12: loadoutType = "ASuW"; break; + case 13: loadoutType = "ASW"; break; + case 14: loadoutType = "Strike"; break; + default: loadoutType = "Error"; break; + } + + tcPlatformObject* platform = GetPlatform(); + tcPlatformObject* host = 0; + + if (hostId != -1) + { + host = dynamic_cast<tcPlatformObject*>(tcSimState::Get()->GetObject(hostId)); + } + else + { + host = platform; + } + + wxASSERT(platform != 0); + wxASSERT(host != 0); + + size_t nStores = host->GetMagazineCount(); + for (size_t n=0; n<nStores; n++) + { + tcStores* mag = host->GetMagazine(n); + wxASSERT(mag); + + if (mag->HasStoresForThisObject(platform)) + { + mag->AddAutomationOp(loadoutType, platform); + return; + } + } + + fprintf(stderr, "tcPlatformGui::OnLoadoutCommand -- No compatible magazine found\n"); + } + /** * If slot has tcLauncherContainerItem then update it, otherwise create Index: tcMapView.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/graphics/tcMapView.cpp,v retrieving revision 1.46 retrieving revision 1.47 diff -C2 -d -r1.46 -r1.47 *** tcMapView.cpp 17 Aug 2006 01:28:04 -0000 1.46 --- tcMapView.cpp 5 Sep 2006 01:04:25 -0000 1.47 *************** *** 1981,1985 **** osg::Geometry* rangeCircle; ! if (pMO->mfArc_deg >= 360.0f) { rangeCircle = CreatePieGeometry(width, height, -180, 180, --- 1981,1985 ---- osg::Geometry* rangeCircle; ! if ((pMO->mfArc_deg >= 360.0f) || (pMO->mfArc_deg <= 0)) { rangeCircle = CreatePieGeometry(width, height, -180, 180, Index: tcButton.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/graphics/tcButton.cpp,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** tcButton.cpp 21 Apr 2006 23:29:09 -0000 1.24 --- tcButton.cpp 5 Sep 2006 01:04:25 -0000 1.25 *************** *** 377,382 **** --- 377,384 ---- mouseOverCaptionPosition.x = width / 2; + #ifdef _DEBUG fprintf(stdout,"Created button %s, pos (%d,%d), size: (%d,%d)\n", caption.c_str(), x, y, width, height); + #endif } Index: tc3DWindow.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/graphics/tc3DWindow.cpp,v retrieving revision 1.38 retrieving revision 1.39 diff -C2 -d -r1.38 -r1.39 *** tc3DWindow.cpp 20 Aug 2006 22:24:02 -0000 1.38 --- tc3DWindow.cpp 5 Sep 2006 01:04:25 -0000 1.39 *************** *** 1928,1932 **** text->setText("UNINTIALIZED"); ! text->setUseDisplayList(true); --- 1928,1932 ---- text->setText("UNINTIALIZED"); ! text->setUseDisplayList(false); Index: tc3DViewer.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/graphics/tc3DViewer.cpp,v retrieving revision 1.36 retrieving revision 1.37 diff -C2 -d -r1.36 -r1.37 *** tc3DViewer.cpp 17 Aug 2006 01:28:04 -0000 1.36 --- tc3DViewer.cpp 5 Sep 2006 01:04:25 -0000 1.37 *************** *** 2213,2217 **** */ #else ! osg::setNotifyLevel(osg::NOTICE); #endif --- 2213,2217 ---- */ #else ! osg::setNotifyLevel(osg::WARN); #endif |
From: Dewitt C. <ddc...@us...> - 2006-09-05 01:04:30
|
Update of /cvsroot/gcblue/gcb_wx/src/scriptinterface In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv24958/src/scriptinterface Modified Files: tcPlatformInterface.cpp Log Message: Index: tcPlatformInterface.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/scriptinterface/tcPlatformInterface.cpp,v retrieving revision 1.63 retrieving revision 1.64 diff -C2 -d -r1.63 -r1.64 *** tcPlatformInterface.cpp 27 Aug 2006 21:28:54 -0000 1.63 --- tcPlatformInterface.cpp 5 Sep 2006 01:04:25 -0000 1.64 *************** *** 430,434 **** /** ! * return best launcher for target, best.mnLauncher set to -1 if * no compatible launchers or no target is selected */ --- 430,434 ---- /** ! * @return best launcher for target, best.mnLauncher set to -1 if * no compatible launchers or no target is selected */ *************** *** 464,467 **** --- 464,471 ---- nTargetType = SUBSURFACE_TARGET; } + else if (track.IsGround()) + { + nTargetType = LAND_TARGET; + } else { *************** *** 472,500 **** // or shortest range launcher if target is in range int nCount = GetLauncherCount(); ! for (int n=0;n<nCount;n++) ! { ! tcLauncherInfo info; ! if (GetLauncherInfo(info, n)) ! { ! int bCompatible = info.mnTargetFlags & nTargetType; ! bool bInRange = mfTargetRange <= info.mfRange_km; ! if (bCompatible && info.mnQuantity) ! { ! if (best.mnLauncher == -1) ! { ! best = info; ! } ! else if (bInRange && (info.mfRange_km < best.mfRange_km)) ! { ! best = info; ! } ! else if (info.mfRange_km > best.mfRange_km) ! { ! best = info; ! } ! } ! } ! } ! return best; } --- 476,506 ---- // or shortest range launcher if target is in range int nCount = GetLauncherCount(); ! for (int n=0;n<nCount;n++) ! { ! tcLauncherInfo info; ! bool launcherValid = GetLauncherInfo(info, n); ! bool launcherOperational = launcherValid && (info.launcherStatus != tcLauncher::DAMAGED) && ! (info.launcherStatus != tcLauncher::LAUNCHER_EMPTY); ! int bCompatible = info.mnTargetFlags & nTargetType; ! ! if (bCompatible && launcherOperational) ! { ! bool bInRange = mfTargetRange <= info.mfRange_km; ! if (best.mnLauncher == -1) ! { ! best = info; ! } ! else if (bInRange && (info.mfRange_km < best.mfRange_km)) ! { ! best = info; ! } ! else if (info.mfRange_km > best.mfRange_km) ! { ! best = info; ! } ! } ! ! } ! return best; } *************** *** 508,517 **** } bool tcPlatformInterface::GetLauncherInfo(scriptinterface::tcLauncherInfo& info, int anLauncher) { info.mnLauncher = -1; info.launcherStatus = tcLauncher::LAUNCHER_BUSY; - tcLauncher* pLauncher = mpPlatformObj->GetLauncher(anLauncher); if (pLauncher == 0) --- 514,526 ---- } + /** + * @return true if valid launcher + */ bool tcPlatformInterface::GetLauncherInfo(scriptinterface::tcLauncherInfo& info, int anLauncher) { info.mnLauncher = -1; info.launcherStatus = tcLauncher::LAUNCHER_BUSY; + info.mnLaunchMode = 4; tcLauncher* pLauncher = mpPlatformObj->GetLauncher(anLauncher); if (pLauncher == 0) *************** *** 522,530 **** info.launcherStatus = pLauncher->GetLauncherStatus(); ! if ((info.launcherStatus == tcLauncher::LAUNCHER_BUSY) || ! (info.launcherStatus >= tcLauncher::NOT_DETECTED_FC)) ! { ! return false; ! } // convert engagement sector values to degrees --- 531,537 ---- info.launcherStatus = pLauncher->GetLauncherStatus(); ! info.mnLauncher = anLauncher; ! info.mnQuantity = pLauncher->mnUncommitted; ! info.mnTargetFlags = pLauncher->mnTargetFlags; // convert engagement sector values to degrees *************** *** 565,581 **** info.maxDepth_m = torpDBObj->maxDepth_m; } ! else { //fprintf(stderr, "Error - unsupported launcher child class (%s)\n", // pLauncher->mpChildDBObj->GetClassName()); return false; } - info.mnLauncher = anLauncher; - info.mnQuantity = pLauncher->mnUncommitted; - info.mnTargetFlags = pLauncher->mnTargetFlags; - if (isBomb) { ! info.mnLaunchMode = 2; } else if (pLauncher->meLaunchMode == DATUM_ONLY) --- 572,586 ---- info.maxDepth_m = torpDBObj->maxDepth_m; } ! else ! { //fprintf(stderr, "Error - unsupported launcher child class (%s)\n", // pLauncher->mpChildDBObj->GetClassName()); + info.mnLauncher = -1; return false; } if (isBomb) { ! info.mnLaunchMode = 3; } else if (pLauncher->meLaunchMode == DATUM_ONLY) *************** *** 583,596 **** info.mnLaunchMode = 0; } ! else if ((pLauncher->meLaunchMode == SEEKER_TRACK)|| ! (pLauncher->meLaunchMode == FC_TRACK) || ! (pLauncher->meLaunchMode == TARGET_ONLY)) ! { ! info.mnLaunchMode = 1; ! } ! else { ! info.mnLaunchMode = 3; // other } return true; --- 588,600 ---- info.mnLaunchMode = 0; } ! else if (pLauncher->IsChildFireAndForget()) ! { ! info.mnLaunchMode = 1; // platform guidance not required after launch ! } ! else { ! info.mnLaunchMode = 2; // requires platform sensor for initial guidance } + return true; |
From: Dewitt C. <ddc...@us...> - 2006-09-05 01:04:28
|
Update of /cvsroot/gcblue/gcb_wx/src/sim In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv24958/src/sim Modified Files: tcLauncher.cpp tcMapData.cpp tcPlatformObject.cpp tcRadar.cpp tcStores.cpp Log Message: Index: tcLauncher.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/sim/tcLauncher.cpp,v retrieving revision 1.37 retrieving revision 1.38 diff -C2 -d -r1.37 -r1.38 *** tcLauncher.cpp 18 Jun 2006 00:45:03 -0000 1.37 --- tcLauncher.cpp 5 Sep 2006 01:04:25 -0000 1.38 *************** *** 620,623 **** --- 620,639 ---- /** + * @return true if child does not require platform guidance after launch + */ + bool tcLauncher::IsChildFireAndForget() + { + if (tcMissileDBObject* missileData = dynamic_cast<tcMissileDBObject*>(mpChildDBObj)) + { + return missileData->IsFireAndForget(); + } + else + { + return true; + } + } + + + /** * Sets child quantity, up to capacity */ Index: tcPlatformObject.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/sim/tcPlatformObject.cpp,v retrieving revision 1.62 retrieving revision 1.63 diff -C2 -d -r1.62 -r1.63 *** tcPlatformObject.cpp 18 Jun 2006 00:45:03 -0000 1.62 --- tcPlatformObject.cpp 5 Sep 2006 01:04:25 -0000 1.63 *************** *** 396,399 **** --- 396,408 ---- + const std::string& tcPlatformObject::GetLoadoutTag() const + { + return loadoutTag; + } + + void tcPlatformObject::SetLoadoutTag(const std::string& s) + { + loadoutTag = s; + } /** *************** *** 1005,1009 **** */ tcPlatformObject::tcPlatformObject() ! : mpDBObject(0) { wxASSERT(false); --- 1014,1019 ---- */ tcPlatformObject::tcPlatformObject() ! : mpDBObject(0), ! loadoutTag("") { wxASSERT(false); *************** *** 1018,1022 **** tcPlatformObject::tcPlatformObject(tcGenericDBObject *obj) : tcGameObject(obj), tcSensorPlatform(), ! isRefueling(false) { using namespace database; --- 1028,1033 ---- tcPlatformObject::tcPlatformObject(tcGenericDBObject *obj) : tcGameObject(obj), tcSensorPlatform(), ! isRefueling(false), ! loadoutTag("") { using namespace database; *************** *** 1100,1104 **** tcSensorPlatform(o), commandObj(o.commandObj), ! isRefueling(o.isRefueling) { brain = new Brain(this); // need copy constructor for this --- 1111,1116 ---- tcSensorPlatform(o), commandObj(o.commandObj), ! isRefueling(o.isRefueling), ! loadoutTag(o.loadoutTag) { brain = new Brain(this); // need copy constructor for this Index: tcMapData.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/sim/tcMapData.cpp,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** tcMapData.cpp 27 Aug 2006 21:28:54 -0000 1.29 --- tcMapData.cpp 5 Sep 2006 01:04:25 -0000 1.30 *************** *** 1777,1787 **** fMain.Close(); ! tcString s; ! s.Format("tcMapData - LoadTile (lon %.1f,lat %.1f) (m %d n %d) idx:%d - success", ! fStartLon_deg,fStartLat_deg,mtile,ntile,nNewIndex); ! WTL(s.GetBuffer()); ! if ((pTileData->maMapData[0][0] == 0)&&(pTileData->maMapData[10][10]==0)) { ! WTLC("bad tile data"); } --- 1777,1788 ---- fMain.Close(); ! //tcString s; ! //s.Format("tcMapData - LoadTile (lon %.1f,lat %.1f) (m %d n %d) idx:%d - success", ! // fStartLon_deg,fStartLat_deg,mtile,ntile,nNewIndex); ! //WTL(s.GetBuffer()); ! if ((pTileData->maMapData[0][0] == 0)&&(pTileData->maMapData[10][10]==0)) ! { ! WTLC("Error: bad tile data"); } *************** *** 1895,1906 **** demTile.Close(); ! tcString s; ! s.Format("tcMapData - LoadTile (lon %.1f,lat %.1f) (m %d n %d) idx:%d - success", ! fStartLon_deg, fStartLat_deg, mtile, ntile, nNewIndex); ! WTL(s.GetBuffer()); if ((pTileData->maMapData[0][0] == 0)&&(pTileData->maMapData[10][10]==0)) { ! WTLC("bad tile data"); } --- 1896,1907 ---- demTile.Close(); ! //tcString s; ! //s.Format("tcMapData - LoadTile (lon %.1f,lat %.1f) (m %d n %d) idx:%d - success", ! // fStartLon_deg, fStartLat_deg, mtile, ntile, nNewIndex); ! //WTL(s.GetBuffer()); if ((pTileData->maMapData[0][0] == 0)&&(pTileData->maMapData[10][10]==0)) { ! WTLC("Error: bad tile data"); } Index: tcStores.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/sim/tcStores.cpp,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** tcStores.cpp 17 Aug 2006 01:28:05 -0000 1.11 --- tcStores.cpp 5 Sep 2006 01:04:25 -0000 1.12 *************** *** 33,36 **** --- 33,40 ---- #include "tcDatabase.h" #include "tcGenericDBObject.h" + #include "tcWeaponDBObject.h" + #include "tcMissileDBObject.h" + #include "tcTorpedoDBObject.h" + #include "tcBallisticDBObject.h" #include "tcFlightOpsObject.h" #include "tcFlightPort.h" *************** *** 278,281 **** --- 282,318 ---- /** + * Adds new automation operation used to set platform to one of several generic + * configurations. + * @param type "Empty" empty all launchers, "AAW" anti-air warfare, "ASuW" antisurface warfare, "ASW" antisubmarine warfare, "Strike" ground strike + */ + void tcStores::AddAutomationOp(const std::string& type, tcGameObject* child) + { + if (type == "Error") + { + wxASSERT(false); + return; + } + + // first search for any existing ops with this child and remove + std::vector<AutomationOperation> temp; + for (size_t n=0; n<automationOps.size(); n++) + { + if (automationOps[n].obj != child) + { + temp.push_back(automationOps[n]); + } + } + automationOps = temp; + + + AutomationOperation op; + op.type = type; + op.obj = child; + op.stage = 0; + + automationOps.push_back(op); + } + + /** * */ *************** *** 989,992 **** --- 1026,1031 ---- if (dt < 1.0) return; + UpdateAutomation(); + lastUpdate = t; *************** *** 1004,1007 **** --- 1043,1386 ---- } + void tcStores::UpdateAutomation() + { + for (size_t n=0; n<automationOps.size(); n++) + { + AutomationOperation& op = automationOps[n]; + if (op.stage == 0) + { + // all ops start with completely unloading the platform + if (UnloadPlatform(op.obj)) + { + op.stage = 1; + } + else + { + op.stage = 86; + } + } + else if (op.stage == 1) + { + if (AllLaunchersEmpty(op.obj)) + { + if (op.type == "Empty") + { + op.stage = 86; + } + else + { + if (LoadPlatform(op.obj, op.type)) + { + op.stage = 2; + } + else + { + op.stage = 86; + } + } + } + } + else if (op.stage == 2) + { + if (AllLaunchersReady(op.obj)) + { + op.stage = 86; + } + } + else + { + op.stage = 86; + } + } + + // remove all automation ops at delete stage (op.stage == 86) + std::vector<AutomationOperation> temp; + + for (size_t n=0; n<automationOps.size(); n++) + { + if (automationOps[n].stage != 86) + { + temp.push_back(automationOps[n]); + } + else + { + if (parent->IsOwnAlliance()) + { + wxString s = wxString::Format("%s (%s) - Completed loadout automation (%s)\n", + parent->mzUnit.c_str(), parent->mzClass.c_str(), automationOps[n].type.c_str()); + tcMessageInterface::Get()->ChannelMessage("Info", s.c_str()); + } + } + } + automationOps = temp; + + + } + + + bool tcStores::LoadPlatform(tcGameObject* child, const std::string& type) + { + tcPlatformObject* obj = dynamic_cast<tcPlatformObject*>(GetChildOrParent(child)); + + // check that magazine is accessible (child hasn't taken off yet) + if (obj == 0) + { + if (parent->IsOwnAlliance()) + { + wxString s = wxString::Format("%s (%s) - Automation failed: Cannot load platform, no access to magazine\n", + parent->mzUnit.c_str(), parent->mzClass.c_str()); + tcMessageInterface::Get()->ChannelMessage("Info", s.c_str()); + } + return false; + } + + // verify all launchers are empty + if (!AllLaunchersEmpty(child)) + { + if (parent->IsOwnAlliance()) + { + wxString s = wxString::Format("%s (%s) - Automation failed: Cannot load platform, launchers not empty\n", + parent->mzUnit.c_str(), parent->mzClass.c_str()); + tcMessageInterface::Get()->ChannelMessage("Info", s.c_str()); + } + return false; + } + + // verify launchers are all valid + size_t nLaunchers = obj->GetLauncherCount(); + for (size_t n=0; n<nLaunchers; n++) + { + tcLauncher* launcher = obj->GetLauncher(n); + wxASSERT(launcher); + + if (launcher == 0) + { + if (parent->IsOwnAlliance()) + { + wxString s = wxString::Format("%s (%s) - Automation failed: Cannot load platform, corrupt launcher\n", + parent->mzUnit.c_str(), parent->mzClass.c_str()); + tcMessageInterface::Get()->ChannelMessage("Info", s.c_str()); + } + return false; + } + } + + + + + // for each launcher find the best loadout based on mission type, weapon range, weapon availability + int targetMask = 0; + + if (type == "AAW") targetMask = AIR_TARGET; + else if (type == "ASuW") targetMask = SURFACE_TARGET; + else if (type == "ASW") targetMask = SUBSURFACE_TARGET; + else if (type == "Strike") targetMask = LAND_TARGET; + else wxASSERT(false); + + + for (size_t n=0; n<nLaunchers; n++) + { + tcLauncher* launcher = obj->GetLauncher(n); + size_t nTypes = launcher->GetCompatibleCount(); + wxASSERT(nTypes > 0); + + std::string bestType = launcher->GetCompatibleName(0); + size_t bestQuantity = CurrentItemQuantity(bestType); + float bestRange_km; + int bestTargetFlags; + + GetWeaponInfo(bestType, bestRange_km, bestTargetFlags); + + // cycle through other types and compare + for (size_t k=1; k<nTypes; k++) + { + std::string candidateType = launcher->GetCompatibleName(k); + size_t candidateQuantity = CurrentItemQuantity(candidateType); + float candidateRange_km; + int candidateTargetFlags; + GetWeaponInfo(candidateType, candidateRange_km, candidateTargetFlags); + + bool betterMissionFit = ((bestTargetFlags & targetMask) == 0) && + ((candidateTargetFlags & targetMask) != 0); + bool worseMissionFit = ((bestTargetFlags & targetMask) != 0) && + ((candidateTargetFlags & targetMask) == 0); + bool fitsMission = ((candidateTargetFlags & targetMask) != 0); + bool betterRange = candidateRange_km > bestRange_km; + bool isAvailable = (candidateQuantity > 0); + + bool better = isAvailable && + (betterMissionFit || (!worseMissionFit && betterRange)); + + if (better) + { + bestType = candidateType; + bestQuantity = candidateQuantity; + bestRange_km = candidateRange_km; + bestTargetFlags = candidateTargetFlags; + } + } + + // load launcher with best results + LoadLauncher(n, bestType, child); + } + + return true; + } + + + void tcStores::GetWeaponInfo(const std::string& name, float& range_km, int& targetFlags) const + { + range_km = 0; + targetFlags = 0; + + tcDatabaseObject* databaseObj = tcDatabase::Get()->GetObject(name); + if (databaseObj == 0) return; + + if (tcWeaponDBObject* weaponObj = dynamic_cast<tcWeaponDBObject*>(databaseObj)) + { + targetFlags = weaponObj->targetFlags; + if (tcMissileDBObject* missileObj = dynamic_cast<tcMissileDBObject*>(weaponObj)) + { + range_km = missileObj->mfRange_km; + } + else if (tcTorpedoDBObject* torpedoObj = dynamic_cast<tcTorpedoDBObject*>(weaponObj)) + { + range_km = torpedoObj->mfRange_km; + } + else if (tcBallisticDBObject* ballObj = dynamic_cast<tcBallisticDBObject*>(weaponObj)) + { + range_km = ballObj->maxRange_km; + } + } + + + } + + + bool tcStores::UnloadPlatform(tcGameObject* child) + { + tcPlatformObject* obj = dynamic_cast<tcPlatformObject*>(GetChildOrParent(child)); + + if (obj == 0) + { + if (parent->IsOwnAlliance()) + { + wxString s = wxString::Format("%s (%s) - Automation failed: Cannot unload platform, no access to magazine\n", + parent->mzUnit.c_str(), parent->mzClass.c_str()); + tcMessageInterface::Get()->ChannelMessage("Info", s.c_str()); + } + return false; + } + + size_t nLaunchers = obj->GetLauncherCount(); + for (size_t n=0; n<nLaunchers; n++) + { + tcLauncher* launcher = obj->GetLauncher(n); + wxASSERT(launcher); + + if ((launcher != 0) && (launcher->mnCurrent > 0)) + { + UnloadLauncher(n, child); + } + } + + return true; + } + + /** + * @return true if any ops for child are active + */ + bool tcStores::HasActiveOp(tcGameObject* child) const + { + std::vector<AutomationOperation>::const_iterator opIter; + for (opIter = automationOps.begin(); opIter != automationOps.end(); ++opIter) + { + if (opIter->obj == child) + { + return true; + } + } + + return false; + } + + /** + * @return true if all launchers of child are empty + */ + bool tcStores::AllLaunchersEmpty(tcGameObject* child) + { + tcPlatformObject* obj = dynamic_cast<tcPlatformObject*>(GetChildOrParent(child)); + + size_t nLaunchers = obj->GetLauncherCount(); + for (size_t n=0; n<nLaunchers; n++) + { + tcLauncher* launcher = obj->GetLauncher(n); + wxASSERT(launcher); + + if ((launcher != 0) && (launcher->mnCurrent > 0)) + { + return false; + } + } + + return true; + } + + /** + * @return true if all launchers of child are full and ready + */ + bool tcStores::AllLaunchersReady(tcGameObject* child) + { + tcPlatformObject* obj = dynamic_cast<tcPlatformObject*>(GetChildOrParent(child)); + + size_t nLaunchers = obj->GetLauncherCount(); + for (size_t n=0; n<nLaunchers; n++) + { + tcLauncher* launcher = obj->GetLauncher(n); + wxASSERT(launcher); + + if ((launcher != 0) && ((launcher->mnCurrent == 0) || (launcher->IsLoading()))) + { + return false; + } + } + + return true; + } + + + /** + * Used for good guess as to which magazine should manage automation operation + * for obj. + * @return true if stores has any items that are compatible with obj + */ + bool tcStores::HasStoresForThisObject(tcGameObject* obj) + { + tcPlatformObject* platform = dynamic_cast<tcPlatformObject*>(GetChildOrParent(obj)); + if (platform == 0) + { + wxASSERT(false); + return false; + } + + size_t nLaunchers = platform->GetLauncherCount(); + for (size_t n=0; n<nLaunchers; n++) + { + tcLauncher* launcher = platform->GetLauncher(n); + wxASSERT(launcher); + + size_t nCompatible = launcher->GetCompatibleCount(); + for (size_t k=0; k<nCompatible; k++) + { + if (CurrentItemQuantity(launcher->GetCompatibleName(k)) > 0) + { + return true; + } + } + } + + return false; + } + /** * For multiplayer, for obj's that are flightport objects, only objects in Index: tcRadar.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/sim/tcRadar.cpp,v retrieving revision 1.39 retrieving revision 1.40 diff -C2 -d -r1.39 -r1.40 *** tcRadar.cpp 17 Aug 2006 01:28:05 -0000 1.39 --- tcRadar.cpp 5 Sep 2006 01:04:25 -0000 1.40 *************** *** 410,414 **** void tcRadar::SetFireControlSensor(long id, unsigned char idx) { ! wxASSERT(isSemiactive || isCommandReceiver); tcSensorState::SetFireControlSensor(id, idx); --- 410,414 ---- void tcRadar::SetFireControlSensor(long id, unsigned char idx) { ! wxASSERT((id == -1) || isSemiactive || isCommandReceiver); tcSensorState::SetFireControlSensor(id, idx); |
From: Dewitt C. <ddc...@us...> - 2006-09-05 01:04:28
|
Update of /cvsroot/gcblue/gcb_wx/xml In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv24958/xml Modified Files: options.xml Added Files: platform_gui_air.xml Log Message: Index: options.xml =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/xml/options.xml,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** options.xml 17 Aug 2006 01:31:33 -0000 1.26 --- options.xml 5 Sep 2006 01:04:25 -0000 1.27 *************** *** 1,6 **** <Options> <HostAddress>192.168.0.100</HostAddress> ! <LastScenarioPath>Test.AirManagementTest.py</LastScenarioPath> ! <LastScenarioName>AirManagementTest</LastScenarioName> <noCopyDatabase /> <noWriteXmlDatabase /> --- 1,6 ---- <Options> <HostAddress>192.168.0.100</HostAddress> ! <LastScenarioPath>SinglePlayer.IranStrike.py</LastScenarioPath> ! <LastScenarioName>IranStrike</LastScenarioName> <noCopyDatabase /> <noWriteXmlDatabase /> --- NEW FILE: platform_gui_air.xml --- <Window Width="420" Height="190" BackgroundImage="dblue031.jpg" > <Button X="402" Y="2" Width="16" Height="16" Command="86" Caption=""> <Image Off="close.png" On="close.png" /> </Button> <Button X="215" Y="7" Width="32" Height="16" Command="10" Caption="Empty" /> <Button X="250" Y="7" Width="32" Height="16" Command="11" Caption="AAW" /> <Button X="285" Y="7" Width="32" Height="16" Command="12" Caption="ASuW" /> <Button X="355" Y="7" Width="32" Height="16" Command="13" Caption="ASW" /> <Button X="320" Y="7" Width="32" Height="16" Command="14" Caption="Strike" /> <Platform SlotSize="32" LauncherLocX="12" LauncherLocY="30" LauncherOffsetX="50" MagazineLocX="12" MagazineLocY="85" MagazineOffsetX="50" FlightPortLocX="12" FlightPortLocY="140" FuelLocX="300" FuelLocY="140" /> </Window> |
From: Dewitt C. <ddc...@us...> - 2006-09-05 01:04:27
|
Update of /cvsroot/gcblue/gcb_wx/src/database In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv24958/src/database Modified Files: tcMissileDBObject.cpp Log Message: Index: tcMissileDBObject.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/database/tcMissileDBObject.cpp,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** tcMissileDBObject.cpp 17 Aug 2006 01:28:03 -0000 1.24 --- tcMissileDBObject.cpp 5 Sep 2006 01:04:25 -0000 1.25 *************** *** 36,39 **** --- 36,40 ---- #include "database/tcSqlReader.h" #include "tcSensorDBObject.h" + #include "tcRadarDBObject.h" #include <sstream> *************** *** 48,56 **** ! teWeaponLaunchMode tcMissileDBObject::GetLaunchMode() { if (mnNumSegments==0) {return AUTO;} ! tsMissileFlightSegment *firstSegment = &maFlightProfile[0]; if (firstSegment->meGuidanceMode == GM_NAV) --- 49,57 ---- ! teWeaponLaunchMode tcMissileDBObject::GetLaunchMode() const { if (mnNumSegments==0) {return AUTO;} ! const tsMissileFlightSegment *firstSegment = &maFlightProfile[0]; if (firstSegment->meGuidanceMode == GM_NAV) *************** *** 129,132 **** --- 130,168 ---- /** + * @return true if missile is fire and forget + */ + bool tcMissileDBObject::IsFireAndForget() + { + if (fireAndForget == -1) + { + teWeaponLaunchMode launchMode = GetLaunchMode(); + if ((launchMode == DATUM_ONLY) || (launchMode == AUTO)) + { + fireAndForget = 1; + } + else if (launchMode == FC_TRACK) + { + fireAndForget = 0; + } + else // launchMode == SEEKER_TRACK + { + wxASSERT(launchMode == SEEKER_TRACK); + tcDatabaseObject* obj = database->GetObject(GetSensorKey()); + if (tcRadarDBObject* radar = dynamic_cast<tcRadarDBObject*>(obj)) + { + fireAndForget = (radar->isCommandReceiver || radar->isSemiactive) ? 0 : 1; + } + else + { + fireAndForget = 1; + } + } + + } + + return (fireAndForget != 0); + } + + /** * @return true if this missile relies on a fire control sensor from the parent platform for any of its guidance */ *************** *** 524,528 **** // set other params that do not come from database file ! sensorKey = NULL_INDEX; } --- 560,565 ---- // set other params that do not come from database file ! sensorKey = NULL_INDEX; ! fireAndForget = -1; } *************** *** 590,594 **** tcMissileDBObject::tcMissileDBObject(tcMissileDBObject& obj) : tcWeaponDBObject(obj), ! seekerFOV_rad(obj.seekerFOV_rad) { mnClassID = DTYPE_MISSILE; --- 627,632 ---- tcMissileDBObject::tcMissileDBObject(tcMissileDBObject& obj) : tcWeaponDBObject(obj), ! seekerFOV_rad(obj.seekerFOV_rad), ! fireAndForget(obj.fireAndForget) { mnClassID = DTYPE_MISSILE; *************** *** 629,633 **** tcMissileDBObject::tcMissileDBObject() : tcWeaponDBObject(), ! seekerFOV_rad(-1.0f) { mnClassID = DTYPE_MISSILE; --- 667,672 ---- tcMissileDBObject::tcMissileDBObject() : tcWeaponDBObject(), ! seekerFOV_rad(-1.0f), ! fireAndForget(-1) { mnClassID = DTYPE_MISSILE; |
From: Dewitt C. <ddc...@us...> - 2006-09-05 01:04:27
|
Update of /cvsroot/gcblue/gcb_wx/src/common In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv24958/src/common Modified Files: AError.cpp simmath.cpp tcFile.cpp Log Message: Index: AError.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/common/AError.cpp,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** AError.cpp 17 Aug 2006 01:28:03 -0000 1.10 --- AError.cpp 5 Sep 2006 01:04:25 -0000 1.11 *************** *** 29,105 **** #include "AError.h" #include <stdio.h> - #include <string.h> - #include <wx/string.h> - - - void - ShowAndAbort(char* sString) { - //MessageBox(sString); - //AfxGetMainWnd()->PostMessage(WM_CLOSE, 0, 0); - } - - void - ShowError(char* sString) { - //char buffer[256]; - //sprintf( buffer, "%s", sString); - //MessageBox( NULL, buffer, "ERROR", MB_OK | MB_ICONHAND | MB_SYSTEMMODAL ); - } - - - void - PopupMessage(char* sString) { - //char buffer[256]; - //sprintf( buffer, "%s", sString); - ///MessageBox( NULL, buffer, "Message", MB_OK | MB_ICONINFORMATION | MB_SYSTEMMODAL ); - } - - - - - void - WriteToLog(const char* sString) { - int result; - static int linecount = 0; - static FILE* logfile=NULL; - - - if (strcmp(sString,"FCLOSE")==0) { - if (logfile) fclose(logfile); - return; - } - if (linecount==900) { - fprintf(logfile,"---- LOG STOPPED AT 900 LINES ----\n"); - linecount++; - return; - } - else if (linecount > 900) { - return; - } - - if (logfile==NULL) { - logfile = fopen("log\\log.txt","wt"); - if (logfile==NULL) - { // create directory and try again - wxMkdir("log"); // wxMkdir(L"log") caused link errors on laptop !? - logfile = fopen("log\\log.txt","wt"); - if (logfile==NULL) { - ShowAndAbort("Error opening log file\n"); - } - } - fprintf(logfile,"Log opened\n"); - } - - if (sString==NULL) { - return; - } - - - - result = fprintf(logfile, "%s\n", sString); - linecount++; - - return; } --- 29,37 ---- #include "AError.h" #include <stdio.h> + void WriteToLog(const char* sString) + { + fprintf(stdout, "%s\n", sString); } Index: simmath.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/common/simmath.cpp,v retrieving revision 1.32 retrieving revision 1.33 diff -C2 -d -r1.32 -r1.33 *** simmath.cpp 18 Jun 2006 00:44:59 -0000 1.32 --- simmath.cpp 5 Sep 2006 01:04:25 -0000 1.33 *************** *** 352,356 **** else if (mnClassification & (PTYPE_AIR | PTYPE_MISSILE)) { ! return 1000.0f; } else if (mnClassification & PTYPE_FIXED) --- 352,365 ---- else if (mnClassification & (PTYPE_AIR | PTYPE_MISSILE)) { ! float terrain_height_m = ! tcMapData::Get()->GetTerrainHeight(C_180OVERPI*mfLon_rad, C_180OVERPI*mfLat_rad, mfTimestamp); ! if (terrain_height_m <= 900.0f) ! { ! return 1000.0f; ! } ! else ! { ! return terrain_height_m + 100.0f; ! } } else if (mnClassification & PTYPE_FIXED) Index: tcFile.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/common/tcFile.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** tcFile.cpp 23 Mar 2006 01:11:01 -0000 1.7 --- tcFile.cpp 5 Sep 2006 01:04:25 -0000 1.8 *************** *** 23,26 **** --- 23,28 ---- int tcFile::Open(const char *azFileName, unsigned int anFlags) { + errno_t err; + if (mpFile != NULL) { *************** *** 28,45 **** mpFile = NULL; } if (anFlags & modeRead) { if (anFlags & modeText) ! mpFile = fopen(azFileName,"rt"); else ! mpFile = fopen(azFileName,"rb"); } else if (anFlags & modeWrite) { if (anFlags & modeText) ! mpFile = fopen(azFileName,"wt"); else ! mpFile = fopen(azFileName,"wb"); } return mpFile != NULL; } --- 30,51 ---- mpFile = NULL; } + if (anFlags & modeRead) { if (anFlags & modeText) ! err = fopen_s(&mpFile, azFileName, "rt"); else ! err = fopen_s(&mpFile, azFileName, "rb"); } else if (anFlags & modeWrite) { if (anFlags & modeText) ! err = fopen_s(&mpFile, azFileName, "wt"); else ! err = fopen_s(&mpFile, azFileName, "wb"); } + + if (err != 0) mpFile = NULL; + return mpFile != NULL; } |
From: Dewitt C. <ddc...@us...> - 2006-09-05 01:04:27
|
Update of /cvsroot/gcblue/gcb_wx/scripts In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv24958/scripts Modified Files: AI.py HotKey.py Menu.py UnitCommands.py Log Message: Index: HotKey.py =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/scripts/HotKey.py,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** HotKey.py 18 Jun 2006 00:47:42 -0000 1.8 --- HotKey.py 5 Sep 2006 01:04:24 -0000 1.9 *************** *** 11,18 **** SetFractionalSpeed(UnitInfo, 0.3, 1) elif (key == '2'): ! SetFractionalSpeed(UnitInfo, 0.80, 1) elif (key == '3'): ! SetFractionalSpeed(UnitInfo, 1.0, 1) elif (key == '4'): SetFractionalSpeed(UnitInfo, 1.1, 1) # afterburners or emergency power elif (key == 'e'): --- 11,20 ---- SetFractionalSpeed(UnitInfo, 0.3, 1) elif (key == '2'): ! SetFractionalSpeed(UnitInfo, 0.50, 1) elif (key == '3'): ! SetFractionalSpeed(UnitInfo, 0.80, 1) elif (key == '4'): + SetFractionalSpeed(UnitInfo, 1.0, 1) + elif (key == '5'): SetFractionalSpeed(UnitInfo, 1.1, 1) # afterburners or emergency power elif (key == 'e'): *************** *** 41,44 **** --- 43,60 ---- elif (key == 'C'): UnitInfo.ClearOrders() + # Raven58's mods: + elif (key == 'H'): + UnitInfo.SetAlt(10000) + elif (key == 'L'): + UnitInfo.SetAlt(150) + elif (key == 'M'): + UnitInfo.SetAlt(4000) + elif (key == 'v'): + ReverseOurCourse(UnitInfo) + elif (key == 'b'): + UnitInfo.AddTask('BombTarget', 3.0) + elif (key == 't'): + UnitInfo.SetAlt(4000) + ToggleRadars(UnitInfo) else: msg = 'unrecognized key: %s' % key Index: AI.py =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/scripts/AI.py,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** AI.py 17 Aug 2006 01:29:11 -0000 1.27 --- AI.py 5 Sep 2006 01:04:24 -0000 1.28 *************** *** 858,883 **** ! def InterceptTarget(UI): targetid = UI.GetTarget() if targetid == -1: return target_info = UI.GetTargetTrackInfo() # check if effective weapon is available launcher_info = UI.GetBestLauncher() launcher = launcher_info.Launcher if (launcher == -1): # if (no effective launcher is available) UI.SetTarget(-1) # clear target return - # check how many weapons are engaging target and abort if more than 4 - # debug_file = open('log/pydebug.txt', 'a') # debug_file.write('target: %d, engaged: %d\n' % (targetid, target_info.GetEngagedCount()) ) # debug_file.close() - if (target_info.GetEngagedCount() > 2): - UI.SetTarget(-1) # clear target - return # if sub, check launch depth requirements --- 858,905 ---- ! def InterceptTarget(TI): ! UI = TI.GetPlatformInterface() ! ! ! iteration = TI.GetMemoryValue(1) # will return 0 first time ! if (iteration == 0): # do initialization ! TI.SetMemoryText('Description', 'Close distance and engage target') ! TI.SetMemoryValue(2, 0) # 0 if target not engaged, 1 otherwise ! TI.SetMemoryValue(4, 0) # launcher is fire and forget (flee after attack) ! ! iteration = iteration + 1 ! TI.SetMemoryValue(1, iteration) ! ! targetid = UI.GetTarget() if targetid == -1: + TI.EndTask() return target_info = UI.GetTargetTrackInfo() + if (not target_info.IsValid()): + UI.DisplayMessage('Ending attack, lost target') + TI.EndTask() + return + + if (target_info.IsDestroyed()): + UI.DisplayMessage('Ending attack, target destroyed') + TI.EndTask() + return + + # check if effective weapon is available launcher_info = UI.GetBestLauncher() launcher = launcher_info.Launcher if (launcher == -1): # if (no effective launcher is available) + UI.DisplayMessage('Aborting attack, no effective weapons') UI.SetTarget(-1) # clear target + TI.EndTask() return # debug_file = open('log/pydebug.txt', 'a') # debug_file.write('target: %d, engaged: %d\n' % (targetid, target_info.GetEngagedCount()) ) # debug_file.close() # if sub, check launch depth requirements *************** *** 895,898 **** --- 917,922 ---- if (UI.IsSub()): SetFractionalSpeed(UI, 0.5) + elif (UI.IsAir() and (UI.GetFuel() > 0.5)): + UI.SetThrottle(1.1) # use AB if enough fuel left else: UI.SetSpeedToMax() *************** *** 901,924 **** UI.SetAlt(-launcher_info.MaxDepth_m + 1) else: ! target_is_engaged = UI.GetVar(0) # engagement status stored in user var 0 if target_is_engaged: ! wait_count = UI.GetVar(1) ! if (wait_count < 12): ! UI.SetVar(1,wait_count+1) # increment wait count UI.SetActionText('Atk-wait') if UI.IsAir(): ! SetHeadingOffTarget(UI, 30.0) # set heading 30 deg from current target bearing ! SetFractionalSpeed(UI,0.5) return else: ! UI.SetVar(0,0) # re-engage target ! UI.SetVar(1,0) if UI.IsAir(): ! SetFractionalSpeed(UI,1.0) # attack target range_km = 0.0 ! launch_mode = launcher_info.LaunchMode # 0 - datum, 1 - seeker, 2 - bomb, 3 - other if target_info.IsAir(): --- 925,951 ---- UI.SetAlt(-launcher_info.MaxDepth_m + 1) else: ! target_is_engaged = TI.GetMemoryValue(2) if target_is_engaged: ! # wait to re-engage until all engaging weapons are gone ! if (target_info.GetEngagedCount() > 0): UI.SetActionText('Atk-wait') + if UI.IsAir(): ! if (TI.GetMemoryValue(4) == 1): # flee target if fire-and-forget weapon ! SetHeadingOffTarget(UI, 180.0) # set heading 180 deg from current target bearing ! SetFractionalSpeed(UI, 1.0) ! else: ! SetHeadingOffTarget(UI, 30.0) # set heading 30 deg from current target bearing ! SetFractionalSpeed(UI, 0.5) return else: ! TI.SetMemoryValue(2, 0) # re-engage target if UI.IsAir(): ! SetFractionalSpeed(UI, 1.0) # attack target range_km = 0.0 ! launch_mode = launcher_info.LaunchMode # 0 - datum, 1 - seeker FF, 2 - seeker non-FF, 3 - bomb, 4 - error if target_info.IsAir(): *************** *** 938,952 **** UI.SendDatumToLauncher(lon,lat,alt,launcher) UI.Launch(launcher, launch_qty) ! UI.SetVar(0,1) UI.SetActionText('Datum launch') ! elif launch_mode == 1: # handoff to active seeker target_accepted = UI.HandoffTargetToLauncher(launcher) if (target_accepted): UI.Launch(launcher, launch_qty) ! UI.SetVar(0,1) UI.SetActionText('Handoff launch') ! else: ! TTI = UI.SetHeadingToInterceptTarget() ! UI.SetActionText('Attack %d (%3.0f s)' % (targetid, TTI)) --- 965,990 ---- UI.SendDatumToLauncher(lon,lat,alt,launcher) UI.Launch(launcher, launch_qty) ! TI.SetMemoryValue(2, 1) ! TI.SetMemoryValue(4, 1) # fire and forget UI.SetActionText('Datum launch') ! elif (launch_mode == 1) or (launch_mode == 2): # handoff to weapon seeker target_accepted = UI.HandoffTargetToLauncher(launcher) if (target_accepted): UI.Launch(launcher, launch_qty) ! TI.SetMemoryValue(2, 1) ! if (launch_mode == 1): ! TI.SetMemoryValue(4, 1) # fire and forget ! else: ! TI.SetMemoryValue(4, 0) # need platform guidance ! UI.SetActionText('Handoff launch') ! elif (launch_mode == 3): ! UI.DisplayMessage('Starting bomb run') ! AddBombTargetTask(UI) ! TI.EndTask() ! else: ! UI.DisplayMessage('Bad launch mode, aborting attack') ! TI.EndTask() ! Index: UnitCommands.py =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/scripts/UnitCommands.py,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** UnitCommands.py 27 Aug 2006 21:28:54 -0000 1.28 --- UnitCommands.py 5 Sep 2006 01:04:24 -0000 1.29 *************** *** 224,227 **** --- 224,231 ---- + def AttackTarget(UI, target_id): + UI.SetTarget(target_id) + UI.AddTask('InterceptTarget', 2.0, 0) + def SelectTarget(UI, target_id): UI.SetTarget(target_id) *************** *** 230,233 **** --- 234,240 ---- def ClearTarget(UI): UI.SetTarget(-1) + + def SpeedAB(UI): + SetFractionalSpeed(UI, 1.1) def Speed100(UI): *************** *** 411,414 **** --- 418,430 ---- return 1 return 0 + + # TLL - added. 'v' in hotkey menu + def ReverseOurCourse(UI): + current_heading = UI.GetHeading() + 180 + if (current_heading >= 360): + current_heading = current_heading - 360 + UI.SetHeading(current_heading) + + Index: Menu.py =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/scripts/Menu.py,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** Menu.py 17 Aug 2006 01:29:11 -0000 1.24 --- Menu.py 5 Sep 2006 01:04:24 -0000 1.25 *************** *** 81,86 **** UnitMenu.BeginSubMenu() UnitMenu.AddItem('30% [1]','Speed30') ! UnitMenu.AddItem('80% [2]','Speed80') ! UnitMenu.AddItem('Max [3]','Speed100') UnitMenu.EndSubMenu() --- 81,88 ---- UnitMenu.BeginSubMenu() UnitMenu.AddItem('30% [1]','Speed30') ! UnitMenu.AddItem('50% [2]','Speed50') ! UnitMenu.AddItem('80% [3]','Speed80') ! UnitMenu.AddItem('100% [4]','Speed100') ! UnitMenu.AddItem('Max [5]','SpeedAB') UnitMenu.EndSubMenu() *************** *** 111,117 **** UnitMenu.AddItem('Set altitude','') UnitMenu.BeginSubMenu() ! UnitMenu.AddItem('High','AltitudeHigh') ! UnitMenu.AddItem('Medium','AltitudeMedium') ! UnitMenu.AddItem('Low','AltitudeLow') UnitMenu.AddItem('Very low','AltitudeVeryLow') UnitMenu.EndSubMenu() --- 113,119 ---- UnitMenu.AddItem('Set altitude','') UnitMenu.BeginSubMenu() ! UnitMenu.AddItem('High [H]','AltitudeHigh') ! UnitMenu.AddItem('Medium [M]','AltitudeMedium') ! UnitMenu.AddItem('Low [L]','AltitudeLow') UnitMenu.AddItem('Very low','AltitudeVeryLow') UnitMenu.EndSubMenu() *************** *** 205,208 **** --- 207,212 ---- def BuildLaunchMenu(UnitMenu, UnitInfo): + UnitMenu.AddItemUI('Attack target', 'AttackTarget', 'Target') + UnitMenu.AddItem('Engage datum with','') UnitMenu.BeginSubMenu() *************** *** 267,272 **** UnitMenu.BeginSubMenu() UnitMenu.AddItem('30% [1]','Speed30') ! UnitMenu.AddItem('80% [2]','Speed80') ! UnitMenu.AddItem('Max [3]','Speed100') UnitMenu.EndSubMenu() --- 271,278 ---- UnitMenu.BeginSubMenu() UnitMenu.AddItem('30% [1]','Speed30') ! UnitMenu.AddItem('50% [2]','Speed50') ! UnitMenu.AddItem('80% [3]','Speed80') ! UnitMenu.AddItem('100% [4]','Speed100') ! UnitMenu.AddItem('Max [5]','SpeedAB') UnitMenu.EndSubMenu() *************** *** 288,294 **** UnitMenu.AddItem('Set altitude','') UnitMenu.BeginSubMenu() ! UnitMenu.AddItem('High','AltitudeHigh') ! UnitMenu.AddItem('Medium','AltitudeMedium') ! UnitMenu.AddItem('Low','AltitudeLow') UnitMenu.AddItem('Very low','AltitudeVeryLow') UnitMenu.EndSubMenu() --- 294,300 ---- UnitMenu.AddItem('Set altitude','') UnitMenu.BeginSubMenu() ! UnitMenu.AddItem('High [H]','AltitudeHigh') ! UnitMenu.AddItem('Medium [M]','AltitudeMedium') ! UnitMenu.AddItem('Low [L]','AltitudeLow') UnitMenu.AddItem('Very low','AltitudeVeryLow') UnitMenu.EndSubMenu() |
From: Dewitt C. <ddc...@us...> - 2006-09-05 01:04:27
|
Update of /cvsroot/gcblue/gcb_wx/include/sim In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv24958/include/sim Modified Files: tcLauncher.h tcPlatformObject.h tcStores.h Log Message: Index: tcLauncher.h =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/include/sim/tcLauncher.h,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** tcLauncher.h 27 Mar 2006 01:08:30 -0000 1.26 --- tcLauncher.h 5 Sep 2006 01:04:24 -0000 1.27 *************** *** 139,142 **** --- 139,143 ---- bool IsLoading() const; bool IsEffective(unsigned int targetClassification) const; + bool IsChildFireAndForget(); void SetErrorCode(int code) {errorCode = code;} Index: tcStores.h =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/include/sim/tcStores.h,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** tcStores.h 22 Mar 2006 01:23:29 -0000 1.8 --- tcStores.h 5 Sep 2006 01:04:24 -0000 1.9 *************** *** 87,90 **** --- 87,97 ---- }; + struct AutomationOperation + { + std::string type; ///< "Empty", "AAW", "ASuW", "ASW", "Strike" + tcGameObject* obj; ///< 0 for local platform, otherwise child obj + int stage; ///< 0 not started, 1 waiting for unload to finish + }; + bool AddItems(const std::string& item, unsigned long quantity); unsigned long CurrentItemQuantity(const std::string& item) const; *************** *** 111,114 **** --- 118,128 ---- void Update(double t); + void AddAutomationOp(const std::string& type, tcGameObject* child = 0); + bool AllLaunchersEmpty(tcGameObject* child); + bool AllLaunchersReady(tcGameObject* child); + + bool HasActiveOp(tcGameObject* child) const; + bool HasStoresForThisObject(tcGameObject* obj); + tcCommandStream& operator<<(tcCommandStream& stream); tcCreateStream& operator<<(tcCreateStream& stream); *************** *** 130,133 **** --- 144,149 ---- std::vector<StoreItem> stores; std::vector<StoreOperation> ops; + std::vector<AutomationOperation> automationOps; + int errorCode; ///< used in multiplayer to pass error code to client double lastUpdate; *************** *** 150,153 **** --- 166,174 ---- tcGameObject* GetChildOrParent(tcGameObject* child); bool ValidateOpObject(tcGameObject* obj); + + void UpdateAutomation(); + bool UnloadPlatform(tcGameObject* child); + bool LoadPlatform(tcGameObject* child, const std::string& type); + void GetWeaponInfo(const std::string& name, float& range_km, int& targetFlags) const; }; #endif \ No newline at end of file Index: tcPlatformObject.h =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/include/sim/tcPlatformObject.h,v retrieving revision 1.35 retrieving revision 1.36 diff -C2 -d -r1.35 -r1.36 *** tcPlatformObject.h 27 Mar 2006 01:08:30 -0000 1.35 --- tcPlatformObject.h 5 Sep 2006 01:04:24 -0000 1.36 *************** *** 120,124 **** tcStores* GetMagazine(unsigned int idx); unsigned int GetMagazineQuantity(const std::string& item); ! virtual bool IsInterceptingTrack(long id); bool IsRefueling() const; --- 120,126 ---- tcStores* GetMagazine(unsigned int idx); unsigned int GetMagazineQuantity(const std::string& item); ! void SetLoadoutTag(const std::string& s); ! const std::string& GetLoadoutTag() const; ! virtual bool IsInterceptingTrack(long id); bool IsRefueling() const; *************** *** 159,162 **** --- 161,165 ---- float lastHeadingDelta; // a workaround to smooth heading rate changes bool isRefueling; ///< true if refuel is in progress + std::string loadoutTag; ///< string to identify current loadout type virtual void ApplyRestrictions(); |
From: Dewitt C. <ddc...@us...> - 2006-09-05 01:04:26
|
Update of /cvsroot/gcblue/gcb_wx/database In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv24958/database Modified Files: database.db Log Message: Index: database.db =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/database/database.db,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 Binary files /tmp/cvsovUoJS and /tmp/cvsIsJDQ9 differ |
From: Dewitt C. <ddc...@us...> - 2006-09-05 01:04:26
|
Update of /cvsroot/gcblue/gcb_wx/include/database In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv24958/include/database Modified Files: tcMissileDBObject.h Log Message: Index: tcMissileDBObject.h =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/include/database/tcMissileDBObject.h,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** tcMissileDBObject.h 17 Aug 2006 01:27:10 -0000 1.25 --- tcMissileDBObject.h 5 Sep 2006 01:04:24 -0000 1.26 *************** *** 131,135 **** bool needsFireControl; ///< true if seeker depends on a fire control sensor for guidance std::string payloadClass; ///< payload to deploy (missile shuts down after last payload segment) ! float seekerFOV_rad; ///< for fast lookup of seeker field of view --- 131,135 ---- bool needsFireControl; ///< true if seeker depends on a fire control sensor for guidance std::string payloadClass; ///< payload to deploy (missile shuts down after last payload segment) ! int fireAndForget; ///< -1 not initialized, 0 not FF, 1 FF float seekerFOV_rad; ///< for fast lookup of seeker field of view *************** *** 140,147 **** virtual const char* GetClassName() {return "Missile";} ///< returns class name of database object bool IsLeaf() const; ///< returns true if db obj is a leaf obj ! teWeaponLaunchMode GetLaunchMode(); long GetSensorKey(); float GetSeekerFOV(); ///< @returns FOV in radians bool HasAllEmitters(std::vector<long>& emitters); bool NeedsFireControl() const; virtual void PrintToFile(tcFile& file); --- 140,148 ---- virtual const char* GetClassName() {return "Missile";} ///< returns class name of database object bool IsLeaf() const; ///< returns true if db obj is a leaf obj ! teWeaponLaunchMode GetLaunchMode() const; long GetSensorKey(); float GetSeekerFOV(); ///< @returns FOV in radians bool HasAllEmitters(std::vector<long>& emitters); + bool IsFireAndForget(); bool NeedsFireControl() const; virtual void PrintToFile(tcFile& file); |
From: Dewitt C. <ddc...@us...> - 2006-09-05 01:04:26
|
Update of /cvsroot/gcblue/gcb_wx/docs In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv24958/docs Modified Files: CHANGES.txt Log Message: Index: CHANGES.txt =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/docs/CHANGES.txt,v retrieving revision 1.54 retrieving revision 1.55 diff -C2 -d -r1.54 -r1.55 *** CHANGES.txt 18 Jun 2006 00:49:38 -0000 1.54 --- CHANGES.txt 5 Sep 2006 01:04:24 -0000 1.55 *************** *** 3,6 **** --- 3,19 ---- 0.8.3 --------------------------------------------------------------------- + *** 2006-07-01 through 2006-09-04 *** + - Started loadout automation feature for airbases + - Updated and enhanced auto attack script + - Updated OpenAL to 1.1. Fixed sound problems some systems were experiencing + - Adjusted map contrast to better represent maps with high terrain + - Added map mode submenu to main popup menu to switch map color scheme from + within game + - New icons for carriers and airstips + - Added scrollbars to database viewer + - Updated mission editor to use multiple menu pages for the db classes with large + numbers of entries + - Radar target and sensor height is now based on 3D model dimensions for surface ships + *** 2006-06-11 *** |
From: Dewitt C. <ddc...@us...> - 2006-09-05 01:04:26
|
Update of /cvsroot/gcblue/gcb_wx/include/graphics In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv24958/include/graphics Modified Files: tcPlatformGui.h Log Message: Index: tcPlatformGui.h =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/include/graphics/tcPlatformGui.h,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** tcPlatformGui.h 22 Mar 2006 01:23:29 -0000 1.4 --- tcPlatformGui.h 5 Sep 2006 01:04:24 -0000 1.5 *************** *** 108,111 **** --- 108,115 ---- void ReadGuiParameters(); void UpdateGui(); + + void OnLoadoutCommand(wxCommandEvent& event); + + DECLARE_EVENT_TABLE() }; |
From: Dewitt C. <ddc...@us...> - 2006-09-05 01:04:26
|
Update of /cvsroot/gcblue/gcb_wx/include/scriptinterface In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv24958/include/scriptinterface Modified Files: tcPlatformInterface.h Log Message: Index: tcPlatformInterface.h =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/include/scriptinterface/tcPlatformInterface.h,v retrieving revision 1.53 retrieving revision 1.54 diff -C2 -d -r1.53 -r1.54 *** tcPlatformInterface.h 27 Aug 2006 21:28:54 -0000 1.53 --- tcPlatformInterface.h 5 Sep 2006 01:04:24 -0000 1.54 *************** *** 58,62 **** float mfRange_km; ///< range that ai uses for engaging with this launcher float maxDepth_m; ///< max depth for subsurface launch ! int mnLaunchMode; ///< 0 - datum, 1 - handoff, 2 - bomb, 3 - error int launcherStatus; ///< see @see tcLauncher::teLauncherStatus double sectorCenter; ///< az of center of launch engagement sector in deg --- 58,62 ---- float mfRange_km; ///< range that ai uses for engaging with this launcher float maxDepth_m; ///< max depth for subsurface launch ! int mnLaunchMode; ///< 0 - datum, 1 - handoff FF, 2 - handoff, 3 - bomb, 4 - error int launcherStatus; ///< see @see tcLauncher::teLauncherStatus double sectorCenter; ///< az of center of launch engagement sector in deg |
From: Dewitt C. <ddc...@us...> - 2006-09-04 21:07:11
|
Update of /cvsroot/gcblue/gcb_wx/database/csv In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv31493/database/csv Modified Files: ballistic.csv Log Message: Index: ballistic.csv =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/database/csv/ballistic.csv,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ballistic.csv 20 Aug 2006 22:39:48 -0000 1.1 --- ballistic.csv 4 Sep 2006 21:07:06 -0000 1.2 *************** *** 1,102 **** "DatabaseClass","ModelClassId","ClassificationId","Cost","ImageList","IconFileName","ModelFileName","Description","Damage","LaunchSpeed_mps","targetFlags","BallisticType","MaxRange_km","AngleError_rad" ! ".30 cal bullet","14","512","0","","ball/gunammoico.jpg","5-inch.xml",".30 cal bullet - Range 2km - Damage 0.12 - ETA 3 Seconds","0.11","880","7","1","2","0.06" ! ".50 cal bullet","14","512","0","","ball/gunammoico.jpg","5-inch.xml",".50 cal bullet - Range 2km - Damage 0.3 - ETA 3 Seconds","0.3","880","7","1","2","0.06" ! "100mm ZS-58P AA","14","512","0","","ball/gunammoico.jpg","5-inch.xml","100mm ZS-58P AA - Range 10km - Damage 12.18 - ETA 12 Seconds","12.18","880","15","1","10","0.06" ! "100mm OEA F1 HE","14","512","0","","ball/gunammoico.jpg","5-inch.xml","100mm OEA F1 HE - Range 12km - Damage 9.05 - ETA 15 Seconds","9.05","855","7","1","12","0.06" ! "100mm OF-58 FRAG","14","512","0","","ball/gunammoico.jpg","5-inch.xml","100mm OF-58 FRAG - Range 21km - Damage 12.18 - ETA 24 Seconds","12.18","880","5","0","21","0.06" ! "100mm OPF F4 PFHE","14","512","0","","ball/gunammoico.jpg","5-inch.xml","100mm OPF F4 PFHE - Range 12km - Damage 8.9 - ETA 15 Seconds","8.9","855","7","1","12","0.06" ! "100mm ZS-58 AA","14","512","0","","ball/gunammoico.jpg","5-inch.xml","100mm ZS-58 AA - Range 10km - Damage 12.18 - ETA 12 Seconds","12.18","880","15","1","10","0.06" ! "114mm HE ER","14","512","0","","ball/gunammoico.jpg","5-inch.xml","114mm HE ER - Range 27.5km - Damage 16.64 - ETA 32 Seconds","16.64","869","5","0","27.5","0.06" ! "114mm HE N4A1","14","512","0","","ball/gunammoico.jpg","5-inch.xml","114mm HE N4A1 - Range 22km - Damage 17 - ETA 26 Seconds","17","869","7","1","22","0.06" ! "114mm Mk8","14","512","500","","ball/gunammoico.jpg","5-inch.xml","4.5 inch (114 mm) Mk8 round","10","325","5","0","0","0.006" ! "12.7mm B-30 AP","14","512","0","","ball/gunammoico.jpg","5-inch.xml","12.7mm B-30 AP - Range 3.5km - Damage 0.06 - ETA 5 Seconds","0.06","850","7","1","3.5","0.06" ! "12.7mm B-32 APi","14","512","0","","ball/gunammoico.jpg","5-inch.xml","12.7mm B-32 APi - Range 3.5km - Damage 0.06 - ETA 5 Seconds","0.06","850","7","1","3.5","0.06" ! "127mm ERGM","14","512","0","","ball/gunammoico.jpg","5-inch.xml","127mm ERGM - Range 115km - Damage 80.75 - ETA 138 Seconds","80.75","838","5","0","115","0.06" ! "127mm mk 127 HE-CVT mk 67 Cartridge","14","512","0","","ball/gunammoico.jpg","5-inch.xml","127mm mk 127 HE-CVT mk 67 Cartridge - Range 23.66km - Damage 26.07 - ETA 30 Seconds","26.07","815.67","5","0","23.66","0.06" ! "127mm mk 127 HE-CVT mk EX-175 Cartridge","14","512","0","","ball/gunammoico.jpg","5-inch.xml","127mm mk 127 HE-CVT mk 175 Cartridge - Range 38.4km - Damage 26.07 - ETA 37 Seconds","26.07","1052","5","0","38.4","0.06" ! "127mm mk 41 AAC","14","512","0","","ball/gunammoico.jpg","5-inch.xml","127mm mk 41 AAC - Range 15.7km - Damage 26.61 - ETA 20 Seconds","26.61","808","10","1","15.7","0.06" ! "127mm mk 41 HC","14","512","0","","ball/gunammoico.jpg","5-inch.xml","127mm mk 41 HC - Range 25.9km - Damage 26.54 - ETA 33 Seconds","26.54","808","5","0","25.9","0.06" ! "127mm mk 80 HE-PD EX-175 Cartridge","14","512","0","","ball/gunammoico.jpg","5-inch.xml","127mm mk 80 HE-PD EX-175 Cartridge - Range 38.4km - Damage 25.54 - ETA 37 Seconds","25.54","1052","5","0","38.4","0.06" ! "127mm mk 80 HE-PD mk 67 Cartridge","14","512","0","","ball/gunammoico.jpg","5-inch.xml","127mm mk 80 HE-PD mk 67 Cartridge - Range 23.66km - Damage 25.54 - ETA 30 Seconds","25.54","815.6666667","5","0","23.66","0.06" ! "130mm AK-130","14","512","500","","ball/gunammoico.jpg","5-inch.xml","Russian 130mm AK-130 round","10","400","5","0","25","0.006" ! "130mm F-44 HE","14","512","0","","ball/gunammoico.jpg","5-inch.xml","130 mm/70 (5.1"") AK-130 - Range 23km - Damage 27.9 - ETA 28 Seconds","27.9","850","5","0","23","0.06" ! "130mm ZS-44 AA","14","512","0","","ball/gunammoico.jpg","5-inch.xml","130mm ZS-44 AA - Range 15km - Damage 27.9 - ETA 18 Seconds","27.9","850","15","1","15","0.06" ! "130mm ZS-44P AA","14","512","0","","ball/gunammoico.jpg","5-inch.xml","130mm ZS-44P AA - Range 15km - Damage 27.9 - ETA 18 Seconds","27.9","850","15","1","15","0.06" ! "20mm AP-T","14","512","0","","ball/gunammoico.jpg","5-inch.xml","20mm AP-T - Range 2km - Damage 0.42 - ETA 2 Seconds","0.42","1100","7","1","2","0.06" ! "20mm AP-T MK9","14","512","0","","ball/gunammoico.jpg","5-inch.xml","20mm AP-T MK9 - Range 4km - Damage 0.09 - ETA 5 Seconds","0.09","835","7","1","4","0.06" ! "20mm APDS-T","14","512","0","","ball/gunammoico.jpg","5-inch.xml","20mm APDS-T - Range 2km - Damage 0.49 - ETA 2 Seconds","0.49","1150","7","1","2","0.06" ! "20mm APT percussion","14","512","0","","ball/gunammoico.jpg","5-inch.xml","20mm APT percussion - Range 2km - Damage 0.3 - ETA 3 Seconds","0.3","817","7","1","2","0.06" ! "20mm HE MK3","14","512","0","","ball/gunammoico.jpg","5-inch.xml","20mm HE MK3 - Range 4km - Damage 0.08 - ETA 5 Seconds","0.08","835","7","1","4","0.06" ! "20mm HE-I","14","512","0","","ball/gunammoico.jpg","5-inch.xml","20mm HE-I - Range 2km - Damage 0.22 - ETA 2 Seconds","0.22","1050","7","1","2","0.06" ! "20mm HE-I MK3","14","512","0","","ball/gunammoico.jpg","5-inch.xml","20mm HE-I MK3 - Range 4km - Damage 0.07 - ETA 5 Seconds","0.07","835","7","1","4","0.06" ! "20mm HE-I(b)","14","512","0","","ball/gunammoico.jpg","5-inch.xml","20mm HE-I(b) - Range 4km - Damage 0.07 - ETA 5 Seconds","0.07","835","7","1","4","0.06" ! "20mm HE-T","14","512","0","","ball/gunammoico.jpg","5-inch.xml","20mm HE-T - Range 2km - Damage 0.28 - ETA 2 Seconds","0.28","1050","7","1","2","0.06" ! "20mm HE-T MK4","14","512","0","","ball/gunammoico.jpg","5-inch.xml","20mm HE-T MK4 - Range 4km - Damage 0.06 - ETA 5 Seconds","0.06","835","7","1","4","0.06" ! "20mm HE-T MK7","14","512","0","","ball/gunammoico.jpg","5-inch.xml","20mm HE-T MK7 - Range 4km - Damage 0.07 - ETA 5 Seconds","0.07","835","7","1","4","0.06" ! "20mm HE(b)","14","512","0","","ball/gunammoico.jpg","5-inch.xml","20mm HE(b) - Range 4km - Damage 0.08 - ETA 5 Seconds","0.08","835","7","1","4","0.06" ! "20mm HEI Electric","14","512","0","","ball/gunammoico.jpg","5-inch.xml","20mm HEI Electric - Range 2km - Damage 0.12 - ETA 3 Seconds","0.12","945","7","1","2","0.06" ! "20mm HEI Percussion","14","512","0","","ball/gunammoico.jpg","5-inch.xml","20mm HEI Percussion - Range 2km - Damage 0.2 - ETA 3 Seconds","0.2","817","7","1","2","0.06" ! "20mm Mark 149-4","14","512","0","","ball/gunammoico.jpg","5-inch.xml","20mm Mark 149-4 - Range 2km - Damage 5.72 - ETA 2 Seconds","5.72","1113","15","2","2","0.06" ! "20mm mark 244-0 ELC","14","512","0","","ball/gunammoico.jpg","5-inch.xml","20mm mark 244-0 ELC - Range 2km - Damage 12.84 - ETA 2 Seconds","12.84","1113","15","2","2","0.06" ! "20mm Mk-15","14","512","500","","ball/gunammoico.jpg","5-inch.xml","20mm point defense round for Mk15","2","900","10","2","4","0.006" ! "20mm SAP(b)","14","512","0","","ball/gunammoico.jpg","5-inch.xml","20mm SAP(b) - Range 4km - Damage 0.09 - ETA 5 Seconds","0.09","835","7","1","4","0.06" ! "25mm APDS","14","512","0","","ball/gunammoico.jpg","5-inch.xml","25mm APDS - Range 2.5km - Damage 0.75 - ETA 3 Seconds","0.75","1100","7","1","2.5","0.06" ! "25mm APDS Twin Barrel","14","512","0","","ball/gunammoico.jpg","5-inch.xml","25mm APDS - Range 2.5km - Damage 1.5 - ETA 3 Seconds - double damage for twin barrel","1.5","1100","7","1","2.5","0.06" ! "25mm APDS-T","14","512","0","","ball/gunammoico.jpg","5-inch.xml","25mm APDS-T - Range 2.5km - Damage 0.88 - ETA 3 Seconds","0.88","1100","7","1","2.5","0.06" ! "25mm APDS-T Twin Barrel","14","512","0","","ball/gunammoico.jpg","5-inch.xml","25mm APDS-T - Range 2.5km - Damage 1.75 - ETA 3 Seconds - double damage for twin barrel","1.75","1100","7","1","2.5","0.06" ! "25mm FAPDS-T","14","512","0","","ball/gunammoico.jpg","5-inch.xml","25mm FAPDS-T - Range 2.5km - Damage 0.88 - ETA 3 Seconds","0.88","1100","7","1","2.5","0.06" ! "25mm FAPDS-T Twin Barrel","14","512","0","","ball/gunammoico.jpg","5-inch.xml","25mm FAPDS-T - Range 2.5km - Damage 1.75 - ETA 3 Seconds - double damage for twin barrel","1.75","1100","7","1","2.5","0.06" ! "25mm HEI","14","512","0","","ball/gunammoico.jpg","5-inch.xml","25mm HEI - Range 2.5km - Damage 0.5 - ETA 3 Seconds","0.5","1100","7","1","2.5","0.06" ! "25mm HEI Twin Barrel","14","512","0","","ball/gunammoico.jpg","5-inch.xml","25mm HEI - Range 2.5km - Damage 1 - ETA 3 Seconds - double damage for twin barrel","1","1100","7","1","2.5","0.06" ! "25mm HEI-T","14","512","0","","ball/gunammoico.jpg","5-inch.xml","25mm HEI-T - Range 2.5km - Damage 0.5 - ETA 3 Seconds","0.5","1100","7","1","2.5","0.06" ! "25mm HEI-T Twin Barrel","14","512","0","","ball/gunammoico.jpg","5-inch.xml","25mm HEI-T - Range 2.5km - Damage 1 - ETA 3 Seconds - double damage for twin barrel","1","1100","7","1","2.5","0.06" ! "25mm SAPHEI","14","512","0","","ball/gunammoico.jpg","5-inch.xml","25mm SAPHEI - Range 2.5km - Damage 0.63 - ETA 3 Seconds","0.63","1100","7","1","2.5","0.06" ! "25mm SAPHEI Twin Barrel","14","512","0","","ball/gunammoico.jpg","5-inch.xml","25mm SAPHEI - Range 2.5km - Damage 1.25 - ETA 3 Seconds - double damage for twin barrel","1.25","1100","7","1","2.5","0.06" ! "25mm SAPHEI-T","14","512","0","","ball/gunammoico.jpg","5-inch.xml","25mm SAPHEI-T - Range 2.5km - Damage 0.63 - ETA 3 Seconds","0.63","1100","7","1","2.5","0.06" ! "25mm SAPHEI-T Twin Barrel","14","512","0","","ball/gunammoico.jpg","5-inch.xml","25mm SAPHEI-T - Range 2.5km - Damage 1.25 - ETA 3 Seconds - double damage for twin barrel","1.25","1100","7","1","2.5","0.06" ! "27mm FAPDS","14","512","0","","ball/gunammoico.jpg","5-inch.xml","27 mm MLG 27 Light Naval Gun System - Range 4km - Damage 1.14 - ETA 4 Seconds","1.14","1100","7","1","4","0.06" ! "30mm AK-630","14","512","500","","ball/gunammoico.jpg","5-inch.xml","30mm AA rounds","2","900","10","2","4","0.006" ! "30mm AP-I","14","512","0","","ball/gunammoico.jpg","5-inch.xml","30mm AP-I - Range 3km - Damage 0.33 - ETA 4 Seconds","0.33","983","7","1","3","0.06" ! "30mm APDS","14","512","0","","ball/gunammoico.jpg","5-inch.xml","30mm APDS - Range 10.9km - Damage 0.39 - ETA 10 Seconds","0.39","1175","5","0","10.9","0.06" ! "30mm APDS-T","14","512","0","","ball/gunammoico.jpg","5-inch.xml","30mm APDS-T - Range 3km - Damage 1.58 - ETA 3 Seconds","1.58","1225","15","1","3","0.06" ! "30mm APFSDS-T","14","512","0","","ball/gunammoico.jpg","5-inch.xml","30mm APFSDS-T - Range 3km - Damage 0.13 - ETA 3 Seconds","0.12","1385","7","1","3","0.06" ! "30mm API","14","512","0","","ball/gunammoico.jpg","5-inch.xml","30 mm/77 (1.2"") Goalkeeper SGE-30 - Range 3km - Damage 4.77 - ETA 4 Seconds","4.77","983","15","1","3","0.06" ! "30mm Br-83 AP","14","512","0","","ball/gunammoico.jpg","5-inch.xml","30mm Br-83 AP - Range 4km - Damage 22.82 - ETA 4 Seconds","22.82","1060","7","1","4","0.06" ! "30mm F-33 HE","14","512","0","","ball/gunammoico.jpg","5-inch.xml","30mm F-33 HE - Range 4km - Damage 19.82 - ETA 4 Seconds","19.82","1060","7","1","4","0.06" ! "30mm FMPDS","14","512","0","","ball/gunammoico.jpg","5-inch.xml","30mm FMPDS - Range 3km - Damage 1.7 - ETA 3 Seconds","1.7","1150","15","1","3","0.06" ! "30mm HE","14","512","0","","ball/gunammoico.jpg","5-inch.xml","30mm HE - Range 10.9km - Damage 0.42 - ETA 11 Seconds","0.42","1080","7","1","10.9","0.06" ! "30mm HEI","14","512","0","","ball/gunammoico.jpg","5-inch.xml","30mm HEI - Range 3km - Damage 3.55 - ETA 3 Seconds","3.55","1021","15","1","3","0.06" ! "30mm HEI-T","14","512","0","","ball/gunammoico.jpg","5-inch.xml","30mm HEI-T - Range 3km - Damage 0.24 - ETA 3 Seconds","0.24","1080","7","1","3","0.06" ! "30mm OF-83 HE-FRAG","14","512","0","","ball/gunammoico.jpg","5-inch.xml","30mm OF-83 HE-FRAG - Range 4km - Damage 20.56 - ETA 4 Seconds","20.56","1060","7","1","4","0.06" ! "30mm OF-84 HE-FRAG AK-306","14","512","0","","ball/gunammoico.jpg","5-inch.xml","30mm OF-84 HE-FRAG AK-306 - Range 4km - Damage 26.63 - ETA 5 Seconds","26.63","900","15","2","4","0.06" ! "30mm OF-84 HE-FRAG AK-630M","14","512","0","","ball/gunammoico.jpg","5-inch.xml","30mm OF-84 HE-FRAG AK-630M - Range 4km - Damage 4.28 - ETA 5 Seconds","4.28","900","15","2","4","0.06" ! "30mm OF-84 HE-FRAG Kashtan-M","14","512","0","","ball/gunammoico.jpg","5-inch.xml","30mm OF-84 HE-FRAG Kashtan-M - Range 4km - Damage 25.13 - ETA 5 Seconds","25.13","860","15","2","4","0.06" ! "30mm OF-84 HE-FRAG Kashtan-Mx2","14","512","0","","ball/gunammoico.jpg","5-inch.xml","30mm OF-84 HE-FRAG Kashtan-Mx2 - Range 8km - Damage 8.55 - ETA 10 Seconds - extended range to account for only half mounting","8.55","860","15","2","8","0.06" ! "30mm OP-84 FRAG Tracer AK-306","14","512","0","","ball/gunammoico.jpg","5-inch.xml","30mm OP-84 FRAG Tracer AK-306 - Range 4km - Damage 19.61 - ETA 5 Seconds","19.61","900","15","2","4","0.06" ! "30mm OP-84 FRAG Tracer AK-630M","14","512","0","","ball/gunammoico.jpg","5-inch.xml","30mm OP-84 FRAG Tracer AK-630M - Range 4km - Damage 3.34 - ETA 5 Seconds","3.34","900","15","2","4","0.06" ! "30mm OP-84 FRAG Tracer Kashtan-M","14","512","0","","ball/gunammoico.jpg","5-inch.xml","30mm OP-84 FRAG Tracer Kashtan-M - Range 4km - Damage 19.61 - ETA 5 Seconds","19.61","860","15","2","4","0.06" ! "30mm OP-84 FRAG Tracer Kashtan-Mx2","14","512","0","","ball/gunammoico.jpg","5-inch.xml","30mm OP-84 FRAG Tracer Kashtan-Mx2 - Range 8km - Damage 6.67 - ETA 10 Seconds - extended range to account for only half mounting","6.67","860","15","2","8","0.06" ! "30mm SAPHEI-T","14","512","0","","ball/gunammoico.jpg","5-inch.xml","30mm SAPHEI-T - Range 3km - Damage 0.2 - ETA 3 Seconds","0.2","1080","7","1","3","0.06" ! "35mm AHEAD","14","512","0","","ball/gunammoico.jpg","5-inch.xml","35mm AHEAD - Range 3km - Damage 1.7 - ETA 3 Seconds","1.7","1050","15","1","3","0.06" ! "40mm HE-T","14","512","0","","ball/gunammoico.jpg","5-inch.xml","40mm HE-T - Range 12km - Damage 1.15 - ETA 12 Seconds","1.15","1005","7","1","12","0.06" ! "40mm PFHE","14","512","0","","ball/gunammoico.jpg","5-inch.xml","40mm PFHE - Range 12km - Damage 1.25 - ETA 12 Seconds","1.25","1025","7","1","12","0.06" ! "45mm F-75 HE","14","512","0","","ball/gunammoico.jpg","5-inch.xml","45mm F-75 HE - Range 9.14km - Damage 1.62 - ETA 9 Seconds","1.62","1080","5","0","9.14","0.06" ! "45mm OR-75 FRAG","14","512","0","","ball/gunammoico.jpg","5-inch.xml","45mm OR-75 FRAG - Range 5km - Damage 1.65 - ETA 5 Seconds","1.65","1080","7","1","5","0.06" ! "57mm HCER","14","512","0","","ball/gunammoico.jpg","5-inch.xml","57mm HCER - Range 17km - Damage 2.11 - ETA 18 Seconds","2.11","950","5","0","17","0.06" ! "57mm HE","14","512","0","","ball/gunammoico.jpg","5-inch.xml","57mm HE - Range 13.8km - Damage 1.77 - ETA 14 Seconds","1.77","1025","5","0","13.8","0.06" ! "57mm PFHE","14","512","0","","ball/gunammoico.jpg","5-inch.xml","57mm PFHE - Range 7.6km - Damage 1.67 - ETA 8 Seconds","1.67","1025","7","1","7.6","0.06" ! "57mm Tracer-FRAG","14","512","0","","ball/gunammoico.jpg","5-inch.xml","57mm tracer-FRAG - Range 6.95km - Damage 1.72 - ETA 7 Seconds","1.72","1020","7","1","6.95","0.06" ! "57mm Tracer-FRAG twin barrel","14","512","0","","ball/gunammoico.jpg","5-inch.xml","57mm tracer-FRAG - Range 6.95km - Damage 3.44 - ETA 7 Seconds","3.44","1020","7","1","6.95","0.06" ! "76.2mm OS-62 FRAG","14","512","0","","ball/gunammoico.jpg","5-inch.xml","76.2mm OS-62 FRAG - Range 15.7km - Damage 3.56 - ETA 17 Seconds","3.56","980","5","0","15.7","0.06" ! "76.2mm ZS-63 AA","14","512","0","","ball/gunammoico.jpg","5-inch.xml","76.2mm ZS-63 AA - Range 15.7km - Damage 3.68 - ETA 17 Seconds","3.68","980","15","1","15.7","0.06" ! "76mm HE-MOM","14","512","0","","ball/gunammoico.jpg","5-inch.xml","76mm HE-MOM - Range 18.4km - Damage 4.52 - ETA 21 Seconds","4.52","919","15","1","18.4","0.06" ! "76mm HE-SAPOM","14","512","0","","ball/gunammoico.jpg","5-inch.xml","76mm HE-SAPOM - Range 16km - Damage 5.18 - ETA 18 Seconds","5.18","919","15","1","16","0.06" ! "76mm HE-SAPOMER","14","512","0","","ball/gunammoico.jpg","5-inch.xml","76mm HE-SAPOMER - Range 20km - Damage 5.64 - ETA 22 Seconds","5.64","919","15","1","20","0.06" ! "76mm Mk-75","14","512","500","","ball/gunammoico.jpg","5-inch.xml","76mm round","6","800","5","0","20","0.006" ! "GB-200","14","512","500","","ball/gb200ico.jpg","mk-82.xml","200 kg gravity bomb","200","0","5","1","0","0.006" ! "GB-500","14","512","5000","","ball/gb500ico.jpg","mk-84.xml","500 kg gravity bomb","500","0","5","1","0","0.006" ! "Mk-82","14","512","300","","ball/mk82ico.jpg","mk-82.xml","500 lb iron gravity bomb","250","0","5","1","0","0.01" ! "Mk-83","14","512","1000","","ball/mk83ico.jpg","mk-84.xml","1000 lb iron gravity bomb","500","0","5","1","0","0.01" ! "Mk-84","14","512","3100","","ball/mk84ico.jpg","mk-84.xml","2000 lb iron gravity bomb","1000","0","5","1","0","0.01" ! "Shell-1","14","512","500","","ball/gunammoico.jpg","5-inch.xml","Test naval gun round","10","300","5","0","0","0.006" ! "Shell-2","14","512","500","","ball/gunammoico.jpg","5-inch.xml","Test naval gun round with slightly longer range","10","400","5","0","0","0.006" --- 1,102 ---- "DatabaseClass","ModelClassId","ClassificationId","Cost","ImageList","IconFileName","ModelFileName","Description","Damage","LaunchSpeed_mps","targetFlags","BallisticType","MaxRange_km","AngleError_rad" ! ".30 cal bullet",14,512,0,,"ball/gunammoico.jpg","5-inch.xml",".30 cal bullet - Range 2km - Damage 0.12 - ETA 3 Seconds",0.11,880,7,1,2,0.06 ! ".50 cal bullet",14,512,0,,"ball/gunammoico.jpg","5-inch.xml",".50 cal bullet - Range 2km - Damage 0.3 - ETA 3 Seconds",0.3,880,7,1,2,0.06 ! "100mm ZS-58P AA",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","100mm ZS-58P AA - Range 10km - Damage 12.18 - ETA 12 Seconds",12.18,880,15,1,10,0.06 ! "100mm OEA F1 HE",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","100mm OEA F1 HE - Range 12km - Damage 9.05 - ETA 15 Seconds",9.05,855,7,1,12,0.06 ! "100mm OF-58 FRAG",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","100mm OF-58 FRAG - Range 21km - Damage 12.18 - ETA 24 Seconds",12.18,880,5,0,21,0.06 ! "100mm OPF F4 PFHE",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","100mm OPF F4 PFHE - Range 12km - Damage 8.9 - ETA 15 Seconds",8.9,855,7,1,12,0.06 ! "100mm ZS-58 AA",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","100mm ZS-58 AA - Range 10km - Damage 12.18 - ETA 12 Seconds",12.18,880,15,1,10,0.06 ! "114mm HE ER",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","114mm HE ER - Range 27.5km - Damage 16.64 - ETA 32 Seconds",16.64,869,5,0,27.5,0.06 ! "114mm HE N4A1",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","114mm HE N4A1 - Range 22km - Damage 17 - ETA 26 Seconds",17,869,7,1,22,0.06 ! "114mm Mk8",14,512,500,,"ball/gunammoico.jpg","5-inch.xml","4.5 inch (114 mm) Mk8 round",10,325,5,0,0,0.006 ! "12.7mm B-30 AP",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","12.7mm B-30 AP - Range 3.5km - Damage 0.06 - ETA 5 Seconds",0.06,850,7,1,3.5,0.06 ! "12.7mm B-32 APi",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","12.7mm B-32 APi - Range 3.5km - Damage 0.06 - ETA 5 Seconds",0.06,850,7,1,3.5,0.06 ! "127mm ERGM",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","127mm ERGM - Range 115km - Damage 80.75 - ETA 138 Seconds",80.75,838,5,0,115,0.06 ! "127mm mk 127 HE-CVT mk 67 Cartridge",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","127mm mk 127 HE-CVT mk 67 Cartridge - Range 23.66km - Damage 26.07 - ETA 30 Seconds",26.07,815.67,5,0,23.66,0.06 ! "127mm mk 127 HE-CVT mk EX-175 Cartridge",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","127mm mk 127 HE-CVT mk 175 Cartridge - Range 38.4km - Damage 26.07 - ETA 37 Seconds",26.07,1052,5,0,38.4,0.06 ! "127mm mk 41 AAC",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","127mm mk 41 AAC - Range 15.7km - Damage 26.61 - ETA 20 Seconds",26.61,808,10,1,15.7,0.06 ! "127mm mk 41 HC",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","127mm mk 41 HC - Range 25.9km - Damage 26.54 - ETA 33 Seconds",26.54,808,5,0,25.9,0.06 ! "127mm mk 80 HE-PD EX-175 Cartridge",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","127mm mk 80 HE-PD EX-175 Cartridge - Range 38.4km - Damage 25.54 - ETA 37 Seconds",25.54,1052,5,0,38.4,0.06 ! "127mm mk 80 HE-PD mk 67 Cartridge",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","127mm mk 80 HE-PD mk 67 Cartridge - Range 23.66km - Damage 25.54 - ETA 30 Seconds",25.54,815.6666667,5,0,23.66,0.06 ! "130mm AK-130",14,512,500,,"ball/gunammoico.jpg","5-inch.xml","Russian 130mm AK-130 round",10,400,5,0,25,0.006 ! "130mm F-44 HE",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","130 mm/70 (5.1"") AK-130 - Range 23km - Damage 27.9 - ETA 28 Seconds",27.9,850,5,0,23,0.06 ! "130mm ZS-44 AA",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","130mm ZS-44 AA - Range 15km - Damage 27.9 - ETA 18 Seconds",27.9,850,15,1,15,0.06 ! "130mm ZS-44P AA",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","130mm ZS-44P AA - Range 15km - Damage 27.9 - ETA 18 Seconds",27.9,850,15,1,15,0.06 ! "20mm AP-T",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","20mm AP-T - Range 2km - Damage 0.42 - ETA 2 Seconds",0.42,1100,7,1,2,0.06 ! "20mm AP-T MK9",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","20mm AP-T MK9 - Range 4km - Damage 0.09 - ETA 5 Seconds",0.09,835,7,1,4,0.06 ! "20mm APDS-T",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","20mm APDS-T - Range 2km - Damage 0.49 - ETA 2 Seconds",0.49,1150,7,1,2,0.06 ! "20mm APT percussion",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","20mm APT percussion - Range 2km - Damage 0.3 - ETA 3 Seconds",0.3,817,7,1,2,0.06 ! "20mm HE MK3",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","20mm HE MK3 - Range 4km - Damage 0.08 - ETA 5 Seconds",0.08,835,7,1,4,0.06 ! "20mm HE-I",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","20mm HE-I - Range 2km - Damage 0.22 - ETA 2 Seconds",0.22,1050,7,1,2,0.06 ! "20mm HE-I MK3",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","20mm HE-I MK3 - Range 4km - Damage 0.07 - ETA 5 Seconds",0.07,835,7,1,4,0.06 ! "20mm HE-I(b)",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","20mm HE-I(b) - Range 4km - Damage 0.07 - ETA 5 Seconds",0.07,835,7,1,4,0.06 ! "20mm HE-T",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","20mm HE-T - Range 2km - Damage 0.28 - ETA 2 Seconds",0.28,1050,7,1,2,0.06 ! "20mm HE-T MK4",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","20mm HE-T MK4 - Range 4km - Damage 0.06 - ETA 5 Seconds",0.06,835,7,1,4,0.06 ! "20mm HE-T MK7",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","20mm HE-T MK7 - Range 4km - Damage 0.07 - ETA 5 Seconds",0.07,835,7,1,4,0.06 ! "20mm HE(b)",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","20mm HE(b) - Range 4km - Damage 0.08 - ETA 5 Seconds",0.08,835,7,1,4,0.06 ! "20mm HEI Electric",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","20mm HEI Electric - Range 2km - Damage 0.12 - ETA 3 Seconds",0.12,945,7,1,2,0.06 ! "20mm HEI Percussion",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","20mm HEI Percussion - Range 2km - Damage 0.2 - ETA 3 Seconds",0.2,817,7,1,2,0.06 ! "20mm Mark 149-4",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","20mm Mark 149-4 - Range 2km - Damage 5.72 - ETA 2 Seconds",5.72,1113,15,2,2,0.06 ! "20mm mark 244-0 ELC",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","20mm mark 244-0 ELC - Range 2km - Damage 12.84 - ETA 2 Seconds",12.84,1113,15,2,2,0.06 ! "20mm Mk-15",14,512,500,,"ball/gunammoico.jpg","5-inch.xml","20mm point defense round for Mk15",2,900,10,2,4,0.006 ! "20mm SAP(b)",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","20mm SAP(b) - Range 4km - Damage 0.09 - ETA 5 Seconds",0.09,835,7,1,4,0.06 ! "25mm APDS",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","25mm APDS - Range 2.5km - Damage 0.75 - ETA 3 Seconds",0.75,1100,7,1,2.5,0.06 ! "25mm APDS Twin Barrel",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","25mm APDS - Range 2.5km - Damage 1.5 - ETA 3 Seconds - double damage for twin barrel",1.5,1100,7,1,2.5,0.06 ! "25mm APDS-T",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","25mm APDS-T - Range 2.5km - Damage 0.88 - ETA 3 Seconds",0.88,1100,7,1,2.5,0.06 ! "25mm APDS-T Twin Barrel",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","25mm APDS-T - Range 2.5km - Damage 1.75 - ETA 3 Seconds - double damage for twin barrel",1.75,1100,7,1,2.5,0.06 ! "25mm FAPDS-T",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","25mm FAPDS-T - Range 2.5km - Damage 0.88 - ETA 3 Seconds",0.88,1100,7,1,2.5,0.06 ! "25mm FAPDS-T Twin Barrel",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","25mm FAPDS-T - Range 2.5km - Damage 1.75 - ETA 3 Seconds - double damage for twin barrel",1.75,1100,7,1,2.5,0.06 ! "25mm HEI",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","25mm HEI - Range 2.5km - Damage 0.5 - ETA 3 Seconds",0.5,1100,7,1,2.5,0.06 ! "25mm HEI Twin Barrel",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","25mm HEI - Range 2.5km - Damage 1 - ETA 3 Seconds - double damage for twin barrel",1,1100,7,1,2.5,0.06 ! "25mm HEI-T",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","25mm HEI-T - Range 2.5km - Damage 0.5 - ETA 3 Seconds",0.5,1100,7,1,2.5,0.06 ! "25mm HEI-T Twin Barrel",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","25mm HEI-T - Range 2.5km - Damage 1 - ETA 3 Seconds - double damage for twin barrel",1,1100,7,1,2.5,0.06 ! "25mm SAPHEI",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","25mm SAPHEI - Range 2.5km - Damage 0.63 - ETA 3 Seconds",0.63,1100,7,1,2.5,0.06 ! "25mm SAPHEI Twin Barrel",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","25mm SAPHEI - Range 2.5km - Damage 1.25 - ETA 3 Seconds - double damage for twin barrel",1.25,1100,7,1,2.5,0.06 ! "25mm SAPHEI-T",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","25mm SAPHEI-T - Range 2.5km - Damage 0.63 - ETA 3 Seconds",0.63,1100,7,1,2.5,0.06 ! "25mm SAPHEI-T Twin Barrel",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","25mm SAPHEI-T - Range 2.5km - Damage 1.25 - ETA 3 Seconds - double damage for twin barrel",1.25,1100,7,1,2.5,0.06 ! "27mm FAPDS",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","27 mm MLG 27 Light Naval Gun System - Range 4km - Damage 1.14 - ETA 4 Seconds",1.14,1100,7,1,4,0.06 ! "30mm AK-630",14,512,500,,"ball/gunammoico.jpg","5-inch.xml","30mm AA rounds",2,900,10,2,4,0.006 ! "30mm AP-I",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","30mm AP-I - Range 3km - Damage 0.33 - ETA 4 Seconds",0.33,983,7,1,3,0.06 ! "30mm APDS",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","30mm APDS - Range 10.9km - Damage 0.39 - ETA 10 Seconds",0.39,1175,5,0,10.9,0.06 ! "30mm APDS-T",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","30mm APDS-T - Range 3km - Damage 1.58 - ETA 3 Seconds",1.58,1225,15,1,3,0.06 ! "30mm APFSDS-T",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","30mm APFSDS-T - Range 3km - Damage 0.13 - ETA 3 Seconds",0.12,1385,7,1,3,0.06 ! "30mm API",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","30 mm/77 (1.2"") Goalkeeper SGE-30 - Range 3km - Damage 4.77 - ETA 4 Seconds",4.77,983,15,1,3,0.06 ! "30mm Br-83 AP",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","30mm Br-83 AP - Range 4km - Damage 22.82 - ETA 4 Seconds",22.82,1060,7,1,4,0.06 ! "30mm F-33 HE",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","30mm F-33 HE - Range 4km - Damage 19.82 - ETA 4 Seconds",19.82,1060,7,1,4,0.06 ! "30mm FMPDS",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","30mm FMPDS - Range 3km - Damage 1.7 - ETA 3 Seconds",1.7,1150,15,1,3,0.06 ! "30mm HE",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","30mm HE - Range 10.9km - Damage 0.42 - ETA 11 Seconds",0.42,1080,7,1,10.9,0.06 ! "30mm HEI",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","30mm HEI - Range 3km - Damage 3.55 - ETA 3 Seconds",3.55,1021,15,1,3,0.06 ! "30mm HEI-T",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","30mm HEI-T - Range 3km - Damage 0.24 - ETA 3 Seconds",0.24,1080,7,1,3,0.06 ! "30mm OF-83 HE-FRAG",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","30mm OF-83 HE-FRAG - Range 4km - Damage 20.56 - ETA 4 Seconds",20.56,1060,7,1,4,0.06 ! "30mm OF-84 HE-FRAG AK-306",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","30mm OF-84 HE-FRAG AK-306 - Range 4km - Damage 26.63 - ETA 5 Seconds",26.63,900,15,2,4,0.06 ! "30mm OF-84 HE-FRAG AK-630M",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","30mm OF-84 HE-FRAG AK-630M - Range 4km - Damage 4.28 - ETA 5 Seconds",4.28,900,15,2,4,0.06 ! "30mm OF-84 HE-FRAG Kashtan-M",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","30mm OF-84 HE-FRAG Kashtan-M - Range 4km - Damage 25.13 - ETA 5 Seconds",25.13,860,15,2,4,0.06 ! "30mm OF-84 HE-FRAG Kashtan-Mx2",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","30mm OF-84 HE-FRAG Kashtan-Mx2 - Range 8km - Damage 8.55 - ETA 10 Seconds - extended range to account for only half mounting",8.55,860,15,2,8,0.06 ! "30mm OP-84 FRAG Tracer AK-306",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","30mm OP-84 FRAG Tracer AK-306 - Range 4km - Damage 19.61 - ETA 5 Seconds",19.61,900,15,2,4,0.06 ! "30mm OP-84 FRAG Tracer AK-630M",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","30mm OP-84 FRAG Tracer AK-630M - Range 4km - Damage 3.34 - ETA 5 Seconds",3.34,900,15,2,4,0.06 ! "30mm OP-84 FRAG Tracer Kashtan-M",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","30mm OP-84 FRAG Tracer Kashtan-M - Range 4km - Damage 19.61 - ETA 5 Seconds",19.61,860,15,2,4,0.06 ! "30mm OP-84 FRAG Tracer Kashtan-Mx2",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","30mm OP-84 FRAG Tracer Kashtan-Mx2 - Range 8km - Damage 6.67 - ETA 10 Seconds - extended range to account for only half mounting",6.67,860,15,2,8,0.06 ! "30mm SAPHEI-T",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","30mm SAPHEI-T - Range 3km - Damage 0.2 - ETA 3 Seconds",0.2,1080,7,1,3,0.06 ! "35mm AHEAD",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","35mm AHEAD - Range 3km - Damage 1.7 - ETA 3 Seconds",1.7,1050,15,1,3,0.06 ! "40mm HE-T",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","40mm HE-T - Range 12km - Damage 1.15 - ETA 12 Seconds",1.15,1005,7,1,12,0.06 ! "40mm PFHE",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","40mm PFHE - Range 12km - Damage 1.25 - ETA 12 Seconds",1.25,1025,7,1,12,0.06 ! "45mm F-75 HE",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","45mm F-75 HE - Range 9.14km - Damage 1.62 - ETA 9 Seconds",1.62,1080,5,0,9.14,0.06 ! "45mm OR-75 FRAG",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","45mm OR-75 FRAG - Range 5km - Damage 1.65 - ETA 5 Seconds",1.65,1080,7,1,5,0.06 ! "57mm HCER",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","57mm HCER - Range 17km - Damage 2.11 - ETA 18 Seconds",2.11,950,5,0,17,0.06 ! "57mm HE",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","57mm HE - Range 13.8km - Damage 1.77 - ETA 14 Seconds",1.77,1025,5,0,13.8,0.06 ! "57mm PFHE",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","57mm PFHE - Range 7.6km - Damage 1.67 - ETA 8 Seconds",1.67,1025,7,1,7.6,0.06 ! "57mm Tracer-FRAG",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","57mm tracer-FRAG - Range 6.95km - Damage 1.72 - ETA 7 Seconds",1.72,1020,7,1,6.95,0.06 ! "57mm Tracer-FRAG twin barrel",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","57mm tracer-FRAG - Range 6.95km - Damage 3.44 - ETA 7 Seconds",3.44,1020,7,1,6.95,0.06 ! "76.2mm OS-62 FRAG",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","76.2mm OS-62 FRAG - Range 15.7km - Damage 3.56 - ETA 17 Seconds",3.56,980,5,0,15.7,0.06 ! "76.2mm ZS-63 AA",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","76.2mm ZS-63 AA - Range 15.7km - Damage 3.68 - ETA 17 Seconds",3.68,980,15,1,15.7,0.06 ! "76mm HE-MOM",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","76mm HE-MOM - Range 18.4km - Damage 4.52 - ETA 21 Seconds",4.52,919,15,1,18.4,0.06 ! "76mm HE-SAPOM",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","76mm HE-SAPOM - Range 16km - Damage 5.18 - ETA 18 Seconds",5.18,919,15,1,16,0.06 ! "76mm HE-SAPOMER",14,512,0,,"ball/gunammoico.jpg","5-inch.xml","76mm HE-SAPOMER - Range 20km - Damage 5.64 - ETA 22 Seconds",5.64,919,15,1,20,0.06 ! "76mm Mk-75",14,512,500,,"ball/gunammoico.jpg","5-inch.xml","76mm round",6,800,5,0,20,0.006 ! "GB-200",14,512,500,,"ball/gb200ico.jpg","mk-82.xml","200 kg gravity bomb",200,0,5,1,10,0.006 ! "GB-500",14,512,5000,,"ball/gb500ico.jpg","mk-84.xml","500 kg gravity bomb",500,0,5,1,10,0.006 ! "Mk-82",14,512,300,,"ball/mk82ico.jpg","mk-82.xml","500 lb iron gravity bomb",250,0,5,1,10,0.01 ! "Mk-83",14,512,1000,,"ball/mk83ico.jpg","mk-84.xml","1000 lb iron gravity bomb",500,0,5,1,10,0.01 ! "Mk-84",14,512,3100,,"ball/mk84ico.jpg","mk-84.xml","2000 lb iron gravity bomb",1000,0,5,1,10,0.01 ! "Shell-1",14,512,500,,"ball/gunammoico.jpg","5-inch.xml","Test naval gun round",10,300,5,0,10,0.006 ! "Shell-2",14,512,500,,"ball/gunammoico.jpg","5-inch.xml","Test naval gun round with slightly longer range",10,400,5,0,10,0.006 |