// Generated by FOnline Intellisense Creator for MSVC.
// Manual changes in this file will be lost if the program is run again.

// Used file:
// FOnlineServer.exe

#define in
#define inout
#define out

// Type definitions
typedef unsigned long long uint64;
typedef unsigned int uint;
typedef unsigned short uint16;
typedef unsigned char uint8;
typedef long long int64;
typedef short int int16;
typedef signed char int8;
typedef void* unknown; // for anonymous types

// Forward declarations of global types
template <typename T> class array;
class string;
class any;
class dictionary;
class file;
class DataRef;
class DataVal;
class ProtoItem;
class CritterCl;
class ItemCl;

 // Global properties
bool __ConsoleActive;
bool __GmapActive;
bool __GmapWait;
float __GmapZoom;
int __GmapOffsetX;
int __GmapOffsetY;
int __GmapGroupCurX;
int __GmapGroupCurY;
int __GmapGroupToX;
int __GmapGroupToY;
float __GmapGroupSpeed;
uint16 __Year;
uint16 __Month;
uint16 __Day;
uint16 __Hour;
uint16 __Minute;
uint16 __Second;
uint16 __TimeMultiplier;
uint __FullSecond;
bool __DisableTcpNagle;
bool __DisableZlibCompression;
uint __FloodSize;
bool __NoAnswerShuffle;
bool __DialogDemandRecheck;
uint __FixBoyDefaultExperience;
uint __SneakDivider;
uint __LevelCap;
bool __LevelCapAddExperience;
uint __LookNormal;
uint __LookMinimum;
uint __GlobalMapMaxGroupCount;
uint __CritterIdleTick;
uint __TurnBasedTick;
int __DeadHitPoints;
uint __Breaktime;
uint __TimeoutTransfer;
uint __TimeoutBattle;
uint __ApRegeneration;
uint __RtApCostCritterWalk;
uint __RtApCostCritterRun;
uint __RtApCostMoveItemContainer;
uint __RtApCostMoveItemInventory;
uint __RtApCostPickItem;
uint __RtApCostDropItem;
uint __RtApCostReloadWeapon;
uint __RtApCostPickCritter;
uint __RtApCostUseItem;
uint __RtApCostUseSkill;
bool __RtAlwaysRun;
uint __TbApCostCritterMove;
uint __TbApCostMoveItemContainer;
uint __TbApCostMoveItemInventory;
uint __TbApCostPickItem;
uint __TbApCostDropItem;
uint __TbApCostReloadWeapon;
uint __TbApCostPickCritter;
uint __TbApCostUseItem;
uint __TbApCostUseSkill;
uint __ApCostAimEyes;
uint __ApCostAimHead;
uint __ApCostAimGroin;
uint __ApCostAimTorso;
uint __ApCostAimArms;
uint __ApCostAimLegs;
bool __TbAlwaysRun;
bool __RunOnCombat;
bool __RunOnTransfer;
uint __GlobalMapWidth;
uint __GlobalMapHeight;
uint __GlobalMapZoneLength;
uint __GlobalMapMoveTime;
uint __BagRefreshTime;
uint __AttackAnimationsMinDist;
uint __WisperDist;
uint __ShoutDist;
int __LookChecks;
uint __LookDir0;
uint __LookDir1;
uint __LookDir2;
uint __LookDir3;
uint __LookDir4;
uint __LookSneakDir0;
uint __LookSneakDir1;
uint __LookSneakDir2;
uint __LookSneakDir3;
uint __LookSneakDir4;
uint __LookWeight;
bool __CustomItemCost;
uint __RegistrationTimeout;
uint __AccountPlayTime;
bool __LoggingVars;
uint __ScriptRunSuspendTimeout;
uint __ScriptRunMessageTimeout;
uint __TalkDistance;
uint __NpcMaxTalkers;
uint __MinNameLength;
uint __MaxNameLength;
uint __DlgTalkMinTime;
uint __DlgBarterMinTime;
uint __MinimumOfflineTime;
int __StartSpecialPoints;
int __StartTagSkillPoints;
int __SkillMaxValue;
int __SkillModAdd2;
int __SkillModAdd3;
int __SkillModAdd4;
int __SkillModAdd5;
int __SkillModAdd6;
bool __AbsoluteOffsets;
uint __SkillBegin;
uint __SkillEnd;
uint __TimeoutBegin;
uint __TimeoutEnd;
uint __KillBegin;
uint __KillEnd;
uint __PerkBegin;
uint __PerkEnd;
uint __AddictionBegin;
uint __AddictionEnd;
uint __KarmaBegin;
uint __KarmaEnd;
uint __DamageBegin;
uint __DamageEnd;
uint __TraitBegin;
uint __TraitEnd;
uint __ReputationBegin;
uint __ReputationEnd;
int __ReputationLoved;
int __ReputationLiked;
int __ReputationAccepted;
int __ReputationNeutral;
int __ReputationAntipathy;
int __ReputationHated;
bool __Quit;
bool __OpenGLDebug;
bool __AssimpLogging;
int __MouseX;
int __MouseY;
uint8 __RoofAlpha;
bool __HideCursor;
int __ScreenWidth;
int __ScreenHeight;
int __MultiSampling;
bool __DisableLMenu;
bool __DisableMouseEvents;
bool __DisableKeyboardEvents;
bool __HidePassword;
string __PlayerOffAppendix;
uint __DamageHitDelay;
int __CombatMessagesType;
bool __ShowTile;
bool __ShowRoof;
bool __ShowItem;
bool __ShowScen;
bool __ShowWall;
bool __ShowCrit;
bool __ShowFast;
bool __ShowPlayerNames;
bool __ShowNpcNames;
bool __ShowCritId;
bool __ScrollKeybLeft;
bool __ScrollKeybRight;
bool __ScrollKeybUp;
bool __ScrollKeybDown;
bool __ScrollMouseLeft;
bool __ScrollMouseRight;
bool __ScrollMouseUp;
bool __ScrollMouseDown;
bool __ShowGroups;
bool __HelpInfo;
bool __FullScr;
bool __VSync;
int __FlushVal;
int __BaseTex;
int __Light;
uint __ScrollDelay;
int __ScrollStep;
bool __MouseScroll;
bool __ScrollCheck;
string __FoDataPath;
string __Host;
uint __Port;
uint __ProxyType;
string __ProxyHost;
uint __ProxyPort;
string __ProxyUser;
string __ProxyPass;
string __Name;
uint __TextDelay;
bool __AlwaysOnTop;
int __FixedFPS;
bool __MsgboxInvert;
int __ChangeLang;
uint8 __DefaultCombatMode;
bool __MessNotify;
bool __SoundNotify;
int __IndicatorType;
uint __DoubleClickTime;
int __RunModMul;
int __RunModDiv;
int __RunModAdd;
bool __DisableDrawScreens;
uint __Animation3dSmoothTime;
uint __Animation3dFPS;
bool __MapZooming;
float __SpritesZoom;
float __SpritesZoomMin;
float __SpritesZoomMax;
float __EffectValue0;
float __EffectValue1;
float __EffectValue2;
float __EffectValue3;
float __EffectValue4;
float __EffectValue5;
float __EffectValue6;
float __EffectValue7;
float __EffectValue8;
float __EffectValue9;
bool __AlwaysRun;
uint __AlwaysRunMoveDist;
uint __AlwaysRunUseDist;
uint __CritterFidgetTime;
uint __Anim2CombatBegin;
uint __Anim2CombatIdle;
uint __Anim2CombatEnd;
bool __MapHexagonal;
int __MapHexWidth;
int __MapHexHeight;
int __MapHexLineHeight;
int __MapTileOffsX;
int __MapTileOffsY;
int __MapRoofOffsX;
int __MapRoofOffsY;
int __MapRoofSkipSize;
float __MapCameraAngle;
bool __MapSmoothPath;
string __MapDataPrefix;
int __GeometryType;
uint __HitAimEyes;
uint __HitAimHead;
uint __HitAimGroin;
uint __HitAimTorso;
uint __HitAimArms;
uint __HitAimLegs;
uint __EncounterTime;
bool __ConfigAwareness;
uint8 __ConfigDisplayAchievements;
bool __ConfigDisplayTC;
uint8 __ConfigDisplayTCZones;
bool __ConfigFog;
uint __ConfigFogColor;
bool __ConfigIgnoreLangChange;
uint __ConfigDamageHitColor;
int8 __ConfigDamageHitOffXfrom;
int8 __ConfigDamageHitOffXto;
int8 __ConfigDamageHitOffYfrom;
int8 __ConfigDamageHitOffYto;
bool __ConfigVerboseActionHead;
bool __ConfigVerboseActionBox;
uint __ConfigVerboseActionColor;
int8 __ConfigVerboseActionOffXfrom;
int8 __ConfigVerboseActionOffXto;
int8 __ConfigVerboseActionOffYfrom;
int8 __ConfigVerboseActionOffYto;
bool __ConfigFollowerExperience;

 // Registered types declarations
template <typename T> class array
{
	T& opIndex(uint);
	T& operator [](uint); // created from the previous
	const T& opIndex(uint) const;
	const T& operator [](uint) const; // created from the previous
	array<T> & opAssign(const array<T> &in);
	array<T> & operator =(const array<T> &in); // created from the previous
	void insertAt(uint, const T&in);
	void removeAt(uint);
	void insertFirst(const T&in);
	void removeFirst();
	void insertLast(const T&in);
	void removeLast();
	uint length() const;
	void reserve(uint);
	void resize(uint);
	void grow(uint);
	void reduce(uint);
	void sortAsc();
	void sortAsc(uint, uint);
	void sortDesc();
	void sortDesc(uint, uint);
	void reverse();
	int find(const T&in) const;
	int find(uint, const T&in) const;
	bool opEquals(const array<T> &in) const;
	bool operator ==(const array<T> &in) const; // created from the previous
	bool operator !=(const array<T> &in) const; // created from the previous
	bool isEmpty() const;
	T& first();
	const T& first() const;
	T& last();
	const T& last() const;
	uint get_length() const;
	void set_length(uint);
};

class string
{
	string& opAssign(const string&in);
	string& operator =(const string&in); // created from the previous
	string& opAddAssign(const string&in);
	string& operator +=(const string&in); // created from the previous
	bool opEquals(const string&in) const;
	bool operator ==(const string&in) const; // created from the previous
	bool operator !=(const string&in) const; // created from the previous
	int opCmp(const string&in) const;
	int operator <(const string&in) const; // created from the previous
	int operator <=(const string&in) const; // created from the previous
	int operator >(const string&in) const; // created from the previous
	int operator >=(const string&in) const; // created from the previous
	string@ opAdd(const string&in) const;
	string@ operator +(const string&in) const; // created from the previous
	uint8& opIndex(uint);
	uint8& operator [](uint); // created from the previous
	const uint8& opIndex(uint) const;
	const uint8& operator [](uint) const; // created from the previous
	uint length() const;
	void resize(uint);
	string& opAssign(double);
	string& operator =(double); // created from the previous
	string& opAddAssign(double);
	string& operator +=(double); // created from the previous
	string@ opAdd(double) const;
	string@ operator +(double) const; // created from the previous
	string@ opAdd_r(double) const;
	string& opAssign(float);
	string& operator =(float); // created from the previous
	string& opAddAssign(float);
	string& operator +=(float); // created from the previous
	string@ opAdd(float) const;
	string@ operator +(float) const; // created from the previous
	string@ opAdd_r(float) const;
	string& opAssign(int);
	string& operator =(int); // created from the previous
	string& opAddAssign(int);
	string& operator +=(int); // created from the previous
	string@ opAdd(int) const;
	string@ operator +(int) const; // created from the previous
	string@ opAdd_r(int) const;
	string& opAssign(uint);
	string& operator =(uint); // created from the previous
	string& opAddAssign(uint);
	string& operator +=(uint); // created from the previous
	string@ opAdd(uint) const;
	string@ operator +(uint) const; // created from the previous
	string@ opAdd_r(uint) const;
	string& opAssign(bool);
	string& operator =(bool); // created from the previous
	string& opAddAssign(bool);
	string& operator +=(bool); // created from the previous
	string@ opAdd(bool) const;
	string@ operator +(bool) const; // created from the previous
	string@ opAdd_r(bool) const;
};

class any
{
	any& opAssign(any&in);
	any& operator =(any&in); // created from the previous
	void store(unknown&in);
	void store(int64&in);
	void store(double&in);
	bool retrieve(unknown&out);
	bool retrieve(int64&out);
	bool retrieve(double&out);
};

class dictionary
{
	dictionary& opAssign(const dictionary&in);
	dictionary& operator =(const dictionary&in); // created from the previous
	void set(const string&in, unknown&in);
	bool get(const string&in, unknown&out) const;
	void set(const string&in, int64&in);
	bool get(const string&in, int64&out) const;
	void set(const string&in, double&in);
	bool get(const string&in, double&out) const;
	bool exists(const string&in) const;
	bool isEmpty() const;
	uint getSize() const;
	void delete(const string&in);
	void deleteAll();
	uint keys(array<string@> @) const;
};

class file
{
	bool mostSignificantByteFirst;
	int open(const string&in, const string&in);
	int close();
	int getSize() const;
	bool isEndOfFile() const;
	int readString(uint, string&out);
	int readLine(string&out);
	int64 readInt(uint);
	uint64 readUInt(uint);
	float readFloat();
	double readDouble();
	int writeString(const string&in);
	int writeInt(int64, uint);
	int writeUInt(uint64, uint);
	int writeFloat(float);
	int writeDouble(double);
	int getPos() const;
	int setPos(int);
	int movePos(int);
	string@ readWord();
	int readNumber();
	uint8 readUint8();
	uint16 readUint16();
	uint readUint32();
	uint64 readUint64();
	uint readData(uint count, array<uint8> &inout data); // Arguments for this function have been guessed
	bool writeUint8(uint8 data); // Arguments for this function have been guessed
	bool writeUint16(uint16 data); // Arguments for this function have been guessed
	bool writeUint32(uint);
	bool writeUint64(uint64 data); // Arguments for this function have been guessed
	bool writeData(array<uint8> &inout data, uint count); // Arguments for this function have been guessed
};

class DataRef
{
	const int& opIndex(uint) const;
	const int& operator [](uint) const; // created from the previous
};

