Advertisement
Guest User

Life if Feudal - Client script functions

a guest
Aug 10th, 2015
4,271
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 191.11 KB | None | 0 0
  1. namespace Global {
  2.     virtual Script cleanupPatches(()) {}
  3.     virtual Script updatePatchedTerCounterGui(( string loadedTerCount, string totalTerCount )) {}
  4.     virtual Script updateForestPatchingCounterGui(( string loadedTerCount, string totalTerCount )) {}
  5.     virtual Script updateObjPatchingCounterGui(( string loadedTerCount, string totalTerCount )) {}
  6.     virtual Script updateGeoPatchingCounterGui(( string loadedTerCount, string totalTerCount )) {}
  7.     virtual Script updatePatchingCounterGui(( string patchedTerCount, string totalTerCount )) {}
  8.     virtual Script joinToRemoteServer(( string addr, string password )) {}
  9.     virtual Script initLocalConnection(( string port )) {}
  10.     virtual Script updateVersionBarText(()) {}
  11.     virtual Script showWelcomeMessage(()) {}
  12.     virtual Script onLocalServerLoaded(()) {}
  13.     virtual Script startRedingSharedServerLoadingStatus(()) {}
  14.     virtual Script getLocalIP(()) {}
  15.     virtual Script cmJoinDefaultChats(()) {}
  16.     virtual Script clientCmdPATCHOK(( string server )) {}
  17.     virtual Script clientRpcPREPATCHOK(( string cs )) {}
  18.     virtual Script clientRpcGetPVer(( string cs )) {}
  19.     virtual Script connectToContentServer(()) {}
  20.     virtual Script reconnectToContentServer(( string errorMessage )) {}
  21.     virtual Script peerCmdCS(( string peer, string serverPort, string accountHash )) {}
  22.     virtual Script startConnection(( string addr )) {}
  23.     virtual Script connectToGameServer(()) {}
  24.     virtual Script updateCMConfig(( string serverID )) {}
  25.     virtual Script onExit(()) {}
  26.     virtual Script onExit(()) {}
  27.     virtual Script initializeEditors(()) {}
  28.     virtual Script onStart(()) {}
  29.     virtual Script parseArgs(()) {}
  30.     virtual Script parseArgs(()) {}
  31.     virtual Script loadKeybindings(()) {}
  32.     virtual Script onExit(()) {}
  33.     virtual Script onStart(()) {}
  34.     virtual Script cm_debug_print(( string msg )) {}
  35.     virtual Script stopMusic(()) {}
  36.     virtual Script startMusic(()) {}
  37.     virtual Script Create_unit_formation_selectron(( string obj, string type )) {}
  38.     virtual Script selectSelf(( string type )) {}
  39.     virtual Script reExD(()) {}
  40.     virtual Script reExC(()) {}
  41.     virtual Script switch_fxTrigger(( string set_state )) {}
  42.     virtual Script afxInFreeTargetingMode(()) {}
  43.     virtual Script afxCancelFreeTargetingMode(()) {}
  44.     virtual Script afxFinishFreeTargetingMode(()) {}
  45.     virtual Script afxStartFreeTargetingMode(( string book_slot, string free_target_style )) {}
  46.     virtual Script clientCmdUpdateSelectronStyle(( string style_name, string style_id, string display_msg )) {}
  47.     virtual Script gotoPreviousSelectronStyle(()) {}
  48.     virtual Script gotoNextSelectronStyle(()) {}
  49.     virtual Script resetSelectronStyle(()) {}
  50.     virtual Script clientCmdResetTargetStatusbarLabel(()) {}
  51.     virtual Script cm_config_CalcPlayerPostHitTimeScale(( string lvl )) {}
  52.     virtual Script cm_config_CalcPlayerHitTimeScale(( string lvl )) {}
  53.     virtual Script updateCMConfig(( string serverID )) {}
  54.     virtual Script DebugAddLayerToTop(( string val )) {}
  55.     virtual Script togglePostFXManager(( string val )) {}
  56.     virtual Script setCameraMode(( string mode )) {}
  57.     virtual Script clientCmdSetCameraSpeed(( string val )) {}
  58.     virtual Script setCameraSpeed(( string val )) {}
  59.     virtual Script dropPlayerAtCamera(( string val )) {}
  60.     virtual Script dropCameraAtPlayer(( string val )) {}
  61.     virtual Script doProfile(( string val )) {}
  62.     virtual Script cycleDebugRenderMode(( string val )) {}
  63.     virtual Script setZoomFOV(( string val )) {}
  64.     virtual Script toggleZoomFOV(()) {}
  65.     virtual Script doHindLegsBreak(()) {}
  66.     virtual Script doHindLegs(( string val )) {}
  67.     virtual Script turnRight(( string val )) {}
  68.     virtual Script turnLeft(( string val )) {}
  69.     virtual Script brake(( string val )) {}
  70.     virtual Script brakeLights(()) {}
  71.     virtual Script clientCmdVehicleMapOff(()) {}
  72.     virtual Script clientCmdVehicleMapOn(()) {}
  73.     virtual Script switchShowClaims(( string down )) {}
  74.     virtual Script showClaims(( string down )) {}
  75.     virtual Script toggleFreeLook(( string val )) {}
  76.     virtual Script mouseWheelRot(( string val )) {}
  77.     virtual Script mouseWheelDown(()) {}
  78.     virtual Script mouseWheelUp(()) {}
  79.     virtual Script toggleCmEditGuiMode(( string down )) {}
  80.     virtual Script ActivateVoiceChat(( string down )) {}
  81.     virtual Script toggleCmFreelookMode(( string down )) {}
  82.     virtual Script forcePeacefulStance(()) {}
  83.     virtual Script toggleWarstancePose(( string val )) {}
  84.     virtual Script toggleHelpDlg(( string val )) {}
  85.     virtual Script forceFirstPerson(()) {}
  86.     virtual Script forceThirdPerson(()) {}
  87.     virtual Script toggleFirstPerson(( string val )) {}
  88.     virtual Script gamepadAltTrigger(( string val )) {}
  89.     virtual Script gamepadFire(( string val )) {}
  90.     virtual Script shieldBash(( string val )) {}
  91.     virtual Script altTrigger(( string val )) {}
  92.     virtual Script mouseFire(( string val )) {}
  93.     virtual Script isWarState(()) {}
  94.     virtual Script switchAutorun(( string val )) {}
  95.     virtual Script gamepadPitch(( string val )) {}
  96.     virtual Script gamepadYaw(( string val )) {}
  97.     virtual Script gamePadMoveY(( string val )) {}
  98.     virtual Script gamePadMoveX(( string val )) {}
  99.     virtual Script jump(( string val )) {}
  100.     virtual Script pitch(( string val )) {}
  101.     virtual Script yaw(( string val )) {}
  102.     virtual Script getGamepadAdjustAmount(( string val )) {}
  103.     virtual Script getMouseAdjustAmount(( string val )) {}
  104.     virtual Script panDown(( string val )) {}
  105.     virtual Script panUp(( string val )) {}
  106.     virtual Script movedown(( string val )) {}
  107.     virtual Script movedown2(( string val )) {}
  108.     virtual Script moveup(( string val )) {}
  109.     virtual Script movebackward(( string val )) {}
  110.     virtual Script moveforward(( string val )) {}
  111.     virtual Script moveright(( string val )) {}
  112.     virtual Script moveleft(( string val )) {}
  113.     virtual Script setSpeed(( string speed )) {}
  114.     virtual Script doScreenShotHudless(( string val )) {}
  115.     virtual Script hideHUDs(( string val )) {}
  116.     virtual Script handleEscape(( string val )) {}
  117.     virtual Script disablePixelize(( string val )) {}
  118.     virtual Script enablePixelize(( string val )) {}
  119.     virtual Script bringUpOptions(( string val )) {}
  120.     virtual Script applyRenamePreset(( string new_preset_name, string cur_name_preset, string cur_name_menu )) {}
  121.     virtual Script setNewPresetName(( string new_preset_name )) {}
  122.     virtual Script createNewPreset(( string name_preset, string name_menu )) {}
  123.     virtual Script createNewPresetCopyFrom(( string new_preset, string cur_preset, string name_menu )) {}
  124.     virtual Script copyObjToPath(( string old_path, string new_path )) {}
  125.     virtual Script deleteAllPresetFile(( string preset_path )) {}
  126.     virtual Script checkDefHotBarPresetPath(()) {}
  127.     virtual Script setStateCheckBox(( string old_check_box, string new_check_box )) {}
  128.     virtual Script setDefaultHotBarPreset(( string name_preset )) {}
  129.     virtual Script checkHotBarPresetCheckBox(( string name_preset )) {}
  130.     virtual Script setDefaultHUDPreset(( string name_preset )) {}
  131.     virtual Script checkDefaultHUDPreset(( string name_preset )) {}
  132.     virtual Script setCheckBoxHUDPreset(( string name_preset )) {}
  133.     virtual Script resetPreset(( string name_preset, string name_menu )) {}
  134.     virtual Script deletePreset(( string name_preset, string name_menu )) {}
  135.     virtual Script peerCmdCS(( string peer, string serverIP, string serverPort, string accountHash )) {}
  136.     virtual Script clientRpcCS(( string peer, string geoID )) {}
  137.     virtual Script clientRpcOK(( string cs )) {}
  138.     virtual Script connectToContentServer(()) {}
  139.     virtual Script reconnectToContentServer(( string errorMessage )) {}
  140.     virtual Script connectToGameServer(()) {}
  141.     virtual Script peerCmdJS(( string this )) {}
  142.     virtual Script peerCmdSA(( string server, string geoID, string address, string port, string serverID )) {}
  143.     virtual Script relay(( string server, string callback )) {}
  144.     virtual Script connectDispatcher(( string server )) {}
  145.     virtual Script connect(( string server, string callback )) {}
  146.     virtual Script connectToServer(( string serverID )) {}
  147.     virtual Script cleanupPatches(()) {}
  148.     virtual Script _disconnectedCleanupFinal(()) {}
  149.     virtual Script disconnectedCleanup(()) {}
  150.     virtual Script requestCleanup(()) {}
  151.     virtual Script onWindowClose(()) {}
  152.     virtual Script processDisconnect(()) {}
  153.     virtual Script disconnect(()) {}
  154.     virtual Script getIRSPMetrics(()) {}
  155.     virtual Script goTCP(()) {}
  156.     virtual Script listAllServers(()) {}
  157.     virtual Script handleConnectionErrorMessage(( string msgType, string msgString, string msgError )) {}
  158.     virtual Script lag(( string lag )) {}
  159.     virtual Script dropConnectionToServer(( string serverID )) {}
  160.     virtual Script initiateNewConnection(( string serverID, string addr )) {}
  161.     virtual Script clientCmdIrsp(( string cmd, string a1, string a2, string a3 )) {}
  162.     virtual Script peerCmdIrc(( string server, string cmd, string a1, string a2, string a3 )) {}
  163.     virtual Script onWorldCreated(()) {}
  164.     virtual Script peerCmdSimpleAuthResult(( string server, string success, string geoID )) {}
  165.     virtual Script peerCmdConnectionEstablished(( string server )) {}
  166.     virtual Script startConnection(( string addr )) {}
  167.     virtual Script initConnection(()) {}
  168.     virtual Script resuscitate(( string magnitude )) {}
  169.     virtual Script createRest(( string duration, string healAmount )) {}
  170.     virtual Script dealDamage(( string partOfBody )) {}
  171.     virtual Script healFracture(( string partOfBody, string durationMultiplier )) {}
  172.     virtual Script healWound(( string partOfBody, string durationMultiplier )) {}
  173.     virtual Script removeFracture(( string partOfBody )) {}
  174.     virtual Script removeBleeding(( string partOfBody )) {}
  175.     virtual Script removeWound(( string partOfBody )) {}
  176.     virtual Script createFracture(( string partOfBody )) {}
  177.     virtual Script createBleeding(( string partOfBody )) {}
  178.     virtual Script createWound(( string partOfBody )) {}
  179.     virtual Script peerCmdUpdateServerDebugRaycastHitbox(( string server, string newHitbox )) {}
  180.     virtual Script cmChatSendLocalMessageToServer(( string position, string message )) {}
  181.     virtual Script toggleMap(( string val )) {}
  182.     virtual Script initCraftworkBrewingTankOptionsDlg(( string maxProductCount, string bitmap )) {}
  183.     virtual Script openProspectingRadiusDialog(( string minRadius, string maxRadius, string caption, string label, string bitmap )) {}
  184.     virtual Script ShowEquipment(( string val )) {}
  185.     virtual Script ShowInventory(( string val )) {}
  186.     virtual Script loadStartup(()) {}
  187.     virtual Script updateVersionBarText(()) {}
  188.     virtual Script refreshCenterTextCtrl(()) {}
  189.     virtual Script refreshBottomTextCtrl(()) {}
  190.     virtual Script RenameCancel(()) {}
  191.     virtual Script RenameOK(()) {}
  192.     virtual Script MessageBoxRename(()) {}
  193.     virtual Script onServerQueryStatus(( string status, string msg, string value )) {}
  194.     virtual Script showDirectConnectDialog(( string maxPwdLen, string callbackFunctionName )) {}
  195.     virtual Script showPasswordDialog(( string descr, string maxPwdLen, string callbackFunctionName )) {}
  196.     virtual Script CharSelectionDelcharCancel(()) {}
  197.     virtual Script CharSelectionDelcharOK(()) {}
  198.     virtual Script MessageBoxDelchar(( string slot )) {}
  199.     virtual Script SetThrowingRange(( string min, string max )) {}
  200.     virtual Script SetTwohandedRange(( string min, string max )) {}
  201.     virtual Script SetBladesmasteryRange(( string min, string max )) {}
  202.     virtual Script SetMilitiaserviceRange(( string min, string max )) {}
  203.     virtual Script SetWarhorsehandlingRange(( string min, string max )) {}
  204.     virtual Script SetFarmingRange(( string min, string max )) {}
  205.     virtual Script SetTerraformingRange(( string min, string max )) {}
  206.     virtual Script SetNatureloreRange(( string min, string max )) {}
  207.     virtual Script SetForestryRange(( string min, string max )) {}
  208.     virtual Script SetProspectingRange(( string min, string max )) {}
  209.     virtual Script SetIntelligenceRange(( string min, string max )) {}
  210.     virtual Script SetWillpowerRange(( string min, string max )) {}
  211.     virtual Script SetConstitutionRange(( string min, string max )) {}
  212.     virtual Script SetAgilityRange(( string min, string max )) {}
  213.     virtual Script SetStrenghtRange(( string min, string max )) {}
  214.     virtual Script renamePreset(( string menu_name, string preset_name )) {}
  215.     virtual Script ApplyBindQueue(()) {}
  216.     virtual Script CancelOptionsControlsDlg(()) {}
  217.     virtual Script ShowOptionsControls(()) {}
  218.     virtual Script toggleCoreMainMenu(( string on )) {}
  219.     virtual Script showToggleCoreMainMenu(()) {}
  220.     virtual Script Lif_ContextMenu_OnPressedContext(( string val )) {}
  221.     virtual Script Lif_ContextMenu_OnPressedDefault(( string val )) {}
  222.     virtual Script setBasicLighting(()) {}
  223.     virtual Script onDeactivateBasicLM(()) {}
  224.     virtual Script onActivateBasicLM(()) {}
  225.     virtual Script setAdvancedLighting(()) {}
  226.     virtual Script onDeactivateAdvancedLM(()) {}
  227.     virtual Script onActivateAdvancedLM(()) {}
  228.     virtual Script unlockShadowViz(()) {}
  229.     virtual Script lockShadowViz(()) {}
  230.     /*!  For convenience, push the viz dialog and set the light manually from the console.
  231.  */
  232.     virtual Script showShadowVizForLight(( string light )) {}
  233.     /*!  Called from the WorldEditor when an object is selected.
  234.  */
  235.     virtual Script _setShadowVizLight(( string light, string force )) {}
  236.     /*!  Toggles the visualization of the pre-pass lighting buffer.
  237.  */
  238.     virtual Script toggleShadowViz(()) {}
  239.     /*!  Toggles the visualization of the AL lighting specular power buffer.
  240.  */
  241.     virtual Script toggleLightSpecularViz(( string enable )) {}
  242.     /*!  Toggles the visualization of the AL lighting color buffer.
  243.  */
  244.     virtual Script toggleLightColorViz(( string enable )) {}
  245.     /*!  Toggles the visualization of the AL normals buffer.
  246.  */
  247.     virtual Script toggleNormalsViz(( string enable )) {}
  248.     /*!  Toggles the visualization of the AL depth buffer.
  249.  */
  250.     virtual Script toggleDepthViz(( string enable )) {}
  251.     virtual Script onLightManagerDeactivate(( string lmName )) {}
  252.     virtual Script onLightManagerActivate(( string lmName )) {}
  253.     virtual Script initLightingSystems(()) {}
  254.     virtual Script initRenderManager(()) {}
  255.     virtual Script clientCmdGhostAllGhostAlwaysReceived(()) {}
  256.     virtual Script onGhostAlwaysObjectReceived(()) {}
  257.     virtual Script onGhostAlwaysStarted(( string ghostCount )) {}
  258.     virtual Script updateStreamingProgress(()) {}
  259.     virtual Script onStreamingEndLoad(()) {}
  260.     virtual Script onStreamingBeginLoad(()) {}
  261.     virtual Script onStreamingEndFastLoad(()) {}
  262.     virtual Script onStreamingBeginFastLoad(()) {}
  263.     virtual Script onStreamingEndReloadWorld(( string callback )) {}
  264.     virtual Script onStreamingBeginReloadWorld(()) {}
  265.     virtual Script onStreamingEndInitialLoadWorld(( string callback )) {}
  266.     virtual Script onStreamingBeginInitialLoadWorld(()) {}
  267.     virtual Script updateGMtext(()) {}
  268.     virtual Script clientCmdReadyStateAck(()) {}
  269.     virtual Script clientDestroyWorld(()) {}
  270.     virtual Script clientReloadWorld(( string geoID, string callback )) {}
  271.     virtual Script clientCreateWorld(( string geoID, string callback )) {}
  272.     virtual Script defaultMessageCallback(( string msgType, string msgString, string a1, string a2, string a3, string a4, string a5, string a6, string a7, string a8, string a9, string a10 )) {}
  273.     virtual Script onServerMessage(( string a, string b, string c, string d, string e, string f, string g, string h, string i )) {}
  274.     virtual Script addMessageCallback(( string msgType, string func )) {}
  275.     virtual Script clientCmdServerMessage(( string msgType, string msgString, string a1, string a2, string a3, string a4, string a5, string a6, string a7, string a8, string a9, string a10 )) {}
  276.     virtual Script clientCmdChatMessage(( string sender, string voice, string pitch, string msgString, string a1, string a2, string a3, string a4, string a5, string a6, string a7, string a8, string a9, string a10 )) {}
  277.     virtual Script loadObjectPropertyXml(( string object, string file_name )) {}
  278.     virtual Script saveObjectPropertyXml(( string object, string file_name )) {}
  279.     virtual Script saveGui(()) {}
  280.     virtual Script saveHotBar(()) {}
  281.     virtual Script showWelcomeMessage(()) {}
  282.     virtual Script loadAllGuiProperty(()) {}
  283.     virtual Script loadHotBarData(()) {}
  284.     virtual Script loadDefaultProperty(( string only_pos )) {}
  285.     virtual Script loadGui(()) {}
  286.     virtual Script cmJoinDefaultChats(()) {}
  287.     virtual Script loadMainMenu(()) {}
  288.     virtual Script goAFX(()) {}
  289.     virtual Script initClient(()) {}
  290.     virtual Script twitchLoginSuccess(()) {}
  291.     virtual Script twitchLoginFailed(()) {}
  292.     virtual Script twitch(()) {}
  293.     virtual Script setLoadingGuiText(( string text )) {}
  294.     virtual Script updateLoadingTextProgress(()) {}
  295.     virtual Script loadLoadingGui(( string text )) {}
  296.     virtual Script changeTooltipText(()) {}
  297.     virtual Script restartMusic(()) {}
  298.     virtual Script OptAudioUpdateVoiceChatVolume(( string volume )) {}
  299.     virtual Script OptAudioUpdateChannelVolume(( string description, string volume )) {}
  300.     virtual Script OptAudioUpdateMasterVolume(( string volume )) {}
  301.     virtual Script changePreset(( string preset )) {}
  302.     virtual Script changeAntiAliasing(( string newAA )) {}
  303.     virtual Script _makePrettyResString(( string resString )) {}
  304.     virtual Script MessageBoxYesNoOld(( string title, string message, string yesCallback, string noCallback )) {}
  305.     virtual Script MessageBoxOKCancelOld(( string title, string message, string callback, string cancelCallback )) {}
  306.     virtual Script MessageBoxOKOld(( string title, string message, string callback )) {}
  307.     virtual Script MessageIDBoxDlg(( string dialog, string title, string message, string btn1Callback, string btn1Caption, string btn2Callback, string btn2Caption, string btn3Callback, string btn3Caption )) {}
  308.     virtual Script CmMessageIDBox(( string title, string message, string btnCallback, string btn1Caption, string btn2Caption, string btn3Caption, string closeBtnIndex, string showCheckbox )) {}
  309.     virtual Script setBtnCenterXPos(( string btn )) {}
  310.     virtual Script setBtnPos(( string btn, string x )) {}
  311.     virtual Script MBIDSetText(( string text, string frame, string msg )) {}
  312.     virtual Script MBIDResize(( string deltaY, string frame )) {}
  313.     virtual Script CloseMessagePopup(()) {}
  314.     virtual Script IODropdownEx(( string title, string message, string simgroup, string callback, string cancelCallback, string showCheckbox, string idList, string nameGetterById )) {}
  315.     virtual Script IODropdown_idList(( string title, string message, string callback, string cancelCallback, string idList, string nameGetterById )) {}
  316.     virtual Script IODropdown(( string title, string message, string simgroup, string callback, string cancelCallback )) {}
  317.     virtual Script MessagePopup(( string title, string message, string delay )) {}
  318.     virtual Script MessageBoxYesNoCancel(( string title, string message, string yesCallback, string noCallback, string cancelCallback )) {}
  319.     virtual Script MessageBoxYesNo(( string title, string message, string yesCallback, string noCallback )) {}
  320.     virtual Script MBOKCancelDetailsToggleInfoFrame(()) {}
  321.     virtual Script MessageBoxOKCancelDetails(( string title, string message, string details, string callback, string cancelCallback )) {}
  322.     virtual Script MessageBoxOKCancel(( string title, string message, string callback, string cancelCallback )) {}
  323.     virtual Script MessageBoxOK(( string title, string message, string callback )) {}
  324.     virtual Script MBSetText(( string text, string frame, string msg )) {}
  325.     virtual Script IOCallback(( string dlg, string callback )) {}
  326.     virtual Script messageCallback(( string dlg, string callback )) {}
  327.     virtual Script InputCancel(( string guiContent )) {}
  328.     virtual Script InputOK(( string guiContent, string CommandName )) {}
  329.     virtual Script ShowNameBoxInput(( string command_name )) {}
  330.     virtual Script createMessageBoxInputText(( string command_name, string caption, string label )) {}
  331.     virtual Script createMessageIDBoxDlg(( string MessageBoxName )) {}
  332.     virtual Script netSimulateLag(( string msDelay, string packetLossPercent )) {}
  333.     /*!  A helper function which will return the ghosted client object
  334.  from a server object when connected to a local server.
  335.  */
  336.     virtual Script serverToClientObject(( string serverObject )) {}
  337.     virtual Script initBaseClient(()) {}
  338.     virtual Script updateNetGraphData(( string obj, string name0, string val0, string name1, string val1, string name2, string val2, string name3, string val3, string name4, string val4, string name5, string val5 )) {}
  339.     virtual Script updateNetGraphCountsStats(()) {}
  340.     virtual Script updateNetGraphTrafficStats(()) {}
  341.     virtual Script toggleNetGraphCounter(()) {}
  342.     virtual Script toggleNetGraphTraffic(()) {}
  343.     virtual Script getNextGraphPos(()) {}
  344.     virtual Script toggleNetGraph(()) {}
  345.     virtual Script createNetGraph(( string graphName, string pos )) {}
  346.     virtual Script deleteNetGraphGui(()) {}
  347.     virtual Script createNetGraphGui(()) {}
  348.     virtual Script execNetGraphGuiGUI(()) {}
  349.     virtual Script ppOptionsUpdateDOFSettings(()) {}
  350.     virtual Script postVerbose(( string string )) {}
  351.     /*!  Toggles the visualization of the AL lighting specular power buffer.
  352.  */
  353.     virtual Script toggleSpecMapViz(( string enable )) {}
  354.     /*!  Toggles the visualization of the AL lighting specular power buffer.
  355.  */
  356.     virtual Script toggleColorBufferViz(( string enable )) {}
  357.     virtual Script doBloodDrop(()) {}
  358.     virtual Script initDrinkPostEffect(( string distQ, string refrac1, string refrac2 )) {}
  359.     virtual Script initPostEffects(()) {}
  360.     virtual Script imposterMetricsCallback(()) {}
  361.     virtual Script clientCmdClearBottomPrint(()) {}
  362.     virtual Script clientCmdClearCenterPrint(()) {}
  363.     virtual Script clientCmdBottomPrint(( string message, string time, string size )) {}
  364.     virtual Script clientCmdCenterPrint(( string message, string time, string size )) {}
  365.     virtual Script metrics(( string expr )) {}
  366.     virtual Script videoMetricsCallback(()) {}
  367.     virtual Script audioMetricsCallback(()) {}
  368.     virtual Script irspMetricsCallback(()) {}
  369.     virtual Script streamingMetricsCallback(()) {}
  370.     virtual Script detailsMetricsCallback(()) {}
  371.     virtual Script tergenMetricsCallback(()) {}
  372.     virtual Script termemMetricsCallback(()) {}
  373.     virtual Script eproxyMetricsCallback(()) {}
  374.     virtual Script partMetricsCallback(()) {}
  375.     virtual Script particleMetricsCallback(()) {}
  376.     virtual Script lightMetricsCallback(()) {}
  377.     virtual Script basicShadowMetricsCallback(()) {}
  378.     virtual Script shadowMetricsCallback(()) {}
  379.     virtual Script renderMetricsCallback(()) {}
  380.     virtual Script decalMetricsCallback(()) {}
  381.     virtual Script reflectMetricsCallback(()) {}
  382.     virtual Script timeMetricsCallback(()) {}
  383.     virtual Script sfxStatesMetricsCallback(()) {}
  384.     virtual Script sfxSourcesMetricsCallback(()) {}
  385.     virtual Script sfxMetricsCallback(()) {}
  386.     virtual Script forestMetricsCallback(()) {}
  387.     virtual Script groundCoverMetricsCallback(()) {}
  388.     virtual Script netMetricsCallback(()) {}
  389.     virtual Script terrainMetricsCallback(()) {}
  390.     virtual Script gfxMetricsCallback(()) {}
  391.     virtual Script fpsMetricsCallback(()) {}
  392.     virtual Script parseMissionGroupForIds(( string className, string childGroup )) {}
  393.     virtual Script parseMissionGroup(( string className, string childGroup )) {}
  394.     virtual Script shareValueSafeDelay(( string source, string dest, string delayMs )) {}
  395.     virtual Script shareValueSafe(( string source, string dest )) {}
  396.     virtual Script setValueSafe(( string dest, string val )) {}
  397.     virtual Script loadFileText(( string file )) {}
  398.     virtual Script fieldPos(( string text, string field, string start )) {}
  399.     virtual Script wordPos(( string text, string word, string start )) {}
  400.     virtual Script validateDatablockName(( string name )) {}
  401.     /*!  This will close the console and take a large format
  402.  screenshot by tiling the current backbuffer and save
  403.  it to the root game folder.
  404.  
  405.  For instance a tile setting of 4 with a window set to
  406.  800x600 will output a 3200x2400 screenshot.
  407.  */
  408.     virtual Script tiledScreenShot(( string tiles, string overlap )) {}
  409.     /*!  Internal function which generates unique filename
  410.  and triggers a screenshot capture.
  411.  */
  412.     virtual Script _screenShot(( string tiles, string overlap )) {}
  413.     /*!  This is bound in initializeCommon() to take
  414.  a screenshot on a keypress.
  415.  */
  416.     virtual Script doScreenShot(( string val )) {}
  417.     virtual Script stopMovie(()) {}
  418.     virtual Script recordMovie(( string movieName, string fps, string encoder )) {}
  419.     virtual Script formatSessionNumber(( string number )) {}
  420.     virtual Script formatImageNumber(( string number )) {}
  421.     virtual Script InspectVarsToggleCursor(()) {}
  422.     virtual Script InspectVars(( string filter )) {}
  423.     virtual Script GuiEditorIsActive(()) {}
  424.     virtual Script EditorIsActive(()) {}
  425.     virtual Script resetCanvas(()) {}
  426.     virtual Script initializeCanvas(()) {}
  427.     virtual Script configureCanvas(()) {}
  428.     /*!  Resumes the playback of paused sound sources.
  429.  
  430.  @param %pauseSet    An optional SimSet which contains the paused sound
  431.                      sources to be resumed.  If not specified the global
  432.                      SfxSourceGroup is used.
  433.  @deprecated
  434.  
  435.  */
  436.     virtual Script sfxResume(( string pauseSet )) {}
  437.     /*!  Pauses the playback of active sound sources.
  438.  
  439.  @param %channels    An optional word list of channel indices or an empty
  440.                      string to pause sources on all channels.
  441.  @param %pauseSet    An optional SimSet which is filled with the paused
  442.                      sources.  If not specified the global SfxSourceGroup
  443.                      is used.
  444.  
  445.  @deprecated
  446.  
  447.  */
  448.     virtual Script sfxPause(( string channels, string pauseSet )) {}
  449.     virtual Script sfxSetChannelVolume(( string channel, string volume )) {}
  450.     virtual Script sfxGetChannelVolume(( string channel )) {}
  451.     virtual Script sfxStopAll(( string channel )) {}
  452.     virtual Script sfxGetVoiceChatVolume(( string volume )) {}
  453.     virtual Script sfxSetVoiceChatVolume(( string volume )) {}
  454.     virtual Script sfxGetMasterVolume(( string volume )) {}
  455.     virtual Script sfxSetMasterVolume(( string volume )) {}
  456.     virtual Script sfxGroupToOldChannel(( string group )) {}
  457.     virtual Script sfxOldChannelToGroup(( string channel )) {}
  458.     /*!  Try to detect and initalize the best SFX device available.
  459.  */
  460.     virtual Script sfxAutodetect(()) {}
  461.     /*!  Determines which of the two SFX providers is preferable.
  462.  */
  463.     virtual Script sfxCompareProvider(( string providerA, string providerB )) {}
  464.     /*!  Destroys the current sound system device.
  465.  */
  466.     virtual Script sfxShutdown(()) {}
  467.     /*!  This initializes the sound system device from
  468.  the defaults in the $pref::SFX:: globals.
  469.  */
  470.     virtual Script sfxInit(()) {}
  471.     /*!  This initializes the sound system device from
  472.  the defaults in the $pref::SFX:: globals.
  473.  */
  474.     virtual Script sfxStartup(()) {}
  475.     virtual Script handleCoreEscape(( string val )) {}
  476.     virtual Script reloadMaterials(()) {}
  477.     virtual Script loadMaterials(()) {}
  478.     virtual Script reloadCoreMaterials(()) {}
  479.     virtual Script loadCoreMaterials(()) {}
  480.     virtual Script dumpKeybindings(()) {}
  481.     virtual Script shutdownCore(()) {}
  482.     virtual Script initializeCore(()) {}
  483.     virtual Script GraphicsQualityAutodetect_Apply(( string shaderVer, string intel, string videoMem )) {}
  484.     virtual Script GraphicsQualityAutodetect(()) {}
  485.     virtual Script loadDirs(( string dirPath )) {}
  486.     virtual Script dumpSysInfo(( string where )) {}
  487.     virtual Script loadDir(( string dir )) {}
  488.     virtual Script isScriptFile(( string path )) {}
  489.     virtual Script clientCmdTakeCameraPos(( string pos )) {}
  490.     virtual Script createCanvas(( string windowTitle )) {}
  491.     virtual Script compileFiles(( string pattern )) {}
  492.     virtual Script defaultParseArgs(()) {}
  493.     virtual Script popFront(( string list, string delim )) {}
  494.     virtual Script pushBack(( string list, string token, string delim )) {}
  495.     virtual Script pushFront(( string list, string token, string delim )) {}
  496.     virtual void initSoundsManager(()) {}
  497.     /*! gets the top terrain height at the specified position.@param pos The world space point. Can be formatted as either ("x y z") or (x,y,z)
  498. @note This function is useful if you simply want to grab the terrain height underneath an object.
  499. @return Returns the terrain height at the given point as an F32 value.
  500.  */
  501.     virtual float getTerrainTopAtPosition((Point3F pos)) {}
  502.     /*! gets the top terrain height at the specified position.@param pos The world space point. Can be formatted as either ("x y z") or (x,y,z)
  503. @note This function is useful if you simply want to grab the terrain height underneath an object.
  504. @return Returns the terrain height at the given point as an F32 value.
  505.  */
  506.     virtual float getTerrainTopLevel((Point3F pos)) {}
  507.     virtual void changeStreamingSpeed() {}
  508.     virtual void _checkSimManagerValidity(()) {}
  509.     /*! InitVolley() */
  510.     virtual void InitVolley() {}
  511.     /*! CancelVolley() */
  512.     virtual void CancelVolley() {}
  513.     virtual void stripBots() {}
  514.     virtual void ExportVolumes((Export Volumes Map to Binary File)) {}
  515.     virtual void CalcMap((Calc Path nodes Graph) {}
  516.     virtual void LocalCalcMap((Calc Path nodes Graph) {}
  517.     virtual void FindPath((Find Path from {100, 100} to {200, 200})) {}
  518.     virtual void MarkGrid() {}
  519.     virtual void CheckGraph() {}
  520.     virtual void addPoint((Find Path from {100, 100} to {200, 200})) {}
  521.     virtual void ClearPoints() {}
  522.     virtual void MarkTrace() {}
  523.     virtual void TestConvex((Export Volumes Map to Binary File)) {}
  524.     virtual void TestCoords((Test only)) {}
  525.     virtual void TestDecal((Test only)) {}
  526.     virtual void Draw_test_decal((Test only)) {}
  527.     virtual void TestParticle() {}
  528.     virtual void ShowPositions() {}
  529.     virtual void RestorePopulation() {}
  530.     /*! @brief Set the default FOV for a camera.
  531. @param defaultFOV The default field of view in degrees
  532. @ingroup CameraSystem */
  533.     virtual void setDefaultFov(( float defaultFOV )) {}
  534.     /*! @brief Set the zoom speed of the camera.
  535. This affects how quickly the camera changes from one field of view to another.
  536. @param speed The camera's zoom speed in ms per 90deg FOV change
  537. @ingroup CameraSystem */
  538.     virtual void setZoomSpeed(( int speed )) {}
  539.     /*! @brief Set the FOV of the camera.
  540. @param FOV The camera's new FOV in degrees
  541. @ingroup CameraSystem */
  542.     virtual void setFov(( float FOV )) {}
  543.     /*! @brief Prevents mouse movement from being processed
  544.  
  545. In the source, whenever a mouse move event occurs GameTSCtrl::onMouseMove() is called. Whenever snapToggle() is called, it will flag a variable that can prevent this from happening: gSnapLine. This variable is not exposed to script, so you need to call this function to trigger it.
  546.  
  547. @tsexample
  548. // Snapping is off by default, so we will toggle
  549. // it on first:
  550. PlayGui.snapToggle();
  551.  
  552. // Mouse movement should be disabled
  553. // Let's turn it back on
  554. PlayGui.snapToggle();
  555. @endtsexample
  556.  
  557. @ingroup GuiGame */
  558.     virtual void snapToggle(()) {}
  559.     /*! Get the MissionArea object, if any.
  560.  
  561. @ingroup enviroMisc
  562.  
  563.  */
  564.     virtual string getMissionAreaServerObject(()) {}
  565.     virtual float getPlayerVitality(()) {}
  566.     virtual void setPlayerVitalityDelay(( float delay )) {}
  567.     virtual void dbgEnableTransitions(()) {}
  568.     virtual void dbgDisableTransitions(()) {}
  569.     /*! push run */
  570.     virtual void Sprint() {}
  571.     /*! push run on */
  572.     virtual void SprintOn() {}
  573.     virtual void approachBuildCamera() {}
  574.     virtual void moveAwayBuildCamera() {}
  575.     /*! AskServerForEffects() */
  576.     virtual void AskServerForEffects() {}
  577.     virtual string getFirstName() {}
  578.     virtual string getLastName() {}
  579.     /*! Saves the decals for the active mission in the entered filename.
  580. @param decalSaveFile Filename to save the decals at.
  581. @tsexample
  582. // Set the filename to save the decals in. If no filename is set, then the decals will
  583.    default to <activeMissionName>.mis.decals
  584. %fileName = "./missionDecals.mis.decals";
  585. // Inform the decal manager to save the decals for the active mission.
  586. decalManagerSave(%fileName);
  587. @endtsexample
  588. @ingroup FX */
  589.     virtual void decalManagerSave(( String decalSaveFile="" )) {}
  590.     /*! Loads the decals from the entered filename.
  591. @param fileName Filename to load the decals from.
  592. @return True if the decal manager was able to load the requested file, false if it could not.
  593. @tsexample
  594. // Set the filename to load the decals from.
  595. %fileName = "./missionDecals.mis.decals";
  596. // Inform the decal manager to load the decals from the entered filename.
  597. decalManagerLoad(%fileName);
  598. @endtsexample
  599. @ingroup FX */
  600.     virtual bool decalManagerLoad(( string fileName )) {}
  601.     /*! Returns if the decal manager has unsaved modifications.
  602. @return True if the decal manager has unsaved modifications, false if everything has been saved.
  603. @tsexample
  604. // Ask the decal manager if it has unsaved modifications.
  605. %hasUnsavedModifications = decalManagerDirty();
  606. @endtsexample
  607. @ingroup FX */
  608.     virtual bool decalManagerDirty(()) {}
  609.     /*! Removes all decals currently loaded in the decalManager.
  610. @tsexample
  611. // Tell the decal manager to remove all existing decals.
  612. decalManagerClear();
  613. @endtsexample
  614. @ingroup FX */
  615.     virtual void decalManagerClear(()) {}
  616.     /*! Adds a new decal to the decal manager.
  617. @param position Position for new decal to be placed.
  618. @param normal Up vector for the decal.  Like the axel for this decal.
  619. @param rot Distance for this decal to be rotated around the normal, like a tire on an axel.
  620. @param scale Physical scale of new decal.
  621. @param decalData DecalData Datablock to use for the new decal.
  622. @param isImmortal Whether or not this decal is immortal. If immortal, it does not age and must be removed explicitly.
  623. @return Returns the ID of the new decal object or -1 on failure.
  624. @tsexample
  625. // Specify the decal position
  626. %position = "1.0 1.0 1.0";
  627.  
  628. // Specify the up vector
  629. %normal = "0.0 0.0 1.0";
  630.  
  631. // Specify the rotation for the decal
  632. %rotation = "0.5";
  633.  
  634. // Specify the scale for the decal
  635. %scale = "0.35";
  636.  
  637. // Specify the decalData datablock to use for this new decal
  638. %decalData = "decalDatablockName";
  639.  
  640. // Specify if this decal is immortal. Immortal decals don't age and must be removed explicitly.
  641. %immortal = "false";
  642.  
  643. // Tell the decal manager to remove all existing decals.
  644. decalManagerAddDecal( %position, %normal, %rotation, %scale, %decalData, %immortal);
  645. @endtsexample
  646. @ingroup FX */
  647.     virtual int decalManagerAddDecal(( Point3F position, Point3F normal, float rot, float scale, DecalData decalData, bool isImmortal=false )) {}
  648.     /*! Remove specified decal from the scene.
  649. @return Returns true if successful, false if decal not found.
  650. @param decalID Entry ID of the decal to remove.
  651. @tsexample
  652. // Specify a decal ID to be removed
  653. %decalID = 1;
  654.  
  655. // Tell the decal manager to remove the specified decal ID.
  656. decalManagerRemoveDecal( %decalId )
  657. @endtsexample
  658. @ingroup FX */
  659.     virtual bool decalManagerRemoveDecal(( int decalID )) {}
  660.     /*! Calculates how much an explosion effects a specific object. Use this to determine
  661. damage values to objects based on their distance from the explosion's center point.
  662. @tsexample
  663. // Get the position of an explosion.
  664. %position = ExplosionData.getPosition();
  665.  
  666. // Set a list of TypeMasks (defined in gameFunctioncs.cpp), seperated by the | character.
  667. %TypeMasks = $TypeMasks::StaticObjectType | $TypeMasks::ItemObjectType
  668.  
  669. // Call the function, and acquire the value of effect, from 0.0f - 1.0f.
  670. %effectValue = calcExplosionCoverage(%position , %sceneObjectToEffect , %TypeMasks);
  671. @endtsexample
  672. @ingroup FX */
  673.     virtual float calcExplosionCoverage(( Point3F pos=Point3F(0.0f,0.0f,0.0f), int id=NULL, int covMask=NULL )) {}
  674.        /*! @brief Called on the client each time a datablock has been received.
  675.  
  676. This callback is typically used to notify the player of how far along in the datablock download process they are.
  677.  
  678. @param index The index of the datablock just received.
  679. @param total The total number of datablocks to be received.
  680.  
  681. @see GameConnection, GameConnection::transmitDataBlocks(), GameConnection::onDataBlocksDone()
  682.  
  683. @ingroup Networking
  684.  */
  685.        void onDataBlockObjectReceived( int index, int total );
  686.  
  687.     /*! Dumps all ProcessObjects in ServerProcessList and ClientProcessList to the console. */
  688.     virtual void dumpProcessList() {}
  689.     /*! physicsPluginPresent()
  690. Returns true if a physics plugin exists and is initialized.
  691.  
  692. @ingroup Physics */
  693.     virtual bool physicsPluginPresent() {}
  694.     /*! physicsInit( [string library] ) */
  695.     virtual bool physicsInit() {}
  696.     /*! physicsDestroy() */
  697.     virtual void physicsDestroy() {}
  698.     /*! physicsInitWorld( String worldName ) */
  699.     virtual bool physicsInitWorld() {}
  700.     /*! physicsDestroyWorld( String worldName ) */
  701.     virtual void physicsDestroyWorld() {}
  702.     /*! physicsStartSimulation( String worldName ) */
  703.     virtual void physicsStartSimulation() {}
  704.     /*! physicsStopSimulation( String worldName ) */
  705.     virtual void physicsStopSimulation() {}
  706.     /*! physicsSimulationEnabled() */
  707.     virtual bool physicsSimulationEnabled() {}
  708.     /*! physicsSetTimeScale( F32 scale ) */
  709.     virtual void physicsSetTimeScale() {}
  710.     /*! physicsGetTimeScale() */
  711.     virtual float physicsGetTimeScale() {}
  712.     /*! physicsStoreState() */
  713.     virtual void physicsStoreState() {}
  714.     /*! physicsRestoreState() */
  715.     virtual void physicsRestoreState() {}
  716.     /*! physicsDebugDraw( bool enable ) */
  717.     virtual void physicsDebugDraw() {}
  718.     virtual void cmVoronoiTest(( Point3F pos, Point3F size, int substanceType, int count, float impulse, int delay )) {}
  719.     virtual void cmVoronoiExplode(( PhysicsDebris debris, Point3F pos, float radius, float impulse )) {}
  720.     /*! Instantiates the effectron defined by datablock.
  721.  
  722. @ingroup AFX */
  723.     virtual int startEffectron(( afxEffectronData datablock=NULL, string constraintSource=NULL, string constraintName=NULL, SimObject extra=NULL )) {}
  724.        /*! A callout called on clients by spells when the casting stage begins.
  725. @ingroup AFX
  726.  */
  727.        void onCastingStart();
  728.  
  729.        /*! A callout called periodically on clients by spells to indicate casting progress.
  730. @ingroup AFX
  731.  */
  732.        void onCastingProgressUpdate( float frac );
  733.  
  734.        /*! A callout called on clients by spells when the casting stage ends.
  735. @ingroup AFX
  736.  */
  737.        void onCastingEnd();
  738.  
  739.        /*! Called to display a screen message.
  740. @ingroup AFX
  741.  */
  742.        void DisplayScreenMessage( GameConnection client, string message );
  743.  
  744.     /*! Instantiates the magic spell defined by datablock and cast by caster.
  745.  
  746. @ingroup AFX */
  747.     virtual int castSpell(( afxMagicSpellData datablock, ShapeBase caster, SceneObject target=NULL, SimObject extra=NULL )) {}
  748.     /*! Instantiates a selectron.
  749.  
  750. @ingroup AFX */
  751.     virtual int startSelectron(( SceneObject selectedObj=NULL, unsigned int subcode=0, SimObject extra=NULL )) {}
  752.     /*! ...
  753.  
  754. @ingroup AFX */
  755.     virtual void afxEndMissionNotify(()) {}
  756.     /*! ...
  757.  
  758. @ingroup AFX */
  759.     virtual string afxGetVersion(()) {}
  760.     /*! ...
  761.  
  762. @ingroup AFX */
  763.     virtual string afxGetEngine(()) {}
  764.     /*! Performs a raycast from points start to end and returns the ID of nearest intersecting object with a type found in the specified mask. Returns -1 if no object is found.
  765.  
  766. @ingroup AFX */
  767.     virtual int rolloverRayCast(( Point3F start, Point3F end, int mask )) {}
  768.     /*! Get a random float number between a and b.
  769.  
  770. @ingroup AFX */
  771.     virtual float getRandomF(( float a=F32_MAX, float b=F32_MAX )) {}
  772.     /*! Get a random direction vector.
  773.  
  774. @ingroup AFX */
  775.     virtual string getRandomDir(( Point3F axis=Point3F(0.0f,0.0f,0.0f), float thetaMin=0.0f, float thetaMax=180.0f, float phiMin=0.0f, float phiMax=360.0f )) {}
  776.     /*! @brief Multiply the vector by the affine inverse of the transform.
  777.  
  778. @ingroup AFX */
  779.     virtual string MatrixInverseMulVector((MatrixF xfrm, Point3F vector)) {}
  780.     /*! @brief Move the transform to the new absolute position.
  781.  
  782. @ingroup AFX */
  783.     virtual string moveTransformAbs((MatrixF xfrm, Point3F pos)) {}
  784.     /*! @brief Move the transform to the new relative position.
  785.  
  786. @ingroup AFX */
  787.     virtual string moveTransformRel((MatrixF xfrm, Point3F pos)) {}
  788.     /*! @brief Returns the current location of the free target.
  789.  
  790. @ingroup AFX */
  791.     virtual string getFreeTargetPosition(()) {}
  792.     /*! @brief Called before a series of datablocks are reloaded to help distinguish reloaded datablocks from already loaded ones.
  793.  
  794. @ingroup AFX */
  795.     virtual void markDataBlocks(()) {}
  796.     /*! @brief Called after a series of datablocks are reloaded to trigger some important actions on the reloaded datablocks.
  797.  
  798. @ingroup AFX */
  799.     virtual void touchDataBlocks(()) {}
  800.     /*! @brief Returns true if script compiler had a syntax error. Useful for detecting syntax errors after reloading a script.
  801.  
  802. @ingroup AFX */
  803.     virtual bool wasSyntaxError(()) {}
  804.     /*! Coverts an HSV formatted color into an RBG color.
  805.  
  806. @param hue The hue of the color (0-360).
  807. @param sat The saturation of the color (0-1).
  808. @param val The value of the color (0-1).
  809. @param alpha The alpha of the color (0-1).
  810. @ingroup AFX */
  811.     virtual string getColorFromHSV(( float hue=0.0, float sat=0.0, float val=1.0, float alpha=1.0 )) {}
  812.     /*! Returns color scaled by scalar (color*scalar).
  813.  
  814. @param color The color to be scaled.
  815. @param scalar The amount to scale the color.
  816. @ingroup AFX */
  817.     virtual string ColorScale(( ColorF color, float scalar )) {}
  818.     /*! Returns the lesser of the two arguments.
  819.  
  820. @ingroup AFX */
  821.     virtual float getMinF(( float a, float b )) {}
  822.     /*! Returns the greater of the two arguments.
  823.  
  824. @ingroup AFX */
  825.     virtual float getMaxF(( float a, float b )) {}
  826.     /*! Like echo(), but first argument is returned.
  827. @ingroup AFX */
  828.     virtual string echoThru((string passthru, string text...)) {}
  829.     /*! Like warn(), but first argument is returned.
  830. @ingroup AFX */
  831.     virtual string warnThru((string passthru, string text...)) {}
  832.     /*! Like error(), but first argument is returned.
  833. @ingroup AFX */
  834.     virtual string errorThru((string passthru, string text...)) {}
  835.     /*! @brief Add a string to the bad word filter
  836.  
  837. The bad word filter is a table containing words which will not be displayed in chat windows. Instead, a designated replacement string will be displayed.  There are already a number of bad words automatically defined.
  838.  
  839. @param badWord Exact text of the word to restrict.
  840. @return True if word was successfully added, false if the word or a subset of it already exists in the table
  841. @see filterString()
  842.  
  843. @tsexample
  844. // In this game, "Foobar" is banned
  845. %badWord = "Foobar";
  846.  
  847. // Returns true, word was successfully added
  848. addBadWord(%badWord);
  849.  
  850. // Returns false, word has already been added
  851. addBadWord("Foobar");@endtsexample
  852. @ingroup Game */
  853.     virtual bool addBadWord(( string badWord )) {}
  854.     /*! @brief Replaces the characters in a string with designated text
  855.  
  856. Uses the bad word filter to determine which characters within the string will be replaced.
  857.  
  858. @param baseString  The original string to filter.
  859. @param replacementChars A string containing letters you wish to swap in the baseString.
  860. @return The new scrambled string
  861. @see addBadWord()
  862. @see containsBadWords()
  863. @tsexample
  864. // Create the base string, can come from anywhere
  865. %baseString = "Foobar";
  866.  
  867. // Create a string of random letters
  868. %replacementChars = "knqwrtlzs";
  869.  
  870. // Filter the string
  871. %newString = filterString(%baseString, %replacementChars);
  872.  
  873. // Print the new string to console
  874. echo(%newString);@endtsexample
  875. @ingroup Game */
  876.     virtual string filterString(( string baseString=NULL, string replacementChars=NULL )) {}
  877.     /*! @brief Checks to see if text is a bad word
  878.  
  879. The text is considered to be a bad word if it has been added to the bad word filter.
  880.  
  881. @param text Text to scan for bad words
  882. @return True if the text has bad word(s), false if it is clean
  883. @see addBadWord()
  884. @see filterString()
  885. @tsexample
  886. // In this game, "Foobar" is banned
  887. %badWord = "Foobar";
  888.  
  889. // Add a banned word to the bad word filter
  890. addBadWord(%badWord);
  891.  
  892. // Create the base string, can come from anywhere like user chat
  893. %userText = "Foobar";
  894.  
  895. // Create a string of random letters
  896. %replacementChars = "knqwrtlzs";
  897.  
  898. // If the text contains a bad word, filter it before printing
  899. // Otherwise print the original text
  900. if(containsBadWords(%userText))
  901. {
  902.     // Filter the string
  903.     %filteredText = filterString(%userText, %replacementChars);
  904.  
  905.     // Print filtered text
  906.     echo(%filteredText);
  907. }
  908. else
  909.     echo(%userText);
  910.  
  911. @endtsexample
  912. @ingroup Game */
  913.     virtual bool containsBadWords(( string text )) {}
  914.     /*! EULA() */
  915.     virtual void EULA() {}
  916.     /*! initialize config class */
  917.     virtual void CmConfiguration_init(()) {}
  918.     /*! initialize language pack manager */
  919.     virtual void initCmLangManager(()) {}
  920.     /*! getPathToTranslatedFileIfExists(const char*) */
  921.     virtual string getPathToTranslatedFileIfExists() {}
  922.     /*! initialize messages */
  923.     virtual void initCmMessages(()) {}
  924.     /*! MessageIDBoxBtn1Callback(int btn_num, bool is_skip) */
  925.     virtual void MessageIDBoxBtnCallback() {}
  926.     virtual void startShowingBoxedMessages() {}
  927.     virtual void stopShowingBoxedMessages() {}
  928.     /*! cmMessage(int id) */
  929.     virtual void cmShowMessage() {}
  930.     /*! GetMessageText(int id) */
  931.     virtual string GetMessageIDText() {}
  932.     /*! ResetIgnoredBoxedMsgs() */
  933.     virtual void ResetIgnoredBoxedMsgs() {}
  934.  
  935.     /*! @name InputManagement
  936.    
  937.     Functions that let you deal with input from scripts
  938.     @{ */
  939.     /*! */
  940.     /*! @brief Disables DirectInput.
  941.  
  942. Also deactivates any connected joysticks.
  943.  
  944. @ingroup Input */
  945.     virtual void deactivateDirectInput(()) {}
  946.     /*! @brief Activates DirectInput.
  947.  
  948. Also activates any connected joysticks.@ingroup Input */
  949.     virtual void activateDirectInput(()) {}
  950.     /// @}
  951.  
  952.     /*! strToPlayerName( string ) */
  953.     virtual string strToPlayerName() {}
  954.  
  955.     /*! @name Platform
  956.    
  957.     General platform functions.
  958.     @{ */
  959.     /*! */
  960.     /*! @brief Lock or unlock the mouse to the window.
  961.  
  962. When true, prevents the mouse from leaving the bounds of the game window.
  963.  
  964. @ingroup Input */
  965.     virtual void lockMouse((bool isLocked)) {}
  966.     /*! @brief Set the network port for the game to use.  If bind is true, bind()will be called on the port.
  967.  
  968. This will trigger a windows firewall prompt. If you don't have firewall tunneling tech you can set this to false to avoid the prompt.
  969.  
  970. @ingroup Networking */
  971.     virtual bool setNetPort((int port, bool bind=true)) {}
  972.     /*! @brief Closes the current network port
  973.  
  974. @ingroup Networking */
  975.     virtual void closeNetPort(()) {}
  976.     /*! Save the journal to the specified file.
  977.  
  978. @ingroup Platform */
  979.     virtual void saveJournal((string filename)) {}
  980.     /*! @brief Begin playback of a journal from a specified field.
  981.  
  982. @param filename Name and path of file journal file
  983. @ingroup Platform */
  984.     virtual void playJournal((string filename)) {}
  985.     /*! Return the current sim time in milliseconds.
  986.  
  987. @brief Sim time is time since the game started.
  988.  
  989. @ingroup Platform */
  990.     virtual int getSimTime(()) {}
  991.     /*! @brief Return the current real time in milliseconds.
  992.  
  993. Real time is platform defined; typically time since the computer booted.
  994.  
  995. @ingroup Platform */
  996.     virtual int getRealTime(()) {}
  997.     /// @}
  998.  
  999.  
  1000.     /*! @name CompileInformation
  1001.    
  1002.     Functions to get version information about the current executable.
  1003.     @{ */
  1004.     /*! */
  1005.     /*! Get the version of the build, as a string.
  1006.  
  1007. @ingroup Debugging */
  1008.     virtual int getVersionNumber() {}
  1009.     /*! Get the version of the build, as a string.
  1010.  
  1011. @ingroup Debugging */
  1012.     virtual string getVersionString() {}
  1013.     /*! Get the name of the engine product that this is running from, as a string.
  1014.  
  1015. @ingroup Debugging */
  1016.     virtual string getEngineName() {}
  1017.     /*! Get the time of compilation.
  1018.  
  1019. @ingroup Debugging */
  1020.     virtual string getCompileTimeString() {}
  1021.     /*! Get the type of build, "Debug" or "Release".
  1022.  
  1023. @ingroup Debugging */
  1024.     virtual string getBuildString() {}
  1025.     /// @}
  1026.  
  1027.     virtual bool isDemo() {}
  1028.     virtual bool isWebDemo() {}
  1029.     /*! initialize breeding manager class */
  1030.     virtual void initBreedingManager(()) {}
  1031.     /*! initialize skill manager class */
  1032.     virtual void initCharacterInfo(()) {}
  1033.     virtual void cmChatCreate(()) {}
  1034.     /*! connects to CmChat */
  1035.     virtual void cmChatConnect(()) {}
  1036.     virtual bool cmChatExist(()) {}
  1037.     /*! return true if connection with IRC server exists. */
  1038.     virtual bool cmChatOnline(()) {}
  1039.     /*! joins channel in CmChat */
  1040.     virtual void cmChatJoin(( String channel )) {}
  1041.     /*! sends a message to CmChat */
  1042.     virtual bool cmChatCommand(( String channel, String message )) {}
  1043.     /*! receives a local chat message */
  1044.     virtual void clientCmdLocalChatMessage(( String nickFrom1, Point3F point, String message )) {}
  1045.     virtual void onChatMessage(( String message, String voice, String pitch )) {}
  1046.     virtual void cmChat_onServerMessage(( String message )) {}
  1047.     virtual void cmChatShutdown(( String quitMessage )) {}
  1048.     virtual void cmChatLoadPropertyXml(( string filename )) {}
  1049.     virtual bool cmChatSavePropertyXml(( string filename )) {}
  1050.     virtual void cmSystemChatCommand(( String message )) {}
  1051.     virtual void initClaimsManager(()) {}
  1052.     /*! setCmShowClaimsMode(mode) */
  1053.     virtual void setCmShowClaimsMode() {}
  1054.     virtual void hideAllClaims(()) {}
  1055.     virtual void showAllClaims(()) {}
  1056.     /*! CraftworkBrewingTankOptionsOk(nCount) */
  1057.     virtual void CraftworkBrewingTankOptionsOk() {}
  1058.     virtual void CraftOptions2Close(()) {}
  1059.     virtual void CraftOptions2Select1(()) {}
  1060.     virtual void CraftOptions2Select2(()) {}
  1061.     /*! CloseBuildPosition() */
  1062.     virtual void CloseBuildPosition() {}
  1063.     /*! SendBuildObject() */
  1064.     virtual void SendBuildObject() {}
  1065.     /*! CloseDropPosition() */
  1066.     virtual void CloseDropPosition() {}
  1067.     /*! SendDropObject() */
  1068.     virtual void SendDropObject() {}
  1069.     /*! CloseObservePosition() */
  1070.     virtual void CloseObservePosition() {}
  1071.     /*! CloseSiegePosition() */
  1072.     virtual void CloseSiegePosition() {}
  1073.     /*! SiegePositionDone() */
  1074.     virtual void SiegePositionDone() {}
  1075.     virtual void initCustomisation() {}
  1076.     /*! BodyFeaturesChangePressed(number) */
  1077.     virtual void BodyFeaturesChangePressed() {}
  1078.     virtual int GetNumberOfBodyFeatures(()) {}
  1079.     /*! FacialFeaturesChangePressed(number) */
  1080.     virtual void FacialFeaturesChangePressed() {}
  1081.     virtual int GetNumberOfFacialFeatures(()) {}
  1082.     /*! BeardChangePressed(number) */
  1083.     virtual void BeardChangePressed() {}
  1084.     virtual int GetNumberOfFacialHairs(()) {}
  1085.     /*! GenderMalePressed() */
  1086.     virtual void GenderMalePressed() {}
  1087.     /*! GenderFemalePressed() */
  1088.     virtual void GenderFemalePressed() {}
  1089.     virtual int GetCurrentGender(()) {}
  1090.     /*! HairColorChangePressed(number) */
  1091.     virtual void HairColorChangePressed() {}
  1092.     virtual int GetNumberOfHairColors(()) {}
  1093.     /*! HairChangePressed(number) */
  1094.     virtual void HairChangePressed() {}
  1095.     virtual int GetNumberOfHaircuts(()) {}
  1096.     /*! HeadChangePressed(number) */
  1097.     virtual void HeadChangePressed() {}
  1098.     virtual int GetNumberOfHeads(()) {}
  1099.     /*! RandomAppearancePressed() */
  1100.     virtual void RandomAppearancePressed() {}
  1101.     /*! RaceChangePressed(number) */
  1102.     virtual void RaceChangePressed() {}
  1103.     virtual string GetRace(()) {}
  1104.     /*! SkinColorChangePressed(number) */
  1105.     virtual void SkinColorChangePressed() {}
  1106.     virtual int GetNumberOfSkinColors(()) {}
  1107.     /*! VoiceChangePressed(number) */
  1108.     virtual void VoiceChangePressed() {}
  1109.     virtual int GetNumberOfVoices(()) {}
  1110.     /*! initialize equipment manager class */
  1111.     virtual void initEquipmentManager(()) {}
  1112.     virtual void GenerateShapesForMovables(()) {}
  1113.     /*! initialize cmObjects manager class */
  1114.     virtual void CmObjectManager_init(()) {}
  1115.     /*! return nonmovable objects id's list */
  1116.     virtual string GetCmObjectsIdList(()) {}
  1117.     /*! return movable objects id's list */
  1118.     virtual string GetCmMovableObjectsIdList(()) {}
  1119.     /*! return type name by id */
  1120.     virtual string GetObjectTypeName((int id)) {}
  1121.     virtual void cleanupHerbs() {}
  1122.     /*! initialize herbals manager class */
  1123.     virtual void initHerbalManager(()) {}
  1124.     /*! initialize mixing manager class */
  1125.     virtual void initMixingManager(()) {}
  1126.     /*! initialize */
  1127.     virtual void initInventory((string xml_path)) {}
  1128.     virtual void loadInventoryPos((string pos_file_name)) {}
  1129.     /*! applySplitStackItem */
  1130.     virtual void applySplitStackItem((U32 root_id1, U32 container_id1, U32 item_id1, U32 old_quantity1, U32 quantity1, U32 root_id2, U32 container_id2, U32 item_id2, U32 quantity2)) {}
  1131.     /*! ShowHideInventory() */
  1132.     virtual void ShowHideInventory() {}
  1133.     /*! ShowHideEquipment() */
  1134.     virtual void ShowHideEquipment() {}
  1135.     /*! CloseInventory() */
  1136.     virtual bool CloseInventory() {}
  1137.     /*! CloseEquipment() */
  1138.     virtual bool CloseEquipment() {}
  1139.     /*! initialize tooltip template manager class */
  1140.     virtual void initTooltipTemplateManager((string file_name)) {}
  1141.  
  1142.     /*! @name Net
  1143.    
  1144.     Functions for use with the network; tagged strings and remote commands.
  1145.     @{ */
  1146.     /*! */
  1147.     /*! @brief Send a command to the server.
  1148.  
  1149. @param func Name of the server command being called
  1150. @param ... Various parameters being passed to server command
  1151.  
  1152. @tsexample
  1153. // Create a standard function
  1154. function toggleCamera(%val)
  1155. {
  1156.     // If key was down, call a server command named 'ToggleCamera'
  1157.     if (%val)
  1158.         commandToServer('ToggleCamera');
  1159. }
  1160.  
  1161. // Server command being called from above
  1162. function serverCmdToggleCamera(%client)
  1163. {
  1164.    if (%client.getControlObject() == %client.player)
  1165.    {
  1166.       %client.camera.setVelocity("0 0 0");
  1167.       %control = %client.camera;
  1168.    }
  1169.    else
  1170.    {
  1171.       %client.player.setVelocity("0 0 0");
  1172.       %control = %client.player;
  1173.   }
  1174.    %client.setControlObject(%control);
  1175.    clientCmdSyncEditorGui();
  1176. }
  1177. @endtsexample
  1178.  
  1179. @ingroup Networking */
  1180.     virtual void commandToServer((string func, ...)) {}
  1181.     virtual void commandToPeer((NetConnection peer, tagstring func, ...)) {}
  1182.     /*! @brief Remove a tagged string from the Net String Table
  1183.  
  1184. @param tag The tag associated with the string
  1185.  
  1186. @see \ref syntaxDataTypes
  1187. @ingroup Networking
  1188.  */
  1189.     virtual void removeTaggedString((int tag)) {}
  1190.     /*! @brief Use the addTaggedString function to tag a new string and add it to the NetStringTable
  1191.  
  1192. @param str The string to tagged and placed in the NetStringTable. Tagging ignores case, so tagging the same string (excluding case differences) will be ignored as a duplicated tag.
  1193.  
  1194. @return Returns a string( containing a numeric value) equivalent to the string ID for the newly tagged string@see \ref syntaxDataTypes
  1195. @ingroup Networking
  1196.  */
  1197.     virtual string addTaggedString((string str)) {}
  1198.     /*! @brief Use the getTaggedString function to convert a tag to a string.
  1199.  
  1200. This is not the same as detag() which can only be used within the context of a function that receives a tag. This function can be used any time and anywhere to convert a tag to a string.
  1201.  
  1202. @param tag A numeric tag ID.@see \ref syntaxDataTypes
  1203. @ingroup Networking
  1204.  */
  1205.     virtual string getTaggedString((int tag)) {}
  1206.     /*! @brief Build a tagged string using the specified format.@see \ref syntaxDataTypes
  1207. @ingroup Networking
  1208.  */
  1209.     virtual string buildTaggedString((string format, ...)) {}
  1210.     /// @}
  1211.  
  1212.  
  1213.     /*! @name ServerQuery
  1214.    
  1215.     Functions which allow you to query the LAN or a master server for online games.
  1216.     @{ */
  1217.     /*! */
  1218.     /*! queryLanServers(...); */
  1219.     virtual void queryLanServers() {}
  1220.     /*! querySingleServer(address, flags); */
  1221.     virtual void querySingleServer() {}
  1222.     /*! cancelServerQuery() */
  1223.     virtual void cancelServerQuery() {}
  1224.     /*! stopServerQuery() */
  1225.     virtual void stopServerQuery() {}
  1226.     /*! getServerCount(); */
  1227.     virtual int getServerCount() {}
  1228.     /*! setServerInfo(index); */
  1229.     virtual bool setServerInfo() {}
  1230.     /// @}
  1231.  
  1232.     /*! SureDoneBind() */
  1233.     virtual void SureDoneBind() {}
  1234.     /*! DoneBind( device, action) */
  1235.     virtual void DoneBind() {}
  1236.     /*! FireBind( function, buttonName) */
  1237.     virtual void FireBind() {}
  1238.     /*! OpenOptionsControls() */
  1239.     virtual void OpenOptionsControls() {}
  1240.     /*! ProcessBindQueue() */
  1241.     virtual void ProcessBindQueue() {}
  1242.     /*! reloadHUDPreset() */
  1243.     virtual void reloadHUDPreset() {}
  1244.     /*! reloadHotBarPreset() */
  1245.     virtual void reloadHotBarPreset() {}
  1246.     virtual bool checkPresetName((String name)) {}
  1247.     /*! addDeletePreset(String name_preset, String name_menu) */
  1248.     virtual void addDeletePreset() {}
  1249.     /*! addResetPreset(String name_preset, String name_menu) */
  1250.     virtual void addResetPreset() {}
  1251.     /*! addNewHUDPreset(String name_preset) */
  1252.     virtual void addNewHUDPreset() {}
  1253.     /*! addNewHotBarPreset(String name_preset) */
  1254.     virtual void addNewHotBarPreset() {}
  1255.     /*! addSetDefaultHUDPreset(String name_preset) */
  1256.     virtual void addSetDefaultHUDPreset() {}
  1257.     /*! addSetDefaultHotBarPreset(String name_preset) */
  1258.     virtual void addSetDefaultHotBarPreset() {}
  1259.     /*! addRenamePreset(String new_name_preset, String name_preset, String name_menu) */
  1260.     virtual void addRenamePreset() {}
  1261.     /*! applyPresetActions() */
  1262.     virtual void applyPresetActions() {}
  1263.     /*! CloseOptionsControlsDlg() */
  1264.     virtual void CloseOptionsControlsDlg() {}
  1265.     /*! initialize skill manager class */
  1266.     virtual void initSkillsManager() {}
  1267.     /*! get skill name by id */
  1268.     virtual string getSkillName() {}
  1269.     /*! RenameYesCallback( string name) */
  1270.     virtual void RenameYesCallback() {}
  1271.     /*! RenameNoCallback() */
  1272.     virtual void RenameNoCallback() {}
  1273.     virtual void prospectingRadiusSelected(( int radius )) {}
  1274.     virtual void prospectingRadiusReset() {}
  1275.     /*! bool IsPerformingAbility() */
  1276.     virtual bool IsPerformingAbility() {}
  1277.     /*! void CancelPerformingAbility() */
  1278.     virtual void CancelPerformingAbility() {}
  1279.     /*! testBridge(arg1, arg2, arg3) */
  1280.     virtual string testJavaScriptBridge() {}
  1281.     /*! testFunction(arg1, arg2) */
  1282.     virtual string TestFunction2Args() {}
  1283.  
  1284.     /*! @name Clipboard
  1285.    
  1286.     Miscellaneous functions to control the clipboard and clear the console.
  1287.     @{ */
  1288.     /*! */
  1289.     /*! @brief Clears the console output.
  1290.  
  1291. @ingroup Console */
  1292.     virtual void cls(()) {}
  1293.     /*! @brief Get text from the clipboard.
  1294.  
  1295. @internal */
  1296.     virtual string getClipboard(()) {}
  1297.     /*! @brief Set the system clipboard.
  1298.  
  1299. @internal */
  1300.     virtual bool setClipboard((string text)) {}
  1301.     /// @}
  1302.  
  1303.     /*! @brief Logs a message to the console.
  1304.  
  1305. @param message The message text.
  1306. @note By default, messages will appear white in the console.
  1307. @ingroup Logging */
  1308.     virtual void log(( string message )) {}
  1309.     /*! @brief Logs an error message to the console.
  1310.  
  1311. @param message The message text.
  1312. @note By default, errors will appear red in the console.
  1313. @ingroup Logging */
  1314.     virtual void logError(( string message )) {}
  1315.     /*! @brief Logs a warning message to the console.
  1316.  
  1317. @param message The message text.
  1318.  
  1319. @note By default, warnings will appear turquoise in the console.
  1320. @ingroup Logging */
  1321.     virtual void logWarning(( string message )) {}
  1322.  
  1323.     /*! @name ConsoleDoc
  1324.    
  1325.     Console self-documentation functions. These output psuedo C++ suitable for feeeding through Doxygen or another auto documentation tool.
  1326.     @{ */
  1327.     /*! */
  1328.     /*! @brief Dumps all declared console classes to the console.
  1329.  
  1330. @param dumpScript Optional parameter specifying whether or not classes defined in script should be dumped.
  1331. @param dumpEngine Optional parameter specifying whether or not classes defined in the engine should be dumped.
  1332. @ingroup Logging */
  1333.     virtual void dumpConsoleClasses(( bool dumpScript=true, bool dumpEngine=true )) {}
  1334.     /*! @brief Dumps all declared console functions to the console.
  1335. @param dumpScript Optional parameter specifying whether or not functions defined in script should be dumped.
  1336. @param dumpEngine Optional parameter specitying whether or not functions defined in the engine should be dumped.
  1337. @ingroup Logging */
  1338.     virtual void dumpConsoleFunctions(( bool dumpScript=true, bool dumpEngine=true )) {}
  1339.     /// @}
  1340.  
  1341.     /*! Return the integer character code value corresponding to the first character in the given string.
  1342. @param chr a (one-character) string.
  1343. @return the UTF32 code value for the first character in the given string.
  1344. @ingroup Strings */
  1345.     virtual int strasc(( string chr )) {}
  1346.     /*! Format the given value as a string using printf-style formatting.
  1347. @param format A printf-style format string.
  1348. @param value The value argument matching the given format string.
  1349.  
  1350. @tsexample
  1351. // Convert the given integer value to a string in a hex notation.
  1352. %hex = strformat( "%x", %value );
  1353. @endtsexample
  1354. @ingroup Strings
  1355. @see http://en.wikipedia.org/wiki/Printf */
  1356.     virtual string strformat(( string format, string value )) {}
  1357.     /*! Compares two strings using case-<b>sensitive</b> comparison.
  1358. @param str1 The first string.
  1359. @param str2 The second string.
  1360. @return 0 if both strings are equal, a value <0 if the first character different in str1 has a smaller character code value than the character at the same position in str2, and a value >1 otherwise.
  1361.  
  1362. @tsexample
  1363. if( strcmp( %var, "foobar" ) == 0 )
  1364.    echo( "%var is equal to 'foobar'" );
  1365. @endtsexample
  1366. @see stricmp
  1367. @see strnatcmp
  1368. @ingroup Strings */
  1369.     virtual int strcmp(( string str1, string str2 )) {}
  1370.     /*! Compares two strings using case-<b>insensitive</b> comparison.
  1371. @param str1 The first string.
  1372. @param str2 The second string.
  1373. @return 0 if both strings are equal, a value <0 if the first character different in str1 has a smaller character code value than the character at the same position in str2, and a value >0 otherwise.
  1374.  
  1375. @tsexample
  1376. if( stricmp( "FOObar", "foobar" ) == 0 )
  1377.    echo( "this is always true" );
  1378. @endtsexample
  1379. @see strcmp
  1380. @see strinatcmp
  1381. @ingroup Strings */
  1382.     virtual int stricmp(( string str1, string str2 )) {}
  1383.     /*! Compares two strings using "natural order" case-<b>sensitive</b> comparison.
  1384. Natural order means that rather than solely comparing single character code values, strings are ordered in a natural way.  For example, the string "hello10" is considered greater than the string "hello2" even though the first numeric character in "hello10" actually has a smaller character value than the corresponding character in "hello2".  However, since 10 is greater than 2, strnatcmp will put "hello10" after "hello2".
  1385. @param str1 The first string.
  1386. @param str2 The second string.
  1387.  
  1388. @return 0 if the strings are equal, a value >0 if @a str1 comes after @a str2 in a natural order, and a value <0 if @a str1 comes before @a str2 in a natural order.
  1389.  
  1390. @tsexample
  1391. // Bubble sort 10 elements of %array using natural order
  1392. do
  1393. {
  1394.    %swapped = false;
  1395.    for( %i = 0; %i < 10 - 1; %i ++ )
  1396.       if( strnatcmp( %array[ %i ], %array[ %i + 1 ] ) > 0 )
  1397.       {
  1398.          %temp = %array[ %i ];
  1399.          %array[ %i ] = %array[ %i + 1 ];
  1400.          %array[ %i + 1 ] = %temp;
  1401.          %swapped = true;
  1402.       }
  1403. }
  1404. while( %swapped );
  1405. @endtsexample
  1406. @see strcmp
  1407. @see strinatcmp
  1408. @ingroup Strings */
  1409.     virtual int strnatcmp(( string str1, string str2 )) {}
  1410.     /*! Compares two strings using "natural order" case-<b>insensitive</b> comparison.
  1411. Natural order means that rather than solely comparing single character code values, strings are ordered in a natural way.  For example, the string "hello10" is considered greater than the string "hello2" even though the first numeric character in "hello10" actually has a smaller character value than the corresponding character in "hello2".  However, since 10 is greater than 2, strnatcmp will put "hello10" after "hello2".
  1412. @param str1 The first string.
  1413. @param str2 The second string.
  1414. @return 0 if the strings are equal, a value >0 if @a str1 comes after @a str2 in a natural order, and a value <0 if @a str1 comes before @a str2 in a natural order.
  1415.  
  1416. @tsexample
  1417.  
  1418. // Bubble sort 10 elements of %array using natural order
  1419. do
  1420. {
  1421.    %swapped = false;
  1422.    for( %i = 0; %i < 10 - 1; %i ++ )
  1423.       if( strnatcmp( %array[ %i ], %array[ %i + 1 ] ) > 0 )
  1424.       {
  1425.          %temp = %array[ %i ];
  1426.          %array[ %i ] = %array[ %i + 1 ];
  1427.          %array[ %i + 1 ] = %temp;
  1428.          %swapped = true;
  1429.       }
  1430. }
  1431. while( %swapped );
  1432. @endtsexample
  1433. @see stricmp
  1434. @see strnatcmp
  1435. @ingroup Strings */
  1436.     virtual int strinatcmp(( string str1, string str2 )) {}
  1437.     /*! Get the length of the given string in bytes.
  1438. @note This does <b>not</b> return a true character count for strings with multi-byte characters!
  1439. @param str A string.
  1440. @return The length of the given string in bytes.
  1441. @ingroup Strings */
  1442.     virtual int strlen(( string str )) {}
  1443.     /*! Find the start of @a substring in the given @a string searching from left to right.
  1444. @param string The string to search.
  1445. @param substring The string to search for.
  1446. @return The index into @a string at which the first occurrence of @a substring was found or -1 if @a substring could not be found.
  1447.  
  1448. @tsexample
  1449. strstr( "abcd", "c" ) // Returns 2.
  1450. @endtsexample
  1451. @ingroup Strings */
  1452.     virtual int stristr(( string string, string substring )) {}
  1453.     /*! Find the start of @a needle in @a haystack searching from left to right beginning at the given offset.
  1454. @param haystack The string to search.
  1455. @param needle The string to search for.
  1456. @return The index at which the first occurrence of @a needle was found in @a haystack or -1 if no match was found.
  1457.  
  1458. @tsexample
  1459. strpos( "b ab", "b", 1 ) // Returns 3.
  1460. @endtsexample
  1461. @ingroup Strings */
  1462.     virtual int strpos(( string haystack, string needle, int offset=0 )) {}
  1463.     /*! Find the start of @a substring in the given @a string searching from left to right.
  1464. @param string The string to search.
  1465. @param substring The string to search for.
  1466. @return The index into @a string at which the first occurrence of @a substring was found or -1 if @a substring could not be found.
  1467.  
  1468. @tsexample
  1469. strstr( "abcd", "c" ) // Returns 2.
  1470. @endtsexample
  1471. @ingroup Strings */
  1472.     virtual int strstr(( string string, string substring )) {}
  1473.     /*! Remove leading whitespace from the string.
  1474. @param str A string.
  1475. @return A string that is the same as @a str but with any leading (i.e. leftmost) whitespace removed.
  1476.  
  1477. @tsexample
  1478. ltrim( "   string  " ); // Returns "string  ".
  1479. @endtsexample
  1480. @see rtrim
  1481. @see trim
  1482. @ingroup Strings */
  1483.     virtual string ltrim(( string str )) {}
  1484.     /*! Remove trailing whitespace from the string.
  1485. @param str A string.
  1486. @return A string that is the same as @a str but with any trailing (i.e. rightmost) whitespace removed.
  1487.  
  1488. @tsexample
  1489. rtrim( "   string  " ); // Returns "   string".
  1490. @endtsexample
  1491. @see ltrim
  1492. @see trim
  1493. @ingroup Strings */
  1494.     virtual string rtrim(( string str )) {}
  1495.     /*! Remove leading and trailing whitespace from the string.
  1496. @param str A string.
  1497. @return A string that is the same as @a str but with any leading (i.e. leftmost) and trailing (i.e. rightmost) whitespace removed.
  1498.  
  1499. @tsexample
  1500. trim( "   string  " ); // Returns "string".
  1501. @endtsexample
  1502. @ingroup Strings */
  1503.     virtual string trim(( string str )) {}
  1504.     /*! Remove all occurrences of characters contained in @a chars from @a str.
  1505. @param str The string to filter characters out from.
  1506. @param chars A string of characters to filter out from @a str.
  1507. @return A version of @a str with all occurrences of characters contained in @a chars filtered out.
  1508.  
  1509. @tsexample
  1510. stripChars( "teststring", "se" ); // Returns "tttring".@endtsexample
  1511. @ingroup Strings */
  1512.     virtual string stripChars(( string str, string chars )) {}
  1513.     /*! Return an all lower-case version of the given string.
  1514. @param str A string.
  1515. @return A version of @a str with all characters converted to lower-case.
  1516.  
  1517. @tsexample
  1518. strlwr( "TesT1" ) // Returns "test1"
  1519. @endtsexample
  1520. @see strupr
  1521. @ingroup Strings */
  1522.     virtual string strlwr(( string str )) {}
  1523.     /*! Return an all upper-case version of the given string.
  1524. @param str A string.
  1525. @return A version of @a str with all characters converted to upper-case.
  1526.  
  1527. @tsexample
  1528. strupr( "TesT1" ) // Returns "TEST1"
  1529. @endtsexample
  1530. @see strlwr
  1531. @ingroup Strings */
  1532.     virtual string strupr(( string str )) {}
  1533.     /*! Find the first occurrence of the given character in @a str.
  1534. @param str The string to search.
  1535. @param chr The character to search for.  Only the first character from the string is taken.
  1536. @return The remainder of the input string starting with the given character or the empty string if the character could not be found.
  1537.  
  1538. @see strrchr
  1539. @ingroup Strings */
  1540.     virtual string strchr(( string str, string chr )) {}
  1541.     /*! Find the last occurrence of the given character in @a str.@param str The string to search.
  1542. @param chr The character to search for.  Only the first character from the string is taken.
  1543. @return The remainder of the input string starting with the given character or the empty string if the character could not be found.
  1544.  
  1545. @see strchr
  1546. @ingroup Strings */
  1547.     virtual string strrchr(( string str, string chr )) {}
  1548.     /*! Replace all occurrences of @a from in @a source with @a to.
  1549. @param source The string in which to replace the occurrences of @a from.
  1550. @param from The string to replace in @a source.
  1551. @param to The string with which to replace occurrences of @from.
  1552. @return A string with all occurrences of @a from in @a source replaced by @a to.
  1553.  
  1554. @tsexample
  1555. strreplace( "aabbccbb", "bb", "ee" ) // Returns "aaeeccee".
  1556. @endtsexample
  1557. @ingroup Strings */
  1558.     virtual string strreplace(( string source, string from, string to )) {}
  1559.     /*! Return a string that repeats @a str @a numTimes number of times delimiting each occurrence with @a delimiter.
  1560. @param str The string to repeat multiple times.
  1561. @param numTimes The number of times to repeat @a str in the result string.
  1562. @param delimiter The string to put between each repetition of @a str.
  1563. @return A string containing @a str repeated @a numTimes times.
  1564.  
  1565. @tsexample
  1566. strrepeat( "a", 5, "b" ) // Returns "ababababa".
  1567. @endtsexample
  1568. @ingroup Strings */
  1569.     virtual string strrepeat(( string str, int numTimes, string delimiter="" )) {}
  1570.     /*! @brief Return a substring of @a str starting at @a start and continuing either through to the end of @a str (if @a numChars is -1) or for @a numChars characters (except if this would exceed the actual source string length).
  1571. @param str The string from which to extract a substring.
  1572. @param start The offset at which to start copying out characters.
  1573. @param numChars Optional argument to specify the number of characters to copy.  If this is -1, all characters up the end of the input string are copied.
  1574. @return A string that contains the given portion of the input string.
  1575.  
  1576. @tsexample
  1577. getSubStr( "foobar", 1, 2 ) // Returns "oo".
  1578. @endtsexample
  1579.  
  1580. @ingroup Strings */
  1581.     virtual string getSubStr(( string str, int start, int numChars=-1 )) {}
  1582.     /*! Match a pattern against a string.
  1583. @param pattern The wildcard pattern to match against.  The pattern can include characters, '*' to match any number of characters and '?' to match a single character.
  1584. @param str The string which should be matched against @a pattern.
  1585. @param caseSensitive If true, characters in the pattern are matched in case-sensitive fashion against this string.  If false, differences in casing are ignored.
  1586. @return True if @a str matches the given @a pattern.
  1587.  
  1588. @tsexample
  1589. strIsMatchExpr( "f?o*R", "foobar" ) // Returns true.
  1590. @endtsexample
  1591. @see strIsMatchMultipleExpr
  1592. @ingroup Strings */
  1593.     virtual bool strIsMatchExpr(( string pattern, string str, bool caseSensitive=false )) {}
  1594.     /*! Match a multiple patterns against a single string.
  1595. @param patterns A tab-separated list of patterns.  Each pattern can include charaters, '*' to match any number of characters and '?' to match a single character.  Each of the patterns is tried in turn.
  1596. @param str The string which should be matched against @a patterns.
  1597. @param caseSensitive If true, characters in the pattern are matched in case-sensitive fashion against this string.  If false, differences in casing are ignored.
  1598. @return True if @a str matches any of the given @a patterns.
  1599.  
  1600. @tsexample
  1601. strIsMatchMultipleExpr( "*.cs *.gui *.mis", "mymission.mis" ) // Returns true.
  1602. @endtsexample
  1603. @see strIsMatchExpr
  1604. @ingroup Strings */
  1605.     virtual bool strIsMatchMultipleExpr(( string patterns, string str, bool caseSensitive=false )) {}
  1606.     /*! Get the numeric suffix of the given input string.
  1607. @param str The string from which to read out the numeric suffix.
  1608. @return The numeric value of the number suffix of @a str or -1 if @a str has no such suffix.
  1609.  
  1610. @tsexample
  1611. getTrailingNumber( "test123" ) // Returns '123'.
  1612. @endtsexample
  1613.  
  1614. @see stripTrailingNumber
  1615. @ingroup Strings */
  1616.     virtual int getTrailingNumber(( string str )) {}
  1617.     /*! Strip a numeric suffix from the given string.
  1618. @param str The string from which to strip its numeric suffix.
  1619. @return The string @a str without its number suffix or the original string @a str if it has no such suffix.
  1620.  
  1621. @tsexample
  1622. stripTrailingNumber( "test123" ) // Returns "test".
  1623. @endtsexample
  1624.  
  1625. @see getTrailingNumber
  1626. @ingroup Strings */
  1627.     virtual string stripTrailingNumber(( string str )) {}
  1628.     /*! Test whether the character at the given position is a whitespace character.
  1629. Characters such as tab, space, or newline are considered whitespace.
  1630. @param str The string to test.
  1631. @param index The index of a character in @a str.
  1632. @return True if the character at the given index in @a str is a whitespace character; false otherwise.
  1633.  
  1634. @see isalnum
  1635. @ingroup Strings */
  1636.     virtual bool isspace(( string str, int index )) {}
  1637.     /*! Test whether the character at the given position is an alpha-numeric character.
  1638. Alpha-numeric characters are characters that are either alphabetic (a-z, A-Z) or numbers (0-9).
  1639. @param str The string to test.
  1640. @param index The index of a character in @a str.
  1641. @return True if the character at the given index in @a str is an alpha-numeric character; false otherwise.
  1642.  
  1643. @see isspace
  1644. @ingroup Strings */
  1645.     virtual bool isalnum(( string str, int index )) {}
  1646.     /*! Test whether the given string begins with the given prefix.
  1647. @param str The string to test.
  1648. @param prefix The potential prefix of @a str.
  1649. @param caseSensitive If true, the comparison will be case-sensitive; if false, differences in casing will not be taken into account.
  1650. @return True if the first characters in @a str match the complete contents of @a prefix; false otherwise.
  1651.  
  1652. @tsexample
  1653. startsWith( "TEST123", "test" ) // Returns true.
  1654. @endtsexample
  1655. @see endsWith
  1656. @ingroup Strings */
  1657.     virtual bool startsWith(( string str, string prefix, bool caseSensitive=false )) {}
  1658.     /*! @brief Test whether the given string ends with the given suffix.
  1659.  
  1660. @param str The string to test.
  1661. @param suffix The potential suffix of @a str.
  1662. @param caseSensitive If true, the comparison will be case-sensitive; if false, differences in casing will not be taken into account.
  1663. @return True if the last characters in @a str match the complete contents of @a suffix; false otherwise.
  1664.  
  1665. @tsexample
  1666. startsWith( "TEST123", "123" ) // Returns true.
  1667. @endtsexample
  1668.  
  1669. @see startsWith
  1670. @ingroup Strings */
  1671.     virtual bool endsWith(( string str, string suffix, bool caseSensitive=false )) {}
  1672.     /*! Find the first occurrence of the given character in the given string.
  1673. @param str The string to search.
  1674. @param chr The character to look for.  Only the first character of this string will be searched for.
  1675. @param start The index into @a str at which to start searching for the given character.
  1676. @return The index of the first occurrence of @a chr in @a str or -1 if @a str does not contain the given character.
  1677.  
  1678. @tsexample
  1679. strchrpos( "test", "s" ) // Returns 2.
  1680. @endtsexample
  1681. @ingroup Strings */
  1682.     virtual int strchrpos(( string str, string chr, int start=0 )) {}
  1683.     /*! Find the last occurrence of the given character in the given string.
  1684. @param str The string to search.
  1685. @param chr The character to look for.  Only the first character of this string will be searched for.
  1686. @param start The index into @a str at which to start searching for the given character.
  1687. @return The index of the last occurrence of @a chr in @a str or -1 if @a str does not contain the given character.
  1688.  
  1689. @tsexample
  1690. strrchrpos( "test", "t" ) // Returns 3.
  1691. @endtsexample
  1692. @ingroup Strings */
  1693.     virtual int strrchrpos(( string str, string chr, int start=0 )) {}
  1694.     /*! Extract the word at the given @a index in the whitespace-separated list in @a text.
  1695. Words in @a text must be separated by newlines, spaces, and/or tabs.
  1696. @param text A whitespace-separated list of words.
  1697. @param index The zero-based index of the word to extract.
  1698. @return The word at the given index or "" if the index is out of range.
  1699.  
  1700. @tsexample
  1701. getWord( "a b c", 1 ) // Returns "b"
  1702. @endtsexample
  1703.  
  1704. @see getWords
  1705. @see getWordCount
  1706. @see getField
  1707. @see getRecord
  1708. @ingroup FieldManip */
  1709.     virtual string getWord(( string text, int index )) {}
  1710.     /*! Extract a range of words from the given @a startIndex onwards thru @a endIndex.
  1711. Words in @a text must be separated by newlines, spaces, and/or tabs.
  1712. @param text A whitespace-separated list of words.
  1713. @param startIndex The zero-based index of the first word to extract from @a text.
  1714. @param endIndex The zero-based index of the last word to extract from @a text.  If this is -1, all words beginning with @a startIndex are extracted from @a text.
  1715. @return A string containing the specified range of words from @a text or "" if @a startIndex is out of range or greater than @a endIndex.
  1716.  
  1717. @tsexample
  1718. getWords( "a b c d", 1, 2, ) // Returns "b c"
  1719. @endtsexample
  1720.  
  1721. @see getWord
  1722. @see getWordCount
  1723. @see getFields
  1724. @see getRecords
  1725. @ingroup FieldManip */
  1726.     virtual string getWords(( string text, int startIndex, int endIndex=-1 )) {}
  1727.     /*! Replace the word in @a text at the given @a index with @a replacement.
  1728. Words in @a text must be separated by newlines, spaces, and/or tabs.
  1729. @param text A whitespace-separated list of words.
  1730. @param index The zero-based index of the word to replace.
  1731. @param replacement The string with which to replace the word.
  1732. @return A new string with the word at the given @a index replaced by @a replacement or the original string if @a index is out of range.
  1733.  
  1734. @tsexample
  1735. setWord( "a b c d", 2, "f" ) // Returns "a b f d"
  1736. @endtsexample
  1737.  
  1738. @see getWord
  1739. @see setField
  1740. @see setRecord
  1741. @ingroup FieldManip */
  1742.     virtual string setWord(( string text, int index, string replacement )) {}
  1743.     /*! Remove the word in @a text at the given @a index.
  1744. Words in @a text must be separated by newlines, spaces, and/or tabs.
  1745. @param text A whitespace-separated list of words.
  1746. @param index The zero-based index of the word in @a text.
  1747. @return A new string with the word at the given index removed or the original string if @a index is out of range.
  1748.  
  1749. @tsexample
  1750. removeWord( "a b c d", 2 ) // Returns "a b d"
  1751. @endtsexample
  1752.  
  1753. @see removeField
  1754. @see removeRecord
  1755. @ingroup FieldManip */
  1756.     virtual string removeWord(( string text, int index )) {}
  1757.     /*! Return the number of whitespace-separated words in @a text.
  1758. Words in @a text must be separated by newlines, spaces, and/or tabs.
  1759. @param text A whitespace-separated list of words.
  1760. @return The number of whitespace-separated words in @a text.
  1761.  
  1762. @tsexample
  1763. getWordCount( "a b c d e" ) // Returns 5
  1764. @endtsexample
  1765.  
  1766. @see getFieldCount
  1767. @see getRecordCount
  1768. @ingroup FieldManip */
  1769.     virtual int getWordCount(( string text )) {}
  1770.     /*! Extract the field at the given @a index in the newline and/or tab separated list in @a text.
  1771. Fields in @a text must be separated by newlines and/or tabs.
  1772. @param text A list of fields separated by newlines and/or tabs.
  1773. @param index The zero-based index of the field to extract.
  1774. @return The field at the given index or "" if the index is out of range.
  1775.  
  1776. @tsexample
  1777. getField( "a b" TAB "c d" TAB "e f", 1 ) // Returns "c d"
  1778. @endtsexample
  1779.  
  1780. @see getFields
  1781. @see getFieldCount
  1782. @see getWord
  1783. @see getRecord
  1784. @ingroup FieldManip */
  1785.     virtual string getField(( string text, int index )) {}
  1786.     /*! Extract a range of fields from the given @a startIndex onwards thru @a endIndex.
  1787. Fields in @a text must be separated by newlines and/or tabs.
  1788. @param text A list of fields separated by newlines and/or tabs.
  1789. @param startIndex The zero-based index of the first field to extract from @a text.
  1790. @param endIndex The zero-based index of the last field to extract from @a text.  If this is -1, all fields beginning with @a startIndex are extracted from @a text.
  1791. @return A string containing the specified range of fields from @a text or "" if @a startIndex is out of range or greater than @a endIndex.
  1792.  
  1793. @tsexample
  1794. getFields( "a b" TAB "c d" TAB "e f", 1 ) // Returns "c d" TAB "e f"
  1795. @endtsexample
  1796.  
  1797. @see getField
  1798. @see getFieldCount
  1799. @see getWords
  1800. @see getRecords
  1801. @ingroup FieldManip */
  1802.     virtual string getFields(( string text, int startIndex, int endIndex=-1 )) {}
  1803.     /*! Replace the field in @a text at the given @a index with @a replacement.
  1804. Fields in @a text must be separated by newlines and/or tabs.
  1805. @param text A list of fields separated by newlines and/or tabs.
  1806. @param index The zero-based index of the field to replace.
  1807. @param replacement The string with which to replace the field.
  1808. @return A new string with the field at the given @a index replaced by @a replacement or the original string if @a index is out of range.
  1809.  
  1810. @tsexample
  1811. setField( "a b" TAB "c d" TAB "e f", 1, "g h" ) // Returns "a b" TAB "g h" TAB "e f"
  1812. @endtsexample
  1813.  
  1814. @see getField
  1815. @see setWord
  1816. @see setRecord
  1817. @ingroup FieldManip */
  1818.     virtual string setField(( string text, int index, string replacement )) {}
  1819.     /*! Remove the field in @a text at the given @a index.
  1820. Fields in @a text must be separated by newlines and/or tabs.
  1821. @param text A list of fields separated by newlines and/or tabs.
  1822. @param index The zero-based index of the field in @a text.
  1823. @return A new string with the field at the given index removed or the original string if @a index is out of range.
  1824.  
  1825. @tsexample
  1826. removeField( "a b" TAB "c d" TAB "e f", 1 ) // Returns "a b" TAB "e f"
  1827. @endtsexample
  1828.  
  1829. @see removeWord
  1830. @see removeRecord
  1831. @ingroup FieldManip */
  1832.     virtual string removeField(( string text, int index )) {}
  1833.     /*! Return the number of newline and/or tab separated fields in @a text.
  1834. @param text A list of fields separated by newlines and/or tabs.
  1835. @return The number of newline and/or tab sepearated elements in @a text.
  1836.  
  1837. @tsexample
  1838. getFieldCount( "a b" TAB "c d" TAB "e f" ) // Returns 3
  1839. @endtsexample
  1840.  
  1841. @see getWordCount
  1842. @see getRecordCount
  1843. @ingroup FieldManip */
  1844.     virtual int getFieldCount(( string text )) {}
  1845.     /*! Extract the record at the given @a index in the newline-separated list in @a text.
  1846. Records in @a text must be separated by newlines.
  1847. @param text A list of records separated by newlines.
  1848. @param index The zero-based index of the record to extract.
  1849. @return The record at the given index or "" if @a index is out of range.
  1850.  
  1851. @tsexample
  1852. getRecord( "a b" NL "c d" NL "e f", 1 ) // Returns "c d"
  1853. @endtsexample
  1854.  
  1855. @see getRecords
  1856. @see getRecordCount
  1857. @see getWord
  1858. @see getField
  1859. @ingroup FieldManip */
  1860.     virtual string getRecord(( string text, int index )) {}
  1861.     /*! Extract a range of records from the given @a startIndex onwards thru @a endIndex.
  1862. Records in @a text must be separated by newlines.
  1863. @param text A list of records separated by newlines.
  1864. @param startIndex The zero-based index of the first record to extract from @a text.
  1865. @param endIndex The zero-based index of the last record to extract from @a text.  If this is -1, all records beginning with @a startIndex are extracted from @a text.
  1866. @return A string containing the specified range of records from @a text or "" if @a startIndex is out of range or greater than @a endIndex.
  1867.  
  1868. @tsexample
  1869. getRecords( "a b" NL "c d" NL "e f", 1 ) // Returns "c d" NL "e f"
  1870. @endtsexample
  1871.  
  1872. @see getRecord
  1873. @see getRecordCount
  1874. @see getWords
  1875. @see getFields
  1876. @ingroup FieldManip */
  1877.     virtual string getRecords(( string text, int startIndex, int endIndex=-1 )) {}
  1878.     /*! Replace the record in @a text at the given @a index with @a replacement.
  1879. Records in @a text must be separated by newlines.
  1880. @param text A list of records separated by newlines.
  1881. @param index The zero-based index of the record to replace.
  1882. @param replacement The string with which to replace the record.
  1883. @return A new string with the record at the given @a index replaced by @a replacement or the original string if @a index is out of range.
  1884.  
  1885. @tsexample
  1886. setRecord( "a b" NL "c d" NL "e f", 1, "g h" ) // Returns "a b" NL "g h" NL "e f"
  1887. @endtsexample
  1888.  
  1889. @see getRecord
  1890. @see setWord
  1891. @see setField
  1892. @ingroup FieldManip */
  1893.     virtual string setRecord(( string text, int index, string replacement )) {}
  1894.     /*! Remove the record in @a text at the given @a index.
  1895. Records in @a text must be separated by newlines.
  1896. @param text A list of records separated by newlines.
  1897. @param index The zero-based index of the record in @a text.
  1898. @return A new string with the record at the given @a index removed or the original string if @a index is out of range.
  1899.  
  1900. @tsexample
  1901. removeRecord( "a b" NL "c d" NL "e f", 1 ) // Returns "a b" NL "e f"
  1902. @endtsexample
  1903.  
  1904. @see removeWord
  1905. @see removeField
  1906. @ingroup FieldManip */
  1907.     virtual string removeRecord(( string text, int index )) {}
  1908.     /*! Return the number of newline-separated records in @a text.
  1909. @param text A list of records separated by newlines.
  1910. @return The number of newline-sepearated elements in @a text.
  1911.  
  1912. @tsexample
  1913. getRecordCount( "a b" NL "c d" NL "e f" ) // Returns 3
  1914. @endtsexample
  1915.  
  1916. @see getWordCount
  1917. @see getFieldCount
  1918. @ingroup FieldManip */
  1919.     virtual int getRecordCount(( string text )) {}
  1920.     /*! Return the first word in @a text.
  1921. @param text A list of words separated by newlines, spaces, and/or tabs.
  1922. @return The word at index 0 in @a text or "" if @a text is empty.
  1923.  
  1924. @note This is equal to
  1925. @tsexample_nopar
  1926. getWord( text, 0 )
  1927. @endtsexample
  1928.  
  1929. @see getWord
  1930. @ingroup FieldManip */
  1931.     virtual string firstWord(( string text )) {}
  1932.     /*! Return all but the first word in @a text.
  1933. @param text A list of words separated by newlines, spaces, and/or tabs.
  1934. @return @a text with the first word removed.
  1935.  
  1936. @note This is equal to
  1937. @tsexample_nopar
  1938. getWords( text, 1 )
  1939. @endtsexample
  1940.  
  1941. @see getWords
  1942. @ingroup FieldManip */
  1943.     virtual string restWords(( string text )) {}
  1944.     /*! Tokenize a string using a set of delimiting characters.
  1945. This function first skips all leading charaters in @a str that are contained in @a delimiters. From that position, it then scans for the next character in @a str that is contained in @a delimiters and stores all characters from the starting position up to the first delimiter in a variable in the current scope called @a token.  Finally, it skips all characters in @a delimiters after the token and then returns the remaining string contents in @a str.
  1946.  
  1947. To scan out all tokens in a string, call this function repeatedly by passing the result it returns each time as the new @a str until the function returns "".
  1948.  
  1949. @param str A string.
  1950. @param token The name of the variable in which to store the current token.  This variable is set in the scope in which nextToken is called.
  1951. @param delimiters A string of characters.  Each character is considered a delimiter.
  1952. @return The remainder of @a str after the token has been parsed out or "" if no more tokens were found in @a str.
  1953.  
  1954. @tsexample
  1955. // Prints:
  1956. // a
  1957. // b
  1958. // c
  1959. %str = "a   b c";
  1960. while ( %str !$= "" )
  1961. {
  1962.    // First time, stores "a" in the variable %token and sets %str to "b c".
  1963.    %str = nextToken( %str, "token", " " );
  1964.    echo( %token );
  1965. }
  1966. @endtsexample
  1967.  
  1968. @ingroup Strings */
  1969.     virtual string nextToken(( string str, string token, string delimiters )) {}
  1970.     /*! @brief Returns the string from a tag string.
  1971. @see \ref syntaxDataTypes
  1972. @ingroup Networking */
  1973.     virtual string detag(( string str )) {}
  1974.     /*! @brief Extracts the tag from a tagged string
  1975. @see \ref syntaxDataTypes
  1976. @ingroup Networking */
  1977.     virtual string getTag((string textTagString)) {}
  1978.     /*! @brief Logs a message to the console.
  1979.  
  1980. Concatenates all given arguments to a single string and prints the string to the console. A newline is added automatically after the text.
  1981.  
  1982. @param message Any number of string arguments.
  1983.  
  1984. @ingroup Logging */
  1985.     virtual void echo(( string message... )) {}
  1986.     /*! @brief Logs a warning message to the console.
  1987.  
  1988. Concatenates all given arguments to a single string and prints the string to the console as a warning message (in the in-game console, these will show up using a turquoise font by default). A newline is added automatically after the text.
  1989.  
  1990. @param message Any number of string arguments.
  1991.  
  1992. @ingroup Logging */
  1993.     virtual void warn(( string message... )) {}
  1994.     /*! @brief Logs an error message to the console.
  1995.  
  1996. Concatenates all given arguments to a single string and prints the string to the console as an error message (in the in-game console, these will show up using a red font by default). A newline is added automatically after the text.
  1997.  
  1998. @param message Any number of string arguments.
  1999.  
  2000. @ingroup Logging */
  2001.     virtual void error(( string message... )) {}
  2002.     /*! @brief Logs an hack message to the console.
  2003.  
  2004. Concatenates all given arguments to a single string and prints the string to the console as an hack message (in the in-game console, these will show up using a green font by default). A newline is added automatically after the text.
  2005.  
  2006. @param message Any number of string arguments.
  2007.  
  2008. @ingroup Logging */
  2009.     virtual void hack(( string message... )) {}
  2010.     virtual bool launchExternalApplication((string filename, string cmdline)) {}
  2011.     virtual bool launchExternalApplicationThreaded((filename, cmdParams, callback, object)) {}
  2012.     virtual bool killProcess((U32 id)) {}
  2013.     /*! @brief Logs the value of the given variable to the console.
  2014.  
  2015. Prints a string of the form "<variableName> = <variable value>" to the console.
  2016.  
  2017. @param variableName Name of the local or global variable to print.
  2018.  
  2019. @tsexample
  2020. %var = 1;
  2021. debugv( "%var" ); // Prints "%var = 1"
  2022. @endtsexample
  2023.  
  2024. @ingroup Debugging */
  2025.     virtual void debugv(( string variableName )) {}
  2026.     /*! @brief Replace all characters in @a text that need to be escaped for the string to be a valid string literal with their respective escape sequences.
  2027.  
  2028. All characters in @a text that cannot appear in a string literal will be replaced by an escape sequence (\\n, \\t, etc).
  2029.  
  2030. The primary use of this function is for converting strings suitable for being passed as string literals to the TorqueScript compiler.
  2031.  
  2032. @param text A string
  2033. @return A duplicate of the text parameter with all unescaped characters that cannot appear in string literals replaced by their respective escape sequences.
  2034.  
  2035. @tsxample
  2036. expandEscape( "str" NL "ing" ) // Returns "str\ning".
  2037. @endtsxample
  2038.  
  2039. @see collapseEscape
  2040. @ingroup Strings */
  2041.     virtual string expandEscape(( string text )) {}
  2042.     /*! Replace all escape sequences in @a text with their respective character codes.
  2043.  
  2044. This function replaces all escape sequences (\\n, \\t, etc) in the given string with the respective characters they represent.
  2045.  
  2046. The primary use of this function is for converting strings from their literal form into their compiled/translated form, as is normally done by the TorqueScript compiler.
  2047.  
  2048. @param text A string.
  2049. @return A duplicate of @a text with all escape sequences replaced by their respective character codes.
  2050.  
  2051. @tsexample
  2052. // Print:
  2053. //
  2054. //    str
  2055. //    ing
  2056. //
  2057. // to the console.  Note how the backslash in the string must be escaped here
  2058. // in order to prevent the TorqueScript compiler from collapsing the escape
  2059. // sequence in the resulting string.
  2060. echo( collapseEscape( "str\ning" ) );
  2061. @endtsexample
  2062.  
  2063. @see expandEscape
  2064.  
  2065. @ingroup Strings */
  2066.     virtual string collapseEscape(( string text )) {}
  2067.     /*! @brief Determines how log files are written.
  2068.  
  2069. Sets the operational mode of the console logging system.
  2070.  
  2071. @param mode Parameter specifying the logging mode.  This can be:
  2072. - 1: Open and close the console log file for each seperate string of output.  This will ensure that all parts get written out to disk and that no parts remain in intermediate buffers even if the process crashes.
  2073. - 2: Keep the log file open and write to it continuously.  This will make the system operate faster but if the process crashes, parts of the output may not have been written to disk yet and will be missing from the log.
  2074.  
  2075. Additionally, when changing the log mode and thus opening a new log file, either of the two mode values may be combined by binary OR with 0x4 to cause the logging system to flush all console log messages that had already been issued to the console system into the newly created log file.
  2076.  
  2077. @note Xbox 360 does not support logging to a file. Use Platform::OutputDebugStr in C++ instead.@ingroup Logging */
  2078.     virtual void setLogMode(( int mode )) {}
  2079.     /*! Shut down the engine and exit its process.
  2080. This function cleanly uninitializes the engine and then exits back to the system with a process exit status indicating a clean exit.
  2081.  
  2082. @see quitWithErrorMessage
  2083.  
  2084. @ingroup Platform */
  2085.     virtual void quit(()) {}
  2086.     virtual bool isQuitRequested(()) {}
  2087.     /*! Display an error message box showing the given @a message and then shut down the engine and exit its process.
  2088. This function cleanly uninitialized the engine and then exits back to the system with a process exit status indicating an error.
  2089.  
  2090. @param message The message to log to the console and show in an error message box.
  2091.  
  2092. @see quit
  2093.  
  2094. @ingroup Platform */
  2095.     virtual void quitWithErrorMessage(( string message )) {}
  2096.     /*! Open the given URL or file in the user's web browser.
  2097.  
  2098. @param address The address to open.  If this is not prefixed by a protocol specifier ("...://"), then the function checks whether the address refers to a file or directory and if so, prepends "file://" to @a adress; if the file check fails, "http://" is prepended to @a address.
  2099.  
  2100. @tsexample
  2101. gotoWebPage( "http://www.garagegames.com" );
  2102. @endtsexample
  2103.  
  2104. @ingroup Platform */
  2105.     virtual void gotoWebPage(( string address )) {}
  2106.     /*! Display a startup splash window suitable for showing while the engine still starts up.
  2107.  
  2108. @note This is currently only implemented on Windows.
  2109.  
  2110. @return True if the splash window could be successfully initialized.
  2111.  
  2112. @ingroup Platform */
  2113.     virtual bool displaySplashWindow(()) {}
  2114.     /*! Test whether Torque is running in web-deployment mode.
  2115. In this mode, Torque will usually run within a browser and certain restrictions apply (e.g. Torque will not be able to enter fullscreen exclusive mode).
  2116. @return True if Torque is running in web-deployment mode.
  2117. @ingroup Platform */
  2118.     virtual bool getWebDeployment(()) {}
  2119.     /*! Count the number of bits that are set in the given 32 bit integer.
  2120. @param v An integer value.
  2121.  
  2122. @return The number of bits that are set in @a v.
  2123.  
  2124. @ingroup Utilities */
  2125.     virtual int countBits(( int v )) {}
  2126.     /*! Generate a new universally unique identifier (UUID).
  2127.  
  2128. @return A newly generated UUID.
  2129.  
  2130. @ingroup Utilities */
  2131.     virtual string generateUUID(()) {}
  2132.     /*! Apply the given arguments to the specified global function and return the result of the call.
  2133.  
  2134. @param functionName The name of the function to call.  This function must be in the global namespace, i.e. you cannot call a function in a namespace through #call.  Use eval() for that.
  2135. @return The result of the function call.
  2136.  
  2137. @tsexample
  2138. function myFunction( %arg )
  2139. {
  2140.   return ( %arg SPC "World!" );
  2141. }
  2142.  
  2143. echo( call( "myFunction", "Hello" ) ); // Prints "Hello World!" to the console.
  2144. @endtsexample
  2145.  
  2146. @ingroup Scripting */
  2147.     virtual string call(( string functionName, string args... )) {}
  2148.     /*! Get the absolute path to the file in which the compiled code for the given script file will be stored.
  2149. @param scriptFileName %Path to the .cs script file.
  2150. @return The absolute path to the .dso file for the given script file.
  2151.  
  2152. @note The compiler will store newly compiled DSOs in the prefs path but pre-existing DSOs will be loaded from the current paths.
  2153.  
  2154. @see compile
  2155. @see getPrefsPath
  2156. @ingroup Scripting */
  2157.     virtual string getDSOPath(( string scriptFileName )) {}
  2158.     /*! Compile a file to bytecode.
  2159.  
  2160. This function will read the TorqueScript code in the specified file, compile it to internal bytecode, and, if DSO generation is enabled or @a overrideNoDDSO is true, will store the compiled code in a .dso file in the current DSO path mirrorring the path of @a fileName.
  2161.  
  2162. @param fileName Path to the file to compile to bytecode.
  2163. @param overrideNoDSO If true, force generation of DSOs even if the engine is compiled to not generate write compiled code to DSO files.
  2164.  
  2165. @return True if the file was successfully compiled, false if not.
  2166.  
  2167. @note The definitions contained in the given file will not be made available and no code will actually be executed.  Use exec() for that.
  2168.  
  2169. @see getDSOPath
  2170. @see exec
  2171. @ingroup Scripting */
  2172.     virtual bool compile(( string fileName, bool overrideNoDSO=false )) {}
  2173.     /*! Execute the given script file.
  2174. @param fileName Path to the file to execute
  2175. @param noCalls Deprecated
  2176. @param journalScript Deprecated
  2177. @return True if the script was successfully executed, false if not.
  2178.  
  2179. @tsexample
  2180. // Execute the init.cs script file found in the same directory as the current script file.
  2181. exec( "./init.cs" );
  2182. @endtsexample
  2183.  
  2184. @see compile
  2185. @see eval
  2186. @ingroup Scripting */
  2187.     virtual bool exec(( string fileName, bool noCalls=false, bool journalScript=false )) {}
  2188.     /*! eval(consoleString) */
  2189.     virtual string eval() {}
  2190.     /*! @brief Returns the value of the named variable or an empty string if not found.
  2191.  
  2192. @varName Name of the variable to search for
  2193. @return Value contained by varName, "" if the variable does not exist
  2194. @ingroup Scripting */
  2195.     virtual string getVariable((string varName)) {}
  2196.     /*! @brief Sets the value of the named variable.
  2197.  
  2198. @param varName Name of the variable to locate
  2199. @param value New value of the variable
  2200. @return True if variable was successfully found and set
  2201. @ingroup Scripting */
  2202.     virtual void setVariable((string varName, string value)) {}
  2203.     /*! @brief Determines if a function exists or not
  2204.  
  2205. @param funcName String containing name of the function
  2206. @return True if the function exists, false if not
  2207. @ingroup Scripting */
  2208.     virtual bool isFunction((string funcName)) {}
  2209.     /*! @brief Provides the name of the package the function belongs to
  2210.  
  2211. @param funcName String containing name of the function
  2212. @return The name of the function's package
  2213. @ingroup Packages */
  2214.     virtual string getFunctionPackage((string funcName)) {}
  2215.     /*! @brief Determines if a class/namespace method exists
  2216.  
  2217. @param namespace Class or namespace, such as Player
  2218. @param method Name of the function to search for
  2219. @return True if the method exists, false if not
  2220. @ingroup Scripting
  2221.  */
  2222.     virtual bool isMethod((string namespace, string method)) {}
  2223.     /*! @brief Provides the name of the package the method belongs to
  2224.  
  2225. @param namespace Class or namespace, such as Player
  2226. @param method Name of the funciton to search for
  2227. @return The name of the method's package
  2228. @ingroup Packages */
  2229.     virtual string getMethodPackage((string namespace, string method)) {}
  2230.     /*! @brief Determines if a variable exists and contains a value
  2231. @param varName Name of the variable to search for
  2232. @return True if the variable was defined in script, false if not
  2233. @tsexample
  2234. isDefined( "$myVar" );
  2235. @endtsexample
  2236.  
  2237. @ingroup Scripting */
  2238.     virtual bool isDefined((string varName)) {}
  2239.     /*! Returns true if the calling script is a tools script.
  2240. @hide */
  2241.     virtual bool isCurrentScriptToolScript(()) {}
  2242.     /*! @brief Attempts to extract a mod directory from path. Returns empty string on failure.
  2243.  
  2244. @param File path of mod folder
  2245. @note This is no longer relevant in Torque 3D (which does not use mod folders), should be deprecated
  2246. @internal */
  2247.     virtual string getModNameFromPath((string path)) {}
  2248.     /*! @brief Pushes the current $instantGroup on a stack and sets it to the given value (or clears it).
  2249.  
  2250. @note Currently only used for editors
  2251. @ingroup Editors
  2252. @internal */
  2253.     virtual void pushInstantGroup(([group])) {}
  2254.     /*! @brief Pop and restore the last setting of $instantGroup off the stack.
  2255.  
  2256. @note Currently only used for editors
  2257.  
  2258. @ingroup Editors
  2259. @internal */
  2260.     virtual void popInstantGroup(()) {}
  2261.     /*! @note Appears to be useless in Torque 3D, should be deprecated
  2262. @internal */
  2263.     virtual string getPrefsPath(([relativeFileName])) {}
  2264.     /*! @brief Manually execute a special script file that contains game or editor preferences
  2265.  
  2266. @param relativeFileName Name and path to file from project folder
  2267. @param noCalls Deprecated
  2268. @param journalScript Deprecated
  2269. @return True if script was successfully executed
  2270. @note Appears to be useless in Torque 3D, should be deprecated
  2271. @ingroup Scripting */
  2272.     virtual bool execPrefs(( string relativeFileName, bool noCalls=false, bool journalScript=false )) {}
  2273.     /*! Write out the definitions of all global variables matching the given name @a pattern.
  2274. If @a fileName is not "", the variable definitions are written to the specified file.  Otherwise the definitions will be printed to the console.
  2275.  
  2276. The output are valid TorqueScript statements that can be executed to restore the global variable values.
  2277.  
  2278. @param pattern A global variable name pattern.  Must begin with '$'.
  2279. @param filename %Path of the file to which to write the definitions or "" to write the definitions to the console.
  2280. @param append If true and @a fileName is not "", then the definitions are appended to the specified file. Otherwise existing contents of the file (if any) will be overwritten.
  2281.  
  2282. @tsexample
  2283. // Write out all preference variables to a prefs.cs file.
  2284. export( "$prefs::*", "prefs.cs" );
  2285. @endtsexample
  2286.  
  2287. @ingroup Scripting */
  2288.     virtual void export(( string pattern, string filename="", bool append=false )) {}
  2289.     /*! Undefine all global variables matching the given name @a pattern.
  2290. @param pattern A global variable name pattern.  Must begin with '$'.
  2291. @tsexample
  2292. // Define a global variable in the "My" namespace.
  2293. $My::Variable = "value";
  2294.  
  2295. // Undefine all variable in the "My" namespace.
  2296. deleteVariables( "$My::*" );
  2297. @endtsexample
  2298.  
  2299. @see strIsMatchExpr
  2300. @ingroup Scripting */
  2301.     virtual void deleteVariables(( string pattern )) {}
  2302.     /*! Enable or disable tracing in the script code VM.
  2303.  
  2304. When enabled, the script code runtime will trace the invocation and returns from all functions that are called and log them to the console. This is helpful in observing the flow of the script program.
  2305.  
  2306. @param enable New setting for script trace execution, on by default.
  2307. @ingroup Debugging */
  2308.     virtual void trace(( bool enable=true )) {}
  2309.     /*! Enable or disable step tracing in the script code VM.
  2310.  
  2311. When tracing is on, the script code runtime will trace how deep it in code and log with '#' symbol the current depth to the console.  This is helpful in finding what the script program flow is.
  2312.  
  2313. @param enable New setting for script step trace execution.
  2314. @ingroup Debugging */
  2315.     virtual void stepTrace(( bool enable=true )) {}
  2316.     /*! Drops the engine into the native C++ debugger.
  2317.  
  2318. This function triggers a debug break and drops the process into the IDE's debugger.  If the process is not running with a debugger attached it will generate a runtime error on most platforms.
  2319.  
  2320. @note This function is not available in shipping builds.@ingroup Debugging */
  2321.     virtual void debug(()) {}
  2322.     /*! Test whether the engine has been compiled with TORQUE_SHIPPING, i.e. in a form meant for final release.
  2323.  
  2324. @return True if this is a shipping build; false otherwise.
  2325.  
  2326. @ingroup Platform */
  2327.     virtual bool isShippingBuild(()) {}
  2328.     /*! Test whether the engine has been compiled with TORQUE_DEBUG, i.e. if it includes debugging functionality.
  2329.  
  2330. @return True if this is a debug build; false otherwise.
  2331.  
  2332. @ingroup Platform */
  2333.     virtual bool isDebugBuild(()) {}
  2334.     /*! Test whether the engine has been compiled with TORQUE_TOOLS, i.e. if it includes tool-related functionality.
  2335.  
  2336. @return True if this is a tool build; false otherwise.
  2337.  
  2338. @ingroup Platform */
  2339.     virtual bool isToolBuild(()) {}
  2340.     /*! @brief Prints the scripting call stack to the console log.
  2341.  
  2342. Used to trace functions called from within functions. Can help discover what functions were called (and not yet exited) before the current point in scripts.
  2343.  
  2344. @ingroup Debugging */
  2345.     virtual void backtrace(()) {}
  2346.     virtual void dumpScope(()) {}
  2347.     virtual void DEPRECATED() {}
  2348.     /*! return the script scope name, either current or parental */
  2349.     virtual string getScopeName() {}
  2350.     /*! @brief Returns true if the identifier is the name of a declared package.
  2351.  
  2352. @ingroup Packages
  2353.  */
  2354.     virtual bool isPackage(( String identifier )) {}
  2355.     /*! @brief Activates an existing package.
  2356.  
  2357. The activation occurs by updating the namespace linkage of existing functions and methods. If the package is already activated the function does nothing.
  2358. @ingroup Packages
  2359.  */
  2360.     virtual void activatePackage(( String packageName )) {}
  2361.     /*! @brief Deactivates a previously activated package.
  2362.  
  2363. The package is deactivated by removing its namespace linkages to any function or method. If there are any packages above this one in the stack they are deactivated as well. If the package is not on the stack this function does nothing.
  2364. @ingroup Packages
  2365.  */
  2366.     virtual void deactivatePackage(( String packageName )) {}
  2367.     /*! @brief Returns a space delimited list of the active packages in stack order.
  2368.  
  2369. @ingroup Packages
  2370.  */
  2371.     virtual string getPackageList(()) {}
  2372.     /*! @brief Returns true if the passed identifier is the name of a declared class.
  2373.  
  2374. @ingroup Console */
  2375.     virtual bool isClass(( string identifier )) {}
  2376.     /*! @brief Returns true if the class is derived from the super class.
  2377.  
  2378. If either class doesn't exist this returns false.
  2379. @param className The class name.
  2380. @param superClassName The super class to look for.
  2381. @ingroup Console */
  2382.     virtual bool isMemberOfClass(( string className, string superClassName )) {}
  2383.     /*! @brief Returns the description string for the named class.
  2384.  
  2385. @param className The name of the class.
  2386. @return The class description in string format.
  2387. @ingroup Console */
  2388.     virtual string getDescriptionOfClass(( string className )) {}
  2389.     /*! @brief Returns the category of the given class.
  2390.  
  2391. @param className The name of the class.
  2392. @ingroup Console */
  2393.     virtual string getCategoryOfClass(( string className )) {}
  2394.     /*! @brief Returns a list of classes that derive from the named class.
  2395.  
  2396. If the named class is omitted this dumps all the classes.
  2397. @param className The optional base class name.
  2398. @return A tab delimited list of classes.
  2399. @ingroup Editors
  2400. @internal */
  2401.     virtual string enumerateConsoleClasses(( string className="" )) {}
  2402.     /*! @brief Provide a list of classes that belong to the given category.
  2403.  
  2404. @param category The category name.
  2405. @return A tab delimited list of classes.
  2406. @ingroup Editors
  2407. @internal */
  2408.     virtual string enumerateConsoleClassesByCategory(( String category )) {}
  2409.     virtual void debugNetStart(( string val )) {}
  2410.     virtual void clientCmdNetDebugSessionStart(( string val )) {}
  2411.     virtual void globalStartNetDebug(( string sessionName )) {}
  2412.     /*! @brief Dumps network statistics for each class to the console.
  2413.  
  2414. The returned <i>avg</i>, <i>min</i> and <i>max</i> values are in bits sent per update.  The <i>num</i> value is the total number of events collected.
  2415. @note This method only works when TORQUE_NET_STATS is defined in torqueConfig.h.
  2416. @ingroup Networking
  2417.  */
  2418.     virtual void dumpNetStats(()) {}
  2419.     virtual void debugNetEnd(()) {}
  2420.     virtual void clientCmdNetDebugSessionStop(()) {}
  2421.     virtual void globalStopNetDebug(()) {}
  2422.     /*! @brief Determines the memory consumption of a class or object.
  2423.  
  2424. @param objectOrClass The object or class being measured.
  2425. @return Returns the total size of an object in bytes.
  2426. @ingroup Debugging
  2427.  */
  2428.     virtual int sizeof(( string objectOrClass )) {}
  2429.     /*! Dumps the engine scripting documentation to the specified file overwriting any existing content.
  2430. @param outputFile The relative or absolute output file path and name.
  2431. @return Returns true if successful.
  2432. @ingroup Console */
  2433.     virtual bool dumpEngineDocs(( string outputFile )) {}
  2434.     virtual int getEnumTypeID((const char* typeName)) {}
  2435.     virtual int getEnumItemCount((S32 typeId)) {}
  2436.     virtual string getEnumItemName((S32 typeId, S32 valueId)) {}
  2437.     virtual int getEnumItemValue((S32 typeId, S32 valueId)) {}
  2438.     /*! @brief Returns the first file in the directory system matching the given pattern.
  2439.  
  2440. Use the corresponding findNextFile() to step through the results.  If you're only interested in the number of files returned by the pattern match, use getFileCount().
  2441.  
  2442. This function differs from findFirstFileMultiExpr() in that it supports a single search pattern being passed in.
  2443.  
  2444. @note You cannot run multiple simultaneous file system searches with these functions.  Each call to findFirstFile() and findFirstFileMultiExpr() initiates a new search and renders a previous search invalid.
  2445.  
  2446. @param pattern The path and file name pattern to match against.
  2447. @param recurse If true, the search will exhaustively recurse into subdirectories of the given path and match the given filename pattern.
  2448. @return The path of the first file matched by the search or an empty string if no matching file could be found.
  2449.  
  2450. @tsexample
  2451. // Execute all .cs files in a subdirectory and its subdirectories.
  2452. for( %file = findFirstFile( "subdirectory/*.cs" ); %file !$= ""; %file = findNextFile() )
  2453.    exec( %file );
  2454. @endtsexample
  2455.  
  2456. @see findNextFile()@see getFileCount()@see findFirstFileMultiExpr()@ingroup FileSearches */
  2457.     virtual string findFirstFile(( string pattern, bool recurse=true )) {}
  2458.     /*! @brief Returns the next file matching a search begun in findFirstFile().
  2459.  
  2460. @param pattern The path and file name pattern to match against.  This is optional and may be left out as it is not used by the code.  It is here for legacy reasons.
  2461. @return The path of the next filename matched by the search or an empty string if no more files match.
  2462.  
  2463. @tsexample
  2464. // Execute all .cs files in a subdirectory and its subdirectories.
  2465. for( %file = findFirstFile( "subdirectory/*.cs" ); %file !$= ""; %file = findNextFile() )
  2466.    exec( %file );
  2467. @endtsexample
  2468.  
  2469. @see findFirstFile()@ingroup FileSearches */
  2470.     virtual string findNextFile(( string pattern="" )) {}
  2471.     /*! @brief Returns the number of files in the directory tree that match the given patterns
  2472.  
  2473. This function differs from getFileCountMultiExpr() in that it supports a single search pattern being passed in.
  2474.  
  2475. If you're interested in a list of files that match the given pattern and not just the number of files, use findFirstFile() and findNextFile().
  2476.  
  2477. @param pattern The path and file name pattern to match against.
  2478. @param recurse If true, the search will exhaustively recurse into subdirectories of the given path and match the given filename pattern counting files in subdirectories.
  2479. @return Number of files located using the pattern
  2480.  
  2481. @tsexample
  2482. // Count the number of .cs files in a subdirectory and its subdirectories.
  2483. getFileCount( "subdirectory/*.cs" );
  2484. @endtsexample
  2485.  
  2486. @see findFirstFile()@see findNextFile()@see getFileCountMultiExpr()@ingroup FileSearches */
  2487.     virtual int getFileCount(( string pattern, bool recurse=true )) {}
  2488.     /*! @brief Returns the first file in the directory system matching the given patterns.
  2489.  
  2490. Use the corresponding findNextFileMultiExpr() to step through the results.  If you're only interested in the number of files returned by the pattern match, use getFileCountMultiExpr().
  2491.  
  2492. This function differs from findFirstFile() in that it supports multiple search patterns to be passed in.
  2493.  
  2494. @note You cannot run multiple simultaneous file system searches with these functions.  Each call to findFirstFile() and findFirstFileMultiExpr() initiates a new search and renders a previous search invalid.
  2495.  
  2496. @param pattern The path and file name pattern to match against, such as *.cs.  Separate multiple patterns with TABs.  For example: "*.cs" TAB "*.dso"
  2497. @param recurse If true, the search will exhaustively recurse into subdirectories of the given path and match the given filename patterns.
  2498. @return String of the first matching file path, or an empty string if no matching files were found.
  2499.  
  2500. @tsexample
  2501. // Find all DTS or Collada models
  2502. %filePatterns = "*.dts" TAB "*.dae";
  2503. %fullPath = findFirstFileMultiExpr( %filePatterns );
  2504. while ( %fullPath !$= "" )
  2505. {
  2506.    echo( %fullPath );
  2507.    %fullPath = findNextFileMultiExpr( %filePatterns );
  2508. }
  2509. @endtsexample
  2510.  
  2511. @see findNextFileMultiExpr()@see getFileCountMultiExpr()@see findFirstFile()@ingroup FileSearches */
  2512.     virtual string findFirstFileMultiExpr(( string pattern, bool recurse=true )) {}
  2513.     /*! @brief Returns the next file matching a search begun in findFirstFileMultiExpr().
  2514.  
  2515. @param pattern The path and file name pattern to match against.  This is optional and may be left out as it is not used by the code.  It is here for legacy reasons.
  2516. @return String of the next matching file path, or an empty string if no matching files were found.
  2517.  
  2518. @tsexample
  2519. // Find all DTS or Collada models
  2520. %filePatterns = "*.dts" TAB "*.dae";
  2521. %fullPath = findFirstFileMultiExpr( %filePatterns );
  2522. while ( %fullPath !$= "" )
  2523. {
  2524.    echo( %fullPath );
  2525.    %fullPath = findNextFileMultiExpr( %filePatterns );
  2526. }
  2527. @endtsexample
  2528.  
  2529. @see findFirstFileMultiExpr()@ingroup FileSearches */
  2530.     virtual string findNextFileMultiExpr(( string pattern="" )) {}
  2531.     /*! @brief Returns the number of files in the directory tree that match the given patterns
  2532.  
  2533. If you're interested in a list of files that match the given patterns and not just the number of files, use findFirstFileMultiExpr() and findNextFileMultiExpr().
  2534.  
  2535. @param pattern The path and file name pattern to match against, such as *.cs.  Separate multiple patterns with TABs.  For example: "*.cs" TAB "*.dso"
  2536. @param recurse If true, the search will exhaustively recurse into subdirectories of the given path and match the given filename pattern.
  2537. @return Number of files located using the patterns
  2538.  
  2539. @tsexample
  2540. // Count all DTS or Collada models
  2541. %filePatterns = "*.dts" TAB "*.dae";
  2542. echo( "Nunmer of shape files:" SPC getFileCountMultiExpr( %filePatterns ) );
  2543. @endtsexample
  2544.  
  2545. @see findFirstFileMultiExpr()@see findNextFileMultiExpr()@ingroup FileSearches */
  2546.     virtual int getFileCountMultiExpr(( string pattern, bool recurse=true )) {}
  2547.     /*! @brief Provides the CRC checksum of the given file.
  2548.  
  2549. @param fileName The path to the file.
  2550. @return The calculated CRC checksum of the file, or -1 if the file could not be found.
  2551. @ingroup FileSystem */
  2552.     virtual int getFileCRC(( string fileName )) {}
  2553.     /*! @brief Determines if the specified file exists or not
  2554.  
  2555. @param fileName The path to the file.
  2556. @return Returns true if the file was found.
  2557. @ingroup FileSystem */
  2558.     virtual bool isFile(( string fileName )) {}
  2559.     /*! @brief Determines if a specified directory exists or not
  2560.  
  2561. @param directory String containing path in the form of "foo/bar"
  2562. @return Returns true if the directory was found.
  2563. @note Do not include a trailing slash '/'.
  2564. @ingroup FileSystem */
  2565.     virtual bool IsDirectory(( string directory )) {}
  2566.     /*! @brief Determines if a file name can be written to using File I/O
  2567.  
  2568. @param fileName Name and path of file to check
  2569. @return Returns true if the file can be written to.
  2570. @ingroup FileSystem */
  2571.     virtual bool isWriteableFileName(( string fileName )) {}
  2572.     /*! @brief Start watching resources for file changes
  2573.  
  2574. Typically this is called during initializeCore().
  2575.  
  2576. @see stopFileChangeNotifications()
  2577. @ingroup FileSystem */
  2578.     virtual void startFileChangeNotifications(()) {}
  2579.     /*! @brief Stop watching resources for file changes
  2580.  
  2581. Typically this is called during shutdownCore().
  2582.  
  2583. @see startFileChangeNotifications()
  2584. @ingroup FileSystem */
  2585.     virtual void stopFileChangeNotifications(()) {}
  2586.     /*! @brief Gathers a list of directories starting at the given path.
  2587.  
  2588. @param path String containing the path of the directory
  2589. @param depth Depth of search, as in how many subdirectories to parse through
  2590. @return Tab delimited string containing list of directories found during search, "" if no files were found
  2591. @ingroup FileSystem */
  2592.     virtual string getDirectoryList(( string path, int depth=0 )) {}
  2593.     /*! @brief Determines the size of a file on disk
  2594.  
  2595. @param fileName Name and path of the file to check
  2596. @return Returns filesize in KB, or -1 if no file
  2597. @ingroup FileSystem */
  2598.     virtual int fileSize(( string fileName )) {}
  2599.     /*! @brief Returns a platform specific formatted string with the last modified time for the file.
  2600.  
  2601. @param fileName Name and path of file to check
  2602. @return Formatted string (OS specific) containing modified time, "9/3/2010 12:33:47 PM" for example
  2603. @ingroup FileSystem */
  2604.     virtual string fileModifiedTime(( string fileName )) {}
  2605.     /*! @brief Returns a platform specific formatted string with the creation time for the file.@param fileName Name and path of file to check
  2606. @return Formatted string (OS specific) containing created time, "9/3/2010 12:33:47 PM" for example
  2607. @ingroup FileSystem */
  2608.     virtual string fileCreatedTime(( string fileName )) {}
  2609.     /*! @brief Delete a file from the hard drive
  2610.  
  2611. @param path Name and path of the file to delete
  2612. @note THERE IS NO RECOVERY FROM THIS. Deleted file is gone for good.
  2613. @return True if file was successfully deleted
  2614. @ingroup FileSystem */
  2615.     virtual bool fileDelete(( string path )) {}
  2616.     virtual bool removeFolderWithAllFiles(( string path )) {}
  2617.     /*! @brief Get the extension of a file
  2618.  
  2619. @param fileName Name and path of file
  2620. @return String containing the extension, such as ".exe" or ".cs"
  2621. @ingroup FileSystem */
  2622.     virtual string fileExt(( string fileName )) {}
  2623.     /*! @brief Get the base of a file name (removes extension)
  2624.  
  2625. @param fileName Name and path of file to check
  2626. @return String containing the file name, minus extension
  2627. @ingroup FileSystem */
  2628.     virtual string fileBase(( string fileName )) {}
  2629.     /*! @brief Get the file name of a file (removes extension and path)
  2630.  
  2631. @param fileName Name and path of file to check
  2632. @return String containing the file name, minus extension and path
  2633. @ingroup FileSystem */
  2634.     virtual string fileName(( string fileName )) {}
  2635.     /*! @brief Get the path of a file (removes name and extension)
  2636.  
  2637. @param fileName Name and path of file to check
  2638. @return String containing the path, minus name and extension
  2639. @ingroup FileSystem */
  2640.     virtual string filePath(( string fileName )) {}
  2641.     /*! @brief Reports the current directory
  2642.  
  2643. @return String containing full file path of working directory
  2644. @ingroup FileSystem */
  2645.     virtual string getWorkingDirectory(()) {}
  2646.     /*! @brief Converts a relative file path to a full path
  2647.  
  2648. For example, "./console.log" becomes "C:/Torque/t3d/examples/FPS Example/game/console.log"
  2649. @param path Name of file or path to check
  2650. @param cwd Optional current working directory from which to build the full path.
  2651. @return String containing non-relative directory of path
  2652. @ingroup FileSystem */
  2653.     virtual string makeFullPath(( string path, string cwd="" )) {}
  2654.     /*! @brief Turns a full or local path to a relative one
  2655.  
  2656. For example, "./game/art" becomes "game/art"
  2657. @param path Full path (may include a file) to convert
  2658. @param to Optional base path used for the conversion.  If not supplied the current working directory is used.
  2659. @returns String containing relative path
  2660. @ingroup FileSystem */
  2661.     virtual string makeRelativePath(( string path, string to="" )) {}
  2662.     /*! @brief Combines two separate strings containing a file path and file name together into a single string
  2663.  
  2664. @param path String containing file path
  2665. @param file String containing file name
  2666. @return String containing concatenated file name and path
  2667. @ingroup FileSystem */
  2668.     virtual string pathConcat(( string path, string file )) {}
  2669.     /*! @brief Gets the name of the game's executable
  2670.  
  2671. @return String containing this game's executable name
  2672. @ingroup FileSystem */
  2673.     virtual string getExecutableName(()) {}
  2674.     /*! @brief Get the absolute path to the directory that contains the main.cs script from which the engine was started.
  2675.  
  2676. This directory will usually contain all the game assets and, in a user-side game installation, will usually be read-only.
  2677.  
  2678. @return The path to the main game assets.
  2679.  
  2680. @ingroup FileSystem
  2681.  */
  2682.     virtual string getMainDotCsDir(()) {}
  2683.     /*! @brief Copy a file to a new location.
  2684. @param fromFile %Path of the file to copy.
  2685. @param toFile %Path where to copy @a fromFile to.
  2686. @param noOverwrite If true, then @a fromFile will not overwrite a file that may already exist at @a toFile.
  2687. @return True if the file was successfully copied, false otherwise.
  2688. @note Only present in a Tools build of Torque.
  2689. @ingroup FileSystem */
  2690.     virtual bool pathCopy(( string fromFile, string toFile, bool noOverwrite=true )) {}
  2691.     /*! @brief Return the current working directory.
  2692.  
  2693. @return The absolute path of the current working directory.
  2694.  
  2695. @note Only present in a Tools build of Torque.
  2696. @see getWorkingDirectory()@ingroup FileSystem */
  2697.     virtual string getCurrentDirectory(()) {}
  2698.     /*! @brief Set the current working directory.
  2699.  
  2700. @param path The absolute or relative (to the current working directory) path of the directory which should be made the new working directory.
  2701.  
  2702. @return True if the working directory was successfully changed to @a path, false otherwise.
  2703.  
  2704. @note Only present in a Tools build of Torque.
  2705. @ingroup FileSystem */
  2706.     virtual bool setCurrentDirectory(( string path )) {}
  2707.     /*! @brief Create the given directory or the path leading to the given filename.
  2708.  
  2709. If @a path ends in a trailing slash, then all components in the given path will be created as directories (if not already in place).  If @a path, does @b not end in a trailing slash, then the last component of the path is taken to be a file name and only the directory components of the path will be created.
  2710.  
  2711. @param path The path to create.
  2712.  
  2713. @note Only present in a Tools build of Torque.
  2714. @ingroup FileSystem */
  2715.     virtual bool createPath(( string path )) {}
  2716.     /*! @brief Grabs the full path of a specified file
  2717.  
  2718. @param filename Name of the local file to locate
  2719. @return String containing the full filepath on disk
  2720. @ingroup FileSystem */
  2721.     virtual string expandFilename((string filename)) {}
  2722.     /*! @brief Retrofits a filepath that uses old Torque style
  2723.  
  2724. @return String containing filepath with new formatting
  2725. @ingroup FileSystem */
  2726.     virtual string expandOldFilename((string filename)) {}
  2727.     /*! @internal Editor use only */
  2728.     virtual string collapseFilename((string filename)) {}
  2729.     /*! @internal Editor use only */
  2730.     virtual void setScriptPathExpando((string expando, string path[, bool toolsOnly])) {}
  2731.     /*! @internal Editor use only */
  2732.     virtual void removeScriptPathExpando((string expando)) {}
  2733.     /*! @internal Editor use only */
  2734.     virtual bool isScriptPathExpando((string expando)) {}
  2735.  
  2736.     /*! @name SimFunctions
  2737.    
  2738.     Functions relating to Sim.
  2739.     @{ */
  2740.     /*! */
  2741.     /*! nameToID(object) */
  2742.     virtual int nameToID() {}
  2743.     /*! isObject(object) */
  2744.     virtual bool isObject() {}
  2745.     /*! spawnObject(class [, dataBlock, name, properties, script])@hide */
  2746.     virtual int spawnObject() {}
  2747.     /*! cancel(eventId) */
  2748.     virtual void cancel() {}
  2749.     /*! cancelAll(objectId): cancel pending events on the specified object.  Events will be automatically cancelled if object is deleted. */
  2750.     virtual void cancelAll() {}
  2751.     /*! isEventPending(%scheduleId); */
  2752.     virtual bool isEventPending() {}
  2753.     /*! getEventTimeLeft(scheduleId) Get the time left in ms until this event will trigger. */
  2754.     virtual int getEventTimeLeft() {}
  2755.     /*! getScheduleDuration(%scheduleId); */
  2756.     virtual int getScheduleDuration() {}
  2757.     /*! getTimeSinceStart(%scheduleId); */
  2758.     virtual int getTimeSinceStart() {}
  2759.     /*! schedule(time, refobject|0, command, <arg1...argN>) */
  2760.     virtual int schedule() {}
  2761.     /*! @brief Returns a unique unused SimObject name based on a given base name.
  2762.  
  2763. @baseName Name to conver to a unique string if another instance exists
  2764. @note Currently only used by editors
  2765. @ingroup Editors
  2766. @internal */
  2767.     virtual string getUniqueName(( String baseName )) {}
  2768.     /*! @brief Returns a unique unused internal name within the SimSet/Group based on a given base name.
  2769.  
  2770. @note Currently only used by editors
  2771. @ingroup Editors
  2772. @internal */
  2773.     virtual string getUniqueInternalName(( String baseName, SimSet set, bool searchChildren )) {}
  2774.     /*! @brief Return true if the given name makes for a valid object name.
  2775.  
  2776. @param name Name of object
  2777. @return True if name is allowed, false if denied (usually because it starts with a number, _, or invalid character@ingroup Console */
  2778.     virtual bool isValidObjectName(( string name )) {}
  2779.     /// @}
  2780.  
  2781.     /*! Delete all the datablocks we've downloaded.
  2782.  
  2783. This is usually done in preparation of downloading a new set of datablocks, such as occurs on a mission change, but it's also good post-mission cleanup. */
  2784.     virtual void deleteDataBlocks(()) {}
  2785.     /*! @brief Serialize the object to a file.
  2786.  
  2787. @param object The object to serialize.
  2788. @param filename The file name and path.
  2789. @ingroup Console
  2790.  */
  2791.     virtual bool saveObject(( SimObject  object, string filename )) {}
  2792.     /*! @brief Loads a serialized object from a file.
  2793.  
  2794. @param Name and path to text file containing the object
  2795. @ingroup Console
  2796.  */
  2797.     virtual string loadObject(( string filename )) {}
  2798.     virtual bool savePropertyXml(( SimObject  object, string filename )) {}
  2799.     virtual bool loadPropertyXml(( SimObject  object, string filename )) {}
  2800.     /*! @brief Initializes and open the telnet console.
  2801.  
  2802. @param port        Port to listen on for console connections (0 will shut down listening).
  2803. @param consolePass Password for read/write access to console.
  2804. @param listenPass  Password for read access to console.
  2805. @param remoteEcho  [optional] Enable echoing back to the client, off by default.
  2806.  
  2807. @ingroup Debugging */
  2808.     virtual void telnetSetParameters(( int port, string consolePass, string listenPass, bool remoteEcho=false )) {}
  2809.     /*! Open a debug server port on the specified port, requiring the specified password, and optionally waiting for the debug client to connect.
  2810. @internal Primarily used for Torsion and other debugging tools */
  2811.     virtual void dbgSetParameters((int port, string password, bool waitForClient)) {}
  2812.     /*! Returns true if a script debugging client is connected else return false.
  2813. @internal Primarily used for Torsion and other debugging tools */
  2814.     virtual bool dbgIsConnected(()) {}
  2815.     /*! Forcibly disconnects any attached script debugging client.
  2816. @internal Primarily used for Torsion and other debugging tools */
  2817.     virtual void dbgDisconnect(()) {}
  2818.     virtual void AbilityWidgetRun(( bool showMenu )) {}
  2819.     virtual bool ContextMenuClose(()) {}
  2820.     virtual void SelectionHighlight((bool highlight = true)) {}
  2821.     virtual bool isInSelectionHighlightMode(()) {}
  2822.     /*! @brief Enables logging of the connection protocols
  2823.  
  2824. @param enabled True to enable, false to disable
  2825. @ingroup Networking */
  2826.     virtual void DNetSetLogging((bool enabled)) {}
  2827.  
  2828.     /*! @name ResourceManagerFunctions
  2829.    
  2830.     Resource management functions.
  2831.     @{ */
  2832.     /*! */
  2833.     /// @}
  2834.  
  2835.     /*! setGameTimeScale(F32 scale) */
  2836.     virtual void setGameTimeScale() {}
  2837.     /*! getGameTimeScale() */
  2838.     virtual float getGameTimeScale() {}
  2839.     /*! getGameTimeScale() */
  2840.     virtual string getGameTime() {}
  2841.     virtual void Forest_TestFindTree(( int valForestKey )) {}
  2842.     virtual void cmForestAddTreeType(( int forestType, int youngTime, int matureTime, float mediumScale, float majorScale, float matureScale, bool isHardwood )) {}
  2843.     virtual void cmForestAddTreeKindGrowth(( String kind, int objectType, int objectsCount )) {}
  2844.     /*! Populate the font cache for the specified font with characters from the specified string.
  2845. @param faceName The name of the font face.
  2846. @param fontSize The size of the font in pixels.
  2847. @param string The string to populate.
  2848. @ingroup Font
  2849.  */
  2850.     virtual void populateFontCacheString(( string faceName, int fontSize, string string )) {}
  2851.     /*! Populate the font cache for the specified font with Unicode code points in the specified range.
  2852. @param faceName The name of the font face.
  2853. @param fontSize The size of the font in pixels.
  2854. @param rangeStart The start Unicode point.
  2855. @param rangeEnd The end Unicode point.
  2856. @note We only support BMP-0, so code points range from 0 to 65535.
  2857. @ingroup Font
  2858.  */
  2859.     virtual void populateFontCacheRange(( string faceName, int fontSize, int rangeStart, int rangeEnd )) {}
  2860.     /*! Dumps to the console a full description of all cached fonts, along with info on the codepoints each contains.
  2861. @ingroup Font
  2862.  */
  2863.     virtual void dumpFontCacheStatus(()) {}
  2864.     /*! Force all cached fonts to serialize themselves to the cache.
  2865. @ingroup Font
  2866.  */
  2867.     virtual void writeFontCache(()) {}
  2868.     /*! Populate the font cache for all fonts with characters from the specified string.
  2869. @ingroup Font
  2870.  */
  2871.     virtual void populateAllFontCacheString(( string string )) {}
  2872.     /*! Populate the font cache for all fonts with Unicode code points in the specified range.
  2873. @param rangeStart The start Unicode point.
  2874. @param rangeEnd The end Unicode point.
  2875. @note We only support BMP-0, so code points range from 0 to 65535.
  2876. @ingroup Font
  2877.  */
  2878.     virtual void populateAllFontCacheRange(( int rangeStart, int rangeEnd )) {}
  2879.     /*! Export specified font to the specified filename as a PNG. The image can then be processed in Photoshop or another tool and reimported using importCachedFont. Characters in the font are exported as one long strip.
  2880. @param faceName The name of the font face.
  2881. @param fontSize The size of the font in pixels.
  2882. @param fileName The file name and path for the output PNG.
  2883. @param padding The padding between characters.
  2884. @param kerning The kerning between characters.
  2885. @ingroup Font
  2886.  */
  2887.     virtual void exportCachedFont(( string faceName, int fontSize, string fileName, int padding, int kerning )) {}
  2888.     /*! Import an image strip from exportCachedFont. Call with the same parameters you called exportCachedFont.
  2889. @param faceName The name of the font face.
  2890. @param fontSize The size of the font in pixels.
  2891. @param fileName The file name and path for the input PNG.
  2892. @param padding The padding between characters.
  2893. @param kerning The kerning between characters.
  2894. @ingroup Font
  2895.  */
  2896.     virtual void importCachedFont(( string faceName, int fontSize, string fileName, int padding, int kerning )) {}
  2897.     /*! Copy the specified old font to a new name. The new copy will not have a platform font backing it, and so will never have characters added to it. But this is useful for making copies of fonts to add postprocessing effects to via exportCachedFont.
  2898. @param oldFontName The name of the font face to copy.
  2899. @param oldFontSize The size of the font to copy.
  2900. @param newFontName The name of the new font face.
  2901. @ingroup Font
  2902.  */
  2903.     virtual void duplicateCachedFont(( string oldFontName, int oldFontSize, string newFontName )) {}
  2904.     /*! Returns a tab-seperated string of the detected devices across all adapters.
  2905. @ingroup GFX
  2906.  */
  2907.     virtual string getDisplayDeviceList(()) {}
  2908.     /*! Returns a list of the unflagged GFX resources. See flagCurrentGFXResources for usage details.
  2909. @ingroup GFX
  2910. @see flagCurrentGFXResources, clearGFXResourceFlags, describeGFXResources */
  2911.     virtual void listGFXResources(( bool unflaggedOnly=false )) {}
  2912.     /*! @brief Flags all currently allocated GFX resources.
  2913. Used for resource allocation and leak tracking by flagging current resources then dumping a list of unflagged resources at some later point in execution.
  2914. @ingroup GFX
  2915. @see listGFXResources, clearGFXResourceFlags, describeGFXResources */
  2916.     virtual void flagCurrentGFXResources(()) {}
  2917.     /*! Clears the flagged state on all allocated GFX resources. See flagCurrentGFXResources for usage details.
  2918. @ingroup GFX
  2919. @see flagCurrentGFXResources, listGFXResources, describeGFXResources */
  2920.     virtual void clearGFXResourceFlags(()) {}
  2921.     /*! @brief Dumps a description of GFX resources to a file or the console.
  2922. @param resourceTypes A space seperated list of resource types or an empty string for all resources.
  2923. @param filePath A file to dump the list to or an empty string to write to the console.
  2924. @param unflaggedOnly If true only unflagged resources are dumped. See flagCurrentGFXResources.
  2925. @note The resource types can be one or more of the following:
  2926.  
  2927.   - texture
  2928.   - texture target
  2929.   - window target
  2930.   - vertex buffers
  2931.   - primitive buffers
  2932.   - fences
  2933.   - cubemaps
  2934.   - shaders
  2935.   - stateblocks
  2936.  
  2937. @ingroup GFX
  2938.  */
  2939.     virtual void describeGFXResources(( string resourceTypes, string filePath, bool unflaggedOnly=false )) {}
  2940.     /*! Dumps a description of all state blocks.
  2941. @param filePath A file to dump the state blocks to or an empty string to write to the console.
  2942. @ingroup GFX
  2943.  */
  2944.     virtual void describeGFXStateBlocks(( string filePath )) {}
  2945.     /*! Returns the pixel shader version for the active device.
  2946. @ingroup GFX
  2947.  */
  2948.     virtual float getPixelShaderVersion(()) {}
  2949.     /*! @brief Sets the pixel shader version for the active device.
  2950. This can be used to force a lower pixel shader version than is supported by the device for testing or performance optimization.
  2951. @param version The floating point shader version number.
  2952. @note This will only affect shaders/materials created after the call and should be used before the game begins.
  2953. @see $pref::Video::forcedPixVersion
  2954. @ingroup GFX
  2955.  */
  2956.     virtual void setPixelShaderVersion(( float version )) {}
  2957.     /*! Get the string describing the active GFX device.
  2958. @ingroup GFX
  2959.  */
  2960.     virtual string getDisplayDeviceInformation(()) {}
  2961.     /*! Returns the best texture format for storage of HDR data for the active device.
  2962. @ingroup GFX
  2963.  */
  2964.     virtual string getBestHDRFormat(()) {}
  2965.     /*! Get the maximum level of anisotropic filtering supportrf by current GFX device.
  2966. @ingroup GFX
  2967.  */
  2968.     virtual int getMaxAnisotropy(()) {}
  2969.     /*! Returns the width, height, and bitdepth of the screen/desktop.
  2970.  
  2971. @ingroup GFX */
  2972.     virtual string getDesktopResolution(()) {}
  2973.     /*! Adds a global shader macro which will be merged with the script defined macros on every shader.  The macro will replace the value of an existing macro of the same name.  For the new macro to take effect all the shaders in the system need to be reloaded.
  2974. @see resetLightManager, removeGlobalShaderMacro
  2975. @ingroup Rendering
  2976.  */
  2977.     virtual void addGlobalShaderMacro(( string name, string value=NULL )) {}
  2978.     /*! Removes an existing global macro by name.
  2979. @see addGlobalShaderMacro
  2980. @ingroup Rendering
  2981.  */
  2982.     virtual void removeGlobalShaderMacro(( string name )) {}
  2983.     /*! Adds a global HDR shader macro
  2984. @ingroup Rendering
  2985.  */
  2986.     virtual void addHDRShaderMacro(( string name )) {}
  2987.     /*! Removes an existing HDR macro by name.
  2988. @see addHDRShaderMacro
  2989. @ingroup Rendering
  2990.  */
  2991.     virtual void removeHDRShaderMacro(( string name )) {}
  2992.     /*! Releases all textures and resurrects the texture manager.
  2993. @ingroup GFX
  2994.  */
  2995.     virtual void flushTextureCache(()) {}
  2996.     /*! Release the unused pooled textures in texture manager freeing up video memory.
  2997. @ingroup GFX
  2998.  */
  2999.     virtual void cleanupTexturePool(()) {}
  3000.     /*! Reload all the textures from disk.
  3001. @ingroup GFX
  3002.  */
  3003.     virtual void reloadTextures(()) {}
  3004.     /*! Returns a list of texture profiles in the format: ProfileName TextureCount TextureMB
  3005. @ingroup GFX
  3006.  */
  3007.     virtual string getTextureProfileStats(()) {}
  3008.     /*! Takes a screenshot with optional tiling to produce huge screenshots.
  3009. @param file The output image file path.
  3010. @param format Either JPEG or PNG.
  3011. @param tileCount If greater than 1 will tile the current screen size to take a large format screenshot.
  3012. @param tileOverlap The amount of horizontal and vertical overlap between the tiles used to remove tile edge artifacts from post effects.
  3013. @ingroup GFX
  3014.  */
  3015.     virtual void screenShot(( string file, string format, int tileCount=1, float tileOverlap=0 )) {}
  3016.     /*! Returns the count of active DDSs files in memory.
  3017. @ingroup Rendering
  3018.  */
  3019.     virtual int getActiveDDSFiles(()) {}
  3020.     /*! Returns image info in the following format: width TAB height TAB bytesPerPixel. It will return an empty string if the file is not found.
  3021. @ingroup Rendering
  3022.  */
  3023.     virtual string getBitmapInfo(( string filename )) {}
  3024.     /*! Begins a video capture session.
  3025. @see stopVideoCapture
  3026. @ingroup Rendering
  3027.  */
  3028.     virtual void startVideoCapture(( GuiCanvas  canvas, string filename, string encoder="THEORA", float framerate=30.0f, Point2I resolution=Point2I( 0, 0 ) )) {}
  3029.     /*! Stops the video capture session.
  3030. @see startVideoCapture
  3031. @ingroup Rendering
  3032.  */
  3033.     virtual void stopVideoCapture(()) {}
  3034.     /*! Load a journal file and capture it video.
  3035. @ingroup Rendering
  3036.  */
  3037.     virtual void playJournalToVideo(( string journalFile, string videoFile=NULL, string encoder="THEORA", float framerate=30.0f, Point2I resolution=Point2I( 0, 0 ) )) {}
  3038.     virtual void cmHotBarLoadPropertyXml(( string filename )) {}
  3039.     virtual void cmHotBarLoadDataXml(( string filename )) {}
  3040.     virtual void cmHotBarSavePropertyXml(( string filename )) {}
  3041.     virtual void cmHotBarSaveDataXml(( string filename )) {}
  3042.     virtual void HB_Tab1_Slot1(( bool pressed )) {}
  3043.     virtual void HB_Tab1_Slot2(( bool pressed )) {}
  3044.     virtual void HB_Tab1_Slot3(( bool pressed )) {}
  3045.     virtual void HB_Tab1_Slot4(( bool pressed )) {}
  3046.     virtual void HB_Tab1_Slot5(( bool pressed )) {}
  3047.     virtual void HB_Tab1_Slot6(( bool pressed )) {}
  3048.     virtual void HB_Tab1_Slot7(( bool pressed )) {}
  3049.     virtual void HB_Tab1_Slot8(( bool pressed )) {}
  3050.     virtual void HB_Tab1_Slot9(( bool pressed )) {}
  3051.     virtual void HB_Tab1_Slot0(( bool pressed )) {}
  3052.     virtual void HB_Tab2_Slot1(( bool pressed )) {}
  3053.     virtual void HB_Tab2_Slot2(( bool pressed )) {}
  3054.     virtual void HB_Tab2_Slot3(( bool pressed )) {}
  3055.     virtual void HB_Tab2_Slot4(( bool pressed )) {}
  3056.     virtual void HB_Tab2_Slot5(( bool pressed )) {}
  3057.     virtual void HB_Tab2_Slot6(( bool pressed )) {}
  3058.     virtual void HB_Tab2_Slot7(( bool pressed )) {}
  3059.     virtual void HB_Tab2_Slot8(( bool pressed )) {}
  3060.     virtual void HB_Tab2_Slot9(( bool pressed )) {}
  3061.     virtual void HB_Tab2_Slot0(( bool pressed )) {}
  3062.     virtual void HB_Tab3_Slot1(( bool pressed )) {}
  3063.     virtual void HB_Tab3_Slot2(( bool pressed )) {}
  3064.     virtual void HB_Tab3_Slot3(( bool pressed )) {}
  3065.     virtual void HB_Tab3_Slot4(( bool pressed )) {}
  3066.     virtual void HB_Tab3_Slot5(( bool pressed )) {}
  3067.     virtual void HB_Tab3_Slot6(( bool pressed )) {}
  3068.     virtual void HB_Tab3_Slot7(( bool pressed )) {}
  3069.     virtual void HB_Tab3_Slot8(( bool pressed )) {}
  3070.     virtual void HB_Tab3_Slot9(( bool pressed )) {}
  3071.     virtual void HB_Tab3_Slot0(( bool pressed )) {}
  3072.     virtual void HB_Tab4_Slot1(( bool pressed )) {}
  3073.     virtual void HB_Tab4_Slot2(( bool pressed )) {}
  3074.     virtual void HB_Tab4_Slot3(( bool pressed )) {}
  3075.     virtual void HB_Tab4_Slot4(( bool pressed )) {}
  3076.     virtual void HB_Tab4_Slot5(( bool pressed )) {}
  3077.     virtual void HB_Tab4_Slot6(( bool pressed )) {}
  3078.     virtual void HB_Tab4_Slot7(( bool pressed )) {}
  3079.     virtual void HB_Tab4_Slot8(( bool pressed )) {}
  3080.     virtual void HB_Tab4_Slot9(( bool pressed )) {}
  3081.     virtual void HB_Tab4_Slot0(( bool pressed )) {}
  3082.     /*! clearHotBars() */
  3083.     virtual void clearHotBars() {}
  3084.     virtual void showCharWindow(( bool down )) {}
  3085.     /*! closeCharWindow() */
  3086.     virtual bool closeCharWindow() {}
  3087.     virtual void showCharWindowWoman(()) {}
  3088.     virtual string CmGuiChatSelectedWindow(()) {}
  3089.     virtual void activateCmChat(()) {}
  3090.     /*! clearChatWindows() */
  3091.     virtual void clearChatWindows() {}
  3092.     /*! CloseSelectionList() */
  3093.     virtual void CloseSelectionList() {}
  3094.     /*! SelectionListSelect() */
  3095.     virtual void SelectionListSelect() {}
  3096.     virtual void doSlashCommand() {}
  3097.     /*! @brief Strip TorqueML control characters from the specified string, returning a 'clean' version.
  3098.  
  3099. @param inString String to strip TorqueML control characters from.
  3100. @tsexample
  3101. // Define the string to strip TorqueML control characters from
  3102. %string = "<font:Arial:24>How Now <color:c43c12>Brown <color:000000>Cow";
  3103.  
  3104. // Request the stripped version of the string
  3105. %strippedString = StripMLControlChars(%string);
  3106. @endtsexample
  3107.  
  3108. @return Version of the inputted string with all TorqueML characters removed.
  3109.  
  3110. @see References
  3111.  
  3112. @ingroup GuiCore */
  3113.     virtual string StripMLControlChars(( string inString )) {}
  3114.     /*! @brief Used to exclude/prevent all other instances using the same identifier specified
  3115.  
  3116. @note Not used on OSX, Xbox, or in Win debug builds
  3117.  
  3118. @param appIdentifier Name of the app set up for exclusive use.
  3119. @return False if another app is running that specified the same appIdentifier
  3120.  
  3121. @ingroup Platform
  3122. @ingroup GuiCore */
  3123.     virtual bool excludeOtherInstance(( string appIdentifer )) {}
  3124.     /*! setCmFreelookMode(mode) */
  3125.     virtual void setCmFreelookMode() {}
  3126.     /*! setCmEditGuiMode(mode) */
  3127.     virtual void setCmEditGuiMode() {}
  3128.     /*! toggleConsole(press) */
  3129.     virtual void toggleConsole() {}
  3130.     /*! toggleMainMenu(on) */
  3131.     virtual void toggleMainMenu() {}
  3132.     /*! overridePlatformCursor(on) */
  3133.     virtual void overridePlatformCursor() {}
  3134.     /*! CloseAcceptDlg() */
  3135.     virtual void CloseAcceptDlg() {}
  3136.     /*! CheckboxClicked() */
  3137.     virtual void CheckboxClicked() {}
  3138.     /*! AcceptSentence() */
  3139.     virtual void AcceptSentence() {}
  3140.     virtual void updateGmIndication() {}
  3141.     /*! CloseAuthorityContainer() */
  3142.     virtual void CloseAuthorityContainer() {}
  3143.     /*! renameGuild() */
  3144.     virtual void renameGuild() {}
  3145.     virtual void testCombosGui() {}
  3146.     /*! ChangePrivateStatus() */
  3147.     virtual void ChangePrivateStatus() {}
  3148.     virtual void setEscState(( GuiEscStateType newState )) {}
  3149.     virtual void setPrevEscState() {}
  3150.     /*! cmShowExitMessage() */
  3151.     virtual void cmShowExitMessage() {}
  3152.     /*! cmShowMainMenu() */
  3153.     virtual void cmShowMainMenu() {}
  3154.     virtual void askServerPassword(( string text, int maxPasswordLen, int callbackObjId=0, string callbackMethod="" )) {}
  3155.     /*! OpenOptionsPlayers() */
  3156.     virtual void OpenOptionsPlayers() {}
  3157.     /*! CloseOptionsPlayers() */
  3158.     virtual void CloseOptionsPlayers() {}
  3159.     /*! OpenPlayersAccount(uint id) */
  3160.     virtual void OpenPlayersAccount() {}
  3161.     virtual void showSkill(( bool down )) {}
  3162.     /*! closeSkill() */
  3163.     virtual bool closeSkill() {}
  3164.     virtual void OpenWeb() {}
  3165.     virtual void CloseWeb() {}
  3166.     virtual bool isWebOpen() {}
  3167.     /*! @brief Gets the primary LangTable used by the game
  3168.  
  3169. @return ID of the core LangTable
  3170. @ingroup Localization */
  3171.     virtual int getCoreLangTable(()) {}
  3172.     /*! @brief Sets the primary LangTable used by the game
  3173.  
  3174. @param LangTable ID of the core LangTable
  3175. @ingroup Localization */
  3176.     virtual void setCoreLangTable((string LangTable)) {}
  3177.        /*! A callback called by the engine when a light manager is activated.
  3178. @param name The name of the light manager being activated.
  3179. @ingroup Lighting
  3180.  */
  3181.        void onLightManagerActivate( string name );
  3182.  
  3183.        /*! A callback called by the engine when a light manager is deactivated.
  3184. @param name The name of the light manager being deactivated.
  3185. @ingroup Lighting
  3186.  */
  3187.        void onLightManagerDeactivate( string name );
  3188.  
  3189.     /*! Finds and activates the named light manager.
  3190. @return Returns true if the light manager is found and activated.
  3191. @ingroup Lighting
  3192.  */
  3193.     virtual bool setLightManager(( string name )) {}
  3194.     /*! Will generate static lighting for the scene if supported by the active light manager.
  3195.  
  3196. If mode is "forceAlways", the lightmaps will be regenerated regardless of whether lighting cache files can be written to. If mode is "forceWritable", then the lightmaps will be regenerated only if the lighting cache files can be written.
  3197. @param completeCallbackFn The name of the function to execute when the lighting is complete.
  3198. @param mode One of "forceAlways",  "forceWritable" or "loadOnly".
  3199. @return Returns true if the scene lighting process was started.
  3200. @ingroup Lighting
  3201.  */
  3202.     virtual bool lightScene(( string completeCallbackFn=NULL, string mode=NULL )) {}
  3203.     /*! Returns a tab seperated list of light manager names.
  3204. @ingroup Lighting
  3205.  */
  3206.     virtual string getLightManagerNames(()) {}
  3207.     /*! Returns the active light manager name.
  3208. @ingroup Lighting
  3209.  */
  3210.     virtual string getActiveLightManager(()) {}
  3211.     /*! @brief Deactivates and then activates the currently active light manager.This causes most shaders to be regenerated and is often used when global rendering changes have occured.
  3212. @ingroup Lighting
  3213.  */
  3214.     virtual void resetLightManager(()) {}
  3215.     /*! string sShadowSystemName */
  3216.     virtual bool setShadowManager() {}
  3217.     virtual string setShadowVizLight() {}
  3218.     /*! @brief Flushes all the procedural shaders and re-initializes all the active materials instances.
  3219.  
  3220. @ingroup Materials */
  3221.     virtual void reInitMaterials() {}
  3222.     /*! @brief Set up a material to texture mapping.
  3223.  
  3224. @ingroup Materials */
  3225.     virtual void addMaterialMapping((string texName, string matName)) {}
  3226.     /*! @brief Gets the name of the material mapped to this texture.
  3227.  
  3228. param texName Name of the texture
  3229.  
  3230. @ingroup Materials */
  3231.     virtual string getMaterialMapping((string texName)) {}
  3232.     /*! @brief Dumps a formatted list of currently allocated material instances to the console.
  3233.  
  3234. @ingroup Materials */
  3235.     virtual void dumpMaterialInstances() {}
  3236.     /*! Returns the material name via the materialList mapTo entry
  3237.  
  3238. @return String containing the material name
  3239.  
  3240. @ingroup Materials */
  3241.     virtual string getMapEntry() {}
  3242.     /*! Add two vectors.
  3243. @param a The first vector.
  3244. @param b The second vector.
  3245. @return The vector @a a + @a b.
  3246.  
  3247. @tsexample
  3248. //-----------------------------------------------------------------------------
  3249. //
  3250. // VectorAdd( %a, %b );
  3251. //
  3252. // The sum of vector a, (ax, ay, az), and vector b, (bx, by, bz) is:
  3253. //
  3254. //     a + b = ( ax + bx, ay + by, az + bz )
  3255. //
  3256. //-----------------------------------------------------------------------------
  3257. %a = "1 0 0";
  3258. %b = "0 1 0";
  3259.  
  3260. // %r = "( 1 + 0, 0 + 1, 0 + 0 )";
  3261. // %r = "1 1 0";
  3262. %r = VectorAdd( %a, %b );
  3263. @endtsexample
  3264.  
  3265. @ingroup Vectors */
  3266.     virtual string VectorAdd(( VectorF a, VectorF b )) {}
  3267.     /*! Subtract two vectors.
  3268. @param a The first vector.
  3269. @param b The second vector.
  3270. @return The vector @a a - @a b.
  3271.  
  3272. @tsexample
  3273. //-----------------------------------------------------------------------------
  3274. //
  3275. // VectorSub( %a, %b );
  3276. //
  3277. // The difference of vector a, (ax, ay, az), and vector b, (bx, by, bz) is:
  3278. //
  3279. //     a - b = ( ax - bx, ay - by, az - bz )
  3280. //
  3281. //-----------------------------------------------------------------------------
  3282.  
  3283. %a = "1 0 0";
  3284. %b = "0 1 0";
  3285.  
  3286. // %r = "( 1 - 0, 0 - 1, 0 - 0 )";
  3287. // %r = "1 -1 0";
  3288. %r = VectorSub( %a, %b );
  3289. @endtsexample
  3290.  
  3291. @ingroup Vectors */
  3292.     virtual string VectorSub(( VectorF a, VectorF b )) {}
  3293.     /*! Scales a vector by a scalar.
  3294. @param a The vector to scale.
  3295. @param scalar The scale factor.
  3296. @return The vector @a a * @a scalar.
  3297.  
  3298. @tsexample
  3299. //-----------------------------------------------------------------------------
  3300. //
  3301. // VectorScale( %a, %v );
  3302. //
  3303. // Scaling vector a, (ax, ay, az), but the scalar, v, is:
  3304. //
  3305. //     a * v = ( ax * v, ay * v, az * v )
  3306. //
  3307. //-----------------------------------------------------------------------------
  3308.  
  3309. %a = "1 1 0";
  3310. %v = "2";
  3311.  
  3312. // %r = "( 1 * 2, 1 * 2, 0 * 2 )";
  3313. // %r = "2 2 0";
  3314. %r = VectorScale( %a, %v );
  3315. @endtsexample
  3316.  
  3317. @ingroup Vectors */
  3318.     virtual string VectorScale(( VectorF a, float scalar )) {}
  3319.     /*! Brings a vector into its unit form, i.e. such that it has the magnitute 1.
  3320. @param v The vector to normalize.
  3321. @return The vector @a v scaled to length 1.
  3322.  
  3323. @tsexample
  3324. //-----------------------------------------------------------------------------
  3325. //
  3326. // VectorNormalize( %a );
  3327. //
  3328. // The normalized vector a, (ax, ay, az), is:
  3329. //
  3330. //     a^ = a / ||a||
  3331. //        = ( ax / ||a||, ay / ||a||, az / ||a|| )
  3332. //
  3333. //-----------------------------------------------------------------------------
  3334.  
  3335. %a = "1 1 0";
  3336. %l = 1.414;
  3337.  
  3338. // %r = "( 1 / 1.141, 1 / 1.141, 0 / 1.141 )";
  3339. // %r = "0.707 0.707 0";
  3340. %r = VectorNormalize( %a );
  3341. @endtsexample
  3342.  
  3343. @ingroup Vectors */
  3344.     virtual string VectorNormalize(( VectorF v )) {}
  3345.     /*! Compute the dot product of two vectors.
  3346. @param a The first vector.
  3347. @param b The second vector.
  3348. @return The dot product @a a * @a b.
  3349.  
  3350. @tsexample
  3351. //-----------------------------------------------------------------------------
  3352. //
  3353. // VectorDot( %a, %b );
  3354. //
  3355. // The dot product between vector a, (ax, ay, az), and vector b, (bx, by, bz), is:
  3356. //
  3357. //     a . b = ( ax * bx + ay * by + az * bz )
  3358. //
  3359. //-----------------------------------------------------------------------------
  3360.  
  3361. %a = "1 1 0";
  3362. %b = "2 0 1";
  3363.  
  3364. // %r = "( 1 * 2 + 1 * 0 + 0 * 1 )";
  3365. // %r = 2;
  3366. %r = VectorDot( %a, %b );
  3367. @endtsexample
  3368.  
  3369. @ingroup Vectors */
  3370.     virtual float VectorDot(( VectorF a, VectorF b )) {}
  3371.     /*! Calculcate the cross product of two vectors.
  3372. @param a The first vector.
  3373. @param b The second vector.
  3374. @return The cross product @a x @a b.
  3375.  
  3376. @tsexample
  3377. //-----------------------------------------------------------------------------
  3378. //
  3379. // VectorCross( %a, %b );
  3380. //
  3381. // The cross product of vector a, (ax, ay, az), and vector b, (bx, by, bz), is
  3382. //
  3383. //     a x b = ( ( ay * bz ) - ( az * by ), ( az * bx ) - ( ax * bz ), ( ax * by ) - ( ay * bx ) )
  3384. //
  3385. //-----------------------------------------------------------------------------
  3386.  
  3387. %a = "1 1 0";
  3388. %b = "2 0 1";
  3389.  
  3390. // %r = "( ( 1 * 1 ) - ( 0 * 0 ), ( 0 * 2 ) - ( 1 * 1 ), ( 1 * 0 ) - ( 1 * 2 ) )";
  3391. // %r = "1 -1 -2";
  3392. %r = VectorCross( %a, %b );
  3393. @endtsexample
  3394.  
  3395. @ingroup Vectors */
  3396.     virtual string VectorCross(( VectorF a, VectorF b )) {}
  3397.     /*! Compute the distance between two vectors.
  3398. @param a The first vector.
  3399. @param b The second vector.
  3400. @return The length( @a b - @a a ).
  3401.  
  3402. @tsexample
  3403. //-----------------------------------------------------------------------------
  3404. //
  3405. // VectorDist( %a, %b );
  3406. //
  3407. // The distance between vector a, (ax, ay, az), and vector b, (bx, by, bz), is
  3408. //
  3409. //     a -> b = ||( b - a )||
  3410. //            = ||( bx - ax, by - ay, bz - az )||
  3411. //            = mSqrt( ( bx - ax ) * ( bx - ax ) + ( by - ay ) * ( by - ay ) + ( bz - az ) * ( bz - az ) )
  3412. //
  3413. //-----------------------------------------------------------------------------
  3414.  
  3415. %a = "1 1 0";
  3416. %b = "2 0 1";
  3417.  
  3418. // %r = mSqrt( ( 2 - 1 ) * ( 2 - 1) + ( 0 - 1 ) * ( 0 - 1 ) + ( 1 - 0 ) * ( 1 - 0 ) );
  3419. // %r = mSqrt( 3 );
  3420. %r = VectorDist( %a, %b );
  3421. @endtsexample
  3422.  
  3423. @ingroup Vectors */
  3424.     virtual float VectorDist(( VectorF a, VectorF b )) {}
  3425.     /*! Calculate the magnitude of the given vector.
  3426. @param v A vector.
  3427. @return The length of vector @a v.
  3428.  
  3429. @tsexample
  3430. //-----------------------------------------------------------------------------
  3431. //
  3432. // VectorLen( %a );
  3433. //
  3434. // The length or magnitude of  vector a, (ax, ay, az), is:
  3435. //
  3436. //     ||a|| = Sqrt( ax * ax + ay * ay + az * az )
  3437. //
  3438. //-----------------------------------------------------------------------------
  3439.  
  3440. %a = "1 1 0";
  3441.  
  3442. // %r = mSqrt( 1 * 1 + 1 * 1 + 0 * 0 );
  3443. // %r = mSqrt( 2 );
  3444. // %r = 1.414;
  3445. %r = VectorLen( %a );
  3446. @endtsexample
  3447.  
  3448. @ingroup Vectors */
  3449.     virtual float VectorLen(( VectorF v )) {}
  3450.     /*! Create an orthogonal basis from the given vector.
  3451. @param aaf The vector to create the orthogonal basis from.
  3452. @return A matrix representing the orthogonal basis.
  3453. @ingroup Vectors */
  3454.     virtual string VectorOrthoBasis(( AngAxisF aa )) {}
  3455.     /*! Linearly interpolate between two vectors by @a t.
  3456. @param a Vector to start interpolation from.
  3457. @param b Vector to interpolate to.
  3458. @param t Interpolation factor (0-1).  At zero, @a a is returned and at one, @a b is returned.  In between, an interpolated vector between @a a and @a b is returned.
  3459. @return An interpolated vector between @a a and @a b.
  3460.  
  3461. @tsexample
  3462. //-----------------------------------------------------------------------------
  3463. //
  3464. // VectorLerp( %a, %b );
  3465. //
  3466. // The point between vector a, (ax, ay, az), and vector b, (bx, by, bz), which is
  3467. // weighted by the interpolation factor, t, is
  3468. //
  3469. //     r = a + t * ( b - a )
  3470. //       = ( ax + t * ( bx - ax ), ay + t * ( by - ay ), az + t * ( bz - az ) )
  3471. //
  3472. //-----------------------------------------------------------------------------
  3473.  
  3474. %a = "1 1 0";
  3475. %b = "2 0 1";
  3476. %v = "0.25";
  3477.  
  3478. // %r = "( 1 + 0.25 * ( 2 - 1 ), 1 + 0.25 * ( 0 - 1 ), 0 + 0.25 * ( 1 - 0 ) )";
  3479. // %r = "1.25 0.75 0.25";
  3480. %r = VectorLerp( %a, %b );
  3481. @endtsexample
  3482.  
  3483. @ingroup Vectors */
  3484.     virtual string VectorLerp(( VectorF a, VectorF b, float t )) {}
  3485.     /*! Create a transform from the given translation and orientation.
  3486. @param position The translation vector for the transform.
  3487. @param orientation The axis and rotation that orients the transform.
  3488. @return A transform based on the given position and orientation.
  3489. @ingroup Matrices */
  3490.     virtual string MatrixCreate(( VectorF position, AngAxisF orientation )) {}
  3491.     /*! @Create a matrix from the given rotations.
  3492.  
  3493. @param Vector3F X, Y, and Z rotation in *radians*.
  3494. @return A transform based on the given orientation.
  3495. @ingroup Matrices */
  3496.     virtual string MatrixCreateFromEuler(( Point3F angles )) {}
  3497.     /*! @brief Multiply the two matrices.
  3498.  
  3499. @param left First transform.
  3500. @param right Right transform.
  3501. @return Concatenation of the two transforms.
  3502. @ingroup Matrices */
  3503.     virtual string MatrixMultiply(( TransformF left, TransformF right )) {}
  3504.     /*! @brief Multiply the vector by the transform assuming that w=0.
  3505.  
  3506. This function will multiply the given vector by the given transform such that translation will not affect the vector.
  3507.  
  3508. @param transform A transform.
  3509. @param vector A vector.
  3510. @return The transformed vector.
  3511. @ingroup Matrices */
  3512.     virtual string MatrixMulVector(( TransformF transform, VectorF vector )) {}
  3513.     /*! @brief Multiply the given point by the given transform assuming that w=1.
  3514.  
  3515. This function will multiply the given vector such that translation with take effect.
  3516. @param transform A transform.
  3517. @param point A vector.
  3518. @return The transformed vector.
  3519. @ingroup Matrices */
  3520.     virtual string MatrixMulPoint(( TransformF transform, Point3F point )) {}
  3521.  
  3522.     /*! @name MatrixMath
  3523.    
  3524.     Resource management functions.
  3525.     @{ */
  3526.     /*! */
  3527.     /*! Get the center point of an axis-aligned box.
  3528.  
  3529. @param b A Box3F, in string format using "minExtentX minExtentY minExtentZ maxExtentX maxExtentY maxExtentZ"
  3530. @return Center of the box.
  3531. @ingroup Math */
  3532.     virtual string getBoxCenter(( Box3F box )) {}
  3533.     /*! Set the current seed for the random number generator.
  3534. Based on this seed, a repeatable sequence of numbers will be produced by getRandom().
  3535. @param seed The seed with which to initialize the randon number generator with.  The same seed will always leed tothe same sequence of pseudo-random numbers.
  3536. If -1, the current timestamp will be used as the seed which is a good basis for randomization.
  3537. @ingroup Random */
  3538.     virtual void setRandomSeed(( int seed=-1 )) {}
  3539.     /*! Get the current seed used by the random number generator.
  3540. @return The current random number generator seed value.
  3541. @ingroup Random */
  3542.     virtual int getRandomSeed(()) {}
  3543.     /*! Get a random number between @a a and @a b.
  3544. @param a Lower bound on the random number.  The random number will be >= @a a.
  3545. @param b Upper bound on the random number.  The random number will be <= @a b.
  3546. @return A pseudo-random number between @a a and @a b.
  3547. @see setRandomSeed
  3548. @ingroup Random */
  3549.     virtual float getRandom(( int a=1, int b=0 )) {}
  3550.     /*! Solve a quadratic equation (2nd degree polynomial) of form a*x^2 + b*x + c = 0.
  3551. @param a First Coefficient.@param b Second Coefficient.@param c Third Coefficient.@returns A triple, containing: (sol x0 x1). (sol) is the number of solutions(being 0, 1, or 2), and (x0) and (x1) are the solutions, if any.@ingroup Math */
  3552.     virtual string mSolveQuadratic(( float a, float b, float c )) {}
  3553.     /*! Solve a cubic equation (3rd degree polynomial) of form a*x^3 + b*x^2 + c*x + d = 0.
  3554. @param a First Coefficient.@param b Second Coefficient.@param c Third Coefficient.@param d Fourth Coefficient.@returns A 4-tuple, containing: (sol x0 x1 x2). (sol) is the number of solutions(being 0, 1, 2 or 3), and (x0), (x1) and (x2) are the solutions, if any.@ingroup Math */
  3555.     virtual string mSolveCubic(( float a, float b, float c, float d )) {}
  3556.     /*! Solve a quartic equation (4th degree polynomial) of form a*x^4 + b*x^3 + c*x^2 + d*x + e = 0.
  3557. @param a First Coefficient.@param b Second Coefficient.@param c Third Coefficient.@param d Fourth Coefficient.@param e Fifth Coefficient.@returns A 5-tuple, containing: (sol x0 x1 x2 c3). (sol) is the number of solutions(being 0, 1, 2, 3 or 4), and (x0), (x1), (x2) and (x3) are the solutions, if any.@ingroup Math */
  3558.     virtual string mSolveQuartic(( float a, float b, float c, float d, float e )) {}
  3559.     /*! Round v down to the nearest integer.
  3560. @param v Number to convert to integer.@returns Number converted to integer.@ingroup Math */
  3561.     virtual int mFloor(( float v )) {}
  3562.     /*! Round v to the nearest integer.
  3563. @param v Number to convert to integer.@returns Number converted to integer.@ingroup Math */
  3564.     virtual int mRound(( float v )) {}
  3565.     /*! Round v up to the nearest integer.
  3566. @param v Number to convert to integer.@returns Number converted to integer.@ingroup Math */
  3567.     virtual int mCeil(( float v )) {}
  3568.     /*! Formats the specified number to the given number of decimal places.
  3569. @param v Number to format.@param precision Number of decimal places to format to (1-9).@returns Number formatted to the specified number of decimal places.@ingroup Math */
  3570.     virtual string mFloatLength(( float v, int precision )) {}
  3571.     /*! Calculate absolute value of specified value.
  3572. @param v Input Value.@returns Absolute value of specified value.@ingroup Math */
  3573.     virtual float mAbs(( float v )) {}
  3574.     /*! Calculate the remainder of v/d.
  3575. @param v Input Value.@param d Divisor Value.@returns The remainder of v/d.@ingroup Math */
  3576.     virtual float mFMod(( float v, float d )) {}
  3577.     /*! Calculate the square-root of v.
  3578. @param v Input Value.@returns The square-root of the input value.@ingroup Math */
  3579.     virtual float mSqrt(( float v )) {}
  3580.     /*! Calculate b raised to the p-th power.
  3581. @param v Input Value.@param p Power to raise value by.@returns v raised to the p-th power.@ingroup Math */
  3582.     virtual float mPow(( float v, float p )) {}
  3583.     /*! Calculate the natural logarithm of v.
  3584. @param v Input Value.@returns The natural logarithm of the input value.@ingroup Math */
  3585.     virtual float mLog(( float v )) {}
  3586.     /*! Calculate the sine of v.
  3587. @param v Input Value (in radians).@returns The sine of the input value.@ingroup Math */
  3588.     virtual float mSin(( float v )) {}
  3589.     /*! Calculate the cosine of v.
  3590. @param v Input Value (in radians).@returns The cosine of the input value.@ingroup Math */
  3591.     virtual float mCos(( float v )) {}
  3592.     /*! Calculate the tangent of v.
  3593. @param v Input Value (in radians).@returns The tangent of the input value.@ingroup Math */
  3594.     virtual float mTan(( float v )) {}
  3595.     /*! Calculate the arc-sine of v.
  3596. @param v Input Value (in radians).@returns The arc-sine of the input value.@ingroup Math */
  3597.     virtual float mAsin(( float v )) {}
  3598.     /*! Calculate the arc-cosine of v.
  3599. @param v Input Value (in radians).@returns The arc-cosine of the input value.@ingroup Math */
  3600.     virtual float mAcos(( float v )) {}
  3601.     /*! Calculate the arc-tangent (slope) of a line defined by rise and run.
  3602. @param rise of line.@param run of line.@returns The arc-tangent (slope) of a line defined by rise and run.@ingroup Math */
  3603.     virtual float mAtan(( float rise, float run )) {}
  3604.     /*! Convert specified radians into degrees.
  3605. @param radians Input Value (in radians).@returns The specified radians value converted to degrees.@ingroup Math */
  3606.     virtual float mRadToDeg(( float radians )) {}
  3607.     /*! Convert specified degrees into radians.
  3608. @param degrees Input Value (in degrees).@returns The specified degrees value converted to radians.@ingroup Math */
  3609.     virtual float mDegToRad(( float degrees )) {}
  3610.     /*! Clamp the specified value between two bounds.
  3611. @param v Input value.@param min Minimum Bound.@param max Maximum Bound.@returns The specified value clamped to the specified bounds.@ingroup Math */
  3612.     virtual float mClamp(( float v, float min, float max )) {}
  3613.     /*! Clamp the specified value between 0 and 1 (inclusive).
  3614. @param v Input value.@returns The specified value clamped between 0 and 1 (inclusive).@ingroup Math */
  3615.     virtual float mSaturate(( float v )) {}
  3616.     /*! Calculate the greater of two specified numbers.
  3617. @param v1 Input value.@param v2 Input value.@returns The greater value of the two specified values.@ingroup Math */
  3618.     virtual float getMax(( float v1, float v2 )) {}
  3619.     /*! Calculate the lesser of two specified numbers.
  3620. @param v1 Input value.@param v2 Input value.@returns The lesser value of the two specified values.@ingroup Math */
  3621.     virtual float getMin(( float v1, float v2 )) {}
  3622.     /*! Calculate linearly interpolated value between two specified numbers using specified normalized time.
  3623. @param v1 Interpolate From Input value.@param v2 Interpolate To Input value.@param time Normalized time used to interpolate values (0-1).@returns The interpolated value between the two specified values at normalized time t.@ingroup Math */
  3624.     virtual float mLerp(( float v1, float v2, float time )) {}
  3625.     /*! Return the value of PI (half-circle in radians).
  3626. @returns The value of PI.@ingroup Math */
  3627.     virtual float mPi(()) {}
  3628.     /*! Return the value of 2*PI (full-circle in radians).
  3629. @returns The value of 2*PI.@ingroup Math */
  3630.     virtual float m2Pi(()) {}
  3631.     /*! Returns whether the value is an exact power of two.
  3632. @param v Input value.@returns Whether the specified value is an exact power of two.@ingroup Math */
  3633.     virtual bool mIsPow2(( int v )) {}
  3634.     /*! initialize CmObjEffectTemplates */
  3635.     virtual void CmObjEffectsInit(()) {}
  3636.     virtual string getTerFilePath(( int terID, string basePath=nullptr )) {}
  3637.     virtual string getTer2FilePath_Server_Index(( int terID, string basePath=nullptr )) {}
  3638.     virtual string getTer2FilePath_Server_Data(( int terID, string basePath=nullptr )) {}
  3639.     virtual string getTer2FilePath_Client_Index(( int terID, string basePath=nullptr )) {}
  3640.     virtual string getTer2FilePath_Client_Data(( int terID, string basePath=nullptr )) {}
  3641.     virtual string getServerUuid() {}
  3642.     virtual bool initPatchConnection(( TCPConnection tcp )) {}
  3643.     virtual void stopPatchConnection(( bool cleanupFileCache=true )) {}
  3644.     /*! restartInstance() */
  3645.     virtual void restartInstance() {}
  3646.     virtual int getCurrentProcessId() {}
  3647.     virtual string getComputerName() {}
  3648.     virtual int sysinfoGetWindowsVersionMajor() {}
  3649.     virtual int sysinfoGetWindowsVersionMinor() {}
  3650.     virtual string sysinfoGetTotalVirtualMemory() {}
  3651.     virtual string sysinfoGetUsedVirtualMemory() {}
  3652.     virtual string sysinfoGetFreeVirtualMemory() {}
  3653.     virtual string sysinfoGetOwnVirtualMemoryUsage() {}
  3654.     virtual string sysinfoGetTotalPhysicalMemory() {}
  3655.     virtual string sysinfoGetUsedPhysicalMemory() {}
  3656.     virtual string sysinfoGetFreePhysicalMemory() {}
  3657.     virtual string sysinfoGetOwnMemoryUsage() {}
  3658.     virtual string sysinfoGetCPUUsage() {}
  3659.     virtual string sysinfoGetOwnCPUUsage() {}
  3660.     /*! @brief Returns the OS temporary directory, "C:/Users/Mich/AppData/Local/Temp" for example
  3661.  
  3662. @note This can be useful to adhering to OS standards and practices, but not really used in Torque 3D right now.
  3663. @note Be very careful when getting into OS level File I/O.@return String containing path to OS temp directory
  3664. @note This is legacy function brought over from TGB, and does not appear to have much use. Possibly deprecate?
  3665. @ingroup FileSystem
  3666. @internal */
  3667.     virtual string getTemporaryDirectory(()) {}
  3668.     /*! @brief Creates a name and extension for a potential temporary file
  3669.  
  3670. This does not create the actual file. It simply creates a random name for a file that does not exist.
  3671.  
  3672. @note This is legacy function brought over from TGB, and does not appear to have much use. Possibly deprecate?
  3673. @ingroup FileSystem
  3674. @internal */
  3675.     virtual string getTemporaryFileName(()) {}
  3676.     /*! getUserDataDirectory() */
  3677.     virtual string getUserDataDirectory() {}
  3678.     /*! getUserHomeDirectory() */
  3679.     virtual string getUserHomeDirectory() {}
  3680.     /// @}
  3681.  
  3682.     /*! @brief Dumps some useful statistics regarding free memory.
  3683.  
  3684. Dumps an analysis of 'free chunks' of memory. Does not print how much memory is free.
  3685.  
  3686. @ingroup Debugging */
  3687.     virtual void freeMemoryDump(()) {}
  3688.  
  3689.     /*! @name Memory
  3690.    
  3691.     Memory manager utility functions.
  3692.     @{ */
  3693.     /*! */
  3694.     virtual string getIPLocal() {}
  3695.     /// @}
  3696.  
  3697.     /*! @brief Deprecated
  3698.  
  3699. @internal */
  3700.     virtual bool redbookOpen((string device=NULL)) {}
  3701.     /*! Close the current Redbook device.@brief Deprecated
  3702.  
  3703. @internal */
  3704.     virtual bool redbookClose() {}
  3705.     /*! Play the selected track.@brief Deprecated
  3706.  
  3707. @internal */
  3708.     virtual bool redbookPlay((int track)) {}
  3709.     /*! Stop playing.@brief Deprecated
  3710.  
  3711. @internal */
  3712.     virtual bool redbookStop() {}
  3713.     /*! Return the number of tracks.@brief Deprecated
  3714.  
  3715. @internal */
  3716.     virtual int redbookGetTrackCount() {}
  3717.     /*! Get the volume.@brief Deprecated
  3718.  
  3719. @internal */
  3720.     virtual float redbookGetVolume() {}
  3721.     /*! Set playback volume.@brief Deprecated
  3722.  
  3723. @internal */
  3724.     virtual bool redbookSetVolume((float volume)) {}
  3725.     /*! get the number of redbook devices.@brief Deprecated
  3726.  
  3727. @internal */
  3728.     virtual int redbookGetDeviceCount() {}
  3729.     /*! Get name of specified Redbook device.@brief Deprecated
  3730.  
  3731. @internal */
  3732.     virtual string redbookGetDeviceName((int index)) {}
  3733.     /*! Get a string explaining the last redbook error.@brief Deprecated
  3734.  
  3735. @internal */
  3736.     virtual string redbookGetLastError() {}
  3737.  
  3738.     /*! @name Redbook
  3739.    
  3740.     Control functions for Redbook audio (ie, CD audio).
  3741.     @{ */
  3742.     /*! */
  3743.     /*! startPrecisionTimer() - Create and start a high resolution platform timer. Returns the timer id. */
  3744.     virtual int startPrecisionTimer() {}
  3745.     /*! stopPrecisionTimer( S32 id ) - Stop and destroy timer with the passed id.  Returns the elapsed milliseconds. */
  3746.     virtual int stopPrecisionTimer() {}
  3747.     /*! Display a modal message box using the platform's native message box implementation.
  3748.  
  3749. @param title The title to display on the message box window.
  3750. @param message The text message to display in the box.
  3751. @param buttons Which buttons to put on the message box.
  3752. @param icons Which icon to show next to the message.
  3753. @return One of $MROK, $MRCancel, $MRRetry, and $MRDontSave identifying the button that the user pressed.
  3754. @tsexample
  3755. messageBox( "Error", "" );
  3756. @endtsexample
  3757.  
  3758. @ingroup Platform */
  3759.     virtual int messageBox(( string title, string message, MBButtons buttons=MBOkCancel, MBIcons icons=MIInformation )) {}
  3760.     /*! @brief Initializes variables that track device and vendor information/IDs
  3761.  
  3762. @ingroup Rendering */
  3763.     virtual void initDisplayDeviceInfo(()) {}
  3764.     /*! enableWinConsole(bool); */
  3765.     virtual void enableWinConsole() {}
  3766.     virtual string getWindowsVersionName() {}
  3767.     virtual string getWindowsVersionNum() {}
  3768.     virtual string getExperienceRating() {}
  3769.     virtual int getRAMavail() {}
  3770.     virtual int getRAMtotal() {}
  3771.     /*! @brief Enables use of the joystick.
  3772.  
  3773. @note DirectInput must be enabled and active to use this function.
  3774.  
  3775. @ingroup Input */
  3776.     virtual bool enableJoystick(()) {}
  3777.     /*! @brief Disables use of the joystick.
  3778.  
  3779. @note DirectInput must be enabled and active to use this function.
  3780.  
  3781. @ingroup Input */
  3782.     virtual void disableJoystick(()) {}
  3783.     /*! @brief Queries input manager to see if a joystick is enabled
  3784.  
  3785. @return 1 if a joystick exists and is enabled, 0 if it's not.
  3786. @ingroup Input */
  3787.     virtual bool isJoystickEnabled(()) {}
  3788.     /*! @brief Enables XInput for Xbox 360 controllers.
  3789.  
  3790. @note XInput is enabled by default. Disable to use an Xbox 360 Controller as a joystick device.
  3791.  
  3792. @ingroup Input */
  3793.     virtual bool enableXInput(()) {}
  3794.     /*! @brief Disables XInput for Xbox 360 controllers.
  3795.  
  3796. @ingroup Input */
  3797.     virtual void disableXInput(()) {}
  3798.     /*! @brief Rebuilds the XInput section of the InputManager
  3799.  
  3800. Requests a full refresh of events for all controllers. Useful when called at the beginning of game code after actionMaps are set up to hook up all appropriate events.
  3801.  
  3802. @ingroup Input */
  3803.     virtual void resetXInput(()) {}
  3804.     /*! @brief Checks to see if an Xbox 360 controller is connected
  3805.  
  3806. @param controllerID Zero-based index of the controller to check.
  3807. @return 1 if the controller is connected, 0 if it isn't, and 205 if XInput hasn't been initialized.@ingroup Input */
  3808.     virtual bool isXInputConnected(( int controllerID )) {}
  3809.     /*! @brief Queries the current state of a connected Xbox 360 controller.
  3810.  
  3811. XInput Properties:
  3812.  
  3813.  - XI_THUMBLX, XI_THUMBLY - X and Y axes of the left thumbstick.
  3814.  - XI_THUMBRX, XI_THUMBRY - X and Y axes of the right thumbstick.
  3815.  - XI_LEFT_TRIGGER, XI_RIGHT_TRIGGER - Left and Right triggers.
  3816.  - SI_UPOV, SI_DPOV, SI_LPOV, SI_RPOV - Up, Down, Left, and Right on the directional pad.
  3817.  - XI_START, XI_BACK - The Start and Back buttons.
  3818.  - XI_LEFT_THUMB, XI_RIGHT_THUMB - Clicking in the left and right thumbstick.
  3819.  - XI_LEFT_SHOULDER, XI_RIGHT_SHOULDER - Left and Right bumpers.
  3820.  - XI_A, XI_B , XI_X, XI_Y - The A, B, X, and Y buttons.
  3821.  
  3822. @param controllerID Zero-based index of the controller to return information about.
  3823. @param property Name of input action being queried, such as "XI_THUMBLX".
  3824. @param current True checks current device in action.
  3825. @return Button queried - 1 if the button is pressed, 0 if it's not.
  3826. @return Thumbstick queried - Int representing displacement from rest position.@return %Trigger queried - Int from 0 to 255 representing how far the trigger is displaced.@ingroup Input */
  3827.     virtual int getXInputState(( int controllerID, string property, bool current )) {}
  3828.     /*! @brief Prints information to the console stating if DirectInput and a Joystick are enabled and active.
  3829.  
  3830. @ingroup Input */
  3831.     virtual void echoInputState(()) {}
  3832.     /*! @brief Activates the vibration motors in the specified controller.
  3833.  
  3834. The controller will constantly at it's xRumble and yRumble intensities until changed or told to stop.Valid inputs for xRumble/yRumble are [0 - 1].
  3835. @param device Name of the device to rumble.
  3836. @param xRumble Intensity to apply to the left motor.
  3837. @param yRumble Intensity to apply to the right motor.
  3838. @note in an Xbox 360 controller, the left motor is low-frequency, while the right motor is high-frequency.@ingroup Input */
  3839.     virtual void rumble((string device, float xRumble, float yRumble)) {}
  3840.     /*! @brief Launches an outside executable or batch file
  3841.  
  3842. @param executable Name of the executable or batch file
  3843. @param args Optional list of arguments, in string format, to pass to the executable
  3844. @param directory Optional string containing path to output or shell
  3845. @ingroup Platform */
  3846.     virtual bool shellExecute((string executable, string args, string directory)) {}
  3847.     /*! isJoystickDetected() */
  3848.     virtual bool isJoystickDetected() {}
  3849.     /*! getJoystickAxes( instance ) */
  3850.     virtual string getJoystickAxes() {}
  3851.     /*! @brief Install the math library with specified extensions.
  3852.  
  3853. Possible parameters are:
  3854.  
  3855.     - 'DETECT' Autodetect math lib settings.
  3856.  
  3857.     - 'C' Enable the C math routines. C routines are always enabled.
  3858.  
  3859.     - 'FPU' Enable floating point unit routines.
  3860.  
  3861.     - 'MMX' Enable MMX math routines.
  3862.  
  3863.     - '3DNOW' Enable 3dNow! math routines.
  3864.  
  3865.     - 'SSE' Enable SSE math routines.
  3866.  
  3867. @ingroup Math */
  3868.     virtual void mathInit(( ... )) {}
  3869.     virtual void crtEnableDebug() {}
  3870.     virtual void crtCheckMemory() {}
  3871.     /*! isKoreanBuild() */
  3872.     virtual bool isKoreanBuild() {}
  3873.     /*! dumpMutexList() */
  3874.     virtual void dumpMutexList(()) {}
  3875.     /*! test mutex lock time */
  3876.     virtual void testMutexLockTime(( int nCount )) {}
  3877.     /*! Creates a 64x64 normal map texture filled with noise. The texture is saved to randNormTex.png in the location of the game executable.
  3878.  
  3879. @ingroup GFX */
  3880.     virtual void dumpRandomNormalMap(()) {}
  3881.     /*! Set the reflection texture format.
  3882. @ingroup GFX
  3883.  */
  3884.     virtual void setReflectFormat(( GFXFormat format )) {}
  3885.     /// @}
  3886.  
  3887.     /*! @brief See if any objects of the given types are present in box of given extent.
  3888.  
  3889. @note Extent parameter is last since only one radius is often needed.  If one radius is provided, the yRadius and zRadius are assumed to be the same.  Unfortunately, if you need to use the client container, you'll need to set all of the radius parameters.  Fortunately, this function is mostly used on the server.
  3890. @param  mask   Indicates the type of objects we are checking against.
  3891. @param  center Center of box.
  3892. @param  xRadius Search radius in the x-axis. See note above.
  3893. @param  yRadius Search radius in the y-axis. See note above.
  3894. @param  zRadius Search radius in the z-axis. See note above.
  3895. @param useClientContainer Optionally indicates the search should be within the client container.
  3896. @return true if the box is empty, false if any object is found.
  3897. @ingroup Game */
  3898.     virtual bool containerBoxEmpty(( int mask, Point3F center, float xRadius, float yRadius=-1, float zRadius=-1, bool useClientContainer=false )) {}
  3899.     /*! @brief Start a search for items at the given position and within the given radius, filtering by mask.
  3900.  
  3901. @param pos Center position for the search
  3902. @param radius Search radius
  3903. @param mask Bitmask of object types to include in the search
  3904. @param useClientContainer Optionally indicates the search should be within the client container.
  3905. @see containerSearchNext
  3906. @ingroup Game */
  3907.     virtual void initContainerRadiusSearch(( Point3F pos, float radius, int mask, bool useClientContainer=false )) {}
  3908.     /*! @brief Start a search for all items of the types specified by the bitset mask.
  3909.  
  3910. @param mask Bitmask of object types to include in the search
  3911. @param useClientContainer Optionally indicates the search should be within the client container.
  3912. @see containerSearchNext
  3913. @ingroup Game */
  3914.     virtual void initContainerTypeSearch(( int mask, bool useClientContainer=false )) {}
  3915.     /*! @brief Get next item from a search started with initContainerRadiusSearch() or initContainerTypeSearch().
  3916.  
  3917. @param useClientContainer Optionally indicates the search should be within the client container.
  3918. @return the next object found in the search, or null if no more
  3919. @tsexample
  3920. // print the names of all nearby ShapeBase derived objects
  3921. %position = %obj.getPosition;
  3922. %radius = 20;
  3923. %mask = $TypeMasks::ShapeBaseObjectType;
  3924. initContainerRadiusSearch( %position, %radius, %mask );
  3925. while ( (%targetObject = containerSearchNext()) != 0 )
  3926. {
  3927.    echo( "Found: " @ %targetObject.getName() );
  3928. }
  3929. @endtsexample
  3930. @see initContainerRadiusSearch()
  3931. @see initContainerTypeSearch()
  3932. @ingroup Game */
  3933.     virtual string containerSearchNext(( bool useClientContainer=false )) {}
  3934.     /*! @brief Get distance of the center of the current item from the center of the current initContainerRadiusSearch.
  3935.  
  3936. @param useClientContainer Optionally indicates the search should be within the client container.
  3937. @return distance from the center of the current object to the center of the search
  3938. @see containerSearchNext
  3939. @ingroup Game */
  3940.     virtual float containerSearchCurrDist(( bool useClientContainer=false )) {}
  3941.     /*! @brief Get the distance of the closest point of the current item from the center of the current initContainerRadiusSearch.
  3942.  
  3943. @param useClientContainer Optionally indicates the search should be within the client container.
  3944. @return distance from the closest point of the current object to the center of the search
  3945. @see containerSearchNext
  3946. @ingroup Game */
  3947.     virtual float containerSearchCurrRadiusDist(( bool useClientContainer=false )) {}
  3948.     virtual void listObjects(()) {}
  3949.     /*! @brief Cast a ray from start to end, checking for collision against items matching mask.
  3950.  
  3951. If pExempt is specified, then it is temporarily excluded from collision checks (For instance, you might want to exclude the player if said player was firing a weapon.)
  3952. @param start An XYZ vector containing the tail position of the ray.
  3953. @param end An XYZ vector containing the head position of the ray
  3954. @param mask A bitmask corresponding to the type of objects to check for
  3955. @param pExempt An optional ID for a single object that ignored for this raycast
  3956. @param useClientContainer Optionally indicates the search should be within the client container.
  3957. @returns A string containing either null, if nothing was struck, or these fields:
  3958. <ul><li>The ID of the object that was struck.</li><li>The x, y, z position that it was struck.</li><li>The x, y, z of the normal of the face that was struck.</li></ul>@ingroup Game */
  3959.     virtual string containerRayCast(( Point3F start, Point3F end, int mask, SceneObject  pExempt=NULL, bool useClientContainer=false )) {}
  3960.  
  3961.     /*! @name Containers
  3962.    
  3963.     Functions for ray casting and spatial queries.
  3964.  
  3965.  
  3966.     @{ */
  3967.     /*! */
  3968.     virtual void DbgSetVisibleDistance(( float dist=500 )) {}
  3969.     virtual int getCentralTerrain(()) {}
  3970.     virtual int getServerCentralTerrain(()) {}
  3971.     virtual void shiftWorld(( Point2F offset )) {}
  3972.     /*! Return a newline-separated list of all active states.
  3973. @return A list of the form
  3974. @verbatim
  3975. stateName1 NL stateName2 NL stateName3 ...
  3976. @endverbatim
  3977. where each element is the name of an active state object.
  3978.  
  3979. @tsexample
  3980. // Disable all active states.
  3981. foreach$( %state in sfxGetActiveStates() )
  3982.    %state.disable();
  3983. @endtsexample
  3984.  
  3985. @ingroup SFX */
  3986.     virtual string sfxGetActiveStates(()) {}
  3987.     /*! Get a list of all available sound devices.
  3988. The return value will be a newline-separated list of entries where each line describes one available sound device.  Each such line will have the following format:@verbatim
  3989. provider TAB device TAB hasHardware TAB numMaxBuffers
  3990. @endverbatim
  3991. - provider: The name of the device provider (e.g. "FMOD").
  3992. - device: The name of the device as returned by the device layer.
  3993. - hasHardware: Whether the device supports hardware mixing or not.
  3994. - numMaxBuffers: The maximum number of concurrent voices supported by the device's mixer.  If this limit limit is exceeded, i.e. if there are more active sounds playing at any one time, then voice virtualization will start culling voices and put them into virtualized playback mode.  Voice virtualization may or may not be provided by the device itself; if not provided by the device, it will be provided by Torque's sound system.
  3995.  
  3996. @return A newline-separated list of information about all available sound devices.
  3997. @see sfxCreateDevice
  3998. @see sfxGetDeviceInfo
  3999.  
  4000. @see $SFX::DEVICE_INFO_PROVIDER
  4001.  
  4002. @see $SFX::DEVICE_INFO_NAME
  4003.  
  4004. @see $SFX::DEVICE_INFO_USEHARDWARE
  4005.  
  4006. @see $SFX::DEVICE_INFO_MAXBUFFERS
  4007.  
  4008. @ref SFX_devices
  4009. @ingroup SFX */
  4010.     virtual string sfxGetAvailableDevices(()) {}
  4011.     /*! Try to create a new sound device using the given properties.
  4012. If a sound device is currently initialized, it will be uninitialized first.  However, be aware that in this case, if this function fails, it will not restore the previously active device but rather leave the sound system in an uninitialized state.
  4013.  
  4014. Sounds that are already playing while the new device is created will be temporarily transitioned to virtualized playback and then resume normal playback once the device has been created.
  4015.  
  4016. In the core scripts, sound is automatically set up during startup in the sfxStartup() function.
  4017.  
  4018. @param provider The name of the device provider as returned by sfxGetAvailableDevices().
  4019. @param device The name of the device as returned by sfxGetAvailableDevices().
  4020. @param useHardware Whether to enabled hardware mixing on the device or not.  Only relevant if supported by the given device.
  4021. @param maxBuffers The maximum number of concurrent voices for this device to use or -1 for the device to pick its own reasonable default.@return True if the initialization was successful, false if not.
  4022. @note This function must be called before any of the sound playback functions can be used.
  4023. @see sfxGetAvailableDevices
  4024. @see sfxGetDeviceInfo
  4025. @see sfxDeleteDevice
  4026.  
  4027. @ref SFX_devices
  4028. @ingroup SFX */
  4029.     virtual bool sfxCreateDevice(( string provider, string device, bool useHardware, int maxBuffers )) {}
  4030.     /*! Delete the currently active sound device and release all its resources.
  4031. SFXSources that are still playing will be transitioned to virtualized playback mode. When creating a new device, they will automatically transition back to normal playback.
  4032.  
  4033. In the core scripts, this is done automatically for you during shutdown in the sfxShutdown() function.
  4034.  
  4035. @see sfxCreateDevice
  4036.  
  4037. @ref SFX_devices
  4038. @ingroup SFX */
  4039.     virtual void sfxDeleteDevice(()) {}
  4040.     /*! Return information about the currently active sound device.
  4041. The return value is a tab-delimited string of the following format:
  4042. @verbatim
  4043. provider TAB device TAB hasHardware TAB numMaxBuffers TAB caps
  4044. @endverbatim
  4045. - provider: The name of the device provider (e.g. "FMOD").
  4046. - device: The name of the device as returned by the device layer.
  4047. - hasHardware: Whether the device supports hardware mixing or not.
  4048. - numMaxBuffers: The maximum number of concurrent voices supported by the device's mixer.  If this limit limit is exceeded, i.e. if there are more active sounds playing at any one time, then voice virtualization will start culling voices and put them into virtualized playback mode.  Voice virtualization may or may not be provided by the device itself; if not provided by the device, it will be provided by Torque's sound system.
  4049. - caps: A bitfield of capability flags.
  4050.  
  4051. @return A tab-separated list of properties of the currently active sound device or the empty string if no sound device has been initialized.
  4052. @see sfxCreateDevice
  4053. @see sfxGetAvailableDevices
  4054.  
  4055. @see $SFX::DEVICE_INFO_PROVIDER
  4056.  
  4057. @see $SFX::DEVICE_INFO_NAME
  4058.  
  4059. @see $SFX::DEVICE_INFO_USEHARDWARE
  4060.  
  4061. @see $SFX::DEVICE_INFO_MAXBUFFERS
  4062.  
  4063. @see $SFX::DEVICE_INFO_CAPS
  4064.  
  4065. @see $SFX::DEVICE_CAPS_REVERB
  4066.  
  4067. @see $SFX::DEVICE_CAPS_VOICEMANAGEMENT
  4068.  
  4069. @see $SFX::DEVICE_CAPS_OCCLUSION
  4070.  
  4071. @see $SFX::DEVICE_CAPS_DSPEFFECTS
  4072.  
  4073. @see $SFX::DEVICE_CAPS_MULTILISTENER
  4074.  
  4075. @see $SFX::DEVICE_CAPS_FMODDESIGNER
  4076.  
  4077. @ref SFX_devices
  4078. @ingroup SFX */
  4079.     virtual string sfxGetDeviceInfo(()) {}
  4080.     /*! Creates a new paused sound source using a profile or a description and filename.  The return value is the source which must be released by delete().
  4081. @hide */
  4082.     virtual int sfxCreateSource(( SFXTrack track | ( SFXDescription description, string filename ) [, float x, float y, float z ] )) {}
  4083.     /*! Start playing the given source or create a new source for the given track and play it.
  4084. @hide */
  4085.     virtual int sfxPlay(( SFXSource source | ( SFXTrack track [, float x, float y, float z ] ) )) {}
  4086.     /*! SFXSource sfxPlayOnce( ( SFXTrack track | SFXDescription description, string filename ) [, float x, float y, float z, float fadeInTime=-1 ] ) Create a new play-once source for the given profile or description+filename and start playback of the source.
  4087. @hide */
  4088.     virtual int sfxPlayOnce() {}
  4089.     /*! Stop playback of the given @a source.
  4090. This is equivalent to calling SFXSource::stop().
  4091.  
  4092. @param source The source to put into stopped state.
  4093.  
  4094. @ingroup SFX */
  4095.     virtual void sfxStop(( SFXSource source )) {}
  4096.     /*! Stop playback of the given @a source (if it is not already stopped) and delete the @a source.
  4097.  
  4098. The advantage of this function over directly calling delete() is that it will correctly handle volume fades that may be configured on the source.  Whereas calling delete() would immediately stop playback and delete the source, this functionality will wait for the fade-out to play and only then stop the source and delete it.
  4099.  
  4100. @param source A sound source.
  4101.  
  4102. @ref SFXSource_fades
  4103.  
  4104. @ingroup SFX */
  4105.     virtual void sfxStopAndDelete(( SFXSource source )) {}
  4106.     /*! Mark the given @a source for deletion as soon as it moves into stopped state.
  4107.  
  4108. This function will retroactively turn the given @a source into a play-once source (see @ref SFXSource_playonce).
  4109.  
  4110. @param source A sound source.
  4111.  
  4112. @ingroup SFX */
  4113.     virtual void sfxDeleteWhenStopped(( SFXSource source )) {}
  4114.     /*! Get the falloff curve type currently being applied to 3D sounds.
  4115.  
  4116. @return The current distance model type.
  4117.  
  4118. @ref SFXSource_volume
  4119.  
  4120. @ref SFX_3d
  4121.  
  4122. @ingroup SFX */
  4123.     virtual string sfxGetDistanceModel(()) {}
  4124.     /*! Set the falloff curve type to use for distance-based volume attenuation of 3D sounds.
  4125.  
  4126. @param model The distance model to use for 3D sound.
  4127.  
  4128. @note This setting takes effect globally and is applied to all 3D sounds.
  4129.  
  4130. @ingroup SFX */
  4131.     virtual void sfxSetDistanceModel(( SFXDistanceModel model )) {}
  4132.     /*! Get the current global doppler effect setting.
  4133.  
  4134. @return The current global doppler effect scale factor (>=0).
  4135.  
  4136. @see sfxSetDopplerFactor
  4137.  
  4138. @ref SFXSource_doppler
  4139.  
  4140. @ingroup SFX */
  4141.     virtual float sfxGetDopplerFactor(()) {}
  4142.     /*! Set the global doppler effect scale factor.
  4143. @param value The new doppler shift scale factor.
  4144. @pre @a value must be >= 0.
  4145. @see sfxGetDopplerFactor
  4146.  
  4147. @ref SFXSource_doppler
  4148.  
  4149. @ingroup SFX */
  4150.     virtual void sfxSetDopplerFactor(( float value )) {}
  4151.     /*! Get the current global scale factor applied to volume attenuation of 3D sounds in the logarithmic model.
  4152. @return The current scale factor for logarithmic 3D sound falloff curves.
  4153.  
  4154. @see sfxGetDistanceModel
  4155. @see SFXDistanceModel
  4156.  
  4157. @ref SFXSource_volume
  4158. @ref SFX_3d
  4159. @ingroup SFX */
  4160.     virtual float sfxGetRolloffFactor(()) {}
  4161.     /*! Set the global scale factor to apply to volume attenuation of 3D sounds in the logarithmic model.
  4162. @param value The new scale factor for logarithmic 3D sound falloff curves.
  4163.  
  4164. @pre @a value must be > 0.
  4165. @note This function has no effect if the currently distance model is set to SFXDistanceModel::Linear.
  4166.  
  4167. @see sfxGetDistanceModel
  4168. @see SFXDistanceModel
  4169.  
  4170. @ref SFXSource_volume
  4171. @ref SFX_3d
  4172. @ingroup SFX */
  4173.     virtual void sfxSetRolloffFactor(( float value )) {}
  4174.     /*! Dump information about all current SFXSource instances to the console.
  4175. The dump includes information about the playback status for each source, volume levels, virtualization, etc.
  4176. @param includeGroups If true, direct instances of SFXSources (which represent logical sound groups) will be included. Otherwise only instances of subclasses of SFXSources are included in the dump.
  4177. @see SFXSource
  4178. @see sfxDumpSourcesToString
  4179. @ingroup SFX */
  4180.     virtual void sfxDumpSources(( bool includeGroups=false )) {}
  4181.     /*! Dump information about all current SFXSource instances to a string.
  4182. The dump includes information about the playback status for each source, volume levels, virtualization, etc.
  4183. @param includeGroups If true, direct instances of SFXSources (which represent logical sound groups) will be included. Otherwise only instances of subclasses of SFXSources are included in the dump.
  4184. @return A string containing a dump of information about all currently instantiated SFXSources.
  4185. @see SFXSource
  4186. @see sfxDumpSources
  4187. @ingroup SFX */
  4188.     virtual string sfxDumpSourcesToString(( bool includeGroups=false )) {}
  4189.     /*! @brief Dump information about the standard DSP effects.
  4190.  
  4191. @ingroup SFXFMOD */
  4192.     virtual void fmodDumpDSPInfo(()) {}
  4193.     /*! @return Prints the current memory consumption of the FMOD module
  4194.  
  4195. @ingroup SFXFMOD */
  4196.     virtual void fmodDumpMemoryStats(()) {}
  4197.     /*! @brief Returns the current %ActionMap.
  4198. @see ActionMap@ingroup Input */
  4199.     virtual string getCurrentActionMap(()) {}
  4200.     virtual void normalizeStatSliders(( int mainId)) {}
  4201.     virtual void normalizeCraftingSkillSliders(( int mainId)) {}
  4202.     virtual void normalizeFightingSkillSliders(( int mainId)) {}
  4203.     /*! randomizeStatSliders() */
  4204.     virtual void randomizeStatSliders() {}
  4205.     /*! randomizeCraftingSkillSliders() */
  4206.     virtual void randomizeCraftingSkillSliders() {}
  4207.     /*! randomizeFightingSkillSliders() */
  4208.     virtual void randomizeFightingSkillSliders() {}
  4209.     /*! CreateCharacterCancelPressed() */
  4210.     virtual void CreateCharacterCancelPressed() {}
  4211.     /*! CreateCharacterNextPressed() */
  4212.     virtual void CreateCharacterNextPressed() {}
  4213.     /*! CharDialogErrorsCallbackList() */
  4214.     virtual void CharDialogErrorsCallbackList() {}
  4215.     /// @}
  4216.  
  4217.  
  4218.     /*! @name NetInterface
  4219.    
  4220.     Global control functions for the netInterfaces.
  4221.     @{ */
  4222.     /*! */
  4223.     /*! CharSelectionSlotPressed( int num) */
  4224.     virtual void CharSelectionSlotPressed() {}
  4225.     /*! CharSelectionDelcharSure( int slot, string name) */
  4226.     virtual void CharSelectionDelcharSure() {}
  4227.     /*! CharSelectionDelPressed( int num) */
  4228.     virtual void CharSelectionDelPressed() {}
  4229.     /*! CharSelectionCreatePressed() */
  4230.     virtual void CharSelectionCreatePressed() {}
  4231.     /*! CharSelectionPlayPressed() */
  4232.     virtual void CharSelectionPlayPressed() {}
  4233.     /*! calcSha1(string) */
  4234.     virtual string calcSha1() {}
  4235.     /*! VoiceChatSettings() */
  4236.     virtual void VoiceChatSettings() {}
  4237.     virtual bool DebugSteamInvite(( string steamIDStr, string ip, int port )) {}
  4238.     virtual void steamVoice_pushButton(()) {}
  4239.     virtual void steamVoice_popButton(()) {}
  4240.     /*! enableSteamVoiceChat() */
  4241.     virtual void enableSteamVoiceChat(()) {}
  4242.     /*! disableSteamVoiceChat() */
  4243.     virtual void disableSteamVoiceChat(()) {}
  4244.     /*! initialize substance manager class */
  4245.     virtual void SubstanceManager_init(()) {}
  4246.     /*! clears any substance info from SubstanceManager class */
  4247.     virtual void SubstanceManager_clear(()) {}
  4248.     virtual int GetServerCentralTer(( int serverID )) {}
  4249.     virtual string GetServerTerIDList(( int serverID, bool includeSideTers=false )) {}
  4250.     virtual void tmpHideAllNakedMans() {}
  4251.     virtual void tmpSwitchNakedMan() {}
  4252.     virtual void detachTerrains() {}
  4253.     virtual void preloadData((geoId)) {}
  4254.     /*! tsUpdateImposterImages( bool forceupdate ) */
  4255.     virtual void tsUpdateImposterImages() {}
  4256.     virtual void calculateVelocity(( bool enabled )) {}
  4257.     virtual bool twitchInit() {}
  4258.     /*! string username, string password */
  4259.     virtual bool twitchLogin() {}
  4260.     virtual void twitchShutdown() {}
  4261.     virtual int twitchGetState() {}
  4262.     virtual bool twitchStartStreaming((int width, int height, int frameRate, int maxKbps, int cpuUsage, bool disableAdaptiveBitrate) {}
  4263.     virtual void twitchStopStreaming() {}
  4264.     virtual float twitchGetMicVolume() {}
  4265.     virtual void twitchSetMicVolume((F32 volume)) {}
  4266.     virtual float twitchGetPlaybackVolume() {}
  4267.     virtual void twitchSetPlaybackVolume((F32 volume)) {}
  4268.     /*! @brief Reset FPS stats (fps::)
  4269.  
  4270. @ingroup Game */
  4271.     virtual void resetFPSTracker(()) {}
  4272.     /*! @brief Takes a string informing the backend where to store sample data and optionally a name of the specific logging backend to use.  The default is the CSV backend. In most cases, the logging store will be a file name.@tsexample
  4273. beginSampling( "mysamples.csv" );
  4274. @endtsexample
  4275.  
  4276. @ingroup Rendering */
  4277.     virtual void beginSampling((location, [backend])) {}
  4278.     /*! @brief Stops the rendering sampler
  4279.  
  4280. @ingroup Rendering
  4281.  */
  4282.     virtual void stopSampling(()) {}
  4283.     /*! @brief Enable sampling for all keys that match the given name pattern. Slashes are treated as separators.
  4284.  
  4285. @ingroup Rendering */
  4286.     virtual void enableSamples((pattern, [state])) {}
  4287.     /*! getCmVersion() */
  4288.     virtual string getCmVersionString() {}
  4289.     virtual void terminate() {}
  4290.  };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement