12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541 |
- /** @file */
- /// tree traversal type, for more see http://en.wikipedia.org/wiki/Tree_traversal
- enum InventoryTraversalType
- {
- PREORDER,
- INORDER,
- POSTORDER,
- LEVELORDER
- };
- const int INDEX_NOT_FOUND = -1;
- //-----------------------------------------------------------------------------
- typedef Serializer ParamsReadContext;
- typedef Serializer ParamsWriteContext;
- /**
- \brief Class for sending RPC over network
- @code
- // example sending
- void Send()
- {
- ScriptRPC rpc = new ScriptRPC();
-
- rpc.Write(645);
- rpc.Write("hello");
-
- array<float> farray = {1.2, 5.6, 8.1};
- rpc.Write(farray);
-
- rpc.Send(m_Player, ERPCs.RPC_TEST, true, m_Player.GetIdentity());
- }
- // example receive
- void OnRPC(ParamsReadContext ctx)
- {
- int num;
- string text;
- array<float> farray;
- ctx.Read(num);
- ctx.Read(text);
- ctx.Read(farray);
- }
- @endcode
- */
- class JsonSerializer: Serializer
- {
- void JsonSerializer() {}
- void ~JsonSerializer() {}
-
- /**
- \brief Script variable serialization to json string
- @param variable_out script variable to be serialized to string
- @param nice if the string should be formated for human readability
- @param result from the serialization, output or error depending on the return value
- \return if the serialization was successful
- @code
- Data data;
- string textOut;
- bool nice = false;
- JsonSerializer js = new JsonSerializer();
- bool ok = js.WriteToString(data, false, textOut);
- @endcode
- */
- proto bool WriteToString(void variable_out, bool nice, out string result);
-
- /**
- \brief Json string deserialization to script variable
- @param variable_in script variable to be deserialized from string
- @param jsonString the input string
- @param error from the deserialization. Is used only if the return value of the function is false
- \return if the deserialization was successful
- @code
- // Example json
- // {
- // "i": 6, // Int
- // "f": 3.5, // Float
- // "v": [1.1,2.2,3.3] // Vector3 is static array of size 3
- // "s": "string", // String
- // "subData": { // Object
- // "staticIArr": [9,8], // Static array (of ints)
- // "dynamicSArr": ["string1","string2"] // Dynamic array (of strings)
- // }, //
- // "fSet": [12.3,14.7], // Set (of floats)
- // "ifMap": { // Map (of int, float), only valid key type is int, enum, string
- // "3": 4.5, // Map key has to be as string
- // "4": 5.5
- // }
- // }
-
- Data data = new Data;
- string input = // valid json string;
- string error;
- bool ok = js.ReadFromString(data, input, error);
- @endcode
- */
- proto bool ReadFromString(void variable_in, string jsonString, out string error);
- };
- class ScriptRPC: ParamsWriteContext
- {
- void ScriptRPC();
- void ~ScriptRPC();
- //! Reset internal buffer which stores written data. After Reset is callded, ScriptRPC can be used again as "new" ScriptRPC
- proto native void Reset();
- /**
- \brief Initiate remote procedure call. When called on client, RPC is evaluated on server; When called on server, RPC is executed on all clients.
- Do not reset ScriptRPC internal state, so if is Send called multiple times in a row, it sends same (previously written) data again and again, until is Reset() called.
- @param target object on which remote procedure is called, when NULL, RPC is evaluated by CGame as global
- @param rpc_type user defined identification of RPC
- @param recipient specified client to send RPC to. If NULL, RPC will be send to all clients (specifying recipient increase security and decrease network traffic)
- */
- proto native void Send(Object target, int rpc_type, bool guaranteed,PlayerIdentity recipient = NULL);
- };
- class ScriptInputUserData : ParamsWriteContext
- {
- void ScriptInputUserData ();
- void ~ScriptInputUserData ();
- proto native void Reset ();
- proto native void Send ();
- proto native bool CopyFrom(ParamsReadContext other);
- //! Returns true when the channel is free, AND the InputBuffer is NOT full (same as '!IsNetworkInputBufferFull()')
- proto native static bool CanStoreInputUserData ();
- };
- class ScriptReadWriteContext
- {
- void ScriptReadWriteContext ();
- void ~ScriptReadWriteContext ();
- proto native ParamsWriteContext GetWriteContext ();
- proto native ParamsReadContext GetReadContext ();
- };
- class ScriptRemoteInputUserData : ParamsWriteContext
- {
- void ScriptRemoteInputUserData ();
- void ~ScriptRemoteInputUserData ();
- proto native void Reset ();
- };
- class ScriptJunctureData : ParamsWriteContext
- {
- void ScriptJunctureData ();
- void ~ScriptJunctureData ();
- proto native void Reset ();
- };
- //-----------------------------------------------------------------------------
- class MeleeCombatData
- {
- proto native int GetModesCount();
- proto native owned string GetModeName(int index);
- proto native owned string GetAmmoTypeName(int index);
- proto native float GetModeRange(int index);
-
- private void MeleeCombatData();
- private void ~MeleeCombatData();
- }
- //-----------------------------------------------------------------------------
- const string NullStringArray[1] = { "" };
- //-----------------------------------------------------------------------------
- //! Selection class
- class Selection
- {
- private void Selection() {}
- private void ~Selection() {}
-
- proto native owned string GetName();
- proto native int GetVertexCount();
- proto native int GetLODVertexIndex(int sel_vertex_index);
- vector GetVertexPosition(LOD lod, int index)
- {
- int lodIndex = GetLODVertexIndex(index);
- if (lodIndex == -1)
- {
- Error("Vertex doesn't exist");
- return vector.Zero;
- }
-
- return lod.GetVertexPosition(lodIndex);
- }
- };
- //-----------------------------------------------------------------------------
- //! LOD class
- class LOD
- {
- // standard(BI) LOD names in p3d
- static const string NAME_GEOMETRY = "geometry";
- static const string NAME_VIEW = "view";
- static const string NAME_FIRE = "fire";
- static const string NAME_MEMORY = "memory";
- static const string NAME_ROADWAY = "roadway";
- private void LOD() {}
- private void ~LOD() {}
-
- proto native int GetSelectionCount();
- proto native bool GetSelections(notnull out array<Selection> selections);
- proto native vector GetVertexPosition(int vertex_index);
-
- proto native owned string GetName(Object myObject);
-
- Selection GetSelectionByName(string name)
- {
- array<Selection> selections = new array<Selection>;
- GetSelections(selections);
-
- for (int i = 0; i < selections.Count(); ++i)
- {
- string selection_name = selections.Get(i).GetName();
- selection_name.ToLower();
- name.ToLower();
- if (selection_name == name)
- {
- return selections.Get(i);
- }
- }
-
- return null;
- }
-
- proto native int GetPropertyCount();
- proto native owned string GetPropertyName(int index);
- proto native owned string GetPropertyValue(int index);
- }
- class Plant extends Object
- {
- };
- /*
- class ParamEntry
- {
- proto string GetString(string entryName);
- proto int GetInt(string entryName);
- proto float GetFloat(string entryName);
- proto ref ParamEntry GetEntry(string entryName);
- proto int GetNumChildren();
- proto ref ParamEntry GetNumChildren(int n);
- };
- */
- //-----------------------------------------------------------------------------
-
- //-----------------------------------------------------------------------------
- class ProxyInventory extends ObjectTyped
- {
- };
- //-----------------------------------------------------------------------------
- class ProxySubpart extends Entity
- {
- };
- //-----------------------------------------------------------------------------
- // custom widgets
- //-----------------------------------------------------------------------------
- class ItemPreviewWidget: Widget
- {
- proto native void SetItem(EntityAI object);
- proto native EntityAI GetItem();
-
- proto native int GetView();
- /**
- * 0 - default boundingbox_min + boundingbox_max + invView
- * 1 - boundingbox_min2 + boundingbox_max2 + invView2
- * 2 - boundingbox_min3 + boundingbox_max3 + invView3
- * ...
- */
- proto native void SetView(int viewIndex);
- proto native void SetModelOrientation(vector vOrientation);
- proto native vector GetModelOrientation();
- proto native void SetModelPosition(vector vPos);
- proto native vector GetModelPosition();
-
- proto native void SetForceFlipEnable(bool enable);
- proto native void SetForceFlip(bool value);
- };
- //-----------------------------------------------------------------------------
- class PlayerPreviewWidget: Widget
- {
- proto native void UpdateItemInHands(EntityAI object);
- proto native void SetPlayer(DayZPlayer player);
- //proto native void SetPlayerType(string type);
- proto native DayZPlayer GetDummyPlayer();
-
- proto native void Refresh();
- proto native void SetModelOrientation(vector vOrientation);
- proto native vector GetModelOrientation();
- proto native void SetModelPosition(vector vPos);
- proto native vector GetModelPosition();
- };
- //-----------------------------------------------------------------------------
- class HtmlWidget extends RichTextWidget
- {
- proto native void LoadFile(string path);
- };
- //-----------------------------------------------------------------------------
- class MapWidget: Widget
- {
- proto native void ClearUserMarks();
- proto native void AddUserMark(vector pos, string text, int color /*ARGB*/, string texturePath);
- proto native vector GetMapPos();
- proto native void SetMapPos(vector worldPos);
- proto native float GetScale();
- proto native void SetScale(float scale);
- proto native float GetContourInterval();
- proto native float GetCellSize(float pLegendWidth);
- proto native vector MapToScreen(vector worldPos);
- proto native vector ScreenToMap(vector screenPos);
- };
- //-----------------------------------------------------------------------------
- //! Player description (base engine class)
- class PlayerIdentityBase : Managed
- {
- //! ping range estimation
- proto int GetPingAct();
- //! ping range estimation
- proto int GetPingMin();
- //! ping range estimation
- proto int GetPingMax();
- //! ping range estimation
- proto int GetPingAvg();
- //! bandwidth estimation (in kbps)
- proto int GetBandwidthMin();
- //! bandwidth estimation (in kbps)
- proto int GetBandwidthMax();
- //! bandwidth estimation (in kbps)
- proto int GetBandwidthAvg();
- //! Throttling performed on output bandwidth since last update (percentage [0,1])
- proto float GetOutputThrottle();
- //! Throttling performed on input bandwidth since last update(percentage [0,1]) (unknown value on Server)
- proto float GetInputThrottle();
-
- //! nick (short) name of player
- proto string GetName();
- //! nick without any processing
- proto string GetPlainName();
- //! full name of player
- proto string GetFullName();
- //! unique id of player (hashed steamID, database Xbox id...) can be used in database or logs
- proto string GetId();
- //! plaintext unique id of player (cannot be used in database or logs)
- proto string GetPlainId();
- //! id of player in one session (is reused after player disconnects)
- proto int GetPlayerId();
-
- //! get player
- proto Man GetPlayer();
-
- #ifdef FEATURE_NETWORK_RECONCILIATION
- //! Possess a pawn
- proto native void Possess(Pawn pawn);
- #endif
- //! This is a C++ managed class, so script has no business managing the lifetime
- private void PlayerIdentityBase();
- private void ~PlayerIdentityBase();
- };
- //! The class that will be instanced (moddable)
- class PlayerIdentity : PlayerIdentityBase
- {
- }
- //-----------------------------------------------------------------------------
- const int PROGRESS_START = 0;
- const int PROGRESS_FINISH = 1;
- const int PROGRESS_PROGRESS = 2;
- const int PROGRESS_UPDATE = 3;
- //-----------------------------------------------------------------------------
- typedef int ChatChannel;
- //-----------------------------------------------------------------------------
- //! state, progress, title
- typedef Param3<int, float, string> ProgressEventParams;
- typedef Param1<string> ScriptLogEventParams;
- //! channel, from, text, color config class
- typedef Param4<int, string, string, string> ChatMessageEventParams;
- typedef Param1<int> ChatChannelEventParams;
- typedef Param1<int> SQFConsoleEventParams;
- //! Name, uid
- typedef Param2<string, string> ClientConnectedEventParams;
- //! PlayerIdentity, useDB, pos, yaw, preloadTimeout (= additional time in seconds to how long server waits for loginData)
- typedef Param5<PlayerIdentity, bool, vector, float, int> ClientPrepareEventParams;
- //! PlayerIdentity, PlayerPos, Top, Bottom, Shoe, Skin
- typedef Param3<PlayerIdentity, vector, Serializer> ClientNewEventParams;
- //! PlayerIdentity, Man
- typedef Param2<PlayerIdentity, Man> ClientNewReadyEventParams;
- //! PlayerIdentity, Man
- typedef Param2<PlayerIdentity, Man> ClientRespawnEventParams;
- //! PlayerIdentity, Man
- typedef Param2<PlayerIdentity, Man> ClientReadyEventParams;
- //! PlayerIdentity, Man
- typedef Param2<PlayerIdentity, Man> ClientReconnectEventParams;
- //! PlayerIdentity, Man, LogoutTime, AuthFailed
- typedef Param4<PlayerIdentity, Man, int, bool> ClientDisconnectedEventParams;
- //! LoginTime
- typedef Param1<int> LoginTimeEventParams;
- //! RespawnTime
- typedef Param1<int> RespawnEventParams;
- //! Position
- typedef Param1<vector> PreloadEventParams;
- //! Player
- typedef Param1<Man> LogoutCancelEventParams;
- //! PlayerIdentity
- typedef Param1<PlayerIdentity> ConnectivityStatsUpdatedEventParams;
- //! average server fps, highest frame time, skipped physics simulation steps server/client
- typedef Param4<float, float, int, int> ServerFpsStatsUpdatedEventParams;
- //! text message for line 1, text message for line 2
- typedef Param2<string, string> LoginStatusEventParams;
- //! logoutTime
- typedef Param1<int> LogoutEventParams;
- //! Width, Height, Windowed
- typedef Param3<int, int, bool> WindowsResizeEventParams;
- //! listening, toggled
- typedef Param2<bool, bool> VONStateEventParams;
- //! player name, player id
- typedef Param2<string, string> VONStartSpeakingEventParams;
- //! player name, player id
- typedef Param2<string, string> VONStopSpeakingEventParams;
- //! world name
- typedef Param1<string> DLCOwnerShipFailedParams;
- //! Camera
- typedef Param1<FreeDebugCamera> SetFreeCameraEventParams;
- //! Duration
- typedef Param1<int> MPConnectionLostEventParams;
- //! EClientKicked, AdditionalInfo
- typedef Param2<int, string> MPConnectionCloseEventParams;
- //! Player, "Killer" (Beware: Not necessarily actually the killer, Client doesn't have this info)
- typedef Param2<DayZPlayer, Object> PlayerDeathEventParams;
- //! isFull
- typedef Param1<bool> NetworkInputBufferEventParams;
- //-----------------------------------------------------------------------------
- //! no params
- const EventType StartupEventTypeID;
- //! no params
- const EventType WorldCleaupEventTypeID;
- //-----------------------------------------------------------------------------
- //! no params
- const EventType MPSessionStartEventTypeID;
- //! no params
- const EventType MPSessionEndEventTypeID;
- //! no params
- const EventType MPSessionFailEventTypeID;
- //! no params
- const EventType MPSessionPlayerReadyEventTypeID;
- //! params: \ref MPConnectionLostEventParams
- const EventType MPConnectionLostEventTypeID;
- //! params: \ref MPConnectionCloseEventParams
- const EventType MPConnectionCloseEventTypeID;
- //-----------------------------------------------------------------------------
- //! params: \ref ProgressEventParams
- const EventType ProgressEventTypeID;
- //! no params
- const EventType NetworkManagerClientEventTypeID;
- //! no params
- const EventType NetworkManagerServerEventTypeID;
- //! no params
- const EventType DialogQueuedEventTypeID;
-
- //-----------------------------------------------------------------------------
- //! params: \ref ChatMessageEventParams
- const EventType ChatMessageEventTypeID;
- //! params: \ref ChatChannelEventParams
- const EventType ChatChannelEventTypeID;
-
- //-----------------------------------------------------------------------------
- //! params: \ref ClientConnectedEventParams
- const EventType ClientConnectedEventTypeID;
- //! params: \ref ClientPrepareEventParams
- const EventType ClientPrepareEventTypeID;
- //! params: \ref ClientNewEventParams
- const EventType ClientNewEventTypeID;
- //! params: \ref ClientNewReadyEventParams
- const EventType ClientNewReadyEventTypeID;
- //! params: \ref ClientRespawnEventParams
- const EventType ClientRespawnEventTypeID;
- //! params: \ref ClientReconnectEventParams
- const EventType ClientReconnectEventTypeID;
- //! params: \ref ClientReadyEventParams
- const EventType ClientReadyEventTypeID;
- //! params: \ref ClientDisconnectedEventParams
- const EventType ClientDisconnectedEventTypeID;
- //! no params
- const EventType ClientRemovedEventTypeID;
-
- //-----------------------------------------------------------------------------
- //! params: \ref ConnectivityStatsUpdatedEventParams
- const EventType ConnectivityStatsUpdatedEventTypeID;
- //! params: \ref ServerFpsStatsUpdatedEventParams
- const EventType ServerFpsStatsUpdatedEventTypeID;
- //! params: \ref LogoutCancelEventParams
- const EventType LogoutCancelEventTypeID;
- //! params: \ref LoginTimeEventParams
- const EventType LoginTimeEventTypeID;
- //! params: \ref RespawnEventParams
- const EventType RespawnEventTypeID;
- //! params: \ref PreloadEventParams
- const EventType PreloadEventTypeID;
- //! params: \ref LogoutEventParams
- const EventType LogoutEventTypeID;
- //! params: \ref LoginStatusEventParams
- const EventType LoginStatusEventTypeID;
-
- //-----------------------------------------------------------------------------
- //! no params
- const EventType SelectedUserChangedEventTypeID;
- //! params: \ref ScriptLogEventParams
- const EventType ScriptLogEventTypeID;
-
- //-----------------------------------------------------------------------------
- //! params: \ref VONStateEventParams
- const EventType VONStateEventTypeID;
- //! params: \ref VONStartSpeakingEventParams
- const EventType VONStartSpeakingEventTypeID;
- //! params: \ref VONStopSpeakingEventParams
- const EventType VONStopSpeakingEventTypeID;
- //! no params
- const EventType VONUserStartedTransmittingAudioEventTypeID;
- //! no params
- const EventType VONUserStoppedTransmittingAudioEventTypeID;
- //! no params
-
- //-----------------------------------------------------------------------------
- const EventType PartyChatStatusChangedEventTypeID;
- //! params: \ref DLCOwnerShipFailedParams
- const EventType DLCOwnerShipFailedEventTypeID;
- //! params: \ref SetFreeCameraEventParams
- const EventType SetFreeCameraEventTypeID;
- //! no params
- const EventType ConnectingStartEventTypeID;
- //! no params
- const EventType ConnectingAbortEventTypeID;
- //! params: \ref PlayerDeathEventParams
- const EventType PlayerDeathEventTypeID;
- //! params: \ref NetworkInputBufferEventParams
- const EventType NetworkInputBufferEventTypeID;
-
- //possible in engine events not accessable from script
- //ReloadShadersEvent
- //LoadWorldProgressEvent
-
- //SignStatusEvent
- //SetPausedEvent
- //TerminationEvent
- //UserSettingsChangedEvent
- //StorageChangedEvent
- //BeforeResetEvent
- //AfterRenderEvent
- //AfterResetEvent
- //CrashLogEvent
- //ConsoleEvent
- class CursorIcons
- {
- const string None = "";
- const string Cursor = "set:dayz_gui image:cursor";
- const string CloseDoors = "set:dayz_gui image:close";
- const string OpenDoors = "set:dayz_gui image:open";
- const string OpenCarDoors = "set:dayz_gui image:open_car";
- const string CloseCarDoors = "set:dayz_gui image:close_car";
- const string EngineOff = "set:dayz_gui image:engine_off";
- const string EngineOn = "set:dayz_gui image:engine_on";
- const string LadderDown = "set:dayz_gui image:ladderdown";
- const string LadderOff = "set:dayz_gui image:ladderoff";
- const string LadderUp = "set:dayz_gui image:ladderup";
- const string LootCorpse = "set:dayz_gui image:gear";
- const string CloseHood = "set:dayz_gui image:close_hood";
- const string OpenHood = "set:dayz_gui image:open_hood";
- const string GetOut = "set:dayz_gui image:getout";
- const string GetInCargo = "set:dayz_gui image:get_in_cargo";
- const string Reload = "set:dayz_gui image:reload";
- const string GetInDriver = "set:dayz_gui image:get_in_driver";
- const string GetInCommander = "set:dayz_gui image:get_in_commander";
- const string GetInPilot = "set:dayz_gui image:get_in_pilot";
- const string GetInGunner = "set:dayz_gui image:get_in_gunner";
- };
-
- // some defs for CGame::ShowDialog()
- /*
- const int DBB_NONE = 0;
- const int DBB_OK = 1;
- const int DBB_YES = 2;
- const int DBB_NO = 3;
- const int DBB_CANCEL = 4;
- const int DBT_OK = 0; //just OK button
- const int DBT_YESNO = 1; //Yes and No buttons
- const int DBT_YESNOCANCEL = 2; //Yes, No, Cancel buttons
- const int DMT_NONE = 0;
- const int DMT_INFO = 1;
- const int DMT_WARNING = 2;
- const int DMT_QUESTION = 3;
- const int DMT_EXCLAMATION = 4;
- */
- proto native CGame GetGame();
- class Hud : Managed
- {
- ref Timer m_Timer;
- void Init(Widget hud_panel_widget) {}
- void DisplayNotifier(int key, int tendency, int status) {}
- void DisplayBadge(int key, int value) {}
- void SetStamina(int value, int range) {}
- void DisplayStance(int stance) {}
- void DisplayPresence() {}
- void ShowCursor() { }
- void HideCursor() { }
- void SetCursorIcon(string icon) { }
- void SetCursorIconScale(string type, float percentage) { }
- void SetCursorIconOffset(string type, float x, float y) { }
- void SetCursorIconSize(string type, float x, float y) { }
- void ShowWalkieTalkie(bool show) { }
- void ShowWalkieTalkie(int fadeOutSeconds) { }
- void SetWalkieTalkieText(string text) { }
- void RefreshQuickbar(bool itemChanged = false) {}
- void Show(bool show) {}
- void UpdateBloodName() {}
- void SetTemperature(string temp);
- void SetStaminaBarVisibility(bool show);
- void Update(float timeslice){}
- void ShowVehicleInfo();
- void HideVehicleInfo();
- void InitHeatBufferUI(Man player);
- void ShowQuickbarUI(bool show);
- void ShowQuickbarPlayer(bool show);
- void ShowHudPlayer(bool show);
- void ShowHudUI(bool show);
- void ShowHudInventory(bool show);
- void ShowQuickBar(bool show);
- void UpdateQuickbarGlobalVisibility();
- void ShowHud(bool show);
-
- void OnResizeScreen();
- void OnPlayerLoaded(); // player connects or respawns
- void SetPermanentCrossHair(bool show) {}
-
- void SpawnHitDirEffect(DayZPlayer player, float hit_direction,float intensity_max);
- void SetConnectivityStatIcon(EConnectivityStatType type, EConnectivityStatLevel level);
- };
- //-----------------------------------------------------------------------------
- //! Mission class
- class Mission
- {
- ScriptModule MissionScript;
- ref array<vector> m_ActiveRefresherLocations;
-
- protected ref ScriptInvoker m_OnInputDeviceChanged = new ScriptInvoker();
- protected ref ScriptInvoker m_OnInputPresetChanged = new ScriptInvoker();
- protected ref ScriptInvoker m_OnInputDeviceConnected = new ScriptInvoker();
- protected ref ScriptInvoker m_OnInputDeviceDisconnected = new ScriptInvoker();
- protected ref ScriptInvoker m_OnModMenuVisibilityChanged = new ScriptInvoker();
- protected ref ScriptInvoker m_OnTimeChanged = new ScriptInvoker();
- private void ~Mission();
-
- void OnInit() {}
- void OnMissionStart() {}
- void OnMissionFinish() {}
- void OnUpdate(float timeslice)
- {
- #ifdef FEATURE_CURSOR
- m_TimeStamp++;
- #endif
- }
- void OnKeyPress(int key) {}
- void OnKeyRelease(int key) {}
- void OnMouseButtonPress(int button){}
- void OnMouseButtonRelease(int button){}
- void OnEvent(EventType eventTypeId, Param params) {}
- void OnItemUsed(InventoryItem item, Man owner) {}
- void AddDummyPlayerToScheduler(Man player){}
- void Reset(){}
- void ResetGUI(){}
- void OnGameplayDataHandlerLoad(){}
-
- Hud GetHud()
- {
- return null;
- }
- ObjectSnapCallback GetInventoryDropCallback()
- {
- return null;
- }
-
- bool IsPlayerDisconnecting(Man player);
-
- UIScriptedMenu CreateScriptedMenu(int id)
- {
- return null;
- }
-
- UIScriptedWindow CreateScriptedWindow(int id)
- {
- return null;
- }
-
- WorldData GetWorldData()
- {
- return null;
- }
-
- WorldLighting GetWorldLighting()
- {
- return null;
- }
-
- DynamicMusicPlayer GetDynamicMusicPlayer()
- {
- return null;
- }
-
- bool IsPaused()
- {
- return false;
- }
-
- bool IsGame()
- {
- return false;
- }
-
- bool IsServer()
- {
- return false;
- }
- void Pause() {}
- void Continue() {}
-
- void AbortMission() {}
- void CreateLogoutMenu(UIMenuPanel parent) {}
- void StartLogoutMenu(int time) {}
- void CreateDebugMonitor() {}
- void HideDebugMonitor() {}
-
- void RefreshCrosshairVisibility() {}
- void HideCrosshairVisibility() {}
-
- bool IsMissionGameplay()
- {
- return false;
- }
-
- bool IsControlDisabled() {}
- int GetControlDisabledMode() {}
-
- void PlayerControlEnable(bool bForceSupress); //!deprecated
- void PlayerControlDisable(int mode); //!deprecated
-
- void RemoveActiveInputExcludes(array<string> excludes, bool bForceSupress = false);
- void RemoveActiveInputRestriction(int restrictor);
- void AddActiveInputExcludes(array<string> excludes);
- void AddActiveInputRestriction(int restrictor);
- void RefreshExcludes();
- bool IsInputExcludeActive(string exclude);
- bool IsInputRestrictionActive(int restriction);
- void EnableAllInputs(bool bForceSupress = false);
- void ShowInventory() {}
- void HideInventory() {}
-
- void ShowChat() {}
- void HideChat() {}
- void UpdateVoiceLevelWidgets(int level) {}
-
- void HideVoiceLevelWidgets() {}
- bool IsVoNActive() {}
- void SetVoNActive(bool active) {}
-
- bool InsertCorpse(Man player)
- {
- return false;
- }
-
- UIScriptedMenu GetNoteMenu();
- void SetNoteMenu(UIScriptedMenu menu);
- void SetPlayerRespawning(bool state);
- void OnPlayerRespawned(Man player);
- bool IsPlayerRespawning();
- array<vector> GetActiveRefresherLocations();
-
- //! for client-side usage
- void SetRespawnModeClient(int mode);
- int GetRespawnModeClient()
- {
- return -1;
- }
- //! server-side
- void SyncRespawnModeInfo(PlayerIdentity identity);
-
- ImageWidget GetMicrophoneIcon()
- {
- return null;
- }
-
- WidgetFadeTimer GetMicWidgetFadeTimer();
- GameplayEffectWidgets_base GetEffectWidgets();
-
- map<int,ImageWidget> GetVoiceLevelWidgets();
- map<int,ref WidgetFadeTimer> GetVoiceLevelTimers();
-
- ScriptInvoker GetOnInputDeviceChanged()
- {
- if (!m_OnInputDeviceChanged)
- m_OnInputDeviceChanged = new ScriptInvoker();
- return m_OnInputDeviceChanged;
- }
-
- ScriptInvoker GetOnInputPresetChanged()
- {
- if (!m_OnInputPresetChanged)
- m_OnInputPresetChanged = new ScriptInvoker();
- return m_OnInputPresetChanged;
- }
-
- ScriptInvoker GetOnInputDeviceConnected()
- {
- if (!m_OnInputDeviceConnected)
- m_OnInputDeviceConnected = new ScriptInvoker();
- return m_OnInputDeviceConnected;
- }
-
- ScriptInvoker GetOnInputDeviceDisconnected()
- {
- if (!m_OnInputDeviceDisconnected)
- m_OnInputDeviceDisconnected = new ScriptInvoker();
- return m_OnInputDeviceDisconnected;
- }
-
- ScriptInvoker GetOnModMenuVisibilityChanged()
- {
- if (!m_OnModMenuVisibilityChanged)
- m_OnModMenuVisibilityChanged = new ScriptInvoker();
- return m_OnModMenuVisibilityChanged;
- }
-
-
- ScriptInvoker GetOnTimeChanged()
- {
- if (!m_OnTimeChanged)
- m_OnTimeChanged = new ScriptInvoker();
- return m_OnTimeChanged;
- }
- #ifdef FEATURE_CURSOR
- int m_TimeStamp = 0;
- int GetTimeStamp()
- {
- return m_TimeStamp;
- }
- #endif
-
- #ifdef DEVELOPER
- bool m_SuppressNextFrame = true;
- void SetInputSuppression(bool state);
- bool GetInputSuppression();
- #endif
- };
- // -------------------------------------------------------------------------
- class MenuData: Managed
- {
- proto native int GetCharactersCount();
- proto native int GetLastPlayedCharacter();
- //! Return Character person or null if character initialization failed (inventory load, or corrupted data)
- proto native Man CreateCharacterPerson(int index);
-
- proto void GetLastServerAddress(int index, out string address);
- proto native int GetLastServerPort(int index);
- proto native int GetLastSteamQueryPort(int index);
- proto void GetLastServerName(int index, out string address);
-
- proto void RequestSetDefaultCharacterData();
- proto bool RequestGetDefaultCharacterData();
-
- //! Actual DefaultCharacter saving
- void OnSetDefaultCharacter(ParamsWriteContext ctx)
- {
- if (!GetMenuDefaultCharacterDataInstance()/* || GetGame().IsServer()*/)
- {
- Error("MenuData | OnSetDefaultCharacter - failed to get data class!");
- return;
- }
-
- GetMenuDefaultCharacterDataInstance().SerializeCharacterData(ctx);
- SaveCharactersLocal();
- }
-
- //! Actual DefaultCharacter loading
- bool OnGetDefaultCharacter(ParamsReadContext ctx)
- {
- if (!GetMenuDefaultCharacterDataInstance())
- {
- Error("MenuData | OnGetDefaultCharacter - failed to get data class!");
- return false;
- }
-
- if (GetMenuDefaultCharacterDataInstance().DeserializeCharacterData(ctx))
- {
- return true;
- }
- return false;
- }
-
- proto void GetCharacterName(int index, out string name);
- proto native void SetCharacterName(int index, string newName);
- // save character is set as last played character
- proto native void SaveCharacter(bool localPlayer, bool verified);
- proto native void SaveDefaultCharacter(Man character);
-
- //! Saves characters menu data to file
- proto native void SaveCharactersLocal();
- //! Loads characters menu data from file
- proto native void LoadCharactersLocal();
- proto native void ClearCharacters();
-
- MenuDefaultCharacterData GetMenuDefaultCharacterDataInstance()
- {
- return GetGame().GetMenuDefaultCharacterData();
- }
-
- //proto native void GetCharacterStringList(int characterID, string name, out TStringArray values);
- //proto bool GetCharacterString(int characterID,string name, out string value);
- };
- //holds 'default character' data
- class MenuDefaultCharacterData
- {
- //const int MODE_SERVER = 0;
- //const int MODE_CLIENT = 1;
-
- string m_CharacterName;
- string m_CharacterType;
- ref map<int,string> m_AttachmentsMap;
- bool m_ForceRandomCharacter;
-
- void MenuDefaultCharacterData()
- {
- Init();
- }
-
- void Init()
- {
- if (!GetGame().IsDedicatedServer())
- {
- GetGame().GetMenuData().LoadCharactersLocal();
- }
- m_AttachmentsMap = new map<int,string>;
- }
-
- void ClearAttachmentsMap()
- {
- m_AttachmentsMap.Clear();
- }
-
- void SetDefaultAttachment(int slotID, string type)
- {
- m_AttachmentsMap.Set(slotID,type); //using 'Set' instead of 'Insert' for convenience
- }
-
- void GenerateRandomEquip()
- {
- ClearAttachmentsMap();
-
- int slot_ID;
- string attachment_type;
- for (int i = 0; i < DefaultCharacterCreationMethods.GetAttachmentSlotsArray().Count(); i++)
- {
- slot_ID = DefaultCharacterCreationMethods.GetAttachmentSlotsArray().Get(i);
- if (DefaultCharacterCreationMethods.GetConfigArrayCountFromSlotID(slot_ID) > 0)
- {
- attachment_type = DefaultCharacterCreationMethods.GetConfigAttachmentTypes(slot_ID).GetRandomElement();
- //if (attachment_type != "")
- SetDefaultAttachment(slot_ID,attachment_type);
- }
- }
- }
-
- void EquipDefaultCharacter(Man player)
- {
- if (!player)
- {
- ErrorEx("WARNING - trying to equip non-existent object! | MenuDefaultCharacterData::EquipDefaultCharacter");
- return;
- }
-
- int slot_ID;
- string attachment_type;
- string current_attachment_type;
- EntityAI current_attachment_object;
-
- for (int i = 0; i < m_AttachmentsMap.Count(); i++)
- {
- attachment_type = "";
- current_attachment_type = "";
- slot_ID = m_AttachmentsMap.GetKey(i);
- attachment_type = m_AttachmentsMap.GetElement(i); //Get(i)
- current_attachment_object = player.GetInventory().FindAttachment(slot_ID);
-
- if (current_attachment_object)
- {
- current_attachment_type = current_attachment_object.GetType();
- }
- if (current_attachment_type != attachment_type)
- {
- if (current_attachment_object)
- g_Game.ObjectDelete(current_attachment_object);
- if (attachment_type != "")
- player.GetInventory().CreateAttachmentEx(attachment_type,slot_ID);
- }
- }
- }
-
- //!serializes data into a param array to be used by "StoreLoginData(notnull array<ref Param> params);"
- void SerializeCharacterData(ParamsWriteContext ctx)
- {
- ctx.Write(m_CharacterType);
- ctx.Write(m_AttachmentsMap);
- ctx.Write(m_ForceRandomCharacter);
- ctx.Write(m_CharacterName);
- //DumpAttMapContents();
- }
-
- bool DeserializeCharacterData(ParamsReadContext ctx)
- {
- if (!ctx.Read(m_CharacterType))
- return false;
- if (!ctx.Read(m_AttachmentsMap))
- return false;
- if (!ctx.Read(m_ForceRandomCharacter))
- return false;
- if (!ctx.Read(m_CharacterName))
- return false;
-
- //DumpAttMapContents();
- return true;
- }
-
- void SetCharacterName(string name)
- {
- m_CharacterName = name;
- }
-
- string GetCharacterName()
- {
- return m_CharacterName;
- }
-
- void SetCharacterType(string character_type)
- {
- m_CharacterType = character_type;
- }
-
- string GetCharacterType()
- {
- return m_CharacterType;
- }
-
- void SetRandomCharacterForced(bool state)
- {
- m_ForceRandomCharacter = state;
- }
-
- bool IsRandomCharacterForced()
- {
- return m_ForceRandomCharacter;
- }
-
- map<int,string> GetAttachmentMap()
- {
- return m_AttachmentsMap;
- }
-
- //DEBUG
- void DumpAttMapContents()
- {
- int debugID;
- string debugType;
- Print("-----------");
- Print("m_AttachmentsMap contents:");
- for (int j = 0; j < m_AttachmentsMap.Count(); j++)
- {
- debugID = m_AttachmentsMap.GetKey(j);
- debugType = m_AttachmentsMap.GetElement(j);
- Print("index " + j);
- Print("debugID: " + debugID);
- Print("debugType: " + debugType);
- }
- Print("-----------");
- }
- }
- class DefaultCharacterCreationMethods
- {
- static ref array<int> m_AttachmentSlots = {
- InventorySlots.SHOULDER,
- InventorySlots.MELEE,
- InventorySlots.HEADGEAR,
- InventorySlots.MASK,
- InventorySlots.EYEWEAR,
- InventorySlots.GLOVES,
- InventorySlots.ARMBAND,
- InventorySlots.BODY,
- InventorySlots.VEST,
- InventorySlots.BACK,
- InventorySlots.HIPS,
- InventorySlots.LEGS,
- InventorySlots.FEET
- };
- //conversion nescesssary for legacy reasons...
- static ref array<string> m_ConfigArrayNames = {
- "shoulder",
- "melee",
- "headgear",
- "mask",
- "eyewear",
- "gloves",
- "armband",
- "top",
- "vests",
- "backpacks",
- "hips",
- "bottom",
- "shoe"
- };
-
- const static string m_Path = "cfgCharacterCreation";
-
- //! Returns config path of att. slot category, empty if undefined
- static string GetPathFromSlotID(int slot_ID)
- {
- int idx = m_AttachmentSlots.Find(slot_ID);
- string path = "" + m_Path + " " + m_ConfigArrayNames.Get(idx);
- return path;
- }
-
- //! How many 'default equip' types are listed in the corresponding array
- static int GetConfigArrayCountFromSlotID(int slot_ID)
- {
- TStringArray types = new TStringArray;
- GetGame().ConfigGetTextArray(GetPathFromSlotID(slot_ID),types);
- return types.Count();
- }
-
- //! Lists all configured types (if any) for the appropriate attachment
- static array<string> GetConfigAttachmentTypes(int slot_ID)
- {
- TStringArray types = new TStringArray;
- GetGame().ConfigGetTextArray(GetPathFromSlotID(slot_ID),types);
- return types;
- }
-
- //! Lists all customizable InventorySlots
- static array<int> GetAttachmentSlotsArray()
- {
- return m_AttachmentSlots;
- }
-
- //! for conversion of slot ID to config array's string
- static array<string> GetConfigArrayNames()
- {
- return m_ConfigArrayNames;
- }
- }
- //! C++ OptionAccessType
- enum OptionAccessType
- {
- AT_UNKNOWN,
- AT_OBJECTS_DETAIL,
- AT_TEXTURE_DETAIL,
- AT_HDR_DETAIL,
- AT_FSAA_DETAIL,
- AT_VSYNC_VALUE,
- AT_ANISO_DETAIL,
- AT_OPTIONS_FXAA_VALUE,
- AT_OPTIONS_SW_VALUE,
- AT_POSTPROCESS_EFFECTS,
- AT_QUALITY_PREFERENCE,
- AT_ATOC_DETAIL,
- AT_AMBIENT_OCCLUSION,
- AT_BLOOM,
- AT_ROTATION_BLUR,
- AT_SHADOW_DETAIL,
- AT_OPTIONS_TERRAIN,
- AT_OPTIONS_RESOLUTION,
- AT_OPTIONS_GAMMA_SLIDER,
- AT_OPTIONS_BRIGHT_SLIDER,
- AT_OPTIONS_VISIBILITY_SLIDER,
- AT_OPTIONS_OBJECT_VISIBILITY_SLIDER,
- AT_OPTIONS_SHADOW_VISIBILITY_SLIDER,
- AT_OPTIONS_DRAWDISTANCE_SLIDER,
- AT_ASPECT_RATIO,
- AT_OPTIONS_FIELD_OF_VIEW,
- AT_OPTIONS_MUSIC_SLIDER,
- AT_OPTIONS_EFFECTS_SLIDER,
- AT_OPTIONS_VON_SLIDER,
- AT_OPTIONS_MASTER_VOLUME,
- AT_OPTIONS_HWACC,
- AT_OPTIONS_EAX,
- AT_OPTIONS_LANGUAGE,
- AT_OPTIONS_RADIO,
- AT_CONFIG_MOUSE_FILTERING,
- AT_CONFIG_HEAD_BOB,
- AT_OPTIONS_DISPLAY_MODE,
- AT_OPTIONS_TERRAIN_SHADER,
- AT_OPTIONS_AIM_HELPER,
- AT_OPTIONS_MOUSE_AND_KEYBOARD,
- AT_OPTIONS_PAUSE,
- AT_OPTIONS_FLIPMODE,
- AT_OPTIONS_VON_THRESHOLD_SLIDER,
- AT_OPTIONS_MOUSE_YAXIS_INVERTED,
- AT_OPTIONS_MOUSE_XAXIS,
- AT_OPTIONS_MOUSE_YAXIS,
- AT_OPTIONS_MOUSE_XAXIS_AIM_MOD,
- AT_OPTIONS_MOUSE_YAXIS_AIM_MOD,
- AT_OPTIONS_CONTROLLER_LS_XAXIS,
- AT_OPTIONS_CONTROLLER_LS_YAXIS,
- AT_OPTIONS_CONTROLLER_LS_XAXIS_VEHICLE_MOD,
- AT_OPTIONS_CONTROLLER_RS_YAXIS_INVERTED,
- AT_OPTIONS_CONTROLLER_RS_XAXIS,
- AT_OPTIONS_CONTROLLER_RS_YAXIS,
- AT_OPTIONS_CONTROLLER_RS_XAXIS_AIM_MOD,
- AT_OPTIONS_CONTROLLER_RS_YAXIS_AIM_MOD,
- AT_OPTIONS_VON_INPUT_MODE,
- AT_OPTIONS_CONTROLLER_LS_DEADZONE,
- AT_OPTIONS_CONTROLLER_RS_DEADZONE,
-
- AT_OPTIONS_VISIBILITY_COMBO,
- AT_OPTIONS_OBJECT_VISIBILITY_COMBO,
- };
- //! Used for script-based game options. For anything C++ based, you would most likely use "Option Access Type" above
- enum OptionIDsScript
- {
- OPTION_HUD = 100, //starts at 100 to avoid ID conflict with AT_
- OPTION_HUD_VEHICLE,
- OPTION_CROSSHAIR,
- OPTION_GAME_MESSAGES,
- OPTION_ADMIN_MESSAGES,
- OPTION_PLAYER_MESSAGES,
- OPTION_QUICKBAR,
- OPTION_SERVER_INFO,
- OPTION_BLEEDINGINDICATION,
- OPTION_CONNECTIVITY_INFO,
- OPTION_HUD_BRIGHTNESS,
- OPTION_AMBIENT_MUSIC_MODE
- };
- // -------------------------------------------------------------------------
- /*
- // Option Access Control Type
- const int OA_CT_NUMERIC = 0;
- const int OA_CT_SWITCH = 1;
- const int OA_CT_LIST = 2;
- // Option Field of view constants
- const float OPTIONS_FIELD_OF_VIEW_MIN = 0.75242724772f;
- const float OPTIONS_FIELD_OF_VIEW_MAX = 1.30322025726f;
- */
- class OptionsAccess: Managed
- {
- //proto private void ~OptionsAccess();
- //proto private void OptionsAccess();
- /**
- \brief AccessType of current option
- \return AccessType
- */
- proto native int GetAccessType();
-
- /**
- \brief Current option controller type. OA_CT_NUMERIC = 0, OA_CT_SWITCH = 1, OA_CT_LIST = 2
- \return ControlType
- */
- proto native int GetControlType();
-
- /**
- \brief Applies the option value if the value has changed and forgets the old value. This function has no effect on internal options, see OptionsAccess::Test
- */
- proto native void Apply();
-
- /**
- \brief Sets the option value internaly if the value has changed and wasnt set immediately upon change
- */
- proto native void Test();
-
- /**
- \brief Reverts the option value to old value if the value has changed and wasnt applied. This function has effect on internal options
- */
- proto native void Revert();
-
- /**
- \brief If the option value is changed and not applied or reverted. Value can already be set internally if the value was changed immediately
- \return 1 if the value is changed, 0 othewise
- */
- proto native int IsChanged();
-
- /**
- \brief If the option value will take effect only after the game is restarted
- \return 1 if the value is changed, 0 othewise
- */
- proto native int NeedRestart();
-
- /**
- \brief If the value is changed internally immediately upon change.
- \return 1 if the value is changed immediately, 0 othewise
- */
- proto native int SetChangeImmediately();
- //proto native void Initialize();
-
- /** \name Script Events API
- Setting and getting of ScriptEvents
- */
- //@{
-
- /**
- \brief Set the events
- \param events \p Managed The events to set
- */
- private proto void SetScriptEvents(Managed events);
-
- /**
- \brief Get the events
- \return \p Managed If there is any events set, this will return them
- */
- private proto Managed GetScriptEvents();
-
- /**
- \brief Get the events
- \return \p ParticleManagerEvents If there is any events set, this will return them so that additional functionality can be bound to them
- */
- OptionsAccessEvents GetEvents()
- {
- return OptionsAccessEvents.Cast(GetScriptEvents());
- }
-
- //@}
-
-
-
- /** \name Events
- Events called from C++
- */
- //@{
-
- void OnRevert()
- {
- GetEvents().Event_OnRevert.Invoke(this);
- }
-
- //@}
- };
- //! Invokers for ParticleManager events
- class OptionsAccessEvents
- {
- ref ScriptInvoker Event_OnRevert = new ScriptInvoker();
- }
- // -------------------------------------------------------------------------
- class NumericOptionsAccess extends OptionsAccess
- {
- proto native float ReadValue();
- proto native void WriteValue(float value);
- proto native float GetMin();
- proto native float GetMax();
- proto native float GetDefault();
- };
- // -------------------------------------------------------------------------
- class ListOptionsAccess extends OptionsAccess
- {
- proto native int GetIndex();
- proto native int GetDefaultIndex();
- proto native void SetIndex(int index);
- proto native int GetItemsCount();
- proto void GetItemText(int index, out string value);
-
- void GetAllItemsText(array<string> output)
- {
- string s;
- for (int i = 0; i < GetItemsCount(); ++i)
- {
- GetItemText(i, s);
- output.Insert(s);
- }
- }
- };
- // -------------------------------------------------------------------------
- class SwitchOptionsAccess extends OptionsAccess
- {
- proto native void Switch();
- proto void GetItemText(out string value);
- proto native int GetIndex();
- proto native int GetDefaultIndex();
- };
- // -------------------------------------------------------------------------
- class GameOptions: Managed
- {
- /**
- \brief Tests, Applies every option and save config with options to file, see OptionsAccess::Test, OptionsAccess::Apply
- */
- proto native void Apply();
- /**
- \brief Load config with options and Revert every option, see OptionsAccess::Revert
- */
- proto native void Revert();
- /**
- \brief Tests every option, see OptionsAccess::Test
- */
- proto native void Test();
- /**
- \brief Get option by index
- @param index
- \return OptionsAccess
- */
- proto native OptionsAccess GetOption(int index);
-
- /**
- \brief Get option by AccessType
- @param AccessType
- \return OptionsAccess
- */
- proto native OptionsAccess GetOptionByType(int accessType);
-
- /**
- \brief Registered options count
- \return number of options
- */
- proto native int GetOptionsCount();
- /**
- \brief Checks if any option is changed and needs restart, see OptionsAccess::IsChanged, OptionsAccess::NeedRestart
- \return 1 if such option was found, 0 othewise
- */
- proto native int NeedRestart();
-
- /**
- \brief Checks if any option is changed, see OptionsAccess::IsChanged
- \return 1 if such option was found, 0 othewise
- */
- proto native int IsChanged();
-
- /**
- \brief Initializes option values with the current users settings
- */
- proto native void Initialize();
- };
- typedef Link<Object> OLinkT;
- /**
- * @fn SpawnEntity
- * @brief Spawns entity in known inventory location
- *
- * @param[in] object_name \p string Name of item class
- * @param[in] inv_loc \p Inventory Location of the spawned item
- * @return created entity in case of success, null otherwise
- **/
- EntityAI SpawnEntity (string object_name, notnull InventoryLocation inv_loc, int iSetupFlags, int iRotation)
- {
- return GameInventory.LocationCreateEntity(inv_loc, object_name,iSetupFlags,iRotation);
- }
- class Static : Object
- {
- };
- class PrtTest // Temporal class for toggling particles on guns
- {
- static bool m_GunParticlesState = true;
- }
- // #include "Scripts/Classes/Component/_include.c"
|