class DataVal
{
	const int opIndex(uint) const;
	const int operator [](uint) const; // created from the previous
};

class ProtoItem
{
	const uint16 ProtoId;
	const int Type;
	const uint PicMap;
	const uint PicInv;
	const uint Flags;
	const bool Stackable;
	const bool Deteriorable;
	const bool GroundLevel;
	const int Corner;
	const int Dir;
	const uint8 Slot;
	const uint Weight;
	const uint Volume;
	const uint Cost;
	const uint StartCount;
	const uint8 SoundId;
	const uint8 Material;
	const uint8 LightFlags;
	const uint8 LightDistance;
	const int8 LightIntensity;
	const uint LightColor;
	const bool DisableEgg;
	const uint16 AnimWaitBase;
	const uint16 AnimWaitRndMin;
	const uint16 AnimWaitRndMax;
	const uint8 AnimStay_0;
	const uint8 AnimStay_1;
	const uint8 AnimShow_0;
	const uint8 AnimShow_1;
	const uint8 AnimHide_0;
	const uint8 AnimHide_1;
	const int16 OffsetX;
	const int16 OffsetY;
	const uint8 SpriteCut;
	const int8 DrawOrderOffsetHexY;
	const uint16 RadioChannel;
	const uint16 RadioFlags;
	const uint8 RadioBroadcastSend;
	const uint8 RadioBroadcastRecv;
	const uint8 IndicatorStart;
	const uint8 IndicatorMax;
	const uint HolodiskNum;
	const int StartValue_0;
	const int StartValue_1;
	const int StartValue_2;
	const int StartValue_3;
	const int StartValue_4;
	const int StartValue_5;
	const int StartValue_6;
	const int StartValue_7;
	const int StartValue_8;
	const int StartValue_9;
	const uint8 BlockLines;
	const uint16 ChildPid_0;
	const uint16 ChildPid_1;
	const uint16 ChildPid_2;
	const uint16 ChildPid_3;
	const uint16 ChildPid_4;
	const uint8 ChildLines_0;
	const uint8 ChildLines_1;
	const uint8 ChildLines_2;
	const uint8 ChildLines_3;
	const uint8 ChildLines_4;
	const bool Weapon_IsUnarmed;
	const int Weapon_UnarmedTree;
	const int Weapon_UnarmedPriority;
	const int Weapon_UnarmedMinAgility;
	const int Weapon_UnarmedMinUnarmed;
	const int Weapon_UnarmedMinLevel;
	const uint Weapon_Anim1;
	const uint Weapon_MaxAmmoCount;
	const int Weapon_Caliber;
	const uint16 Weapon_DefaultAmmoPid;
	const int Weapon_MinStrength;
	const int Weapon_Perk;
	const uint Weapon_ActiveUses;
	const int Weapon_Skill_0;
	const int Weapon_Skill_1;
	const int Weapon_Skill_2;
	const uint Weapon_PicUse_0;
	const uint Weapon_PicUse_1;
	const uint Weapon_PicUse_2;
	const uint Weapon_MaxDist_0;
	const uint Weapon_MaxDist_1;
	const uint Weapon_MaxDist_2;
	const uint Weapon_Round_0;
	const uint Weapon_Round_1;
	const uint Weapon_Round_2;
	const uint Weapon_ApCost_0;
	const uint Weapon_ApCost_1;
	const uint Weapon_ApCost_2;
	const bool Weapon_Aim_0;
	const bool Weapon_Aim_1;
	const bool Weapon_Aim_2;
	const uint8 Weapon_SoundId_0;
	const uint8 Weapon_SoundId_1;
	const uint8 Weapon_SoundId_2;
	const int Ammo_Caliber;
	const bool Door_NoBlockMove;
	const bool Door_NoBlockShoot;
	const bool Door_NoBlockLight;
	const uint Container_Volume;
	const bool Container_Changeble;
	const bool Container_CannotPickUp;
	const bool Container_MagicHandsGrnd;
	const uint16 Locker_Condition;
	const int Grid_Type;
	const uint Car_Speed;
	const uint Car_Passability;
	const uint Car_DeteriorationRate;
	const uint Car_CrittersCapacity;
	const uint Car_TankVolume;
	const uint Car_MaxDeterioration;
	const uint Car_FuelConsumption;
	const uint Car_Entrance;
	const uint Car_MovementType;
	const int RevealSneakers;
	const int NeedBlueprint;
	const int8 CraftLevel;
	const uint16 Misc_ChargeStart;
	const uint16 Misc_ChargeMax;
	const uint16 Misc_ToolSkillNum;
	const int Misc_ToolSkillBonus;
	const uint Armor_CrTypeMale;
	const uint Armor_CrTypeFemale;
	const int Armor_AC;
	const uint Armor_Perk;
	const int Armor_DRNormal;
	const int Armor_DRLaser;
	const int Armor_DRFire;
	const int Armor_DRPlasma;
	const int Armor_DRElectr;
	const int Armor_DREmp;
	const int Armor_DRExplode;
	const int Armor_DTNormal;
	const int Armor_DTLaser;
	const int Armor_DTFire;
	const int Armor_DTPlasma;
	const int Armor_DTElectr;
	const int Armor_DTEmp;
	const int Armor_DTExplode;
	const uint Armor_CrTypeMale2;
	const uint Armor_CrTypeMale3;
	const uint Armor_CrTypeMale4;
	const uint Armor_CrTypeFemale2;
	const uint Armor_CrTypeFemale3;
	const uint Armor_CrTypeFemale4;
	const int8 Armor_CMCritChance;
	const int8 Armor_CMCritPower;
	const int Weapon_DmgType_0;
	const int Weapon_DmgType_1;
	const int Weapon_DmgType_2;
	const uint Weapon_Anim2_0;
	const uint Weapon_Anim2_1;
	const uint Weapon_Anim2_2;
	const int Weapon_DmgMin_0;
	const int Weapon_DmgMin_1;
	const int Weapon_DmgMin_2;
	const int Weapon_DmgMax_0;
	const int Weapon_DmgMax_1;
	const int Weapon_DmgMax_2;
	const uint16 Weapon_Effect_0;
	const uint16 Weapon_Effect_1;
	const uint16 Weapon_Effect_2;
	const bool Weapon_Remove_0;
	const bool Weapon_Remove_1;
	const bool Weapon_Remove_2;
	const uint Weapon_ReloadAp;
	const int Weapon_UnarmedCriticalBonus;
	const uint Weapon_CriticalFailture;
	const bool Weapon_UnarmedArmorPiercing;
	const bool Weapon_NoRunning;
	const int Ammo_AcMod;
	const int Ammo_DrMod;
	const uint Ammo_DmgMult;
	const uint Ammo_DmgDiv;
	const uint8 Ammo_DTDiv;
	const int16 Blueprint_Param;
	const uint8 Blueprint_Id;
	const uint8 Blueprint_Level;
	const int8 Blueprint_Type;
	const uint8 Ingredient_Type_1;
	const uint16 Ingredient_Returns_1;
	const uint8 Ingredient_Type_2;
	const uint16 Ingredient_Returns_2;
	const uint8 Ingredient_Type_3;
	const uint16 Ingredient_Returns_3;
};

