// 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 GameVar;
class NpcPlane;
class Item;
class Scenery;
class Critter;
class Map;
class Location;
class Synchronizer;
class CraftItem;
class Json;
class ExternalMessage;
class IObject;
class FuncBind;

 // Global properties
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 __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 __CouchDisabled;
int __DistressCallTime;
uint __TentGarbagerTime;
uint __FactionGarbagerTime;
uint __QuestGarbagerTime;
uint __AlertLevelReact;
int __EncountersFreeFollowers;
int __FacilitiesRegenTimeMin;
int __FacilitiesRegenTimeMax;
int __ClearRegenCountersTime;
int __IronOreTimeout;
int __IronOreBatch;
int __IronOreRegen;
int __IronOreCapacity;
int __MineralsTimeout;
int __MineralsBatch;
int __MineralsRegen;
int __MineralsCapacity;
int __JunkTimeout;
int __JunkBatch;
int __ElectronicPartsTimeout;
int __ElectronicPartsBatch;
int __ElectronicPartsRegen;
int __ElectronicPartsCap;
int __ElectronicParts2Timeout;
int __ElectronicParts2Batch;
int __ElectronicParts2Regen;
int __ElectronicParts2Cap;
int __FlintTimeout;
int __FlintBatch;
int __FibreTimeout;
int __FibreBatch;
int __FibreRegen;
int __FibreCapacity;
int __FruitTimeout;
int __FruitBatch;
int __FruitRegen;
int __FruitCapacity;
int __WoodTimeout;
int __WoodBatch;
int __WoodRegen;
int __WoodCapacity;
int __BrocTimeout;
int __BrocBatch;
int __XanderTimeout;
int __XanderBatch;
int __MeatTimeout;
int __MeatBatch;
int __MeatRegen;
int __MeatCapacity;
int __BrahminCrapTimeout;
int __BrahminCrapBatch;
int __TobaccoTimeout;
int __TobaccoBatch;
int __TobaccoRegen;
int __TobaccoCapacity;
int __BarleyTimeout;
int __BarleyBatch;
int __BarleyRegen;
int __BarleyCapacity;
int __Ore2Timeout;
int __Ore2Batch;
int __Ore2Regen;
int __Ore2Capacity;
int __Minerals2Timeout;
int __Minerals2Batch;
int __Minerals2Regen;
int __Minerals2Capacity;
int __UraniumTimeout;
int __UraniumBatch;
int __UraniumRegen;
int __UraniumCapacity;
int __ValveTubeTimeout;
int __ValveTubeBatch;
int __ChemicalsTimeout;
int __ChemicalsBatch;
int __ChemicalsRegen;
int __ChemicalsCapacity;
int __Chemicals2Timeout;
int __Chemicals2Batch;
int __Chemicals2Regen;
int __Chemicals2Capacity;
int __Fibre2Timeout;
int __Fibre2Batch;
int __BioGelTimeout;
int __BioGelBatch;
int __NukaColaTimeout;
int __NukaColaBatch;

 // 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;
	void ParseFloat(float, uint8);
	int replaceText(string@, string@);
};

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
	int& opIndex(uint);
	int& operator [](uint); // 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;
	string@ GetScriptName() const;
};

class GameVar
{
	int GetValue() const;
	int GetMin() const;
	int GetMax() const;
	bool IsQuest() const;
	uint GetQuestStr() const;
	GameVar& opAddAssign(const int);
	GameVar& operator +=(const int); // created from the previous
	GameVar& opSubAssign(const int);
	GameVar& operator -=(const int); // created from the previous
	GameVar& opMulAssign(const int);
	GameVar& operator *=(const int); // created from the previous
	GameVar& opDivAssign(const int);
	GameVar& operator /=(const int); // created from the previous
	GameVar& opAssign(const int);
	GameVar& operator =(const int); // created from the previous
	GameVar& opAddAssign(const GameVar&inout);
	GameVar& operator +=(const GameVar&inout); // created from the previous
	GameVar& opSubAssign(const GameVar&inout);
	GameVar& operator -=(const GameVar&inout); // created from the previous
	GameVar& opMulAssign(const GameVar&inout);
	GameVar& operator *=(const GameVar&inout); // created from the previous
	GameVar& opDivAssign(const GameVar&inout);
	GameVar& operator /=(const GameVar&inout); // created from the previous
	GameVar& opAssign(const GameVar&inout);
	GameVar& operator =(const GameVar&inout); // created from the previous
	int opAdd(const int);
	int operator +(const int); // created from the previous
	int opSub(const int);
	int operator -(const int); // created from the previous
	int opMul(const int);
	int operator *(const int); // created from the previous
	int opDiv(const int);
	int operator /(const int); // created from the previous
	int opAdd(const GameVar&inout);
	int operator +(const GameVar&inout); // created from the previous
	int opSub(const GameVar&inout);
	int operator -(const GameVar&inout); // created from the previous
	int opMul(const GameVar&inout);
	int operator *(const GameVar&inout); // created from the previous
	int opDiv(const GameVar&inout);
	int operator /(const GameVar&inout); // created from the previous
	bool opEquals(const int);
	bool operator ==(const int); // created from the previous
	bool operator !=(const int); // created from the previous
	int opCmp(const int);
	int operator <(const int); // created from the previous
	int operator <=(const int); // created from the previous
	int operator >(const int); // created from the previous
	int operator >=(const int); // created from the previous
	bool opEquals(const GameVar&inout);
	bool operator ==(const GameVar&inout); // created from the previous
	bool operator !=(const GameVar&inout); // created from the previous
	int opCmp(const GameVar&inout);
	int operator <(const GameVar&inout); // created from the previous
	int operator <=(const GameVar&inout); // created from the previous
	int operator >(const GameVar&inout); // created from the previous
	int operator >=(const GameVar&inout); // created from the previous
};

class NpcPlane
{
	int Type;
	uint Priority;
	int Identifier;
	uint IdentifierExt;
	bool Run;
	uint Misc_WaitSecond;
	int Misc_ScriptId;
	uint Attack_TargId;
	int Attack_MinHp;
	bool Attack_IsGag;
	uint16 Attack_GagHexX;
	uint16 Attack_GagHexY;
	uint16 Attack_LastHexX;
	uint16 Attack_LastHexY;
	uint16 Walk_HexX;
	uint16 Walk_HexY;
	uint8 Walk_Dir;
	uint Walk_Cut;
	uint16 Pick_HexX;
	uint16 Pick_HexY;
	uint16 Pick_Pid;
	uint Pick_UseItemId;
	bool Pick_ToOpen;
	NpcPlane@ GetCopy() const;
	NpcPlane@ SetChild(NpcPlane&inout child); // Arguments for this function have been guessed
	NpcPlane@ GetChild(uint index) const; // Arguments for this function have been guessed
	bool Misc_SetScript(string&inout funcName); // Arguments for this function have been guessed
};

class Item
{
	const uint Id;
	const ProtoItem@ Proto;
	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 bool IsNotValid;
	const uint8 Mode;
	uint16 SortValue;
	uint8 Info;
	uint PicMap;
	uint PicInv;
	uint16 AnimWaitBase;
	uint8 AnimStayBegin;
	uint8 AnimStayEnd;
	uint8 AnimShowBegin;
	uint8 AnimShowEnd;
	uint8 AnimHideBegin;
	uint8 AnimHideEnd;
	uint Cost;
	int Val0;
	int Val1;
	int Val2;
	int Val3;
	int Val4;
	int Val5;
	int Val6;
	int Val7;
	int Val8;
	int Val9;
	int8 LightIntensity;
	uint8 LightDistance;
	uint8 LightFlags;
	uint LightColor;
	uint8 Indicator;
	uint8 BrokenFlags;
	uint8 BrokenCount;
	uint16 Deterioration;
	uint16 AmmoPid;
	uint16 AmmoCount;
	uint LockerId;
	uint16 LockerCondition;
	uint16 LockerComplexity;
	uint16 Charge;
	uint16 RadioChannel;
	uint16 RadioFlags;
	uint8 RadioBroadcastSend;
	uint8 RadioBroadcastRecv;
	uint HolodiskNumber;
	int16 OffsetX;
	int16 OffsetY;
	int16 Dir;
	bool IsStackable() const;
	bool IsDeteriorable() const;
	bool SetScript(string@ script); // Arguments for this function have been guessed
	uint GetScriptId() const;
	bool SetEvent(int eventType, string@ funcName); // Arguments for this function have been guessed
	uint8 GetType() const;
	uint16 GetProtoId() const;
	uint GetCount() const;
	void SetCount(uint count); // Arguments for this function have been guessed
	uint GetCost() const;
	Item@ AddItem(uint16 protoId, uint count, uint specialId); // Arguments for this function have been guessed
	Item@ GetItem(uint16 protoId, uint specialId) const; // Arguments for this function have been guessed
	uint GetItems(uint specialId, array<Item@> @ items) const; // Arguments for this function have been guessed
	Map@ GetMapPosition(uint16&inout hexX, uint16&inout hexY) const; // Arguments for this function have been guessed
	bool ChangeProto(uint16 protoId) const; // Arguments for this function have been guessed
	void Update() const;
	void Animate(uint8 fromFrame, uint8 toFrame); // Arguments for this function have been guessed
	void SetLexems(string@ lexems); // Arguments for this function have been guessed
	Item@ GetChild(uint childIndex) const; // Arguments for this function have been guessed
	void EventFinish(bool deleted); // Arguments for this function have been guessed
	bool EventAttack(Critter&inout attacker, Critter&inout target); // Arguments for this function have been guessed
	bool EventUse(Critter&inout cr, Critter@ onCritter, Item@ onItem, Scenery@ onScenery); // Arguments for this function have been guessed
	bool EventUseOnMe(Critter&inout cr, Item@ usedItem); // Arguments for this function have been guessed
	bool EventSkill(Critter&inout cr, int skill); // Arguments for this function have been guessed
	void EventDrop(Critter&inout cr); // Arguments for this function have been guessed
	void EventMove(Critter&inout cr, uint8 fromSlot); // Arguments for this function have been guessed
	void EventWalk(Critter&inout cr, bool entered, uint8 dir); // Arguments for this function have been guessed
	void set_Flags(uint value); // Arguments for this function have been guessed
	uint get_Flags() const;
	void set_TrapValue(int16 val); // Arguments for this function have been guessed
	int16 get_TrapValue() const;
	bool LockerOpen();
	bool LockerClose();
	bool Weapon_IsHtHAttack(uint8);
	bool Weapon_IsGunAttack(uint8);
	bool Weapon_IsRangedAttack(uint8);
	void GetLexems(string&inout);
};

class Scenery
{
	const uint16 ProtoId;
	const uint16 HexX;
	const uint16 HexY;
	bool CallSceneryFunction(Critter&inout cr, int skill, Item@ item); // Arguments for this function have been guessed
};

class Critter
{
	const uint Id;
	const uint CrType;
	const uint16 HexX;
	const uint16 HexY;
	const uint16 WorldX;
	const uint16 WorldY;
	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;
	const string Name;
	uint ShowCritterDist1;
	uint ShowCritterDist2;
	uint ShowCritterDist3;
	bool IsRuning;
	const bool IsNotValid;
	const int Ref;
	DataVal Param;
	DataRef ParamBase;
	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;
	uint GlobalMapMoveCounter;
	uint UsedToolItemId;
	const uint EventExtReservedMapIn;
	const uint EventExtReservedMapOut;
	const uint EventExtReservedId2;
	const uint EventExtReservedId3;
	const uint EventExtReservedId4;
	const uint EventExtReservedId5;
	const uint EventExtReservedId6;
	uint SpawnedBy;
	uint DisguisedBy;
	uint LastSpawnedItem;
	uint LastSpawnedCritter;
	uint LastSpawnedLocation;
	uint Reserved;
	bool IsPlayer() const;
	bool IsNpc() const;
	bool IsCanWalk() const;
	bool IsCanRun() const;
	bool IsCanRotate() const;
	bool IsCanAim() const;
	bool IsAnim1(uint index) const; // Arguments for this function have been guessed
	int GetAccess() const;
	bool SetEvent(int, string@);
	void SetLexems(string@);
	Map@ GetMap() const;
	uint GetMapId() const;
	uint16 GetMapProtoId() const;
	void SetHomePos(uint16 hexX, uint16 hexY, uint8 dir); // Arguments for this function have been guessed
	void GetHomePos(uint&inout mapId, uint16&inout hexX, uint16&inout hexY, uint8&inout dir); // Arguments for this function have been guessed
	bool ChangeCrType(uint newType); // Arguments for this function have been guessed
	void DropTimers();
	bool MoveRandom();
	bool MoveToDir(uint8 dir); // Arguments for this function have been guessed
	bool TransitToHex(uint16 hexX, uint16 hexY, uint8 dir); // Arguments for this function have been guessed
	bool TransitToMap(uint, uint16, uint16, uint8, bool arg4 = false);
	bool TransitToMap(uint, int, bool arg2 = false);
	bool TransitToGlobal(bool requestGroup); // Arguments for this function have been guessed
	bool TransitToGlobal(array<Critter@> &inout group); // Arguments for this function have been guessed
	bool TransitToGlobalGroup(uint critterId); // Arguments for this function have been guessed
	void AddScore(uint score, int val); // Arguments for this function have been guessed
	int GetScore(uint score); // Arguments for this function have been guessed
	void AddHolodiskInfo(uint holodiskNum); // Arguments for this function have been guessed
	void EraseHolodiskInfo(uint holodiskNum); // Arguments for this function have been guessed
	bool IsHolodiskInfo(uint holodiskNum) const; // Arguments for this function have been guessed
	bool IsLife() const;
	bool IsKnockout() const;
	bool IsDead() const;
	bool IsFree() const;
	bool IsBusy() const;
	void Wait(uint ms); // Arguments for this function have been guessed
	void ToDead(uint anim2, Critter@ killer); // Arguments for this function have been guessed
	bool ToLife();
	bool ToKnockout(uint anim2begin, uint anim2idle, uint anim2end, uint lostAp, uint16 knockHx, uint16 knockHy); // Arguments for this function have been guessed
	void RefreshVisible();
	void ViewMap(Map&inout map, uint look, uint16 hx, uint16 hy, uint8 dir); // Arguments for this function have been guessed
	Item@ AddItem(uint16 protoId, uint count); // Arguments for this function have been guessed
	bool DeleteItem(uint16 protoId, uint count); // 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
	Item@ GetItem(uint16 protoId, int slot) const; // Arguments for this function have been guessed
	Item@ GetItemById(uint itemId) const; // Arguments for this function have been guessed
	uint GetItems(int slot, array<Item@> @ items) const; // Arguments for this function have been guessed
	uint GetItemsByType(int type, array<Item@> @ items) const; // Arguments for this function have been guessed
	ProtoItem@ GetSlotProto(int slot, uint8&inout mode) const; // Arguments for this function have been guessed
	bool MoveItem(uint itemId, uint count, uint8 toSlot); // Arguments for this function have been guessed
	bool PickItem(uint16 hexX, uint16 hexY, uint16 protoId); // Arguments for this function have been guessed
	void SetFavoriteItem(int slot, uint16 pid); // Arguments for this function have been guessed
	uint16 GetFavoriteItem(int slot); // Arguments for this function have been guessed
	uint GetCritters(bool lookOnMe, int findType, array<Critter@> @ critters) const; // Arguments for this function have been guessed
	uint GetFollowGroup(int findType, array<Critter@> @ critters) const; // Arguments for this function have been guessed
	Critter@ GetFollowLeader() const;
	array<Critter@> @ GetGlobalGroup() const;
	bool IsGlobalGroupLeader();
	void LeaveGlobalGroup();
	void GiveGlobalGroupLead(Critter&inout toCr); // Arguments for this function have been guessed
	uint GetTalkedPlayers(array<Critter@> @ players) const; // Arguments for this function have been guessed
	bool IsSee(Critter&inout cr) const; // Arguments for this function have been guessed
	bool IsSeenBy(Critter&inout cr) const; // Arguments for this function have been guessed
	bool IsSee(Item&inout item) const; // Arguments for this function have been guessed
	void Say(uint8 howSay, string&inout text); // Arguments for this function have been guessed
	void SayMsg(uint8 howSay, uint16 textMsg, uint strNum); // Arguments for this function have been guessed
	void SayMsg(uint8 howSay, uint16 textMsg, uint strNum, string&inout lexems); // Arguments for this function have been guessed
	void SetDir(uint8 dir); // Arguments for this function have been guessed
	uint ErasePlane(int planeType, bool all); // Arguments for this function have been guessed
	bool ErasePlane(uint index); // Arguments for this function have been guessed
	void DropPlanes();
	bool IsNoPlanes() const;
	bool IsCurPlane(int planeType) const; // Arguments for this function have been guessed
	NpcPlane@ GetCurPlane() const;
	uint GetPlanes(array<NpcPlane@> @ planes) const; // Arguments for this function have been guessed
	uint GetPlanes(int identifier, array<NpcPlane@> @ planes) const; // Arguments for this function have been guessed
	uint GetPlanes(int identifier, uint identifierExt, array<NpcPlane@> @ planes) const; // Arguments for this function have been guessed
	bool AddPlane(NpcPlane&inout plane); // Arguments for this function have been guessed
	void SendMessage(int num, int val, int to); // Arguments for this function have been guessed
	void Action(int action, int actionExt, Item@ item); // Arguments for this function have been guessed
	void Animate(uint anim1, uint anim2, Item@ item, bool clearSequence, bool delayPlay); // Arguments for this function have been guessed
	void SetAnims(int cond, uint anim1, uint anim2); // Arguments for this function have been guessed
	void PlaySound(string&inout soundName, bool sendSelf); // Arguments for this function have been guessed
	void PlaySound(uint8 soundType, uint8 soundTypeExt, uint8 soundId, uint8 soundIdExt, bool sendSelf); // Arguments for this function have been guessed
	void SendCombatResult(array<uint> &inout combatResult); // Arguments for this function have been guessed
	bool IsKnownLoc(bool byId, uint locNum) const; // Arguments for this function have been guessed
	bool SetKnownLoc(bool byId, uint locNum); // Arguments for this function have been guessed
	bool UnsetKnownLoc(bool byId, uint locNum); // Arguments for this function have been guessed
	void SetFog(uint16 zoneX, uint16 zoneY, int fog); // Arguments for this function have been guessed
	int GetFog(uint16 zoneX, uint16 zoneY); // Arguments for this function have been guessed
	void ShowContainer(Critter@ contCr, Item@ contItem, uint8 transferType); // Arguments for this function have been guessed
	void ShowScreen(int screenType, uint param, string@ funcName); // Arguments for this function have been guessed
	void RunClientScript(string&inout funcName, int p0, int p1, int p2, string@ p3, array<int> @ p4); // Arguments for this function have been guessed
	void Disconnect();
	bool SetScript(string@);
	uint GetScriptId() const;
	void SetBagRefreshTime(uint realMinutes); // Arguments for this function have been guessed
	uint GetBagRefreshTime() const;
	void SetInternalBag(array<uint16> &inout pids, array<uint> @ minCounts, array<uint> @ maxCounts, array<int> @ slots); // Arguments for this function have been guessed
	uint GetInternalBag(array<uint16> @ pids, array<uint> @ minCounts, array<uint> @ maxCounts, array<int> @ slots) const; // Arguments for this function have been guessed
	uint16 GetProtoId() const;
	uint GetMultihex() const;
	void SetMultihex(int value); // Arguments for this function have been guessed
	void AddEnemyInStack(uint critterId); // Arguments for this function have been guessed
	bool CheckEnemyInStack(uint critterId) const; // Arguments for this function have been guessed
	void EraseEnemyFromStack(uint critterId); // Arguments for this function have been guessed
	void ChangeEnemyStackSize(uint newSize); // Arguments for this function have been guessed
	void GetEnemyStack(array<uint> &inout enemyStack) const; // Arguments for this function have been guessed
	void ClearEnemyStack();
	void ClearEnemyStackNpc();
	bool AddTimeEvent(string&inout funcName, uint duration, int identifier); // Arguments for this function have been guessed
	bool AddTimeEvent(string&inout funcName, uint duration, int identifier, uint rate); // Arguments for this function have been guessed
	uint GetTimeEvents(int identifier, array<uint> @ indexes, array<uint> @ durations, array<uint> @ rates) const; // Arguments for this function have been guessed
	uint GetTimeEvents(array<int> &inout findIdentifiers, array<int> @ identifiers, array<uint> @ indexes, array<uint> @ durations, array<uint> @ rates) const; // Arguments for this function have been guessed
	void ChangeTimeEvent(uint index, uint newDuration, uint newRate); // Arguments for this function have been guessed
	void EraseTimeEvent(uint index); // Arguments for this function have been guessed
	uint EraseTimeEvents(int identifier); // Arguments for this function have been guessed
	uint EraseTimeEvents(array<int> &inout identifiers); // Arguments for this function have been guessed
	void EventIdle();
	void EventFinish(bool);
	void EventDead(Critter@ killer); // Arguments for this function have been guessed
	void EventRespawn();
	void EventShowCritter(Critter&inout cr); // Arguments for this function have been guessed
	void EventShowCritter1(Critter&inout cr); // Arguments for this function have been guessed
	void EventShowCritter2(Critter&inout cr); // Arguments for this function have been guessed
	void EventShowCritter3(Critter&inout cr); // Arguments for this function have been guessed
	void EventHideCritter(Critter&inout cr); // Arguments for this function have been guessed
	void EventHideCritter1(Critter&inout cr); // Arguments for this function have been guessed
	void EventHideCritter2(Critter&inout cr); // Arguments for this function have been guessed
	void EventHideCritter3(Critter&inout cr); // Arguments for this function have been guessed
	void EventShowItemOnMap(Item&inout showItem, bool added, Critter@ dropper); // Arguments for this function have been guessed
	void EventChangeItemOnMap(Item&inout item); // Arguments for this function have been guessed
	void EventHideItemOnMap(Item&inout hideItem, bool removed, Critter@ picker); // Arguments for this function have been guessed
	bool EventAttack(Critter&inout target); // Arguments for this function have been guessed
	bool EventAttacked(Critter@ attacker); // Arguments for this function have been guessed
	bool EventStealing(Critter&inout thief, Item&inout item, uint count); // Arguments for this function have been guessed
	void EventMessage(Critter&inout fromCr, int message, int value); // Arguments for this function have been guessed
	bool EventUseItem(Item&inout item, Critter@ onCritter, Item@ onItem, Scenery@ onScenery); // Arguments for this function have been guessed
	bool EventUseItemOnMe(Critter&inout whoUse, Item&inout item); // Arguments for this function have been guessed
	bool EventUseSkill(int skill, Critter@ onCritter, Item@ onItem, Scenery@ onScenery); // Arguments for this function have been guessed
	bool EventUseSkillOnMe(Critter&inout whoUse, int skill); // Arguments for this function have been guessed
	void EventDropItem(Item&inout item); // Arguments for this function have been guessed
	void EventMoveItem(Item&inout item, uint8 fromSlot); // Arguments for this function have been guessed
	void EventKnockout(uint anim2begin, uint anim2idle, uint anim2end, uint lostAp, uint knockDist); // Arguments for this function have been guessed
	void EventSmthDead(Critter&inout fromCr, Critter@ killer); // Arguments for this function have been guessed
	void EventSmthStealing(Critter&inout fromCr, Critter&inout thief, bool success, Item&inout item, uint count); // Arguments for this function have been guessed
	void EventSmthAttack(Critter&inout fromCr, Critter&inout target); // Arguments for this function have been guessed
	void EventSmthAttacked(Critter&inout fromCr, Critter@ attacker); // Arguments for this function have been guessed
	void EventSmthUseItem(Critter&inout fromCr, Item&inout item, Critter@ onCritter, Item@ onItem, Scenery@ onScenery); // Arguments for this function have been guessed
	void EventSmthUseSkill(Critter&inout fromCr, int skill, Critter@ onCritter, Item@ onItem, Scenery@ onScenery); // Arguments for this function have been guessed
	void EventSmthDropItem(Critter&inout fromCr, Item&inout item); // Arguments for this function have been guessed
	void EventSmthMoveItem(Critter&inout fromCr, Item&inout item, uint8 fromSlot); // Arguments for this function have been guessed
	void EventSmthKnockout(Critter&inout fromCr, uint anim2begin, uint anim2idle, uint anim2end, uint lostAp, uint knockDist); // Arguments for this function have been guessed
	int EventPlaneBegin(NpcPlane&inout plane, int reason, Critter@ someCr, Item@ someItem); // Arguments for this function have been guessed
	int EventPlaneEnd(NpcPlane&inout plane, int reason, Critter@ someCr, Item@ someItem); // Arguments for this function have been guessed
	int EventPlaneRun(NpcPlane&inout plane, int reason, uint&inout p0, uint&inout p1, uint&inout p2); // Arguments for this function have been guessed
	bool EventBarter(Critter&inout barterCr, bool attach, uint barterCount); // Arguments for this function have been guessed
	bool EventTalk(Critter&inout talkCr, bool attach, uint talkCount); // Arguments for this function have been guessed
	bool EventGlobalProcess(int type, Item@ car, float&inout x, float&inout y, float&inout toX, float&inout toY, float&inout speed, uint&inout encounterDescriptor, bool&inout waitForAnswer); // Arguments for this function have been guessed
	bool EventGlobalInvite(Item@ car, uint encounterDescriptor, int combatMode, uint&inout mapId, uint16&inout hexX, uint16&inout hexY, uint8&inout dir); // Arguments for this function have been guessed
	void EventTurnBasedProcess(Map&inout map, bool beginTurn); // Arguments for this function have been guessed
	void EventSmthTurnBasedProcess(Critter&inout fromCr, Map&inout map, bool beginTurn); // Arguments for this function have been guessed
	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);
	int GetArmorDR(uint, bool);
	int GetArmorDT(uint, bool);
	int GetSocket();
	int GetScore(uint8);
	int GetUID(uint8);
	uint GetIp();
	void SetAccess(int);
	bool ClearExtEvents();
	bool SetEventExt(int, string@);
	bool EventExtMapIn(Map&inout);
	bool EventExtMapOut(Map&inout);
	bool IsMoving();
	void GetLexems(string&inout);
	void RunLocalScript(string&inout, int, int, int, string@, array<int> @);
};

class Map
{
	const bool IsNotValid;
	const uint Id;
	const uint TurnBasedRound;
	const uint TurnBasedTurn;
	const uint TurnBasedWholeTurn;
	uint16 GetProtoId() const;
	Location@ GetLocation() const;
	bool SetScript(string@);
	uint GetScriptId() const;
	bool SetEvent(int, string@);
	void SetLoopTime(uint numLoop, uint ms); // Arguments for this function have been guessed
	uint8 GetRain() const;
	void SetRain(uint8 capacity); // Arguments for this function have been guessed
	int GetTime() const;
	void SetTime(int time); // Arguments for this function have been guessed
	uint GetDayTime(uint dayPart) const; // Arguments for this function have been guessed
	void SetDayTime(uint dayPart, uint time); // Arguments for this function have been guessed
	void GetDayColor(uint dayPart, uint8&inout r, uint8&inout g, uint8&inout b) const; // Arguments for this function have been guessed
	void SetDayColor(uint dayPart, uint8 r, uint8 g, uint8 b); // Arguments for this function have been guessed
	void SetTurnBasedAvailability(bool value); // Arguments for this function have been guessed
	bool IsTurnBasedAvailability() const;
	void BeginTurnBased(Critter@ firstTurnCrit); // Arguments for this function have been guessed
	bool IsTurnBased() const;
	void EndTurnBased();
	int GetTurnBasedSequence(array<uint> &inout crittersIds) const; // Arguments for this function have been guessed
	void SetData(uint index, int value); // Arguments for this function have been guessed
	int GetData(uint index) const; // Arguments for this function have been guessed
	Item@ AddItem(uint16 hexX, uint16 hexY, uint16 protoId, uint count); // Arguments for this function have been guessed
	Item@ GetItem(uint) const;
	Item@ GetItem(uint16 hexX, uint16 hexY, uint16 protoId) const; // Arguments for this function have been guessed
	uint GetItems(uint16 hexX, uint16 hexY, array<Item@> @ items) const; // Arguments for this function have been guessed
	uint GetItems(uint16 hexX, uint16 hexY, uint radius, uint16 protoId, array<Item@> @ items) const; // Arguments for this function have been guessed
	uint GetItems(uint16 protoId, array<Item@> @ items) const; // Arguments for this function have been guessed
	uint GetItemsByType(int, array<Item@> @) const;
	Item@ GetDoor(uint16 hexX, uint16 hexY) const; // Arguments for this function have been guessed
	Item@ GetCar(uint16 hexX, uint16 hexY) const; // Arguments for this function have been guessed
	Scenery@ GetScenery(uint16 hexX, uint16 hexY, uint16 protoId) const; // Arguments for this function have been guessed
	uint GetSceneries(uint16 hexX, uint16 hexY, array<Scenery@> @ sceneries) const; // Arguments for this function have been guessed
	uint GetSceneries(uint16 hexX, uint16 hexY, uint radius, uint16 protoId, array<Scenery@> @ sceneries) const; // Arguments for this function have been guessed
	uint GetSceneries(uint16 protoId, array<Scenery@> @ sceneries) const; // Arguments for this function have been guessed
	Critter@ GetCritter(uint16 hexX, uint16 hexY) const; // Arguments for this function have been guessed
	Critter@ GetCritter(uint) const;
	uint GetCrittersHex(uint16 hexX, uint16 hexY, uint radius, int findType, array<Critter@> @ critters) const; // Arguments for this function have been guessed
	uint GetCritters(uint16 pid, int findType, array<Critter@> @ critters) const; // Arguments for this function have been guessed
	uint GetCrittersPath(uint16 fromHx, uint16 fromHy, uint16 toHx, uint16 toHy, float angle, uint dist, int findType, array<Critter@> @ critters) const; // Arguments for this function have been guessed
	uint GetCrittersPath(uint16 fromHx, uint16 fromHy, uint16 toHx, uint16 toHy, float angle, uint dist, int findType, array<Critter@> @ critters, uint16&inout preBlockHx, uint16&inout preBlockHy, uint16&inout blockHx, uint16&inout blockHy) const; // Arguments for this function have been guessed
	uint GetCrittersWhoViewPath(uint16 fromHx, uint16 fromHy, uint16 toHx, uint16 toHy, int findType, array<Critter@> @ critters) const; // Arguments for this function have been guessed
	uint GetCrittersSeeing(array<Critter@> &inout critters, bool lookOnThem, int find_type, array<Critter@> @ crittersResult) const; // Arguments for this function have been guessed
	void GetHexCoord(uint16 fromHx, uint16 fromHy, uint16&inout toHx, uint16&inout toHy, float angle, uint dist) const; // Arguments for this function have been guessed
	void GetHexCoordWall(uint16 fromHx, uint16 fromHy, uint16&inout toHx, uint16&inout toHy, float angle, uint dist) const; // Arguments for this function have been guessed
	uint GetPathLength(uint16 fromHx, uint16 fromHy, uint16 toHx, uint16 toHy, uint cut) const; // Arguments for this function have been guessed
	uint GetPathLength(Critter&inout cr, uint16 toHx, uint16 toHy, uint cut) const; // Arguments for this function have been guessed
	bool VerifyTrigger(Critter&inout cr, uint16 hexX, uint16 hexY, uint8 dir); // Arguments for this function have been guessed
	Critter@ AddNpc(uint16 protoId, uint16 hexX, uint16 hexY, uint8 dir, array<int> @ params, array<int> @ items, string@ script); // Arguments for this function have been guessed
	uint GetNpcCount(int npcRole, int findType) const; // Arguments for this function have been guessed
	Critter@ GetNpc(int npcRole, int findType, uint skipCount) const; // Arguments for this function have been guessed
	uint CountEntire(int entire) const; // Arguments for this function have been guessed
	uint GetEntires(int entire, array<uint> @ entires, array<uint16> @ hexX, array<uint16> @ hexY) const; // Arguments for this function have been guessed
	bool GetEntireCoords(int entire, uint skip, uint16&inout hexX, uint16&inout hexY) const; // Arguments for this function have been guessed
	bool GetEntireCoords(int entire, uint skip, uint16&inout hexX, uint16&inout hexY, uint8&inout dir) const; // Arguments for this function have been guessed
	bool GetNearEntireCoords(int&inout entire, uint16&inout hexX, uint16&inout hexY) const; // Arguments for this function have been guessed
	bool GetNearEntireCoords(int&inout entire, uint16&inout hexX, uint16&inout hexY, uint8&inout dir) const; // Arguments for this function have been guessed
	bool IsHexPassed(uint16 hexX, uint16 hexY) const; // Arguments for this function have been guessed
	bool IsHexRaked(uint16 hexX, uint16 hexY) const; // Arguments for this function have been guessed
	void SetText(uint16 hexX, uint16 hexY, uint color, string&inout text) const; // Arguments for this function have been guessed
	void SetTextMsg(uint16 hexX, uint16 hexY, uint color, uint16 textMsg, uint strNum) const; // Arguments for this function have been guessed
	void SetTextMsg(uint16 hexX, uint16 hexY, uint color, uint16 textMsg, uint strNum, string&inout lexems) const; // Arguments for this function have been guessed
	void RunEffect(uint16 effectPid, uint16 hexX, uint16 hexY, uint16 radius) const; // Arguments for this function have been guessed
	void RunFlyEffect(uint16 effectPid, Critter@ fromCr, Critter@ toCr, uint16 fromX, uint16 fromY, uint16 toX, uint16 toY) const; // Arguments for this function have been guessed
	bool CheckPlaceForItem(uint16 hexX, uint16 hexY, uint16 pid) const; // Arguments for this function have been guessed
	void BlockHex(uint16 hexX, uint16 hexY, bool full); // Arguments for this function have been guessed
	void UnblockHex(uint16 hexX, uint16 hexY); // Arguments for this function have been guessed
	void PlaySound(string&inout soundName) const; // Arguments for this function have been guessed
	void PlaySound(string&inout soundName, uint16 hexX, uint16 hexY, uint radius) const; // Arguments for this function have been guessed
	bool Reload();
	uint16 GetWidth() const;
	uint16 GetHeight() const;
	void MoveHexByDir(uint16&inout hexX, uint16&inout hexY, uint8 dir, uint steps) const; // Arguments for this function have been guessed
	void EventFinish(bool);
	void EventLoop0();
	void EventLoop1();
	void EventLoop2();
	void EventLoop3();
	void EventLoop4();
	void EventInCritter(Critter&inout cr); // Arguments for this function have been guessed
	void EventOutCritter(Critter&inout cr); // Arguments for this function have been guessed
	void EventCritterDead(Critter&inout cr, Critter@ killer); // Arguments for this function have been guessed
	void EventTurnBasedBegin();
	void EventTurnBasedEnd();
	void EventTurnBasedProcess(Critter&inout cr, bool beginTurn); // Arguments for this function have been guessed
	bool FindNearestGrid(uint16&inout, uint16&inout, uint16);
	bool FindNearestGridApprox(uint16&inout, uint16&inout);
	bool IsGrid(uint16, uint16);
	void ProtoName(string&inout);
};

class Location
{
	const uint Id;
	uint16 WorldX;
	uint16 WorldY;
	bool Visible;
	bool GeckVisible;
	bool AutoGarbage;
	int GeckCount;
	uint16 Radius;
	uint Color;
	const bool IsNotValid;
	uint16 GetProtoId() const;
	uint GetMapCount() const;
	Map@ GetMap(uint16 mapPid) const; // Arguments for this function have been guessed
	Map@ GetMapByIndex(uint index) const; // Arguments for this function have been guessed
	uint GetMaps(array<Map@> @ maps) const; // Arguments for this function have been guessed
	bool Reload();
	void Update();
	bool IsEncounter();
	bool IsTown();
	bool IsCityEncounter();
	bool IsInstancedQuest();
	bool IsBase();
	bool IsReplication();
	bool IsTCTown();
	bool IsTent();
	bool IsCave();
	bool IsMine();
	bool IsGuarded();
	bool IsPublic();
	void ProtoName(string&inout);
};

class Synchronizer
{
	void Lock();
};

class CraftItem
{
	const uint Num;
	const string Name;
	const string Info;
	const uint Experience;
	const string Script;
	uint GetShowParams(array<uint> @, array<int> @, array<bool> @);
	uint GetNeedParams(array<uint> @, array<int> @, array<bool> @);
	uint GetNeedTools(array<uint16> @, array<uint> @, array<bool> @);
	uint GetNeedItems(array<uint16> @, array<uint> @, array<bool> @);
	uint GetOutItems(array<uint16> @, array<uint> @);
};

class Json
{
	Json& opAssign(const Json&in);
	Json& operator =(const Json&in); // created from the previous
	Json& opAssign(int);
	Json& operator =(int); // created from the previous
	Json& opAssign(const string&in);
	Json& operator =(const string&in); // created from the previous
	Json& opIndex(const string&in);
	Json& operator [](const string&in); // created from the previous
	Json& opIndex(int);
	Json& operator [](int); // created from the previous
	int AsInt() const;
	bool AsInt(int&out) const;
	string@ AsString() const;
	bool AsString(string&out) const;
	bool AsBool() const;
	bool AsBool(bool&out) const;
	bool IsMember(const string&in) const;
	bool IsString() const;
	bool IsArray() const;
	string@ Type() const;
	string@ ToString() const;
	void ToString(string&out) const;
	uint Size() const;
	bool Empty() const;
};

class ExternalMessage
{
	Json GetParams() const;
	ExternalMessageType get_Type() const;
};

class IObject
{
};

class FuncBind
{
	bool IsValid() const;
	int Call(IObject@) const;
	bool SetFunction(string&inout);
};


 // 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);
GameVar@ GetGlobalVar(uint16 varId);
GameVar@ GetLocalVar(uint16 varId, uint masterId);
GameVar@ GetUnicumVar(uint16 varId, uint masterId, uint slaveId);
Item@ GetItem(uint itemId);
void MoveItem(Item&inout item, uint count, Critter&inout toCr);
void MoveItem(Item&inout item, uint count, Item&inout toCont, uint stackId);
void MoveItem(Item&inout item, uint count, Map&inout toMap, uint16 toHx, uint16 toHy);
void MoveItems(array<Item@> &inout items, Critter&inout toCr);
void MoveItems(array<Item@> &inout items, Item&inout toCont, uint stackId);
void MoveItems(array<Item@> &inout items, Map&inout toMap, uint16 toHx, uint16 toHy);
void DeleteItem(Item&inout item);
void DeleteItems(array<Item@> &inout items);
void DeleteNpc(Critter&inout npc);
uint GetCrittersDistantion(Critter&inout cr1, Critter&inout cr2);
void RadioMessage(uint16 channel, string&inout text);
void RadioMessageMsg(uint16 channel, uint16 textMsg, uint strNum);
void RadioMessageMsg(uint16 channel, uint16 textMsg, uint strNum, string@ lexems);
uint CreateLocation(uint16 locPid, uint16 worldX, uint16 worldY, array<Critter@> @ critters);
void DeleteLocation(uint locId);
void GetProtoCritter(uint16 protoId, array<int> &inout data);
Critter@ GetCritter(uint critterId);
Critter@ GetPlayer(string&inout name);
uint GetPlayerId(string&inout name);
string@ GetPlayerName(uint playerId);
uint GetGlobalMapCritters(uint16 worldX, uint16 worldY, uint radius, int findType, array<Critter@> @ critters);
uint CreateTimeEvent(uint beginSecond, string&inout funcName, bool save);
uint CreateTimeEvent(uint beginSecond, string&inout funcName, uint value, bool save);
uint CreateTimeEvent(uint beginSecond, string&inout funcName, int value, bool save);
uint CreateTimeEvent(uint beginSecond, string&inout funcName, array<uint> &inout values, bool save);
uint CreateTimeEvent(uint beginSecond, string&inout funcName, array<int> &inout values, bool save);
bool EraseTimeEvent(uint num);
bool GetTimeEvent(uint num, uint&inout duration, array<uint> @ values);
bool GetTimeEvent(uint num, uint&inout duration, array<int> @ values);
bool SetTimeEvent(uint num, uint duration, array<uint> @ values);
bool SetTimeEvent(uint num, uint duration, array<int> @ values);
bool SetAnyData(string&inout name, array<int64> &inout data);
bool SetAnyData(string&inout, array<int> &inout);
bool SetAnyData(string&inout name, array<int16> &inout data);
bool SetAnyData(string&inout name, array<int8> &inout data);
bool SetAnyData(string&inout name, array<uint64> &inout data);
bool SetAnyData(string&inout, array<uint> &inout);
bool SetAnyData(string&inout name, array<uint16> &inout data);
bool SetAnyData(string&inout name, array<uint8> &inout data);
bool SetAnyData(string&inout name, array<int64> &inout data, uint dataSize);
bool SetAnyData(string&inout, array<int> &inout, uint);
bool SetAnyData(string&inout name, array<int16> &inout data, uint dataSize);
bool SetAnyData(string&inout name, array<int8> &inout data, uint dataSize);
bool SetAnyData(string&inout name, array<uint64> &inout data, uint dataSize);
bool SetAnyData(string&inout, array<uint> &inout, uint);
bool SetAnyData(string&inout name, array<uint16> &inout data, uint dataSize);
bool SetAnyData(string&inout name, array<uint8> &inout data, uint dataSize);
bool GetAnyData(string&inout name, array<int64> &inout data);
bool GetAnyData(string&inout, array<int> &inout);
bool GetAnyData(string&inout name, array<int16> &inout data);
bool GetAnyData(string&inout name, array<int8> &inout data);
bool GetAnyData(string&inout name, array<uint64> &inout data);
bool GetAnyData(string&inout, array<uint> &inout);
bool GetAnyData(string&inout name, array<uint16> &inout data);
bool GetAnyData(string&inout name, array<uint8> &inout data);
bool IsAnyData(string&inout name);
void EraseAnyData(string&inout name);
Map@ GetMap(uint mapId);
Map@ GetMapByPid(uint16 mapPid, uint skipCount);
Location@ GetLocation(uint locId);
Location@ GetLocationByPid(uint16 locPid, uint skipCount);
uint GetLocations(uint16 worldX, uint16 worldY, uint radius, array<Location@> @ locations);
uint GetVisibleLocations(uint16 worldX, uint16 worldY, uint radius, Critter@ visibleBy, array<Location@> @ locations);
uint GetZoneLocationIds(uint16 zoneX, uint16 zoneY, uint zoneRadius, array<uint> @ locationIds);
bool RunDialog(Critter&inout player, Critter&inout npc, bool ignoreDistance);
bool RunDialog(Critter&inout player, Critter&inout npc, uint dialogPack, bool ignoreDistance);
bool RunDialog(Critter&inout player, uint dialogPack, uint16 hexX, uint16 hexY, bool ignoreDistance);
int64 WorldItemCount(uint16 protoId);
void SetBestScore(int score, Critter@ player, string&inout name);
bool AddTextListener(int sayType, string&inout firstStr, uint16 parameter, string&inout scriptName);
void EraseTextListener(int sayType, string&inout firstStr, uint16 parameter);
NpcPlane@ CreatePlane();
uint GetBagItems(uint bagId, array<uint16> @ pids, array<uint> @ minCounts, array<uint> @ maxCounts, array<int> @ slots);
void SetChosenSendParameter(int index, bool enabled);
void SetSendParameter(int index, bool enabled);
void SetSendParameter(int index, bool enabled, string@ allowFunc);
bool SwapCritters(Critter&inout cr1, Critter&inout cr2, bool withInventory, bool withVars);
uint GetAllItems(uint16 pid, array<Item@> @ items);
uint GetAllPlayers(array<Critter@> @ players);
uint GetAllNpc(uint16 pid, array<Critter@> @ npc);
uint GetAllMaps(uint16 pid, array<Map@> @ maps);
uint GetAllLocations(uint16 pid, array<Location@> @ locations);
uint GetScriptId(string&inout scriptName, string&inout funcDeclaration);
string@ GetScriptName(uint scriptId);
array<int8> @ GetItemDataMask(int maskType);
bool SetItemDataMask(int maskType, array<int8> &inout mask);
bool LoadImage(uint index, string@ imageName, uint imageDepth, int pathType);
uint GetImageColor(uint index, uint x, uint y);
void Synchronize();
void Resynchronize();
bool SetParameterDialogGetBehaviour(uint index, string&inout funcName);
CraftItem@ GetCraftItem(uint num);
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);
void EncodeUrl(string&inout);
void AsyncGetFactions();
void AsyncGetPlayerFile(int, const string&inout, const string&inout, int);
void AsyncRegisterFaction(const string&inout);
void AsyncConfirmFaction(const string&inout, int);
void AsyncGetGlobalVars(int);
ExternalMessage@ PopExternalMessage();
ExternalMessage@ PeekExternalMessage();
void Dummy();
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);
int CallGenericFunction(const string&inout, IObject@);
void RunScript(string&inout, int, int, int, const string&inout);
int FloatToInt(float);
float IntToFloat(int);
bool InitWalkProcessing(Critter@);
bool InitWalkProcessing2(Critter@);
void dummy();
void OnlineStats_CharSave(Critter@, int, string@);
void OnlineStats_CharDelete(Critter@, string@);
bool IsLocalScript(string&inout);
void sigh();
