; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.3077 

	TITLE	.\neo.cpp
	.386P
include listing.inc
if @Version gt 510
.model FLAT
else
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
_DATA	SEGMENT DWORD USE32 PUBLIC 'DATA'
_DATA	ENDS
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
_BSS	SEGMENT DWORD USE32 PUBLIC 'BSS'
_BSS	ENDS
$$SYMBOLS	SEGMENT BYTE USE32 'DEBSYM'
$$SYMBOLS	ENDS
$$TYPES	SEGMENT BYTE USE32 'DEBTYP'
$$TYPES	ENDS
_TLS	SEGMENT DWORD USE32 PUBLIC 'TLS'
_TLS	ENDS
;	COMDAT ??_C@_03BJDGPCOK@Max?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_03LLNBGIF@Min?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0M@KBNHOJJA@Preset_Name?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_06HJIMLMON@Repeat?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_08JOBCAEBO@MaxRange?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_09IOOEOBPF@vsSoldier?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0L@GLMKNALD@vsAircraft?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_09GEJKGJAF@vsVehicle?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0ED@KMBLHBJA@Preset_Name?$DNblank?3string?0Min?$DN0?40@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0BN@JOPFNADD@Neo_CreateObject_RandomTimer?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0EE@HOJFEMNJ@MaxRange?$DN0?40?3float?0vsSoldier?$DN1?3i@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_C@_0P@LIFLJJBG@Neo_Vehicle_AI?$AA@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
text$yc	SEGMENT PARA USE32 PUBLIC 'CODE'
text$yc	ENDS
CRT$XCA	SEGMENT DWORD USE32 PUBLIC 'DATA'
CRT$XCA	ENDS
CRT$XCU	SEGMENT DWORD USE32 PUBLIC 'DATA'
CRT$XCU	ENDS
CRT$XCL	SEGMENT DWORD USE32 PUBLIC 'DATA'
CRT$XCL	ENDS
CRT$XCC	SEGMENT DWORD USE32 PUBLIC 'DATA'
CRT$XCC	ENDS
CRT$XCZ	SEGMENT DWORD USE32 PUBLIC 'DATA'
CRT$XCZ	ENDS
text$yd	SEGMENT PARA USE32 PUBLIC 'CODE'
text$yd	ENDS
;	COMDAT _acosl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _asinl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _atanl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _atan2l
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _ceill
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _cosl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _coshl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _expl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _fabsl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _floorl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _fmodl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _frexpl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _ldexpl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _logl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _log10l
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _modfl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _powl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _sinl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _sinhl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _sqrtl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _tanl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _tanhl
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _frexpf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _ldexpf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _acosf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _asinf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _atanf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _atan2f
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _ceilf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _cosf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _coshf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _expf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _fabsf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _floorf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _fmodf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _logf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _log10f
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _modff
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _powf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _sinf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _sinhf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _sqrtf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _tanf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _tanhf
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?GetID@GameObjObserverClass@@QAEHXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?SetFactory@ScriptImpClass@@QAEXPAVScriptFactory@@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0ActionParamsStruct@@QAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Set_Goto_Location@ActionParamsStruct@@QAEXABUVector3@@MM_N@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Set_Face_Location@ActionParamsStruct@@QAEXABUVector3@@M@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Set_Basic@ActionParamsStruct@@QAEXPAVScriptClass@@KKJ@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Set_Attack_Hold@ActionParamsStruct@@QAEXPAEMM_N1@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?ReceiveSignal@cGameData@@UAEXAAV?$TypedEventPair@_NH@@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1cGameData@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?On_Game_Begin@cGameData@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?On_Game_End@cGameData@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Think@cGameData@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Render@cGameData@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Reset_Game@cGameData@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Choose_Player_Type@cGameData@@UAEHPAXH_N@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Load_From_Server_Config@cGameData@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Save_To_Server_Config@cGameData@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Editable_Teaming@cGameData@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Editable_Clan_Game@cGameData@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Editable_Friendly_Fire@cGameData@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Soldier_Added@cGameData@@UAEXPAE@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Show_Game_Settings_Limits@cGameData@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Single_Player@cGameData@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Skirmish@cGameData@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Cnc@cGameData@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?As_Single_Player@cGameData@@UAEPAVcGameDataSinglePlayer@@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?As_Skirmish@cGameData@@UAEPAVcGameDataSkirmish@@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?As_Cnc@cGameData@@UAEPAVcGameDataCnc@@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Get_Min_Players@cGameData@@UAEIXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Game_Over@cGameData@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Limited@cGameData@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Valid_Settings@cGameData@@UAE_NAAVWideStringClass@@_N@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Export_Tier_1_Data@cGameData@@UAEXPAX@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Import_Tier_1_Data@cGameData@@UAEXPAX@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Import_Tier_1_Data_Wol@cGameData@@UAEXPAX@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Export_Tier_2_Data@cGameData@@UAEXPAX@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Import_Tier_2_Data@cGameData@@UAEXPAX@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Gameplay_Permitted@cGameData@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Remember_Inventory@cGameData@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Get_Description@cGameData@@UAEXAAVWideStringClass@@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_GcGameData@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1cGameDataCnc@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?On_Game_Begin@cGameDataCnc@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?On_Game_End@cGameDataCnc@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Think@cGameDataCnc@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Reset_Game@cGameDataCnc@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Get_Game_Name@cGameDataCnc@@UAE?AVWideStringClass@@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Get_Game_Type@cGameDataCnc@@UAEHXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Load_From_Server_Config@cGameDataCnc@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Save_To_Server_Config@cGameDataCnc@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Editable_Teaming@cGameDataCnc@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Editable_Clan_Game@cGameDataCnc@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Editable_Friendly_Fire@cGameDataCnc@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Soldier_Added@cGameDataCnc@@UAEXPAE@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Show_Game_Settings_Limits@cGameDataCnc@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Cnc@cGameDataCnc@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?As_Cnc@cGameDataCnc@@UAEPAV1@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Game_Over@cGameDataCnc@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Limited@cGameDataCnc@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Valid_Settings@cGameDataCnc@@UAE_NAAVWideStringClass@@_N@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Export_Tier_2_Data@cGameDataCnc@@UAEXPAX@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Import_Tier_2_Data@cGameDataCnc@@UAEXPAX@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Gameplay_Permitted@cGameDataCnc@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Get_Description@cGameDataCnc@@UAEXAAVWideStringClass@@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_GcGameDataCnc@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1cGameDataSkirmish@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?On_Game_Begin@cGameDataSkirmish@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?On_Game_End@cGameDataSkirmish@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Think@cGameDataSkirmish@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Reset_Game@cGameDataSkirmish@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Get_Game_Name@cGameDataSkirmish@@UAE?AVWideStringClass@@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Get_Game_Type@cGameDataSkirmish@@UAEHXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Load_From_Server_Config@cGameDataSkirmish@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Save_To_Server_Config@cGameDataSkirmish@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Editable_Teaming@cGameDataSkirmish@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Editable_Clan_Game@cGameDataSkirmish@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Editable_Friendly_Fire@cGameDataSkirmish@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Soldier_Added@cGameDataSkirmish@@UAEXPAE@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Show_Game_Settings_Limits@cGameDataSkirmish@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Skirmish@cGameDataSkirmish@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?As_Skirmish@cGameDataSkirmish@@UAEPAV1@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Game_Over@cGameDataSkirmish@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Limited@cGameDataSkirmish@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Get_Description@cGameDataSkirmish@@UAEXAAVWideStringClass@@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_GcGameDataSkirmish@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1cGameDataSinglePlayer@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Get_Game_Name@cGameDataSinglePlayer@@UAE?AVWideStringClass@@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Get_Game_Type@cGameDataSinglePlayer@@UAEHXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Choose_Player_Type@cGameDataSinglePlayer@@UAEHPAXH_N@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Single_Player@cGameDataSinglePlayer@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?As_Single_Player@cGameDataSinglePlayer@@UAEPAV1@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Limited@cGameDataSinglePlayer@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Remember_Inventory@cGameDataSinglePlayer@@UAE_NXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_GcGameDataSinglePlayer@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1PostLoadableClass@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?On_Post_Load@PostLoadableClass@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_GPostLoadableClass@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1PersistClass@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Save@PersistClass@@UAE_NPAX@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Load@PersistClass@@UAE_NPAX@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_GPersistClass@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1EditableClass@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Get_Parameter_Count@EditableClass@@UAEHXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Lock_Parameter@EditableClass@@UAEPAXH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Unlock_Parameter@EditableClass@@UAEXH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_GEditableClass@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1DefinitionClass@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Save@DefinitionClass@@UAE_NPAX@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Load@DefinitionClass@@UAE_NPAX@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Get_ID@DefinitionClass@@UAEKXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Set_ID@DefinitionClass@@UAEXK@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Get_Name@DefinitionClass@@UAEPADXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Set_Name@DefinitionClass@@UAEXPAD@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Is_Valid_Config@DefinitionClass@@UAE_NPBD@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_GDefinitionClass@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1TeamPurchaseSettingsDefClass@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Get_Factory@TeamPurchaseSettingsDefClass@@UAEPAXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Save@TeamPurchaseSettingsDefClass@@UAE_NPAX@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Load@TeamPurchaseSettingsDefClass@@UAE_NPAX@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Get_Class_ID@TeamPurchaseSettingsDefClass@@UAEKXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Create@TeamPurchaseSettingsDefClass@@UAEPAVPersistClass@@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_GTeamPurchaseSettingsDefClass@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1PurchaseSettingsDefClass@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Get_Factory@PurchaseSettingsDefClass@@UAEPAXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Save@PurchaseSettingsDefClass@@UAE_NPAX@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Load@PurchaseSettingsDefClass@@UAE_NPAX@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Get_Class_ID@PurchaseSettingsDefClass@@UAEKXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Create@PurchaseSettingsDefClass@@UAEPAVPersistClass@@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_GPurchaseSettingsDefClass@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Created@Neo_CreateObject_RandomTimer@@EAEXPAE@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Timer_Expired@Neo_CreateObject_RandomTimer@@EAEXPAEH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Created@Neo_Vehicle_AI@@EAEXPAE@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Custom@Neo_Vehicle_AI@@EAEXPAEHH0@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Action_Complete@Neo_Vehicle_AI@@EAEXPAEHW4ActionCompleteReason@@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Damaged@Neo_Vehicle_AI@@EAEXPAE0M@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Enemy_Seen@Neo_Vehicle_AI@@EAEXPAE0@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Timer_Expired@Neo_Vehicle_AI@@EAEXPAEH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Sound_Heard@Neo_Vehicle_AI@@EAEXPAEABUCombatSound@@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Destroyed@Neo_Vehicle_AI@@EAEXPAE@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Register_Auto_Save_Variables@Neo_Vehicle_AI@@EAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Hunt@Neo_Vehicle_AI@@AAEXPAE0@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Guard@Neo_Vehicle_AI@@AAEXPAE0@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Select_Target@Neo_Vehicle_AI@@AAEPAEPAE0@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Set_Target@Neo_Vehicle_AI@@AAEPAEPAE@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Get_Closest@Neo_Vehicle_AI@@AAEPAEPAE00@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Set_Ammo@Neo_Vehicle_AI@@AAE_NPAE@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Set_Direction@Neo_Vehicle_AI@@AAE_NPAE@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _$E1
text$yc	SEGMENT PARA USE32 PUBLIC 'CODE'
text$yc	ENDS
;	COMDAT _$E2
text$yd	SEGMENT PARA USE32 PUBLIC 'CODE'
text$yd	ENDS
;	COMDAT ??1?$ScriptRegistrant@VNeo_CreateObject_RandomTimer@@@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT _$E4
text$yc	SEGMENT PARA USE32 PUBLIC 'CODE'
text$yc	ENDS
;	COMDAT _$E5
text$yd	SEGMENT PARA USE32 PUBLIC 'CODE'
text$yd	ENDS
;	COMDAT ??1?$ScriptRegistrant@VNeo_Vehicle_AI@@@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1?$DynamicVectorClass@VWideStringClass@@@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Resize@?$DynamicVectorClass@VWideStringClass@@@@UAE_NHPAVWideStringClass@@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Clear@?$DynamicVectorClass@VWideStringClass@@@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?ID@?$DynamicVectorClass@VWideStringClass@@@@UAEHAAVWideStringClass@@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?ID@?$DynamicVectorClass@VWideStringClass@@@@UAEHPAVWideStringClass@@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1?$VectorClass@VWideStringClass@@@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??8?$VectorClass@VWideStringClass@@@@UAE_NAAV0@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Resize@?$VectorClass@VWideStringClass@@@@UAE_NHPAVWideStringClass@@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Clear@?$VectorClass@VWideStringClass@@@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?ID@?$VectorClass@VWideStringClass@@@@UAEHAAVWideStringClass@@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?ID@?$VectorClass@VWideStringClass@@@@UAEHPAVWideStringClass@@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?ReceiveSignal@?$Signaler@V?$TypedEventPair@_NH@@@@UAEXAAV?$TypedEventPair@_NH@@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?SignalDropped@?$Signaler@V?$TypedEventPair@_NH@@@@UAEXAAV1@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1?$Signaler@V?$TypedEventPair@_NH@@@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1?$DynamicVectorClass@PAE@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Resize@?$DynamicVectorClass@PAE@@UAE_NHPAPAE@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Clear@?$DynamicVectorClass@PAE@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?ID@?$DynamicVectorClass@PAE@@UAEHAAPAE@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?ID@?$DynamicVectorClass@PAE@@UAEHPAPAE@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1?$VectorClass@PAE@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??8?$VectorClass@PAE@@UAE_NAAV0@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Resize@?$VectorClass@PAE@@UAE_NHPAPAE@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Clear@?$VectorClass@PAE@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?ID@?$VectorClass@PAE@@UAEHAAPAE@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?ID@?$VectorClass@PAE@@UAEHPAPAE@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1?$DynamicVectorClass@PAK@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Resize@?$DynamicVectorClass@PAK@@UAE_NHPAPAK@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Clear@?$DynamicVectorClass@PAK@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?ID@?$DynamicVectorClass@PAK@@UAEHAAPAK@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?ID@?$DynamicVectorClass@PAK@@UAEHPAPAK@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1?$VectorClass@PAK@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??8?$VectorClass@PAK@@UAE_NAAV0@@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Resize@?$VectorClass@PAK@@UAE_NHPAPAK@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Clear@?$VectorClass@PAK@@UAEXXZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?ID@?$VectorClass@PAK@@UAEHAAPAK@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?ID@?$VectorClass@PAK@@UAEHPAPAK@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0?$ScriptRegistrant@VNeo_CreateObject_RandomTimer@@@@QAE@PAD0@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0?$ScriptRegistrant@VNeo_Vehicle_AI@@@@QAE@PAD0@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_G?$DynamicVectorClass@VWideStringClass@@@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_G?$VectorClass@VWideStringClass@@@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_G?$Signaler@V?$TypedEventPair@_NH@@@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_G?$DynamicVectorClass@PAE@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_G?$VectorClass@PAE@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_G?$DynamicVectorClass@PAK@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_G?$VectorClass@PAK@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_G?$ScriptRegistrant@VNeo_CreateObject_RandomTimer@@@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_G?$ScriptRegistrant@VNeo_Vehicle_AI@@@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??$_Pow_int@N@@YANNH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??$_Pow_int@H@@YAHHH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??$_Pow_int@M@@YAMMH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??$_Pow_int@O@@YAOOH@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Create@?$ScriptRegistrant@VNeo_CreateObject_RandomTimer@@@@UAEPAVScriptImpClass@@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ?Create@?$ScriptRegistrant@VNeo_Vehicle_AI@@@@UAEPAVScriptImpClass@@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0Neo_CreateObject_RandomTimer@@QAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??0Neo_Vehicle_AI@@QAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_GNeo_CreateObject_RandomTimer@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_GNeo_Vehicle_AI@@UAEPAXI@Z
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1Neo_CreateObject_RandomTimer@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??1Neo_Vehicle_AI@@UAE@XZ
_TEXT	SEGMENT PARA USE32 PUBLIC 'CODE'
_TEXT	ENDS
;	COMDAT ??_7Neo_CreateObject_RandomTimer@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7TeamPurchaseSettingsDefClass@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7?$DynamicVectorClass@VWideStringClass@@@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7cGameDataSkirmish@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7DefinitionClass@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7PurchaseSettingsDefClass@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7Neo_Vehicle_AI@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7?$VectorClass@PAK@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7PostLoadableClass@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7?$ScriptRegistrant@VNeo_Vehicle_AI@@@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7?$Signaler@V?$TypedEventPair@_NH@@@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7?$VectorClass@VWideStringClass@@@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7PersistClass@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7cGameData@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7cGameDataSinglePlayer@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7?$VectorClass@PAE@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7?$ScriptRegistrant@VNeo_CreateObject_RandomTimer@@@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7?$DynamicVectorClass@PAE@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7EditableClass@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7cGameDataCnc@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
;	COMDAT ??_7?$DynamicVectorClass@PAK@@6B@
CONST	SEGMENT DWORD USE32 PUBLIC 'CONST'
CONST	ENDS
sxdata	SEGMENT DWORD USE32 'SXDATA'
sxdata	ENDS
FLAT	GROUP _DATA, CONST, _BSS
	ASSUME	CS: FLAT, DS: FLAT, SS: FLAT
endif

INCLUDELIB LIBCMT
INCLUDELIB OLDNAMES

PUBLIC	?GetID@GameObjObserverClass@@QAEHXZ		; GameObjObserverClass::GetID
; Function compile flags: /Ogty
; File c:\documents and settings\owner\desktop\ssctf 1.3\scripts.h
;	COMDAT ?GetID@GameObjObserverClass@@QAEHXZ
_TEXT	SEGMENT
?GetID@GameObjObserverClass@@QAEHXZ PROC NEAR		; GameObjObserverClass::GetID, COMDAT
; _this$ = ecx

; 90   : 		return ID;

	mov	eax, DWORD PTR [ecx+4]

; 91   : 	}

	ret	0
?GetID@GameObjObserverClass@@QAEHXZ ENDP		; GameObjObserverClass::GetID
_TEXT	ENDS
PUBLIC	??0ActionParamsStruct@@QAE@XZ			; ActionParamsStruct::ActionParamsStruct
EXTRN	__fltused:NEAR
; Function compile flags: /Ogty
;	COMDAT ??0ActionParamsStruct@@QAE@XZ
_TEXT	SEGMENT
??0ActionParamsStruct@@QAE@XZ PROC NEAR			; ActionParamsStruct::ActionParamsStruct, COMDAT
; _this$ = ecx

; 221  : {

	mov	eax, ecx

; 222  : 	Action_Priority = 0;

	xor	ecx, ecx

; 223  : 	Action_ID = 0;
; 224  : 	Observer_ID = 0;
; 225  : 	varB8.X = 0;
; 226  : 	varB8.Y = 0;
; 227  : 	varB8.Z = 0;
; 228  : 	varAC = 0;
; 229  : 	varA8 = 0;
; 230  : 	Move_Destination.X = 0;
; 231  : 	Move_Destination.Y = 0;
; 232  : 	Move_Destination.Z = 0;
; 233  : 	Move_Target = 0;
; 234  : 	var94.X = 0;
; 235  : 	var94.Y = 0;
; 236  : 	var94.Z = 0;
; 237  : 	Move_Speed = 1.0;
; 238  : 	Move_Arrive_Distance = 1000;
; 239  : 	Move_Backwards = false;
; 240  : 	Move_Following = false;
; 241  : 	Move_Crouch = false;
; 242  : 	Move_Pathfind = true;

	mov	dl, 1
	mov	DWORD PTR [eax], ecx
	mov	DWORD PTR [eax+4], ecx
	mov	DWORD PTR [eax+8], ecx
	mov	DWORD PTR [eax+12], ecx
	mov	DWORD PTR [eax+16], ecx
	mov	DWORD PTR [eax+20], ecx
	mov	DWORD PTR [eax+24], ecx
	mov	DWORD PTR [eax+28], ecx
	mov	DWORD PTR [eax+32], ecx
	mov	DWORD PTR [eax+36], ecx
	mov	DWORD PTR [eax+40], ecx
	mov	DWORD PTR [eax+44], ecx
	mov	DWORD PTR [eax+48], ecx
	mov	DWORD PTR [eax+52], ecx
	mov	DWORD PTR [eax+56], ecx
	mov	DWORD PTR [eax+60], 1065353216		; 3f800000H
	mov	DWORD PTR [eax+64], 1148846080		; 447a0000H
	mov	BYTE PTR [eax+68], cl
	mov	BYTE PTR [eax+69], cl
	mov	BYTE PTR [eax+70], cl
	mov	BYTE PTR [eax+71], dl

; 243  : 	var7C = false;

	mov	BYTE PTR [eax+72], cl

; 244  : 	Attack_Range = 20;

	mov	DWORD PTR [eax+76], 1101004800		; 41a00000H

; 245  : 	Attack_Deviation = 0;

	mov	DWORD PTR [eax+80], ecx

; 246  : 	var70 = false;

	mov	BYTE PTR [eax+84], cl

; 247  : 	Attack_Target = 0;

	mov	DWORD PTR [eax+88], ecx

; 248  : 	Attack_Primary = true;

	mov	BYTE PTR [eax+92], dl

; 249  : 	Attack_Crouched = false;

	mov	BYTE PTR [eax+93], cl

; 250  : 	Attack_Location.X = 0;

	mov	DWORD PTR [eax+96], ecx

; 251  : 	Attack_Location.Y = 0;

	mov	DWORD PTR [eax+100], ecx

; 252  : 	Attack_Location.Z = 0;

	mov	DWORD PTR [eax+104], ecx

; 253  : 	Hold_Action = true;

	mov	BYTE PTR [eax+108], dl

; 254  : 	var57 = true;

	mov	BYTE PTR [eax+109], dl

; 255  : 	var56 = false;

	mov	BYTE PTR [eax+110], cl

; 256  : 	var55 = true;

	mov	BYTE PTR [eax+111], dl

; 257  : 	var54 = false;

	mov	BYTE PTR [eax+112], cl

; 258  : 	var53 = false;

	mov	BYTE PTR [eax+113], cl

; 259  : 	Face_Location.X = 0;

	mov	DWORD PTR [eax+116], ecx

; 260  : 	Face_Location.Y = 0;

	mov	DWORD PTR [eax+120], ecx

; 261  : 	Face_Location.Z = 0;

	mov	DWORD PTR [eax+124], ecx

; 262  : 	Face_Time = 2.0;

	mov	DWORD PTR [eax+128], 1073741824		; 40000000H

; 263  : 	var40 = false;

	mov	BYTE PTR [eax+132], cl

; 264  : 	Move_Waypath_ID = 0;

	mov	DWORD PTR [eax+136], ecx

; 265  : 	Move_Waypath_Start_ID = 0;

	mov	DWORD PTR [eax+140], ecx

; 266  : 	Move_Waypath_End_ID = 0;

	mov	DWORD PTR [eax+144], ecx

; 267  : 	Move_Waypath_Splined = false;

	mov	BYTE PTR [eax+148], cl

; 268  : 	Anim_Name = 0;

	mov	DWORD PTR [eax+152], ecx

; 269  : 	Anim_Loop = false;

	mov	BYTE PTR [eax+156], cl

; 270  : 	var24 = 0;

	mov	DWORD PTR [eax+160], ecx

; 271  : 	var20 = 0;

	mov	DWORD PTR [eax+164], ecx

; 272  : 	Soldier_AI_State = -1;

	mov	DWORD PTR [eax+168], -1

; 273  : 	Dock_Location.X = 0;

	mov	DWORD PTR [eax+172], ecx

; 274  : 	Dock_Location.Y = 0;

	mov	DWORD PTR [eax+176], ecx

; 275  : 	Dock_Location.Z = 0;

	mov	DWORD PTR [eax+180], ecx

; 276  : 	Dock_Entrance.X = 0;

	mov	DWORD PTR [eax+184], ecx

; 277  : 	Dock_Entrance.Y = 0;

	mov	DWORD PTR [eax+188], ecx

; 278  : 	Dock_Entrance.Z = 0;

	mov	DWORD PTR [eax+192], ecx

; 279  : }

	ret	0
??0ActionParamsStruct@@QAE@XZ ENDP			; ActionParamsStruct::ActionParamsStruct
_TEXT	ENDS
PUBLIC	?Set_Goto_Location@ActionParamsStruct@@QAEXABUVector3@@MM_N@Z ; ActionParamsStruct::Set_Goto_Location
; Function compile flags: /Ogty
;	COMDAT ?Set_Goto_Location@ActionParamsStruct@@QAEXABUVector3@@MM_N@Z
_TEXT	SEGMENT
_position$ = 8						; size = 4
_speed$ = 12						; size = 4
_arrivedistance$ = 16					; size = 4
_crouch$ = 20						; size = 1
?Set_Goto_Location@ActionParamsStruct@@QAEXABUVector3@@MM_N@Z PROC NEAR ; ActionParamsStruct::Set_Goto_Location, COMDAT
; _this$ = ecx

; 293  : 	Move_Destination.X = position.X;

	mov	eax, DWORD PTR _position$[esp-4]
	mov	edx, DWORD PTR [eax]
	mov	DWORD PTR [ecx+32], edx

; 294  : 	Move_Destination.Y = position.Y;

	mov	edx, DWORD PTR [eax+4]
	mov	DWORD PTR [ecx+36], edx

; 295  : 	Move_Destination.Z = position.Z;

	mov	eax, DWORD PTR [eax+8]

; 296  : 	Move_Speed = speed;

	mov	edx, DWORD PTR _speed$[esp-4]
	mov	DWORD PTR [ecx+40], eax

; 297  : 	Move_Arrive_Distance = arrivedistance;

	mov	eax, DWORD PTR _arrivedistance$[esp-4]
	mov	DWORD PTR [ecx+60], edx

; 298  : 	Move_Crouch = crouch;

	mov	dl, BYTE PTR _crouch$[esp-4]
	mov	DWORD PTR [ecx+64], eax
	mov	BYTE PTR [ecx+70], dl

; 299  : }

	ret	16					; 00000010H
?Set_Goto_Location@ActionParamsStruct@@QAEXABUVector3@@MM_N@Z ENDP ; ActionParamsStruct::Set_Goto_Location
_TEXT	ENDS
PUBLIC	?Set_Face_Location@ActionParamsStruct@@QAEXABUVector3@@M@Z ; ActionParamsStruct::Set_Face_Location
; Function compile flags: /Ogty
;	COMDAT ?Set_Face_Location@ActionParamsStruct@@QAEXABUVector3@@M@Z
_TEXT	SEGMENT
_facelocation$ = 8					; size = 4
_Time$ = 12						; size = 4
?Set_Face_Location@ActionParamsStruct@@QAEXABUVector3@@M@Z PROC NEAR ; ActionParamsStruct::Set_Face_Location, COMDAT
; _this$ = ecx

; 366  : 	Face_Location.X = facelocation.X;

	mov	eax, DWORD PTR _facelocation$[esp-4]
	mov	edx, DWORD PTR [eax]
	mov	DWORD PTR [ecx+116], edx

; 367  : 	Face_Location.Y = facelocation.Y;

	mov	edx, DWORD PTR [eax+4]
	mov	DWORD PTR [ecx+120], edx

; 368  : 	Face_Location.Z = facelocation.Z;

	mov	eax, DWORD PTR [eax+8]

; 369  : 	Face_Time = Time;

	mov	edx, DWORD PTR _Time$[esp-4]
	mov	DWORD PTR [ecx+124], eax
	mov	DWORD PTR [ecx+128], edx

; 370  : }

	ret	8
?Set_Face_Location@ActionParamsStruct@@QAEXABUVector3@@M@Z ENDP ; ActionParamsStruct::Set_Face_Location
_TEXT	ENDS
PUBLIC	?Set_Basic@ActionParamsStruct@@QAEXPAVScriptClass@@KKJ@Z ; ActionParamsStruct::Set_Basic
; Function compile flags: /Ogty
;	COMDAT ?Set_Basic@ActionParamsStruct@@QAEXPAVScriptClass@@KKJ@Z
_TEXT	SEGMENT
_s$ = 8							; size = 4
_priority$ = 12						; size = 4
_ID$ = 16						; size = 4
_state$ = 20						; size = 4
?Set_Basic@ActionParamsStruct@@QAEXPAVScriptClass@@KKJ@Z PROC NEAR ; ActionParamsStruct::Set_Basic, COMDAT
; _this$ = ecx

; 380  : 	ID = s->GetID();

	mov	eax, DWORD PTR _s$[esp-4]
	mov	eax, DWORD PTR [eax+4]

; 381  : 	Action_Priority = priority;

	mov	edx, DWORD PTR _priority$[esp-4]

; 382  : 	Action_ID = ID;

	mov	DWORD PTR [ecx+4], eax

; 383  : 	Soldier_AI_State = state;

	mov	eax, DWORD PTR _state$[esp-4]
	mov	DWORD PTR [ecx], edx
	mov	DWORD PTR [ecx+168], eax

; 384  : }

	ret	16					; 00000010H
?Set_Basic@ActionParamsStruct@@QAEXPAVScriptClass@@KKJ@Z ENDP ; ActionParamsStruct::Set_Basic
_TEXT	ENDS
PUBLIC	?Set_Attack_Hold@ActionParamsStruct@@QAEXPAEMM_N1@Z ; ActionParamsStruct::Set_Attack_Hold
; Function compile flags: /Ogty
;	COMDAT ?Set_Attack_Hold@ActionParamsStruct@@QAEXPAEMM_N1@Z
_TEXT	SEGMENT
_Target$ = 8						; size = 4
_Range$ = 12						; size = 4
_Deviation$ = 16					; size = 4
_Primary$ = 20						; size = 1
_Hold$ = 24						; size = 1
?Set_Attack_Hold@ActionParamsStruct@@QAEXPAEMM_N1@Z PROC NEAR ; ActionParamsStruct::Set_Attack_Hold, COMDAT
; _this$ = ecx

; 396  : 	Attack_Target = Target;

	mov	eax, DWORD PTR _Target$[esp-4]

; 397  : 	Attack_Range = Range;

	mov	edx, DWORD PTR _Range$[esp-4]
	mov	DWORD PTR [ecx+88], eax

; 398  : 	Attack_Deviation = Deviation;

	mov	eax, DWORD PTR _Deviation$[esp-4]
	mov	DWORD PTR [ecx+76], edx

; 399  : 	Attack_Primary = Primary;

	mov	dl, BYTE PTR _Primary$[esp-4]
	mov	DWORD PTR [ecx+80], eax

; 400  : 	Hold_Action = Hold;

	mov	al, BYTE PTR _Hold$[esp-4]
	mov	BYTE PTR [ecx+92], dl
	mov	BYTE PTR [ecx+108], al

; 401  : }

	ret	20					; 00000014H
?Set_Attack_Hold@ActionParamsStruct@@QAEXPAEMM_N1@Z ENDP ; ActionParamsStruct::Set_Attack_Hold
_TEXT	ENDS
PUBLIC	?Created@Neo_CreateObject_RandomTimer@@EAEXPAE@Z ; Neo_CreateObject_RandomTimer::Created
PUBLIC	??_C@_03BJDGPCOK@Max?$AA@			; `string'
PUBLIC	??_C@_03LLNBGIF@Min?$AA@			; `string'
EXTRN	?Get_Float_Parameter@ScriptImpClass@@QAEMPBD@Z:NEAR ; ScriptImpClass::Get_Float_Parameter
EXTRN	?Commands@@3PAUScriptCommands@@A:DWORD		; Commands
;	COMDAT ??_C@_03BJDGPCOK@Max?$AA@
; File c:\documents and settings\owner\desktop\ssctf 1.3\neo.cpp
CONST	SEGMENT
??_C@_03BJDGPCOK@Max?$AA@ DB 'Max', 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_03LLNBGIF@Min?$AA@
CONST	SEGMENT
??_C@_03LLNBGIF@Min?$AA@ DB 'Min', 00H			; `string'
; Function compile flags: /Ogty
CONST	ENDS
;	COMDAT ?Created@Neo_CreateObject_RandomTimer@@EAEXPAE@Z
_TEXT	SEGMENT
_timer$ = -4						; size = 4
_obj$ = 8						; size = 4
?Created@Neo_CreateObject_RandomTimer@@EAEXPAE@Z PROC NEAR ; Neo_CreateObject_RandomTimer::Created, COMDAT
; _this$ = ecx

; 22   : {

	push	ecx
	push	esi
	push	edi

; 23   : 	//Start Counting
; 24   : 	float timer;
; 25   : 	timer = Commands->Get_Random(Get_Float_Parameter("Min"),Get_Float_Parameter("Max"));

	mov	edi, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	OFFSET FLAT:??_C@_03BJDGPCOK@Max?$AA@
	mov	esi, ecx
	add	edi, 148				; 00000094H
	call	?Get_Float_Parameter@ScriptImpClass@@QAEMPBD@Z ; ScriptImpClass::Get_Float_Parameter
	push	ecx
	fstp	DWORD PTR [esp]
	push	OFFSET FLAT:??_C@_03LLNBGIF@Min?$AA@
	mov	ecx, esi
	call	?Get_Float_Parameter@ScriptImpClass@@QAEMPBD@Z ; ScriptImpClass::Get_Float_Parameter
	push	ecx
	fstp	DWORD PTR [esp]
	call	DWORD PTR [edi]

; 26   : 	Commands->Start_Timer(obj,this,timer,0);

	mov	ecx, DWORD PTR _obj$[esp+16]
	fstp	DWORD PTR _timer$[esp+20]
	mov	eax, DWORD PTR _timer$[esp+20]
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	0
	push	eax
	push	esi
	push	ecx
	call	DWORD PTR [edx+128]
	add	esp, 24					; 00000018H
	pop	edi
	pop	esi

; 27   : }

	pop	ecx
	ret	4
?Created@Neo_CreateObject_RandomTimer@@EAEXPAE@Z ENDP	; Neo_CreateObject_RandomTimer::Created
_TEXT	ENDS
PUBLIC	?Timer_Expired@Neo_CreateObject_RandomTimer@@EAEXPAEH@Z ; Neo_CreateObject_RandomTimer::Timer_Expired
PUBLIC	??_C@_0M@KBNHOJJA@Preset_Name?$AA@		; `string'
PUBLIC	??_C@_06HJIMLMON@Repeat?$AA@			; `string'
EXTRN	?Get_Parameter@ScriptImpClass@@QAEPBDPBD@Z:NEAR	; ScriptImpClass::Get_Parameter
EXTRN	?Get_Int_Parameter@ScriptImpClass@@QAEHPBD@Z:NEAR ; ScriptImpClass::Get_Int_Parameter
;	COMDAT ??_C@_0M@KBNHOJJA@Preset_Name?$AA@
CONST	SEGMENT
??_C@_0M@KBNHOJJA@Preset_Name?$AA@ DB 'Preset_Name', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_06HJIMLMON@Repeat?$AA@
CONST	SEGMENT
??_C@_06HJIMLMON@Repeat?$AA@ DB 'Repeat', 00H		; `string'
; Function compile flags: /Ogty
CONST	ENDS
;	COMDAT ?Timer_Expired@Neo_CreateObject_RandomTimer@@EAEXPAEH@Z
_TEXT	SEGMENT
$T6973 = -24						; size = 12
$T6974 = -12						; size = 12
_timer$6145 = 8						; size = 4
_obj$ = 8						; size = 4
_number$ = 12						; size = 4
?Timer_Expired@Neo_CreateObject_RandomTimer@@EAEXPAEH@Z PROC NEAR ; Neo_CreateObject_RandomTimer::Timer_Expired, COMDAT
; _this$ = ecx

; 30   : {

	sub	esp, 24					; 00000018H
	push	ebx
	push	ebp
	push	esi
	push	edi

; 31   : 	//Time's up,create the object
; 32   : 
; 33   : 	GameObject *newobj;
; 34   : 
; 35   : 	newobj = Commands->Create_Object(Get_Parameter("Preset_Name"),Commands->Get_Position(obj));

	mov	edi, DWORD PTR _obj$[esp+36]
	lea	eax, DWORD PTR $T6974[esp+40]
	mov	esi, ecx
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	edi
	push	eax
	call	DWORD PTR [ecx+64]
	mov	edx, DWORD PTR [eax]
	mov	ebx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	DWORD PTR $T6973[esp+48], edx
	mov	ecx, DWORD PTR [eax+4]
	mov	DWORD PTR $T6973[esp+52], ecx
	mov	edx, DWORD PTR [eax+8]
	add	esp, 8
	lea	eax, DWORD PTR $T6973[esp+40]
	push	eax
	push	OFFSET FLAT:??_C@_0M@KBNHOJJA@Preset_Name?$AA@
	mov	ecx, esi
	mov	DWORD PTR $T6973[esp+56], edx
	add	ebx, 100				; 00000064H
	call	?Get_Parameter@ScriptImpClass@@QAEPBDPBD@Z ; ScriptImpClass::Get_Parameter
	push	eax
	call	DWORD PTR [ebx]
	mov	ebx, eax

; 36   : 	Commands->Set_Facing(newobj,Commands->Get_Facing(obj));

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	edi
	lea	ebp, DWORD PTR [eax+76]
	call	DWORD PTR [eax+72]
	fstp	DWORD PTR [esp+8]
	add	esp, 8
	push	ebx
	call	DWORD PTR [ebp]
	add	esp, 8

; 37   : 
; 38   : 	int repeat = Get_Int_Parameter("Repeat");

	push	OFFSET FLAT:??_C@_06HJIMLMON@Repeat?$AA@
	mov	ecx, esi
	call	?Get_Int_Parameter@ScriptImpClass@@QAEHPBD@Z ; ScriptImpClass::Get_Int_Parameter

; 39   : 
; 40   : 	if (repeat == 1) //Check if we should start again

	cmp	eax, 1
	jne	SHORT $L6144

; 41   : 	{
; 42   : 		//Start Counting again
; 43   : 		float timer;
; 44   : 		timer = Commands->Get_Random(Get_Float_Parameter("Min"),Get_Float_Parameter("Max"));

	mov	ebx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	OFFSET FLAT:??_C@_03BJDGPCOK@Max?$AA@
	mov	ecx, esi
	add	ebx, 148				; 00000094H
	call	?Get_Float_Parameter@ScriptImpClass@@QAEMPBD@Z ; ScriptImpClass::Get_Float_Parameter
	push	ecx
	fstp	DWORD PTR [esp]
	push	OFFSET FLAT:??_C@_03LLNBGIF@Min?$AA@
	mov	ecx, esi
	call	?Get_Float_Parameter@ScriptImpClass@@QAEMPBD@Z ; ScriptImpClass::Get_Float_Parameter
	push	ecx
	fstp	DWORD PTR [esp]
	call	DWORD PTR [ebx]

; 45   : 		Commands->Start_Timer(obj,this,timer,0);

	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	fstp	DWORD PTR _timer$6145[esp+44]
	mov	ecx, DWORD PTR _timer$6145[esp+44]
	push	0
	push	ecx
	push	esi
	push	edi
	call	DWORD PTR [edx+128]
	add	esp, 24					; 00000018H
$L6144:
	pop	edi
	pop	esi
	pop	ebp
	pop	ebx

; 46   : 	}
; 47   : }

	add	esp, 24					; 00000018H
	ret	8
?Timer_Expired@Neo_CreateObject_RandomTimer@@EAEXPAEH@Z ENDP ; Neo_CreateObject_RandomTimer::Timer_Expired
_TEXT	ENDS
PUBLIC	?Created@Neo_Vehicle_AI@@EAEXPAE@Z		; Neo_Vehicle_AI::Created
; Function compile flags: /Ogty
;	COMDAT ?Created@Neo_Vehicle_AI@@EAEXPAE@Z
_TEXT	SEGMENT
$T6979 = -12						; size = 12
_obj$ = 8						; size = 4
?Created@Neo_Vehicle_AI@@EAEXPAE@Z PROC NEAR		; Neo_Vehicle_AI::Created, COMDAT
; _this$ = ecx

; 52   : {

	sub	esp, 12					; 0000000cH
	push	ebx
	push	ebp
	push	esi
	mov	esi, ecx

; 53   : 	//Variable Initializing
; 54   : 	targetID = 0;

	xor	ebx, ebx
	push	edi

; 55   : 	position.X = 0;
; 56   : 	position.Y = 0;
; 57   : 	position.Z = 0;
; 58   : 	rampaging = false;
; 59   : 	guarding = false;
; 60   : 	moving = false;
; 61   : 	hunting = false;
; 62   : //	move_priority = 90;
; 63   : //	attack_priority = 100;
; 64   : 	face_priority = 1;
; 65   : 	current_priority = 10;
; 66   : 	guard_timer = 2;
; 67   : 	attack_timer = 2;
; 68   : 	mypos = Commands->Get_Position(obj);

	mov	edi, DWORD PTR _obj$[esp+24]
	mov	eax, 1073741824				; 40000000H
	mov	DWORD PTR [esi+56], eax
	mov	DWORD PTR [esi+60], eax
	lea	eax, DWORD PTR $T6979[esp+28]
	mov	DWORD PTR [esi+28], ebx
	mov	DWORD PTR [esi+32], ebx
	mov	DWORD PTR [esi+36], ebx
	mov	DWORD PTR [esi+40], ebx
	mov	BYTE PTR [esi+44], bl
	mov	BYTE PTR [esi+45], bl
	mov	BYTE PTR [esi+46], bl
	mov	BYTE PTR [esi+47], bl
	mov	DWORD PTR [esi+48], 1
	mov	DWORD PTR [esi+52], 10			; 0000000aH
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	edi
	push	eax
	call	DWORD PTR [ecx+64]
	mov	edx, DWORD PTR [eax+4]
	mov	ecx, DWORD PTR [eax]
	mov	eax, DWORD PTR [eax+8]
	lea	ebp, DWORD PTR [esi+64]
	mov	DWORD PTR [ebp], ecx
	mov	DWORD PTR [ebp+4], edx
	mov	DWORD PTR [ebp+8], eax

; 69   : 	move_count = 0;

	mov	DWORD PTR [esi+76], ebx

; 70   : 
; 71   : 	//Standard AI Startup Junk
; 72   : 	Commands->Enable_Enemy_Seen(obj,true);

	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	1
	push	edi
	call	DWORD PTR [edx+300]

; 73   : 	Commands->Enable_Vehicle_Transitions(obj,false);

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	ebx
	push	edi
	call	DWORD PTR [eax+728]

; 74   : 	Commands->Enable_Hibernation(obj,false);

	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	ebx
	push	edi
	call	DWORD PTR [ecx+568]

; 75   : 	Commands->Innate_Enable(obj);

	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	edi
	call	DWORD PTR [edx+440]
	add	esp, 36					; 00000024H
	pop	edi
	pop	esi
	pop	ebp
	pop	ebx

; 76   : }

	add	esp, 12					; 0000000cH
	ret	4
?Created@Neo_Vehicle_AI@@EAEXPAE@Z ENDP			; Neo_Vehicle_AI::Created
_TEXT	ENDS
PUBLIC	?Action_Complete@Neo_Vehicle_AI@@EAEXPAEHW4ActionCompleteReason@@@Z ; Neo_Vehicle_AI::Action_Complete
; Function compile flags: /Ogty
;	COMDAT ?Action_Complete@Neo_Vehicle_AI@@EAEXPAEHW4ActionCompleteReason@@@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_action$ = 12						; size = 4
_reason$ = 16						; size = 4
?Action_Complete@Neo_Vehicle_AI@@EAEXPAEHW4ActionCompleteReason@@@Z PROC NEAR ; Neo_Vehicle_AI::Action_Complete, COMDAT
; _this$ = ecx

; 134  : 	/**********************************************/
; 135  : 	//				Action IDs
; 136  : 	/**********************************************/
; 137  : 	//	10: Goto action
; 138  : 	//	20: Attack action
; 139  : 	//	30: Facing action
; 140  : 	/**********************************************/
; 141  : 
; 142  : 	if (action == 10)

	cmp	DWORD PTR _action$[esp-4], 10		; 0000000aH
	jne	SHORT $L6176

; 143  : 	{
; 144  : 		moving = false;

	xor	eax, eax
	mov	BYTE PTR [ecx+46], al

; 145  : 		move_count = 0; //move completed

	mov	DWORD PTR [ecx+76], eax
$L6176:

; 146  : 	}
; 147  : }

	ret	12					; 0000000cH
?Action_Complete@Neo_Vehicle_AI@@EAEXPAEHW4ActionCompleteReason@@@Z ENDP ; Neo_Vehicle_AI::Action_Complete
_TEXT	ENDS
PUBLIC	?Sound_Heard@Neo_Vehicle_AI@@EAEXPAEABUCombatSound@@@Z ; Neo_Vehicle_AI::Sound_Heard
; Function compile flags: /Ogty
;	COMDAT ?Sound_Heard@Neo_Vehicle_AI@@EAEXPAEABUCombatSound@@@Z
_TEXT	SEGMENT
_params$6237 = -196					; size = 196
_params$6232 = -196					; size = 196
_obj$ = 8						; size = 4
_sound$ = 12						; size = 4
?Sound_Heard@Neo_Vehicle_AI@@EAEXPAEABUCombatSound@@@Z PROC NEAR ; Neo_Vehicle_AI::Sound_Heard, COMDAT
; _this$ = ecx

; 258  : {

	sub	esp, 196				; 000000c4H
	push	esi
	mov	esi, ecx

; 259  : 	if (guarding)

	mov	al, BYTE PTR [esi+45]
	test	al, al
	push	edi
	je	$L6229

; 260  : 	{
; 261  : 		if (!moving)

	mov	al, BYTE PTR [esi+46]
	test	al, al
	jne	$L6236

; 262  : 		{
; 263  : 			if (Commands->Is_A_Star(sound.obj))

	mov	edi, DWORD PTR _sound$[esp+200]
	mov	eax, DWORD PTR [edi+16]
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	eax
	call	DWORD PTR [ecx+280]
	add	esp, 4
	test	al, al
	je	$L6236

; 264  : 			{
; 265  : 				ActionParamsStruct params;

	lea	ecx, DWORD PTR _params$6232[esp+204]
	call	??0ActionParamsStruct@@QAE@XZ		; ActionParamsStruct::ActionParamsStruct

; 266  : 				params.Set_Basic(this,face_priority,30,-1);

	mov	edx, DWORD PTR [esi+48]

; 267  : 				params.Set_Face_Location(sound.position,5);

	mov	ecx, DWORD PTR [edi]
	mov	eax, DWORD PTR [esi+4]
	mov	DWORD PTR _params$6232[esp+204], edx
	mov	edx, DWORD PTR [edi+4]
	mov	DWORD PTR _params$6232[esp+208], eax
	mov	eax, DWORD PTR [edi+8]
	mov	DWORD PTR _params$6232[esp+320], ecx

; 268  : 				Commands->Action_Face_Location(obj,params);

	lea	ecx, DWORD PTR _params$6232[esp+204]
	mov	DWORD PTR _params$6232[esp+324], edx
	mov	edx, DWORD PTR _obj$[esp+200]
	push	ecx
	mov	DWORD PTR _params$6232[esp+332], eax
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	edx
	mov	DWORD PTR _params$6232[esp+380], -1
	mov	DWORD PTR _params$6232[esp+340], 1084227584 ; 40a00000H
	call	DWORD PTR [eax+32]

; 283  : 					Commands->Action_Face_Location(obj,params);

	add	esp, 8
	pop	edi
	pop	esi

; 284  : 				}
; 285  : 			}
; 286  : 		}
; 287  : 	}
; 288  : }

	add	esp, 196				; 000000c4H
	ret	8
$L6229:

; 269  : 			}
; 270  : 		}
; 271  : 	}
; 272  : 	else
; 273  : 	{
; 274  : 		if (!rampaging)

	mov	al, BYTE PTR [esi+44]
	test	al, al
	jne	$L6236

; 275  : 		{
; 276  : 			if (!moving)

	mov	al, BYTE PTR [esi+46]
	test	al, al
	jne	SHORT $L6236

; 277  : 			{
; 278  : 				if (Commands->Is_A_Star(sound.obj))

	mov	edi, DWORD PTR _sound$[esp+200]
	mov	ecx, DWORD PTR [edi+16]
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	ecx
	call	DWORD PTR [edx+280]
	add	esp, 4
	test	al, al
	je	SHORT $L6236

; 279  : 				{
; 280  : 					ActionParamsStruct params;

	lea	ecx, DWORD PTR _params$6237[esp+204]
	call	??0ActionParamsStruct@@QAE@XZ		; ActionParamsStruct::ActionParamsStruct

; 281  : 					params.Set_Basic(this,face_priority,30,-1);

	mov	eax, DWORD PTR [esi+48]

; 282  : 					params.Set_Face_Location(sound.position,5);

	mov	edx, DWORD PTR [edi]
	mov	ecx, DWORD PTR [esi+4]
	mov	DWORD PTR _params$6237[esp+204], eax
	mov	eax, DWORD PTR [edi+4]
	mov	DWORD PTR _params$6237[esp+208], ecx
	mov	ecx, DWORD PTR [edi+8]
	mov	DWORD PTR _params$6237[esp+320], edx

; 283  : 					Commands->Action_Face_Location(obj,params);

	lea	edx, DWORD PTR _params$6237[esp+204]
	mov	DWORD PTR _params$6237[esp+324], eax
	mov	eax, DWORD PTR _obj$[esp+200]
	push	edx
	mov	DWORD PTR _params$6237[esp+332], ecx
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	eax
	mov	DWORD PTR _params$6237[esp+380], -1
	mov	DWORD PTR _params$6237[esp+340], 1084227584 ; 40a00000H
	call	DWORD PTR [ecx+32]
	add	esp, 8
$L6236:
	pop	edi
	pop	esi

; 284  : 				}
; 285  : 			}
; 286  : 		}
; 287  : 	}
; 288  : }

	add	esp, 196				; 000000c4H
	ret	8
?Sound_Heard@Neo_Vehicle_AI@@EAEXPAEABUCombatSound@@@Z ENDP ; Neo_Vehicle_AI::Sound_Heard
_TEXT	ENDS
PUBLIC	?Destroyed@Neo_Vehicle_AI@@EAEXPAE@Z		; Neo_Vehicle_AI::Destroyed
; Function compile flags: /Ogty
;	COMDAT ?Destroyed@Neo_Vehicle_AI@@EAEXPAE@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
?Destroyed@Neo_Vehicle_AI@@EAEXPAE@Z PROC NEAR		; Neo_Vehicle_AI::Destroyed, COMDAT
; _this$ = ecx

; 292  : 	//clean up things,send off messages
; 293  : }

	ret	4
?Destroyed@Neo_Vehicle_AI@@EAEXPAE@Z ENDP		; Neo_Vehicle_AI::Destroyed
_TEXT	ENDS
PUBLIC	?Register_Auto_Save_Variables@Neo_Vehicle_AI@@EAEXXZ ; Neo_Vehicle_AI::Register_Auto_Save_Variables
EXTRN	?Auto_Save_Variable@ScriptImpClass@@QAEXHHPAX@Z:NEAR ; ScriptImpClass::Auto_Save_Variable
; Function compile flags: /Ogty
;	COMDAT ?Register_Auto_Save_Variables@Neo_Vehicle_AI@@EAEXXZ
_TEXT	SEGMENT
?Register_Auto_Save_Variables@Neo_Vehicle_AI@@EAEXXZ PROC NEAR ; Neo_Vehicle_AI::Register_Auto_Save_Variables, COMDAT
; _this$ = ecx

; 296  : {

	push	esi
	mov	esi, ecx

; 297  : 	//Not sure on Size,all this could be wrong
; 298  : 	Auto_Save_Variable(1,4,&targetID);

	lea	eax, DWORD PTR [esi+28]
	push	eax
	push	4
	push	1
	call	?Auto_Save_Variable@ScriptImpClass@@QAEXHHPAX@Z ; ScriptImpClass::Auto_Save_Variable

; 299  : 	Auto_Save_Variable(2,4,&position);

	lea	ecx, DWORD PTR [esi+32]
	push	ecx
	push	4
	push	2
	mov	ecx, esi
	call	?Auto_Save_Variable@ScriptImpClass@@QAEXHHPAX@Z ; ScriptImpClass::Auto_Save_Variable

; 300  : 	Auto_Save_Variable(3,4,&rampaging);

	lea	edx, DWORD PTR [esi+44]
	push	edx
	push	4
	push	3
	mov	ecx, esi
	call	?Auto_Save_Variable@ScriptImpClass@@QAEXHHPAX@Z ; ScriptImpClass::Auto_Save_Variable

; 301  : 	Auto_Save_Variable(4,4,&guarding);

	lea	eax, DWORD PTR [esi+45]
	push	eax
	push	4
	push	4
	mov	ecx, esi
	call	?Auto_Save_Variable@ScriptImpClass@@QAEXHHPAX@Z ; ScriptImpClass::Auto_Save_Variable

; 302  : 	Auto_Save_Variable(5,4,&moving);

	lea	ecx, DWORD PTR [esi+46]
	push	ecx
	push	4
	push	5
	mov	ecx, esi
	call	?Auto_Save_Variable@ScriptImpClass@@QAEXHHPAX@Z ; ScriptImpClass::Auto_Save_Variable

; 303  : 	Auto_Save_Variable(6,4,&hunting);

	lea	edx, DWORD PTR [esi+47]
	push	edx
	push	4
	push	6
	mov	ecx, esi
	call	?Auto_Save_Variable@ScriptImpClass@@QAEXHHPAX@Z ; ScriptImpClass::Auto_Save_Variable

; 304  : //	Auto_Save_Variable(7,4,&move_priority);
; 305  : //	Auto_Save_Variable(8,4,&attack_priority);
; 306  : 	Auto_Save_Variable(9,4,&face_priority);

	lea	eax, DWORD PTR [esi+48]
	push	eax
	push	4
	push	9
	mov	ecx, esi
	call	?Auto_Save_Variable@ScriptImpClass@@QAEXHHPAX@Z ; ScriptImpClass::Auto_Save_Variable

; 307  : 	Auto_Save_Variable(10,4,&current_priority);

	lea	ecx, DWORD PTR [esi+52]
	push	ecx
	push	4
	push	10					; 0000000aH
	mov	ecx, esi
	call	?Auto_Save_Variable@ScriptImpClass@@QAEXHHPAX@Z ; ScriptImpClass::Auto_Save_Variable

; 308  : 	Auto_Save_Variable(11,4,&guard_timer);

	lea	edx, DWORD PTR [esi+56]
	push	edx
	push	4
	push	11					; 0000000bH
	mov	ecx, esi
	call	?Auto_Save_Variable@ScriptImpClass@@QAEXHHPAX@Z ; ScriptImpClass::Auto_Save_Variable

; 309  : 	Auto_Save_Variable(12,4,&attack_timer);

	lea	eax, DWORD PTR [esi+60]
	push	eax
	push	4
	push	12					; 0000000cH
	mov	ecx, esi
	call	?Auto_Save_Variable@ScriptImpClass@@QAEXHHPAX@Z ; ScriptImpClass::Auto_Save_Variable

; 310  : 	Auto_Save_Variable(13,4,&mypos);

	lea	ecx, DWORD PTR [esi+64]
	push	ecx
	push	4
	push	13					; 0000000dH
	mov	ecx, esi
	call	?Auto_Save_Variable@ScriptImpClass@@QAEXHHPAX@Z ; ScriptImpClass::Auto_Save_Variable

; 311  : 	Auto_Save_Variable(14,4,&move_count);

	lea	edx, DWORD PTR [esi+76]
	push	edx
	push	4
	push	14					; 0000000eH
	mov	ecx, esi
	call	?Auto_Save_Variable@ScriptImpClass@@QAEXHHPAX@Z ; ScriptImpClass::Auto_Save_Variable
	pop	esi

; 312  : }

	ret	0
?Register_Auto_Save_Variables@Neo_Vehicle_AI@@EAEXXZ ENDP ; Neo_Vehicle_AI::Register_Auto_Save_Variables
_TEXT	ENDS
PUBLIC	?Set_Target@Neo_Vehicle_AI@@AAEPAEPAE@Z		; Neo_Vehicle_AI::Set_Target
EXTRN	?Get_Vehicle@@YAPAEPAE@Z:NEAR			; Get_Vehicle
; Function compile flags: /Ogty
;	COMDAT ?Set_Target@Neo_Vehicle_AI@@AAEPAEPAE@Z
_TEXT	SEGMENT
_target$ = 8						; size = 4
?Set_Target@Neo_Vehicle_AI@@AAEPAEPAE@Z PROC NEAR	; Neo_Vehicle_AI::Set_Target, COMDAT
; _this$ = ecx

; 576  : 	//This function sets a new target even if one exists
; 577  : 	targetID = Commands->Get_ID(target); //remember target

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	esi
	push	edi
	mov	edi, DWORD PTR _target$[esp+4]
	push	edi
	mov	esi, ecx
	call	DWORD PTR [eax+108]
	mov	DWORD PTR [esi+28], eax

; 578  : 
; 579  : 	if (!hunting && !guarding) //only initiate if not doing anything

	mov	al, BYTE PTR [esi+47]
	add	esp, 4
	test	al, al
	jne	SHORT $L6355
	mov	al, BYTE PTR [esi+45]
	test	al, al
	jne	SHORT $L6355

; 580  : 	{
; 581  : 		if (Commands->Is_A_Star(target)) //Is it a player?

	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	edi
	call	DWORD PTR [ecx+280]
	add	esp, 4
	test	al, al
	je	SHORT $L6359

; 582  : 		{
; 583  : 			GameObject *vehicle = Get_Vehicle(target); 

	push	edi
	call	?Get_Vehicle@@YAPAEPAE@Z		; Get_Vehicle
	add	esp, 4

; 584  : 
; 585  : 			if (vehicle) //Are they in a vehicle

	test	eax, eax

; 586  : 				return vehicle; //if so,return vehicle

	jne	SHORT $L6354
$L6359:

; 587  : 			else
; 588  : 				return target; //if not,return player

	mov	eax, edi
	pop	edi
	pop	esi

; 595  : }

	ret	4
$L6355:

; 589  : 		}
; 590  : 
; 591  : 		return target; //nothing left but the target
; 592  : 	}
; 593  : 
; 594  : 	return 0; //don't start new job if already working

	xor	eax, eax
$L6354:
	pop	edi
	pop	esi

; 595  : }

	ret	4
?Set_Target@Neo_Vehicle_AI@@AAEPAEPAE@Z ENDP		; Neo_Vehicle_AI::Set_Target
_TEXT	ENDS
PUBLIC	?Get_Closest@Neo_Vehicle_AI@@AAEPAEPAE00@Z	; Neo_Vehicle_AI::Get_Closest
; Function compile flags: /Ogty
;	COMDAT ?Get_Closest@Neo_Vehicle_AI@@AAEPAEPAE00@Z
_TEXT	SEGMENT
_obj_pos$ = -48						; size = 12
_target1_pos$ = -36					; size = 12
_target2_pos$ = -24					; size = 12
$T7034 = -12						; size = 12
$T7032 = -12						; size = 12
$T7030 = -12						; size = 12
_dist1$ = 8						; size = 4
_obj$ = 8						; size = 4
_new_target$ = 12					; size = 4
_old_target$ = 16					; size = 4
?Get_Closest@Neo_Vehicle_AI@@AAEPAEPAE00@Z PROC NEAR	; Neo_Vehicle_AI::Get_Closest, COMDAT
; _this$ = ecx

; 598  : {

	sub	esp, 48					; 00000030H

; 599  : 	Vector3 obj_pos = Commands->Get_Position(obj);

	mov	eax, DWORD PTR _obj$[esp+44]
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	esi
	push	eax
	lea	ecx, DWORD PTR $T7030[esp+56]
	push	ecx
	call	DWORD PTR [edx+64]
	mov	ecx, DWORD PTR [eax]

; 600  : 	Vector3 target1_pos = Commands->Get_Position(new_target);

	mov	esi, DWORD PTR _new_target$[esp+56]
	mov	DWORD PTR _obj_pos$[esp+60], ecx
	mov	edx, DWORD PTR [eax+4]
	mov	DWORD PTR _obj_pos$[esp+64], edx
	mov	eax, DWORD PTR [eax+8]
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	ecx, DWORD PTR $T7032[esp+60]
	push	esi
	push	ecx
	mov	DWORD PTR _obj_pos$[esp+76], eax
	call	DWORD PTR [edx+64]
	mov	ecx, DWORD PTR [eax]
	mov	DWORD PTR _target1_pos$[esp+68], ecx
	mov	edx, DWORD PTR [eax+4]

; 601  : 	Vector3 target2_pos = Commands->Get_Position(old_target);

	mov	ecx, DWORD PTR _old_target$[esp+64]
	mov	DWORD PTR _target1_pos$[esp+72], edx
	mov	eax, DWORD PTR [eax+8]
	push	ecx
	lea	edx, DWORD PTR $T7034[esp+72]
	mov	DWORD PTR _target1_pos$[esp+80], eax
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	edx
	call	DWORD PTR [eax+64]
	mov	ecx, DWORD PTR [eax]
	mov	DWORD PTR _target2_pos$[esp+76], ecx
	mov	edx, DWORD PTR [eax+4]
	mov	DWORD PTR _target2_pos$[esp+80], edx
	mov	eax, DWORD PTR [eax+8]

; 602  : 
; 603  : 	float dist1 = Commands->Get_Distance(obj_pos,target1_pos);

	lea	ecx, DWORD PTR _target1_pos$[esp+76]
	push	ecx
	lea	edx, DWORD PTR _obj_pos$[esp+80]
	mov	DWORD PTR _target2_pos$[esp+88], eax
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	edx
	call	DWORD PTR [eax+256]
	fstp	DWORD PTR _dist1$[esp+80]

; 604  : 	float dist2 = Commands->Get_Distance(obj_pos,target2_pos);

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	ecx, DWORD PTR _target2_pos$[esp+84]
	push	ecx
	lea	edx, DWORD PTR _obj_pos$[esp+88]
	push	edx
	call	DWORD PTR [eax+256]

; 605  : 
; 606  : 	if (dist1 < dist2)

	fcomp	DWORD PTR _dist1$[esp+88]
	add	esp, 40					; 00000028H
	fnstsw	ax
	test	ah, 65					; 00000041H
	jne	SHORT $L6374

; 607  : 		return new_target; //new is closer,inform of change

	mov	eax, esi
	pop	esi

; 610  : }

	add	esp, 48					; 00000030H
	ret	12					; 0000000cH
$L6374:

; 608  : 	else
; 609  : 		return 0; //old is closer,no change needed

	xor	eax, eax
	pop	esi

; 610  : }

	add	esp, 48					; 00000030H
	ret	12					; 0000000cH
?Get_Closest@Neo_Vehicle_AI@@AAEPAEPAE00@Z ENDP		; Neo_Vehicle_AI::Get_Closest
_TEXT	ENDS
PUBLIC	??_C@_09IOOEOBPF@vsSoldier?$AA@			; `string'
PUBLIC	??_C@_0L@GLMKNALD@vsAircraft?$AA@		; `string'
PUBLIC	??_C@_09GEJKGJAF@vsVehicle?$AA@			; `string'
PUBLIC	?Set_Ammo@Neo_Vehicle_AI@@AAE_NPAE@Z		; Neo_Vehicle_AI::Set_Ammo
EXTRN	?Is_Soldier@@YA_NPAE@Z:NEAR			; Is_Soldier
EXTRN	?Is_Vehicle@@YA_NPAE@Z:NEAR			; Is_Vehicle
EXTRN	?Get_Vehicle_Mode@@YAIPAE@Z:NEAR		; Get_Vehicle_Mode
;	COMDAT ??_C@_09IOOEOBPF@vsSoldier?$AA@
CONST	SEGMENT
??_C@_09IOOEOBPF@vsSoldier?$AA@ DB 'vsSoldier', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_0L@GLMKNALD@vsAircraft?$AA@
CONST	SEGMENT
??_C@_0L@GLMKNALD@vsAircraft?$AA@ DB 'vsAircraft', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_09GEJKGJAF@vsVehicle?$AA@
CONST	SEGMENT
??_C@_09GEJKGJAF@vsVehicle?$AA@ DB 'vsVehicle', 00H	; `string'
; Function compile flags: /Ogty
CONST	ENDS
;	COMDAT ?Set_Ammo@Neo_Vehicle_AI@@AAE_NPAE@Z
_TEXT	SEGMENT
_target$ = 8						; size = 4
?Set_Ammo@Neo_Vehicle_AI@@AAE_NPAE@Z PROC NEAR		; Neo_Vehicle_AI::Set_Ammo, COMDAT
; _this$ = ecx

; 613  : {

	push	esi

; 614  : 	//This function sets ammo type to use on a target
; 615  : 
; 616  : 	if (target)//Just to be on the safe side

	mov	esi, DWORD PTR _target$[esp]
	test	esi, esi
	push	edi
	mov	edi, ecx
	je	SHORT $L6393

; 617  : 	{
; 618  : 		if (Is_Soldier(target)) //is the target a soldier?

	push	esi
	call	?Is_Soldier@@YA_NPAE@Z			; Is_Soldier
	add	esp, 4
	test	al, al
	je	SHORT $L6384

; 619  : 		{
; 620  : 			if (Get_Int_Parameter("vsSoldier")) 

	push	OFFSET FLAT:??_C@_09IOOEOBPF@vsSoldier?$AA@
	mov	ecx, edi
	call	?Get_Int_Parameter@ScriptImpClass@@QAEHPBD@Z ; ScriptImpClass::Get_Int_Parameter
	test	eax, eax
	pop	edi
	setne	al
	pop	esi

; 645  : }

	ret	4
$L6384:

; 621  : 				return true; //Use Primary
; 622  : 			else
; 623  : 				return false; //Use Secondary
; 624  : 		}
; 625  : 
; 626  : 		if (Is_Vehicle(target))

	push	esi
	call	?Is_Vehicle@@YA_NPAE@Z			; Is_Vehicle
	add	esp, 4
	test	al, al
	je	SHORT $L6393

; 627  : 		{
; 628  : 			if (Get_Vehicle_Mode(target) != FLYING)

	push	esi
	call	?Get_Vehicle_Mode@@YAIPAE@Z		; Get_Vehicle_Mode
	add	esp, 4
	cmp	eax, 3

; 629  : 			{
; 630  : 				if (Get_Int_Parameter("vsAircraft")) 

	mov	ecx, edi
	je	SHORT $L6386
	push	OFFSET FLAT:??_C@_0L@GLMKNALD@vsAircraft?$AA@
	call	?Get_Int_Parameter@ScriptImpClass@@QAEHPBD@Z ; ScriptImpClass::Get_Int_Parameter
	test	eax, eax
	pop	edi
	setne	al
	pop	esi

; 645  : }

	ret	4
$L6386:

; 631  : 					return true; //Use Primary
; 632  : 				else
; 633  : 					return false; //Use Secondary
; 634  : 			}
; 635  : 			else
; 636  : 			{
; 637  : 				if (Get_Int_Parameter("vsVehicle")) 

	push	OFFSET FLAT:??_C@_09GEJKGJAF@vsVehicle?$AA@
	call	?Get_Int_Parameter@ScriptImpClass@@QAEHPBD@Z ; ScriptImpClass::Get_Int_Parameter
	test	eax, eax
	pop	edi
	setne	al
	pop	esi

; 645  : }

	ret	4
$L6393:
	pop	edi

; 638  : 					return true; //Use Primary
; 639  : 				else
; 640  : 					return false; //Use Secondary
; 641  : 			}
; 642  : 		}
; 643  : 	}
; 644  : 	return true; //If all else fails,use Primary Ammo

	mov	al, 1
	pop	esi

; 645  : }

	ret	4
?Set_Ammo@Neo_Vehicle_AI@@AAE_NPAE@Z ENDP		; Neo_Vehicle_AI::Set_Ammo
_TEXT	ENDS
PUBLIC	__real@3f800000
PUBLIC	?Set_Direction@Neo_Vehicle_AI@@AAE_NPAE@Z	; Neo_Vehicle_AI::Set_Direction
;	COMDAT __real@3f800000
CONST	SEGMENT
__real@3f800000 DD 03f800000r			; 1
; Function compile flags: /Ogty
CONST	ENDS
;	COMDAT ?Set_Direction@Neo_Vehicle_AI@@AAE_NPAE@Z
_TEXT	SEGMENT
_current$ = -24						; size = 12
$T7042 = -12						; size = 12
_obj$ = 8						; size = 4
?Set_Direction@Neo_Vehicle_AI@@AAE_NPAE@Z PROC NEAR	; Neo_Vehicle_AI::Set_Direction, COMDAT
; _this$ = ecx

; 648  : {

	sub	esp, 24					; 00000018H

; 649  : 	Vector3 current = Commands->Get_Position(obj);

	mov	eax, DWORD PTR _obj$[esp+20]
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	esi
	push	edi
	mov	esi, ecx
	push	eax
	lea	ecx, DWORD PTR $T7042[esp+36]
	push	ecx
	call	DWORD PTR [edx+64]
	mov	ecx, DWORD PTR [eax]
	mov	DWORD PTR _current$[esp+40], ecx
	mov	edx, DWORD PTR [eax+4]

; 650  : 	float distance = Commands->Get_Distance(mypos,current);

	lea	ecx, DWORD PTR _current$[esp+40]
	mov	DWORD PTR _current$[esp+44], edx
	mov	eax, DWORD PTR [eax+8]
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	ecx
	lea	edi, DWORD PTR [esi+64]
	push	edi
	mov	DWORD PTR _current$[esp+56], eax
	call	DWORD PTR [edx+256]

; 651  : 
; 652  : 	if (distance < 1) //did I barely move?

	fcomp	DWORD PTR __real@3f800000
	add	esp, 16					; 00000010H
	fnstsw	ax
	test	ah, 5
	jp	SHORT $L6401

; 653  : 	{
; 654  : 		if (move_count > 2)

	mov	eax, DWORD PTR [esi+76]
	cmp	eax, 2
	jle	SHORT $L6402
	pop	edi

; 655  : 		{
; 656  : 			move_count = 0;

	mov	DWORD PTR [esi+76], 0

; 657  : 			return true; //tried at least 3 times,reverse direction

	mov	al, 1
	pop	esi

; 664  : }

	add	esp, 24					; 00000018H
	ret	4
$L6402:

; 658  : 		}
; 659  : 		move_count++; //haven't hit the limit yet

	inc	eax
	mov	DWORD PTR [esi+76], eax
$L6401:

; 660  : 	}
; 661  : 
; 662  : 	mypos = current; //remember current position

	mov	eax, DWORD PTR _current$[esp+32]
	mov	ecx, DWORD PTR _current$[esp+36]
	mov	edx, DWORD PTR _current$[esp+40]
	mov	DWORD PTR [edi], eax
	mov	DWORD PTR [edi+4], ecx
	mov	DWORD PTR [edi+8], edx
	pop	edi

; 663  : 	return false; //Don't drive backwards

	xor	al, al
	pop	esi

; 664  : }

	add	esp, 24					; 00000018H
	ret	4
?Set_Direction@Neo_Vehicle_AI@@AAE_NPAE@Z ENDP		; Neo_Vehicle_AI::Set_Direction
_TEXT	ENDS
PUBLIC	??1?$ScriptRegistrant@VNeo_CreateObject_RandomTimer@@@@UAE@XZ ; ScriptRegistrant<Neo_CreateObject_RandomTimer>::~ScriptRegistrant<Neo_CreateObject_RandomTimer>
EXTRN	??1ScriptFactory@@UAE@XZ:NEAR			; ScriptFactory::~ScriptFactory
; Function compile flags: /Ogty
;	COMDAT ??1?$ScriptRegistrant@VNeo_CreateObject_RandomTimer@@@@UAE@XZ
_TEXT	SEGMENT
??1?$ScriptRegistrant@VNeo_CreateObject_RandomTimer@@@@UAE@XZ PROC NEAR ; ScriptRegistrant<Neo_CreateObject_RandomTimer>::~ScriptRegistrant<Neo_CreateObject_RandomTimer>, COMDAT
; _this$ = ecx
	jmp	??1ScriptFactory@@UAE@XZ		; ScriptFactory::~ScriptFactory
??1?$ScriptRegistrant@VNeo_CreateObject_RandomTimer@@@@UAE@XZ ENDP ; ScriptRegistrant<Neo_CreateObject_RandomTimer>::~ScriptRegistrant<Neo_CreateObject_RandomTimer>
_TEXT	ENDS
PUBLIC	??1?$ScriptRegistrant@VNeo_Vehicle_AI@@@@UAE@XZ	; ScriptRegistrant<Neo_Vehicle_AI>::~ScriptRegistrant<Neo_Vehicle_AI>
; Function compile flags: /Ogty
;	COMDAT ??1?$ScriptRegistrant@VNeo_Vehicle_AI@@@@UAE@XZ
_TEXT	SEGMENT
??1?$ScriptRegistrant@VNeo_Vehicle_AI@@@@UAE@XZ PROC NEAR ; ScriptRegistrant<Neo_Vehicle_AI>::~ScriptRegistrant<Neo_Vehicle_AI>, COMDAT
; _this$ = ecx
	jmp	??1ScriptFactory@@UAE@XZ		; ScriptFactory::~ScriptFactory
??1?$ScriptRegistrant@VNeo_Vehicle_AI@@@@UAE@XZ ENDP	; ScriptRegistrant<Neo_Vehicle_AI>::~ScriptRegistrant<Neo_Vehicle_AI>
_TEXT	ENDS
PUBLIC	??0?$ScriptRegistrant@VNeo_CreateObject_RandomTimer@@@@QAE@PAD0@Z ; ScriptRegistrant<Neo_CreateObject_RandomTimer>::ScriptRegistrant<Neo_CreateObject_RandomTimer>
PUBLIC	?Create@?$ScriptRegistrant@VNeo_CreateObject_RandomTimer@@@@UAEPAVScriptImpClass@@XZ ; ScriptRegistrant<Neo_CreateObject_RandomTimer>::Create
PUBLIC	??_7?$ScriptRegistrant@VNeo_CreateObject_RandomTimer@@@@6B@ ; ScriptRegistrant<Neo_CreateObject_RandomTimer>::`vftable'
PUBLIC	??_G?$ScriptRegistrant@VNeo_CreateObject_RandomTimer@@@@UAEPAXI@Z ; ScriptRegistrant<Neo_CreateObject_RandomTimer>::`scalar deleting destructor'
EXTRN	??_E?$ScriptRegistrant@VNeo_CreateObject_RandomTimer@@@@UAEPAXI@Z:NEAR ; ScriptRegistrant<Neo_CreateObject_RandomTimer>::`vector deleting destructor'
EXTRN	??0ScriptFactory@@QAE@PAD0@Z:NEAR		; ScriptFactory::ScriptFactory
;	COMDAT ??_7?$ScriptRegistrant@VNeo_CreateObject_RandomTimer@@@@6B@
; File c:\documents and settings\owner\desktop\ssctf 1.3\scripts.h
CONST	SEGMENT
??_7?$ScriptRegistrant@VNeo_CreateObject_RandomTimer@@@@6B@ DD FLAT:??_E?$ScriptRegistrant@VNeo_CreateObject_RandomTimer@@@@UAEPAXI@Z ; ScriptRegistrant<Neo_CreateObject_RandomTimer>::`vftable'
	DD	FLAT:?Create@?$ScriptRegistrant@VNeo_CreateObject_RandomTimer@@@@UAEPAVScriptImpClass@@XZ
; Function compile flags: /Ogty
CONST	ENDS
;	COMDAT ??0?$ScriptRegistrant@VNeo_CreateObject_RandomTimer@@@@QAE@PAD0@Z
_TEXT	SEGMENT
_n$ = 8							; size = 4
_p$ = 12						; size = 4
??0?$ScriptRegistrant@VNeo_CreateObject_RandomTimer@@@@QAE@PAD0@Z PROC NEAR ; ScriptRegistrant<Neo_CreateObject_RandomTimer>::ScriptRegistrant<Neo_CreateObject_RandomTimer>, COMDAT
; _this$ = ecx

; 474  : 	{

	mov	eax, DWORD PTR _p$[esp-4]
	push	esi
	mov	esi, ecx
	mov	ecx, DWORD PTR _n$[esp]
	push	eax
	push	ecx
	mov	ecx, esi
	call	??0ScriptFactory@@QAE@PAD0@Z		; ScriptFactory::ScriptFactory
	mov	DWORD PTR [esi], OFFSET FLAT:??_7?$ScriptRegistrant@VNeo_CreateObject_RandomTimer@@@@6B@

; 475  : 	}

	mov	eax, esi
	pop	esi
	ret	8
??0?$ScriptRegistrant@VNeo_CreateObject_RandomTimer@@@@QAE@PAD0@Z ENDP ; ScriptRegistrant<Neo_CreateObject_RandomTimer>::ScriptRegistrant<Neo_CreateObject_RandomTimer>
_TEXT	ENDS
PUBLIC	??0?$ScriptRegistrant@VNeo_Vehicle_AI@@@@QAE@PAD0@Z ; ScriptRegistrant<Neo_Vehicle_AI>::ScriptRegistrant<Neo_Vehicle_AI>
PUBLIC	?Create@?$ScriptRegistrant@VNeo_Vehicle_AI@@@@UAEPAVScriptImpClass@@XZ ; ScriptRegistrant<Neo_Vehicle_AI>::Create
PUBLIC	??_7?$ScriptRegistrant@VNeo_Vehicle_AI@@@@6B@	; ScriptRegistrant<Neo_Vehicle_AI>::`vftable'
PUBLIC	??_G?$ScriptRegistrant@VNeo_Vehicle_AI@@@@UAEPAXI@Z ; ScriptRegistrant<Neo_Vehicle_AI>::`scalar deleting destructor'
EXTRN	??_E?$ScriptRegistrant@VNeo_Vehicle_AI@@@@UAEPAXI@Z:NEAR ; ScriptRegistrant<Neo_Vehicle_AI>::`vector deleting destructor'
;	COMDAT ??_7?$ScriptRegistrant@VNeo_Vehicle_AI@@@@6B@
CONST	SEGMENT
??_7?$ScriptRegistrant@VNeo_Vehicle_AI@@@@6B@ DD FLAT:??_E?$ScriptRegistrant@VNeo_Vehicle_AI@@@@UAEPAXI@Z ; ScriptRegistrant<Neo_Vehicle_AI>::`vftable'
	DD	FLAT:?Create@?$ScriptRegistrant@VNeo_Vehicle_AI@@@@UAEPAVScriptImpClass@@XZ
; Function compile flags: /Ogty
CONST	ENDS
;	COMDAT ??0?$ScriptRegistrant@VNeo_Vehicle_AI@@@@QAE@PAD0@Z
_TEXT	SEGMENT
_n$ = 8							; size = 4
_p$ = 12						; size = 4
??0?$ScriptRegistrant@VNeo_Vehicle_AI@@@@QAE@PAD0@Z PROC NEAR ; ScriptRegistrant<Neo_Vehicle_AI>::ScriptRegistrant<Neo_Vehicle_AI>, COMDAT
; _this$ = ecx

; 474  : 	{

	mov	eax, DWORD PTR _p$[esp-4]
	push	esi
	mov	esi, ecx
	mov	ecx, DWORD PTR _n$[esp]
	push	eax
	push	ecx
	mov	ecx, esi
	call	??0ScriptFactory@@QAE@PAD0@Z		; ScriptFactory::ScriptFactory
	mov	DWORD PTR [esi], OFFSET FLAT:??_7?$ScriptRegistrant@VNeo_Vehicle_AI@@@@6B@

; 475  : 	}

	mov	eax, esi
	pop	esi
	ret	8
??0?$ScriptRegistrant@VNeo_Vehicle_AI@@@@QAE@PAD0@Z ENDP ; ScriptRegistrant<Neo_Vehicle_AI>::ScriptRegistrant<Neo_Vehicle_AI>
_TEXT	ENDS
EXTRN	??3@YAXPAX@Z:NEAR				; operator delete
; Function compile flags: /Ogty
;	COMDAT ??_G?$ScriptRegistrant@VNeo_CreateObject_RandomTimer@@@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$ScriptRegistrant@VNeo_CreateObject_RandomTimer@@@@UAEPAXI@Z PROC NEAR ; ScriptRegistrant<Neo_CreateObject_RandomTimer>::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1?$ScriptRegistrant@VNeo_CreateObject_RandomTimer@@@@UAE@XZ
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $L7064
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L7064:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$ScriptRegistrant@VNeo_CreateObject_RandomTimer@@@@UAEPAXI@Z ENDP ; ScriptRegistrant<Neo_CreateObject_RandomTimer>::`scalar deleting destructor'
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ??_G?$ScriptRegistrant@VNeo_Vehicle_AI@@@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$ScriptRegistrant@VNeo_Vehicle_AI@@@@UAEPAXI@Z PROC NEAR ; ScriptRegistrant<Neo_Vehicle_AI>::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1?$ScriptRegistrant@VNeo_Vehicle_AI@@@@UAE@XZ
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $L7068
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L7068:
	mov	eax, esi
	pop	esi
	ret	4
??_G?$ScriptRegistrant@VNeo_Vehicle_AI@@@@UAEPAXI@Z ENDP ; ScriptRegistrant<Neo_Vehicle_AI>::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??_C@_08JOBCAEBO@MaxRange?$AA@			; `string'
PUBLIC	__real@41200000
PUBLIC	?Hunt@Neo_Vehicle_AI@@AAEXPAE0@Z		; Neo_Vehicle_AI::Hunt
;	COMDAT ??_C@_08JOBCAEBO@MaxRange?$AA@
CONST	SEGMENT
??_C@_08JOBCAEBO@MaxRange?$AA@ DB 'MaxRange', 00H	; `string'
CONST	ENDS
;	COMDAT __real@41200000
CONST	SEGMENT
__real@41200000 DD 041200000r			; 10
; Function compile flags: /Ogty
; File c:\documents and settings\owner\desktop\ssctf 1.3\neo.cpp
CONST	ENDS
;	COMDAT ?Hunt@Neo_Vehicle_AI@@AAEXPAE0@Z
_TEXT	SEGMENT
_deviation$6258 = -236					; size = 4
_distance$6255 = -236					; size = 4
_pos$6251 = -232					; size = 12
_mypos$6253 = -220					; size = 12
$T7075 = -208						; size = 12
$T7073 = -208						; size = 12
_params$6263 = -196					; size = 196
_params$6261 = -196					; size = 196
_obj$ = 8						; size = 4
_target$ = 12						; size = 4
?Hunt@Neo_Vehicle_AI@@AAEXPAE0@Z PROC NEAR		; Neo_Vehicle_AI::Hunt, COMDAT
; _this$ = ecx

; 315  : {

	sub	esp, 236				; 000000ecH
	push	ebp

; 316  : 	if (target) //Can't do anything without a target

	mov	ebp, DWORD PTR _target$[esp+236]
	test	ebp, ebp
	push	esi
	mov	esi, ecx
	je	$L6250
	push	ebx
	push	edi

; 317  : 	{
; 318  : 		hunting = true; //The hunt has begun!
; 319  : 		guarding = false; //W00T! no more guard duty!
; 320  : 
; 321  : 		Vector3 pos = Commands->Get_Position(target);

	lea	eax, DWORD PTR $T7073[esp+252]
	mov	BYTE PTR [esi+47], 1
	mov	BYTE PTR [esi+45], 0
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	ebp
	push	eax
	call	DWORD PTR [ecx+64]
	mov	edx, DWORD PTR [eax]

; 322  : 		Vector3 mypos = Commands->Get_Position(obj);

	mov	edi, DWORD PTR _obj$[esp+256]
	mov	DWORD PTR _pos$6251[esp+260], edx
	mov	ecx, DWORD PTR [eax+4]
	mov	DWORD PTR _pos$6251[esp+264], ecx
	mov	edx, DWORD PTR [eax+8]
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	eax, DWORD PTR $T7075[esp+260]
	push	edi
	push	eax
	mov	DWORD PTR _pos$6251[esp+276], edx
	call	DWORD PTR [ecx+64]
	mov	edx, DWORD PTR [eax]
	mov	DWORD PTR _mypos$6253[esp+268], edx
	mov	ecx, DWORD PTR [eax+4]
	mov	DWORD PTR _mypos$6253[esp+272], ecx
	mov	edx, DWORD PTR [eax+8]

; 323  : 		float distance = Commands->Get_Distance(pos,mypos);

	lea	eax, DWORD PTR _mypos$6253[esp+268]
	push	eax
	lea	ecx, DWORD PTR _pos$6251[esp+272]
	mov	DWORD PTR _mypos$6253[esp+280], edx
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	ecx
	call	DWORD PTR [edx+256]
	fstp	DWORD PTR _distance$6255[esp+276]
	add	esp, 24					; 00000018H

; 324  : 		float max = Get_Float_Parameter("MaxRange");

	push	OFFSET FLAT:??_C@_08JOBCAEBO@MaxRange?$AA@
	mov	ecx, esi
	call	?Get_Float_Parameter@ScriptImpClass@@QAEMPBD@Z ; ScriptImpClass::Get_Float_Parameter

; 325  : 
; 326  : 		current_priority += 1; //override last hunt command
; 327  : 
; 328  : 		if (distance > max)

	fld	DWORD PTR _distance$6255[esp+252]
	mov	eax, DWORD PTR [esi+52]
	fcomp	ST(1)
	inc	eax
	mov	DWORD PTR [esi+52], eax
	mov	ebx, eax
	fnstsw	ax
	test	ah, 65					; 00000041H
	jne	$L6257

; 329  : 		{
; 330  : 			float deviation;
; 331  : 
; 332  : 			if (max > 10)

	fcom	DWORD PTR __real@41200000
	fnstsw	ax
	test	ah, 65					; 00000041H
	jne	SHORT $L6259

; 333  : 				deviation = max - 10;

	fsub	DWORD PTR __real@41200000
$L6259:

; 334  : 			else
; 335  : 				deviation = max;
; 336  : 
; 337  : 			ActionParamsStruct params;

	lea	ecx, DWORD PTR _params$6261[esp+252]
	fstp	DWORD PTR _deviation$6258[esp+252]
	call	??0ActionParamsStruct@@QAE@XZ		; ActionParamsStruct::ActionParamsStruct

; 338  : 			params.Set_Basic(this,current_priority,10,-1);
; 339  : 			params.Set_Goto_Location(pos,1,deviation,false);

	mov	ecx, DWORD PTR _pos$6251[esp+252]
	mov	eax, DWORD PTR [esi+4]
	mov	edx, DWORD PTR _pos$6251[esp+256]
	mov	DWORD PTR _params$6261[esp+284], ecx
	mov	ecx, DWORD PTR _deviation$6258[esp+252]
	mov	DWORD PTR _params$6261[esp+256], eax
	mov	eax, DWORD PTR _pos$6251[esp+260]
	mov	DWORD PTR _params$6261[esp+316], ecx

; 340  : 			params.Move_Backwards = Set_Direction(obj);

	push	edi
	mov	ecx, esi
	mov	DWORD PTR _params$6261[esp+256], ebx
	mov	DWORD PTR _params$6261[esp+424], -1
	mov	DWORD PTR _params$6261[esp+292], edx
	mov	DWORD PTR _params$6261[esp+296], eax
	mov	DWORD PTR _params$6261[esp+316], 1065353216 ; 3f800000H
	mov	BYTE PTR _params$6261[esp+326], 0
	call	?Set_Direction@Neo_Vehicle_AI@@AAE_NPAE@Z ; Neo_Vehicle_AI::Set_Direction

; 341  : 			Commands->Action_Goto(obj,params);

	lea	edx, DWORD PTR _params$6261[esp+252]
	push	edx
	mov	BYTE PTR _params$6261[esp+324], al
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	edi
	call	DWORD PTR [eax+16]

; 342  : 			moving = true;

	mov	BYTE PTR [esi+46], 1

; 343  : 		}
; 344  : 		else

	jmp	SHORT $L7109
$L6257:

; 345  : 		{
; 346  : 			ActionParamsStruct params;

	lea	ecx, DWORD PTR _params$6263[esp+252]
	fstp	ST(0)
	call	??0ActionParamsStruct@@QAE@XZ		; ActionParamsStruct::ActionParamsStruct

; 347  : 			params.Set_Basic(this,current_priority,20,-1);

	mov	ecx, DWORD PTR [esi+4]
	mov	DWORD PTR _params$6263[esp+256], ecx

; 348  : 			params.Set_Attack_Hold(target,distance,0,Set_Ammo(target),true);

	push	ebp
	mov	ecx, esi
	mov	DWORD PTR _params$6263[esp+256], ebx
	mov	DWORD PTR _params$6263[esp+424], -1
	call	?Set_Ammo@Neo_Vehicle_AI@@AAE_NPAE@Z	; Neo_Vehicle_AI::Set_Ammo
	mov	edx, DWORD PTR _distance$6255[esp+252]

; 349  : 			Commands->Action_Attack(obj,params);

	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	mov	BYTE PTR _params$6263[esp+344], al
	lea	eax, DWORD PTR _params$6263[esp+252]
	push	eax
	push	edi
	mov	DWORD PTR _params$6263[esp+348], ebp
	mov	DWORD PTR _params$6263[esp+336], edx
	mov	DWORD PTR _params$6263[esp+340], 0
	mov	BYTE PTR _params$6263[esp+368], 1
	call	DWORD PTR [ecx+20]
$L7109:

; 350  : 		}
; 351  : 
; 352  : 		Commands->Start_Timer(obj,this,attack_timer,22);

	mov	edx, DWORD PTR [esi+60]
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	add	esp, 8
	push	22					; 00000016H
	push	edx
	push	esi
	push	edi
	call	DWORD PTR [eax+128]
	add	esp, 16					; 00000010H
	pop	edi
	pop	ebx
$L6250:
	pop	esi
	pop	ebp

; 353  : 	}
; 354  : }

	add	esp, 236				; 000000ecH
	ret	8
?Hunt@Neo_Vehicle_AI@@AAEXPAE0@Z ENDP			; Neo_Vehicle_AI::Hunt
_TEXT	ENDS
PUBLIC	?Guard@Neo_Vehicle_AI@@AAEXPAE0@Z		; Neo_Vehicle_AI::Guard
; Function compile flags: /Ogty
;	COMDAT ?Guard@Neo_Vehicle_AI@@AAEXPAE0@Z
_TEXT	SEGMENT
_pos$6270 = -232					; size = 12
_mypos$6272 = -220					; size = 12
$T7116 = -208						; size = 12
$T7114 = -208						; size = 12
_params$6276 = -196					; size = 196
_obj$ = 8						; size = 4
_target$ = 12						; size = 4
?Guard@Neo_Vehicle_AI@@AAEXPAE0@Z PROC NEAR		; Neo_Vehicle_AI::Guard, COMDAT
; _this$ = ecx

; 358  : 	if (target) //Check for a target

	mov	eax, DWORD PTR _target$[esp-4]
	sub	esp, 232				; 000000e8H
	test	eax, eax
	push	esi
	mov	esi, ecx
	je	$L6269
	push	ebp
	push	edi

; 359  : 	{
; 360  : 		guarding = true; //time for guard duty
; 361  : 		hunting = false; //any hunts have ended
; 362  : 
; 363  : 		Vector3 pos = Commands->Get_Position(target);

	push	eax
	lea	eax, DWORD PTR $T7114[esp+248]
	mov	BYTE PTR [esi+45], 1
	mov	BYTE PTR [esi+47], 0
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	eax
	call	DWORD PTR [ecx+64]
	mov	edx, DWORD PTR [eax]

; 364  : 		Vector3 mypos = Commands->Get_Position(obj);

	mov	edi, DWORD PTR _obj$[esp+248]
	mov	DWORD PTR _pos$6270[esp+252], edx
	mov	ecx, DWORD PTR [eax+4]
	mov	DWORD PTR _pos$6270[esp+256], ecx
	mov	edx, DWORD PTR [eax+8]
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	eax, DWORD PTR $T7116[esp+252]
	push	edi
	push	eax
	mov	DWORD PTR _pos$6270[esp+268], edx
	call	DWORD PTR [ecx+64]
	mov	edx, DWORD PTR [eax]
	mov	DWORD PTR _mypos$6272[esp+260], edx
	mov	ecx, DWORD PTR [eax+4]
	mov	DWORD PTR _mypos$6272[esp+264], ecx
	mov	edx, DWORD PTR [eax+8]

; 365  : 		float distance = Commands->Get_Distance(pos,mypos);

	lea	eax, DWORD PTR _mypos$6272[esp+260]
	push	eax
	lea	ecx, DWORD PTR _pos$6270[esp+264]
	mov	DWORD PTR _mypos$6272[esp+272], edx
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	ecx
	call	DWORD PTR [edx+256]

; 366  : 
; 367  : 		current_priority += 1; //override last command
; 368  : 
; 369  : 		if (distance > 10)

	fcomp	DWORD PTR __real@41200000
	mov	eax, DWORD PTR [esi+52]
	add	esp, 24					; 00000018H
	inc	eax
	mov	DWORD PTR [esi+52], eax
	mov	ebp, eax
	fnstsw	ax
	test	ah, 65					; 00000041H
	jne	SHORT $L6275

; 370  : 		{
; 371  : 			ActionParamsStruct params;

	lea	ecx, DWORD PTR _params$6276[esp+244]
	call	??0ActionParamsStruct@@QAE@XZ		; ActionParamsStruct::ActionParamsStruct

; 372  : 			params.Set_Basic(this,current_priority,10,-1);

	mov	eax, DWORD PTR [esi+4]

; 373  : 			params.Set_Goto_Location(pos,1,8,false);

	mov	ecx, DWORD PTR _pos$6270[esp+244]
	mov	edx, DWORD PTR _pos$6270[esp+248]
	mov	DWORD PTR _params$6276[esp+248], eax
	mov	eax, DWORD PTR _pos$6270[esp+252]
	mov	DWORD PTR _params$6276[esp+276], ecx

; 374  : 			params.Move_Backwards = Set_Direction(obj);

	push	edi
	mov	ecx, esi
	mov	DWORD PTR _params$6276[esp+248], ebp
	mov	DWORD PTR _params$6276[esp+416], -1
	mov	DWORD PTR _params$6276[esp+284], edx
	mov	DWORD PTR _params$6276[esp+288], eax
	mov	DWORD PTR _params$6276[esp+308], 1065353216 ; 3f800000H
	mov	DWORD PTR _params$6276[esp+312], 1090519040 ; 41000000H
	mov	BYTE PTR _params$6276[esp+318], 0
	call	?Set_Direction@Neo_Vehicle_AI@@AAE_NPAE@Z ; Neo_Vehicle_AI::Set_Direction

; 375  : 			Commands->Action_Goto(obj,params);

	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	ecx, DWORD PTR _params$6276[esp+244]
	push	ecx
	push	edi
	mov	BYTE PTR _params$6276[esp+320], al
	call	DWORD PTR [edx+16]
	add	esp, 8

; 376  : 			moving = true;

	mov	BYTE PTR [esi+46], 1
$L6275:

; 377  : 		}
; 378  : 
; 379  : 		Commands->Start_Timer(obj,this,guard_timer,11);

	mov	eax, DWORD PTR [esi+56]
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	11					; 0000000bH
	push	eax
	push	esi
	push	edi
	call	DWORD PTR [ecx+128]
	add	esp, 16					; 00000010H
	pop	edi
	pop	ebp
$L6269:
	pop	esi

; 380  : 	}
; 381  : }

	add	esp, 232				; 000000e8H
	ret	8
?Guard@Neo_Vehicle_AI@@AAEXPAE0@Z ENDP			; Neo_Vehicle_AI::Guard
_TEXT	ENDS
PUBLIC	?Select_Target@Neo_Vehicle_AI@@AAEPAEPAE0@Z	; Neo_Vehicle_AI::Select_Target
; Function compile flags: /Ogty
;	COMDAT ?Select_Target@Neo_Vehicle_AI@@AAEPAEPAE0@Z
_TEXT	SEGMENT
$T7158 = -48						; size = 12
$T7154 = -48						; size = 12
$T7150 = -48						; size = 12
$T7146 = -48						; size = 12
$T7142 = -48						; size = 12
$T7136 = -48						; size = 12
$T7156 = -36						; size = 12
$T7152 = -36						; size = 12
$T7148 = -36						; size = 12
$T7144 = -36						; size = 12
$T7140 = -36						; size = 12
$T7138 = -36						; size = 12
$T7159 = -24						; size = 12
$T7155 = -24						; size = 12
$T7151 = -24						; size = 12
$T7147 = -24						; size = 12
$T7143 = -24						; size = 12
$T7137 = -24						; size = 12
$T7157 = -12						; size = 12
$T7153 = -12						; size = 12
$T7149 = -12						; size = 12
$T7145 = -12						; size = 12
$T7141 = -12						; size = 12
$T7139 = -12						; size = 12
_distance$6320 = 8					; size = 4
_distance$6308 = 8					; size = 4
_distance$6294 = 8					; size = 4
_obj$ = 8						; size = 4
_target$ = 12						; size = 4
?Select_Target@Neo_Vehicle_AI@@AAEPAEPAE0@Z PROC NEAR	; Neo_Vehicle_AI::Select_Target, COMDAT
; _this$ = ecx

; 384  : {

	sub	esp, 48					; 00000030H
	push	ebx
	push	esi
	push	edi

; 385  : 	//This function determines threats between old and new targets
; 386  : 	GameObject *selected = 0; //if threat rating skips,this stays 0
; 387  : 							//if threat keeps old,this stays 0
; 388  : 
; 389  : 	if (target) //First see if there is a valid target

	mov	edi, DWORD PTR _target$[esp+56]
	test	edi, edi
	mov	esi, ecx
	je	$L6339

; 390  : 	{
; 391  : 		GameObject *old = Commands->Find_Object(targetID);

	mov	eax, DWORD PTR [esi+28]
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	eax
	call	DWORD PTR [ecx+96]
	mov	ebx, eax
	add	esp, 4

; 392  : 		if (old) //is there a current target?

	test	ebx, ebx
	je	$L6285

; 393  : 		{
; 394  : 			unsigned int newID = Commands->Get_ID(target);

	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	edi
	call	DWORD PTR [edx+108]

; 395  : 
; 396  : 			/******************Threat Rating System**********************/
; 397  : 
; 398  : 			if (newID != targetID) //is this a new target

	mov	ecx, DWORD PTR [esi+28]
	add	esp, 4
	cmp	eax, ecx
	je	$L6339

; 399  : 			{
; 400  : 				//requires threat assessment
; 401  : 				if (Commands->Is_A_Star(target)) //Is new one a player?

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	edi
	call	DWORD PTR [eax+280]
	add	esp, 4
	test	al, al
	je	$L6288

; 402  : 				{
; 403  : 					GameObject *vehicle = Get_Vehicle(target);

	push	edi
	call	?Get_Vehicle@@YAPAEPAE@Z		; Get_Vehicle

; 404  : 
; 405  : 					if (vehicle) //is player in a tank?
; 406  : 					{
; 407  : 						if (Commands->Is_A_Star(old))

	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	add	esp, 4
	test	eax, eax
	push	ebx
	je	$L6290
	call	DWORD PTR [ecx+280]
	add	esp, 4
	test	al, al

; 408  : 						{
; 409  : 							//Both are players,do a vehicle test
; 410  : 							vehicle = Get_Vehicle(old);

	push	ebx
	je	$L6291
	call	?Get_Vehicle@@YAPAEPAE@Z		; Get_Vehicle
	add	esp, 4

; 411  : 							if (vehicle) //is the old in a vehicle?

	test	eax, eax

; 412  : 							{
; 413  : 								//both in vehicle,closer is priority
; 414  : 								selected = Get_Closest(obj,target,old);

	push	ebx
	je	SHORT $L6292
	mov	edx, DWORD PTR _obj$[esp+60]
	push	edi
	push	edx

; 415  : 							}
; 416  : 							else //old not in a vehicle

	jmp	$L7162
$L6292:

; 417  : 							{
; 418  : 								//specify distance to change on
; 419  : 								float distance = Commands->Get_Distance(Commands->Get_Position(obj),Commands->Get_Position(old));

	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	eax, DWORD PTR $T7137[esp+64]
	push	eax
	call	DWORD PTR [ecx+64]
	mov	edx, DWORD PTR [eax]
	mov	ebx, DWORD PTR _obj$[esp+64]
	mov	DWORD PTR $T7136[esp+68], edx
	mov	ecx, DWORD PTR [eax+4]
	mov	DWORD PTR $T7136[esp+72], ecx
	mov	edx, DWORD PTR [eax+8]
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	eax, DWORD PTR $T7139[esp+68]
	push	ebx
	push	eax
	mov	DWORD PTR $T7136[esp+84], edx
	call	DWORD PTR [ecx+64]
	mov	edx, DWORD PTR [eax]
	mov	DWORD PTR $T7138[esp+76], edx
	mov	ecx, DWORD PTR [eax+4]
	mov	DWORD PTR $T7138[esp+80], ecx
	mov	edx, DWORD PTR [eax+8]
	lea	eax, DWORD PTR $T7136[esp+76]
	push	eax
	lea	ecx, DWORD PTR $T7138[esp+80]
	mov	DWORD PTR $T7138[esp+88], edx
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	ecx
	call	DWORD PTR [edx+256]
	fstp	DWORD PTR _distance$6294[esp+80]
	add	esp, 24					; 00000018H

; 420  : 								if (distance > Get_Float_Parameter("MaxRange"))

	push	OFFSET FLAT:??_C@_08JOBCAEBO@MaxRange?$AA@
	mov	ecx, esi
	call	?Get_Float_Parameter@ScriptImpClass@@QAEMPBD@Z ; ScriptImpClass::Get_Float_Parameter
	fcomp	DWORD PTR _distance$6294[esp+56]
	fnstsw	ax
	test	ah, 5
	jp	$L6339

; 421  : 								{
; 422  : 									distance = Commands->Get_Distance(Commands->Get_Position(obj),Commands->Get_Position(target));

	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	eax, DWORD PTR $T7141[esp+60]
	push	edi
	push	eax
	call	DWORD PTR [ecx+64]
	mov	edx, DWORD PTR [eax]
	mov	DWORD PTR $T7140[esp+68], edx
	mov	ecx, DWORD PTR [eax+4]
	mov	DWORD PTR $T7140[esp+72], ecx
	mov	edx, DWORD PTR [eax+8]
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	eax, DWORD PTR $T7143[esp+68]
	push	ebx
	push	eax
	mov	DWORD PTR $T7140[esp+84], edx
	call	DWORD PTR [ecx+64]
	mov	edx, DWORD PTR [eax]
	mov	DWORD PTR $T7142[esp+76], edx
	mov	ecx, DWORD PTR [eax+4]
	mov	DWORD PTR $T7142[esp+80], ecx
	mov	edx, DWORD PTR [eax+8]
	lea	eax, DWORD PTR $T7140[esp+76]
	push	eax
	lea	ecx, DWORD PTR $T7142[esp+80]
	mov	DWORD PTR $T7142[esp+88], edx
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	ecx
	call	DWORD PTR [edx+256]

; 423  : 									if (distance < Get_Float_Parameter("MaxRange"))
; 424  : 										selected = target;
; 425  : 								}
; 426  : 							}
; 427  : 						}
; 428  : 						else

	jmp	$L7160
$L6291:

; 429  : 						{
; 430  : 							//new is a player(in tank),old is not
; 431  : 							if (Is_Soldier(old))

	call	?Is_Soldier@@YA_NPAE@Z			; Is_Soldier
	add	esp, 4
	test	al, al
	je	SHORT $L6302

; 432  : 							{
; 433  : 								//old is a soldier
; 434  : 								//switch to new target,old not worth it
; 435  : 								selected = target;

	mov	ebx, edi

; 436  : 							}
; 437  : 							else if (Is_Vehicle(old))

	jmp	SHORT $L6338
$L6302:
	push	ebx
	call	?Is_Vehicle@@YA_NPAE@Z			; Is_Vehicle
	add	esp, 4
	test	al, al
	je	$L6339
$L7163:

; 516  : 						{
; 517  : 							//new is a soldier
; 518  : 							selected = Get_Closest(obj,target,old);

	mov	eax, DWORD PTR _obj$[esp+56]
	push	ebx
	push	edi
	push	eax
$L7162:
	mov	ecx, esi
	call	?Get_Closest@Neo_Vehicle_AI@@AAEPAEPAE00@Z ; Neo_Vehicle_AI::Get_Closest
	mov	ebx, eax
$L6338:

; 531  : 	}
; 532  : 
; 533  : 	/***************Determine Specific Target*******************/
; 534  : 
; 535  : 	if (selected) //Did we determine a new target?

	test	ebx, ebx
	je	$L6339

; 536  : 	{
; 537  : 		targetID = Commands->Get_ID(selected); //remember target

	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	ebx
	call	DWORD PTR [ecx+108]
	mov	DWORD PTR [esi+28], eax

; 538  : 		
; 539  : 		if (!hunting && !guarding) //only initiate if not doing anything

	mov	al, BYTE PTR [esi+47]
	add	esp, 4
	test	al, al
	jne	$L6346
	mov	al, BYTE PTR [esi+45]
	test	al, al
	jne	$L6346

; 540  : 		{
; 541  : 			if (Commands->Is_A_Star(selected)) //Is it a player?

	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	ebx
	call	DWORD PTR [edx+280]
	add	esp, 4
	test	al, al
	je	SHORT $L6344

; 542  : 			{
; 543  : 				GameObject *vehicle = Get_Vehicle(selected); 

	push	ebx
	call	?Get_Vehicle@@YAPAEPAE@Z		; Get_Vehicle
	add	esp, 4

; 544  : 
; 545  : 				if (vehicle) //Are they in a vehicle

	test	eax, eax

; 546  : 					return vehicle; //if so,return vehicle

	jne	$L6281
$L6344:
	pop	edi
	pop	esi

; 547  : 				else
; 548  : 					return selected; //if not,return player

	mov	eax, ebx
	pop	ebx

; 572  : }

	add	esp, 48					; 00000030H
	ret	8
$L6290:

; 438  : 							{
; 439  : 								//old is a vehicle,new is a player in tank
; 440  : 								//switch based on distance
; 441  : 								selected = Get_Closest(obj,target,old);
; 442  : 							}
; 443  : 						}
; 444  : 					}
; 445  : 					else //new player is on foot
; 446  : 					{
; 447  : 						if (Commands->Is_A_Star(old))

	call	DWORD PTR [ecx+280]
	add	esp, 4
	test	al, al

; 448  : 						{
; 449  : 							//Both are players,do a vehicle test
; 450  : 							vehicle = Get_Vehicle(old);

	push	ebx
	je	$L6306
	call	?Get_Vehicle@@YAPAEPAE@Z		; Get_Vehicle
	add	esp, 4

; 451  : 							if (vehicle) //is the old in a vehicle?

	test	eax, eax

; 452  : 							{
; 453  : 								//new on foot,old in vehicle
; 454  : 								//specify distance to change on
; 455  : 								float distance = Commands->Get_Distance(Commands->Get_Position(obj),Commands->Get_Position(old));

	push	ebx
	je	$L6307
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	edx, DWORD PTR $T7145[esp+64]
	push	edx
	call	DWORD PTR [eax+64]
	mov	ecx, DWORD PTR [eax]
	mov	ebx, DWORD PTR _obj$[esp+64]
	mov	DWORD PTR $T7144[esp+68], ecx
	mov	edx, DWORD PTR [eax+4]
	mov	DWORD PTR $T7144[esp+72], edx
	mov	eax, DWORD PTR [eax+8]
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	ecx, DWORD PTR $T7147[esp+68]
	push	ebx
	push	ecx
	mov	DWORD PTR $T7144[esp+84], eax
	call	DWORD PTR [edx+64]
	mov	ecx, DWORD PTR [eax]
	mov	DWORD PTR $T7146[esp+76], ecx
	mov	edx, DWORD PTR [eax+4]
	mov	DWORD PTR $T7146[esp+80], edx
	mov	eax, DWORD PTR [eax+8]
	lea	ecx, DWORD PTR $T7144[esp+76]
	push	ecx
	lea	edx, DWORD PTR $T7146[esp+80]
	mov	DWORD PTR $T7146[esp+88], eax
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	edx
	call	DWORD PTR [eax+256]
	fstp	DWORD PTR _distance$6308[esp+80]
	add	esp, 24					; 00000018H

; 456  : 								if (distance > Get_Float_Parameter("MaxRange"))

	push	OFFSET FLAT:??_C@_08JOBCAEBO@MaxRange?$AA@
	mov	ecx, esi
	call	?Get_Float_Parameter@ScriptImpClass@@QAEMPBD@Z ; ScriptImpClass::Get_Float_Parameter
	fcomp	DWORD PTR _distance$6308[esp+56]
	fnstsw	ax
	test	ah, 5
	jp	$L6339

; 457  : 								{
; 458  : 									distance = Commands->Get_Distance(Commands->Get_Position(obj),Commands->Get_Position(target));

	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	ecx, DWORD PTR $T7149[esp+60]
	push	edi
	push	ecx
	call	DWORD PTR [edx+64]
	mov	ecx, DWORD PTR [eax]
	mov	DWORD PTR $T7148[esp+68], ecx
	mov	edx, DWORD PTR [eax+4]
	mov	DWORD PTR $T7148[esp+72], edx
	mov	eax, DWORD PTR [eax+8]
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	ecx, DWORD PTR $T7151[esp+68]
	push	ebx
	push	ecx
	mov	DWORD PTR $T7148[esp+84], eax
	call	DWORD PTR [edx+64]
	mov	ecx, DWORD PTR [eax]
	mov	DWORD PTR $T7150[esp+76], ecx
	mov	edx, DWORD PTR [eax+4]
	mov	DWORD PTR $T7150[esp+80], edx
	mov	eax, DWORD PTR [eax+8]
	lea	ecx, DWORD PTR $T7148[esp+76]
	push	ecx
	lea	edx, DWORD PTR $T7150[esp+80]
	mov	DWORD PTR $T7150[esp+88], eax
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	edx
	call	DWORD PTR [eax+256]
	fstp	DWORD PTR _distance$6308[esp+80]
	add	esp, 24					; 00000018H

; 459  : 									if (distance < Get_Float_Parameter("MaxRange"))

	push	OFFSET FLAT:??_C@_08JOBCAEBO@MaxRange?$AA@
	mov	ecx, esi
	call	?Get_Float_Parameter@ScriptImpClass@@QAEMPBD@Z ; ScriptImpClass::Get_Float_Parameter
	fcomp	DWORD PTR _distance$6308[esp+56]
	fnstsw	ax
	test	ah, 65					; 00000041H
	jne	$L6339

; 460  : 										selected = target;

	mov	ebx, edi

; 461  : 								}
; 462  : 							}
; 463  : 							else //old not in a vehicle

	jmp	$L6338
$L6307:

; 464  : 							{
; 465  : 								//both on foot,choose one closer
; 466  : 								selected = Get_Closest(obj,target,old);

	mov	ecx, DWORD PTR _obj$[esp+60]
	push	edi
	push	ecx

; 467  : 							}
; 468  : 						}
; 469  : 						else

	jmp	$L7162
$L6306:

; 470  : 						{
; 471  : 							//new is a player on foot,old is not a player
; 472  : 							if (Is_Soldier(old))

	call	?Is_Soldier@@YA_NPAE@Z			; Is_Soldier
	add	esp, 4
	test	al, al

; 473  : 							{
; 474  : 								//old is a soldier
; 475  : 								//switch to new target,old not worth it
; 476  : 								selected = target;
; 477  : 							}
; 478  : 							else if (Is_Vehicle(old))

	jne	$L7161
	push	ebx
	call	?Is_Vehicle@@YA_NPAE@Z			; Is_Vehicle
	add	esp, 4
	test	al, al
	je	$L6339

; 479  : 							{
; 480  : 								//old is a vehicle
; 481  : 								//switch if old out of range and new is close
; 482  : 								float distance = Commands->Get_Distance(Commands->Get_Position(obj),Commands->Get_Position(old));

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	edx, DWORD PTR $T7153[esp+60]
	push	ebx
	push	edx
	call	DWORD PTR [eax+64]
	mov	ecx, DWORD PTR [eax]
	mov	ebx, DWORD PTR _obj$[esp+64]
	mov	DWORD PTR $T7152[esp+68], ecx
	mov	edx, DWORD PTR [eax+4]
	mov	DWORD PTR $T7152[esp+72], edx
	mov	eax, DWORD PTR [eax+8]
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	ecx, DWORD PTR $T7155[esp+68]
	push	ebx
	push	ecx
	mov	DWORD PTR $T7152[esp+84], eax
	call	DWORD PTR [edx+64]
	mov	ecx, DWORD PTR [eax]
	mov	DWORD PTR $T7154[esp+76], ecx
	mov	edx, DWORD PTR [eax+4]
	mov	DWORD PTR $T7154[esp+80], edx
	mov	eax, DWORD PTR [eax+8]
	lea	ecx, DWORD PTR $T7152[esp+76]
	push	ecx
	lea	edx, DWORD PTR $T7154[esp+80]
	mov	DWORD PTR $T7154[esp+88], eax
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	edx
	call	DWORD PTR [eax+256]
	fstp	DWORD PTR _distance$6320[esp+80]
	add	esp, 24					; 00000018H

; 483  : 								if (distance > Get_Float_Parameter("MaxRange"))

	push	OFFSET FLAT:??_C@_08JOBCAEBO@MaxRange?$AA@
	mov	ecx, esi
	call	?Get_Float_Parameter@ScriptImpClass@@QAEMPBD@Z ; ScriptImpClass::Get_Float_Parameter
	fcomp	DWORD PTR _distance$6320[esp+56]
	fnstsw	ax
	test	ah, 5
	jp	$L6339

; 484  : 								{
; 485  : 									distance = Commands->Get_Distance(Commands->Get_Position(obj),Commands->Get_Position(target));

	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	ecx, DWORD PTR $T7157[esp+60]
	push	edi
	push	ecx
	call	DWORD PTR [edx+64]
	mov	ecx, DWORD PTR [eax]
	mov	DWORD PTR $T7156[esp+68], ecx
	mov	edx, DWORD PTR [eax+4]
	mov	DWORD PTR $T7156[esp+72], edx
	mov	eax, DWORD PTR [eax+8]
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	ecx, DWORD PTR $T7159[esp+68]
	push	ebx
	push	ecx
	mov	DWORD PTR $T7156[esp+84], eax
	call	DWORD PTR [edx+64]
	mov	ecx, DWORD PTR [eax]
	mov	DWORD PTR $T7158[esp+76], ecx
	mov	edx, DWORD PTR [eax+4]
	mov	DWORD PTR $T7158[esp+80], edx
	mov	eax, DWORD PTR [eax+8]
	lea	ecx, DWORD PTR $T7156[esp+76]
	push	ecx
	lea	edx, DWORD PTR $T7158[esp+80]
	mov	DWORD PTR $T7158[esp+88], eax
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	edx
	call	DWORD PTR [eax+256]
$L7160:
	add	esp, 24					; 00000018H
	fstp	DWORD PTR _distance$6320[esp+56]

; 486  : 									if (distance < Get_Float_Parameter("MaxRange"))

	push	OFFSET FLAT:??_C@_08JOBCAEBO@MaxRange?$AA@
	mov	ecx, esi
	call	?Get_Float_Parameter@ScriptImpClass@@QAEMPBD@Z ; ScriptImpClass::Get_Float_Parameter
	fcomp	DWORD PTR _distance$6320[esp+56]
	fnstsw	ax
	test	ah, 65					; 00000041H
	jne	SHORT $L6339
$L7161:

; 487  : 										selected = target;

	mov	ebx, edi

; 488  : 								}
; 489  : 							}
; 490  : 						}
; 491  : 					}
; 492  : 				}
; 493  : 				else if (Commands->Is_A_Star(old)) //Is the old guy a player?

	jmp	$L6338
$L6288:
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	ebx
	call	DWORD PTR [ecx+280]
	add	esp, 4
	test	al, al
	je	SHORT $L6339

; 494  : 				{
; 495  : 					//old a player,new not a player
; 496  : 					GameObject *vehicle = Get_Vehicle(old);

	push	ebx
	call	?Get_Vehicle@@YAPAEPAE@Z		; Get_Vehicle
	add	esp, 4

; 497  : 					if (vehicle) //is the old in a vehicle?

	test	eax, eax

; 498  : 					{
; 499  : 						//old in vehicle
; 500  : 						if (Is_Soldier(target))

	push	edi
	je	SHORT $L6330
	call	?Is_Soldier@@YA_NPAE@Z			; Is_Soldier
	add	esp, 4
	test	al, al

; 501  : 						{
; 502  : 							//new is a soldier,old is player in a tank
; 503  : 							//Perhaps an out of range check here?
; 504  : 							selected = 0; //keep old					
; 505  : 						}
; 506  : 						else if (Is_Vehicle(target))

	jne	SHORT $L6339
	push	edi
	call	?Is_Vehicle@@YA_NPAE@Z			; Is_Vehicle
	add	esp, 4
	test	al, al
	je	SHORT $L6339

; 507  : 						{
; 508  : 							//new is a vehicle,old is player in a tank
; 509  : 							//switch if new closer
; 510  : 							selected = Get_Closest(obj,target,old);

	mov	edx, DWORD PTR _obj$[esp+56]
	push	ebx
	push	edi
	push	edx

; 511  : 						}
; 512  : 					}
; 513  : 					else //old on foot

	jmp	$L7162
$L6330:

; 514  : 					{
; 515  : 						if (Is_Soldier(target))

	call	?Is_Soldier@@YA_NPAE@Z			; Is_Soldier
	add	esp, 4
	test	al, al

; 519  : 						}
; 520  : 						else if (Is_Vehicle(target))

	jne	$L7163
	push	edi
	call	?Is_Vehicle@@YA_NPAE@Z			; Is_Vehicle
	add	esp, 4
	test	al, al
	jne	SHORT $L7161
$L6339:

; 549  : 			}
; 550  : 			return selected; //nothing left but the target
; 551  : 		}
; 552  : 	}
; 553  : 	else //No new target was picked,only change if not doing anything
; 554  : 	{
; 555  : 		if (!hunting && !guarding) //only initiate if not doing anything

	mov	al, BYTE PTR [esi+47]
	test	al, al
	jne	SHORT $L6346
	mov	al, BYTE PTR [esi+45]
	test	al, al
	jne	SHORT $L6346

; 556  : 		{
; 557  : 			targetID = Commands->Get_ID(target); //remember target

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	edi
	call	DWORD PTR [eax+108]
	mov	DWORD PTR [esi+28], eax

; 558  : 			if (Commands->Is_A_Star(target)) //Is it a player?

	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	edi
	call	DWORD PTR [ecx+280]
	add	esp, 8
	test	al, al
	je	SHORT $L6350

; 559  : 			{
; 560  : 				GameObject *vehicle = Get_Vehicle(target); 

	push	edi
	call	?Get_Vehicle@@YAPAEPAE@Z		; Get_Vehicle
	add	esp, 4

; 561  : 
; 562  : 				if (vehicle) //Are they in a vehicle

	test	eax, eax

; 563  : 					return vehicle; //if so,return vehicle

	jne	SHORT $L6281
$L6350:

; 564  : 				else
; 565  : 					return target; //if not,return player

	mov	eax, edi
	pop	edi
	pop	esi
	pop	ebx

; 572  : }

	add	esp, 48					; 00000030H
	ret	8
$L6285:

; 521  : 						{
; 522  : 							//new is a vehicle,old just a player
; 523  : 							selected = target;
; 524  : 						}
; 525  : 					}
; 526  : 				}
; 527  : 			}
; 528  : 		}
; 529  : 		else	//old target was invalid
; 530  : 			targetID = 0; //forget ID

	mov	DWORD PTR [esi+28], 0

; 531  : 	}
; 532  : 
; 533  : 	/***************Determine Specific Target*******************/
; 534  : 
; 535  : 	if (selected) //Did we determine a new target?

	jmp	SHORT $L6339
$L6346:

; 566  : 			}
; 567  : 			return target; //nothing left but the target
; 568  : 		}
; 569  : 	}
; 570  : 
; 571  : 	return 0; //don't start new job if already working

	xor	eax, eax
$L6281:
	pop	edi
	pop	esi
	pop	ebx

; 572  : }

	add	esp, 48					; 00000030H
	ret	8
?Select_Target@Neo_Vehicle_AI@@AAEPAEPAE0@Z ENDP	; Neo_Vehicle_AI::Select_Target
_TEXT	ENDS
PUBLIC	??_7Neo_CreateObject_RandomTimer@@6B@		; Neo_CreateObject_RandomTimer::`vftable'
PUBLIC	??_GNeo_CreateObject_RandomTimer@@UAEPAXI@Z	; Neo_CreateObject_RandomTimer::`scalar deleting destructor'
EXTRN	__except_list:DWORD
EXTRN	___CxxFrameHandler:NEAR
EXTRN	??0ScriptImpClass@@QAE@XZ:NEAR			; ScriptImpClass::ScriptImpClass
EXTRN	?Get_Name@ScriptImpClass@@UAEPADXZ:NEAR		; ScriptImpClass::Get_Name
EXTRN	?Attach@ScriptImpClass@@UAEXPAE@Z:NEAR		; ScriptImpClass::Attach
EXTRN	?Detach@ScriptImpClass@@UAEXPAE@Z:NEAR		; ScriptImpClass::Detach
EXTRN	?Destroyed@ScriptImpClass@@UAEXPAE@Z:NEAR	; ScriptImpClass::Destroyed
EXTRN	?Killed@ScriptImpClass@@UAEXPAE0@Z:NEAR		; ScriptImpClass::Killed
EXTRN	?Damaged@ScriptImpClass@@UAEXPAE0M@Z:NEAR	; ScriptImpClass::Damaged
EXTRN	?Custom@ScriptImpClass@@UAEXPAEHH0@Z:NEAR	; ScriptImpClass::Custom
EXTRN	?Sound_Heard@ScriptImpClass@@UAEXPAEABUCombatSound@@@Z:NEAR ; ScriptImpClass::Sound_Heard
EXTRN	?Enemy_Seen@ScriptImpClass@@UAEXPAE0@Z:NEAR	; ScriptImpClass::Enemy_Seen
EXTRN	?Action_Complete@ScriptImpClass@@UAEXPAEHW4ActionCompleteReason@@@Z:NEAR ; ScriptImpClass::Action_Complete
EXTRN	?Animation_Complete@ScriptImpClass@@UAEXPAEPBD@Z:NEAR ; ScriptImpClass::Animation_Complete
EXTRN	?Poked@ScriptImpClass@@UAEXPAE0@Z:NEAR		; ScriptImpClass::Poked
EXTRN	?Entered@ScriptImpClass@@UAEXPAE0@Z:NEAR	; ScriptImpClass::Entered
EXTRN	?Exited@ScriptImpClass@@UAEXPAE0@Z:NEAR		; ScriptImpClass::Exited
EXTRN	?Owner@ScriptImpClass@@UAEPAEXZ:NEAR		; ScriptImpClass::Owner
EXTRN	?Get_Owner_Ptr@ScriptImpClass@@UAEPAPAEXZ:NEAR	; ScriptImpClass::Get_Owner_Ptr
EXTRN	?Set_Parameters_String@ScriptImpClass@@UAEXPBD@Z:NEAR ; ScriptImpClass::Set_Parameters_String
EXTRN	?Get_Parameters_String@ScriptImpClass@@UAEXPADI@Z:NEAR ; ScriptImpClass::Get_Parameters_String
EXTRN	?Save@ScriptImpClass@@UAEXAAE@Z:NEAR		; ScriptImpClass::Save
EXTRN	?Load@ScriptImpClass@@UAEXAAE@Z:NEAR		; ScriptImpClass::Load
EXTRN	?Save_Data@ScriptImpClass@@UAEXAAE@Z:NEAR	; ScriptImpClass::Save_Data
EXTRN	?Load_Data@ScriptImpClass@@UAEXAAE@Z:NEAR	; ScriptImpClass::Load_Data
EXTRN	?Register_Auto_Save_Variables@ScriptImpClass@@UAEXXZ:NEAR ; ScriptImpClass::Register_Auto_Save_Variables
EXTRN	??2@YAPAXI@Z:NEAR				; operator new
EXTRN	??_ENeo_CreateObject_RandomTimer@@UAEPAXI@Z:NEAR ; Neo_CreateObject_RandomTimer::`vector deleting destructor'
;	COMDAT xdata$x
; File c:\documents and settings\owner\desktop\ssctf 1.3\scripts.h
xdata$x	SEGMENT
$T7185	DD	0ffffffffH
	DD	FLAT:$L7171
$T7182	DD	019930520H
	DD	01H
	DD	FLAT:$T7185
	DD	2 DUP(00H)
	DD	2 DUP(00H)
xdata$x	ENDS
;	COMDAT ??_7Neo_CreateObject_RandomTimer@@6B@
CONST	SEGMENT
??_7Neo_CreateObject_RandomTimer@@6B@ DD FLAT:??_ENeo_CreateObject_RandomTimer@@UAEPAXI@Z ; Neo_CreateObject_RandomTimer::`vftable'
	DD	FLAT:?Get_Name@ScriptImpClass@@UAEPADXZ
	DD	FLAT:?Attach@ScriptImpClass@@UAEXPAE@Z
	DD	FLAT:?Detach@ScriptImpClass@@UAEXPAE@Z
	DD	FLAT:?Created@Neo_CreateObject_RandomTimer@@EAEXPAE@Z
	DD	FLAT:?Destroyed@ScriptImpClass@@UAEXPAE@Z
	DD	FLAT:?Killed@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Damaged@ScriptImpClass@@UAEXPAE0M@Z
	DD	FLAT:?Custom@ScriptImpClass@@UAEXPAEHH0@Z
	DD	FLAT:?Sound_Heard@ScriptImpClass@@UAEXPAEABUCombatSound@@@Z
	DD	FLAT:?Enemy_Seen@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Action_Complete@ScriptImpClass@@UAEXPAEHW4ActionCompleteReason@@@Z
	DD	FLAT:?Timer_Expired@Neo_CreateObject_RandomTimer@@EAEXPAEH@Z
	DD	FLAT:?Animation_Complete@ScriptImpClass@@UAEXPAEPBD@Z
	DD	FLAT:?Poked@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Entered@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Exited@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Owner@ScriptImpClass@@UAEPAEXZ
	DD	FLAT:?Get_Owner_Ptr@ScriptImpClass@@UAEPAPAEXZ
	DD	FLAT:?Set_Parameters_String@ScriptImpClass@@UAEXPBD@Z
	DD	FLAT:?Get_Parameters_String@ScriptImpClass@@UAEXPADI@Z
	DD	FLAT:?Save@ScriptImpClass@@UAEXAAE@Z
	DD	FLAT:?Load@ScriptImpClass@@UAEXAAE@Z
	DD	FLAT:?Save_Data@ScriptImpClass@@UAEXAAE@Z
	DD	FLAT:?Load_Data@ScriptImpClass@@UAEXAAE@Z
	DD	FLAT:?Register_Auto_Save_Variables@ScriptImpClass@@UAEXXZ
; Function compile flags: /Ogty
CONST	ENDS
;	COMDAT ?Create@?$ScriptRegistrant@VNeo_CreateObject_RandomTimer@@@@UAEPAVScriptImpClass@@XZ
_TEXT	SEGMENT
$T7168 = -16						; size = 4
__$EHRec$ = -12						; size = 12
?Create@?$ScriptRegistrant@VNeo_CreateObject_RandomTimer@@@@UAEPAVScriptImpClass@@XZ PROC NEAR ; ScriptRegistrant<Neo_CreateObject_RandomTimer>::Create, COMDAT
; _this$ = ecx

; 480  : {

	push	-1
	push	__ehhandler$?Create@?$ScriptRegistrant@VNeo_CreateObject_RandomTimer@@@@UAEPAVScriptImpClass@@XZ
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	push	ecx
	push	esi
	push	edi

; 481  : 	ScriptImpClass *scr = new T;

	push	28					; 0000001cH
	mov	edi, ecx
	call	??2@YAPAXI@Z				; operator new
	mov	esi, eax
	add	esp, 4
	mov	DWORD PTR $T7168[esp+24], esi
	test	esi, esi
	mov	DWORD PTR __$EHRec$[esp+32], 0
	je	SHORT $L7169
	mov	ecx, esi
	call	??0ScriptImpClass@@QAE@XZ		; ScriptImpClass::ScriptImpClass
	mov	DWORD PTR [esi], OFFSET FLAT:??_7Neo_CreateObject_RandomTimer@@6B@
	jmp	SHORT $L7170
$L7169:
	xor	esi, esi
$L7170:

; 482  : 	scr->SetFactory(this);
; 483  : 	scr->Register_Auto_Save_Variables();

	mov	eax, DWORD PTR [esi]
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+32], -1
	mov	DWORD PTR [esi+20], edi
	call	DWORD PTR [eax+100]

; 484  : 	return scr;
; 485  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+24]
	pop	edi
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 16					; 00000010H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L7171:
	mov	eax, DWORD PTR $T7168[ebp]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	pop	ecx
	ret	0
__ehhandler$?Create@?$ScriptRegistrant@VNeo_CreateObject_RandomTimer@@@@UAEPAVScriptImpClass@@XZ:
	mov	eax, OFFSET FLAT:$T7182
	jmp	___CxxFrameHandler
text$x	ENDS
?Create@?$ScriptRegistrant@VNeo_CreateObject_RandomTimer@@@@UAEPAVScriptImpClass@@XZ ENDP ; ScriptRegistrant<Neo_CreateObject_RandomTimer>::Create
PUBLIC	?Custom@Neo_Vehicle_AI@@EAEXPAEHH0@Z		; Neo_Vehicle_AI::Custom
PUBLIC	?Enemy_Seen@Neo_Vehicle_AI@@EAEXPAE0@Z		; Neo_Vehicle_AI::Enemy_Seen
PUBLIC	?Damaged@Neo_Vehicle_AI@@EAEXPAE0M@Z		; Neo_Vehicle_AI::Damaged
PUBLIC	?Timer_Expired@Neo_Vehicle_AI@@EAEXPAEH@Z	; Neo_Vehicle_AI::Timer_Expired
PUBLIC	??_7Neo_Vehicle_AI@@6B@				; Neo_Vehicle_AI::`vftable'
PUBLIC	??_GNeo_Vehicle_AI@@UAEPAXI@Z			; Neo_Vehicle_AI::`scalar deleting destructor'
EXTRN	??_ENeo_Vehicle_AI@@UAEPAXI@Z:NEAR		; Neo_Vehicle_AI::`vector deleting destructor'
;	COMDAT xdata$x
xdata$x	SEGMENT
$T7207	DD	0ffffffffH
	DD	FLAT:$L7196
$T7205	DD	019930520H
	DD	01H
	DD	FLAT:$T7207
	DD	2 DUP(00H)
	DD	2 DUP(00H)
xdata$x	ENDS
;	COMDAT ??_7Neo_Vehicle_AI@@6B@
CONST	SEGMENT
??_7Neo_Vehicle_AI@@6B@ DD FLAT:??_ENeo_Vehicle_AI@@UAEPAXI@Z ; Neo_Vehicle_AI::`vftable'
	DD	FLAT:?Get_Name@ScriptImpClass@@UAEPADXZ
	DD	FLAT:?Attach@ScriptImpClass@@UAEXPAE@Z
	DD	FLAT:?Detach@ScriptImpClass@@UAEXPAE@Z
	DD	FLAT:?Created@Neo_Vehicle_AI@@EAEXPAE@Z
	DD	FLAT:?Destroyed@Neo_Vehicle_AI@@EAEXPAE@Z
	DD	FLAT:?Killed@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Damaged@Neo_Vehicle_AI@@EAEXPAE0M@Z
	DD	FLAT:?Custom@Neo_Vehicle_AI@@EAEXPAEHH0@Z
	DD	FLAT:?Sound_Heard@Neo_Vehicle_AI@@EAEXPAEABUCombatSound@@@Z
	DD	FLAT:?Enemy_Seen@Neo_Vehicle_AI@@EAEXPAE0@Z
	DD	FLAT:?Action_Complete@Neo_Vehicle_AI@@EAEXPAEHW4ActionCompleteReason@@@Z
	DD	FLAT:?Timer_Expired@Neo_Vehicle_AI@@EAEXPAEH@Z
	DD	FLAT:?Animation_Complete@ScriptImpClass@@UAEXPAEPBD@Z
	DD	FLAT:?Poked@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Entered@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Exited@ScriptImpClass@@UAEXPAE0@Z
	DD	FLAT:?Owner@ScriptImpClass@@UAEPAEXZ
	DD	FLAT:?Get_Owner_Ptr@ScriptImpClass@@UAEPAPAEXZ
	DD	FLAT:?Set_Parameters_String@ScriptImpClass@@UAEXPBD@Z
	DD	FLAT:?Get_Parameters_String@ScriptImpClass@@UAEXPADI@Z
	DD	FLAT:?Save@ScriptImpClass@@UAEXAAE@Z
	DD	FLAT:?Load@ScriptImpClass@@UAEXAAE@Z
	DD	FLAT:?Save_Data@ScriptImpClass@@UAEXAAE@Z
	DD	FLAT:?Load_Data@ScriptImpClass@@UAEXAAE@Z
	DD	FLAT:?Register_Auto_Save_Variables@Neo_Vehicle_AI@@EAEXXZ
; Function compile flags: /Ogty
CONST	ENDS
;	COMDAT ?Create@?$ScriptRegistrant@VNeo_Vehicle_AI@@@@UAEPAVScriptImpClass@@XZ
_TEXT	SEGMENT
$T7193 = -16						; size = 4
__$EHRec$ = -12						; size = 12
?Create@?$ScriptRegistrant@VNeo_Vehicle_AI@@@@UAEPAVScriptImpClass@@XZ PROC NEAR ; ScriptRegistrant<Neo_Vehicle_AI>::Create, COMDAT
; _this$ = ecx

; 480  : {

	push	-1
	push	__ehhandler$?Create@?$ScriptRegistrant@VNeo_Vehicle_AI@@@@UAEPAVScriptImpClass@@XZ
	mov	eax, DWORD PTR fs:__except_list
	push	eax
	mov	DWORD PTR fs:__except_list, esp
	push	ecx
	push	esi
	push	edi

; 481  : 	ScriptImpClass *scr = new T;

	push	80					; 00000050H
	mov	edi, ecx
	call	??2@YAPAXI@Z				; operator new
	mov	esi, eax
	add	esp, 4
	mov	DWORD PTR $T7193[esp+24], esi
	test	esi, esi
	mov	DWORD PTR __$EHRec$[esp+32], 0
	je	SHORT $L7194
	mov	ecx, esi
	call	??0ScriptImpClass@@QAE@XZ		; ScriptImpClass::ScriptImpClass
	mov	DWORD PTR [esi], OFFSET FLAT:??_7Neo_Vehicle_AI@@6B@
	jmp	SHORT $L7195
$L7194:
	xor	esi, esi
$L7195:

; 482  : 	scr->SetFactory(this);
; 483  : 	scr->Register_Auto_Save_Variables();

	mov	eax, DWORD PTR [esi]
	mov	ecx, esi
	mov	DWORD PTR __$EHRec$[esp+32], -1
	mov	DWORD PTR [esi+20], edi
	call	DWORD PTR [eax+100]

; 484  : 	return scr;
; 485  : }

	mov	ecx, DWORD PTR __$EHRec$[esp+24]
	pop	edi
	mov	eax, esi
	pop	esi
	mov	DWORD PTR fs:__except_list, ecx
	add	esp, 16					; 00000010H
	ret	0
_TEXT	ENDS
;	COMDAT text$x
text$x	SEGMENT
$L7196:
	mov	eax, DWORD PTR $T7193[ebp]
	push	eax
	call	??3@YAXPAX@Z				; operator delete
	pop	ecx
	ret	0
__ehhandler$?Create@?$ScriptRegistrant@VNeo_Vehicle_AI@@@@UAEPAVScriptImpClass@@XZ:
	mov	eax, OFFSET FLAT:$T7205
	jmp	___CxxFrameHandler
text$x	ENDS
?Create@?$ScriptRegistrant@VNeo_Vehicle_AI@@@@UAEPAVScriptImpClass@@XZ ENDP ; ScriptRegistrant<Neo_Vehicle_AI>::Create
PUBLIC	??1Neo_CreateObject_RandomTimer@@UAE@XZ		; Neo_CreateObject_RandomTimer::~Neo_CreateObject_RandomTimer
; Function compile flags: /Ogty
;	COMDAT ??_GNeo_CreateObject_RandomTimer@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GNeo_CreateObject_RandomTimer@@UAEPAXI@Z PROC NEAR	; Neo_CreateObject_RandomTimer::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1Neo_CreateObject_RandomTimer@@UAE@XZ
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $L7213
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L7213:
	mov	eax, esi
	pop	esi
	ret	4
??_GNeo_CreateObject_RandomTimer@@UAEPAXI@Z ENDP	; Neo_CreateObject_RandomTimer::`scalar deleting destructor'
_TEXT	ENDS
EXTRN	??1ScriptImpClass@@UAE@XZ:NEAR			; ScriptImpClass::~ScriptImpClass
; Function compile flags: /Ogty
;	COMDAT ??1Neo_CreateObject_RandomTimer@@UAE@XZ
_TEXT	SEGMENT
??1Neo_CreateObject_RandomTimer@@UAE@XZ PROC NEAR	; Neo_CreateObject_RandomTimer::~Neo_CreateObject_RandomTimer, COMDAT
; _this$ = ecx
	jmp	??1ScriptImpClass@@UAE@XZ		; ScriptImpClass::~ScriptImpClass
??1Neo_CreateObject_RandomTimer@@UAE@XZ ENDP		; Neo_CreateObject_RandomTimer::~Neo_CreateObject_RandomTimer
_TEXT	ENDS
PUBLIC	??1Neo_Vehicle_AI@@UAE@XZ			; Neo_Vehicle_AI::~Neo_Vehicle_AI
; Function compile flags: /Ogty
;	COMDAT ??_GNeo_Vehicle_AI@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GNeo_Vehicle_AI@@UAEPAXI@Z PROC NEAR			; Neo_Vehicle_AI::`scalar deleting destructor', COMDAT
; _this$ = ecx
	push	esi
	mov	esi, ecx
	call	??1Neo_Vehicle_AI@@UAE@XZ
	test	BYTE PTR ___flags$[esp], 1
	je	SHORT $L7221
	push	esi
	call	??3@YAXPAX@Z				; operator delete
	add	esp, 4
$L7221:
	mov	eax, esi
	pop	esi
	ret	4
??_GNeo_Vehicle_AI@@UAEPAXI@Z ENDP			; Neo_Vehicle_AI::`scalar deleting destructor'
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ??1Neo_Vehicle_AI@@UAE@XZ
_TEXT	SEGMENT
??1Neo_Vehicle_AI@@UAE@XZ PROC NEAR			; Neo_Vehicle_AI::~Neo_Vehicle_AI, COMDAT
; _this$ = ecx
	jmp	??1ScriptImpClass@@UAE@XZ		; ScriptImpClass::~ScriptImpClass
??1Neo_Vehicle_AI@@UAE@XZ ENDP				; Neo_Vehicle_AI::~Neo_Vehicle_AI
; Function compile flags: /Ogty
; File c:\documents and settings\owner\desktop\ssctf 1.3\neo.cpp
_TEXT	ENDS
;	COMDAT ?Custom@Neo_Vehicle_AI@@EAEXPAEHH0@Z
_TEXT	SEGMENT
$T7232 = -208						; size = 12
$T7230 = -208						; size = 12
_params$6167 = -196					; size = 196
_params$6161 = -196					; size = 196
_obj$ = 8						; size = 4
_message$ = 12						; size = 4
_param$ = 16						; size = 4
_sender$ = 20						; size = 4
?Custom@Neo_Vehicle_AI@@EAEXPAEHH0@Z PROC NEAR		; Neo_Vehicle_AI::Custom, COMDAT
; _this$ = ecx

; 79   : {

	sub	esp, 208				; 000000d0H
	push	esi
	mov	esi, ecx

; 80   : 	/***********************************************/
; 81   : 	//				Message List
; 82   : 	/***********************************************/
; 83   : 	//				Incoming
; 84   : 	//	127127: Order to hunt at location of sender
; 85   : 	//	781781: Order to hunt a new player (sender)
; 86   : 	//	329329: Order to guard location of sender
; 87   : 	//	983983: Order to guard a new player (sender)
; 88   : 	//	param will be used to determine order priority
; 89   : 	/***********************************************/
; 90   : 
; 91   : 	if (!rampaging) //Ignore orders if beserk

	mov	al, BYTE PTR [esi+44]
	test	al, al
	jne	$L6169

; 92   : 	{
; 93   : 		//Maybe a Switch statement would be better?
; 94   : 		if (message == 127127)

	mov	eax, DWORD PTR _message$[esp+208]
	cmp	eax, 127127				; 0001f097H
	push	ebp
	push	edi
	jne	$L6159

; 95   : 		{
; 96   : 			position = Commands->Get_Position(sender);

	mov	eax, DWORD PTR _sender$[esp+216]
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	eax
	lea	ecx, DWORD PTR $T7230[esp+224]
	push	ecx
	call	DWORD PTR [edx+64]
	mov	ecx, DWORD PTR [eax]
	mov	edx, DWORD PTR [eax+4]
	mov	eax, DWORD PTR [eax+8]
	lea	edi, DWORD PTR [esi+32]
	mov	ebp, edi
	mov	DWORD PTR [ebp], ecx
	mov	DWORD PTR [ebp+4], edx
	add	esp, 8

; 97   : 			ActionParamsStruct params;

	lea	ecx, DWORD PTR _params$6161[esp+220]
	mov	DWORD PTR [ebp+8], eax
	call	??0ActionParamsStruct@@QAE@XZ		; ActionParamsStruct::ActionParamsStruct

; 98   : 			params.Set_Basic(this,current_priority,10,-1);

	mov	eax, DWORD PTR [esi+52]
	mov	ecx, DWORD PTR [esi+4]

; 99   : 			params.Set_Goto_Location(position,1,2,false);

	mov	edx, DWORD PTR [edi]
	mov	DWORD PTR _params$6161[esp+224], ecx
	mov	ecx, DWORD PTR [edi+8]
	mov	DWORD PTR _params$6161[esp+220], eax
	mov	eax, DWORD PTR [edi+4]

; 100  : 			params.Move_Backwards = Set_Direction(obj);

	mov	edi, DWORD PTR _obj$[esp+216]
	mov	DWORD PTR _params$6161[esp+260], ecx
	push	edi
	mov	ecx, esi
	mov	DWORD PTR _params$6161[esp+392], -1
	mov	DWORD PTR _params$6161[esp+256], edx
	mov	DWORD PTR _params$6161[esp+260], eax
	mov	DWORD PTR _params$6161[esp+284], 1065353216 ; 3f800000H
	mov	DWORD PTR _params$6161[esp+288], 1073741824 ; 40000000H
	mov	BYTE PTR _params$6161[esp+294], 0
	call	?Set_Direction@Neo_Vehicle_AI@@AAE_NPAE@Z ; Neo_Vehicle_AI::Set_Direction

; 101  : 			Commands->Action_Goto(obj,params);

	lea	edx, DWORD PTR _params$6161[esp+220]
	push	edx
	mov	BYTE PTR _params$6161[esp+292], al
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	edi
	call	DWORD PTR [eax+16]
	add	esp, 8
	pop	edi
	pop	ebp

; 102  : 			moving = true;

	mov	BYTE PTR [esi+46], 1
	pop	esi

; 127  : 			//Might need more here...
; 128  : 		}
; 129  : 	}
; 130  : }

	add	esp, 208				; 000000d0H
	ret	16					; 00000010H
$L6159:

; 103  : 
; 104  : 			//Offense code to be added here?
; 105  : 		}
; 106  : 		else if (message == 781781)

	cmp	eax, 781781				; 000bedd5H
	jne	SHORT $L6163

; 107  : 		{
; 108  : 			Hunt(obj,Set_Target(sender));

	mov	ecx, DWORD PTR _sender$[esp+216]
	push	ecx
	mov	ecx, esi
	call	?Set_Target@Neo_Vehicle_AI@@AAEPAEPAE@Z	; Neo_Vehicle_AI::Set_Target
	mov	edx, DWORD PTR _obj$[esp+216]
	push	eax
	push	edx
	mov	ecx, esi
	call	?Hunt@Neo_Vehicle_AI@@AAEXPAE0@Z	; Neo_Vehicle_AI::Hunt
	pop	edi
	pop	ebp
	pop	esi

; 127  : 			//Might need more here...
; 128  : 		}
; 129  : 	}
; 130  : }

	add	esp, 208				; 000000d0H
	ret	16					; 00000010H
$L6163:

; 109  : 			//Offense code to be added here?
; 110  : 		}
; 111  : 		else if (message == 329329)

	cmp	eax, 329329				; 00050671H
	jne	$L6165

; 112  : 		{
; 113  : 			position = Commands->Get_Position(sender);

	mov	eax, DWORD PTR _sender$[esp+216]
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	eax
	lea	ecx, DWORD PTR $T7232[esp+224]
	push	ecx
	call	DWORD PTR [edx+64]
	mov	ecx, DWORD PTR [eax]
	mov	edx, DWORD PTR [eax+4]
	mov	eax, DWORD PTR [eax+8]
	lea	edi, DWORD PTR [esi+32]
	mov	ebp, edi
	mov	DWORD PTR [ebp], ecx
	mov	DWORD PTR [ebp+4], edx
	add	esp, 8

; 114  : 			ActionParamsStruct params;

	lea	ecx, DWORD PTR _params$6167[esp+220]
	mov	DWORD PTR [ebp+8], eax
	call	??0ActionParamsStruct@@QAE@XZ		; ActionParamsStruct::ActionParamsStruct

; 115  : 			params.Set_Basic(this,current_priority,10,-1);

	mov	eax, DWORD PTR [esi+52]
	mov	ecx, DWORD PTR [esi+4]

; 116  : 			params.Set_Goto_Location(position,1,2,false);

	mov	edx, DWORD PTR [edi]
	mov	DWORD PTR _params$6167[esp+224], ecx
	mov	ecx, DWORD PTR [edi+8]
	mov	DWORD PTR _params$6167[esp+220], eax
	mov	eax, DWORD PTR [edi+4]

; 117  : 			params.Move_Backwards = Set_Direction(obj);

	mov	edi, DWORD PTR _obj$[esp+216]
	mov	DWORD PTR _params$6167[esp+260], ecx
	push	edi
	mov	ecx, esi
	mov	DWORD PTR _params$6167[esp+392], -1
	mov	DWORD PTR _params$6167[esp+256], edx
	mov	DWORD PTR _params$6167[esp+260], eax
	mov	DWORD PTR _params$6167[esp+284], 1065353216 ; 3f800000H
	mov	DWORD PTR _params$6167[esp+288], 1073741824 ; 40000000H
	mov	BYTE PTR _params$6167[esp+294], 0
	call	?Set_Direction@Neo_Vehicle_AI@@AAE_NPAE@Z ; Neo_Vehicle_AI::Set_Direction

; 118  : 			Commands->Action_Goto(obj,params);

	lea	edx, DWORD PTR _params$6167[esp+220]
	push	edx
	mov	BYTE PTR _params$6167[esp+292], al
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	edi
	call	DWORD PTR [eax+16]
	add	esp, 8
	pop	edi

; 119  : 
; 120  : 			moving = true;

	mov	al, 1
	pop	ebp
	mov	BYTE PTR [esi+46], al

; 121  : 			guarding = true;

	mov	BYTE PTR [esi+45], al

; 122  : 			hunting = false;

	mov	BYTE PTR [esi+47], 0
	pop	esi

; 127  : 			//Might need more here...
; 128  : 		}
; 129  : 	}
; 130  : }

	add	esp, 208				; 000000d0H
	ret	16					; 00000010H
$L6165:

; 123  : 		}
; 124  : 		else if (message == 983983)

	cmp	eax, 983983				; 000f03afH
	jne	SHORT $L7265

; 125  : 		{
; 126  : 			Guard(obj,Set_Target(sender));

	mov	ecx, DWORD PTR _sender$[esp+216]
	push	ecx
	mov	ecx, esi
	call	?Set_Target@Neo_Vehicle_AI@@AAEPAEPAE@Z	; Neo_Vehicle_AI::Set_Target
	mov	edx, DWORD PTR _obj$[esp+216]
	push	eax
	push	edx
	mov	ecx, esi
	call	?Guard@Neo_Vehicle_AI@@AAEXPAE0@Z	; Neo_Vehicle_AI::Guard
$L7265:
	pop	edi
	pop	ebp
$L6169:
	pop	esi

; 127  : 			//Might need more here...
; 128  : 		}
; 129  : 	}
; 130  : }

	add	esp, 208				; 000000d0H
	ret	16					; 00000010H
?Custom@Neo_Vehicle_AI@@EAEXPAEHH0@Z ENDP		; Neo_Vehicle_AI::Custom
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ?Damaged@Neo_Vehicle_AI@@EAEXPAE0M@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_damager$ = 12						; size = 4
_damage$ = 16						; size = 4
?Damaged@Neo_Vehicle_AI@@EAEXPAE0M@Z PROC NEAR		; Neo_Vehicle_AI::Damaged, COMDAT
; _this$ = ecx

; 151  : 	//This function needs to be rewritten from scratch
; 152  : 
; 153  : 	int testID = Commands->Get_Player_Type(damager);

	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	ebx
	push	ebp
	mov	ebp, DWORD PTR _damager$[esp+4]
	push	esi
	push	edi
	push	ebp
	mov	esi, ecx
	call	DWORD PTR [eax+248]

; 154  : 	int myID = Commands->Get_Player_Type(obj);

	mov	edi, DWORD PTR _obj$[esp+16]
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	edi
	mov	ebx, eax
	call	DWORD PTR [ecx+248]
	add	esp, 8

; 155  : 
; 156  : 	if (testID != myID) //Did the enemy hit me?

	cmp	ebx, eax
	je	SHORT $L6185

; 157  : 	{
; 158  : 		if (!hunting && !guarding) //Not doing anything?

	mov	al, BYTE PTR [esi+47]
	test	al, al
	jne	SHORT $L7271
	mov	cl, BYTE PTR [esi+45]
	test	cl, cl
	jne	SHORT $L6186

; 159  : 		{
; 160  : 			Hunt(obj,Set_Target(damager));

	push	ebp
	mov	ecx, esi
	call	?Set_Target@Neo_Vehicle_AI@@AAEPAEPAE@Z	; Neo_Vehicle_AI::Set_Target
	push	eax
	push	edi
	mov	ecx, esi
	call	?Hunt@Neo_Vehicle_AI@@AAEXPAE0@Z	; Neo_Vehicle_AI::Hunt
	pop	edi
	pop	esi
	pop	ebp
	pop	ebx

; 172  : 	}
; 173  : }

	ret	12					; 0000000cH
$L6186:

; 161  : 		}
; 162  : 		else if (hunting) //On a hunt?

	test	al, al
	je	SHORT $L6190
$L7271:

; 163  : 		{
; 164  : 			//Might not need the Hunt function here...
; 165  : 			Hunt(obj,Select_Target(obj,damager));

	push	ebp
	push	edi
	mov	ecx, esi
	call	?Select_Target@Neo_Vehicle_AI@@AAEPAEPAE0@Z ; Neo_Vehicle_AI::Select_Target
	push	eax
	push	edi
	mov	ecx, esi
	call	?Hunt@Neo_Vehicle_AI@@AAEXPAE0@Z	; Neo_Vehicle_AI::Hunt
	pop	edi
	pop	esi
	pop	ebp
	pop	ebx

; 172  : 	}
; 173  : }

	ret	12					; 0000000cH
$L6185:

; 166  : 			//This determines if damager bigger threat than target
; 167  : 		}
; 168  : 	}
; 169  : 	else if (!hunting && !guarding) //Am I doing anything?

	mov	al, BYTE PTR [esi+47]
	test	al, al
	jne	SHORT $L6190
	mov	al, BYTE PTR [esi+45]
	test	al, al
	jne	SHORT $L6190

; 170  : 	{
; 171  : 		Guard(obj,Set_Target(damager)); //must be a call for help

	push	ebp
	mov	ecx, esi
	call	?Set_Target@Neo_Vehicle_AI@@AAEPAEPAE@Z	; Neo_Vehicle_AI::Set_Target
	push	eax
	push	edi
	mov	ecx, esi
	call	?Guard@Neo_Vehicle_AI@@AAEXPAE0@Z	; Neo_Vehicle_AI::Guard
$L6190:
	pop	edi
	pop	esi
	pop	ebp
	pop	ebx

; 172  : 	}
; 173  : }

	ret	12					; 0000000cH
?Damaged@Neo_Vehicle_AI@@EAEXPAE0M@Z ENDP		; Neo_Vehicle_AI::Damaged
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ?Enemy_Seen@Neo_Vehicle_AI@@EAEXPAE0@Z
_TEXT	SEGMENT
_distance$6201 = -236					; size = 4
_pos$6197 = -232					; size = 12
_mypos$6199 = -220					; size = 12
$T7278 = -208						; size = 12
$T7276 = -208						; size = 12
_params$6207 = -196					; size = 196
_params$6205 = -196					; size = 196
_obj$ = 8						; size = 4
_seen$ = 12						; size = 4
?Enemy_Seen@Neo_Vehicle_AI@@EAEXPAE0@Z PROC NEAR	; Neo_Vehicle_AI::Enemy_Seen, COMDAT
; _this$ = ecx

; 176  : {

	sub	esp, 236				; 000000ecH
	push	esi
	mov	esi, ecx

; 177  : 	if (guarding)

	mov	al, BYTE PTR [esi+45]
	test	al, al
	push	edi
	je	$L6196

; 178  : 	{
; 179  : 		Vector3 pos = Commands->Get_Position(seen);

	mov	edi, DWORD PTR _seen$[esp+240]
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	ebx
	lea	eax, DWORD PTR $T7276[esp+248]
	push	edi
	push	eax
	call	DWORD PTR [ecx+64]
	mov	edx, DWORD PTR [eax]

; 180  : 		Vector3 mypos = Commands->Get_Position(obj);

	mov	ebx, DWORD PTR _obj$[esp+252]
	mov	DWORD PTR _pos$6197[esp+256], edx
	mov	ecx, DWORD PTR [eax+4]
	mov	DWORD PTR _pos$6197[esp+260], ecx
	mov	edx, DWORD PTR [eax+8]
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	lea	eax, DWORD PTR $T7278[esp+256]
	push	ebx
	push	eax
	mov	DWORD PTR _pos$6197[esp+272], edx
	call	DWORD PTR [ecx+64]
	mov	edx, DWORD PTR [eax]
	mov	DWORD PTR _mypos$6199[esp+264], edx
	mov	ecx, DWORD PTR [eax+4]
	mov	DWORD PTR _mypos$6199[esp+268], ecx
	mov	edx, DWORD PTR [eax+8]

; 181  : 		float distance = Commands->Get_Distance(pos,mypos);

	lea	eax, DWORD PTR _mypos$6199[esp+264]
	push	eax
	lea	ecx, DWORD PTR _pos$6197[esp+268]
	mov	DWORD PTR _mypos$6199[esp+276], edx
	mov	edx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	ecx
	call	DWORD PTR [edx+256]
	fstp	DWORD PTR _distance$6201[esp+272]

; 182  : 
; 183  : 		current_priority += 1; //override last command

	mov	ecx, DWORD PTR [esi+52]
	add	esp, 24					; 00000018H
	inc	ecx
	mov	DWORD PTR [esi+52], ecx

; 184  : 
; 185  : 		if (distance > Get_Float_Parameter("MaxRange"))

	push	OFFSET FLAT:??_C@_08JOBCAEBO@MaxRange?$AA@
	mov	ecx, esi
	call	?Get_Float_Parameter@ScriptImpClass@@QAEMPBD@Z ; ScriptImpClass::Get_Float_Parameter
	fcomp	DWORD PTR _distance$6201[esp+248]
	fnstsw	ax
	test	ah, 5
	jp	SHORT $L6202

; 186  : 		{
; 187  : 			if (!moving)

	mov	al, BYTE PTR [esi+46]
	test	al, al
	jne	SHORT $L7308

; 188  : 			{
; 189  : 				ActionParamsStruct params;

	lea	ecx, DWORD PTR _params$6205[esp+248]
	call	??0ActionParamsStruct@@QAE@XZ		; ActionParamsStruct::ActionParamsStruct

; 190  : 				params.Set_Basic(this,face_priority,30,-1);
; 191  : 				params.Set_Face_Location(pos,5);

	mov	edx, DWORD PTR _pos$6197[esp+248]
	mov	eax, DWORD PTR [esi+48]
	mov	ecx, DWORD PTR [esi+4]
	mov	DWORD PTR _params$6205[esp+248], eax
	mov	eax, DWORD PTR _pos$6197[esp+252]
	mov	DWORD PTR _params$6205[esp+364], edx

; 192  : 				Commands->Action_Face_Location(obj,params);

	lea	edx, DWORD PTR _params$6205[esp+248]
	mov	DWORD PTR _params$6205[esp+252], ecx
	mov	ecx, DWORD PTR _pos$6197[esp+256]
	push	edx
	mov	DWORD PTR _params$6205[esp+372], eax
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	ebx
	mov	DWORD PTR _params$6205[esp+424], -1
	mov	DWORD PTR _params$6205[esp+380], ecx
	mov	DWORD PTR _params$6205[esp+384], 1084227584 ; 40a00000H
	call	DWORD PTR [eax+32]

; 201  : 			Commands->Action_Attack(obj,params);

	add	esp, 8
$L7308:
	pop	ebx
	pop	edi
	pop	esi

; 210  : 
; 211  : }

	add	esp, 236				; 000000ecH
	ret	8
$L6202:

; 193  : 			}
; 194  : 		}
; 195  : 		else
; 196  : 		{
; 197  : 			//May need a 'Check_Target' that won't touch targetID
; 198  : 			ActionParamsStruct params;

	lea	ecx, DWORD PTR _params$6207[esp+248]
	call	??0ActionParamsStruct@@QAE@XZ		; ActionParamsStruct::ActionParamsStruct

; 199  : 			params.Set_Basic(this,current_priority,20,-1);

	mov	ecx, DWORD PTR [esi+52]
	mov	edx, DWORD PTR [esi+4]
	mov	DWORD PTR _params$6207[esp+248], ecx

; 200  : 			params.Set_Attack_Hold(seen,distance,0,Set_Ammo(seen),true);

	push	edi
	mov	ecx, esi
	mov	DWORD PTR _params$6207[esp+256], edx
	mov	DWORD PTR _params$6207[esp+420], -1
	call	?Set_Ammo@Neo_Vehicle_AI@@AAE_NPAE@Z	; Neo_Vehicle_AI::Set_Ammo
	mov	ecx, DWORD PTR _distance$6201[esp+248]

; 201  : 			Commands->Action_Attack(obj,params);

	lea	edx, DWORD PTR _params$6207[esp+248]
	push	edx
	mov	BYTE PTR _params$6207[esp+344], al
	mov	eax, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	ebx
	mov	DWORD PTR _params$6207[esp+344], edi
	mov	DWORD PTR _params$6207[esp+332], ecx
	mov	DWORD PTR _params$6207[esp+336], 0
	mov	BYTE PTR _params$6207[esp+364], 1
	call	DWORD PTR [eax+20]
	add	esp, 8
	pop	ebx
	pop	edi
	pop	esi

; 210  : 
; 211  : }

	add	esp, 236				; 000000ecH
	ret	8
$L6196:

; 202  : 		}
; 203  : 
; 204  : 		return; // we're done here
; 205  : 	}
; 206  : 
; 207  : 	//If I'm not guarding,might as well go hunting
; 208  : 
; 209  : 	Hunt(obj,Select_Target(obj,seen));

	mov	ecx, DWORD PTR _seen$[esp+240]
	mov	edi, DWORD PTR _obj$[esp+240]
	push	ecx
	push	edi
	mov	ecx, esi
	call	?Select_Target@Neo_Vehicle_AI@@AAEPAEPAE0@Z ; Neo_Vehicle_AI::Select_Target
	push	eax
	push	edi
	mov	ecx, esi
	call	?Hunt@Neo_Vehicle_AI@@AAEXPAE0@Z	; Neo_Vehicle_AI::Hunt
	pop	edi
	pop	esi

; 210  : 
; 211  : }

	add	esp, 236				; 000000ecH
	ret	8
?Enemy_Seen@Neo_Vehicle_AI@@EAEXPAE0@Z ENDP		; Neo_Vehicle_AI::Enemy_Seen
; Function compile flags: /Ogty
_TEXT	ENDS
;	COMDAT ?Timer_Expired@Neo_Vehicle_AI@@EAEXPAEH@Z
_TEXT	SEGMENT
_obj$ = 8						; size = 4
_number$ = 12						; size = 4
?Timer_Expired@Neo_Vehicle_AI@@EAEXPAEH@Z PROC NEAR	; Neo_Vehicle_AI::Timer_Expired, COMDAT
; _this$ = ecx

; 215  : 	/***********************************************/
; 216  : 	//				Timer List
; 217  : 	/***********************************************/
; 218  : 	//	11: Guard Timer
; 219  : 	//	22: Hunt Timer
; 220  : 	/***********************************************/
; 221  : 	if (number == 11)

	mov	eax, DWORD PTR _number$[esp-4]
	cmp	eax, 11					; 0000000bH
	push	esi
	mov	esi, ecx
	jne	SHORT $L6213

; 222  : 	{
; 223  : 		if (guarding) //in case guard was forced off

	mov	al, BYTE PTR [esi+45]
	test	al, al
	je	SHORT $L6223

; 224  : 		{
; 225  : 			guarding = false; //guard will only continue if Guard called
; 226  : 			GameObject *target = Commands->Find_Object(targetID);

	mov	eax, DWORD PTR [esi+28]
	mov	BYTE PTR [esi+45], 0
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	eax
	call	DWORD PTR [ecx+96]
	add	esp, 4

; 227  : 
; 228  : 			if (target) //Check if the target lives

	test	eax, eax
	je	SHORT $L6222

; 229  : 			{
; 230  : 				Guard(obj,Set_Target(target));

	push	eax
	mov	ecx, esi
	call	?Set_Target@Neo_Vehicle_AI@@AAEPAEPAE@Z	; Neo_Vehicle_AI::Set_Target
	mov	edx, DWORD PTR _obj$[esp]
	push	eax
	push	edx
	mov	ecx, esi
	call	?Guard@Neo_Vehicle_AI@@AAEXPAE0@Z	; Neo_Vehicle_AI::Guard
	pop	esi

; 252  : 			}
; 253  : 		}
; 254  : 	}
; 255  : }

	ret	8
$L6213:

; 231  : 			}
; 232  : 			else //target dead
; 233  : 			{
; 234  : 				targetID = 0;
; 235  : 				current_priority = 10; //drop priority back down
; 236  : 			}
; 237  : 		}
; 238  : 	}
; 239  : 	else if (number == 22)

	cmp	eax, 22					; 00000016H
	jne	SHORT $L6223

; 240  : 	{
; 241  : 		if (hunting) //In case hunt was forced off

	mov	al, BYTE PTR [esi+47]
	test	al, al
	je	SHORT $L6223

; 242  : 		{
; 243  : 			hunting = false; //hunt will only continue if Hunt called
; 244  : 			GameObject *target = Commands->Find_Object(targetID);

	mov	eax, DWORD PTR [esi+28]
	mov	BYTE PTR [esi+47], 0
	mov	ecx, DWORD PTR ?Commands@@3PAUScriptCommands@@A ; Commands
	push	eax
	call	DWORD PTR [ecx+96]
	add	esp, 4

; 245  : 
; 246  : 			if (target) //Check if the target lives

	test	eax, eax
	je	SHORT $L6222

; 247  : 				Hunt(obj,Set_Target(target));//Hunt starts a new timer by itself

	push	eax
	mov	ecx, esi
	call	?Set_Target@Neo_Vehicle_AI@@AAEPAEPAE@Z	; Neo_Vehicle_AI::Set_Target
	mov	edx, DWORD PTR _obj$[esp]
	push	eax
	push	edx
	mov	ecx, esi
	call	?Hunt@Neo_Vehicle_AI@@AAEXPAE0@Z	; Neo_Vehicle_AI::Hunt
	pop	esi

; 252  : 			}
; 253  : 		}
; 254  : 	}
; 255  : }

	ret	8
$L6222:

; 248  : 			else
; 249  : 			{
; 250  : 				targetID = 0; //target dead,forget him

	mov	DWORD PTR [esi+28], 0

; 251  : 				current_priority = 10; //drop priority back down

	mov	DWORD PTR [esi+52], 10			; 0000000aH
$L6223:
	pop	esi

; 252  : 			}
; 253  : 		}
; 254  : 	}
; 255  : }

	ret	8
?Timer_Expired@Neo_Vehicle_AI@@EAEXPAEH@Z ENDP		; Neo_Vehicle_AI::Timer_Expired
_TEXT	ENDS
PUBLIC	??_C@_0ED@KMBLHBJA@Preset_Name?$DNblank?3string?0Min?$DN0?40@ ; `string'
PUBLIC	??_C@_0BN@JOPFNADD@Neo_CreateObject_RandomTimer?$AA@ ; `string'
EXTRN	_atexit:NEAR
CRT$XCU	SEGMENT
_$S3	DD	FLAT:_$E1
CRT$XCU	ENDS
;	COMDAT ??_C@_0ED@KMBLHBJA@Preset_Name?$DNblank?3string?0Min?$DN0?40@
CONST	SEGMENT
??_C@_0ED@KMBLHBJA@Preset_Name?$DNblank?3string?0Min?$DN0?40@ DB 'Preset_'
	DB	'Name=blank:string,Min=0.0:float,Max=60.0:float,Repeat=1:int', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BN@JOPFNADD@Neo_CreateObject_RandomTimer?$AA@
CONST	SEGMENT
??_C@_0BN@JOPFNADD@Neo_CreateObject_RandomTimer?$AA@ DB 'Neo_CreateObject'
	DB	'_RandomTimer', 00H				; `string'
; Function compile flags: /Ogty
CONST	ENDS
;	COMDAT _$E1
text$yc	SEGMENT
_$E1	PROC NEAR					; COMDAT

; 668  : ScriptRegistrant<Neo_CreateObject_RandomTimer> Neo_CreateObject_RandomTimer_Registrant("Neo_CreateObject_RandomTimer","Preset_Name=blank:string,Min=0.0:float,Max=60.0:float,Repeat=1:int");

	push	OFFSET FLAT:??_C@_0ED@KMBLHBJA@Preset_Name?$DNblank?3string?0Min?$DN0?40@
	push	OFFSET FLAT:??_C@_0BN@JOPFNADD@Neo_CreateObject_RandomTimer?$AA@
	mov	ecx, OFFSET FLAT:?Neo_CreateObject_RandomTimer_Registrant@@3V?$ScriptRegistrant@VNeo_CreateObject_RandomTimer@@@@A
	call	??0?$ScriptRegistrant@VNeo_CreateObject_RandomTimer@@@@QAE@PAD0@Z ; ScriptRegistrant<Neo_CreateObject_RandomTimer>::ScriptRegistrant<Neo_CreateObject_RandomTimer>
	push	OFFSET FLAT:_$E2
	call	_atexit
	pop	ecx
	ret	0
_$E1	ENDP
text$yc	ENDS
PUBLIC	??_C@_0EE@HOJFEMNJ@MaxRange?$DN0?40?3float?0vsSoldier?$DN1?3i@ ; `string'
PUBLIC	??_C@_0P@LIFLJJBG@Neo_Vehicle_AI?$AA@		; `string'
CRT$XCU	SEGMENT
_$S6	DD	FLAT:_$E4
CRT$XCU	ENDS
;	COMDAT ??_C@_0EE@HOJFEMNJ@MaxRange?$DN0?40?3float?0vsSoldier?$DN1?3i@
CONST	SEGMENT
??_C@_0EE@HOJFEMNJ@MaxRange?$DN0?40?3float?0vsSoldier?$DN1?3i@ DB 'MaxRan'
	DB	'ge=0.0:float,vsSoldier=1:int,vsVehicle=1:int,vsAircraft=1:int'
	DB	00H						; `string'
CONST	ENDS
;	COMDAT ??_C@_0P@LIFLJJBG@Neo_Vehicle_AI?$AA@
CONST	SEGMENT
??_C@_0P@LIFLJJBG@Neo_Vehicle_AI?$AA@ DB 'Neo_Vehicle_AI', 00H ; `string'
; Function compile flags: /Ogty
CONST	ENDS
;	COMDAT _$E4
text$yc	SEGMENT
_$E4	PROC NEAR					; COMDAT

; 669  : ScriptRegistrant<Neo_Vehicle_AI> Neo_Vehicle_AI_Registrant("Neo_Vehicle_AI","MaxRange=0.0:float,vsSoldier=1:int,vsVehicle=1:int,vsAircraft=1:int");

	push	OFFSET FLAT:??_C@_0EE@HOJFEMNJ@MaxRange?$DN0?40?3float?0vsSoldier?$DN1?3i@
	push	OFFSET FLAT:??_C@_0P@LIFLJJBG@Neo_Vehicle_AI?$AA@
	mov	ecx, OFFSET FLAT:?Neo_Vehicle_AI_Registrant@@3V?$ScriptRegistrant@VNeo_Vehicle_AI@@@@A
	call	??0?$ScriptRegistrant@VNeo_Vehicle_AI@@@@QAE@PAD0@Z ; ScriptRegistrant<Neo_Vehicle_AI>::ScriptRegistrant<Neo_Vehicle_AI>
	push	OFFSET FLAT:_$E5
	call	_atexit
	pop	ecx
	ret	0
_$E4	ENDP
; Function compile flags: /Ogty
text$yc	ENDS
;	COMDAT _$E2
text$yd	SEGMENT
_$E2	PROC NEAR					; COMDAT
	mov	ecx, OFFSET FLAT:?Neo_CreateObject_RandomTimer_Registrant@@3V?$ScriptRegistrant@VNeo_CreateObject_RandomTimer@@@@A
	jmp	??1?$ScriptRegistrant@VNeo_CreateObject_RandomTimer@@@@UAE@XZ
_$E2	ENDP
; Function compile flags: /Ogty
text$yd	ENDS
;	COMDAT _$E5
text$yd	SEGMENT
_$E5	PROC NEAR					; COMDAT
	mov	ecx, OFFSET FLAT:?Neo_Vehicle_AI_Registrant@@3V?$ScriptRegistrant@VNeo_Vehicle_AI@@@@A
	jmp	??1?$ScriptRegistrant@VNeo_Vehicle_AI@@@@UAE@XZ
_$E5	ENDP
text$yd	ENDS
PUBLIC	?Neo_CreateObject_RandomTimer_Registrant@@3V?$ScriptRegistrant@VNeo_CreateObject_RandomTimer@@@@A ; Neo_CreateObject_RandomTimer_Registrant
PUBLIC	?Neo_Vehicle_AI_Registrant@@3V?$ScriptRegistrant@VNeo_Vehicle_AI@@@@A ; Neo_Vehicle_AI_Registrant
_BSS	SEGMENT
?Neo_CreateObject_RandomTimer_Registrant@@3V?$ScriptRegistrant@VNeo_CreateObject_RandomTimer@@@@A DB 010H DUP (?) ; Neo_CreateObject_RandomTimer_Registrant
?Neo_Vehicle_AI_Registrant@@3V?$ScriptRegistrant@VNeo_Vehicle_AI@@@@A DB 010H DUP (?) ; Neo_Vehicle_AI_Registrant
_BSS	ENDS
END