class CritterCl
{
	const uint Id;
	const uint16 Pid;
	const uint CrType;
	const uint CrTypeAlias;
	const uint16 HexX;
	const uint16 HexY;
	const uint8 Dir;
	const uint8 Cond;
	const uint Anim1Life;
	const uint Anim1Knockout;
	const uint Anim1Dead;
	const uint Anim2Life;
	const uint Anim2Knockout;
	const uint Anim2Dead;
	const uint Flags;
	string Name;
	string NameOnHead;
	string Lexems;
	uint NameColor;
	const int16 Ref;
	DataVal Param;
	DataRef ParamBase;
	array<int> @ Anim3dLayer;
	DataVal Stat;
	DataRef StatBase;
	DataVal Skill;
	DataRef SkillBase;
	DataVal TagSkill;
	DataRef TagSkillBase;
	DataVal Timeout;
	DataRef TimeoutBase;
	DataVal Kill;
	DataRef KillBase;
	DataVal Perk;
	DataRef PerkBase;
	DataVal Addiction;
	DataRef AddictionBase;
	DataVal Karma;
	DataRef KarmaBase;
	DataVal Damage;
	DataRef DamageBase;
	DataVal Mode;
	DataRef ModeBase;
	DataVal Trait;
	DataRef TraitBase;
	DataVal Profession;
	DataRef ProfessionBase;
	DataVal Achievement;
	DataRef AchievementBase;
	DataVal Reputation;
	DataRef ReputationBase;
	DataVal GoodEvilList;
	DataRef GoodEvilListBase;
	DataVal Followers;
	DataRef FollowersBase;
	DataVal FollowerVar;
	DataRef FollowerVarBase;
	bool IsChosen() const;
	bool IsPlayer() const;
	bool IsNpc() const;
	bool IsLife() const;
	bool IsKnockout() const;
	bool IsDead() const;
	bool IsFree() const;
	bool IsBusy() const;
	bool IsAnim3d() const;
	bool IsAnimAviable(uint anim1, uint anim2) const; // Arguments for this function have been guessed
	bool IsAnimPlaying() const;
	uint GetAnim1() const;
	void Animate(uint anim1, uint anim2); // Arguments for this function have been guessed
	void Animate(uint anim1, uint anim2, ItemCl@ item); // Arguments for this function have been guessed
	void ClearAnim();
	void Wait(uint ms); // Arguments for this function have been guessed
	uint ItemsCount() const;
	uint ItemsWeight() const;
	uint ItemsVolume() const;
	uint CountItem(uint16 protoId) const; // Arguments for this function have been guessed
	ItemCl@ GetItem(uint16 protoId, int slot) const; // Arguments for this function have been guessed
	uint GetItems(int slot, array<ItemCl@> @ items) const; // Arguments for this function have been guessed
	uint GetItemsByType(int type, array<ItemCl@> @ items) const; // Arguments for this function have been guessed
	ProtoItem@ GetSlotProto(int slot, uint8&inout mode) const; // Arguments for this function have been guessed
	void SetVisible(bool visible); // Arguments for this function have been guessed
	bool GetVisible() const;
	void set_ContourColor(uint value); // Arguments for this function have been guessed
	uint get_ContourColor() const;
	uint GetMultihex() const;
	bool IsTurnBasedTurn() const;
	bool IsInjured();
	bool IsDmgEye();
	bool IsDmgLeg();
	bool IsDmgTwoLeg();
	bool IsDmgArm();
	bool IsDmgTwoArm();
	bool IsAddicted();
	bool IsOverweight();
	int GetAC(bool);
	int GetDR(uint, bool);
	int GetDT(uint, bool);
};

class ItemCl
{
	const uint Id;
	const ProtoItem@ Proto;
	const string Lexems;
	const uint8 Accessory;
	const uint MapId;
	const uint16 HexX;
	const uint16 HexY;
	const uint CritId;
	const uint8 CritSlot;
	const uint ContainerId;
	const uint StackId;
	const uint16 SortValue;
	const uint8 Info;
	const uint PicMap;
	const uint PicInv;
	const uint16 AnimWaitBase;
	const uint8 AnimStayBegin;
	const uint8 AnimStayEnd;
	const uint8 AnimShowBegin;
	const uint8 AnimShowEnd;
	const uint8 AnimHideBegin;
	const uint8 AnimHideEnd;
	const uint Flags;
	const uint8 Mode;
	const int Val0;
	const int Val1;
	const int Val2;
	const int Val3;
	const int Val4;
	const int Val5;
	const int Val6;
	const int Val7;
	const int Val8;
	const int Val9;
	const int8 LightIntensity;
	const uint8 LightDistance;
	const uint8 LightFlags;
	const uint LightColor;
	const int16 TrapValue;
	const uint8 Indicator;
	const uint8 BrokenFlags;
	const uint8 BrokenCount;
	const uint16 Deterioration;
	const uint16 AmmoPid;
	const uint16 AmmoCount;
	const uint LockerId;
	const uint16 LockerCondition;
	const uint16 LockerComplexity;
	const uint16 Charge;
	const uint16 RadioChannel;
	const uint16 RadioFlags;
	const uint8 RadioBroadcastSend;
	const uint8 RadioBroadcastRecv;
	const uint HolodiskNumber;
	const int16 OffsetX;
	const int16 OffsetY;
	const int16 Dir;
	bool IsStackable() const;
	bool IsDeteriorable() const;
	uint GetScriptId() const;
	uint8 GetType() const;
	uint16 GetProtoId() const;
	uint GetCount() const;
	bool GetMapPosition(uint16&inout hexX, uint16&inout hexY) const; // Arguments for this function have been guessed
	void Animate(uint8 fromFrame, uint8 toFrame); // Arguments for this function have been guessed
	bool Weapon_IsHtHAttack(uint8);
	bool Weapon_IsGunAttack(uint8);
	bool Weapon_IsRangedAttack(uint8);
};


 // Global functions
string@ substring(const string&in, int, int);
int findFirst(const string&in, const string&in, int arg2 = 0);
int findLast(const string&in, const string&in, int arg2 = 0);
int findFirstOf(const string&in, const string&in, int arg2 = 0);
int findFirstNotOf(const string&in, const string&in, int arg2 = 0);
int findLastOf(const string&in, const string&in, int arg2 = 0);
int findLastNotOf(const string&in, const string&in, int arg2 = 0);
array<string@> @ split(const string&in, const string&in);
array<string@> @ splitEx(const string&in, const string&in);
string@ join(const array<string@> &in, const string&in);
string@ strlwr(const string&in);
string@ strupr(const string&in);
float cos(float);
float sin(float);
float tan(float);
float acos(float);
float asin(float);
float atan(float);
float atan2(float, float);
float cosh(float);
float sinh(float);
float tanh(float);
float log(float);
float log10(float);
float pow(float, float);
float sqrt(float);
float ceil(float);
float abs(float);
float floor(float);
float fraction(float);
CritterCl@ GetChosen();
uint GetChosenActions(array<uint> @ actions);
void SetChosenActions(array<uint> @ actions);
ItemCl@ GetItem(uint itemId);
uint GetCrittersDistantion(CritterCl&inout cr1, CritterCl&inout cr2);
CritterCl@ GetCritter(uint critterId);
uint GetCrittersHex(uint16 hexX, uint16 hexY, uint radius, int findType, array<CritterCl@> @ critters);
uint GetCritters(uint16 pid, int findType, array<CritterCl@> @ critters);
uint GetCrittersPath(uint16 fromHx, uint16 fromHy, uint16 toHx, uint16 toHy, float angle, uint dist, int findType, array<CritterCl@> @ critters);
uint GetCrittersPath(uint16 fromHx, uint16 fromHy, uint16 toHx, uint16 toHy, float angle, uint dist, int findType, array<CritterCl@> @ critters, uint16&inout preBlockHx, uint16&inout preBlockHy, uint16&inout blockHx, uint16&inout blockHy);
void GetHexCoord(uint16 fromHx, uint16 fromHy, uint16&inout toHx, uint16&inout toHy, float angle, uint dist);
uint GetPathLength(uint16 fromHx, uint16 fromHy, uint16 toHx, uint16 toHy, uint cut);
uint GetPathLength(CritterCl&inout cr, uint16 toHx, uint16 toHy, uint cut);
void FlushScreen(uint fromColor, uint toColor, uint timeMs);
void QuakeScreen(uint noise, uint timeMs);
bool PlaySound(string&inout soundName);
bool PlaySound(uint8 soundType, uint8 soundTypeExt, uint8 soundId, uint8 soundIdExt);
bool PlayMusic(string&inout musicName, uint pos, uint repeat);
void PlayVideo(string&inout videoName, bool canStop);
bool IsTurnBased();
uint GetTurnBasedTime();
uint16 GetCurrentMapPid();
uint GetMessageFilters(array<int> @ filters);
void SetMessageFilters(array<int> @ filters);
void Message(string&inout text);
void Message(string&inout text, int type);
void Message(int textMsg, uint strNum);
void Message(int textMsg, uint strNum, int type);
void MapMessage(string&inout text, uint16 hx, uint16 hy, uint timeMs, uint color, bool fade, int offsX, int offsY);
string@ GetMsgStr(int textMsg, uint strNum);
string@ GetMsgStr(int textMsg, uint strNum, uint skipCount);
uint GetMsgStrNumUpper(int textMsg, uint strNum);
uint GetMsgStrNumLower(int textMsg, uint strNum);
uint GetMsgStrCount(int textMsg, uint strNum);
bool IsMsgStr(int textMsg, uint strNum);
string@ ReplaceText(const string&inout text, const string&inout replace, const string&inout str);
string@ ReplaceText(const string&inout text, const string&inout replace, int i);
string@ FormatTags(const string&inout text, const string@ lexems);
int GetSomeValue(int var);
void MoveScreen(uint16 hexX, uint16 hexY, uint speed);
void LockScreenScroll(CritterCl@ cr);
int GetFog(uint16 zoneX, uint16 zoneY);
void RefreshItemsCollection(int collection);
int GetScroll(int scrollElement);
void SetScroll(int scrollElement, int value);
uint GetDayTime(uint dayPart);
void GetDayColor(uint dayPart, uint8&inout r, uint8&inout g, uint8&inout b);
void RunServerScript(string&inout funcName, int p0, int p1, int p2, string@ p3, array<int> @ p4);
void RunServerScriptUnsafe(string&inout funcName, int p0, int p1, int p2, string@ p3, array<int> @ p4);
uint LoadSprite(string&inout name, int pathIndex);
uint LoadSprite(uint nameHash, uint8 dir);
int GetSpriteWidth(uint sprId, int sprIndex);
int GetSpriteHeight(uint sprId, int sprIndex);
uint GetSpriteCount(uint sprId);
void GetTextInfo(string&inout text, int w, int h, int font, int flags, int&inout tw, int&inout th, int&inout lines);
void DrawSprite(uint sprId, int sprIndex, int x, int y, uint color);
void DrawSprite(uint sprId, int sprIndex, int x, int y, uint color, bool applyOffsets);
void DrawSprite(uint sprId, int sprIndex, int x, int y, int w, int h, bool scratch, bool center, uint color);
void DrawSprite(uint sprId, int sprIndex, int x, int y, int w, int h, bool scratch, bool center, uint color, bool applyOffsets);
void DrawSpritePattern(uint sprId, int sprIndex, int x, int y, int w, int h, int sprWidth, int sprHeight, uint color);
void DrawText(string&inout text, int x, int y, int w, int h, uint color, int font, int flags);
void DrawPrimitive(int primitiveType, array<int> &inout data);
void DrawMapSprite(uint16 hx, uint16 hy, uint16 effectPid, uint sprId, int sprIndex, int offsX, int offsY);
void DrawCritter2d(uint crType, uint anim1, uint anim2, uint8 dir, int l, int t, int r, int b, bool scratch, bool center, uint color);
void DrawCritter3d(uint instance, uint crType, uint anim1, uint anim2, array<int> @ layers, array<float> @ position, uint color);
void ShowScreen(int screen, int p0, int p1, int p2);
void HideScreen(int screen, int p0, int p1, int p2);
void GetHardcodedScreenPos(int screen, int&inout x, int&inout y);
void DrawHardcodedScreen(int screen);
int GetKeybLang();
bool GetHexPos(uint16 hx, uint16 hy, int&inout x, int&inout y);
bool GetMonitorHex(int, int, uint16&inout, uint16&inout, bool arg4 = false);
ItemCl@ GetMonitorItem(int, int, bool arg2 = false);
CritterCl@ GetMonitorCritter(int, int, bool arg2 = false);
uint16 GetMapWidth();
uint16 GetMapHeight();
int GetCurrentCursor();
int GetLastCursor();
void ChangeCursor(int cursor);
void MoveHexByDir(uint16&inout hexX, uint16&inout hexY, uint8 dir, uint steps);
bool AppendIfaceIni(string&inout iniName);
string@ GetIfaceIniStr(string&inout key);
bool Load3dFile(string&inout fileName, int pathType);
void WaitPing();
bool LoadFont(int font, string&inout fontFileName);
void SetDefaultFont(int font, uint color);
void SetEffect(int effectType, int effectSubtype, string@ effectName);
void RefreshMap(bool onlyTiles, bool onlyRoof, bool onlyLight);
void MouseClick(int x, int y, int button, int cursor);
void KeyboardPress(uint8 key1, uint8 key2);
void SetRainAnimation(string@ fallAnimName, string@ dropAnimName);
uint GetFullSecond(uint16 year, uint16 month, uint16 day, uint16 hour, uint16 minute, uint16 second);
void GetTime(uint16&inout year, uint16&inout month, uint16&inout day, uint16&inout dayOfWeek, uint16&inout hour, uint16&inout minute, uint16&inout second, uint16&inout milliseconds);
void GetGameTime(uint fullSecond, uint16&inout year, uint16&inout month, uint16&inout day, uint16&inout dayOfWeek, uint16&inout hour, uint16&inout minute, uint16&inout second);
bool SetParameterGetBehaviour(uint index, string&inout funcName);
bool SetParameterChangeBehaviour(uint index, string&inout funcName);
void SetRegistrationParameter(uint index, bool enabled);
bool IsCritterCanWalk(uint crType);
bool IsCritterCanRun(uint crType);
bool IsCritterCanRotate(uint crType);
bool IsCritterCanAim(uint crType);
bool IsCritterCanArmor(uint crType);
bool IsCritterAnim1(uint crType, uint anim1);
int GetCritterAnimType(uint crType);
uint GetCritterAlias(uint crType);
string@ GetCritterTypeName(uint crType);
string@ GetCritterSoundName(uint crType);
void Log(string&inout text);
string@ GetLastError();
int Random(int minimum, int maximum);
ProtoItem@ GetProtoItem(uint16 protoId);
bool StrToInt(string@ text, int&inout result);
bool StrToFloat(string@ text, float&inout result);
uint GetDistantion(uint16 hexX1, uint16 hexY1, uint16 hexX2, uint16 hexY2);
uint8 GetDirection(uint16 fromHexX, uint16 fromHexY, uint16 toHexX, uint16 toHexY);
uint8 GetOffsetDir(uint16 fromHexX, uint16 fromHexY, uint16 toHexX, uint16 toHexY, float offset);
uint GetTick();
uint GetAngelScriptProperty(int property);
void SetAngelScriptProperty(int property, uint value);
uint GetStrHash(string@ str);
bool LoadDataFile(string&inout dataFileName);
int GetConstantValue(int constCollection, string@ name);
string@ GetConstantName(int constCollection, int value);
void AddConstant(int constCollection, string@ name, int value);
bool LoadConstants(int constCollection, string@ fileName, int pathType);
void AllowSlot(uint8 index, string&inout slotName);
uint GetCallstack(array<string@> @, array<string@> @, array<uint> @, array<uint> @);
bool GetCurrentModule(string&inout);
bool GetCurrentFunction(string&inout, string&inout, string&inout, bool arg3 = false);
uint GetEnum(string&inout, array<string@> @, array<int> @);
uint GetEnum(string&inout, string&inout, array<string@> @, array<int> @);
uint GetEnumList(array<string@> @);
uint GetEnumList(string&inout, array<string@> @);
bool EnumContains(string&inout, int);
bool EnumContains(string&inout, string&inout, int);
uint GetEnumValueCount(string&inout);
uint GetEnumValueCount(string&inout, string&inout);
bool IsLocalScript(string&inout);
void RunLocalScript(string&inout, int, int, int, string@, array<int> @);
void OpenURL(string@);
void OnlineStats_URL(string@);
void XFireDLL_InfoSet(uint, string@, string@);
void XFireDLL_InfoSend();
void XFireDLL_InfoCleanup();
