# Vanilla game Lua (deminified) *Shard of mgsv-modding-pack — generated 2026-08-11. 163 files. Provenance is on every entry as `source:path`.* Reconstructed vanilla scripts. Names and comments are a maintainer's interpretation, not Konami's — treat as strong evidence, not ground truth. ## Deminified vanilla TPP Lua (kapuragu) — the game's own scripts, readable ### `demin_kap:README.md` #### mgsv-deminified-lua Manually deminified mgsv lua scripts. KJP runs the files to be packed in data.dat through a minifier on a per file basis which strips all the formating and also replaces local variable names with single letter names. Over the months I've been modding I've been manually reversing this process using what information is untouched - function names, engine function calls and variables, parameters supplied as tables, and a bunch of guesswork. I can't guarantee I haven't added bugs, every release or so I come across one prior area I went awry. And due to the large amount of code it's not near complete. Most of the straight data tables are just formatted nicer, and sometimes have notes, from me or gathered from community notes, IH currently does not modify most of those so there's little issue using them for other mods. Those with -- DOBUILD: 1 at the top of the file are however modified by IH and would conflict if added in other mods, so if you have a mod that needs to modify these contact me to see if some kind of compatablity can be worked out. Changes by are marked with --tex if it's a single line addition or --tex> through to --< for blocks of code. There are also further notes on various things, search for NMC (aka Not My Code lol) Also searching RETAILPATCH may be useful to see what was added by patches (from 1060>on), these are non-exhaustive however, mostly the files with big data tables I just note as 'various changes' Despite all this it should be a big help to understanding things. I'll try to update this along side Infinite Heaven releases --tex ### `demin_kap:data1/Assets/tpp/level_asset/chara/enemy/Soldier2FaceAndBodyData.lua` ```lua this.faceFova= { ... } this.faceDecoFova= { ... } this.hairFova= { ... } this.hairDecoFova= { ... } this.bodyFova= { ... } this.faceDefinition= { ... } this.modFaceFova= { ... } this.bodyDefinition= { ... } this.modBodyFova= { ... } this.highestVanillaFaceId=688--tex the highest faceid unmodded for sanity checking on fob --SYNC Ivars.playerFaceFilter ``` ### `demin_kap:data1/Assets/tpp/level_asset/chara/enemy/Soldier2ParameterTables.lua` ```lua this.parameterTables= { ... } ``` ### `demin_kap:data1/Assets/tpp/level_asset/chara/enemy/TppEnemyFaceGroup.lua` ```lua --see TppEnemyFaceGroupId function this.GetFaceGroupTable(groupId) ``` ### `demin_kap:data1/Assets/tpp/level_asset/chara/player/game_object/TppPlayer2CallbackScript.lua` ```lua --TppPlayer2CallbackScript.lua TppPlayer2CallbackScript={ ``` ### `demin_kap:data1/Assets/tpp/level_asset/chara/player/game_object/player2_camouf_param.lua` ```lua this.materialTypeNames= { ... } this.materialTypes=Tpp.Enum(this.materialTypeNames) this.playerCamoTypes= { ... } this.camoTypes=Tpp.Enum(this.playerCamoTypes) this.camoTable= { ... } ``` ### `demin_kap:data1/Assets/tpp/level_asset/damage/ParameterTables/DamageParameterTables.lua` ```lua this.parameterNames= { ... } ``` ### `demin_kap:data1/Assets/tpp/level_asset/weapon/ParameterTables/EquipParameterTables.lua` ```lua this.equipParameterTables= { ... } ``` ### `demin_kap:data1/Assets/tpp/level_asset/weapon/ParameterTables/parts/EquipParameters.lua` ```lua this.equipParameterTables= { ... } ``` ### `demin_kap:data1/Assets/tpp/motherbase/script/EquipDevelopConstSetting.lua` ```lua this.descriptiveParamToParamName= { ... } this.equipDevTable= { ... } ``` ### `demin_kap:data1/Assets/tpp/motherbase/script/EquipDevelopFlowSetting.lua` ```lua this.descriptiveParamToParamName= { ... } this.equipDevTable= { ... } ``` ### `demin_kap:data1/Assets/tpp/script/lib/Tpp.lua` ```lua this.requires= { ... } function this.IsTypeFunc(e) function this.IsTypeTable(e) function this.IsTypeString(e) function this.IsTypeNumber(e) --NMC GOTCHA TppDefine.Enum indexed from 0, Tpp.Enum indexed from one. silly. --GOTCHA this also adds to input table instead of giving new TODO review in light of this function this.Enum(nameTable) function this.IsMaster() function this.IsQARelease() function this.SplitString(string,delim) function this.StrCode32Table(table) function this.ApendArray(destTable,sourceTable) function this.MergeTable(table1,table2,unk3) function this.IsOnlineMode()--RETAILPATCH 1081 function this.IsValidLocalOnlineChallengeTaskVersion() function this.BfsPairs(r) local function p(n,e) this._DEBUG_svars={} this._DEBUG_gvars={} --IN: messages (str32)table from various module .Messages() func --OUT: messageExecTable[messageClassS32][messageNameS32].func=objectMessageFunc --or messageExecTable[messageClassS32][messageNameS32].sender[senderId]=objectMessageFunc --tex NMC senderId is either str32 of original sender or gameId --In most cases table is output to some .messageExecTable function this.MakeMessageExecTable(messagesS32) --tex NMC CheckMessageOption seems to always be TppMission.CheckMessageOption function this.DoMessage(messageExecTable,CheckMessageOption,messageClass,messageId,arg0,arg1,arg2,arg3,strLogText) function this.DoMessageAct(messageIdRecievers,CheckMessageOption,arg0,arg1,arg2,arg3,strLogText) function this.GetRotationY(rotQuat) function this.GetLocator(identifier,key) function this.GetLocatorByTransform(identifier,key) function this.GetDataWithIdentifier(identifier,key,typeName) function this.GetDataBodyWithIdentifier(identifier,key,typeName) function this.SetGameStatus(status) function this.GetAllDisableGameStatusTable() function this.GetHelicopterStartExceptGameStatus() local function IsGameObjectType(gameObject,checkType) function this.IsPlayer(gameId) function this.IsLocalPlayer(playerIndex) function this.IsSoldier(e) function this.IsCommandPost(e) function this.IsHostage(e) function this.IsVolgin(e) function this.IsHelicopter(e) function this.IsEnemyHelicopter(e) function this.IsHorse(e) function this.IsVehicle(e) function this.IsPlayerWalkerGear(e) function this.IsEnemyWalkerGear(e) function this.IsUav(e)--RETAILBUG well not really, just that there's two identical functions with different cap, IsUav and IsUAV function this.IsFultonContainer(e) function this.IsMortar(e)--RETAILPATCH 1070 function this.IsGatlingGun(e) function this.IsMachineGun(e) function this.IsFultonableGimmick(e) function this.GetBuddyTypeFromGameObjectId(gameObjectType) function this.IsMarkerLocator(e) function this.IsAnimal(gameId) function this.IsBossQuiet(e) function this.IsParasiteSquad(e) function this.IsSecurityCamera(e) function this.IsGunCamera(gameId) function this.IsUAV(e) function this.IncrementPlayData(gvarName) function this.IsNotAlert() function this.IsPlayerStatusNormal() function this.AreaToIndices(areaExtents) function this.CheckBlockArea(areaExtents,blockIndexX,blockIndexY) function this.FillBlockArea(blockTable,minX,minY,maxs,maxY,fillValue) function this.GetCurrentStageSmallBlockIndex() function this.IsLoadedSmallBlock(blockIndexX,blockIndexY) function this.IsLoadedLargeBlock(blockName) function this.GetLoadedLargeBlock() function this.GetChunkIndex(locationId,isMGO)--tex VERIFY, ssd param2 is missioncode function this.StartWaitChunkInstallation(chunkIndex) function this.ShowChunkInstallingPopup(chunkId,useOneCancelButtonPopup) function this.ClearChunkInstallPopupUpdateTime() function this.GetFormatedStorageSizePopupParam(neededSpace) --RETAILPATCH 1070 reworked> function this.PatchDlcCheckCoroutine(OnPatchExist,OnPatchNotExist,skipDlcTypeCheck,dlcType) local function DebugPrint(message) local function ClosePopupYield() local function YeildWhileSaving() --RETAILPATCH 1070> function this.IsPatchDlcValidPlatform(dlcId) function this.ClearDidCancelPatchDlcDownloadRequest() function this.DEBUG_DunmpBlockArea(t,l,n) function this.DEBUG_DumpTable(l,n) function this.DEBUG_Where(stackLevel) function this.DEBUG_StrCode32ToString(str32string) function this.DEBUG_Fatal(e,e) function this.DEBUG_SetPreference(entityName,property,value) this._requireList={} ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppAnimal.lua` ```lua this.AnimalExtraId= { ... } this.AnimalIdTable= { ... } function this.Messages() function this.OnAllocate(missionTable) function this.Init(missionTable) function this.OnReload() function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this.GetDataBaseIdFromAnimalId(animalId) function this.SetEnabled(type,name,enabled) function this.SetRoute(type,name,route) function this.SetHerdRoute(type,name,route) function this.SetKind(type,name,fv2Index) function this.SetFova(type,name,color,seed) function this.SetNotice(type,name,enabled) function this.SetIgnoreNotice(type,name,enable) function this.SetSleep(type,name,enable) function this.SetAnimalId(type,name,animalId) function this.SetBird(birdList) --RETAILBUG tex I dont get why it's overriding TppRatBird enablebirds (which it is because of the order in Tpp.requires). I do see TppRatBird enablebirds has a bug, were they sidestepping that, otherwise how are the birds set up? function TppRatBird._EnableBirds(enable) --IN: quest script .QUEST_TABLE function this.OnActivateQuest(questTable) --.QUEST_TABLE function this.OnDeactivateQuest(questTable) function this.OnTerminateQuest(questTable) --tex REWORKED function this.CheckQuestAllTarget(questType,messageId,checkGameId,checkAnimalId) --ORIG --function this.CheckQuestAllTarget(questType,messageId,gameId,animalId) -- if not Tpp.IsAnimal(gameId)then -- return function this.GetQuestCount() --< function this.IsQuestTarget(gameId) ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppAnimalBlock.lua` ```lua this.CLOCK_MESSAGE_AT_NIGHT_FORMAT="AnimalRouteChangeAtNight%02d" this.CLOCK_MESSAGE_AT_MORNING_FORMAT="AnimalRouteChangeAtMorning%02d" this.weatherTable={} function this.GetDefaultTimeTable(animalType) function this.StopAnimalBlockLoad() function this.UpdateLoadAnimalBlock(blockIndexX,blockIndexY) function this.GetCurrentAnimalBlockAreaName() function this._UpdateActiveAnimalBlock(blockIndexX,blockIndexY) -- RET: animalBlockKeyName,animalBlockAreaName function this._GetAnimalBlockAreaName(areaSettings,maxAreaNum,areaKey,blockIndexX,blockIndexY) function this._GetSetupTable(animalType) function this._IsNight(currentTime,nightStart,nightEnd) function this._IsNightForAnimalType(animalType,time) function this._InitializeCommonAnimalSetting(animalType,animalSetting,setupTable) function this._SetHerdRoute(type,locatorFormat,routeFormat,groupIndex) function this._SetRoute(type,locatorFormat,routeFormat,animalIndex) function this._ChangeDeadState(type,position,rotY) function this._RegisterWeatherTable(sender,param,func) function this._RegisterClockMessage(clockFmt,clockTime,timeLagClock,RENsomeBool,animalGroupCount,changeRouteFunc) function this._AddClockMessage(animalType,animalSetting,setupTable,animalCount) function this._ChangeRouteAtTime(timerName,time) function this._MakeMessageExecTable() function this._GetAnimalBlockState() function this.InitializeBlockStatus() function this.OnActivateAnimalBlock(e) function this.OnInitializeAnimalBlock() function mvars.animalBlockScript.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogTex) function this.OnReload() function this.OnAllocate(missionTable) function mvars.animalBlockScript.OnMessage(e,e,e,e,e,e,e) function this.OnTerminate() ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppCassette.lua` ```lua function this.Acquire(cassettesInfo) function this.AcquireOnMissionClear(missionCode) function this.AcquireOnMissionOpen(missionCode) --CALLER: msg OnPickUpWeapon > TppPlayer.OnPickUpWeapon function this.AcquireOnPickUp(cassetteIndex) function this.OnEstablishMissionClear() function this.OnEnterFreeHeliPlay() ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppCheckPoint.lua` ```lua function this.DeclareSVars() function this.Messages() function this.OnAllocate() function this.Init() function this.OnReload() function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this.Enable(enableInfo) function this.Disable(enableInfo) function this.Reset() --missionTable.sequence.checkPointList function this.RegisterCheckPointList(checkPointList) function this.SetCheckPointPosition() function this.GetCheckPointLocator(chekcPointName)--NMC returns position,rotation function this.FindNearestCheckPoint(checkPointList) function this.IsEnable(checkPointName) function this.Update(checkPointInfo) function this.UpdateAtCurrentPosition() function this.DEBUG_Init() function this.DebugUpdate() function this._SetEnable(enableInfo,enable) function this._RegisterCheckPoint(checkPointName) function this._DoesBaseListInclude(baseName) function this._DoesCheckPointListInclude(checkPointId) ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppClock.lua` ```lua this.DEPLOY_TIME={CURRENT=0,MORNING=1,NIGHT=2} function this.FormalizeTime(time,_timeStringType) this.DAY_TO_NIGHT=this.FormalizeTime(WeatherManager.NIGHT_START_CLOCK,"string") this.NIGHT_TO_DAY=this.FormalizeTime(WeatherManager.NIGHT_END_CLOCK,"string") this.NIGHT_TO_MIDNIGHT="22:00:00" function this.RegisterClockMessage(id,_seconds) function this.UnregisterClockMessage(id) function this.GetTime(timeStringType) function this.GetTimeOfDay() function this.GetTimeOfDayIncludeMidNight() function this.SetTime(time) function this.AddTime(time) function this.SetTimeFromHelicopterSpace(deployTime,fromLocation,toLocation) function this.AddTimeFromHelicopterSpace(fromLocation,toLocation) local function IsToMotherBase(locationCode) function this.Start() function this.Stop() function this.SaveMissionStartClock(time) function this.RestoreMissionStartClock() function this.ParseTimeString(timeString,timeType) function this.OnAllocate(missionTable) this.TIME_AT_NIGHT=this.ParseTimeString(this.DAY_TO_NIGHT,"number") this.TIME_AT_MORNING=this.ParseTimeString(this.NIGHT_TO_DAY,"number") this.TIME_AT_MIDNIGHT=this.ParseTimeString(this.NIGHT_TO_MIDNIGHT,"number") ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppCollection.lua` ```lua function this.OnMissionCanStart() ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppDbgStr32.lua` ```lua this.DEBUG_strCode32List= { ... } function this.DEBUG_RegisterStrcode32invert(strCode32List) function this.DEBUG_RegisterStrcode32invertByString(someString) function this.DEBUG_StrCode32ToString(str32String) ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppDebug.lua` ```lua function this.SetPlayLogEnabled(enable) function this.RequestResetPlayLog() function this.RequestUploadPlayLog() function this.ExportSavedPlayLog() this.PERF_CHECK_TYPE=Tpp.Enum{"OnUpdate","OnMessage","OnEnter"} this.Colors= { ... } function this.DEBUG_SetSVars(setList) function this.DEBUG_SetGVars(setList) function this.DEBUG_RestoreSVars() function this.DEBUG_SetOrderBoxPlayerPosition() function this.DEBUG_SVarsClear() function this.DEBUG_GetSysVarsLog() function this.DEBUG_WarpHelicopter(RENHeliName,route,position,point,setRoute) function this.DEBUG_WarpVehicleAndSoldier(soldierNameTable,vehiclename,route,position,point,setRoute) this.DEBUG_SkipOnChangeSVarsLog={timeLimitforSneaking=true,timeLimitforNonAbort=true} function this.DEBUG_AddSkipLogSVarsName(svarName) function this.DEBUG_FobGPU() function this.DEBUG_SetFobPlayerSneak() function this.DEBUG_SetFobPlayerDefence() function this.QARELEASE_DEBUG_Init() function this.QAReleaseDebugUpdate() local function printEventTaskCompletion(taskList,taskNo,isFobSneak) local function printOnlineChallengeTaskCompletion(onlineChallengeTaskDefine,onlineChallengeTaskIndex) function this.Print2D(info) function this.DEBUG_MakeUserSVarList(userSVarList) function this.AddReturnToSelector(selector) function this.DEBUG_Init() function this.DEBUG_OnReload(missionTable) --- function this.DebugUpdate() function this.ShowMessageTable(context,moduleName,messageExecTable) function this.PerfCheckStart(perCheckTypeEnum) function this.PerfCheckEnd(perCheckTypeEnum,r) function this.ErrorNotSupportYet(e) function this._GetColor(name) ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppDebugMbDevelop.lua` ```lua function this.STORY_START() function this.AllDeveloped() function this.CLEARD_TO_MATHER_BASE() function this.CLEARD_FLAG_MISSIONS_AFTER_TO_MATHER_BASE() function this.CLEARD_FLAG_MISSIONS_AFTER_FIND_THE_SECRET_WEAPON() function this.CLEARD_RESCUE_HUEY() function this.CLEARD_ELIMINATE_THE_POWS() function this.CLEARD_CAPTURE_THE_WEAPON_DEALER() function this.CLEARD_RESCUE_THE_BETRAYER() function this.CLEARD_CODE_TALKER() function this.CLEARD_METALLIC_ARCHAEA() function this.CLEARD_OKB_ZERO() ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppDefine.lua` ```lua --NMC GOTCHA TppDefine.Enum indexed from 0, Tpp.Enum indexed from one. --GOTCHA pulls via pairs, so could use a non array table TODO review in light of this function this.Enum(enumNames) this.SMALL_DIAMOND_GMP=10000 this.LARGE_DIAMOND_GMP=100000 this.MAX_32BIT_UINT=4294967295 this.EXCEPTION_QUEUE_MAX=255 this.PICKABLE_MAX=16 this.PLACED_MAX=8 this.DEFAULT_EQUIP_MISSION_BLOCK_GROUP_SIZE=1677721 this.MISSION_COUNT_MAX=64 this.DEFAULT_SOLDIER_STATE_COUNT=160 this.DEFAULT_SOLDIER_OPTION_VARS_COUNT=160 this.DEFAULT_PASSAGE_INFO_COUNT=64 this.DEFAULT_PASSAGE_FLAG_COUNT=this.DEFAULT_PASSAGE_INFO_COUNT*5 this.DEFAULT_NOTICE_INFO_COUNT=24 this.DEFAULT_HOSTAGE_STATE_COUNT=32 this.ENEMY_FOVA_UNIQUE_SETTING_COUNT=16 this.DEFAULT_ENEMY_HELI_STATE_COUNT=1--NMC: despite the heli svar declarations being set up for an array like all the other object save vars, the actual saving may be to a non array? see TppEnemy.RestoreOnContinueFromCheckPoint2, RestoreOnMissionStart2, though that's just the reset, actual save/restore is in exe so not sure what its actually doing this.DEFAULT_WALKER_GEAR_STATE_COUNT=4--tex added this.DEFAULT_UAV_STATE_COUNT=0--tex added, search MAX_UAV_COUNT (set on fob) this.MAX_HOLD_RECOVERED_STATE_COUNT=32 this.MAX_HOLD_VEHICLE_BROKEN_STATE_COUNT=32 this.MAX_ANIMAL_RECOVERED_HISTORY_SIZE=50 this.MAX_SECURITY_CAMERA_COUNT=64 this.MAX_UAV_COUNT=16 this.SEARCH_TARGET_COUNT=8 this.CHECK_POINT_MAX=64 this.QUEST_MAX=250 this.QUEST_FACE_MAX=32 this.QUEST_ENEMY_MAX=8 this.REVENGE_MINE_BASE_MAX=20 this.MISSION_CLEAR_HISTORY_LIMIT=36 this.MAX_MISSION_TASK_COUNT=8 this.MAX_TAKING_OVER_HOSTAGE_COUNT=4 this.MAX_MB_DEMO_PLAYFLAG_MAX=4 this.INIT_HELI_ROUTE=0 this.PLAYSTYLE_SAVE_INDEX_MAX=20 this.PLAYSTYLE_HISTORY_MAX=2 this.MAX_TIPS_GUIDE_SHOWN_ONCE=256 this.MAX_CONTROL_GUIDE_SHOWN_ONCE=128 this.MESSAGE_GENERATION= { ... } this.DEFAULT_MESSAGE_GENERATION=1 this.ELAPSED_MISSION_COUNT_MAX=14 this.ELAPSED_MISSION_COUNT= { ... } this.ELAPSED_QUEST_COUNT= { ... } this.MISSION_START_RECOVER_DEMO_TYPE= { ... } this.REWARD_MAX= { ... } this.REWARD_PARAM= { ... } this.TRAP_TYPE=this.Enum{ this.TRAP_STATE=this.Enum{ this.HOSTAGE_GM_TYPE=this.Enum{ this.FULTONABLE_GIMMICK_TYPE=this.Enum{ this.QUEST_MINE_TYPE_LIST= { ... } this.BUDDY_GM_TYPE_TO_BUDDY_TYPE= { ... } this.ANIMAL_GAMEOBJECT_TYPE=this.Enum{ this.MISSION_CLEAR_STATE_LIST= { ... } this.MISSION_CLEAR_STATE=this.Enum(this.MISSION_CLEAR_STATE_LIST) this.ERROR_ID= { ... } this.UI_STATUS_TYPE_ALL= { ... } this.GAME_STATUS_TYPE_ALL= { ... } this.SAVE_FILE_LOAD_RESULT=this.Enum{ this.SAVE_FILE_LOAD_RESULT.INIT=-1 this.SAVE_SLOT= { ... } this.PROGRAM_SAVE_FILE_VERSION_OFFSET=65535 this.GAME_SAVE_FILE_NAME="TPP_GAME_DATA" this.GAME_SAVE_FILE_NAME_TMP="TPP_GAME_DATA_TMP" this.MGO_MAIN_SAVE_FILE_NAME="MGO_MAIN_DATA" this.CONFIG_SAVE_FILE_NAME="TPP_CONFIG_DATA" this.MGO_SAVE_FILE_NAME="MGO_GAME_DATA" this.PERSONAL_DATA_SAVE_FILE_NAME="PERSONAL_DATA" this.CATEGORY_MISSION_RESTARTABLE=2 this.SAVE_FILE_INFO= { ... } this.PROGRAM_SAVE_FILE_VERSION=TppScriptVars.GetProgramVersionTable() this.VARS_GROUP_GAME_DATA_ON_START_MISSION=bor(TppScriptVars.GROUP_BIT_GVARS,TppScriptVars.GROUP_BIT_VARS) this.MISSION_LOAD_TYPE=this.Enum{"MISSION_FINALIZE","MISSION_ABORT","MISSION_RESTART","CONTINUE_FROM_CHECK_POINT"} this.LOCATION_ID= { ... } this.LOCATION_CHUNK_INDEX_TABLE= { ... } this.WEATHER={SUNNY=0,CLOUDY=1,RAINY=2,SANDSTORM=3,FOGGY=4,POURING=5} this.MISSION_LIST= { ... } this.MISSION_ENUM=this.Enum(this.MISSION_LIST) this.HARD_MISSION_LIST= { ... } this.HARD_MISSION_ENUM=this.Enum(this.HARD_MISSION_LIST) this.MISSING_NUMBER_MISSION_LIST= { ... } this.MISSING_NUMBER_MISSION_ENUM=this.Enum(this.MISSING_NUMBER_MISSION_LIST) this.SYS_MISSION_ID= { ... } this.NO_ORDER_BOX_MISSION_LIST= { ... } this.NO_ORDER_BOX_MISSION_ENUM=this.Enum(this.NO_ORDER_BOX_MISSION_LIST) this.NO_ORDER_FIX_HELICOPTER_ROUTE= { ... } this.NO_HELICOPTER_ROUTE_MISSION_LIST= { ... } this.NO_HELICOPTER_ROUTE_ENUM=this.Enum(this.NO_HELICOPTER_ROUTE_MISSION_LIST) this.NO_HELICOPTER_MISSION_START_POSITION= { ... } this.NO_BOX_MISSION_START_POSITION= { ... } this.EMERGENCY_MISSION_LIST={10115,50050} this.EMERGENCY_MISSION_ENUM=this.Enum(this.EMERGENCY_MISSION_LIST) this.LOCATION_HAVE_MISSION_LIST= { ... } this.OFFLINE_MOHTER_BASE_LAYOUT_CODE=0 this.STORY_MISSION_LAYOUT_CODE= { ... } this.INVALID_LAYOUT_CODE=65535 this.STORY_MISSION_CLUSTER_ID= { ... } this.INVALID_CLUSTER_ID=255 this.STORY_SEQUENCE_LIST= { ... } this.STORY_SEQUENCE=this.Enum(this.STORY_SEQUENCE_LIST) this.MISSION_COMMON_PACK= { ... } this.SOLIDER2_COMMON_PACK= { ... } this.DEFAULT_SOLIDER2_COMMON_PACKAGE=StrCode32"default" this.SOLIDER2_COMMON_PACK_PREREQUISITES= { ... } this.AFR_ARMOR= { ... } this.QUEST_DEFINE= { ... } this.NUM_VANILLA_QUEST_DEFINES=167--tex added this.QUEST_RANDOM_FACE_DEFINE= { ... } this.QUEST_HELI_DEFINE= { ... } this.REMOVAL_TROPHY_QUEST=this.Enum{ this.QUEST_TYPE= { ... } this.QUEST_CLEAR_TYPE= { ... } this.QUEST_RACE_TYPE= { ... } this.QUEST_GENDER_TYPE= { ... } this.QUEST_INDEX=this.Enum(this.QUEST_DEFINE) this.QUEST_RANDOM_FACE_INDEX=this.Enum(this.QUEST_RANDOM_FACE_DEFINE) this.QUEST_RANK_LIST= { ... } this.QUEST_RANK=Tpp.Enum(this.QUEST_RANK_LIST) this.QUEST_BONUS_GMP= { ... } this.QUEST_RANK_TABLE= { ... } this.QUEST_BODY_ID_LIST= { ... } this.QUEST_FACE_ID_LIST= { ... } this.MISSION_CLEAR_RANK_LIST= { ... } this.MISSION_CLEAR_RANK=Tpp.Enum(this.MISSION_CLEAR_RANK_LIST) this.MISSION_CLEAR_RANK.NOT_DEFINED=0 this.INITIAL_PLAYER_STATE= { ... } this.MB_FREEPLAY_DEMO_PRIORITY_LIST= { ... } this.MB_FREEPLAY_DEMO_ENUM=this.Enum(this.MB_FREEPLAY_DEMO_PRIORITY_LIST) this.FORCE_MB_RETURN_RADIO_LIST= { ... } this.FORCE_MB_RETURN_RADIO_ENUM=this.Enum(this.FORCE_MB_RETURN_RADIO_LIST) this.S10100_BOY_LIST= { ... } this.S10100_BOY_ENUM=this.Enum(this.S10100_BOY_LIST) this.MB_FREEPLAY_DEMO_REQUESTFLAG_LIST= { ... } this.MB_FREEPLAY_DEMO_REQUESTFLAG_DEFINE=this.Enum(this.MB_FREEPLAY_DEMO_REQUESTFLAG_LIST) this.MB_FREEPLAY_LARGEDEMO= { ... } this.MB_FREEPLAY_RIDEONHELI_DEMO= { ... } this.MB_FREEPLAY_RIDEONHELI_DEMO_DEFINE=this.Enum(this.MB_FREEPLAY_RIDEONHELI_DEMO) this.GAME_OVER_TYPE= { ... } this.GAME_OVER_RADIO= { ... } this.GAME_OVER_TARGET_DEAD_DEMO_TIME=6 this.GAME_OVER_S10020_TARGET_TIMEOVERDEAD_DEMO_TIME=25 this.GAME_OVER_S10030_SHOT_OCELOT_BY_TULLET_TIME=1 this.GAME_OVER_S10090_TARGET_DEAD_TIME=4 this.GAME_OVER_S10090_TARGET_FULTON_FAILED_TIME=4 this.FOB_DEFENCE_GAME_OVER_TYPE= { ... } this.COMMON_RADIO= { ... } this.MISSION_CLEAR_TYPE= { ... } this.ELAPSED_MISSION_EVENT_LIST= { ... } this.ELAPSED_MISSION_EVENT=this.Enum(this.ELAPSED_MISSION_EVENT_LIST) this.INIT_ELAPSED_MISSION_COUNT= { ... } this.QUIET_REUNION_MISSION_COUNT=6--RETAILPATCH 1006 added this.WEAPONSLOT= { ... } this.HONEY_BEE_EQUIP_ID=TppEquip.EQP_WP_HoneyBee this.INIT_MAG= { ... } this.SCRIPT_BLOCK_STATE= { ... } this.HOSTAGE_UNLOCK_START=0 this.HOSTAGE_UNLOCK_FINISH=1 this.STOCK_DIRECTION_RIGHT=0 this.STOCK_DIRECTION_LEFT=1 this.TIPS= { ... } this.TIPS_REDUNDANT_REF= { ... } this.CONTINUE_TIPS_TABLE= { ... } this.CONTROL_GUIDE= { ... } this.PAUSE_CONTROL_GUIDE= { ... } this.CONTROL_GUIDE_LANG_ID_LIST= { ... } this.GMP_COST_TYPE= { ... } this.CLUSTER_NAME= { ... } this.CLUSTER_DEFINE=this.Enum(this.CLUSTER_NAME) this.PLNT_NAME= { ... } this.PLNT_DEFINE=this.Enum(this.PLNT_NAME) this.SECURITY_SETTING= { ... } this.FOB_EVENT_ID_LIST= { ... } this.STATION_LIST= { ... } this.STAFF_TYPE_ID= { ... } this.UNIQUE_STAFF_TYPE_ID= { ... } this.IGNORE_EXIST_STAFF_CHECK= { ... } this.CYPR_PLAYER_INITIAL_WEAPON_TABLE= { ... } this.CYPR_PLAYER_INITIAL_ITEM_TABLE= { ... } this.RANKING_MAX=21 this.RANKING_ENUM=Tpp.Enum{ this.DEFAULT_DROP_ROUTE= { ... } this.DIRECTION_ZOOM_IN_CAMERA_ZOOM_INTERP_TIME=1 this.DIRECTION_ZOOM_IN_CAMERA_ROTATION_INTERP_TIME=1 this.ENEMY_HELI_COLORING_TYPE= { ... } ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppDemo.lua` ```lua this.MOVET_TO_POSITION_RESULT= { ... } this.messageExecTable={} function this.Messages() this.PLAY_REQUEST_START_FUNC= { ... } this.PLAY_REQUEST_START_CHECK_FUNC= { ... } this.FINISH_WAIT_START_FUNC= { ... } this.FINISH_WAIT_CHECK_FUNC= { ... } function this.Play(demoName,demoFuncs,demoFlags) function this.EnableGameStatus(target,_except) function this.DisableGameStatusOnPlayRequest(isInGame) function this.DisableGameStatusOnPlayStart() function this.OnEndGameCameraInterp() function this.PlayOnDemoBlock() function this.FinalizeOnDemoBlock() function this.SetDemoTransform(demoName,setInfo) function this.GetDemoStartPlayerPosition(demoName) function this.PlayOpening(demoFuncs,_demoFlags) function this.PlayGetIntelDemo(demoFuncs,identifier,key,_demoFlags,isAlt) function this.IsNotPlayable() function this.ReserveEnableInGameFlag() function this.EnableInGameFlagIfResereved() function this.ReserveInTheBackGround(demoFlags) function this.ExecuteBackGroundLoad(demoId) function this.SetStageBlockLoadPosition(position) function this.SetPlayerPause() function this.SetPlayerWarp(position,rotationY) function this.UnsetStageBlockLoadPosition() function this.UnsetPlayerPause() function this.ClearReserveInTheBackGround() function this.CheckEventDemoDoor(doorId,overridePosition,overrideRange) function this.SpecifyIgnoreNpcDisable(_npcDisableList) function this.ClearIgnoreNpcDisableOnDemoEnd() function this.IsPlayedMBEventDemo(demoName) function this.ClearPlayedMBEventDemoFlag(demoName) function this.OnAllocate(missionTable) function this.Init(missionTable) function this.OnReload(missionTable) function this.Update() --REF --this.demoList = { -- Demo_RecoverReptilePod = "p31_060010", function this.Register(list) function this.AddDemo(demoName,demoId) function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this.FadeOutOnSkip() function this.OnDemoPlay(demoName,scdDemoID) function this.OnDemoEnd(demoName) function this.OnDemoInterrupt(demoName) function this.OnDemoSkip(demoName,demoIdStr32) function this.EnableWaitBlockLoadOnDemoSkip() function this.OnDemoSkipAndBlockLoadEnd() function this.DoOnEndMessage(demoName,finishFadeOut,exceptGameStatus,isInGame,isSkipped) function this.OnDemoDisable(demoName) function this.AddPlayReqeustInfo(demoId,demoFlags) function this.MakeNewPlayRequestInfo(demoFlags) function this.DeletePlayRequestInfo(demoId,demoFlags) function this.ProcessPlayRequest(playRequestInfoDemoBlock) function this.CanStartPlay(demoId,startCheckFuncions) function this.AddFinishWaitRequestInfo(demoId,demoFlags,finishWaitFuncName) function this.ProcessFinishWaitRequestInfo() function this.CanFinishPlay(demoId,waitCheckFuncs) function this._Play(demoName,demoId) function this._OnDemoInit(demoIdStr32) function this._OnDemoPlay(demoIdStr32) function this._OnDemoEnd(demoIdStr32) function this._OnDemoInterrupt(demoIdStr32) function this._OnDemoSkip(demoIdStr32) function this._OnDemoDisable(demoIdStr32) function this._DoMessage(demoName,functionName) this.mtbsPriorityFuncList= { ... } function this.UpdateHappyBirthDayFlag() function this.GetMBDemoName() function this.UpdateMBDemo() function this.IsUseMBDemoStage(demoName) function this.SetNextMBDemo(demoName) function this.CanUpdateMBDemo() function this.IsQuestStart() function this.IsSortieMBDemo(demoName) function this.IsBattleHangerDemo(demoName) function this.EnableNpc(demoName) function this.UpdateNuclearAbolitionFlag() ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppDemoBlock.lua` ```lua this.isAllocatedMtbsEnemy=false function this.OnAllocate() function this.OnInitialize() function this.OnUpdate() function this.OnTerminate() ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppDevelopFile.lua` ```lua function this.OnMissionCanStart() ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppEmblem.lua` ```lua function this.AcquireOnSRankClear(missionCode) function this.AcquireOnMissionClear(missionCode) function this.AcquireOnAllMissionTaskComleted(missionCode) function this.AcquireOnAllMissionCleared() function this.AcquireOnAllMissionSRankCleared() function this._AcquireByMissionCode(emblemsByMissionCode,missionCode) function this.SetUpCpEmblemTag(cpName,cpId) function this.AcquireOnCommandPostAnnihilated(cpName) function this.AcquireByPlayStyle(playStyleId) function this.Add(emblemName,isPush,isAnnounce) function this.Remove(emblemName) ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppEneFova.lua` ```lua this.S10030_FaceIdList={78,200,283,30,88,124,138,169,213,222,243,264,293,322,343} this.S10030_useBalaclavaNum=3 this.S10240_FemaleFaceIdList={394,351,373,456,463,455,511,502} this.S10240_MaleFaceIdList={195,144,214,6,217,83,273,60,87,71,256,201,290,178,102,255,293,165,85,18,228,12,65,134,31,132,161,342,107,274,184,226,153,247,344,242,56,183,54,126,223} this.fovaSetupFuncs=fovaSetupFuncs this.noArmorForMission=noArmorForMission this.missionArmorType=missionArmorType this.missionHostageInfos=missionHostageInfos --NMC an addaption of switch / case from Case method on http://lua-users.org/wiki/SwitchStatement --mostly used for PreMissionLoad, but also in some of the fovaSetupFuncs[missionId] funcs to run the area fova func --why they didn't just call those functions directly I'm not sure. Maybe it just started as a select on missionId and passing missionId as a parameter --but then broke down when they decided to add area fova funcs. local function Select(switchTable) function switchTable:case(key,missionCode) function this.IsNotRequiredArmorSoldier(missionCode) function this.CanUseArmorType(missionCode,soldierSubType) function this.GetHostageCountAtMissionId(missionCode) function this.GetHostageLangAtMissionId(missionCode) function this.GetHostageUseHairAtMissionId(missionInfo) function this.GetHostageIsFaceModelOverlap(missionCode) function this.GetHostageFaceModelCount(missionCode) function this.GetHostageIgnoreFaceList(missionCode) --tex reworked function this.GetArmorTypeTable(missionCode) --ORIG --function this.GetArmorTypeTable(missionCode) -- if this.IsNotRequiredArmorSoldier(missionCode)then -- return{} function this.SetHostageFaceTable(missionId) function this.GetFaceGroupTableAtGroupType(faceGroupType) function fovaSetupFuncs.afgh(locationName,missionId) function fovaSetupFuncs.mafr(locationName,missionId) function fovaSetupFuncs.mbqf(locationName,missionId) balaclavas={ faces={ function fovaSetupFuncs.mtbs(locationName,missionId) bodies={ bodies={ bodies={ bodies={ bodies={ bodies={ --tex >ASSUMPTION customSoldierType true WIP UNUSED function fovaSetupFuncs.mtbsCustomBody(locationName,missionId) --< function fovaSetupFuncs.cypr(locationName,missionId) function fovaSetupFuncs.default(locationName,missionId) --tex> function this.SetupFovaForLocation(locationName,missionId) --< --NMC: cant see any references to this function this.AddTakingOverHostagePack() function this.PreMissionLoad(missionId,currentMissionId) function this.InitializeUniqueSetting() function this.GetStaffIdForDD(missionId,ddIndex) function this.GetFaceIdForDdHostage(missionId) function this.GetFaceId_s10081() function this.GetFaceId_s10091_0() function this.GetFaceId_s10091_1() function this.GetFaceIdForFemaleHostage(missionCode) --tex> function this.GetFaceIdForMaleHostage(missionCode) --< function this.GetFaceIdAndFlag(fovaType,faceId) function this.RegisterUniqueSetting(uniqueType,name,faceId,bodyId) function this.AddUniqueSettingPackage(uniqueSettings) function this.AddUniquePackage(uniqueSettings) function this.ApplyUniqueSetting() function this.ApplyMTBSUniqueSetting(soldierId,faceId,useBalaclava,forceNoBalaclava) local function IsFemale(faceId) function this.IsUseGasMaskInMBFree(e) function this.IsUseGasMaskInFOB() function this.GetUavSetting()--RETAILPATCH: 1060 reworked --< --RETAILPATCH 1090> --NMC: cant see any references to this function this.GetUavCombatGradeAndEmpLevel(minGrade,useAlt,p3,p4) --< function this.GetUniqueSettings()--tex> ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppEnemy.lua` ```lua --rlc inputs: {"sol_quest_0000",{"sol_quest_0001","sol_quest_0002"},"sol_quest_0003",} --outputs: {[1024]=1,{[1025]=1,[1026]=2,},[1027]=3,} --why? no idea. uses ipairs instead of pairs, so it definitely doesn't want string keys, but index numbers. local function gameObjectNameListToIndexArray(gameObjectNameList)--tex NMC: cant actually find reference to function, it looks similar to setsolidertype/subtype function this.Messages() this.POWER_SETTING= { ... } this.PHASE= { ... } this.ROUTE_SET_TYPES= { ... } this.LIFE_STATUS= { ... } this.ACTION_STATUS= { ... } this.SOLDIER_DEFINE_RESERVE_TABLE_NAME=Tpp.Enum{ this.TAKING_OVER_HOSTAGE_LIST= { ... } this.ROUTE_SET_TYPETAG={} this.subTypeOfCpTable= { ... } this.subTypeOfCp={}--tex built below, but also added to via missionTable.enemy.cpSubTypes in OnAllocate this.subTypeOfCpDefault={}--tex this.childBodyIdTable={TppEnemyBodyId.chd0_v00,TppEnemyBodyId.chd0_v01,TppEnemyBodyId.chd0_v02,TppEnemyBodyId.chd0_v03,TppEnemyBodyId.chd0_v05,TppEnemyBodyId.chd0_v06,TppEnemyBodyId.chd0_v07,TppEnemyBodyId.chd0_v08,TppEnemyBodyId.chd0_v09,TppEnemyBodyId.chd0_v10,TppEnemyBodyId.chd0_v11} this.bodyIdTable= { ... } this.weaponIdTable= { ... } this.gunLightWeaponIds= { ... } this.DDWeaponIdInfo= { ... } this.DEFAULT_HOLD_TIME=60 this.DEFAULT_TRAVEL_HOLD_TIME=15 this.DEFAULT_SLEEP_TIME=300 this.FOB_DD_SUIT_ATTCKER=1 this.FOB_DD_SUIT_SNEAKING=2 this.FOB_DD_SUIT_BTRDRS=3 this.FOB_PF_SUIT_ARMOR=4 function this._ConvertSoldierNameKeysToId(soldierTypes) function this._SetUpSoldierTypes(soldierType,soldierIds) function this.SetUpSoldierTypes(soldierTypes) function this._SetUpSoldierSubTypes(subTypes,soldierNames) function this.SetUpSoldierSubTypes(soldierSubTypes) function this.SetUpPowerSettings(soldierPowerSettings)-- ==missionTable.enemy.soldierPowerSettings { soldierName={powerSetting...}...} function this.ApplyPowerSettingsOnInitialize() function this.DisablePowerSettings(loadout) function this.SetUpPersonalAbilitySettings(settings) function this.ApplyPersonalAbilitySettingsOnInitialize() function this.SetSoldierType(soldierId,soldierType) function this.GetSoldierType(soldierId)--tex> now pulls type for subtype> ORIG is below function this._GetSoldierType(soldierId)--tex was GetSoldierType function this.SetSoldierSubType(soldierId,subType) function this.GetSoldierSubType(soldierId,soldierType) function this.GetCpSubType(cpId) function this.GetDefaultSoldierSubType(soldierType) function this._CreateDDWeaponIdTable(developedEquipGradeTable,soldierEquipGrade,isNoKillMode) function this.GetDDWeaponCount() function this.ClearDDParameter() function this.PrepareDDParameter(soldierEquipGrade,isNoKillMode) function this.SetUpDDParameter() --CALLERS: TppRevenge._AllocateResources, TppEnemy.GetWeaponId --REWORKED function this.GetWeaponIdTable(soldierType,soldierSubType) --tex REWORKED functionally equivalent to original, but heavier performance wise lol, but eh, I felt like refactoring --and it makes choosing final weapon ids from a table in IH easier function this.GetWeaponId(soldierId,config) --ORIG --function this.GetWeaponId(soldierId,config) -- local primary,secondary,tertiary -- local soldierType=this.GetSoldierType(soldierId) function this.GetBodyId(soldierId,soldierType,soldierSubType,soldierPowerSettings) --tex just a face override, not a get current face function this.GetFaceId(soldierId,soldierType,subTypeName,soldierConfig) --CALLER: ApplyPowerSetting function this.GetBalaclavaFaceId(soldierId,soldierType,subTypeName,soldierConfig) function this.IsSniper(soldierId) function this.IsMissile(soldierId) function this.IsShield(soldierId) function this.IsArmor(soldierId) function this.IsHelmet(soldierId) function this.IsNVG(soldierId) function this.AddPowerSetting(soldierId,applySettings) function this.ApplyPowerSetting(soldierId,powerSettings) function this.ApplyPersonalAbilitySettings(soldierId,abilitySettings) function this.SetOccasionalChatList() function this.SetSaluteVoiceList() --CALLER: some _sequence scripts at MissionPrepare function this.RequestLoadWalkerGearEquip() function this.SetSoldier2CommonPackageLabel(label) function this.AssignUniqueStaffType(info) function this.IsActiveSoldierInRange(pos,range) function this._SetOutOfArea(soldierNames,outOfAreaList) function this.SetOutOfArea(soldierNames,isOut) function this.SetEliminateTargets(_targetList,exceptTable) function this.DeleteEliminateTargetSetting(soldierName) function this.SetRescueTargets(rescueTargetNames,rescueTargetOptions) function this.SetVipHostage(names)--NMC: ORPHAN aparently function this.SetExcludeHostage(hostagName) function this.GetAllHostages() function this.GetAllActiveEnemyWalkerGear() --NMC no references function this.SetChildTargets(targets) function this.SetTargetOption(targetName) function this.LetCpHasTarget(cp,enable) function this.GetPhase(cpName) function this.GetPhaseByCPID(cpId) function this.GetLifeStatus(gameId) function this.GetActionStatus(gameId) function this.GetStatus(nameOrId) function this.IsEliminated(gameId) function this.IsNeutralized(gameId) function this.IsRecovered(nameOrId) function this.ChangeLifeState(stateInfo) function this.SetSneakRoute(gameId,route,point,isRelaxed) function this.UnsetSneakRoute(soldierId) function this.SetCautionRoute(soldierId,route,point,r) function this.UnsetCautionRoute(soldierId) function this.SetAlertRoute(soldierId,route,point,r) function this.UnsetAlertRoute(soldierId) function this.RegistRoutePointMessage(routePointMessages) function this.IsBaseCp(cpId) function this.IsOuterBaseCp(cpId) --CALLER: From a few events/moments in mission scripts --See also UpdateRouteSet function this.ChangeRouteSets(routeSets,unk2) --REF info --{ -- cpName="afgh_field_cp", -- soldierList={ "sol_vip_0000", }, function this.InitialRouteSetGroup(info) --CALLER: s10150_enemy function this.RegisterHoldTime(cpName,holdTime) function this.ChangeHoldTime(cpName,holdTime) --CALLER: none function this.RegisterSleepTime(cpName,sleepTime) --CALLER: none function this.ChangeSleepTime(cpName,sleepTime) --CALLERS: some story missions --(sic) function this.NoShifhtChangeGruopSetting(cpName,groupName) --missionTable.enemy.combatSetting function this.RegisterCombatSetting(combatSetting) local function MergeTables(t1,t2) function this.SetEnable(soldierId) function this.SetDisable(soldierId,noAssignRoute) function this.SetEnableRestrictNotice(soldierId) function this.SetDisableRestrictNotice(soldierId) function this.RealizeParasiteSquad() function this.UnRealizeParasiteSquad() function this.OnAllocate(missionTable) function this.DeclareSVars(missionTable) function this.ResetSoldier2CommonBlockPackageLabel() function this.RegisterSoldier2CommonMotionPackagePath(packageLabel) function this.IsRequiredToLoadSpecialSolider2CommonBlock() function this.IsRequiredToLoadDefaultSoldier2CommonPackage() function this.IsLoadedDefaultSoldier2CommonPackage() function this.LoadSoldier2CommonBlock() function this.UnloadSoldier2CommonBlock() function this.SetMaxSoldierStateCount(maxStateCount) function this.SetMaxHeliStateCount(maxStateCount)--tex> function this.SetMaxWalkerGearStateCount(maxStateCount)--tex> function this.SetMaxUAVStateCount(maxStateCount)--tex> --< function this.RestoreOnMissionStart2() function this.RestoreOnContinueFromCheckPoint2() function this.RestoreOnContinueFromCheckPoint() function this.RestoreOnMissionStart() function this.StoreSVars(_markerOnly) function this.PreMissionLoad(missionCode,currentMissionCode) function this.InitializeHostage2() function this.Init(missionTable) function this.RegistCommonRoutePointMessage() function this.OnReload(missionTable) function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) --IN: missionTable.enemy.soldierDefine function this.DefineSoldiers(soldierDefine) --CALLER: TppMain.OnInitialize function this.SetUpSoldiers() function this.AssignSoldiersToCP() --NMC: don't actually know what cp groups are used for function this.InitCpGroups() function this.RegistCpGroups(cpGroups) function this.SetCommonCpGroups() function this.SetCpGroups() --IN: missionTable.enemy.vehicleSettings ORPHANED: VERIFY: function this.RegistVehicleSettings(vehicleSettings) --NMC vehicleSpawnList = *_enemy.lua .VEHICLE_SPAWN_LIST function this.SpawnVehicles(vehicleSpawnList) function this.SpawnVehicle(spawnInfo) function this.RespawnVehicle(spawnInfo) function this.DespawnVehicles(despawnList) function this.DespawnVehicle(spawnInfo) --ORPHANED function this.SetUpVehicles() function this.AddCpIntelTrapTable(cpName) function this.GetCpIntelTrapTable() --CALLER: RouteSelector function this.GetCurrentRouteSetType(routeTypeStr32,phase,cpId) --CALLER: RouteSelector (though there's a Fox.Log warning in mtbs_enemy.GetRouteSetPriority mentioning it(via ene_funcRouteSetPriority -v-)) --routeSet: routeSet for cp (mvars.ene_routeSets[cpId]) --routeSetsPriorities: mvars.ene_routeSetsPriority --returns a list of routes by adding a route for each group in priority order till all routes are added function this.GetPrioritizedRouteTable(cpId,routeGroupsForRouteType,routeSetsPriority,routeSetTagOrGroupS32) --NMC called from engine with different cpids. Set up in SetUpCommandPost. Seems like it initially called right then. DEBUGNOW then at what other points? --see mvars.ene_routeSets, which is a transformed _enemy.routeSets and mvars.ene_routeSetsPriority for the main drivers of these functions --and RegisterRouteSet, ChangeRouteSets --the params are a mess because kjp tried to jam a lot of different concerns into them function this.RouteSelector(cpId,tagOrRouteTypeS32,tagOrSysPhaseOrGroup32) --DEBUGNOW tex REWORKED UNUSED function this.RouteSelectorNEW(cpId,routeTypeTagStr32,routeSetTagStr32) this.STR32_CAN_USE_SEARCH_LIGHT=StrCode32"CanUseSearchLight" this.STR32_CAN_NOT_USE_SEARCH_LIGHT=StrCode32"CanNotUseSearchLight" this.STR32_IS_GIMMICK_BROKEN=StrCode32"IsGimmickBroken" this.STR32_IS_NOT_GIMMICK_BROKEN=StrCode32"IsNotGimmickBroken" function this.SetUpSwitchRouteFunc() --NMC called from engine (when?) (set up in SetUpSwitchRouteFunc, right there -^-) --unk4 function this.SwitchRouteFunc(soldierId,gimmickStateS32,gimmickName,routeS32,unk5) function this.SetUpCommandPost() function this.RegisterRouteAnimation() --CALLERS: RegisterRouteSet, ChangeRouteSets --IN/SIDE: mvars.loc_locationCommonRouteSet --OUT/SIDE mvars.ene_routeSetsDefine --GOTCHA: isn't a pure merge, some aspects of the merging routeset will override the current function this.MergeRouteSetDefine(routeSets) local function MergeRouteSets(cpName,routeSet) --CALLER: RegisterRouteSet, ChangeRouteSets --routeSets = mvars.ene_routeSetsDefine, some mission alternate routeset --see afgh_routeSets - afgh_citadel_cp for example of commented routeSet --SIDE/IN: ene_noShiftChangeGroupSetting function this.UpdateRouteSet(routeSets) --CALLER: TppMain.OnInitialize,TppMain.OnReload --routeSets=missionTable.enemy.routeSets function this.RegisterRouteSet(routeSets) --CALLER: MakeShiftChangeTable function this._InsertShiftChangeUnit(cpId,insertPos,shiftChangeUnit) --CALLER: _MakeShiftChangeUnit function this._GetShiftChangeRouteGroup(priorityGroupsS32,numPriorities,priorityIndex,hold,sleep,groupNameStr32,isSleep,fixedShiftChangeRouteSet) --Creates a shiftchangeunit that's used by _InsertShiftChangeUnit to transform-insert into mvars.ene_shiftChangeTable --CALLER: MakeShiftChangeTable while iterating over priorityGroupsS32, and passing in priorityIndex function this._MakeShiftChangeUnit(cpId,priorityGroupsS32,groupNameStr32,hold,isSleep,sleep,isMidnight,numPriorities,priorityIndex,insertPos,fixedShiftChangeRouteSet) --makes ene_shiftChangeTable based on routeset .hold and .sleep (see _MakeShiftChangeUnit -^-) --USER: ShiftChangeByTime (mvars.ene_shiftChangeTable) --IN/SIDE: mvars.ene_routeSetsPriority, mvars.ene_routeSets --OUT/SIDE: mvars.ene_shiftChangeTable function this.MakeShiftChangeTable() --CALLER: Clock msgs ShiftChangeAtNight etc function this.ShiftChangeByTime(shiftName) local function CloserToPlayerThanDistSqr(checkDistSqr,playerPosition,gameId) --={ --=bool --... function this.MakeCpLinkDefineTable(lrrpNumberDefine,cpLinkMatrix) --OUT: mvars.ene_travelPlans, mvars.ene_reinforcePlans function this.MakeReinforceTravelPlan(lrrpNumberDefine,cpLinkDefine,locationName,toCp,fromCps) function this.MakeTravelPlanTable(lrrpNumberDefine,cpLinkDefine,locationName,planName,cpPlans,holdTime) function this.AddLinkedBaseTravelCourse(lrrpNumberDefine,cpLinkDefine,locationName,holdTime,travelPlan,fromPlanDef,toPlanDef,isOneWay) function this.GetFormattedLrrpCpNameByLrrpNum(lrrpNumFromCp,lrrpNumToCp,locationName,lrrpNumberDefine) function this.GetFormattedLrrpCpName(toCp,fromCp,locationName,lrrpNumberDefine) function this.AddTravelCourse(travelPlan,plan,isOneWay) --REF travelPlans --={ -- travelArea1_02 = { -- { cp="afgh_21_28_lrrp", routeGroup={ "travel", "lrrp_28to21" }, }, function this.SetTravelPlans(travelPlans)--missionTable.enemy.travelPlans function this.RegistHoldBrokenState(vehicleName) function this.AddBrokenStateList(vehicleName) function this._OnHeliBroken(gameId,state) function this._OnVehicleBroken(vehicleId,state) function this._OnWalkerGearBroken(walkerId,state) function this.SetVehicleBroken(vehicleId) function this.IsVehicleBroken(vehicleNameOrId) function this.IsVehicleAlive(vehicleNameOrId) function this.PlayTargetRescuedRadio(gameId) function this.PlayTargetEliminatedRadio(gameId) function this.RegistHoldRecoveredState(name) function this.AddRecoveredStateList(name) function this.SetRecovered(gameId) function this.ExecuteOnRecoveredCallback(gameId,gimmickInstanceOrAnimalId,gimmickDataSet,staffOrResourceId,RENsomeBool,RENpossiblyNotHelicopter,playerIndex) function this.CheckAllVipClear(unk1) function this.CheckAllTargetClear(unk1) function this.CheckSoldierEliminateTarget(gameId,playerPosition,targetName) function this.CheckHelicopterEliminateTarget(heliId,playerPosition,targetName) function this.CheckVehicleEliminateTarget(vehicleId,playerPosition,targetName) function this.CheckWalkerGearEliminateTarget(walkerId,playerPosition,targetName) function this.CheckRescueTarget(gameId,playerPosition,targetName) function this.FultonRecoverOnMissionGameEnd() function this.AutoFultonRecoverNeutralizedTarget(gameId,isHeli) --NMC no references function this.CheckQuestTargetOnOutOfActiveArea(targetList) --NMC no references function this.ChangeRouteUsingGimmick(route,unkP2,gameId,unkP3) --No references function this.DisableUseGimmickRouteOnShiftChange(gameObjectId,routeList) function this.IsEliminateTarget(gameId) function this.IsRescueTarget(gameId) function this.IsChildTarget(gameId) function this.IsChildHostage(gameId) function this.IsFemaleHostage(gameId) --NMC: No references function this.AddTakingOverHostage(gameId) function this._AddTakingOverHostage(hostageId) --NMC: No references function this.IsNeedHostageTakingOver(missionCode) --NMC: No references function this.ResetTakingOverHostageInfo() --NMC: No references function this.SpawnTakingOverHostage(takingOverHostageList) function this._SpawnTakingOverHostage(index,hostageName) --NMC: No references function this.SetIgnoreTakingOverHostage(takingOverHostageList) function this.SetIgnoreDisableNpc(npcId,enable) --REF: NpcEntrypointsetting -- [Fox.StrCode32"lz_drp_swamp_I0000|rt_drp_swamp_I_0000"]={ -- [EntryBuddyType.VEHICLE]={Vector3(6.412,-5.952,294.757),TppMath.DegreeToRadian(-153.76)}, -- [EntryBuddyType.BUDDY]={Vector3(2.113,-5.436,299.302),-153.76}} function this.NPCEntryPointSetting(settings) function this.SetupQuestEnemy() --CALLER: mtbs_enemy.OnAllocateDemoBlock function this.OnAllocateQuest(body,face,setHostage) local function SetAndConvertExtendFova(body,face) --CALLER: quest script OnAllocate function this.OnAllocateQuestFova(questTable) function this.OnActivateQuest(questTable) --targetList = quest lua quest table .targetList function this.SetupActivateQuestTarget(targetList) function this.SetupActivateQuestVehicle(vehicleList,targetList) function this.SetupActivateQuestHeli(heliList) --cpList = quest lua QUEST_TABLE .cpList function this.SetupActivateQuestCp(cpList) --tex broken out from SetupActivateQuestEnemy --IN/OUT loadedFaceIndex local function SetupEnemyDef(enemyDef,disable,loadedFaceIndex) --enemyList= from .lua .QUEST_TABLE.enemyList function this.SetupActivateQuestEnemy(enemyList) function this.SetupActivateQuestHostage(hostageList) --tex> function this.SetupActivateQuestUav(uavList) --< function this.OnDeactivateQuest(questTable) function this.SetupDeactivateQuestVehicle(vehicleList) function this.SetupDeactivateQuestQuestHeli(heliList) function this.SetupDeactivateQuestCp(cpList) function this.SetupDeactivateQuestEnemy(enemyList) function this.SetupDeactivateQuestHostage(hostageList) --tex> function this.SetupDeactivateQuestUav(uavList) --< function this.OnTerminateQuest(questTable) function this.SetupTerminateQuestVehicle(vehicleList) function this.SetupTerminateQuestHeli(heliList) function this.SetupTerminateQuestCp(cpList) function this.SetupTerminateQuestEnemy(enemyList) local function SetupEnemy(setupInfo,RENAMEsomeBool) function this.SetupTerminateQuestHostage(hostageList) function this.CheckQuestDistance(gameId) function this.CheckQuestNpcLifeStatus(gameId) function this.IsQuestInHelicopter() function this.IsQuestInHelicopterGameObjectId(heliId) function this.IsQuestTarget(gameId) function this.IsQuestNpc(npcId) function this.GetQuestCount() function this.SetQuestEnemy(gameObjectId,isTarget) function this.CheckDeactiveQuestAreaForceFulton() --NMC Called from quest script on various elimination msgs, or on quest deactivate --cant see any calls using param5 function this.CheckQuestAllTarget(questType,messageId,gameId,questDeactivate,_ignoreOnUpdate) function this.ReserveQuestHeli() function this.UnreserveQuestHeli() function this.LoadQuestHeli(colorType) function this.UnloadQuestHeli() function this.ActivateQuestHeli(colorType) function this.DeactivateQuestHeli() function this.IsQuestHeli() function this.GetDDSuit() function this.IsHostageEventFOB() function this.IsZombieEventFOB()--RETAILPATCH 1070> function this.IsParasiteMetalEventFOB() function this.IsSpecialEventFOB() --< function this._OnDead(gameId,attackerId) function this._OnRecoverNPC(gameId,staffOrResourceId) function this._PlayRecoverNPCRadio(gameId) function this._OnFulton(gameId,gimmickInstanceOrAnimalId,gimmickDataSet,staffOrResourceId) function this._OnDamage(gameId,attackId,attackerId) function this._OnDamageOfRescueTarget(attackId,attackerId) function this._PlacedIntoVehicle(gameId,vehicleId,arg2)--arg2 doesn't seem to be used anywhere function this._RideHelicopterWithHuman(playerId,gameObjectId,arg2)--s10070_sequence calls it arg2 so they got no clue either this.cpSubTypeToLangId= { ... } this.announceForPhase= { ... } --< --tex REWORKED --via msg ChangePhaseForAnnounce, not called on _ob / outer bases? function this._AnnouncePhaseChange(cpId,phase) --ORIG --function this._AnnouncePhaseChange(cpId,phase) -- local cpSubType=this.GetCpSubType(cpId) -- local langId="cmmn_ene_soviet" function this._IsGameObjectIDValid(e) --NMC no references function this._IsRouteSetTypeValid(routeSetType) --NMC no references function this._ShiftChangeByTime(shiftName) function this._IsEliminated(lifeStatus,npcState) function this._IsNeutralized(lifeStatus,npcState) function this._RestoreOnContinueFromCheckPoint_Hostage() function this._RestoreOnContinueFromCheckPoint_Hostage2() function this._RestoreOnMissionStart_Hostage() function this._RestoreOnMissionStart_Hostage2() function this._StoreSVars_Hostage(markerOnly) function this._DoRoutePointMessage(arg2,arg1,arg0,arg3) function this.ExecuteRoutePointMessage(messages,arg2,arg1,arg0,arg3,strLogText) ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppException.lua` ```lua this.MGO_INVITATION_CANCEL_POPUP_ID=5010 this.CLOSE_INIVITATION_CANCEL_POPUP_INTERVAL=1.5 this.PROCESS_STATE=Tpp.Enum{ this.TYPE=Tpp.Enum{ this.GAME_MODE=Tpp.Enum{ this.OnEndExceptionDialog={} this.mgoInvitationUpdateCount=0 function this.IsDisabledMgoInChinaKorea() this.SHOW_EXECPTION_DIALOG= { ... } function this.NoProcessOnEndExceptionDialog() function this.OnEndExceptionDialogForSignInUserChange() function this.UpdateMgoInvitationAccept() function this.OnEndExceptionDialogForMgoInvitationAccept() function this.OnEndExceptionDialogForPatchDlcCheck() function this.CheckMgoChunkInstallation() function this.GoToMgoByInivitaion() function this.UpdateMgoChunkInstallingPopup() function this.OnEndExceptionDialogForPatchDlcError() function this.UpdateMgoPatchDlcCheckingPopup() function this.OnEndExceptionDialogForInvitationAcceptFromOther() function this.OnEndExceptionDialogForInvitationAcceptWithoutSignIn() function this.OnEndExceptionDialogForCheckMgoChunkInstallation() function this.CancelMgoInvitation() function this.ForbidFobExceptionHandling() function this.PermitFobExceptionHandling() function this.SuspendFobExceptionHandling() function this.FobMissionEndOnException() this.POPUP_CLOSE_CHECK_FUNC= { ... } this.TPP_ON_END_EXECPTION_DIALOG= { ... } this.TPP_FOB_ON_END_EXECPTION_DIALOG= { ... } function this.RegisterOnEndExceptionDialog(gameModeType,exceptionFuncList) function this.GetCurrentGameMode() function this.Enqueue(exceptionType,gameModeType) function this.Dequeue(depth) function this.HasQueue(queue,gameMode) function this.StartProcess(exceptionType,gameMode) function this.FinishProcess() function this.EnablePause() function this.DisablePause() this.currentErrorPopupLangId=nil function this.Update() function this.ShowPopup(popupType) function this.OnAllocate(missionTable) function this.OnReload(missionTable) function this.Messages() function this.OnInvitationAccept() function this.OnDisconnectFromPsn() function this.OnDisconnectFromKonami() function this.OnDisconnectFromNetwork() function this.OnSessionDisconnectFromHost() function this.SignInUserChanged() function this.OnInvitationAcceptByOther() function this.OnInvitationAcceptWithoutSignIn() function this.OnDlcStatusChanged() function exceptionMessageHandler.Update() function exceptionMessageHandler:OnMessage(sender,messageId,arg0,arg1,arg2,arg3) ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppFreeHeliRadio.lua` ```lua this.DAY_TIME=3 this.NIGHT_TIME=19 this.DAY_TO_NIGHT=string.format("%d:00:00",this.NIGHT_TIME) this.NIGHT_TO_DAY=string.format("%d:00:00",this.DAY_TIME) this.isPlayBreefing=false this.ON_ENTER_RESULT= { ... } this.PANDEMIC_RADIO= { ... } function this.DeclareSVars() function this.Messages() function this._OnReload() function this.OnReload() function this.SetupMessages() function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this.OnEnter() function this.Init() function this.OnLeave() function this.RegistNvgOptionRadio() function this.UnregistNvgOptionRadio() function this.RegistAnimalOptionalRadio(animalTypeStr) function this.UnregistAnimalOptionalRadio() function this.OnEnterCpIntelTrap(cpName) function this.OnExitCpIntelTrap(cpName) function this.TryPandemicStart() function this.UpdatePandemicEvent(finalEvent,arg1) function this._RegistClock() function this._PlayRadio(radioGroup) function this._RegisterOptionRadio(radioName) function this._UnregisterOptionRadio(radioName,radioGroupIndex) function this._IsRegistOptionRadio(radioName) function this._IsTimeOfDay() ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppGVars.lua` ```lua this.DeclareGVarsTable= { ... } --CALLER: TppVarInit.ClearAllVarsAndSlot function this.AllInitialize() ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppGeneInter.lua` ```lua --ORPHAN local DEBUG_StrCode32ToString=Tpp.DEBUG_StrCode32ToString function this._EnableMarkerIcon(markerName,radius,langId) function this.EnableMarker(markerName,radius,langId) function this.EnableMarkerGimmick(gimmickName) function this.InterCall_enqt1000_1a1110(soldier2GameObjectId, cpID, interName) function this.InterCall_enqt1000_1a1010(soldier2GameObjectId, cpID, interName) function this.InterCall_cliffTown_001(soldier2GameObjectId, cpID, interName) function this.InterCall_tent_001(soldier2GameObjectId, cpID, interName) function this.InterCall_waterWay_001(soldier2GameObjectId, cpID, interName) function this.debug_geneInter_powerPlant_001(soldier2GameObjectId, cpID, interName) function this.InterCall_sovietBase_001(soldier2GameObjectId, cpID, interName) function this.InterCall_remnants_001(soldier2GameObjectId, cpID, interName) function this.InterCall_field_001(soldier2GameObjectId, cpID, interName) function this.InterCall_field_002(soldier2GameObjectId, cpID, interName) function this.InterCall_field_003(soldier2GameObjectId, cpID, interName) function this.InterCall_field_004(soldier2GameObjectId, cpID, interName) function this.InterCall_field_005(soldier2GameObjectId, cpID, interName) function this.InterCall_field_006(soldier2GameObjectId, cpID, interName) function this.InterCall_field_007(soldier2GameObjectId, cpID, interName) function this.InterCall_field_008(soldier2GameObjectId, cpID, interName) function this.InterCall_field_009(soldier2GameObjectId, cpID, interName) function this.InterCall_citadel_001(soldier2GameObjectId, cpID, interName) function this.InterCall_fort_001(soldier2GameObjectId, cpID, interName) function this.InterCall_village_001(soldier2GameObjectId, cpID, interName) function this.InterCall_village_002(soldier2GameObjectId, cpID, interName) function this.InterCall_village_003(soldier2GameObjectId, cpID, interName) function this.InterCall_village_004(soldier2GameObjectId, cpID, interName) function this.InterCall_village_005(soldier2GameObjectId, cpID, interName) function this.InterCall_village_006(soldier2GameObjectId, cpID, interName) function this.InterCall_village_007(soldier2GameObjectId, cpID, interName) function this.InterCall_village_008(soldier2GameObjectId, cpID, interName) function this.InterCall_village_009(soldier2GameObjectId, cpID, interName) function this.InterCall_village_010(soldier2GameObjectId, cpID, interName) function this.InterCall_village_011(soldier2GameObjectId, cpID, interName) function this.InterCall_village_012(soldier2GameObjectId, cpID, interName) function this.InterCall_village_013(soldier2GameObjectId, cpID, interName) function this.InterCall_bridge_001(soldier2GameObjectId, cpID, interName) function this.InterCall_commFacility_001(soldier2GameObjectId, cpID, interName) function this.InterCall_commFacility_002(soldier2GameObjectId, cpID, interName) function this.InterCall_commFacility_003(soldier2GameObjectId, cpID, interName) function this.InterCall_commFacility_004(soldier2GameObjectId, cpID, interName) function this.InterCall_commFacility_005(soldier2GameObjectId, cpID, interName) function this.InterCall_commFacility_006(soldier2GameObjectId, cpID, interName) function this.InterCall_commFacility_007(soldier2GameObjectId, cpID, interName) function this.InterCall_commFacility_008(soldier2GameObjectId, cpID, interName) function this.InterCall_commFacility_009(soldier2GameObjectId, cpID, interName) function this.InterCall_commFacility_010(soldier2GameObjectId, cpID, interName) function this.InterCall_slopedTown_001(soldier2GameObjectId, cpID, interName) function this.InterCall_slopedTown_002(soldier2GameObjectId, cpID, interName) function this.InterCall_slopedTown_003(soldier2GameObjectId, cpID, interName) function this.InterCall_slopedTown_004(soldier2GameObjectId, cpID, interName) function this.InterCall_slopedTown_005(soldier2GameObjectId, cpID, interName) function this.InterCall_slopedTown_006(soldier2GameObjectId, cpID, interName) function this.InterCall_slopedTown_007(soldier2GameObjectId, cpID, interName) function this.InterCall_slopedTown_008(soldier2GameObjectId, cpID, interName) function this.InterCall_slopedTown_009(soldier2GameObjectId, cpID, interName) function this.InterCall_slopedTown_010(soldier2GameObjectId, cpID, interName) function this.InterCall_slopedTown_011(soldier2GameObjectId, cpID, interName) function this.InterCall_slopedTown_012(soldier2GameObjectId, cpID, interName) function this.InterCall_slopedTown_013(soldier2GameObjectId, cpID, interName) function this.InterCall_slopedTown_014(soldier2GameObjectId, cpID, interName) function this.InterCall_enemyBase_001(soldier2GameObjectId, cpID, interName) function this.InterCall_enemyBase_002(soldier2GameObjectId, cpID, interName) function this.InterCall_enemyBase_003(soldier2GameObjectId, cpID, interName) function this.InterCall_enemyBase_004(soldier2GameObjectId, cpID, interName) function this.InterCall_enemyBase_005(soldier2GameObjectId, cpID, interName) function this.InterCall_enemyBase_006(soldier2GameObjectId, cpID, interName) function this.InterCall_enemyBase_007(soldier2GameObjectId, cpID, interName) function this.InterCall_enemyBase_008(soldier2GameObjectId, cpID, interName) function this.InterCall_enemyBase_009(soldier2GameObjectId, cpID, interName) function this.InterCall_enemyBase_010(soldier2GameObjectId, cpID, interName) function this.InterCall_enemyBase_011(soldier2GameObjectId, cpID, interName) function this.InterCall_fieldEast_001(soldier2GameObjectId, cpID, interName) function this.InterCall_fieldEast_002(soldier2GameObjectId, cpID, interName) function this.InterCall_fieldWest_001(soldier2GameObjectId, cpID, interName) function this.InterCall_fieldWest_002(soldier2GameObjectId, cpID, interName) function this.InterCall_remnantsNorth_001(soldier2GameObjectId, cpID, interName) function this.InterCall_remnantsNorth_002(soldier2GameObjectId, cpID, interName) function this.InterCall_tentEast_001(soldier2GameObjectId, cpID, interName) function this.InterCall_tentEast_002(soldier2GameObjectId, cpID, interName) function this.InterCall_commWest_001(soldier2GameObjectId, cpID, interName) function this.InterCall_commWest_002(soldier2GameObjectId, cpID, interName) function this.InterCall_villageEast_001(soldier2GameObjectId, cpID, interName) function this.InterCall_villageEast_002(soldier2GameObjectId, cpID, interName) function this.InterCall_villageNorth_001(soldier2GameObjectId, cpID, interName) function this.InterCall_villageNorth_002(soldier2GameObjectId, cpID, interName) function this.InterCall_villageWest_001(soldier2GameObjectId, cpID, interName) function this.InterCall_villageWest_002(soldier2GameObjectId, cpID, interName) function this.InterCall_ruinsNorth_001(soldier2GameObjectId, cpID, interName) function this.InterCall_ruinsNorth_002(soldier2GameObjectId, cpID, interName) function this.InterCall_bridgeNorth_001(soldier2GameObjectId, cpID, interName) function this.InterCall_bridgeWest_001(soldier2GameObjectId, cpID, interName) function this.InterCall_cliffEast_001(soldier2GameObjectId, cpID, interName) function this.InterCall_cliffSouth_001(soldier2GameObjectId, cpID, interName) function this.InterCall_cliffWest_001(soldier2GameObjectId, cpID, interName) function this.InterCall_enemyNorth_001(soldier2GameObjectId, cpID, interName) function this.InterCall_fortSouth_001(soldier2GameObjectId, cpID, interName) function this.InterCall_fortWest_001(soldier2GameObjectId, cpID, interName) function this.InterCall_slopedEast_001(soldier2GameObjectId, cpID, interName) function this.InterCall_slopedWest_001(soldier2GameObjectId, cpID, interName) function this.InterCall_slopedWest_002(soldier2GameObjectId, cpID, interName) function this.InterCall_plantSouth_001(soldier2GameObjectId, cpID, interName) function this.InterCall_plantWest_001(soldier2GameObjectId, cpID, interName) function this.InterCall_sovietSouth_001(soldier2GameObjectId, cpID, interName) function this.InterCall_waterwayEast_001(soldier2GameObjectId, cpID, interName) function this.InterCall_outland_001(soldier2GameObjectId, cpID, interName) function this.InterCall_flowStation_001(soldier2GameObjectId, cpID, interName) function this.InterCall_swamp_001(soldier2GameObjectId, cpID, interName) function this.InterCall_pfCamp_001(soldier2GameObjectId, cpID, interName) function this.InterCall_savannah_001(soldier2GameObjectId, cpID, interName) function this.InterCall_banana_001(soldier2GameObjectId, cpID, interName) function this.InterCall_diamond_001(soldier2GameObjectId, cpID, interName) function this.InterCall_diamondRiver_001(soldier2GameObjectId, cpID, interName) function this.InterCall_hill_001(soldier2GameObjectId, cpID, interName) function this.InterCall_factory_001(soldier2GameObjectId, cpID, interName) function this.InterCall_lab_001(soldier2GameObjectId, cpID, interName) this.geneInter= { ... } ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppGimmick.lua` ```lua this.MissionCollectionTable= { ... } this.MissionCollectionMissionTaskTable= { ... } this.GIMMICK_TYPE= { ... } this.COLLECTION_REPOP_COUNT_DECREMENT_TABLE= { ... } function this.Messages() function this.IsBroken(isBrokenParams) function this.ResetGimmick(resetParams) function this.EnableMarkerGimmick(gimmickId) function this.OnAllocate(missionTable) function this.Init(missionTable) function this.RepopMissionTaskCollection() function this.OnReload() function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this.OnMissionGameStart() function this.DecrementCollectionRepopCount() function this.MafrRiverPrimSetting() function this.SetMafrRiverPrimVisibility(enable) --_gimmick.gimmickIdentifierParamTable or mvars.mbItem_funcGetGimmickIdentifierTable --mtbs is {[clusterId]={gimmickInfo,...}} --afgh/mafr {gimmickInfo,...} --REF gimmickInfo function this.SetUpIdentifierTable(identifierTable) --afgh_gimmick.gimmickBreakConnectTable / mafr_... --REF {swamp_antn001 = "swamp_mchn001",...} function this.SetUpBreakConnectTable(gimmickBreakConnectTable) --afgh_gimmick.checkBrokenAndBreakConnectTable / mafr_... function this.SetUpCheckBrokenAndBreakConnectTable(checkBrokenAndBreakConnectTable) function this._SetUpCheckBrokenAndBreakConnectTable(gimmickId,gimmickInfo) --NMC cant see any references to this function this.SetUpUseGimmickRouteTable(routeGimmickConnectTable) function this.GetRouteConnectedGimmickId(route) --ConnectLandingZoneTable function this.SetUpConnectLandingZoneTable(connectLZTable) function this.SetUpConnectPowerCutTable(powerCutTable) function this.SetUpConnectVisibilityTable(connectVisibilityTable) function this.SetCommunicateGimmick(gimmickCpConnectTable) --NMC on GameObject SwitBreakGimmickchGimmick msg function this.BreakGimmick(gameId,locatorNameHash,dataSetNameHash,attackerId) --NMC returns gimmickIdentifierParamTable identifier, see SetUpIdentifierTable function this.GetGimmickID(gameId,locatorNameHash,dataSetNameHash) function this.GetGameObjectId(gimmickId) function this.BreakConnectedGimmick(gimmickName) function this.CheckBrokenAndBreakConnectedGimmick(gimmickId) function this.HideAsset(gimmickName) function this.Show(gimmickId) function this.Hide(gimmickId) function this.SetVisibility(gimmickId,setInvisible) function this.UnlockLandingZone(gimmickId) function this.ShowAnnounceLog(gimmickId) function this._ShowCommCutOffAnnounceLog(gimmickName) --NMC on GameObject SwitchGimmick msg function this.SwitchGimmick(gameId,locatorNameHash,dataSetNameHash,switchFlag) function this.PowerCut(gimmickId,powerCutOn,attackedByNull) function this.SetHeroicAndOrgPoint(gimmickId,gameObjectId) function this.EnableCollectionTable(collectionNames,enable,force) local function IsGotKeyItem(locator) function this.DEBUG_DumpIdentiferParam(n,e) function this.InitQuest() function this.OnAllocateQuest(questTable) function this.OnActivateQuest(questTable) function this.OnDeactivateQuest(questTable) function this.OnTerminateQuest(questTable) --NMC: gimmickIdentifier = gameId, or collectionUniqueId or function this.CheckQuestAllTarget(questType,gimmickIdentifier,targetPracticeTimeOut) function this.IsQuestTarget(checkId) function this.SetQuestInvisibleGimmick(questMarkSetIndex,setInvisible,skipCheck) function this.SetQuestSootingTargetInvincible(setInvincible)--GOTCHA: invinvible not invisible --NMC no references function this.IsQuestStartSwitchGimmick(locatorS32) function this.StartQuestShootingPractice() function this.SetQuestShootingPracticeTargetInvisible() function this.EndQuestShootingPractice(questClearType) function this.IsStartQuestShootingPractice() function this.GetQuestShootingPracticeCount() function this.SetUpMineQuest(questmineTotalCount) function this.OnTerminateMineQuest() function this.CheckQuestPlaced(mineEquipId,index) function this.CheckQuestMine(mineEquipId,index) ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppHelicopter.lua` ```lua function this.GetSupportHeliGameObjectId() function this.SetNoSupportHelicopter() function this.UnsetNoSupportHelicopter() function this.ForceCallToLandingZone(lzDef) function this.CallToLandingZone(lzDef) function this.SetEnableLandingZone(lzDef) function this.SetDisableLandingZone(lzDef) function this.GetLandingZoneExists(lzDef) function this.SetNewestPassengerTable() function this.GetPassengerlist() function this.ClearPassengerTable() function this.IsInHelicopter(passengerId) function this.ForcePullOut() function this.AdjustBuddyDropPoint() function this.Init(missionTable) function this.SetDefaultTakeOffTime() function this.SetNoTakeOffTime() function this.SetRouteToHelicopterOnStartMission() function this.ResetMissionStartHelicopterRoute() function this.GetMissionStartHelicopterRoute() function this.GetEnemyColoringPack(heliColoringType) function this.SetEnemyColoring(heliColoringType) ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppHero.lua` ```lua this.MISSION_ABORT= { ... } this.MISSION_CLEAR= { ... } this.ALL_MISSION_CLEAR= { ... } this.ALL_MISSION_S_RANK_CLEAR= { ... } this.QUEST_CLEAR= { ... } this.QUEST_ALL_CLEAR= { ... } this.MINE_QUEST_ALL_CLEAR= { ... } this.ENEMY_HOLD_UP= { ... } this.ENEMY_INTERROGATE= { ... } this.PLAYER_ON_INJURY= { ... } this.PLAYER_DEAD= { ... } this.STARTED_COMBAT= { ... } this.FULTON_DYING_ENEMY= { ... } this.FULTON_HOSTAGE= { ... } this.FULTON_PARASITE= { ... } this.ON_HELI_DYING_ENEMY= { ... } this.ON_HELI_HOSTAGE= { ... } this.ON_HELI_LIQUID= { ... } this.FIRE_KILL_SOLDIER= { ... } this.FIRE_KILL_SOLDIER_FOB_SNEAK= { ... } this.KILL_SOLDIER= { ... } this.KILL_SOLDIER_FOB_SNEAK= { ... } this.KILL_HOSTAGE= { ... } this.FIRE_KILL_HOSTAGE= { ... } this.FIRE_KILL_DD_HOSTAGE= { ... } this.FIRE_KILL_DD_SOLDIER= { ... } this.KILL_DD_SOLDIER= { ... } this.KILL_DD_HOSTAGE= { ... } this.DEAD_HOSTAGE= { ... } this.DEAD_DD_SOLDIER= { ... } this.DYING_SOLDIER= { ... } this.RECOVERED_SOLDIER= { ... } this.VEHICLE_BROKEN= { ... } this.BREAK_GIMMICK= { ... } this.BREAK_GIMMICK_BY_TYPE= { ... } this.SUPPORT_HELI_LOST_CONTROLE= { ... } this.BREAK_SUPPORT_HELI= { ... } this.ENEMY_HELI_LOST_CONTROLE= { ... } this.ON_ANNIHILATE_BASE= { ... } this.ON_ANNIHILATE_OUTER_BASE= { ... } this.CONSTRUCT_FIRST_FOB= { ... } this.CONSTRUCT_SECOND_FOB= { ... } this.CONSTRUCT_THIRD_FOB= { ... } this.CONSTRUCT_FOURTH_FOB= { ... } this.HORSE_RIDED= { ... } this.BREAK_MINE= { ... } this.BREAK_DECOY= { ... } this.PICK_UP_MINE= { ... } this.BREAK_SECURITY_CAMERA= { ... } this.BREAK_SECURITY_UAV= { ... } this.DYING_PARASITE= { ... } this.NuclearAbolition= { ... } this.STARTED_COMBAT_ON_FOB= { ... } this.STARTED_COMBAT_ON_FOB_HERO= { ... } this.DISCOVER_ATTACKER= { ... } this.OFFENCE_WIN_ON_FOB= { ... } this.OFFENCE_LOSE_ON_FOB= { ... } this.DEFENCE_WIN_ELIMINATE= { ... } this.DEFENCE_WIN_ABORT= { ... } this.DEFENCE_LOSE= { ... } this.DEFENCE_FULTON_OFFENCE= { ... } this.OFFENCE_FULTONED_BY_DEFENCE= { ... } this.RETAKE_STAFF_FROM_FOB= { ... } this.KILLED_PLAYER= { ... } this.OFFENCE_WIN_ON_FOB_FOR_FRIEND= { ... } this.DEFENCE_WIN_FOR_FRIEND= { ... } this.BREAK_PTW_MACHINEGUN= { ... } this.BREAK_PTW_MORTAR= { ... } this.BREAK_PTW_ANTIAIR= { ... } this.FULTON_SUPPORTER_CONTAINER= { ... } this.NOTICE_CRIME= { ... } this.KILLED_DDS= { ... } this.FOB_ABORT_BY_MENU= { ... } function this.IsHero() function this.AddTargetLifesavingHeroicPoint(isChild,recoveredByHeli) function this.OnFultonSoldier(gameId,recoveredByHeli) function this.OnFultonHostage(gameId,recoveredByHeli) --No refs? function this.OnFultonEli(gameObjectId,recoveredByHeli) function this.GetFobServerParameter(pointsOrParamName) function this.SetHeroicPoint(pointsOrParamName) function this.SetOgrePoint(ogrePoint) function this.GetMissionOgrePoint() function this.AnnounceHeroicPoint(pointTable,downLangId,upLangId) function this.SetAndAnnounceHeroicOgrePoint(pointTable,downLangId,upLangId) function this.AnnounceMissionAbort() function this.MissionAbort() function this.MissionClear(rank) function this.SetFirstMissionClearHeroPoint() function this.AnnounceFirstMissionClearHeroPoint() function this.AnnounceVehicleBroken(vehicleId) function this.AnnounceBreakGimmick(gimmickId,locatorS32,unk2,destroyerId) function this.AnnounceBreakGimmickByGimmickType(gimmickType) function this.OnHelicopterLostControl(gameId,attackerId) function this.SetAndAnnounceHeroicOgrePointForAnnihilateCp(hAndOPoints,isBase) function this.SetAndAnnounceHeroicOgrePointForQuestClear(rank) function this.HorseRided(playerIndex) function this.OnBreakPlaced(playerIndex,equipId,index,isPlayerPlaced) function this.OnPickUpPlaced(playerId,equipId,itemIndex,isPlayers) function this._RideOnHeli(gameId) function this.Messages() function this.Init(missionTable) function this.OnReload(missionTable) function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this.DeclareSVars() function this.UpdateHero() ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppInterrogation.lua` ```lua --ORPHAN local DEBUG_StrCode32ToString=Tpp.DEBUG_StrCode32ToString function this.Messages() function this.DeclareSVars() function this.Init() function this.OnReload() function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this.MakeFlagHigh(cpId) function this.ResetFlagHigh(cpId) function this.ResetFlagNormal(cpId) function this.UniqueInterrogationWithVoice(cpId,soundParameterId) function this.UniqueInterrogation(cpId,messageId) function this.QuestInterrogation(cpId,messageId) function this.SetQuestHighIntTable(cpId,interrTable) function this.RemoveQuestHighIntTable(cpId,interrTable) function this.AddHighInterrogation(cpId,interrTable) function this.RemoveHighInterrogation(cpId,interrInfo) function this.InitUniqueInterrogation(interrogationTable) function this.ResetQuestTable() function this.AddQuestTable(interrTable) --missionTable.enemy.interrogation function this.InitInterrogation(interrogationTable) function this._AddGene(cpId) function this.AddGeneInter(cpList) function this._OnMapUpdate() function this._OnInterrogation(soldierId,cpId,allowCollectionInterr) function this._OnInterrogationEnd(soldierId,cpId,strCodeName,index) function this._AssignInterrogation(cpId,messageId,index) function this._AssignInterrogationCollection(cpId) function this._SelectInterrogation(cpId,allowCollectionInterr) ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppLandingZone.lua` ```lua this.aacrGimmickInfo= { ... } afghLZTable.ConnectLandingZoneTable= { ... } afghLZTable.MissionLandingZoneTable= { ... } mafrLZTable.ConnectLandingZoneTable= { ... } mafrLZTable.MissionLandingZoneTable= { ... } this.assaultLzs= { ... } this.missionLzs= { ... } this.locInfo= { ... } function this.BuildConnectLzTable() function this.BuildMissionLzTable() function this.OnInitialize() function this.OnMissionCanStart() --tex called in helispace or free mission to disable lzs if havent reached that mission yet function this.DisableLandingZoneForMission(missionLZTable,missionTypeCodeName) --tex broken out from seperate (but identical) afgh/mafrLzTable function function this.DisableAssaultLandingZones(connectLZTableForAacr,missionTypeCodeName) --tex broken out from seperate (but identical) afgh/mafrLzTable function function this.GroundDisableLandingZone(lzName) function this.DisableUnlockLandingZoneOnMission(bool) function this.IsDisableUnlockLandingZoneOnMission() function this.RegisterAssaultDropLandingZone(drpLandingZoneNames) function this.IsAssaultDropLandingZone(heliRouteS32) --IsAACRGimmickBroken function this.IsBrokenGimmick(gimmickId) function this.OverwriteBuddyVehiclePosForALZ() ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppLocation.lua` ```lua this.locationIdForName= { ... } this.locationNames={} --tex REWORKED: --GOTCHA: this wont return addon locations before it's setup during InfMisison.AddInLocations function this.GetLocationName(locationCode) function this.IsAfghan() function this.IsMiddleAfrica() function this.IsCyprus() function this.IsMotherBase() function this.IsMBQF() function this.SetBuddyBlock(locationId) function this.ModifyMbsLayoutCode(layoutCode) this.debug_useDebugMbParam=nil function this.DEBUG_UseDebugMbParam() function this.ApplyPlatformParamToMbStage(missionCode,baseType) function this.GetMbStageHelicopterRoute(missionCode,e,heliRoute) function this.SetForceConstructDevelopCluster() function this.RegistBaseAssetTable(onActiveTable,onActiveSmallBlockTable) function this.RegistMissionAssetInitializeTable(baseOnActiveTable,onActiveSmallBlockTable) function this.Init(missionTable) --CALLER: TppMain.OnMissionCanStart function this.ActivateBlock() function this.OnReload() function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this.Messages() function this.OnActiveLargeBlock(blockNameStr32,blockStatus) function this.OnActiveSmallBlock(blockIndexX,blockIndexY,blockStatus) function this.GetMbStageClusterGrade(clusterId) function this.GetLocalMbStageClusterGrade(clusterId) function this.MbFreeSpecialMissionStartSetting(missionClearType) ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppMain.lua` ```lua --NMC: cant actually see this referenced anywhere local function YieldForQuarkSystemLoad() function this.DisableGameStatus() function this.DisableGameStatusOnGameOverMenu() function this.EnableGameStatus() function this.EnableGameStatusForDemo() function this.EnableAllGameStatus() function this.EnablePlayerPad() function this.DisablePlayerPad() function this.EnablePause() function this.DisablePause() function this.EnableBlackLoading(showLoadingTips) function this.DisableBlackLoading() --NMC: via mission_main.lua, is called in order laid out, OnAllocate is before OnInitialize function this.OnAllocate(missionTable) --RETAILPATCH: 1.0.4.1 PATCHUP: in general I understand the need for patch ups, and in cases like this i even admire the method, however the implementation of just shoving them seemingly anywhere... needs better execution. function f30050_sequence.NeedPlayQuietWishGoMission() --NOTE: GameObjects loaded after OnAllocate and are gettable by OnInitialize function this.OnInitialize(missionTable)--NMC: see onallocate for notes function this.SetUpdateFunction(missionTable) --ORPHAN: debugUpdateFuncs={} --ORPHAN: numDebugUpdateFuncs=0 moduleUpdateFuncs={ function this.OnEnterMissionPrepare() function this.OnTextureLoadingWaitStart() function this.OnMissionStartSaving() --CALLER: TppSequence Seq_Mission_Prepare.OnUpdate END_SAVING_FILE function this.OnMissionCanStart() --CALLER: TppSequence. Seq_Mission_Prepare OnLeave function this.OnMissionGameStart(sequenceName) function this.ClearStageBlockMessage() --tex broken out from ReservePlayerLoadingPosition local function HasHeliRoute() --NMC from MISSION_FINALIZE local function LoadingPositionToHeliSpace() --NMC from MISSION_FINALIZE local function LoadingPositionFromHeliSpace(nextIsFreeMission,isFreeMission) --NMC from MISSION_FINALIZE, not from helispace local function LoadingPositionToFree() --NMC: tex most commonly only called with just missionLoadType, so the params are really just specific to the call with the missionLoadType that actually passes them in. function this.ReservePlayerLoadingPosition(missionLoadType,isHeliSpace,isFreeMission,nextIsHeliSpace,nextIsFreeMission,abortWithSave,isLocationChange) function this.StageBlockCurrentPosition(yieldTillEmpty) function this.OnReload(missionTable) function this.OnUpdate(missionTable) --NMC: called via mission_main function this.OnChangeSVars(subScripts,varName,key) function this.SetMessageFunction(missionTable)--RENAME: --tex called by the exe (via mission_main.OnMessage) TODO: describe when OnMessage is called --messages are exclusively fired by code in the engine as a mechanism for lua to respond to events --sender and messageClass are actually str32 of the original messageexec creation definitions --GOTCHA: sender is actuall the message class (Player,MotherBaseManagement,UI etc), not to be confused with the sender defined in the messageexec definitions. function this.OnMessage(missionTable,sender,messageId,arg0,arg1,arg2,arg3) function this.OnTerminate(missionTable) ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppMarker.lua` ```lua this.GoalTypes={none="GOAL_NONE",moving="GOAL_MOVE",attack="GOAL_ATTACK",defend="GOAL_DEFENSE",moving_fix="GOAL_MOVE_FIX"} this.ViewTypes={map={"VIEW_MAP_GOAL"},all={"VIEW_MAP_GOAL","VIEW_WORLD_GOAL"},map_only_icon={"VIEW_MAP_ICON"},map_and_world_only_icon={"VIEW_MAP_ICON","VIEW_WORLD_ICON"}} function this.Messages() --NMC: radiusLevel- 0-9, randomLevel matches function this.Enable(gameObjectName,radiusLevel,goalType,viewType,randomLevel,setImportant,setNew,mapRadioName,langId,goalLangId,setInterrogation) function this.Disable(gameId,unregisterMapRadio,isLocator) function this.DisableAll() function this.SetUpSearchTarget(searchTargetInfos) function this.CompleteSearchTarget(targetName) function this.EnableSearchTarget(targetGameObjectName) function this.DisableSearchTarget(targetGameObjectName) function this.GetSearchTargetIsFound(targetGameObjectName) function this.SetQuestMarker(targetNameOrId) function this.SetQuestMarkerGimmick(gimmickId) function this.EnableQuestTargetMarker(name) function this.DeclareSVars() function this.OnAllocate() function this.Init(missionTable) function this.OnMissionCanStart() function this.OnReload() function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this.RestoreMarkerLocator() function this.StoreMarkerLocator() function this.IsExistMarkerLocatorSystem() function this._OnSearchTarget(gameId,t,s) function this._GetStrCode32SearchTargetName(gameId) function this._IsCheckSVarsSearchTargetName(targetName) function this._IsCheckSVarsSearchTarget(a,svarName) function this._OnMarkerChangeToEnable(instanceName,markerType,gameId,identificationCode) function this._CallMarkerRadio(gameId) function this._CallSearchTargetEnabledRadio(gameId) function this._IsRadioTarget(gameId) function this._CanSetMarker(gameId) ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppMath.lua` ```lua function this.Vector3toTable(vector) function this.AddVector(v1,v2) function this.RadianToDegree(rad) function this.DegreeToRadian(deg) function this.FindDistance(pos1,pos2) ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppMbFreeDemo.lua` ```lua this.demoList= { ... } this.demoBlockList= { ... } this._PazPhantomPain4Settings= { ... } this.demoOptions= { ... } function this.PlayMtbsEventDemo(params) function this.DisableBuddyForForceRealized(demoName) function this.SetupDemoEndRoute(demoEndRouteList) function this.SetInvisibleUniqueCharacter(isVisibleCurrentBudy) function this.DisableOcelot() function this.ChangeBlock(currentDemoName,nextDemoName) function this.GetNextDemo(demoName) function this.GetDemoPlayCluster(demoName) function this.HasPlant(demoName) function this.GetDemoTime(demoName) function this.UpdatePackList(demoName) function this.RegisterFovaPack(packList) function this.GetPackListForStorySequence() function this.ShowMissionRewardAfterDemo() function this.GetSoldierListInDemo(demoName) function this.GetForceMaleSoldierList(demoName) function this.SetupEnemy(demoName) function this.IsBalaclava(demoName,checkSoldierName) function this.NeedLoadBuddyBlock(demoName) function this.SetupBuddy(demoName) function this.IsShowReward(demoName) ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppMission.lua` ```lua local function RegistMissionTimerPlayRecord() function this.GetMissionID() function this.GetMissionName() function this.GetMissionClearType() function this.IsDefiniteMissionClear()--RETAILPATCH: 1060 function this.RegiserMissionSystemCallback(callbacks) function this.RegisterMissionSystemCallback(callbacks) function this.UpdateObjective(objectiveInfo) function this.SetHelicopterDoorOpenTime(time) function this.UpdateCheckPoint(checkPointInfo) function this.UpdateCheckPointAtCurrentPosition() function this.IsMatchStartLocation(missionCode) function this.RegistDiscoveryGameOver() --tex NOTE GOTCHA these should now only be used for mission sequence scripts, otherwise just use the gvar directly --this is to work around mission timers/setup not triggering on start-on foot because of heli traps not triggering function this.IsStartFromHelispace() function this.IsStartFromFreePlay() function this.AcceptMission(missionCode) function this.AcceptMissionOnFreeMission(missionCode,orderBoxBlockList,svarSet) function this.AcceptMissionOnMBFreeMission(missionCode,clusterGrade,mbHeliRouteTable) function this.AcceptEmergencyMission(missionCode,nextLayoutCode,nextClusterId,nextMissionStartRoute) function this.AcceptStartFobSneaking(layout,cluster,missionId) function this.SelectNextMissionHeliStartRoute(missionCode,heliRoute,startFobSneaking) function this.SetHelicopterMissionStartPosition(set,x,y,z) function this.StartEmergencyMissionTimer(timerInfo) function this._StartEmergencyMissionTimer(timerName,timeFromHeli,timeFromLand) --CALLER: some mission _sequence s --Used to load into/out of variations of the same mission? --REF --TppMission.Reload{ function this.Reload(loadInfo) --CALLERS: ReturnToMission, exe>esc menu msg PauseMenuRestart, msg Timer_OnEndReturnToTile function this.RestartMission(loadInfo) function this.ExecuteRestartMission(isReturnToMission) --CALLER: exe>esc menu - msg PauseMenuCheckpoint function this.ContinueFromCheckPoint(loadInfo) --returning from fob/emergency mission? --GameOverReturnToMission, PauseMenuReturnToMission, helli_common - if GetNextMissionCodeForEmergency() == 50050, o50050_sequence - isSyncDefMissionClear function this.ReturnToMission(_loadInfo) function this.ExecuteContinueFromCheckPoint(popupId,popupResult,RENdoMissionCallback) function this.IncrementRetryCount() function this.ExecuteOnReturnToMissionCallback() --AbortForRideOnHelicopter, AbortForOutOfMissionArea, heli_common_seq, o50050_seq function this.AbortMission(abortInfo) function this.ExecuteMissionAbort() function this.VarSaveForMissionAbort() function this.LoadForMissionAbort() --CALLERS: PauseMenuReturnToTitle function this.ReturnToTitle() function this.GameOverReturnToTitle() function this.ReserveGameOver(gameOverType,gameOverRadio,isAborting) function this.ReserveGameOverOnPlayerKillChild(gameId) function this.IsGameOver() function this.CanMissionClear(clearInfo) function this._SetCanMissionClear() function this.IsCanMissionClear() function this.OnCanMissionClear() function this.SetMissionClearState(missionClearState) function this.ResetMissionClearState() function this.GetMissionClearState() function this.ReserveMissionClear(missionClearInfo) function this.MissionGameEnd(sequence) function this.FadeOutOnMissionGameEnd(fadeDelay,fadeSpeed,fadeId) function this._FadeOutOnMissionGameEnd(fadeSpeed,fadeId) function this.CheckGameOverDemo(gameOverType) function this.ShowGameOverMenu(params) function this.ShowStealthAssistPopup() function this.ExecuteShowGameOverMenu() function this.ShowMissionGameEndAnnounceLog() function this.ShowAnnounceLogOnFadeOut(EndAnnounceLogFunc) function this.OnEndResultBlockLoad() function this.EnablePauseForShowResult() function this.DisablePauseForShowResult() function this.ShowMissionResult() function this.ShowMissionReward() function this.OnEndMissionReward() --NMC: called from in sequence when decided mission is ended function this.MissionFinalize(options) --CALLERS: --msg EndFadeOut MissionFinalizeFadeOutFinish --msg EndFadeOut MissionFinalizeAtGameOverFadeOutFinish --TppMission.MissionFinalize function this.ExecuteMissionFinalize() function this.ParseMissionName(missionCodeName) --ORIG --function this.ParseMissionName(missionCodeName) -- local missionCode=string.sub(missionCodeName,2) -- missionCode=tonumber(missionCode) function this.IsStoryMission(missionCode) function this.IsHelicopterSpace(missionCode) function this.IsFreeMission(missionCode) function this.IsMbFreeMissions(missionCode) function this.IsFOBMission(missionCode) function this.IsHardMission(missionId) --GOTCHA: looks like it would be easy to forget to check function this.GetNormalMissionCodeFromHardMission(missionId) function this.IsSubsistenceMission() function this.IsPerfectStealthMission() function this.SetFOBMissionFlag() function this.IsMissionStart() function this.IsSysMissionId(missionCode) function this.IsEmergencyMission(missionCode) function this.Messages() function this.MessagesWhileLoading() function this.OnPlayerDead(playerId,deathTypeStr32) function this.OnEndMissionPreparation(deployTime,clusterId) function this.GetNextMissionCodeForEmergency() function this.OnAbortMissionPreparation() function this.WaitFinishMissionEndPresentation() function this.SetNeedWaitMissionInitialize() function this.ResetNeedWaitMissionInitialize() function this.CancelLoadOnResult() function this.OnAllocate(missionTable) function this.DisableInGameFlag() function this.EnableInGameFlag(resetMute) --< function this.ExecuteSystemCallback(callbackName,arg1) function this.Init(missionTable) function this.OnReload(missionTable) function this.RegisterMissionID() function this.DeclareSVars() function this.CheckMessageOptionWhileLoading() function this.OnMessageWhileLoading(sender,messageId,arg0,arg1,arg2,arg3) function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this.CheckMessageOption(messageOptions) function this.CheckMissionState(checkMissionClear,checkGameOver,checkDemoPlaying,checkMissionPrepare) function this.CheckMissionClearOnOutOfMissionArea() function this.EnableAlertOutOfMissionAreaIfAlertAreaStart() function this.IgnoreAlertOutOfMissionAreaForBossQuiet(enable) function this.EnableAlertOutOfMissionArea() function this.DisableAlertOutOfMissionArea() function this.ExitHotZone() function this.PlayCommonRadioOnInsideOfHotZone() function this.OnChangeFobDefenceGameOver() function this.PlayCommonRadioOnRideHelicopter() function this.StartJingleOnHelicopterClear() function this.MissionClearOrAbortOnHeliDoorClosed() function this.ReserveMissionStartRecoverSoundDemo() function this.ClearMissionStartRecoverSoundDemo() function this.GetMissionStartRecoverDemoType() function this.OutsideOfHotZoneCount() local function StopOutsideHotzoneTimer() function this.CheckMissionClearOnRideOnFultonContainer() function this.OnPlayerFultoned() function this.Update() function this.UpdateForMissionLoad() function this.CreateMbSaveCoroutine() local function MBSave() function this.ResumeMbSaveCoroutine() function this.GetSyncMissionStatus() function this.SeizeReliefVehicleOnAbort() function this.SeizeReliefVehicleOnClear() function this.SeizeReliefVehicleOnForceGoToMb() function this.EvaluateReliefVehicleSeizable(missionClearType) function this.EvaluateVehicleCarryOption(missionClearType) function this.ExecuteVehicleSaveCarryOnAbort() function this.ExecuteVehicleSaveCarryOnClear() function this.EstablishedMissionAbort() function this.FadeOutOnMissionAbort() function this.OnEndFadeOutMissionAbort() function this.EstablishedGameOver() function this.UpdateAtCanMissionClear(isOutsideOfHotZone,isOutsideOfMissionArea) function this.ReserveMissionClearOnOutOfHotZone() function this._ReserveMissionClearOnOutOfHotZone() function this.ReserveMissionClearOnRideOnHelicopter() function this.ReserveMissionClearOnRideOnFultonContainer() function this.AbortMissionByMenu() function this.AbortForOutOfMissionArea(abortInfo) function this.AbortForRideOnHelicopter(abortInfo) function this.AbortForRideFultonContainer(abortInfo) function this.GameOverAbortMission() function this.GameOverAbortForOutOfMissionArea() function this.GameOverAbortForRideOnHelicopter() function this.OnChangeSVars(name,key) function this.PostMissionOrderBoxPositionToBuddyDog() function this.SetIsStartFromHelispace() function this.ResetIsStartFromHelispace() function this.SetIsStartFromFreePlay() function this.ResetIsStartFromFreePlay() function this.CanMissionAbortByMenu() function this.SetMissionOrderBoxPosition() function this._SetMissionOrderBoxPosition(boxName) function this.FindOrderBoxName(orderBoxNameStr32) function this.GetOrderBoxLocator(orderBoxName) function this.GetOrderBoxLocatorByTransform(orderBoxName) function this.SetFobPlayerStartPoint() function this.IsNeedSetMissionStartPositionToClusterPosition() function this.ReserveForcePlayerPositionToMbDemoCenter() function this.SetMissionStartPositionMtbsClusterPosition() function this.EstablishedMissionClear() function this.OnMissionGameEndFadeOutFinish() function this.OnMissionGameEndFadeOutFinish2nd() --objectiveDefine=missionTable.sequence.missionObjectiveDefine function this.SetMissionObjectives(objectiveDefine,ojectiveTree,objectiveEnum) function this.OnFinishUpdateObjectiveRadio(radioGroupNameStr32) --mvars.mis_objectiveSetting function this.ShowUpdateObjective(objectiveSetting) function this._ShowObjective(objectiveDefine,enableTask) function this.RestoreShowMissionObjective() function this.SetMissionObjectiveEnable(objectiveName,enable) function this.IsEnableMissionObjective(objectiveName) function this.GetParentObjectiveName(objectiveName) function this.IsEnableAnyParentMissionObjective(objectiveName) function this.DisableChildrenObjective(objectiveName) function this.DisableObjective(objectiveDefine) function this.VarSaveOnUpdateCheckPoint(saveBusy) function this.SafeStopSettingOnMissionReload(parms) function this.VarResetOnNewMission() function this.GetCurrentLocationHeliMissionAndLocationCode() function this.ResetEmegerncyMissionSetting() function this.GoToEmergencyMission() function this.RequestLoad(nextMission,currentMission,options) function this.LoadWithChunkCheck() function this.IsChunkLoading(chunkIndex) --CALLERS: StartInitMission, ExecuteRestartMission, ExecuteContinueFromCheckPoint, LoadForMissionAbort, LoadWithChunkCheck function this.Load(nextMissionCode,currentMissionCode,loadSettings) function this.ExecuteReload() function this.CanStart() function this.SetNextMissionCodeForMissionClear(missionCode) function this.GetNextMissionCodeForMissionClear() function this.AlwaysMissionCanStart() function this.KillDyingQuiet() function this.SetSortieBuddy() function this.ResetQuietEquipIfUndevelop()--RETAILPATCH: 1060 function this.ForceGoToMbFreeIfExistMbDemo() function this.ResetMBFreeStartPositionToCommand() function this.SetNextMissionStartHeliRoute(heliRoute) function this.ClearFobMode() function this.UnsetFobSneakFlag(missionCode) function this.StartHelicopterDoorOpenTimer() function this.GetObjectiveRadioOption(n) function this.OnMissionStart() function this.SetPlayRecordClearInfo() function this.IsBossBattle() function this.StartBossBattle() function this.FinishBossBattle() function this.ShowAnnounceLogOnGameStart() function this.SetHeroicAndOgrePointInSlot(missionHeroicPoint,missionOgrePoint) function this._CreateMissionName(missionCode) --ORIG --function this._CreateMissionName(missionCode) -- local firstDigit=string.sub(tostring(missionCode),1,1) -- local missionTypeCode function this._PushReward(category,langId,rewardType) ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppMovie.lua` ```lua this.CallbackFunctionTable={} function this.Play(demoFlags) this.CommonDoMessage={} function this.CommonDoMessage.onStart() function this.CommonDoMessage.onEnd() function this.DoMessage(n,functionName) ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppPackList.lua` ```lua function this.MakeDefaultMissionPackList(missionCode) function this.AddMissionPack(packPath) function this.DeleteMissionPack(packPath) function this.AddDefaultMissionAreaPack(missionCode) function this.MakeDefaultMissionAreaPackPath(missionCode) function this.AddLocationCommonScriptPack(missionCode) function this.AddLocationCommonMissionAreaPack(missionCode) function this.IsMissionPackLabelList(labelList) function this.IsMissionPackLabel(label) function this.AddColoringPack(missionCode) function this.AddFOBLayoutPack(missionCode) function this.AddAvatarEditPack() function this.SetUseDdEmblemFova(missionCode) function this.SetMissionPackLabelName(labelName) function this.SetDefaultMissionPackLabelName() function this.MakeMissionPackList(missionCode,missionPackList) function this.GetMissionTypeAndMissionName(missionCode) --NMC tex this is pretty jank, but works with custom locations since IH patches LOCATION_HAVE_MISSION_LIST --however his lumps mbqf missions as MTBS --GOTCHA: only returns addon missions after TppMission.AddInLocations is exec --GOTCHA: returns uppercase function this.GetLocationNameFormMissionCode(missionCode) ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppPaz.lua` ```lua this.START_TYPE_NO_PICTURE=0 this.START_TYPE_PICTURE=1 this.START_TYPE_DOWN=2 this.DEMO_END_TYPE_NONE=0 this.DEMO_END_TYPE_SIT=1 this.DEMO_END_TYPE_DOWN=2 function this.ActiveMessages() function this.InactiveMessages() function this.OnAllocate(missionTable) function this.Init(missionTable) function this.OnReload() function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this.SetDemoEndType(demoEndType) function this.GetDemoEndType() function this.SetStartType(pazMode) function this.GetStartType() function this.OnDemoEnter() function this.OnEnter(isSkipPlayerInit) function this.OnLeave() function this.NeedsToWaitLeave() function this.OnSpecialActionEnd(gameId,actionId,commandId) function this.OnMonologueEnd(GameObjectId,speechLabel,isSuccess) function this.OnFinishTimer(timerName) function this.OnPazPerceiveSnake() function this.OnPazHasAimedDefault() function this.OnPazShowIcon() function this.OnPazHideIcon() function this.OnIconOk() function this.OnIconSwitchShown() function this.OnPazRelaxEndTiming() function this.OnPazOutAngle() function this.OnPazInAngle() function this.OnPazSnakeIsStopping() function this.OnPazSnakeIsMoving() function this.OnClock(e) function this.IsReal() function this.Warp(position,rotationY) function this.SendCommandSpecialAction(action,commandId) function this.SendCommandCallMonologue(label) function this.GetPosition() function this.GetRotationY() function this.InitTimer() function this.InitUi() function this.TermUi() function this.InitPlayer() function this.TermPlayer() function this.InitMusic() function this.TermMusic() function this.GetPazGameObjectId() function this.GetStartPosition() function this.GetStartRotationY() function this.UpdateIcon() function this.PlayPlayerMotion(actionPath) function this.PlayCameraAnimation() function this.IsMonologuePhotoSpeech(speechLable) function this.GetItemInTableAtRandom(table,t) function this.IsInTable(item,t) ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppPlayer.lua` ```lua this.MISSION_CLEAR_CAMERA_FADE_DELAY_TIME=3 this.MISSION_CLEAR_CAMERA_DELAY_TIME=0 this.PLAYER_FALL_DEAD_DELAY_TIME=.2 this.DisableAbilityList={Stand="DIS_ACT_STAND",Squat="DIS_ACT_SQUAT",Crawl="DIS_ACT_CRAWL",Dash="DIS_ACT_DASH"} this.ControlModeList={LockPadMode="All",LockMBTerminalOpenCloseMode="MB_Disable",MBTerminalOnlyMode="MB_OnlyMode"} this.CageRandomTableG1={{1,20},{0,80}} this.CageRandomTableG2={{2,15},{1,20},{0,65}} this.CageRandomTableG3={{4,5},{3,10},{2,15},{1,20},{0,50}} this.RareLevelList={"N","NR","R","SR","SSR"} --No refs? function this.RegisterCallbacks(callBacks) function this.SetStartStatus(status) function this.SetStartStatusRideOnHelicopter() function this.ResetDisableAction() function this.GetPosition() function this.GetRotation() function this.Warp(info) function this.SetForceFultonPercent(gameId,percentage) function this.ForceChangePlayerToSnake(basic) --RETAILPATCH 1.0.11 , 1.0.13 added IsCurrentPlayerQuiet> function this.ForceChangePlayerFromOcelot() --< function this.CheckRotationSetting(a) local function n(a,t,e) function this.CheckRotation() function this.IsDeliveryWarping() function this.GetStationUniqueId(e) function this.SetMissionStartPositionToCurrentPosition() function this.SetNoOrderBoxMissionStartPosition(pos,rotY) function this.SetNoOrderBoxMissionStartPositionToCurrentPosition() function this.SetMissionStartPosition(pos,rotY) function this.ResetMissionStartPosition() function this.ResetNoOrderBoxMissionStartPosition() function this.SetMissionStartPositionFromNoOrderBoxPosition() function this.DEBUG_CheckNearMissionStartPositionToRealizePosition() function this.SetInitialPositionToCurrentPosition() function this.SetInitialPosition(position,rotation) function this.SetInitialPositionFromMissionStartPosition() function this.ResetInitialPosition() --RETAILPATCH: 1060> function this.FailSafeInitialPositionForFreePlay() --< function this.RegisterTemporaryPlayerType(playerSetting) function this.SaveCurrentPlayerType() function this.ApplyTemporaryPlayerType() function this.RestoreTemporaryPlayerType() function this.SetWeapons(weaponTable) --tex added noSave function this.SetInitWeapons(weaponTable,noSave) function this._SetWeapons(weaponTable,category) function this.GetWeaponSlotInfoFromWeaponSet(weaponInfo,slotNum) function this.SaveWeaponsToUsingTemp(weaponTable) function this.RestoreWeaponsFromUsingTemp() function this.SetItems(itemNames) function this.SetInitItems(itemNames) function this._SetItems(itemNames,e) function this.SaveItemsToUsingTemp(e) function this.RestoreItemsFromUsingTemp() function this.InitItemStockCount() function this.GetBulletNum(bulletType) function this.SavePlayerCurrentWeapons() function this.RestorePlayerWeaponsOnMissionStart() function this.SaveChimeraWeaponParameter() function this.RestoreChimeraWeaponParameter() function this.SavePlayerCurrentItems() function this.RestorePlayerItemsOnMissionStart() function this.ForceSetAllInitialWeapon() function this.SupplyAllAmmoFullOnMissionFinalize() function this.SupplyWeaponAmmoFull(slot) function this.SupplySupportWeaponAmmoFull(weaponId) function this.SupplyAmmoByBulletId(ammoId,defaultAmmo) function this.SavePlayerCurrentAmmoCount() function this.SetMissionStartAmmoCount() function this.SetEquipMissionBlockGroupSize() function this.SetMaxPickableLocatorCount() function this.SetMaxPlacedLocatorCount() function this.IsDecoy(equipId) function this.IsMine(equipId) function this.AddTrapSettingForIntel(trapInfo) function this.ShowIconForIntel(intelName,dontShow) function this.GotIntel(intelNameHash) function this.HideIconForIntel() function this.AddTrapSettingForQuest(trapInfo) function this.ShowIconForQuest(questName,questStarted) --CALLER: Shooting practice sideops function this.QuestStarted(questNameHash) function this.HideIconForQuest() function this.ResetIconForQuest(iconType) function this.AppearHorseOnMissionStart(identifier,key) function this.StartGameOverCamera(gameObjectId,startTimerName,announceLog) function this._StartGameOverCamera(e,e) function this.PrepareStartGameOverCamera() function this.FOBStartGameOverCamera(gameId,startTimerName,announceLog) function this.SetTargetDeadCamera(params) function this._SetTargetDeadCamera() function this.SetTargetHeliCamera(params) function this._SetTargetHeliCamera() function this.SetTargetTruckCamera(params) function this._SetTargetTruckCamera(a) function this.SetPlayerKilledChildCamera() function this.SetPressStartCamera() function this.SetTitleCamera() function this.SetSearchTarget(targetGameObjectName,gameObjectType,name,skeletonName,offset,targetFox2Name,doDirectionCheck,wideCheckRange) function this.IsSneakPlayerInFOB(playerIndex) function this.PlayMissionClearCamera() function this.SetPlayerStatusForMissionEndCamera() function this.ResetMissionEndCamera() --REF this.PlayCommonMissionEndCamera(this.PlayMissionClearCameraOnRideHorse,this.VEHICLE_MISSION_CLEAR_CAMERA,this.PlayMissionClearCameraOnWalkerGear,this.PlayMissionClearCameraOnFoot,step,unk6) function this.PlayCommonMissionEndCamera(HorseCamFunc,VehicleCamFuncs,WalkerGearCamFunc,MissionClearOnFootCamFunc,step,unk6) function this._PlayMissionClearCamera(step,unk2) function this.RequestMissionClearMotion() function this.PlayMissionClearCameraOnFoot(step,unk2) function this.PlayMissionClearCameraOnRideHorse(vehicleId,step,unk6) function this.PlayMissionClearCameraOnRideLightVehicle(vehicleId,step,unk3) function this.PlayMissionClearCameraOnRideTruck(vehicleId,step,unk6) function this.PlayMissionClearCameraOnRideCommonArmoredVehicle(unkId,step,unk3,RENisQuest) function this.PlayMissionClearCameraOnRideEasternArmoredVehicle(vehicleId,step,unkP3) function this.PlayMissionClearCameraOnRideWesternArmoredVehicle(vehicleId,step) function this.PlayMissionClearCameraOnRideTank(vehicleId,step,unk6) function this.PlayMissionClearCameraOnWalkerGear(vehicleId,step,unk6) this.VEHICLE_MISSION_CLEAR_CAMERA= { ... } function this.FOBPlayMissionClearCamera() function this._FOBPlayMissionClearCamera(camMode) function this.FOBPlayCommonMissionEndCamera(CamFunc,camMode) function this.FOBRequestMissionClearMotion() function this.FOBPlayMissionClearCameraOnFoot(camMode) function this.PlayMissionAbortCamera() function this._PlayMissionAbortCamera() function this.PlayMissionAbortCameraOnFoot() function this.PlayMissionAbortCameraOnRideHorse(vehicleId) function this.PlayMissionAbortCameraOnRideLightVehicle(vehicleId) function this.PlayMissionAbortCameraOnRideTruck(vehicleId) function this.PlayMissionAbortCameraOnRideCommonArmoredVehicle(vehicleId,step) function this.PlayMissionAbortCameraOnRideEasternArmoredVehicle(vehicleId) function this.PlayMissionAbortCameraOnRideWesternArmoredVehicle(vehicleId) function this.PlayMissionAbortCameraOnRideTank(vehicleId) function this.PlayMissionAbortCameraOnWalkerGear(vehicleId) this.VEHICLE_MISSION_ABORT_CAMERA= { ... } function this.PlayFallDeadCamera(param) function this.SetLimitFallDeadCameraOffsetPosY(posYLimit) function this.ResetLimitFallDeadCameraOffsetPosY() function this.GetFallDeadCameraOffsetPosY() function this.PlayFallDeadCameraOnFoot() function this.PlayFallDeadCameraOnRideHorse(a) function this.PlayFallDeadCameraOnRideLightVehicle(a) function this.PlayFallDeadCameraOnRideTruck(a) function this.PlayFallDeadCameraOnRideArmoredVehicle(a) function this.PlayFallDeadCameraOnRideTank(a) function this.PlayFallDeadCameraOnWalkerGear(a) this.VEHICLE_FALL_DEAD_CAMERA= { ... } function this.Messages() function this.DeclareSVars() function this.OnAllocate(missionTable) function this.SetInitialPlayerState(missionTable) function this.MissionStartPlayerTypeSetting() function this.Init(missionTable) function this.SetSelfSubsistenceOnHardMission() function this.OnReload() function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this.Update() this.fultonWeatherSuccessTable= { ... } this.mbSectionRankSuccessTable= { ... } --Calculates fulton success ratio --tex now returns percentage instead of putting it directly to SetFultonIconPercentage --(so better name is GetFultonRecoverSucceedRatio) function this.MakeFultonRecoverSucceedRatio(playerIndex,gameId,gimmickInstanceOrAnimalId,gimmickDataSet,staffOrResourceId,isDogFultoning) function this.GetSoldierFultonSucceedRatio(gameId) function this.GetDefaultSucceedRatio(e) function this.GetVolginFultonSucceedRatio(e) function this.SetHelicopterInsideAction() this.gmpForFultonedObject= { ... } function this.OnPlayerFulton(playerIndex,gameId) function this.QuietRideHeli(gameId) function this.SetRetryFlag() function this.SetRetryFlagWithChickCap() function this.UnsetRetryFlag() function this.ResetStealthAssistCount() function this.OnPickUpCollection(playerId,resourceId,resourceType,langId) function this.CheckAllStationPickedUp() function this.OnPickUpPlaced(playerId,equipId,itemIndex,isPlayers) function this.OnPickUpWeapon(playerGameId,equipId,number) function this.RestoreSupplyCbox() function this.StoreSupplyCbox() function this.IsExistSupplyCboxSystem() function this.RestoreSupportAttack() function this.StoreSupportAttack() function this.IsExistSupportAttackSystem() function this.StorePlayerDecoyInfos() function this.IsExistDecoySystem() this.DELIVERY_WARP_STATE=Tpp.Enum{"START_FADE_OUT","START_WARP","END_WARP","START_FADE_IN"} function this.OnSelectCboxDelivery(a) function this.WarpByCboxDelivery() function this.OnEndWarpByCboxDelivery() function this.OnDeliveryWarpSoundCannotCancel() function this.UpdateDeliveryWarp() function this.OnEndFadeInWarpByCboxDelivery() function this.OnEnterIntelMarkerTrap(markerTrapNameS32,trappedGameId) function this.OnEnterIntelTrap(trapNameS32,trappedGameId) function this.OnExitIntelTrap(trapNameS32,trappedGameId) function this.OnIntelIconDisplayContinue(intelNameS32,unk2,unk3) function this.OnEnterQuestTrap(trapNameS32,player) function this.OnExitQuestTrap(trap,player) function this.OnQuestIconDisplayContinue(questNameS32,unk2,unk3) function this.UpdateCheckPointOnMissionStartDrop() function this.IsAlreadyDropped() function this.SaveCaptureAnimal() function this.AggregateCaptureAnimal() function this.CheckCaptureCage(n,r) function this.GetCaptureAnimalSE(t) function this._IsStartStatusValid(a) function this._IsAbilityNameValid(name) function this._IsControlModeValid(a) function this._CheckRotation(x,rangeX,y,rangeY,e) local function RandomFromCageTable(cageTable) local function RENdoesMatch(e,a) function this.EvaluateCaptureCage(i,a,grade,material) function this.Refresh(resetDirty) --RETAILPATCH 1.0.11> function this.IsCurrentPlayerOcelot() --< --RETAILPATCH 1.0.13> function this.IsCurrentPlayerQuiet() ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppQuest.lua` ```lua this.debugModule=false--tex this.prevMissionType=missionTypes.HELI this.QUEST_CATEGORIES= { ... } this.QUEST_CATEGORIES_ENUM=TppDefine.Enum(this.QUEST_CATEGORIES) this.NUM_VANILLA_UI_QUESTS=157--tex indexed/user facing quests only for unmodified questInfoTable -^- this.QUESTTABLE_INDEX={} function this.GetQuestInfoTable() this.questCompleteLangIds= { ... } function canOpenQuestChecks.waterway_q99010() function canOpenQuestChecks.waterway_q99012() function canOpenQuestChecks.sovietBase_q99020() function canOpenQuestChecks.sovietBase_q99030() function canOpenQuestChecks.tent_q99040() function canOpenQuestChecks.cliffTown_q99080() function canOpenQuestChecks.field_q30010() function this.OpenChildSoldier_1() function this.OpenChildSoldier_2() function canOpenQuestChecks.outland_q20913() function canOpenQuestChecks.lab_q20914() function canOpenQuestChecks.tent_q20910() function canOpenQuestChecks.fort_q20911() function canOpenQuestChecks.sovietBase_q20912() function canOpenQuestChecks.waterway_q39010() function canOpenQuestChecks.lab_q39011() function canOpenQuestChecks.pfCamp_q39012() function canOpenQuestChecks.ruins_q19010() function canOpenQuestChecks.commFacility_q19013() function canOpenQuestChecks.outland_q19011() function canOpenQuestChecks.hill_q19012() function canOpenQuestChecks.outland_q99071() function canOpenQuestChecks.sovietBase_q99070() function canOpenQuestChecks.tent_q99072() function canOpenQuestChecks.outland_q40010() function canOpenQuestChecks.sovietBase_q60110() function canOpenQuestChecks.sovietBase_q60111() function canOpenQuestChecks.citadel_q60112() function canOpenQuestChecks.outland_q60113() function canOpenQuestChecks.pfCamp_q60114() function canOpenQuestChecks.ruins_q60115() function canOpenQuestChecks.tent_q10010() function canOpenQuestChecks.field_q10020() function canOpenQuestChecks.ruins_q10030() function canOpenQuestChecks.waterway_q10040() function canOpenQuestChecks.cliffTown_q10050() function canOpenQuestChecks.commFacility_q10060() function canOpenQuestChecks.sovietBase_q10070() function canOpenQuestChecks.fort_q10080() function canOpenQuestChecks.citadel_q10090() function canOpenQuestChecks.outland_q10100() function canOpenQuestChecks.pfCamp_q10200() function canOpenQuestChecks.savannah_q10300() function canOpenQuestChecks.hill_q10400() function canOpenQuestChecks.banana_q10500() function canOpenQuestChecks.diamond_q10600() function canOpenQuestChecks.lab_q10700() function canOpenQuestChecks.quest_q20015() function canOpenQuestChecks.quest_q20025() function canOpenQuestChecks.quest_q20035() function canOpenQuestChecks.quest_q20045() function canOpenQuestChecks.quest_q20055() function canOpenQuestChecks.quest_q20065() function canOpenQuestChecks.quest_q20075() function canOpenQuestChecks.quest_q20085() function canOpenQuestChecks.quest_q20095() function canOpenQuestChecks.quest_q20105() function canOpenQuestChecks.quest_q20205() function canOpenQuestChecks.quest_q20305() function canOpenQuestChecks.quest_q20405() function canOpenQuestChecks.quest_q20505() function canOpenQuestChecks.quest_q20605() function canOpenQuestChecks.quest_q20705() function canOpenQuestChecks.quest_q20805() function canOpenQuestChecks.quest_q20905() function canOpenQuestChecks.quest_q21005() function canOpenQuestChecks.quest_q22005() function canOpenQuestChecks.quest_q23005() function canOpenQuestChecks.quest_q24005() function canOpenQuestChecks.quest_q25005() function canOpenQuestChecks.quest_q26005() function canOpenQuestChecks.quest_q27005() function canOpenQuestChecks.tent_q11010() function canOpenQuestChecks.tent_q11020() function canOpenQuestChecks.waterway_q11030() function canOpenQuestChecks.cliffTown_q11040() function canOpenQuestChecks.cliffTown_q11050() function canOpenQuestChecks.fort_q11060() function canOpenQuestChecks.fort_q11070() function canOpenQuestChecks.commFacility_q11080() function canOpenQuestChecks.outland_q11090() function canOpenQuestChecks.outland_q11100() function canOpenQuestChecks.pfCamp_q11200() function canOpenQuestChecks.savannah_q11300() function canOpenQuestChecks.savannah_q11400() function canOpenQuestChecks.hill_q11500() function canOpenQuestChecks.banana_q11600() function canOpenQuestChecks.banana_q11700() function canOpenQuestChecks.tent_q71010() function canOpenQuestChecks.field_q71020() function canOpenQuestChecks.tent_q71030() function canOpenQuestChecks.waterway_q71040() function canOpenQuestChecks.cliffTown_q71050() function canOpenQuestChecks.cliffTown_q71060() function canOpenQuestChecks.sovietBase_q71070() function canOpenQuestChecks.fort_q71080() function canOpenQuestChecks.field_q71090() function canOpenQuestChecks.outland_q71200() function canOpenQuestChecks.savannah_q71300() function canOpenQuestChecks.banana_q71400() function canOpenQuestChecks.diamond_q71500() function canOpenQuestChecks.lab_q71600() function canOpenQuestChecks.lab_q71700() function canOpenQuestChecks.commFacility_q80060() function canOpenQuestChecks.field_q80020() function canOpenQuestChecks.outland_q80100() function canOpenQuestChecks.pfCamp_q80200() function canOpenQuestChecks.diamond_q80600() function canOpenQuestChecks.hill_q80400() function canOpenQuestChecks.tent_q80010() function canOpenQuestChecks.lab_q80700() function canOpenQuestChecks.fort_q80080() function canOpenQuestChecks.waterway_q80040() function canOpenQuestChecks.quest_q52010() function canOpenQuestChecks.quest_q52020() function canOpenQuestChecks.quest_q52030() function canOpenQuestChecks.quest_q52040() function canOpenQuestChecks.quest_q52050() function canOpenQuestChecks.quest_q52060() function canOpenQuestChecks.quest_q52070() function canOpenQuestChecks.quest_q52080() function canOpenQuestChecks.quest_q52090() function canOpenQuestChecks.quest_q52100() function canOpenQuestChecks.quest_q52110() function canOpenQuestChecks.quest_q52120() function canOpenQuestChecks.quest_q52130() function canOpenQuestChecks.quest_q52140() function canOpenQuestChecks.quest_q52015() function canOpenQuestChecks.quest_q52025() function canOpenQuestChecks.quest_q52035() function canOpenQuestChecks.quest_q52045() function canOpenQuestChecks.quest_q52055() function canOpenQuestChecks.quest_q52065() function canOpenQuestChecks.quest_q52075() function canOpenQuestChecks.quest_q52085() function canOpenQuestChecks.quest_q52095() function canOpenQuestChecks.quest_q52105() function canOpenQuestChecks.quest_q52115() function canOpenQuestChecks.quest_q52125() function canOpenQuestChecks.quest_q52135() function canOpenQuestChecks.quest_q52145() function canOpenQuestChecks.ruins_q60010() function canOpenQuestChecks.tent_q60011() function canOpenQuestChecks.cliffTown_q60012() function canOpenQuestChecks.fort_q60013() function canOpenQuestChecks.sovietBase_q60014() function canOpenQuestChecks.pfCamp_q60020() function canOpenQuestChecks.hill_q60021() function canOpenQuestChecks.lab_q60022() function canOpenQuestChecks.banana_q60023() function canOpenQuestChecks.outland_q60024() function canOpenQuestChecks.Mtbs_SmokingSoldierCommand() function canOpenQuestChecks.Mtbs_SmokingSoldierCombat() function canOpenQuestChecks.Mtbs_child_dog() function canOpenQuestChecks.Mtbs_ddog_walking() function canOpenQuestChecks.mtbs_q99050() function canOpenQuestChecks.mtbs_q99011() function canOpenQuestChecks.mtbs_wait_quiet() function canOpenQuestChecks.mtbs_return_quiet() function canOpenQuestChecks.mtbs_q101210() function canOpenQuestChecks.mtbs_q101220() function canOpenQuestChecks.mtbs_q99060() function canOpenQuestChecks.mtbs_q42010() function canOpenQuestChecks.mtbs_q42020() function canOpenQuestChecks.mtbs_q42030() function canOpenQuestChecks.mtbs_q42040() function canOpenQuestChecks.mtbs_q42050() function canOpenQuestChecks.mtbs_q42060() function canOpenQuestChecks.mtbs_q42070() this.ShootingPracticeOpenCondition= { ... } function this.GetCanOpenQuestTable()--tex> --NMC called via exe, see TppUiCommand.RegisterSideOpsListFunction function this.GetSideOpsListTable() function this.GetBounusGMP(questName) function this.RegisterForceDeactiveOnMBTerminal(questName) function this.RegisterClusterForceDeactiveOnMBTerminal(clusterId) function this.UnregisterForceDeactiveOnMBTerminal() function this.UnregisterClusterForceDeactiveOnMBTerminal() function this.IsActiveOnMBTerminal(questInfo) function this.IsOpenLocation(locationId) function checkQuestFuncs.mtbs_wait_quiet() function checkQuestFuncs.Mtbs_child_dog() function checkQuestFuncs.Mtbs_ddog_walking() function checkQuestFuncs.cliffTown_q99080() function this.SpecialMissionStartSetting(missionClearType) function this.RegisterCanActiveQuestListInMission(allowedQuests) --NMC CALLER: quest script OnAllocate function this.RegisterQuestStepList(questStepNames) --NMC CALLER: quest script OnAllocate, just after above. function this.RegisterQuestStepTable(questStepTable) function this.RegisterQuestSystemCallbacks(callbackFunctions) local function SetCallBack(callBackFunc,callbackName) function this.SetNextQuestStep(questStep) function this.ClearWithSave(clearType,questName) function this.ClearWithSaveMtbsDDQuest() function this.Clear(questName,keepAlive)--tex added keepAlive function this.GoToMBAfterClear(questName) function this.Failure(questName) function this.Update(currentQuestName) function this.Retry(questName) function this.AddStaffsFromTempBuffer() function this.Save() function this.SetClearFlag(questName) --should be --function this.SetClearFlag(questName) -- if questName==nil then -- return function this.ReserveOpenQuestDynamicUpdate() function this.FadeOutAndDeativateQuestBlock() function this.SetQuestBlockName(blockName) --NMC: UNUSED: just search/use mvars.qst_blockName directly function this.GetQuestBlockName(e) function this.OnAllocate(missionTable) function this.Init(missionTable) function this.OnReload(missionTable) function this.Messages() function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) --quest script .QUEST_TABLE function this.OnDeactivate(questTable) --CALLER: TppMain.OnInitialize, near top --NMC TppQuestList.questList function this.RegisterQuestList(questList) function this.RegisterQuestPackList(questPackList,blockName) function this.SetDefaultQuestBlock() function this.InitializeQuestLoad(clusterIndex) function this.InitializeQuestActiveStatus(questActiveCluster) function this.DEBUG_Init() function this.DebugUpdate() local function PrintAreaInfo(printContext,areaType,bounds) function this.ShowAnnounceLogQuestOpen() function this.OnUpdateSmallBlockIndex(blockIndexX,blockIndexY,clusterIndex) function this.OnUpdateClusterIndex(clusterIndex) function this.UpdateQuestBlockStateAtNotLoaded(blockIndexX,blockIndexY,clusterIndex) function this.UpdateQuestBlockStateAtInactive(blockIndexX,blockIndexY) function this.UpdateQuestBlockStateAtActive(blockIndexX,blockIndexY) --tex added, only called if quest scrip .OnAllocate call it, so none of the vanilla quest scripts. function this.QuestBlockOnAllocate(questScript) --< function this.QuestBlockOnInitialize(questScript) function this.QuestBlockOnTerminate(questScript) function this._CanActivateQuest() function this.QuestBlockOnUpdate(questScript) function this.OnMissionGameEnd() function this.ClearBlockStateRequest() function this.Invoke() function this.SetNewQuestAndLoadQuestBlock(questName) function this.GetCurrentQuestName() function this.GetCurrentAreaName() function this.SetCurrentQuestName(questName) function this.ClearCurrentQuestName() function this.ResetQuestStatus() function this.UnloadCurrentQuestBlock() function this.ActivateCurrentQuestBlock() function this.DeactivateCurrentQuestBlock() function this.SearchQuestFromAllSpecifiedArea(areaType,blockIndexX,blockIndexY,clusterIndex) function this.IsInsideArea(areaType,locationAreaQuestTable,blockIndexX,blockIndexY,clusterId) function this.GetCurrentQuestTable() function this.GetQuestTable(questName) function this.GetQuestIndex(questName) function this.GetSideOpsInfo(questName) function this.IsShowSideOpsList(t) --NMC takes last parts of questName to get questId ex tent_q10010 to q10010 function this.GetQuestNameLangId(questName) function this.GetQuestNameId(questName) function this.GetQuestName(questIdNumber) function this.ExecuteSystemCallback(callbackName) function this.IsInvoking() function this.UpdateOpenQuest() --tex heavily REWORKED --PCall InfHooked --CALLER: TppMain.OnInitialize function this.UpdateActiveQuest(updateFlags) --tex ORIG: --function this.UpdateActiveQuest(updateFlags) -- if not mvars.qst_questList then -- return function this.CanActiveQuestInMission(missionCode,questName) function this.IsImportant(questName) function this.OpenAndActivateSpecialQuest(questNames) function this.OpenQuestForce(questName) function this.CanOpenAndActivateSpecialQuest(questName) function this.SwitchActiveQuest(questName) function this.IsRepop(questName) function this.IsOpen(questName) function this.IsActive(questName) function this.IsCleard(questName) function this.IsEnd(questName) function this._DoDeactivate() function this.MakeQuestStepMessageExecTable() function this.GetQuestStepTable(questStepNumber) function this.GetQuestBlockState() function this.CheckClearBounus(questIndex,t) function this.UpdateClearFlag(questIndex,clear,keepAlive)--tex added keepAlive function this.UpdateRepopFlag(questIndex) function this.UpdateRepopFlagImpl(locationQuests) function this.CheckAllClearBounus() function this.CalcQuestClearedCount() function this.CheckAllClearMineQuest() function this.NeedUpdateActiveQuest(updateFlags) function this.CanOpenSideOpsList() function this.StartElapsedEvent(countDown) function this.GetElapsedCount()--RETAILPATCH: 1060 function this.IsNowOccurringElapsed() function this.SetDoneElapsed() function this.DecreaseElapsedClearCount(questName) function this.PlayClearRadio(clearSideOpsName) function this.GetClearKeyItem(questName) function this.GetClearEmblem(questName) function this.GetClearCassette(questName) function this.ShowAnnounceLog(status,questName,questCurrentCount,questTotalCount) function this.IsRandomFaceQuestName(questName) --tex KLUDGE added index function this.GetRandomFaceId(questName,index) function this.SetRandomFaceId(questName,faceId) function this.OnQuestAreaAnnounceText(questIdNumber) function this.IsActiveQuestHeli() -- NMC: messages for trap_preDeactiveQuestArea_ traps in _sequence.fox2 function this.DeactiveQuestAreaTrapMessages() function this.GetTrapName(areaName) function this._ChangeToEnable(instanceName,makerType,gameObjectId,identificationCode) function this.SetQuestShootingPractice() function this.StartShootingPractice() function this.OnFinishShootingPractice(clearType,canceled) function this.IsShootingPracticeStarted() function this.IsShootingPracticeActivated() function this.ProcessFinishShootingPractice(clearType,canceled) function this.CancelShootingPractice() function this.StartSafeTimer(timerName,time) function this.StopTimer(timerName) function this.ShootingPracticeStopAllTimer() function this.OnQuestShootingTimerEnd() --CALLERS: Quest script OnActivate, TppQuest.SetRetryShootingPracticeStartUi --NMC: tex: shooting practice start marker system is a bit of a mess, the locators are loaded by mission pack (layout pack), so all the known markers are hidden on current shooting quest activate --further more the ground ui 'mb stage spot' is relocated using offset from plat pos, (but the icon marker above it isnt?) --tex so trying to expand this further without having to mod the vanilla stuff function this.ShowShootingPracticeStartUi(offsetType,startUiPosition,markerName) --CALLERS: ShowShootingPracticeStartUi ^, SetCancelShootingPracticeStartUi (called with nil params) function this.ShowShootingPracticeGroundUi(offsetType,startUiPosition) --CALLERS: ShowShootingPracticeStartUi ^, Quest script LandingFromHeli --tex added markerName function this.ShowShootingPracticeMarker(offsetType,markerName) function this.HideShootingPracticeStartUi() function this.HideShootingPracticeMarker() function this.OnDeactivateShootingPracticeForUi() function this.ClearShootingPracticeMvars() function this.HideAllShootingPracticeForUi() function this.SetRetryShootingPracticeStartUi() function this.SetCancelShootingPracticeStartUi() function this.UpdateShootingPracticeUi() function this.AcquireKeyItemOnMissionStart() ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppRadio.lua` ```lua this.COMMON_GAME_OVER_RADIO_LIST= { ... } function this.IGNORE_COMMON_RADIO() this.COMMON_RADIO_LIST= { ... } this.COMMON_RADIO_DELAY_LIST= { ... } function this.Messages() this.SFXList={RadioStart="Play_sfx_s_codec_NPC_begin",RadioEnd="Play_sfx_s_codec_NPC_end"} this.PRESET_DELAY_TIME={short=.5,mid=1.5,long=3} function this.Play(radioGroups,playInfo) function this.SetOptionalRadio(radioName) function this.SetTutorialOptionalRadio(radioName) function this.SetOverwriteByPhaseOptionalRadio(radioName) function this.UnsetTutorialOptionalRadio() function this.UnsetOverwriteByPhaseOptionalRadio() function this.ChangeIntelRadio(radioTable) function this.RequestBlackTelephoneRadio(radioName) function this.SetBlackTelephoneDisplaySetting(e) function this.DoEventOnRewardEndRadio() function this.SaveRewardEndRadioList(rewardEndRadionList) function this.IsPlayed(radio) function this.SetPlayedLocalFlag(e) function this.UnsetPlayedLocalFlag(e) function this.SetPlayedGlobalFlag(e) function this.UnsetPlayedGlobalFlag(e) function this.IsRadioPlayable() function this.Stop() function this.UnregisterRadioGroupSet() function this.EnableCommonOptionalRadio(i) function this.GetEspionageRadioTypeIndex(e) function this.PlayCommon(radioGroups,u_radioType,isQue,isOverwriteProtectionForSamePrio,preDelayTime,noiseType,u_priority,isPlayDebug) function this.PlayDebug(radio,delay) function this.PlayCommonRadio(commonRadioId,notIfPlayed) function this.GetPlayCommonTargetRadio(commonRadioId) function this.GetCommonRadioDelay(radioName) function this.CheckRadioGroupIsCommonRadio(radioNameStrCode,commonRadioEnum) function this.DeclareSVars() function this.OnAllocate(subScripts) function this.Init() function this.OnReload(missionTable) function this.CommonMakeRadioList(e) function this.RegisterRadioList(o) function this.AddDebugRadioLineTable(e) function this.RegisterOptionalRadioList(radioList) function this.RegisterIntelRadioList(radioList) function this.OverwriteCommonRadioTable(e) function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this.PlayGameOverRadio() function this.PlayResultRadio() function this.DEBUG_PlayIntelRadio(a) function this.DEBUG_GetRadioIndex(n) function this.OnFinishBlackTelephoneRadio(a) function this.GetRadioNameAndRadioIDs(radioName) function this._PlayDebugStart() function this._PlayDebugContinue() function this._PlayDebugLine(text,delay) function this.PlaySelectBuddy(strCodeMbdvcSelection) function this.SetGameOverRadio(gameOverRadioId,radioName) ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppRanking.lua` ```lua this.IS_ONCE={false,true,true,true,true,false,false,false,true,true,false,false,false,false,false,false,false,false,false,false} this.UPDATE_ORDER={true,false,false,false,false,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true} this.ANNOUNCE_LOG_TYPE={NONE=0,TIME=1,DISTANCE=2,NUMBER=3} this.SHOW_ANNOUNCE_LOG={this.ANNOUNCE_LOG_TYPE.NONE,this.ANNOUNCE_LOG_TYPE.TIME,this.ANNOUNCE_LOG_TYPE.TIME,this.ANNOUNCE_LOG_TYPE.TIME,this.ANNOUNCE_LOG_TYPE.TIME,this.ANNOUNCE_LOG_TYPE.DISTANCE,this.ANNOUNCE_LOG_TYPE.NONE,this.ANNOUNCE_LOG_TYPE.DISTANCE,this.ANNOUNCE_LOG_TYPE.TIME,this.ANNOUNCE_LOG_TYPE.TIME,this.ANNOUNCE_LOG_TYPE.NONE,this.ANNOUNCE_LOG_TYPE.NONE,this.ANNOUNCE_LOG_TYPE.NONE,this.ANNOUNCE_LOG_TYPE.TIME,this.ANNOUNCE_LOG_TYPE.TIME,this.ANNOUNCE_LOG_TYPE.TIME,this.ANNOUNCE_LOG_TYPE.TIME,this.ANNOUNCE_LOG_TYPE.TIME,this.ANNOUNCE_LOG_TYPE.TIME,this.ANNOUNCE_LOG_TYPE.TIME} this.OPEN_CONDITION= { ... } this.EXCLUDE_MISSION_LIST= { ... } function this.GetScore(rankingCategory) function this.IncrementScore(rankingCategory) function this.UpdateScore(rankingCategory,score) function this.ShowUpdateScoreAnnounceLog(rankingCategoryEnum,score) function this.GetRankingLangId(rankingCategoryEnum) function this._ShowCommonUpdateScoreAnnounceLog(rankingCategoryEnum) function this._ShowScoreTimeAnnounceLog(scoreTime) function this._ShowScoreDistanceAnnounceLog(scoreDistance) function this._ShowScoreNumberAnnounceLog(score) function this.UpdateOpenRanking() function this.RegistMissionClearRankingResult(usedRankLimitedItem,missionCode,totalScore) function this.SendCurrentRankingScore() --CALLER: UpdateScore function this.CheckExcludeMission(rankingCategoryEnum,missionCode) --NMC: no refrences? function this.UpdateScoreTime(rankingCategory) --CALLER: quest script on clear --HOOKED: (InfHooks) > InfShootingPractice.UpdateShootingPracticeClearTime function this.UpdateShootingPracticeClearTime(questNameAsRankingCategory,scoreTime) function this.Messages() function this.Init(missionTable) function this.CheckPlayRecordChallengeTask() function this.OnReload(missionTable) function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this.OnNeutralize(gameId,attackerId,neutralizeType,neutralizeCause) function this.OnHeadShot(gameId,attackId,attackerObjectId,flag) function this.OnCBoxSlideEnd(n,distance) function TppResult.IsEqualOrMoreCboxGlidingDistance(distance) function this.DeclareSVars() ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppRatBird.lua` ```lua function this.RegisterRat(ratList,ratRouteList) function this.RegisterBird(birdList,birdFlyZoneList) function this.RegisterBaseList(baseList) function this.EnableRat() function this.EnableBird(birdType) function this.Init(missionTable) function this.OnReload(missionTable) function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this.Messages() function this.OnMissionCanStart() function this._WarpRats(baseName) function this._EnableRats(enabled) function this._WarpBird(baseName) --RETAILBUG: birdindex not defined, I assume it's the index of rat_bird_birdList but not sure, the equivalent for rats just sets 0, this function is overridden to a function that does nothing in TppAnimal function this._EnableBirds(enable) function this._Activate(baseName) function this._Deactivate() function this._OnChangeLargeBlockState(blockNameStr32,blockState) ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppReinforceBlock.lua` ```lua this.REINFORCE_TYPE_NAME={"NONE","EAST_WAV","EAST_WAV_ROCKET","WEST_WAV","WEST_WAV_CANNON","EAST_TANK","WEST_TANK","HELI"} this.REINFORCE_TYPE=TppDefine.Enum(this.REINFORCE_TYPE_NAME) this.REINFORCE_FPK= { ... } this.REINFORCE_VEHICLE_NAME="reinforce_vehicle_0000" this.REINFORCE_DRIVER_SOLDIER_NAME="reinforce_soldier_driver" this.REINFORCE_SOLDIER_NAMES={"reinforce_soldier_0000","reinforce_soldier_0001","reinforce_soldier_0002","reinforce_soldier_0003"} this.REINFORCE_HELI_NAME="EnemyHeli" function this.GetReinforceBlockId() function this.GetReinforceBlockState() function this.IsLoaded() function this.IsProcessing() --NMC: tex pretty much just indexes into REINFORCE_FPK[], complicated because REINFORCE_TYPE.HELI has sub tables for location/coloringType, function this.GetFpk(reinforceType,pfcType,coloringType)--NMC: basically parses REINFORCE_FPK function this.SetUpReinforceBlock() function this.LoadReinforceBlock(reinforceType,reinforceCpId,reinforceColoringType) function this.UnloadReinforceBlock(cpId) function this.StartReinforce(cpId) function this.FinishReinforce(cpId) function this.ReinforceBlockOnInitialize() function this.ReinforceBlockOnUpdate() function this.ReinforceBlockOnActivate() function this.ReinforceBlockOnDeactivate() function this.ReinforceBlockOnTerminate() function this._HasSoldier() function this._HasVehicle() function this._HasHeli() function this._GetHeliRoute(e) function this._SetEnabledSoldier(soldierName,enabled) function this._SetEnabledVehicle(name,enable) function this._ActivateReinforce() function this._DeactivateReinforce() function this.Messages() function this.Init(missionTable) function this.OnReload(missionTable) function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this._OnRequestLoadReinforce(reinforceCpId)--NMC game message "RequestLoadReinforce" function this._OnRequestAppearReinforce(cpId) function this._OnCancelReinforce(cpId) ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppResult.lua` ```lua this.PLAYSTYLE_HEAD_SHOT=.9 this.RANK_THRESHOLD={S=13e4,A=1e5,B=6e4,C=3e4,D=1e4,E=0} this.RANK_BASE_SCORE={S=11e4,A=9e4,B=7e4,C=5e4,D=3e4,E=0} this.RANK_BASE_SCORE_10054={S=1e4,A=9e3,B=7e3,C=5e3,D=3e3,E=0} this.RANK_BASE_SCORE_10040={S=2e4,A=18e3,B=14e3,C=1e4,D=6e3,E=0} this.RANK_BASE_SCORE_10130={S=5e4,A=45e3,B=35e3,C=25e3,D=2e4,E=0} this.RANK_BASE_SCORE_10140={S=1e5,A=8e4,B=65e3,C=5e4,D=35e3,E=0} this.RANK_BASE_GMP={S=28e3,A=23400,B=2e4,C=18e3,D=13500,E=9999} this.COMMON_SCORE_PARAM= { ... } this.MISSION_GUARANTEE_GMP= { ... } this.MISSION_TASK_LIST= { ... } this.HARD_MISSION_LIST={11043,11041,11054,11085,11082,11090,11036,11033,11050,11091,11195,11211,11140,11200,11080,11171,11121,11115,11130,11044,11052,11151} this.NO_SPECIAL_BONUS={[10030]=true,[10115]=true,[10240]=true} function this.AcquireSpecialBonus(bonusInfo) function this._AcquireSpecialBonus(taskInfo,bestScoreBonusType,bestScoreBonusScoreType,bonusMaxCount,commonScoreParam,isCompleteBonusType,bonusTask,bonusPointList,isAquiredBonusInPointListType) --bonusPointList,isAquiredBonusInPointListType) function this.CalcPoinListBonusScore(bonusPointList,isAquiredBonusInPointListType) --NMC cant see any references to this function this.SetSpecialBonusMaxCount(e) function this._CompleteBonus(isCompleteSvar,bonusTask) function this.RegistNoMissionClearRank() function this.SetMissionScoreTable(missionScoreTable) function this.SetMissionFinalScore() function this.IsUsedChickCap() function this.RegistUsedLimitedItemLangId() function this.IsUsedRankLimitedItem() function this.DeclareSVars() function this.Init(missionTable) function this.OnReload(missionTable) function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this.OnMissionCanStart() function this.SetScoreTable(scoreTable) function this.SetRankTable(tankTable) this.saveCountTable={{"bestScoreTime","scoreTime"},{"bestScoreAlert","alertCount"},{"bestScoreKill","killCount"},{"bestScoreHostage","hostageCount"},{"bestScoreGameOver","failedCount"},{"bestScoreGameOver","timeParadoxCount"},{"bestScoreTacticalActionPoint","tacticalActionPoint"}} function this.SaveBestCount() function this.DEBUG_Count() function this.CalcBaseScore() function this.CalcTimeScore(baseScore,clearRank) this.calcScoreTable= { ... } this.bonusScoreTable= { ... } this.eachScoreLimit={bestScoreHeadShotBonusScore=100,bestScoreNeutralizeBonusScore=100,bestScoreMarkingCountScore=100,bestScoreInterrogateScore=100}--RETAILPATCH 1070 function this.CalcEachScore() --REF svars[n]=this.CalcScore(s,mvars.res_scoreTable[a[1]],mvars.res_missionScoreTable[a[3]],this.eachScoreLimit[n])--RETAILPATCH 1070 eachScoreLimit added function this.CalcScore(p1,RENscoreTable,RENmissionScoreTable,scoreLimit)--RETAILPATCH 1070 scorelimit added function this.CalcHitRatioBonusScore(shootHitCountInMission,playerShootCountInMission,shootHitCountEliminatedInMission,shootNeutralizeCount,hitRatioBaseScoreUnit,numOfBulletsPerNeutralizeCount,exponetHitRatio,limitHitRatioBonus,perfectBonusBase) this.playScoreList={"bestScoreTimeScore","bestScoreTakeHitCountScore","bestScoreTacticalActionPointScore","bestScoreHeadShotBonusScore","bestScoreHitRatioBonusScore","bestScoreNeutralizeBonusScore","bestScoreMarkingCountScore","bestScoreInterrogateScore","bestScoreHostageScore"} this.bounusScoreList={"bestScoreBounusScore","bestScoreBounusScore2","bestScoreNoRetryScore","bestScoreKillScore","bestScoreNoReflexScore","bestScoreAlertScore","bestScorePerfectStealthNoKillBonusScore","bestScoreNoTraceBonusScore"} function this.CalcTotalScore() function this.DecideMissionClearRank() function this.UpdateGmpOnMissionClear(missionCode,clearRank,totalScore) function this.SetBestRank(missionCode,rank) function this.GetBestRank(missionCode) function this.GetMissionClearRankGMP(clearRank,missionCode) --tex NMC called from UI (TppUiCommand.RegisterMbMissionListFunction) at some point DEBUGNOW TODO: when? function this.GetMbMissionListParameterTable() function this.GetMissionGuaranteeGMP(missionCode) function this.GetRepeatPlayGMPReduceRatio(missionCode) function this.AddMissionClearHistory(missionCode) function this.GetMissionClearCountFromHistory(a) function this.CalcMissionClearHistorySize() function this.SetMissionClearHistorySize(t) function this.ClearOverSizeHistory(e) function this.SetSpecialBonusResultScore() function this._SetSpecialBonusResultScore(bonusNum,bestScoreBounusName,bestScoreBonusScoreName,bonusMaxCount,bonusValue,isCompleteSecondBonusName,bonusMissionTask) function this.MakeMissionTaskLangId(taskNo) function this.SaveMissionClearPlayStyleParameter() function this.DecidePlayStyle() function this.DEBUG_Init() this.DEBUG_NEUTRALIZE_TYPE_TEXT={" HOLDUP"," CQC","NO_KILL"," KNIFE","HANDGUN","SUBMGUN","SHOTGUN","ASSAULT","MCH_GUN"," SNIPER","MISSILE","GRENADE"," MINE"," QUIET"," D_DOG","D_HORSE","D_WLKER","VEHICLE","SP_HELI"," ASSIST"} function this.DebugUpdate() function this.Messages() function this.IncrementInterrogateCount() function this.IncrementTakeHitCount() --RETAILPATCH 1070 tacticalTakedownType added function this.OnTacticalActionPoint(gameId,tacticalTakedownType) --RETAILPATCH 1070> function this.GetTacticalActionPoint(e) --RETAILPATCH 1070 reworked> function this.AddTacticalActionPoint(takedownInfo) local function SetSvar(isSneak,actionPoint) function this.CallCountAnnounce(langId,count,unk3Bool) this.PLAYER_CAUSE_TO_SAVE_INDEX= { ... } this.NPC_CAUSE_TO_SAVE_INDEX= { ... } this.NEUTRALIZE_PLAY_STYLE_ID={7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,26,27,28} --gameId,sourceId,neutralizeType,neutralizeCause) function this.GetPlayStyleSaveIndex(gameId,attackerId,neutralizeType,neutralizeCause) function this.OnNeutralize(gameId,attackerId,neutralizeType,neutralizeCause) function this.IncrementPlayDataNeutralizeCount(e) function this.OnHeadShot(gameObjectId,attackId,attackerObjectId,flag) function this.IsCountUpHeadShot(headshotMessageFlag) function this.AddNewPlayStyleHistory() function this.ClearNewestPlayStyleHistory() function this.GetTotalHeadShotCount() function this.GetTotalNeutralizeCount() function this.IsTotalPlayStyleStealth() function this.GetNeutralizeCountBySaveIndex(a) function this.DecideNeutralizePlayStyle() ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppRevenge.lua` ```lua function this._Random(min,max) this.NO_REVENGE_MISSION_LIST= { ... } this.NO_STEALTH_COMBAT_REVENGE_MISSION_LIST= { ... } this.USE_SUPER_REINFORCE_VEHICLE_MISSION= { ... } this.CANNOT_USE_ALL_WEAPON_MISSION= { ... } this.REVENGE_TYPE_NAME= { ... } this.REVENGE_TYPE=TppDefine.Enum(this.REVENGE_TYPE_NAME) this.REVENGE_LV_LIMIT_RANK_MAX=6 this.REVENGE_LV_MAX= { ... } this.REVENGE_POINT_OVER_MARGINE=100-1 this.REVENGE_POINT_PER_LV=100 this.REDUCE_REVENGE_POINT=10 this.REDUCE_TENDENCY_POINT_TABLE= { ... } this.REDUCE_POINT_TABLE= { ... } this.REVENGE_TRIGGER_TYPE= { ... } this.BLOCKED_TYPE= { ... } this.BLOCKED_FOR_MISSION_COUNT=3 this.DEPLOY_REVENGE_MISSION_BLOCKED_LIST= { ... } this.DEPLOY_REVENGE_MISSION_CONDITION_LIST= { ... } this.REVENGE_POINT_TABLE= { ... } this.MISSION_TENDENCY_POINT_TABLE= { ... } this.revengeDefine= { ... } function this.SelectRevengeType() --SINGLE CASE: revengeType ==mtbs_enemy._GetEquipTable > DecideRevenge > revenge_forceRevengeType function this.SetForceRevengeType(revengeType) function this.IsNoRevengeMission(missionCode) function this.IsNoStealthCombatRevengeMission(missionCode) function this.GetEquipGradeLimit() function this.IsUsingNoKillWeapon() function this.IsUsingStrongWeapon() function this.IsUsingStrongMissile() function this.IsUsingStrongSniper() function this.IsUsingSuperReinforce() function this.IsUsingBlackSuperReinforce() function this.GetReinforceCount() function this.CanUseArmor(soldierSubType) function this.GetMineRate() function this.GetDecoyRate() function this.IsUsingActiveDecoy() function this.GetCameraRate() function this.IsUsingGunCamera() --ORPHAN no references function this.GetPatrolRate() function this.IsIgnoreBlocked() function this.IsBlocked(category) function this.SetEnabledSuperReinforce(enabled) function this.SetHelmetAll() function this.RegisterMineList(baseList,mineList) function this.RegisterCommonMineList(mineList) function this.RegisterMissionMineList(mineList) function this.AddBaseMissionMineList(cpName,mineFields) function this._CopyRevengeMineArea(mineFieldDest,mineFieldSource,cpName,mineFieldIndex) function this.OnEnterRevengeMineTrap(trapNameStr32) function this.ClearLastRevengeMineBaseName() function this.UpdateLastVisitedMineArea(cpName,areaIndex,trapName) function this.SaveMissionStartMineArea() function this.SetUpRevengeMine() function this._SetUpRevengeMine() function this._GetDecoyType(cpName) function this._EnableDecoy(_cpName,locatorList,enable) function this._SetupCamera() function this.OnAllocate(missionTable) function this.SetUpMineAreaVarsName() function this.DecideRevenge(missionTable) function this.SetUpEnemy() function this.GetRevengeLvLimitRank() function this.GetRevengeLv(revengeType) function this.GetActualRevengeLv(revengeType)--tex ORIG: GetRevengeLv function this.GetRevengeLvMax(revengeType,limitMaxRank) function this.GetRevengePoint(revengeType) function this.AddRevengePoint(revengeType,points) function this.GetRevengeTriggerName(triggerType) function this.AddRevengePointByTriggerType(revengeTriggerType) function this.SetRevengePoint(revengeType,points) function this.ResetRevenge() function this.UpdateRevengeLv(missionId) function this._GetUiParameterValue(revengeType) function this._SetUiParameters() function this._SetMbInterrogate() function this._SetEnmityLv() function this.OnMissionClearOrAbort(missionId,isAbort)--tex added isAbort function this._ReduceBlockedCount(missionId) function this._GetBlockedName(blockedId) function this._ReceiveClearedDeployRevengeMission() function this._AddDeployRevengeMission() function this._ReduceRevengePointStealthCombat() function this._ReduceRevengePointOther() function this.ReduceRevengePointOnMissionClear(missionId) function this._ReduceRevengePointByChickenCap(missionId) function this.ReduceRevengePointOnAbort(missionId) function this._GetMissionTendency(missionId) --tex added isAbort function this.ApplyMissionTendency(missionId,isAbort) function this.CanUseReinforceVehicle() function this.CanUseReinforceHeli() function this.SelectReinforceType() function this.ApplyPowerSettingsForReinforce(soldierIds) --NMC: revengeTypes ==mvars.revenge_revengeType == (mvars.revenge_forceRevengeType(via mtbs_enemy) or this.SelectRevengeType()) function this._CreateRevengeConfig(revengeTypes) this.weaponRevengeStrengths= { ... } function this.GetWeaponStrengths(revengeConfig) --CALLER: OnAllocate > DecideRevenge --config=mvars.revenge_revengeConfig --tex DEBUGNOW bugged on fob handgun? (since r176 Aug 2016 ouch) I probably just need to add to weaponTypes, but should work through the code properly to see what I was doing function this._AllocateResources(config) --function this._AllocateResourcesORIG(config) -- mvars.revenge_loadedEquip={} -- local missionRequiresSettings=mvars.ene_missionRequiresPowerSettings -- local loadWeaponIds={} function this.GetSoldierCountFromPercentPower(powerSetting,soldierCount) --< function this._GetSettingSoldierCount(power,powerSetting,soldierCount) --tex broken out from _ApplyRevengeToCp and reworked local function CreateCpConfig(revengeConfig,totalSoldierCount,powerComboExclusionList,powerElimOrChildSoldierTable,isOuterBaseCp,isLrrpCp,abilitiesList,unfulfilledPowers,addConfigFlags,cpConfig,cpId)--tex now function, added unfulfilledPowers --tex broken out from _ApplyRevengeToCp, for mb --IN/OUT: soldierIds function this.SetEnableSoldierLocatorList(cpId,plant,soldierIds) --CALLER: SetUpEnemy --INPUT: mvars.revenge_revengeConfig < _CreateRevengeConfig function this._ApplyRevengeToCp(cpId,revengeConfig,plant) --ORIG --function this._ApplyRevengeToCp(cpId,revengeConfig,RENsomeMBcounter) -- local GetGameObjectId=GameObject.GetGameObjectId -- function this.Messages() function this.Init(missionTable) function this.OnReload(missionTable) function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this._OnReinforceRespawn(soldierId) function this._OnHeadShot(gameObjectId,attackId,attackerObjectId,flag) function this._OnDead(gameId,attackerId,phase,damageFlag) function this._OnUnconscious(gameId,attackerId,playerPhase) function this._OnAnnihilated(cpId,playerPhase,t) function this._OnChangePhase(cpId,phase) function this._OnComradeFultonDiscovered(n,n) function this._OnDamage(gameId,attackId,attackerID) function this._OnSmokeDiscovered(n) function this._OnAntiSniperNoticed(n) function this._OnSleepingComradeRecoverd(n) function this._OnEnterTrap(trapNameStr32) ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppReward.lua` ```lua this.TYPE=Tpp.Enum{"MIN","COMMON","CASSET_TAPE","KEY_ITEM","BLUE_PRINT","EMBLEM","ANIMAL","RANKING","MAX"} this.REWARD_FIRST_LANG= { ... } this.REWARD_MAX={[TppScriptVars.CATEGORY_MISSION]=TppDefine.REWARD_MAX.MISSION,[TppScriptVars.CATEGORY_MB_MANAGEMENT]=TppDefine.REWARD_MAX.MB_MANAGEMENT,[TppScriptVars.CATEGORY_QUEST]=TppDefine.REWARD_MAX.QUEST} this.LANG_ENUM={[TppScriptVars.CATEGORY_MISSION]=Tpp.Enum{"reward_fob_goal_staff","reward_fob_goal_resources","reward_fob_goal_herbs","reward_fob_goal_wormhole"},[TppScriptVars.CATEGORY_MB_MANAGEMENT]=Tpp.Enum{"key_item_3013","key_item_3003","key_item_3008","reward_100","reward_101","reward_102","reward_103","reward_104","reward_105","reward_106","reward_107","reward_108","reward_109","reward_110","reward_111","reward_112","reward_113","reward_300","reward_301","reward_302","reward_303","reward_304","reward_305","reward_306","reward_400","reward_401","reward_402","reward_403","reward_404","reward_405","reward_406","reward_500","reward_501","reward_502","reward_503","reward_504","reward_600","reward_601","reward_602","reward_603","reward_604","reward_605","reward_606","reward_607","dummy","reward_114","reward_115","key_item_3014","key_item_3015","key_item_3016","key_item_3017","key_item_3018","key_item_3019","key_item_3007","reward_307","key_item_3010","key_item_3020"},[TppScriptVars.CATEGORY_QUEST]=Tpp.Enum{"dummy"}} this.GVARS_NAME={[TppScriptVars.CATEGORY_MISSION]={langEnumName="rwd_missionRewardLangEnum",stackSizeName="rwd_missionRewardStackSize",paramName="rwd_missionRewardParam"},[TppScriptVars.CATEGORY_MB_MANAGEMENT]={langEnumName="rwd_mbManagementRewardLangEnum",stackSizeName="rwd_mbManagementRewardStackSize",paramName="rwd_mbManagementRewardParam"},[TppScriptVars.CATEGORY_QUEST]={langEnumName="rwd_questRewardLangEnum",stackSizeName="rwd_questRewardStackSize",paramName="rwd_questRewardParam"}} this.RADIO_GROUP_NAME={[5]="f6000_rtrg2010",[6]="f6000_rtrg2020",[7]="f6000_rtrg2030",[8]="f6000_rtrg2040",[10]="f6000_rtrg2050",[11]="f6000_rtrg2060",[20]="f6000_rtrg2130",[22]="f6000_rtrg2140",[30]="f6000_rtrg2150",[25]="f6000_rtrg2160",[55]="f6000_rtrg2270"} function this.Push(rewardInfo) function this.PushBluePrintReward(e) function this.ShowAllReward() function this.IsStacked() function this.ShowReward(category) function this.ShowBonusPopup(category,rewardType,bonusId,o,d) function this.SetParameters(paramName,stackSize,rewardType,arg1,arg2) function this.GetParameters(paramName,stackSize) function this.GetParameterOffsets(stackSize) function this.ShowBonusPopupCategory(rewardType,a,bonusId) function this.GetBonusPopupCategory(bonusId) function this.ShowBonusPopupCategoryCommon(r,bonusId) ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppSave.lua` ```lua this.saveQueueDepth=0 this.saveQueueList={} local function SetRequestSaveResult(requestSuccess) this.SAVE_RESULT_FUNCTION= { ... } function this.GetSaveFileVersion(category) function this.IsExistConfigSaveFile() function this.IsExistPersonalSaveFile() function this.ForbidSave() function this.IsForbidSave()--RETAILPATCH 1070> function this.NeedWaitSavingErrorCheck() function this.IsSaving() function this.IsSavingWithFileName(fileName) function this.HasQueue(fileName) function this.GetSaveRequestFromQueue(fileName) function this.EraseAllGameDataSaveRequest() function this.IsEnqueuedSaveData() function this.RegistCompositSlotSize(size) function this.SetUpCompositSlot() --HOOKED: see InfHooks function this.SaveGameData(missionCode,needIcon,doSaveFunc,reserveNextMissionStartSave,isCheckPoint) function this.GetSaveGameDataQueue(missionCode,needIcon,doSaveFunc,isCheckPoint) function this.SaveConfigData(needIcon,doSave,reserveNextMissionStart) function this.SaveMGOData() function this.SavePersonalData(needIcon,doSave,reserveNextMissionStartSave) function this.CheckAndSavePersonalData(reserveNextMissionStartSave) function this.SaveAvatarData() function this.SaveOnlyMbManagement(doSaveFunc) function this.ReserveNoticeOfMbSaveResult() function this.SaveOnlyGlobalData() function this.SaveGzPrivilege() function this.SaveMBAndGlobal() function this.VarSaveMBAndGlobal() this.DO_RESERVE_SAVE_FUNCTION= { ... } function this.ReserveNextMissionStartSave(saveFileName,isCheckPoint) function this.DoReservedSaveOnMissionStart() function this._SaveGlobalData(saveInfo) function this._SaveMissionData(saveInfo) function this._SaveRetryData(saveInfo) function this.CanSaveMbMangementData(missionCode) function this._SaveMbManagementData(saveInfo,missionCode) function this._SaveQuestData(saveInfo) function this._SaveMissionRestartableData(saveInfo) function this.MakeNewGameSaveData(acquirePrivilegeInTitleScreen) function this.SaveImportedGameData() function this.GetIntializedCompositSlotSaveQueue(fileName,needIcon,doSaveFunc,isCheckPoint) function this.AddSlotToSaveQueue(saveInfo,slot,savingSlot,category) function this.EnqueueSave(saveInfoOrType,slot,category,fileName,needIcon) function this.MakeNewSaveQueue(slot,savingSlot,category,fileName,needIcon,saveFunc) function this.DequeueSave(index) function this.ProcessSaveQueue() --HOOKED: see InfHooks function this.DoSave(saveParams,force) function this.Update() this.SaveErrorMessageIdTable={[TppScriptVars.RESULT_ERROR_INVALID_STORAGE]={TppDefine.ERROR_ID.CANNOT_FIND_STORAGE_IN_GAME,Popup.TYPE_ONE_BUTTON}} function this.GetSaveResultErrorMessage(result) function this.Init(missionTable) function this.OnReload(missionTable) function this.Messages() function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this.WaitingAllEnqueuedSaveOnStartMission() function this.CoroutineYieldWithShowSavingIcon() function this.SaveVarsToSlot(slot,group,category) function this.VarSaveOnlyGlobalData() function this.VarSave(missionCode,isMissionStart) function this.VarSaveOnRetry() function this.VarSaveMbMangement(missionCode,forceSave) function this.VarSaveQuest(missionCode) function this.VarSaveConfig() function this.VarSaveMGO() function this.VarSavePersonalData() function this.LoadFromSaveFile(slot,fileName,area) function this.GetGameSaveFileName() function this.DEBUG_IsUsingTemporarySaveData() function this.LoadGameDataFromSaveFile(area) function this.CheckGameDataVersion() function this.CopyGameDataFromSavingSlot() function this.LoadMGODataFromSaveFile() function this.LoadConfigDataFromSaveFile(area) function this.LoadPersonalDataFromSaveFile(area) function this.CheckSlotVersion(category,slotId,useMissionStartSlot) function this.CheckSlotVersionConfigData() function this.IsReserveVarRestoreForContinue() function this.ReserveVarRestoreForContinue() function this.ReserveVarRestoreForMissionStart() function this.VarRestoreOnMissionStart() --HOOKED: see InfHooks function this.VarRestoreOnContinueFromCheckPoint() function this.DeleteGameSaveFile() function this.DeleteTemporaryGameSaveFile() function this.DeleteConfigSaveFile() function this.DeletePersonalDataSaveFile() function this.DeleteMGOSaveFile() function this.IsNewGame() function this.IsGameDataLoadResultOK() this.SAVE_FILE_OK_RESULT_TABLE= { ... } function this.CheckGameSaveDataLoadResult() function this.GetGameDataLoadingResult() ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppScriptBlock.lua` ```lua --ORPHAN local RENsomeValue=-127 function this.DeclareSVars() function this.GetCurrentPackListName(blockName) function this.OnAllocate(missionTable) function this.RegisterCommonBlockPackList(blockName,blockPackList) function this.InitScriptBlockState(blockId) function this.FinalizeScriptBlockState(blockId) function this.ActivateScriptBlockState(blockId) function this.DeactivateScriptBlockState(blockId) function this.RequestActivate(blockName) function this.RequestActivateByBlockId(blockId) function this.IsRequestActivate(_blockId) function this.SetScriptBlockState(_blockId,blockState) function this.LoadDemoBlock(packName,load) function this.Load(blockName,packName,doActivate,load) function this.Unload(blockName) function this.SaveScriptBlockId(blockName,blockId) function this.FindPackList(blockName,packName) --REF param = {{ demo_block = "Demo_ArrivalInAfghanistan" },} function this.PreloadRequestOnMissionStart(params) function this.DEBUG_PreloadRequest(t) function this.DEBUG_ClearPreloadRequest() function this.PreloadSettingOnMissionStart() function this.ReloadScriptBlock() function this.ResolveSavedScriptBlockInfo(blockId) function this.ClearSavedScriptBlockInfo(blockId,blockName) ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppSequence.lua` ```lua this.MISSION_PREPARE_STATE=Tpp.Enum{"START","WAIT_INITALIZE","WAIT_TEXTURE_LOADING","END_TEXTURE_LOADING","WAIT_SAVING_FILE","END_SAVING_FILE","FINISH"} local function UnkMF1(sequenceIndex) local function UnkMF2(sequenceIndex) function this.RegisterSequences(sequenceNames) --_sequence.lua sequences (local) function this.RegisterSequenceTable(sequences) --HOOKED: see InfHooks function this.SetNextSequence(sequenceName,params) function this.ReserveNextSequence(sequenceName,params) function this.GetCurrentSequenceIndex() function this.GetSequenceIndex(sequenceName) --NMC wut function this.GetSequenceNameWithIndex(sequenceId) function this.GetCurrentSequenceName() function this.GetMissionStartSequenceName() function this.GetMissionStartSequenceIndex() function this.GetContinueCount() function this.MakeSVarsTable(saveVarsList) this.SYS_SEQUENCE_LENGTH=#requiredSequences baseSequences.Seq_Mission_Prepare= { ... } function this.IsMissionPrepareFinished() function this.IsEndSaving() function this.SaveMissionStartSequence() function this.SetMissionGameStartSequence() function this.SetOnEndMissionPrepareFunction(func) function this.DoOnEndMissionPrepareFunction() function this.IsHelicopterStart() function this.IsFirstLandStart() function this.IsLandContinue() function this.CanHandleSignInUserChangedException() function this.IncrementContinueCount() function this.DeclareSVars() function this.DEBUG_Init() function this.Init(missionTable) function this.OnReload() function this.MakeSequenceMessageExecTable() function this.OnChangeSVars(name,key) function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this.Update() function this.DebugUpdate() ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppSound.lua` ```lua this.ResultRankJingle= { ... } this.afghCommonEsacapeBgm={bgm_escape={start="Play_bgm_afgh_mission_escape",finish="Stop_bgm_afgh_mission_escape"}} this.mafrCommonEsacapeBgm={bgm_escape={start="Play_bgm_mafr_mission_escape",finish="Stop_bgm_mafr_mission_escape"}} this.commonHeliStartBgm={bgm_heliStart={start="Play_bgm_mission_start",finish="Stop_bgm_mafr_mission_escape"}} function this.SetSceneBGM(bgmName) function this.SetSceneBGMSwitch(bgmSwitchName) function this.StopSceneBGM() function this.RestoreSceneBGM() function this.HaltSceneBGM() function this.SetPhaseBGM(phaseBgmTag) function this.ResetPhaseBGM() function this.RestorePhaseBGM() function this.PostEventForFultonRecover() function this.SetHelicopterStartSceneBGM() function this.StopHelicopterStartSceneBGM() function this.StartEscapeBGM() function this.StopEscapeBGM() function this.SkipDecendingLandingZoneJingle() function this.SkipDecendingLandingZoneWithOutCanMissionClearJingle() function this.Messages() function this.DeclareSVars() function this.OnAllocate(missionTable) function this.OnReload(missionTable) function this.Init() function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this.GetCurrentSceneBgmSetting() function this.SetMuteOnLoading() function this.PostJingleOnGameOver() function this.PostJingleOnEstablishMissionClear() function this.PostJingleOnCanMissionClear() function this.ClearOnDecendingLandingZoneJingleFlag() function this.PostJingleOnDecendingLandingZone() function this.PostJingleOnDecendingLandingZoneWithOutCanMissionClear() function this.StartJingleOnClearHeli() function this.SetStartHeliClearJingleName(e) function this.EndJingleOnClearHeli() function this.SetFinishHeliClearJingleName(jingleName) function this.PostEventOnForceGotMbHelicopter() function this.PostJingleOnMissionStartTelop() function this.SafeStopAndPostJingleOnShowResult() function this.PostJingleStartResultPresentation(rank) function this.PostJingleOnStartBlackTelephoneSequence() function this.PostJingleOnEndBlackTelephoneSequence() ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppStory.lua` ```lua this.storySequenceTable={} this.storySequenceTable_Master= { ... } this.radioDemoTable= { ... } this.eventPlayTimmingTable= { ... } this.PLAY_DEMO_END_MISSION= { ... } function this.GetCurrentStorySequence() function this.IncrementStorySequence() function this.PermitMissionOpen(missionCode) function this.MissionOpen(missionCode) function this.MissionClose(missionCode) function this.SetMissionOpenFlag(missionCode,open) function this.IsMissionOpen(missionCode) function this.IsMissionCleard(missionCode) function this.CheckAllMissionCleared() function this.CalcAllMissionClearedCount() --GOTCHA: This is called a bunch of times during startup but it seems completedCount returns 0 till some time into execution function this.CalcAllMissionTaskCompletedCount() function this.UpdateMissionCleardFlag(missionCode) function this.CloseEmergencyMission() function this.GetStorySequenceName(index) function this.GetStorySequenceTable(storySequence) function this.GetCurrentStorySequenceTable() function this.IsMainMission() function this.GetOpenMissionCount() function this.GetClearedMissionCount(missionList) function this.GetElapsedMissionEventName(enum) function this.StartElapsedMissionEvent(eventEnum,elapsedMissionCount) function this.GetElapsedMissionCount(eventEnum) function this.IsNowOccurringElapsedMission(enum) function this.SetDoneElapsedMission(enum) function this.SetMissionClearedS10030() function this.CanOccurRetakeThePlatform() function this.OpenRetakeThePlatform() function this.CheckAndOpenRetakeThePlatform() function this.IsAlwaysOpenRetakeThePlatform() function this.CloseRetakeThePlatform() function this.FailedRetakeThePlatform() function this.FailedRetakeThePlatformIfOpened() function this.CanOpenS10240() function this.CanOpenS10260() function this.CanOpenS10280() function this.CanPlayMgo(e) function this.OnReload(missionTable) function this.SetUpStorySequenceTable() function this.Init(missionTable) function this.UpdateStorySequence(params) function this.UpdateStorySequenceOnMissionClear(missionId) function this._UpdateS11050OpenFlag() function this._UpdateS10260OpenFlag() function this._UpdateStorySequence() function this.CheckNeedProceedStorySequence(storySequenceTable) local function AddMissionCleared(missionCodeName) function this.ProceedStorySequence() local function DoOpen(missionCodeName,defaultClose) function this.CompleteAllMissionCleared() function this.CompleteAllMissionSRankCleared() function this.CompleteAllNormalMissionCleared() function this.CompleteAllNormalMissionSRankCleared() function this.CompleteAllHardMissionCleared() function this.CompleteAllHardMissionSRankCleared() function this.IsCompletedMbMedicalSpecialPlatform(e,n,t) function this.IsOccuringBossQuiet() function this.CanArrivalQuietInMB(noHospitalCheck) function this.RequestLoseQuiet() function this.RequestReunionQuiet()--RETAILPATCH: 1060 function this.UpdateCounterReunionQuiet() function this.ResetCounterReunionQuiet() function this.CanPlayReunionQuietMission() function this.CanReunionQuiet() function this.CanArrivalLiquidInMB() function this.CanArrivalHueyInMB() function this.HueyHasKantokuGrass() function this.CanArrivalCodeTalkerInMB() function this.CanArrivalDDogInMB() function this.CanArrivalSahelanInMB() function this.CanArrivalChildrenInMB() function this.CanArrivalAIPodInMB() function this.GetBattleGearDevelopLevel() function this.CanPlayDemoOrRadio(n) function this.GetStoryRadioListFromIndex(n,t) function this.GetForceMBDemoNameOrRadioList(radioCategory,options) function this.GetCurrentFreeHeliRadioList() function this._GetRadioList(radioDemoInfo,options) function this.IsDoneEvent(radioDemoInfo,RENsomeBool,radioCategory,radioName) function this.UpdateDemoFlagQuietWishGoMission() function this.DEBUG_GetUnclearedMissionCode() function this.DEBUG_TestStorySequence() function TppMission.IsHelicopterSpace() function this.DEBUG_InitQuestFlagsForTest() function this.DEBUG_ClearQuestForTest(e) function this.DEBUG_SetNeedStoryTest(n) function this.DEBUG_SetStorySequence(testStorySequence,o) local function UnkFunc(missionCodeName,unk2,unk3,unk4,unk5Table) function this.DecreaseElapsedMissionClearCount() function this.EnableMissionNewOpenFlag(missionCode) function this.DisableMissionNewOpenFlag(missionCode) function this.SetMissionNewOpenFlag(missionCode,open) ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppTelop.lua` ```lua function this.GetRandomStartSide() function this.GetTelopPosition(mode,side,position) function this.GetFirstLangId(t,e) function this.GetLangIdTable(entry) function this.StartCastTelop(startSide) function this.StartMissionObjective() function this.PostMainCharacters(characters) function this.PostGuestCharacters(a) function this.PostEnemyCombatants(a) function this.PostSpecialMechanics(a) function this.PostLevelDesign(a) function this.PostWrittenBy(e) function this.PostCreativeProducers() function this.PostDirectedBy() function this.PostMissionObjective(locationCode,missionCode) function this.Init(missionTable) ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppTerminal.lua` ```lua this.GMP_POSTER=500 this.FOB_TUTORIAL_STATE={INIT=0,INTRODUCTION_CONSTRUCT_FOB=1,CONSTRUCT_FOB=2,INTRODUCTION_FOB_MISSIONS=3,FOB_MISSIONS=4,FINISH=127} this.unitLvAnnounceLogTable= { ... } this.keyItemAnnounceLogTable= { ... } this.keyItemRewardTable= { ... } this.parasiteSquadFultonResouceId= { ... } this.MOTHER_BASE_SECTION_LIST={"Combat","BaseDev","Spy","Medical","Security","Hospital","Prison","Separation"} this.setUpMenuList={} this.MBDVCMENU= { ... } this.BUDDY_MB_DVC_MENU= { ... } this.RESOURCE_INFORMATION_TABLE= { ... } this.BLUE_PRINT_LOCATOR_TABLE={col_develop_Revolver_Shotgun=MBMConst.DESIGN_2002,col_develop_Highprecision_SMG=MBMConst.DESIGN_2006,col_develop_HighprecisionAR=MBMConst.DESIGN_2007,col_develop_HighprecisionAR_s10033_0000=MBMConst.DESIGN_2007,col_develop_BullpupAR=MBMConst.DESIGN_2008,col_develop_LongtubeShotgun=MBMConst.DESIGN_2009,col_develop_RevolverGrenade0001=MBMConst.DESIGN_2011,col_develop_RevolverGrenade0002=MBMConst.DESIGN_2011,col_develop_RevolverGrenade0003=MBMConst.DESIGN_2011,col_develop_RevolverGrenade0004=MBMConst.DESIGN_2011,col_develop_Semiauto_SR=MBMConst.DESIGN_2013,col_develop_Semiauto_SR_s10070_0000=MBMConst.DESIGN_2013,col_develop_Antimaterial=MBMConst.DESIGN_2015,col_develop_EuropeSMG0001=MBMConst.DESIGN_2016,col_develop_EuropeSMG0002=MBMConst.DESIGN_2016,col_develop_EuropeSMG0003=MBMConst.DESIGN_2016,col_develop_EuropeSMG0004=MBMConst.DESIGN_2016,col_develop_Stungrenade=MBMConst.DESIGN_2019,col_develop_Stungun=MBMConst.DESIGN_2020,col_develop_Infraredsensor=MBMConst.DESIGN_2021,col_develop_Theftprotection=MBMConst.DESIGN_2022,col_develop_Emergencyrescue=MBMConst.DESIGN_3001,col_develop_FLamethrower=MBMConst.DESIGN_2026,col_develop_Shield=MBMConst.DESIGN_2025,col_develop_Shield0000=MBMConst.DESIGN_2025,col_develop_Shield0001=MBMConst.DESIGN_2025,col_develop_Shield0002=MBMConst.DESIGN_2025,col_develop_GunCamera=MBMConst.DESIGN_2023,col_develop_UAV=MBMConst.DESIGN_2024,col_develop_q60115=MBMConst.DESIGN_2027} this.BLUE_PRINT_LANG_ID={[MBMConst.DESIGN_2002]="key_bprint_2002",[MBMConst.DESIGN_2006]="key_bprint_2006",[MBMConst.DESIGN_2007]="key_bprint_2007",[MBMConst.DESIGN_2008]="key_bprint_2008",[MBMConst.DESIGN_2009]="key_bprint_2009",[MBMConst.DESIGN_2011]="key_bprint_2011",[MBMConst.DESIGN_2013]="key_bprint_2013",[MBMConst.DESIGN_2015]="key_bprint_2015",[MBMConst.DESIGN_2016]="key_bprint_2016",[MBMConst.DESIGN_2019]="key_bprint_2019",[MBMConst.DESIGN_2020]="key_bprint_2020",[MBMConst.DESIGN_2021]="key_bprint_2021",[MBMConst.DESIGN_2022]="key_bprint_2022",[MBMConst.DESIGN_2023]="key_bprint_2023",[MBMConst.DESIGN_2024]="key_bprint_2024",[MBMConst.DESIGN_2025]="key_bprint_2025",[MBMConst.DESIGN_2026]="key_bprint_2026",[MBMConst.DESIGN_2027]="key_bprint_2027",[MBMConst.DESIGN_3001]="key_item_3001"} this.EMBLEM_LOCATOR_TABLE={["ly003_cl00_collct0000|cl00pl0_uq_0000_collct|col_develop_MTBS_0000"]="front8",["ly003_cl00_collct0000|cl00pl0_uq_0000_collct|col_develop_MTBS_0001"]="front10",["ly003_cl00_collct0000|cl00pl0_uq_0000_collct|col_develop_MTBS_0002"]="front15",["ly003_cl00_collct0000|cl00pl0_uq_0000_collct|col_develop_MTBS_0003"]="front16",["ly003_cl04_collct0000|cl04pl0_uq_0040_collct|col_emblem_quiet"]="front9",col_develop_MTBS_30150_0000="front11",col_develop_MTBS_30250_0000="front7"} function this.UpdateGMP(info) function this.CorrectGMP(gmpInfo) function this.ClearStaffNewIcon(isHeliSpace,isFreeMission,nextIsHeliSpace,nextIsFreeMission) function this.AddStaffsFromTempBuffer(readOnly,RENoffline) function this.ReserveMissionStartMbSync() function this.StartSyncMbManagementOnMissionStart() function this.VarSaveMbMissionStartSyncEnd() function this.AcquireKeyItem(params) function this.ReserveHelicopterSoundOnMissionGameEnd() this.noAddVolunteerMissions= { ... } function this.AddVolunteerStaffs() function this.UnSetUsageRestriction(enable) function this.UnSetUsageRestrictionOnFOB(enable) function this.SetDevelpedByDevelopIdList(developedIdList) function this.IsNeedPlayPandemicTutorialRadio() function this.PandemicTutorialStoryCondition() function this.StartPandemicEvent() function this.IsNeedStartPandemicTutorial() function this.FinishPandemicTutorial() function this.IsPandemicTutorialFinished() function this.CheckPandemicEventFinish() function this.FinishPandemicEvent() function this.UpdatePandemicEventBingoCount() function this.GetPandemicBingoCount() function this.AcquirePrivilegeStaff() function this._AcquireGzPrivilegeStaff(uniqueStaffType) function this._AcquireDlcItemStaff(n,t) function this._AcquirePrivilegeStaff(uniqueStaffType,category) function this.AcquirePrivilegeInTitleScreen() function this.AcquireGzPrivilegeKeyItem() local function n(e) function this.AcquireDlcItemKeyItem() local function funcAdd(n,e) local function funcRemove(a,e)--RETAILPATCH: 1060 function this.AcquireDlcItemEmblem() local function funcAdd(t,e) local function funcRemove(t,e)--RETAILPATCH: 1.0.4.1 function this.AcquireGzPrivilege(e,t) function this.AcquireDlcItem(e,t,n) function this.EraseDlcItem(e,t,n) function this.AddUniqueCharactor() function this.GetFobStatus() function this.OnNoticeFobSneaked(fobMode,n) function this.OnNoticeSupporterFobSneaked() function this.IsDisableNoticeFobSneaked() function this.ShowNoticeFobSneaked(announceLogType) function this.OnAllocate(missionTable) function this.Init(missionTable) function this.MakeMessage() function this.OnReload(missionTable) --CALLER: TppMain.OnMissionGameStart --GOTCHA: param isn't actuall passed in function this.OnMissionGameStart(e) function this.DeclareSVars() function this.Messages() function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this.OnFultonMessage(gameId,gimmickInstanceOrAnimalId,gimmickDataSet,stafforResourceId) function this.OnFultonInfoMessage(gameId,playerIndex,reduceThisContainer) function this.SetUp() function this.SetUpArmsMBDVCMenu() function this.SetUpCustomWeaponMBDVCMenu() function this.SetUpBuddyMBDVCMenu() --NMC a mess because the same message "Fulton" is sent for different game objects (and with different params) --CALLERS: msg Fulton (calls OnFulton*), msg CalcFultonPercent (calls specific FultonSucceedRatio func) function this.DoFuncByFultonTypeSwitch(gameId,gimmickInstanceOrAnimalId,gimmickDataSet,staffOrResourceId,recoveredByHeli,playerIndex,reduceThisContainer,OnFultonSoldier,OnFultonVolgin,OnFultonHostage,OnFultonVehicle,OnFultonContainer,OnFultonGimmickCommon,OnFultonBuddy,OnFultonEnemyWalkerGear,OnFultonAnimal,OnFultonBossQuiet,OnFultonParasiteSquad) function this.OnFulton(gameId,gimmickInstanceOrAnimalId,gimmickDataSet,staffOrResourceId,RENsomeBool,RENpossiblyNotHelicopter,playerIndex,reduceThisContainer) function this.IncrementFultonCount() function this.GetMissionHumanFultonCount() function this.IncrementRecoveredSoldierCount() function this.GetRecoveredSoldierCount() function this.IncrementRecoveredHostageCount() function this.GetRecoveredHostageCount() function this.GetFultonCountKeyItem() function this.IsEqualOrMoreTotalFultonCount(fultonCount)--RETAILPATCH 1070> function this.OnFultonSoldier(gameId,gimmickInstanceOrAnimalId,gimmickDataSet,staffId,recoveredByHeli,fultonedPlayer) function this.OnFultonVolgin(gameId) --gameId,gimmickInstanceOrAnimalId,gimmickDataSet,staffOrResourceId,recoveredByHeli,playerIndex) function this.OnFultonHostage(gameId,gimmickInstanceOrAnimalId,gimmickDataSet,staffId,recoveredByHeli,fultonedPlayer) function this.OnFultonVehicle(vehicleId,a,a,resourceId,a,playerIndex) function this.OnFultonContainer(gameId,locatorNameHash,dataSetNameHash,staffOrResourceId,M,playerIndex,reduceThisContainer) this.GIMMICK_RESOURCE_ID_TABLE= { ... } function this.OnFultonGimmickCommon(gameId,t,t,resource,t,playerIndex) function this.OnFultonBuddy(gameId,t,t,t,buddyType,t) function this.OnFultonEnemyWalkerGear(gameId,n,n,resourceId,n,n) function this.OnFultonAnimal(gameId,animalId) function this.GetRecoveredAfghGoatCount() function this.GetRecoveredMafrGoatCount() function this.GetRecoveredDonkeyCount() function this.GetRecoveredZebraCount() function this.GetRecoveredOkapiCount() function this.IsRecoveredCompleatedGoat() function this.IsRecoveredCompleatedHorse() function this.IsRecoveredCompleatedDog() function this.IsRecoveredCompleatedBear() function this.GetAnimalTypeCountFromRecoveredHistory(animalType) function this.AddAnimalRecoverHistory(animalType) function this.OnFultonBossQuiet(t,t,t,t) function this.OnFultonParasiteSquad(gameId,n,n,n) function this._OnFultonParasiteSquad(resourceIdList) function this.IsAnimalDog(dataBaseId) function this.IsAnimalHorse(dataBaseId) function this.IsAnimalBear(dataBaseId) function this.IsAnimalGoat(dataBaseId) function this.OnRecoverByHelicopter() function this.OnRecoverByHelicopterOnCheckPoint() function this.OnRecoverByHelicopterAlreadyGetPassengerList() function this.CheckAddTempBuffer(playerIndex) function this.AddTempStaffFulton(staffInfo) function this.AddTempResource(resourceId,count,playerIndex) function this.AddTempDataBase(dataBaseId) function this.AddTempDataBaseAnimal(dataBaseId,areaName) function this.AddPickedUpResourceToTempBuffer(resourceType,langId) function this.SetUpOnHelicopterSpace() function this.SetUpStoryBeforeCleardRescueMiller() function this.SetUpStoryBeforeCleardRescueMillerOnHelicopter() function this.SetUpStoryCleardRescueMiller() function this.SetUpStoryCleardToMotherBase() function this.IsOpenMBDvcArmsMenu() function this.SetUpStoryCleardHoneyBee() function this.SetUpStoryCleardPitchDark() function this.SetUpStoryAfterCleardPitchDark() function this.StopChangeDayTerminalAnnounce() function this.StartChangeDayTerminalAnnounce() function this.TerminalVoiceWeatherForecast(weatherType) function this.TerminalVoiceOnSunSet() function this.TerminalVoiceOnSunRise() function this.TerminalVoiceOnSupportFireIncoming() function this.SetBaseTelopName(baseName) function this.ClearBaseTelopName() function this.GetLocationAndBaseTelop() function this.ShowLocationAndBaseTelop() function this.ShowLocationAndBaseTelopForStartFreePlay() function this.ShowLocationAndBaseTelopForContinue() function this.OnEnterCpIntelTrap(cpName) function this.OnExitCpIntelTrap(cpName) function this.IsReleaseMedicalSection() this.SectionOpenCondition= { ... } function this.IsReleaseSection(t) function this.ReleaseMbSection() function this.OpenAllSection() function this.OnEstablishMissionClear() function this.AddUniqueVolunteerStaff(missionId) function this._AddUniqueVolunteerStaff(uniqueTypeId,category) function this.ForceStartBuildPlatform(category,clusterGrade) function this.OpenDeployMission(deployMissionIds) this.RewardLangIdTable= { ... } function this.PushRewardOnMbSectionOpen() function this.IsCleardRetakeThePlatform() function this.IsFailedRetakeThePlatform() function this.CanConstructFirstFob() function this.IsConstructedFirstFob() function this.IsReleaseFunctionBattle() function this.IsReleaseFunctionNuclearDevelop() this.SectionFuncOpenCondition= { ... } function this.ReleaseFunctionOfMbSection() function this.ReleaseFreePlay() function this.IsBuiltAnimalPlatform() function this.InitNuclearAbolitionCount() function this.RemoveStaffsAfterS10240() function this.PickUpBluePrint(reourceId,blueprintNumber) function this.InitializeBluePrintLocatorIdTable() function this.GetBluePrintKeyItemId(uniqueId) function this.PickUpEmblem(emblemId) function this.EnableTerminalVoice(enable) function this.PlayTerminalVoice(voiceName,unk2Bool,unk3Float) function this.OnFultonFailedEnd(gameId,unk1,unk2,fultonFailedType) function this._OnFultonFailedEnd(fultonFailedInfo1,fultonFailedInfo2,fultonFailedInfo3,fultonFailedInfo4,playerIndex) function this.HasVehicle() function this._SetUpDvcMenu(menu) function this.EnableDvcMenuByList(menus) function this.SetUpDvcMenuAll() function this.SetActiveTerminalMenu(menus) ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppTrap.lua` ```lua function this.OnAllocate(missionTable) function this.DEBUG_Init() function this.DebugUpdate() function this.InitializeVariableTraps() function this.RestoreVariableTrapState() function this.DeclareSVars() function this.Enable(trapName) function this.Disable(trapName) function this.ChangeTrapState(trapName,enable) function this.ChangeNormalTrapState(trapName,enable) function this.ChangeTriggerTrapState(trapName,enable) ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppTrophy.lua` ```lua this.MISSION_CLEAR={[10010]=1,[10020]=2,[10040]=3,[10070]=4,[10090]=5,[10110]=6,[10140]=7,[10151]=8,[10260]=9,[10280]=10} this.BUDDY_FRIENDLY_MAX={[BuddyFriendlyType.HORSE]=26,[BuddyFriendlyType.DOG]=27,[BuddyFriendlyType.QUIET]=28} this.DOMINATION_TARGET_CP_COUNT={afgh=#dominationTargetCpList.afgh,mafr=#dominationTargetCpList.mafr} this.DOMINATION_TARGET_CP_NAME_LIST={} function this.Unlock(trophyIndex,heroicPoint,_ogrePoints) function this.UnlockOnMissionClear(missionCode) function this.UnlockOnBuddyFriendlyMax() function this.UnlockOnAllMissionTaskCompleted() function this.UnlockOnAllQuestClear() ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppTutorial.lua` ```lua this.TipsExceptTime={[TppDefine.TIPS.CQC_INTERROGATION]={isOnceThisGame=false,isAlways=true},[TppDefine.TIPS.HOLD_UP_INTERROGATION]={isOnceThisGame=false,isAlways=true},[TppDefine.TIPS.FULTON_CLASS_FUNCTION_STOP]={isOnceThisGame=true,isAlways=false},[TppDefine.TIPS.HORSE_HIDEACTION]={isOnceThisGame=false,isAlways=true},[TppDefine.TIPS.ACTION_MAKENOISE]={isOnceThisGame=false,isAlways=true},[TppDefine.TIPS.WEAPON_RANGE]={isOnceThisGame=false,isAlways=true},[TppDefine.TIPS.RADIO_ESPIONAGE]={isOnceThisGame=false,isAlways=true},[TppDefine.TIPS.COMOF_STANCE]={isOnceThisGame=false,isAlways=true},[TppDefine.TIPS.BINO_MARKING]={isOnceThisGame=false,isAlways=true}} this.ControlExceptTime={[TppDefine.CONTROL_GUIDE.DRIVE_COMMON_VEHICLE]={isOnceThisGame=true,isAlways=false},[TppDefine.CONTROL_GUIDE.DRIVE_WALKER_GEAR]={isOnceThisGame=true,isAlways=false},[TppDefine.CONTROL_GUIDE.RIDE_HORSE]={isOnceThisGame=true,isAlways=false},[TppDefine.CONTROL_GUIDE.SNIPER_RIFLE]={isOnceThisGame=true,isAlways=false},[TppDefine.CONTROL_GUIDE.ATTACK_VEHICLE_SHOOT]={isOnceThisGame=true,isAlways=false},[TppDefine.CONTROL_GUIDE.ATTACK_VEHICLE_CAMERA]={isOnceThisGame=true,isAlways=false}} this.TipsAllPhase={[TppDefine.TIPS.HOLD_UP]=true,[TppDefine.TIPS.SNIPER_RIFLE]=true,[TppDefine.TIPS.UNDER_BARREL]=true,[TppDefine.TIPS.BULLET_REFILL]=true,[TppDefine.TIPS.COMMUNICATOR]=true,[TppDefine.TIPS.SUPPRESSOR]=true,[TppDefine.TIPS.SUPPORT_HELI]=true,[TppDefine.TIPS.BULLET_PENETRATE]=true,[TppDefine.TIPS.BULLET_PENETRATE_FAIL]=true,[TppDefine.TIPS.CQC_INTERROGATION]=true,[TppDefine.TIPS.HOLD_UP_INTERROGATION]=true,[TppDefine.TIPS.RELOAD]=true,[TppDefine.TIPS.COVER]=true,[TppDefine.TIPS.HORSE_HIDEACTION]=true,[TppDefine.TIPS.ACTION_MAKENOISE]=true,[TppDefine.TIPS.WEAPON_RANGE]=true,[TppDefine.TIPS.RADIO_ESPIONAGE]=true,[TppDefine.TIPS.COMOF_STANCE]=true,[TppDefine.TIPS.BINO_MARKING]=true} this.ControlAllPhase={[TppDefine.CONTROL_GUIDE.RELOAD]=true,[TppDefine.CONTROL_GUIDE.MACHINEGUN]=true,[TppDefine.CONTROL_GUIDE.MORTAR]=true,[TppDefine.CONTROL_GUIDE.ANTI_AIRCRAFT]=true,[TppDefine.CONTROL_GUIDE.SHIELD]=true,[TppDefine.CONTROL_GUIDE.C4_EXPLODING]=true,[TppDefine.CONTROL_GUIDE.BOOSTER_SCOPE]=true,[TppDefine.CONTROL_GUIDE.SNIPER_RIFLE]=true,[TppDefine.CONTROL_GUIDE.UNDER_BARREL]=true,[TppDefine.CONTROL_GUIDE.DRIVE_COMMON_VEHICLE]=true,[TppDefine.CONTROL_GUIDE.DRIVE_WALKER_GEAR]=true,[TppDefine.CONTROL_GUIDE.RIDE_HORSE]=true,[TppDefine.CONTROL_GUIDE.ATTACK_VEHICLE_SHOOT]=true,[TppDefine.CONTROL_GUIDE.ATTACK_VEHICLE_CAMERA]=true} this.TipsStoryFlag={[TppDefine.TIPS.STEALTH_MODE]=TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,[TppDefine.TIPS.ROLLING]=TppDefine.STORY_SEQUENCE.CLEARD_TO_MATHER_BASE,[TppDefine.TIPS.REFLEX_MODE]=TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,[TppDefine.TIPS.TRASH]=TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,[TppDefine.TIPS.TOILET]=TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,[TppDefine.TIPS.TRANQUILIZER]=TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,[TppDefine.TIPS.TAKE_DOWN]=TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,[TppDefine.TIPS.GUN_LIGHT]=TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,[TppDefine.TIPS.CRACK_CLIMB]=TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,[TppDefine.TIPS.ELUDE]=TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,[TppDefine.TIPS.LOG]=TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,[TppDefine.TIPS.THROW_EQUIP]=TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,[TppDefine.TIPS.CARRY_WEAPON_LIMIT]=TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,[TppDefine.TIPS.HOLD_UP]=TppDefine.STORY_SEQUENCE.CLEARD_TO_MATHER_BASE,[TppDefine.TIPS.SNIPER_RIFLE]=TppDefine.STORY_SEQUENCE.CLEARD_TO_MATHER_BASE,[TppDefine.TIPS.UNDER_BARREL]=TppDefine.STORY_SEQUENCE.CLEARD_TO_MATHER_BASE,[TppDefine.TIPS.BULLET_REFILL]=TppDefine.STORY_SEQUENCE.CLEARD_TO_MATHER_BASE,[TppDefine.TIPS.SAVE_ANIMAL]=TppDefine.STORY_SEQUENCE.CLEARD_TO_MATHER_BASE,[TppDefine.TIPS.PLANT]=TppDefine.STORY_SEQUENCE.CLEARD_TO_MATHER_BASE,[TppDefine.TIPS.FULTON_CONTAINER]=TppDefine.STORY_SEQUENCE.CLEARD_FIND_THE_SECRET_WEAPON,[TppDefine.TIPS.MATERIAL]=TppDefine.STORY_SEQUENCE.CLEARD_TO_MATHER_BASE,[TppDefine.TIPS.DIAMOND]=TppDefine.STORY_SEQUENCE.CLEARD_TO_MATHER_BASE,[TppDefine.TIPS.DEV_DOCUMENT]=TppDefine.STORY_SEQUENCE.CLEARD_TO_MATHER_BASE,[TppDefine.TIPS.EMBLEM]=TppDefine.STORY_SEQUENCE.CLEARD_TO_MATHER_BASE,[TppDefine.TIPS.BOX_MOVE]=TppDefine.STORY_SEQUENCE.CLEARD_TO_MATHER_BASE,[TppDefine.TIPS.BUDDY_HORSE]=TppDefine.STORY_SEQUENCE.CLEARD_TO_MATHER_BASE,[TppDefine.TIPS.BUDDY_DOG]=TppDefine.STORY_SEQUENCE.CLEARD_TO_MATHER_BASE,[TppDefine.TIPS.BUDDY_QUIET]=TppDefine.STORY_SEQUENCE.CLEARD_TO_MATHER_BASE,[TppDefine.TIPS.BUDDY_WALKER]=TppDefine.STORY_SEQUENCE.CLEARD_TO_MATHER_BASE,[TppDefine.TIPS.COMMUNICATOR]=TppDefine.STORY_SEQUENCE.CLEARD_TO_MATHER_BASE,[TppDefine.TIPS.ELECTRICITY]=TppDefine.STORY_SEQUENCE.CLEARD_TO_MATHER_BASE,[TppDefine.TIPS.RADAR]=TppDefine.STORY_SEQUENCE.CLEARD_TO_MATHER_BASE,[TppDefine.TIPS.TACTICAL_BUDDY]=TppDefine.STORY_SEQUENCE.CLEARD_TO_MATHER_BASE,[TppDefine.TIPS.SUPPRESSOR]=TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,[TppDefine.TIPS.COMOF_NIGHT]=TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,[TppDefine.TIPS.DAY_NIGHT_SHIFT]=TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,[TppDefine.TIPS.SAND_STORM]=TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,[TppDefine.TIPS.FOG]=TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,[TppDefine.TIPS.RAIN]=TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,[TppDefine.TIPS.PHANTOM_CIGAR_TOILET]=TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,[TppDefine.TIPS.FREE]=TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,[TppDefine.TIPS.SUPPORT_HELI]=TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,[TppDefine.TIPS.BULLET_PENETRATE]=TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,[TppDefine.TIPS.BUDDY_COMMAND]=TppDefine.STORY_SEQUENCE.CLEARD_TO_MATHER_BASE,[TppDefine.TIPS.SEARCH_LIGHT]=TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,[TppDefine.TIPS.FULTON_MACHINEGUN]=TppDefine.STORY_SEQUENCE.CLEARD_TO_MATHER_BASE,[TppDefine.TIPS.FULTON_MORTAR]=TppDefine.STORY_SEQUENCE.CLEARD_TO_MATHER_BASE,[TppDefine.TIPS.FULTON_ANTI_AIRCRAFT]=TppDefine.STORY_SEQUENCE.CLEARD_TO_MATHER_BASE,[TppDefine.TIPS.PHANTOM_CIGAR_TRASH]=TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,[TppDefine.TIPS.FULTON_COMMON_VEHICLE]=TppDefine.STORY_SEQUENCE.CLEARD_FIND_THE_SECRET_WEAPON,[TppDefine.TIPS.BULLET_PENETRATE_FAIL]=TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,[TppDefine.TIPS.MORALE]=TppDefine.STORY_SEQUENCE.CLEARD_TO_MATHER_BASE,[TppDefine.TIPS.ANIMAL_CAGE]=TppDefine.STORY_SEQUENCE.CLEARD_TO_MATHER_BASE,[TppDefine.TIPS.CQC_INTERROGATION]=TppDefine.STORY_SEQUENCE.CLEARD_TO_MATHER_BASE,[TppDefine.TIPS.HOLD_UP_INTERROGATION]=TppDefine.STORY_SEQUENCE.CLEARD_TO_MATHER_BASE,[TppDefine.TIPS.SHOWER_ROOM]=TppDefine.STORY_SEQUENCE.CLEARD_TO_MATHER_BASE,[TppDefine.TIPS.FULTON_CLASS_FUNCTION_STOP]=TppDefine.STORY_SEQUENCE.CLEARD_TO_MATHER_BASE,[TppDefine.TIPS.HORSE_HIDEACTION]=TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,[TppDefine.TIPS.ACTION_MAKENOISE]=TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,[TppDefine.TIPS.WEAPON_RANGE]=TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,[TppDefine.TIPS.RADIO_ESPIONAGE]=TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,[TppDefine.TIPS.COMOF_STANCE]=TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,[TppDefine.TIPS.BINO_MARKING]=TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,[TppDefine.TIPS.ACTIVE_SONAR]=TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,[TppDefine.TIPS.FOB_WORM_HOLE]=TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL} this.ControlStoryFlag={TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_TO_MATHER_BASE,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_TO_MATHER_BASE,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_TO_MATHER_BASE,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_TO_MATHER_BASE,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL,TppDefine.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL} this.IgnoredTipsGuideInMission={[TppDefine.TIPS.SAVE_ANIMAL]={[10020]=true},[TppDefine.TIPS.FOG]={[10020]=true,[10040]=true,[10090]=true,[10110]=true,[10130]=true,[10140]=true},[TppDefine.TIPS.MATERIAL]={[10020]=true},[TppDefine.TIPS.DEV_DOCUMENT]={[10020]=true},[TppDefine.TIPS.DIAMOND]={[10020]=true},[TppDefine.TIPS.PLANT]={[10020]=true},[TppDefine.TIPS.CRACK_CLIMB]={[10020]=true},[TppDefine.TIPS.BULLET_REFILL]={[10020]=true},[TppDefine.TIPS.LOG]={[10020]=true},[TppDefine.TIPS.SUPPORT_HELI]={[10020]=true},[TppDefine.TIPS.SAVE_ANIMAL]={[10020]=true},[TppDefine.TIPS.ANIMAL_CAGE]={[10020]=true},[TppDefine.TIPS.FULTON_CONTAINER]={[10020]=true},[TppDefine.TIPS.FULTON_COMMON_VEHICLE]={[10020]=true},[TppDefine.TIPS.BULLET_REFILL]={[10020]=true,[10115]=true,[11043]=true,[11044]=true,[10280]=true,[50050]=true}} this.IgnoredControlGuideInMission={} this.NoGuideMission={[10030]=true,[10050]=true,[11050]=true,[11151]=true,[10140]=true,[11140]=true,[10150]=true,[10151]=true,[10240]=true,[50050]=true} this.NoIntelRadioMission={[10010]=true,[11151]=true,[10150]=true,[10151]=true,[10240]=true,[10280]=true,[50050]=true} function this._CheckLocation_AFGH_MAFR() function this._CheckLocation_MTBS() function this._IsEnabledToShowTipsFOB() function this._IsEnabledPlayTutorialRadioFOB() this.TipsLocation={[TppDefine.TIPS.SAND_STORM]=this._CheckLocation_AFGH_MAFR,[TppDefine.TIPS.FOG]=this._CheckLocation_AFGH_MAFR,[TppDefine.TIPS.RAIN]=this._CheckLocation_AFGH_MAFR,[TppDefine.TIPS.COMOF_NIGHT]=this._CheckLocation_AFGH_MAFR,[TppDefine.TIPS.DAY_NIGHT_SHIFT]=TppLocation.IsAfghan,[TppDefine.TIPS.MORALE]=this._CheckLocation_MTBS} this.TipsAvailableInHeli={LOG=true,SUPPORT_HELI=true,BUDDY_HORSE=true,BUDDY_DOG=true,BUDDY_COMMAND=true,BUDDY_QUIET=true,TACTICAL_BUDDY=true,FREE=true,ACTIVE_SONAR=true,BUDDY_WALKER=true} this.ControlGuideAvailableInHeli={MOVE_IN_HELI=true} this.WeatherTipsGuideMatchTable={[TppDefine.WEATHER.SANDSTORM]="SAND_STORM",[TppDefine.WEATHER.FOGGY]="FOG",[TppDefine.WEATHER.RAINY]="RAIN"} this.FultonTipsGuideMatchTable={[TppGameObject.GAME_OBJECT_TYPE_FULTONABLE_CONTAINER]="FULTON_CONTAINER",[TppGameObject.GAME_OBJECT_TYPE_MACHINEGUN]="FULTON_MACHINEGUN",[TppGameObject.GAME_OBJECT_TYPE_MORTAR]="FULTON_MORTAR",[TppGameObject.GAME_OBJECT_TYPE_GATLINGGUN]="FULTON_ANTI_AIRCRAFT",[TppGameObject.GAME_OBJECT_TYPE_VEHICLE]="FULTON_COMMON_VEHICLE"} this.AttackVehicleTable= { ... } this.DISPLAY_OPTION={TIPS=1,CONTROL=2,TIPS_CONTROL=3,PAUSE_CONTROL=4,TIPS_IGONORE_RADIO=5,CONTROL_IGONORE_RADIO=6,TIPS_IGONORE_DISPLAY=7} this.DISPLAY_TIME={DEFAULT=15,LONG=9,LONGER=11} this.TipsGuideRadioList={[TppDefine.TIPS.DAY_NIGHT_SHIFT]="f1000_rtrg0160",[TppDefine.TIPS.COMOF_NIGHT]="f1000_rtrg2980",[TppDefine.TIPS.RAIN]="f1000_rtrg0180",[TppDefine.TIPS.FOG]="f1000_rtrg0190",[TppDefine.TIPS.SAND_STORM]="f1000_rtrg0210",[TppDefine.TIPS.CRACK_CLIMB]="f1000_rtrg4470",[TppDefine.TIPS.PHANTOM_CIGAR_TOILET]="f1000_rtrg4480",[TppDefine.TIPS.PHANTOM_CIGAR_TRASH]="f1000_rtrg4480",[TppDefine.TIPS.BULLET_REFILL]="f1000_rtrg4490",[TppDefine.TIPS.DEV_DOCUMENT]="f1000_rtrg4080",[TppDefine.TIPS.TRASH]="f1000_rtrg4500",[TppDefine.TIPS.TOILET]="f1000_rtrg4510",[TppDefine.TIPS.DIAMOND]="f1000_rtrg0560",[TppDefine.TIPS.SAVE_ANIMAL]="f1000_rtrg0615",[TppDefine.TIPS.ELECTRICITY]="f1000_rtrg4530",[TppDefine.TIPS.FULTON_CONTAINER]="f1000_rtrg0570",[TppDefine.TIPS.MATERIAL]="f1000_rtrg0580",[TppDefine.TIPS.PLANT]="f1000_rtrg4090",[TppDefine.TIPS.BULLET_PENETRATE]="f1000_rtrg3640",[TppDefine.TIPS.BULLET_PENETRATE_FAIL]="f1000_rtrg3650",[TppDefine.TIPS.ANIMAL_CAGE]={"f1000_rtrg0615","f1000_rtrg0625"}} this.IntelRadioSetting={type_translate="f1000_esrg1110",type_antenna="f1000_esrg1110",type_eleGenerator="f1000_esrg2200",type_switchboard="f1000_esrg2200",type_searchradar="f1000_esrg1180",type_redSensor="f1000_esrg2140",type_burglar_alarm="f1000_esrg2450",type_gunMount="f1000_esrg1120",type_mortar="f1000_esrg0040",type_antiAirGun="f1000_esrg0990",type_searchlight="f1000_esrg0950",type_trash="f1000_esrg1070",type_drumcan="f1000_esrg1000",type_toilet="f1000_esrg2210",type_shower="f1000_esrg2460",type_camera="f1000_esrg2150",type_gun_camera="f1000_esrg2160",type_uav="f1000_esrg2170",type_light_vehicle="f1000_esrg1010",type_truck="f1000_esrg1020",type_armored_vehicle="f1000_esrg1030",type_tank="f1000_esrg1040",type_walkergear="f1000_esrg0070",type_walkergear_used="f1000_esrg0060",type_enemy_soviet="f1000_esrg0420",type_enemy_cfa="f1000_esrg0730",type_enemy_coyote="f1000_esrg0740",type_enemy_security="f1000_esrg0460",type_enemy_xof="f1000_esrg2410",type_garbillinae="f1000_esrg0150",type_hamiechinus="f1000_esrg0160",type_ochotona_rufescens="f1000_esrg0170",type_raven="f1000_esrg0080",type_hornbill="f1000_esrg0100",type_ciconia_nigra="f1000_esrg0110",type_jehuty="f1000_esrg0120",type_gyps_fulvus="f1000_esrg0130",type_torgos_tracheliotos="",type_polemaetus_bellicosus="f1000_esrg0140",type_goat="f1000_esrg0190",type_sheep="f1000_esrg0180",type_nubian="f1000_esrg0200",type_bore="f1000_esrg0210",type_donkey="f1000_esrg0220",type_zebra="f1000_esrg0230",type_okapi="f1000_esrg0240",type_wolf="f1000_esrg0250",type_lycaon="f1000_esrg0260",type_jackal="f1000_esrg0270",type_anubis="f1000_esrg0280",type_ursus_arctos="f1000_esrg0290",type_kashmiri_ursus_arctos="f1000_esrg0290"} this.IntelTypeTipsMatchTable={type_translate="COMMUNICATOR",type_antenna="COMMUNICATOR",type_searchradar="RADAR",type_eleGenerator="ELECTRICITY",type_switchboard="ELECTRICITY"} this.RadioTipsMatchTable={[StrCode32"f1000_esrg2190"]="COMMUNICATOR",[StrCode32"f1000_esrg2440"]="RADAR",[StrCode32"f1000_esrg2200"]="ELECTRICITY",[StrCode32"f1000_oprg1600"]="LOG",[StrCode32"f1000_oprg1320"]="HOLD_UP",[StrCode32"f1000_oprg1610"]="SUPPORT_HELI",[StrCode32"f1000_oprg1460"]="BUDDY_HORSE",[StrCode32"f2000_rtrg1410"]="BUDDY_DOG",[StrCode32"f1000_rtrg4570"]="BUDDY_COMMAND",[StrCode32"f1000_rtrg4590"]="BUDDY_QUIET",[StrCode32"f1000_rtrg4560"]="TACTICAL_BUDDY",[StrCode32"f2000_rtrg0010"]="FREE",[StrCode32"f1000_rtrg4550"]="ACTIVE_SONAR",[StrCode32"f1000_oprg1470"]="BUDDY_WALKER",[StrCode32(TppRadio.COMMON_RADIO_LIST[TppDefine.COMMON_RADIO.SUPPRESSOR_BROKEN])]="SUPPRESSOR"} this.ControlGuideRadioList={[TppDefine.CONTROL_GUIDE.PIPE_UP]="f1000_rtrg4630"} this.PlantRadioMatchTable={[TppCollection.TYPE_HERB_G_CRESCENT]="f1000_rtrg5010",[TppCollection.TYPE_HERB_A_PEACH]="f1000_rtrg5012",[TppCollection.TYPE_HERB_DIGITALIS_P]="f1000_rtrg5013",[TppCollection.TYPE_HERB_DIGITALIS_R]="f1000_rtrg5013",[TppCollection.TYPE_HERB_B_CARROT]="f1000_rtrg5016",[TppCollection.TYPE_HERB_WORM_WOOD]="f1000_rtrg5014",[TppCollection.TYPE_HERB_TARRAGON]="f1000_rtrg5015",[TppCollection.TYPE_HERB_HAOMA]="f1000_rtrg5011"} function this.Messages() function this.DispGuide_TrapCarryThrow() function this.DispGuide(tipName,displayOption,_) function this.DispTipsGuide(contentName,i,S,O,T,ignoreRadio,ignoreDisplay) function this.DispControlGuide(actionName,_,i,p,pauseControl,ignoreRadio) function this.IsRideHelicopter() function this.OnIconFultonShown(gameId,targetObjectId,isContainer,isNuclear) function this.OnVehicleDrive(n,vehicleId) function this.OnStartCarryIdle() function this.OnPickUpCollection(playerId,resourceId,resourceType,langId) --msg output PlayerHoldWeapon arg0: 687, arg1: 1, arg2: 1, arg3: 0, function this.OnPlayerHoldWeapon(equipId,equipType,hasGunLight,isSheild) function this.OnPlayerUseBoosterScope() function this.OnEquipItem(playerId,equpId) function this.OnEquipHudClosed(unk1,weaponId,equipType) function this.OnWeaponPutPlaced(n,T) function this.OnAmmoStackEmpty(n,n,T) function this.OnPlayerHeliGetOff() function this.OnSuppressorIsBroken() function this.StartInvestigate(n,T,n) function this.EndInvestigate(cpId,unk2,unk3) function this._IsMBFree() function this.DispGuide_PhatomCigar(T) function this.DispGuide_Weather(weatherType) function this.DispGuide_Comufrage() function this.DispGuide_DayAndNight() function this.InAnimalLocator() function this.OnDiscoveredBySniper() function this.OnDiscoveredObject(T,n) function this.OnPlayerIsWithinRange(T,n) function this.SetEnemyHeliMessageWithinRange() function this.OnIconSwitchShown(i,gimickGameId,locatorNameHash,dataSetNameHash) function this.OnIconClimbOnShown(n,T) function this.OnBulletGuardArmor(n,i,n,T) function this.OnMarking(instanceName,makerType,gameObjectId,identificationCode) function this.OnFultonRecovered(gameId) function this.OnRadioStart(T) function this._UnregisterIntelRadioAfterPlayed(E) function this.OpenTipsOnStory(E) function this.OpenTipsOnCurrentStory() function this.SetIgnoredControlGuideInMission(n,T,E) function this.SetIgnoredGuideInMission(T,n,E) function this.SetNoGuideMission(T,n) function this.SetIgnoredTipsGuideInMission(n,T,E) function this.PlayTutorialRadioOnly(T,n) function this.PlayRadio(e,n) function this.SetIntelRadio() function this.MakeMessageExecTable() function this.OnReload(missionTable) function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this.Init(missionTable) ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppUI.lua` ```lua this.FADE_SPEED={FADE_MOMENT=0,FADE_HIGHESTSPEED=.5,FADE_HIGHSPEED=1,FADE_NORMALSPEED=2,FADE_LOWSPEED=4,FADE_LOWESTSPEED=8} this.ANNOUNCE_LOG_TYPE= { ... } this.ANNOUNCE_LOG_PRIORITY={"eliminateTarget","recoveredFilmCase","recoverTarget","destroyTarget","achieveAllObjectives","achieveObjectiveCount","getIntel","updateMissionInfo","updateMissionInfo_AddDocument","updateMap"} this.BUDDY_LANG_ID={[BuddyType.HORSE]="name_buddy_dh",[BuddyType.DOG]="name_buddy_dd",[BuddyType.QUIET]="marker_chara_quiet"} this.EMBLEM_ANNOUNCE_LOG_TYPE={[StrCode32"front"]="find_em_front",[StrCode32"base"]="find_em_back",[StrCode32"word"]="find_em_string"} function this.Messages() local function ToStrCode32(value) --IN: pretty much the only parms I can see is exceptGameStatus --msgName fires events with that name as fade progresses function this.FadeIn(fadeSpeed,msgName,scdDemoID,parms) function this.OverrideFadeInGameStatus(status) function this.UnsetOverrideFadeInGameStatus() function this.GetOverrideGameStatus() function this.SetFadeColorToBlack() function this.SetFadeColorToWhite() --msgName: events are fired with that name as fade progresses function this.FadeOut(fadeSpeed,msgName,unkP3,fadeoutInfo) function this.ShowAnnounceLog(announceId,param1,param2,delayTime,missionSubGoalNumber) function this.ShowColorAnnounceLog(announceId,param1,param2,delay) function this.ShowJoinAnnounceLog(announceId1,announceId2,param1,param2,delayTime) function this.ShowColorJoinAnnounceLog(announceId1,announceId2,param1,param2,delay) function this.ShowEmergencyAnnounceLog(isFobEmergency) function this.EnableMissionPhoto(photoId,addFirst,addSecond,isComplete,photoRadioName) function this.DisableMissionPhoto(photoId,resetMissionPhotoRadioGroupName) function this.EnableMissionSubGoal(subGoalId) --objectiveDefine.spySearch function this.EnableSpySearch(spySearch) function this.DisableSpySearch(spySearch) function this.StartMissionTelop(telopId,unkBool1,unkBool2) function this.GetMaxMissionTask(missionCode) function this.EnableMissionTask(taskInfo,isComplete) function this.IsTaskLastCompleted(taskNo) function this.SetTaskLastCompleted(taskNo,completed) function this.GetLastCompletedFlagIndex(taskNo) function this._GetLastCompletedFlagIndex(missionCode,taskNo) function this.GetTaskCompletedNumber(missionCode) function this.IsAllTaskCompleted(missionCode) --RETAILPATCH 1090> function this.UpdateOnlineChallengeTask(taskInfo) --< function this.ShowControlGuide(parms) function this.ShowTipsGuide(parms) function this.IsEnableToShowGuide(ignoreRadio) --ORPHAN no references function this.OpenTips(tipsName) --ORPHAN: no reference function this.RegisterTips(e,n) function this.StartDisplayTimer(parms) function this.ShowSavingIcon(iconName) function this.ShowLoadingIcon() function this.ShowAccessIcon() function this.ShowAccessIconContinue() function this.HideAccessIcon() function this.ShowTextureLogo() function this.HideTextureLogo() function this.ShowCallSupportBuddyAnnounceLog() function this.SetSupportCallBuddyType(buddyType) function this.StartLoadingTips() function this.FinishLoadingTips() function this.StartLyricOkb(time) function this.StartLyricEnding(time) function this.StartLyricQuiet(time) function this.StartLyricCyprus(time) function this.OnAllocate(missionTable) function this.LoadAndWaitUiDefaultBlock() function this.OnMissionStart() function this.Init() function this.RegisterHeliSpacePauseMenuPage(addStore) function this.RegisterFobSneakPauseMenuPage() function this.RegisterFobSneakGameOverMenuItems() function this.OnReload() function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this.OnChangeSVars(name,key) function this.DisableGameStatusOnFade(exceptGameStatus) function this.DisableGameStatusOnFadeOutEnd() function this.EnableGameStatusOnFadeInStart() function this.EnableGameStatusOnFade() function this._RegisterDefaultLandPoint() ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppVarInit.lua` ```lua --ORPHAN local IsTypeString=Tpp.IsTypeString --ORPHAN local IsTypeNumber=Tpp.IsTypeNumber --ORPHAN local bnot=bit.bnot --ORPHAN local band,bor,bxor=bit.band,bit.bor,bit.bxor function this.StartTitle(StartFunc) local function DoStart() function this.SetVarsTitleCypr() function this.SetVarsTitleHeliSpace() function this.InitializeOnStartTitle() function this.ClearAllVarsAndSlot()--RETAILPATCH: 1006 function this.InitializeOnStatingMainFrame() function this.InitializeOnNewGameAtFirstTime() function this.InitializeOnNewGame() initWeaponsTable={ function this.InitializeForNewMission(missionTable) --RETAILPATCH 1090> function this.InitializeOnlineChallengeTaskVarsForNewMission() function this.InitializeOnlineChallengeTaskLocalCompletedVars() --< function this.InitializeForContinue(missionTable) function this.ClearIsContinueFromTitle() function this.StartInitMission() function this.SetInitPlayerWeapons(initWeaponsTable) function this.SetInitPlayerItems(initPlayerItems) function this.DEBUG_GetDefaultPlayerWeaponAndItemTable() function this.InitializeAllPlatformForNewGame() function this.SetHorseObtainedAndCanSortie() ``` ### `demin_kap:data1/Assets/tpp/script/lib/TppWeather.lua` ```lua this.weatherProbabilitiesTable= { ... } this.weatherProbabilitiesTable.AFGH_NO_SANDSTORM=this.weatherProbabilitiesTable.AFGH--tex use it directly since it was same values any way this.weatherDurations= { ... } this.extraWeatherInterval= { ... } this.extraWeatherProbabilitiesTable= { ... } function this.RequestWeather(weatherType,param1,param2) function this.CancelRequestWeather(weatherType,param1,param2) function this.ForceRequestWeather(weatherType,param1,param2) function this.CancelForceRequestWeather(weatherType,param1,param2) --CALLER: TppMain.OnMissionCanStart function this.SetDefaultWeatherDurations() --CALLER: TppMain.OnMissionCanStart --tex hooking in InfWeather so I don't disturb existing mods function this.SetDefaultWeatherProbabilities() --CALLER: several story missions function this.SetWeatherProbabilitiesAfghNoSandStorm() function this.SetMissionStartWeather(weatherType) function this.SaveMissionStartWeather() function this.RestoreMissionStartWeather() --no refrences function this.OverrideColorCorrectionLUT(unk1) function this.RestoreColorCorrectionLUT() --no refrences function this.OverrideColorCorrectionParameter(unk1,unk2,unk3) function this.RestoreColorCorrectionParameter() function this.StoreToSVars() function this.RestoreFromSVars() function this.Init() function this.OnMissionCanStart() function this.OnEndMissionPrepareFunction() --NMC returns interpTime (integer), fogInfo (table) function this._GetRequestWeatherArgs(param1,param2) ``` ### `demin_kap:data1/Assets/tpp/script/list/TppMissionList.lua` ```lua this.locationPackTable= { ... } this.missionPackTable={} --CALLER: engine during Mission.LoadMission, set via SetLocationPackagePathFunc -v- function this.GetLocationPackagePath(locationId) --CALLER: engine during Mission.LoadMission, set via SetMissionPackagePathFunc -v- function this.GetMissionPackagePath(missionCode) function this.IsStartHeliToMB() ``` ### `demin_kap:data1/Assets/tpp/script/list/TppQuestList.lua` ```lua this.questList= { ... } this.questPackList= { ... } --tex lookup table> function this.BuildQuestAreaTable(questAreaNameTable) this.questAreaNameTable={}--tex TABLESETUP ``` ### `demin_kap:data1/Assets/tpp/sound/scripts/chara/SoundTppAnimal.lua` ```lua SoundTppAnimal={ ``` ### `demin_kap:data1/Assets/tpp/sound/scripts/chara/SoundTppPlayer.lua` ```lua SoundTppPlayer={ ``` ### `demin_kap:data1/Assets/tpp/sound/scripts/chara/SoundTppSoldier.lua` ```lua SoundTppSoldier={ ``` ### `demin_kap:data1/Assets/tpp/sound/scripts/tape/PreinstallTape.lua` ```lua PreinstallTape={ ``` ### `demin_kap:data1/Assets/tpp/ui/Script/avatar_presets.lua` ```lua this.presets = { ... } ``` ### `demin_kap:data1/Assets/tpp/ui/Script/emblem_list.lua` ```lua emblem_list={ ``` ### `demin_kap:data1/Tpp/Scripts/Classes/TppPadOperatorUtility.lua` ```lua TppPadOperatorUtility={ ``` ### `demin_kap:data1/Tpp/Scripts/Equip/ChimeraPartsPackageTable.lua` ```lua this.chimeraPartsInfoTable= { ... } ``` ### `demin_kap:data1/Tpp/Scripts/Equip/EquipIdTable.lua` ```lua this.equipTable= { ... } ``` ### `demin_kap:data1/Tpp/Scripts/Equip/EquipMotionData.lua` ```lua this.equipMotionData= { ... } ``` ### `demin_kap:data1/Tpp/Scripts/Equip/EquipParameters.lua` ```lua this.equipParameterTables= { ... } ``` ### `demin_kap:data1/Tpp/Scripts/RouteEvents/AiRtEvSoldier.lua` ```lua AiRtEvSoldier={ ``` ### `demin_kap:data1/Tpp/Scripts/System/start2nd.lua` ```lua local function YieldFrame() ``` ### `demin_kap:data1/Tpp/Scripts/Ui/TppUiPrefetchTexture.lua` ```lua TppUiPrefetchTexture={ ``` ### `demin_kap:data1/Tpp/start.lua` ```lua --NMC: tex don't know why they wrapped it in a function, but it lets me log it easily (I want the timestamps so I can compare to ihhook_log) so I'm not complaining local function yield() InfCore.allLoaded=true--tex> ``` ## Infinite Heaven (kapuragu fork) — the framework most TPP script mods target ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/level_asset/chara/enemy/Soldier2FaceAndBodyData.lua` ```lua this.faceFova= { ... } this.faceDecoFova= { ... } this.hairFova= { ... } this.hairDecoFova= { ... } this.bodyFova= { ... } this.faceDefinition= { ... } this.modFaceFova= { ... } this.bodyDefinition= { ... } this.modBodyFova= { ... } this.highestVanillaFaceId=688--tex the highest faceid unmodded for sanity checking on fob, technically its 687, but I add hideo, and a couple of slots for the (broken) manual facedefinition thing --SYNC Ivars.playerFaceFilter ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/level_asset/chara/enemy/TppEnemyFaceGroup.lua` ```lua this.groups= { ... } this.groupsByName= { ... } function this.GetFaceGroupTable(groupId) ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/level_asset/chara/player/game_object/TppPlayer2CallbackScript.lua` ```lua --TppPlayer2CallbackScript.lua TppPlayer2CallbackScript={ ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/level_asset/chara/player/game_object/player2_camouf_param.lua` ```lua this.materialTypeNames= { ... } this.materialTypes=Tpp.Enum(this.materialTypeNames) this.playerCamoTypes= { ... } this.camoTypes=Tpp.Enum(this.playerCamoTypes) this.camoTable= { ... } ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/level_asset/damage/ParameterTables/DamageParameterTables.lua` ```lua this.parameterNames= { ... } this.parameterEnum={} this.DamageParameter= { ... } this.damageTypeToEntry={} function this.GetEntry(damageId) function this.GetParameter(damageId,parameter) function this.SetParameter(damageId,parameter,value) this.DamageParameter=nil--tex clear, if you're not doing any runtime analysis ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/level_asset/weapon/ParameterTables/RecoilMaterial/RecoilMaterialTable.lua` ```lua this.reloadRecoilMaterials= { ... } ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/level_asset/weapon/ParameterTables/parts/EquipMotionDataForChimera.lua` ```lua this.equipMotionData= { ... } ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/level_asset/weapon/ParameterTables/parts/EquipParameters.lua` ```lua this.equipParameterTables= { ... } ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/motherbase/script/EquipDevelopConstSetting.lua` ```lua this.descriptiveParamToParamName= { ... } this.equipDevTable= { ... } function this.BuildCSVLines(equipDevTable) --tex could change this so it's overwrite/overload instead of whole table replace function this.ReadCSVLines(lines) ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/motherbase/script/EquipDevelopFlowSetting.lua` ```lua this.descriptiveParamToParamName= { ... } this.equipDevTable= { ... } ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/Tpp.lua` ```lua this.requires= { ... } function this.IsTypeFunc(e) function this.IsTypeTable(e) function this.IsTypeString(e) function this.IsTypeNumber(e) --NMC GOTCHA TppDefine.Enum indexed from 0, Tpp.Enum indexed from one. silly. --GOTCHA this also adds to input table instead of giving new TODO review in light of this function this.Enum(nameTable) function this.IsMaster() function this.IsQARelease() function this.SplitString(string,delim) function this.StrCode32Table(table) function this.ApendArray(destTable,sourceTable) function this.MergeTable(table1,table2,unk3) function this.IsOnlineMode()--RETAILPATCH 1081 function this.IsValidLocalOnlineChallengeTaskVersion() function this.BfsPairs(r) local function p(n,e) this._DEBUG_svars={} this._DEBUG_gvars={} --IN: messages (str32 keyed)table from various module .Messages() func --OUT: messageExecTable[messageClassS32][messageNameS32].func=classMessageFunc --or messageExecTable[messageClassS32][messageNameS32].sender[senderId]=classMessageFunc --tex NMC senderId is either str32 of original sender or gameId --In most cases table is output to some .messageExecTable function this.MakeMessageExecTable(messagesS32) --tex NMC CheckMessageOption seems to always be TppMission.CheckMessageOption --messageClass: confusingly is OnMessage 'sender', messageClass is ex (s32 of) 'Player','GameObject','UI' etc, actual msg sender param is more what you'd expect, a name of what sent the message --REF (the actual inputs differ because they've been through a couple of tranformation functions that batch individual stuff across categories and str32ified) --this.messageExecTable=Tpp.MakeMessageExecTable < Tpp.StrCode32Table < this ref function this.DoMessage(messageExecTable,CheckMessageOption,messageClass,messageId,arg0,arg1,arg2,arg3,strLogText) function this.DoMessageAct(messageIdRecievers,CheckMessageOption,arg0,arg1,arg2,arg3,strLogText) function this.GetRotationY(rotQuat) function this.GetLocator(identifier,key) function this.GetLocatorByTransform(identifier,key) function this.GetDataWithIdentifier(identifier,key,typeName) function this.GetDataBodyWithIdentifier(identifier,key,typeName) function this.SetGameStatus(status) function this.GetAllDisableGameStatusTable() function this.GetHelicopterStartExceptGameStatus() local function IsGameObjectType(gameObject,checkType) function this.IsPlayer(gameId) function this.IsLocalPlayer(playerIndex) function this.IsSoldier(e) function this.IsCommandPost(e) function this.IsHostage(e) function this.IsVolgin(e) function this.IsHelicopter(e) function this.IsEnemyHelicopter(e) function this.IsHorse(e) function this.IsVehicle(e) function this.IsPlayerWalkerGear(e) function this.IsEnemyWalkerGear(e) function this.IsUav(e)--RETAILBUG well not really, just that there's two identical functions with different cap, IsUav and IsUAV function this.IsFultonContainer(e) function this.IsMortar(e)--RETAILPATCH 1070 function this.IsGatlingGun(e) function this.IsMachineGun(e) function this.IsFultonableGimmick(e) function this.GetBuddyTypeFromGameObjectId(gameObjectType) function this.IsMarkerLocator(e) function this.IsAnimal(gameId) function this.IsBossQuiet(e) function this.IsParasiteSquad(e) function this.IsSecurityCamera(e) function this.IsGunCamera(gameId) function this.IsUAV(e) function this.IncrementPlayData(gvarName) function this.IsNotAlert() function this.IsPlayerStatusNormal() function this.AreaToIndices(areaExtents) function this.CheckBlockArea(areaExtents,blockIndexX,blockIndexY) function this.FillBlockArea(blockTable,minX,minY,maxs,maxY,fillValue) function this.GetCurrentStageSmallBlockIndex() function this.IsLoadedSmallBlock(blockIndexX,blockIndexY) function this.IsLoadedLargeBlock(blockName) function this.GetLoadedLargeBlock() function this.GetChunkIndex(locationId,isMGO)--tex VERIFY, ssd param2 is missioncode function this.StartWaitChunkInstallation(chunkIndex) function this.ShowChunkInstallingPopup(chunkId,useOneCancelButtonPopup) function this.ClearChunkInstallPopupUpdateTime() function this.GetFormatedStorageSizePopupParam(neededSpace) --RETAILPATCH 1070 reworked> function this.PatchDlcCheckCoroutine(OnPatchExist,OnPatchNotExist,skipDlcTypeCheck,dlcType) local function DebugPrint(message) local function ClosePopupYield() local function YeildWhileSaving() --RETAILPATCH 1070> function this.IsPatchDlcValidPlatform(dlcId) function this.ClearDidCancelPatchDlcDownloadRequest() function this.DEBUG_DunmpBlockArea(t,l,n) function this.DEBUG_DumpTable(l,n) function this.DEBUG_Where(stackLevel) function this.DEBUG_StrCode32ToString(str32string) function this.DEBUG_Fatal(e,e) function this.DEBUG_SetPreference(entityName,property,value) this._requireList={} ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppAnimal.lua` ```lua this.AnimalExtraId= { ... } this.AnimalIdTable= { ... } function this.Messages() function this.OnAllocate(missionTable) function this.Init(missionTable) function this.OnReload() function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this.GetDataBaseIdFromAnimalId(animalId) function this.SetEnabled(type,name,enabled) function this.SetRoute(type,name,route) function this.SetHerdRoute(type,name,route) function this.SetKind(type,name,fv2Index) function this.SetFova(type,name,color,seed) function this.SetNotice(type,name,enabled) function this.SetIgnoreNotice(type,name,enable) function this.SetSleep(type,name,enable) function this.SetAnimalId(type,name,animalId) function this.SetBird(birdList) --RETAILBUG tex I dont get why it's overriding TppRatBird enablebirds (which it is because of the order in Tpp.requires). I do see TppRatBird enablebirds has a bug, were they sidestepping that, otherwise how are the birds set up? function TppRatBird._EnableBirds(enable) --IN: quest script .QUEST_TABLE function this.OnActivateQuest(questTable) --.QUEST_TABLE function this.OnDeactivateQuest(questTable) function this.OnTerminateQuest(questTable) --tex REWORKED function this.CheckQuestAllTarget(questType,messageId,checkGameId,checkAnimalId) --ORIG --function this.CheckQuestAllTarget(questType,messageId,gameId,animalId) -- if not Tpp.IsAnimal(gameId)then -- return function this.GetQuestCount() --< function this.IsQuestTarget(gameId) ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppAnimalBlock.lua` ```lua this.CLOCK_MESSAGE_AT_NIGHT_FORMAT="AnimalRouteChangeAtNight%02d" this.CLOCK_MESSAGE_AT_MORNING_FORMAT="AnimalRouteChangeAtMorning%02d" this.weatherTable={} function this.GetDefaultTimeTable(animalType) function this.StopAnimalBlockLoad() function this.UpdateLoadAnimalBlock(blockIndexX,blockIndexY) function this.GetCurrentAnimalBlockAreaName() function this._UpdateActiveAnimalBlock(blockIndexX,blockIndexY) -- RET: animalBlockKeyName,animalBlockAreaName function this._GetAnimalBlockAreaName(areaSettings,maxAreaNum,areaKey,blockIndexX,blockIndexY) function this._GetSetupTable(animalType) function this._IsNight(currentTime,nightStart,nightEnd) function this._IsNightForAnimalType(animalType,time) function this._InitializeCommonAnimalSetting(animalType,animalSetting,setupTable) function this._SetHerdRoute(type,locatorFormat,routeFormat,groupIndex) function this._SetRoute(type,locatorFormat,routeFormat,animalIndex) function this._ChangeDeadState(type,position,rotY) function this._RegisterWeatherTable(sender,param,func) function this._RegisterClockMessage(clockFmt,clockTime,timeLagClock,RENsomeBool,animalGroupCount,changeRouteFunc) function this._AddClockMessage(n,t,a,r) function this._ChangeRouteAtTime(sender,time) function this._MakeMessageExecTable() function this._GetAnimalBlockState() function this.InitializeBlockStatus() function this.OnActivateAnimalBlock(e) function this.OnInitializeAnimalBlock() function mvars.animalBlockScript.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogTex) function this.OnReload() function this.OnAllocate(missionTable) function mvars.animalBlockScript.OnMessage(e,e,e,e,e,e,e) function this.OnTerminate() ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppCassette.lua` ```lua function this.Acquire(cassettesInfo) function this.AcquireOnMissionClear(missionCode) function this.AcquireOnMissionOpen(missionCode) --CALLER: msg OnPickUpWeapon > TppPlayer.OnPickUpWeapon function this.AcquireOnPickUp(cassetteIndex) function this.OnEstablishMissionClear() function this.OnEnterFreeHeliPlay() ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppCheckPoint.lua` ```lua function this.DeclareSVars() function this.Messages() function this.OnAllocate() function this.Init() function this.OnReload() function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this.Enable(enableInfo) function this.Disable(enableInfo) function this.Reset() --missionTable.sequence.checkPointList function this.RegisterCheckPointList(checkPointList) function this.SetCheckPointPosition() function this.GetCheckPointLocator(e)--NMC returns position,rotation function this.FindNearestCheckPoint(checkPoint) function this.IsEnable(checkPointName) function this.Update(checkPointInfo) function this.UpdateAtCurrentPosition() function this.DEBUG_Init() function this.DebugUpdate() function this._SetEnable(enableInfo,enable) function this._RegisterCheckPoint(checkPointName) function this._DoesBaseListInclude(baseName) function this._DoesCheckPointListInclude(checkPointId) ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppClock.lua` ```lua this.DEPLOY_TIME={CURRENT=0,MORNING=1,NIGHT=2} function this.FormalizeTime(time,_timeStringType) this.DAY_TO_NIGHT=this.FormalizeTime(WeatherManager.NIGHT_START_CLOCK,"string") this.NIGHT_TO_DAY=this.FormalizeTime(WeatherManager.NIGHT_END_CLOCK,"string") this.NIGHT_TO_MIDNIGHT="22:00:00" function this.RegisterClockMessage(id,_seconds) function this.UnregisterClockMessage(id) function this.GetTime(timeStringType) function this.GetTimeOfDay() function this.GetTimeOfDayIncludeMidNight() function this.SetTime(time) function this.AddTime(time) --CALLER: ExecuteMissionFinalize --deployTime set by user mission selecting in mission prep ui function this.SetTimeFromHelicopterSpace(deployTime,fromLocation,toLocation) function this.AddTimeFromHelicopterSpace(fromLocation,toLocation) local function IsToMotherBase(locationCode) function this.Start() function this.Stop() function this.SaveMissionStartClock(time) function this.RestoreMissionStartClock() function this.ParseTimeString(timeString,timeType) function this.OnAllocate(missionTable) this.TIME_AT_NIGHT=this.ParseTimeString(this.DAY_TO_NIGHT,"number") this.TIME_AT_MORNING=this.ParseTimeString(this.NIGHT_TO_DAY,"number") this.TIME_AT_MIDNIGHT=this.ParseTimeString(this.NIGHT_TO_MIDNIGHT,"number") ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppDebug.lua` ```lua function this.SetPlayLogEnabled(enable) function this.RequestResetPlayLog() function this.RequestUploadPlayLog() function this.ExportSavedPlayLog() this.PERF_CHECK_TYPE=Tpp.Enum{"OnUpdate","OnMessage","OnEnter"} this.Colors= { ... } function this.DEBUG_SetSVars(setList) function this.DEBUG_SetGVars(setList) function this.DEBUG_RestoreSVars() function this.DEBUG_SetOrderBoxPlayerPosition() function this.DEBUG_SVarsClear() function this.DEBUG_GetSysVarsLog() function this.DEBUG_WarpHelicopter(RENHeliName,route,position,point,setRoute) function this.DEBUG_WarpVehicleAndSoldier(soldierNameTable,vehiclename,route,position,point,setRoute) this.DEBUG_SkipOnChangeSVarsLog={timeLimitforSneaking=true,timeLimitforNonAbort=true} function this.DEBUG_AddSkipLogSVarsName(svarName) function this.DEBUG_FobGPU() function this.DEBUG_SetFobPlayerSneak() function this.DEBUG_SetFobPlayerDefence() function this.QARELEASE_DEBUG_Init() function this.QAReleaseDebugUpdate() local function s(t,a,i) local function i(n,o) function this.Print2D(e) function this.DEBUG_MakeUserSVarList(e) function this.AddReturnToSelector(e) function this.DEBUG_Init() function this.DEBUG_OnReload(missionTable) --- function this.DebugUpdate() function this.ShowMessageTable(newContext,messageName,messageTable) function this.PerfCheckStart(perCheckTypeEnum) function this.PerfCheckEnd(perCheckTypeEnum,unkP2String) function this.ErrorNotSupportYet(e) function this._GetColor(name) ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppDefine.lua` ```lua --NMC GOTCHA TppDefine.Enum indexed from 0, Tpp.Enum indexed from one. --GOTCHA pulls via pairs, so could use a non array table TODO review in light of this function this.Enum(enumNames) this.SMALL_DIAMOND_GMP=10000 this.LARGE_DIAMOND_GMP=100000 this.MAX_32BIT_UINT=4294967295 this.EXCEPTION_QUEUE_MAX=255 this.PICKABLE_MAX=16 this.PLACED_MAX=8 this.DEFAULT_EQUIP_MISSION_BLOCK_GROUP_SIZE=1677721 this.MISSION_COUNT_MAX=64 this.DEFAULT_SOLDIER_STATE_COUNT=160 this.DEFAULT_SOLDIER_OPTION_VARS_COUNT=160 this.DEFAULT_PASSAGE_INFO_COUNT=64 this.DEFAULT_PASSAGE_FLAG_COUNT=this.DEFAULT_PASSAGE_INFO_COUNT*5 this.DEFAULT_NOTICE_INFO_COUNT=24 this.DEFAULT_HOSTAGE_STATE_COUNT=32 this.ENEMY_FOVA_UNIQUE_SETTING_COUNT=16 this.DEFAULT_ENEMY_HELI_STATE_COUNT=1--NMC: despite the heli svar declarations being set up for an array like all the other object save vars, the actual saving may be to a non array? see TppEnemy.RestoreOnContinueFromCheckPoint2, RestoreOnMissionStart2, though that's just the reset, actual save/restore is in exe so not sure what its actually doing this.DEFAULT_WALKER_GEAR_STATE_COUNT=4--tex added this.DEFAULT_UAV_STATE_COUNT=0--tex added, search MAX_UAV_COUNT (set on fob) this.MAX_HOLD_RECOVERED_STATE_COUNT=32 this.MAX_HOLD_VEHICLE_BROKEN_STATE_COUNT=32 this.MAX_ANIMAL_RECOVERED_HISTORY_SIZE=50 this.MAX_SECURITY_CAMERA_COUNT=64 this.MAX_UAV_COUNT=16 this.SEARCH_TARGET_COUNT=8 this.CHECK_POINT_MAX=64 this.QUEST_MAX=250 this.QUEST_FACE_MAX=32 this.QUEST_ENEMY_MAX=8 this.REVENGE_MINE_BASE_MAX=20 this.MISSION_CLEAR_HISTORY_LIMIT=36 this.MAX_MISSION_TASK_COUNT=8 this.MAX_TAKING_OVER_HOSTAGE_COUNT=4 this.MAX_MB_DEMO_PLAYFLAG_MAX=4 this.INIT_HELI_ROUTE=0 this.PLAYSTYLE_SAVE_INDEX_MAX=20 this.PLAYSTYLE_HISTORY_MAX=2 this.MAX_TIPS_GUIDE_SHOWN_ONCE=256 this.MAX_CONTROL_GUIDE_SHOWN_ONCE=128 this.MESSAGE_GENERATION={[StrCode32"GameObject"]={[StrCode32"Fulton"]=0,[StrCode32"VehicleBroken"]=0}} this.DEFAULT_MESSAGE_GENERATION=1 this.ELAPSED_MISSION_COUNT_MAX=14 this.ELAPSED_MISSION_COUNT={INIT=-127,DONE_EVENT=-1,NOW_OCCURRING=0} this.ELAPSED_QUEST_COUNT={INIT=-127,DONE_EVENT=-1,NOW_OCCURRING=0} this.MISSION_START_RECOVER_DEMO_TYPE={NONE=0,VEHICLE=1,WALKER_GEAR=2} this.REWARD_MAX={MISSION=16,MB_MANAGEMENT=64,QUEST=8} this.REWARD_PARAM={TYPE=0,ARG1=1,ARG2=2,MAX=3} this.TRAP_TYPE=this.Enum{"NORMAL","TRIGGER"} this.TRAP_STATE=this.Enum{"ENABLE","DISABLE"} this.HOSTAGE_GM_TYPE=this.Enum{TppGameObject.GAME_OBJECT_TYPE_HOSTAGE2,TppGameObject.GAME_OBJECT_TYPE_HOSTAGE_UNIQUE,TppGameObject.GAME_OBJECT_TYPE_HOSTAGE_UNIQUE2} this.FULTONABLE_GIMMICK_TYPE=this.Enum{TppGameObject.GAME_OBJECT_TYPE_GATLINGGUN,TppGameObject.GAME_OBJECT_TYPE_MORTAR,TppGameObject.GAME_OBJECT_TYPE_MACHINEGUN} this.QUEST_MINE_TYPE_LIST={TppEquip.EQP_SWP_DMine,TppEquip.EQP_SWP_DMine_G01,TppEquip.EQP_SWP_DMine_G02} this.BUDDY_GM_TYPE_TO_BUDDY_TYPE= { ... } this.ANIMAL_GAMEOBJECT_TYPE=this.Enum{ this.MISSION_CLEAR_STATE_LIST={"INIT","NOT_CLEARED_YET","ESTABLISHED_CLEAR","MISSION_GAME_END","SHOW_CREDIT_END","BLACK_TELEPHOHE_END","REWARD_END","MISSION_FINALIZED"} this.MISSION_CLEAR_STATE=this.Enum(this.MISSION_CLEAR_STATE_LIST) this.ERROR_ID= { ... } this.UI_STATUS_TYPE_ALL= { ... } this.GAME_STATUS_TYPE_ALL={S_DISABLE_PLAYER_PAD=true,S_DISABLE_NPC=true,S_DISABLE_TARGET=true,S_DISABLE_NPC_NOTICE=true,S_DISABLE_PLAYER_DAMAGE=true,S_DISABLE_THROWING=true,S_DISABLE_PLACEMENT=true} this.SAVE_FILE_LOAD_RESULT=this.Enum{"NOT_EXIST_FILE","OK","OK_LOAD_BACKUP","DIFFER_FROM_CURRENT_VERSION","ERROR_LOAD_FAILED"} this.SAVE_FILE_LOAD_RESULT.INIT=-1 this.SAVE_SLOT= { ... } this.PROGRAM_SAVE_FILE_VERSION_OFFSET=65535 this.GAME_SAVE_FILE_NAME="TPP_GAME_DATA" this.GAME_SAVE_FILE_NAME_TMP="TPP_GAME_DATA_TMP" this.MGO_MAIN_SAVE_FILE_NAME="MGO_MAIN_DATA" this.CONFIG_SAVE_FILE_NAME="TPP_CONFIG_DATA" this.MGO_SAVE_FILE_NAME="MGO_GAME_DATA" this.PERSONAL_DATA_SAVE_FILE_NAME="PERSONAL_DATA" this.CATEGORY_MISSION_RESTARTABLE=2 this.SAVE_FILE_INFO= { ... } this.PROGRAM_SAVE_FILE_VERSION=TppScriptVars.GetProgramVersionTable() this.VARS_GROUP_GAME_DATA_ON_START_MISSION=bor(TppScriptVars.GROUP_BIT_GVARS,TppScriptVars.GROUP_BIT_VARS) this.MISSION_LOAD_TYPE=this.Enum{"MISSION_FINALIZE","MISSION_ABORT","MISSION_RESTART","CONTINUE_FROM_CHECK_POINT"} this.LOCATION_ID= { ... } this.LOCATION_CHUNK_INDEX_TABLE= { ... } this.WEATHER={SUNNY=0,CLOUDY=1,RAINY=2,SANDSTORM=3,FOGGY=4,POURING=5} this.MISSION_LIST= { ... } this.MISSION_ENUM=this.Enum(this.MISSION_LIST) this.HARD_MISSION_LIST={"11043","11041","11054","11085","11082","11090","11036","11033","11050","11091","11195","11211","11140","11200","11080","11171","11121","11115","11130","11044","11052","11151"} this.HARD_MISSION_ENUM=this.Enum(this.HARD_MISSION_LIST) this.MISSING_NUMBER_MISSION_LIST={"11041","11085","11036","11091","11195","11211","11200","11171","11115","11052","10230"} this.MISSING_NUMBER_MISSION_ENUM=this.Enum(this.MISSING_NUMBER_MISSION_LIST) this.SYS_MISSION_ID={INIT=1,TITLE=5,AFGH_FREE=30010,MAFR_FREE=30020,MTBS_FREE=30050,MTBS_ZOO=30150,MTBS_WARD=30250,AFGH_HELI=40010,MAFR_HELI=40020,MTBS_HELI=40050,HELI_SPACE=40060,FOB=50050,SELECT=6e4} this.NO_ORDER_BOX_MISSION_LIST={"10010","10020","10030","10050","11050","10070","10080","11080","10115","11115","10140","11140","10150","10151","11151","10240","10260","10280"} this.NO_ORDER_BOX_MISSION_ENUM=this.Enum(this.NO_ORDER_BOX_MISSION_LIST) this.NO_ORDER_FIX_HELICOPTER_ROUTE={[10240]="rt_drp_mbqf_N",[10260]="drp_s10260"} this.NO_HELICOPTER_ROUTE_MISSION_LIST={"10010","10020","10030","10050","11050","10070","10080","11080","10140","11140","10150","10151","11151","10240","10280"} this.NO_HELICOPTER_ROUTE_ENUM=this.Enum(this.NO_HELICOPTER_ROUTE_MISSION_LIST) this.NO_HELICOPTER_MISSION_START_POSITION= { ... } this.NO_BOX_MISSION_START_POSITION= { ... } this.EMERGENCY_MISSION_LIST={10115,50050} this.EMERGENCY_MISSION_ENUM=this.Enum(this.EMERGENCY_MISSION_LIST) this.LOCATION_HAVE_MISSION_LIST= { ... } this.OFFLINE_MOHTER_BASE_LAYOUT_CODE=0 this.STORY_MISSION_LAYOUT_CODE= { ... } this.INVALID_LAYOUT_CODE=65535 this.STORY_MISSION_CLUSTER_ID= { ... } this.INVALID_CLUSTER_ID=255 this.STORY_SEQUENCE_LIST= { ... } this.STORY_SEQUENCE=this.Enum(this.STORY_SEQUENCE_LIST) this.MISSION_COMMON_PACK= { ... } this.SOLIDER2_COMMON_PACK= { ... } this.DEFAULT_SOLIDER2_COMMON_PACKAGE=StrCode32"default" this.SOLIDER2_COMMON_PACK_PREREQUISITES={s10150_special={"mission_block"},s10151_special={"mission_block"},s10151_ending={"mission_block"}} this.AFR_ARMOR={TYPE_CFA=1,TYPE_ZRS=2,TYPE_RC=3} this.QUEST_DEFINE= { ... } this.NUM_VANILLA_QUEST_DEFINES=167--tex added this.QUEST_RANDOM_FACE_DEFINE= { ... } this.QUEST_HELI_DEFINE= { ... } this.REMOVAL_TROPHY_QUEST=this.Enum{ this.QUEST_TYPE={STORY=1,RECOVERED=2,ELIMINATE=3,ANIMAL_RECOVERED=4,DEVELOP_RECOVERED=5,GIMMICK_RECOVERED=6,MSF_RECOVERED=7,SHOOTING_PRACTIVE=8,}--GOTCHA: typo: PRACTIVE, also TppQuest category enum is TARGET_PRACTICE rather than SHOOTING this.QUEST_CLEAR_TYPE={NONE=1,CLEAR=2,FAILURE=3,UPDATE=4,SHOOTING_CLEAR=5,SHOOTING_RETRY=6} this.QUEST_RACE_TYPE={CAUCASIAN=0,BROWN=1,BLACK=2,ASIA=3} this.QUEST_GENDER_TYPE={MAN=0,WOMAN=1} this.QUEST_INDEX=this.Enum(this.QUEST_DEFINE) this.QUEST_RANDOM_FACE_INDEX=this.Enum(this.QUEST_RANDOM_FACE_DEFINE) this.QUEST_RANK_LIST={"S","A","B","C","D","E","F","G","H","I"} this.QUEST_RANK=Tpp.Enum(this.QUEST_RANK_LIST) this.QUEST_BONUS_GMP= { ... } this.QUEST_RANK_TABLE= { ... } this.QUEST_BODY_ID_LIST= { ... } this.QUEST_FACE_ID_LIST= { ... } this.MISSION_CLEAR_RANK_LIST={"S","A","B","C","D","E"} this.MISSION_CLEAR_RANK=Tpp.Enum(this.MISSION_CLEAR_RANK_LIST) this.MISSION_CLEAR_RANK.NOT_DEFINED=0 this.INITIAL_PLAYER_STATE={MIN=0,ON_FOOT=1,RIDEON_HELICOPTER=2,MAX=3} this.MB_FREEPLAY_DEMO_PRIORITY_LIST= { ... } this.MB_FREEPLAY_DEMO_ENUM=this.Enum(this.MB_FREEPLAY_DEMO_PRIORITY_LIST) this.FORCE_MB_RETURN_RADIO_LIST= { ... } this.FORCE_MB_RETURN_RADIO_ENUM=this.Enum(this.FORCE_MB_RETURN_RADIO_LIST) this.S10100_BOY_LIST={"Collect_Injury","Collect_YellowHood","Collect_Aflo","Collect_ShortAflo","Collect_BlackCoat"} this.S10100_BOY_ENUM=this.Enum(this.S10100_BOY_LIST) this.MB_FREEPLAY_DEMO_REQUESTFLAG_LIST={"PlayAfterQuietBattle","PlayAfterDethFactory","PlayAfterWhiteMamba"} this.MB_FREEPLAY_DEMO_REQUESTFLAG_DEFINE=this.Enum(this.MB_FREEPLAY_DEMO_REQUESTFLAG_LIST) this.MB_FREEPLAY_LARGEDEMO={"GoToMotherBaseAfterQuietBattle","NuclearEliminationCeremony","DecisionHuey","InterrogateQuiet","TheGreatEscapeLiquid"} this.MB_FREEPLAY_RIDEONHELI_DEMO={"DdogGoWithMe","QuietWishGoMission"} this.MB_FREEPLAY_RIDEONHELI_DEMO_DEFINE=this.Enum(this.MB_FREEPLAY_RIDEONHELI_DEMO) this.GAME_OVER_TYPE= { ... } this.GAME_OVER_RADIO= { ... } this.GAME_OVER_TARGET_DEAD_DEMO_TIME=6 this.GAME_OVER_S10020_TARGET_TIMEOVERDEAD_DEMO_TIME=25 this.GAME_OVER_S10030_SHOT_OCELOT_BY_TULLET_TIME=1 this.GAME_OVER_S10090_TARGET_DEAD_TIME=4 this.GAME_OVER_S10090_TARGET_FULTON_FAILED_TIME=4 this.FOB_DEFENCE_GAME_OVER_TYPE={INIT=0,PLAYER_DEAD=1,HOST_ENTER_GOAL=2} this.COMMON_RADIO= { ... } this.MISSION_CLEAR_TYPE= { ... } this.ELAPSED_MISSION_EVENT_LIST= { ... } this.ELAPSED_MISSION_EVENT=this.Enum(this.ELAPSED_MISSION_EVENT_LIST) this.INIT_ELAPSED_MISSION_COUNT= { ... } this.QUIET_REUNION_MISSION_COUNT=6--RETAILPATCH 1006 added this.WEAPONSLOT={MIN=0,PRIMARY_HIP=0,PRIMARY_BACK=1,SECONDARY=2,SUPPORT_0=3,SUPPORT_1=4,SUPPORT_2=5,SUPPORT_3=6,SUPPORT_4=7,SUPPORT_5=8,SUPPORT_6=9,SUPPORT_7=10,MAX=11,GUN_WEAPON_MAX=4} this.HONEY_BEE_EQUIP_ID=TppEquip.EQP_WP_HoneyBee this.INIT_MAG={ASSAULT_DEFAULT=8,MACHINEGUN_DEFAULT=3,SHOTGUN_DEFAULT=10,SNIPER_DEFAULT=10,MISSILE_DEFAULT=4,HANDGAN_DEFAULT=10,SUBMACHINEGUN_DEFAULT=10} this.SCRIPT_BLOCK_STATE={MIN=0,EMPTY=1,ALLOCATED=1,INITIALIZED=2,ACTIVATE_REQUESTED=3,WAITING_ACTIVATE=4,ACTIVATED=5,MAX=6} this.HOSTAGE_UNLOCK_START=0 this.HOSTAGE_UNLOCK_FINISH=1 this.STOCK_DIRECTION_RIGHT=0 this.STOCK_DIRECTION_LEFT=1 this.TIPS={TIPS=1,R3_ZOOM=2,COVER=3,COVER_SHOOT=4,QUICK_DIVE=5,REFLEX_MODE=6,WEAPON_RANGE=7,RETICLE_COLOR=8,RELOAD=9,STOCK_CHANGE=10,INJURY=11,AUTO_AIM=12,VIEWPOINT_WEAPON=13,TAKE_DOWN=14,BASIC=15,SPOTTED=16,INFILTRATING=17,BINO_MARKING=18,PUT_MARKER=19,RADIO_ESPIONAGE=20,LOG=21,COMOF_STANCE=22,STEALTH_MODE=23,TRASH=24,TOILET=25,HORSE_HIDEACTION=26,ACTION_MAKENOISE=27,CALL_MENU=28,TRANQUILIZER=29,PICKUP_WEAPON=30,AMMO=31,CARRY_WEAPON_LIMIT=32,HOLD_UP=33,SUPPRESSOR=34,THROW_EQUIP=35,NVG=36,BINOCULARS=37,AUDIO_CUE=38,MARKING=39,NIGHT=40,COMBAT_ALERT=41,ELUDE=42,QUICK_CHANGE=43,CQC=44,CQC_THROW=45,CQC_ATTACK=46,CQC_HOLD_UP=47,CQC_COMB=48,CQC_HOLD=49,CQC_INTERROGATION=50,CQC_CHOKE=51,CQC_KILL=52,HOLD_UP_INTERROGATION=53,GET_DOWN=54,INTERPRETER=55,FREE_RUN=56,DAY_NIGHT_SHIFT=57,COMOF_NIGHT=58,COMOF_INGRASS=59,SAND_STORM=60,COMOF_VEHICLE=61,TRACK_HIDE=62,ROLLING=63,CRACK_CLIMB=64,BULLET_PENETRATE=65,NON_LETHAL_BULLET=66,BULLET_REFILL=67,SUPPLY_WEAPON=68,SUPPORT_HELI=69,ACC=70,TACTICAL_BUDDY=71,BUDDY_COMMAND=72,BUDDY_HORSE=73,ANIMALS=74,SAVE_ANIMAL=75,PLANT=76,DIAMOND=77,MATERIAL=78,COMMUNICATOR=79,ELECTRICITY=80,RADAR=81,SEARCH_LIGHT=82,GUN_LIGHT=83,SNIPER_RIFLE=84,FLARE_GRENADE=85,ITEM=86,CARDBOARD_BOX=87,PHANTOM_CIGAR_TOILET=88,MICROPHONE=89,MB_DEVICE=90,FULLTON_DEVICE=91,SHOWER_ROOM=92,MB_CLASS_FUNCTION=93,FULTON_CLASS_FUNCTION_STOP=94,GMP=95,LOSS_GMP=96,RANK=97,MORALE=98,EMBLEM=99,RECO_TRANQUILIZER=100,FREE=101,SKILL=102,WOOD_BOX=103,RED_DRUMS=104,FOG=105,MAP_SHORTCUT=106,FULLTON_RECOVERY=107,FULTON_MACHINEGUN=108,DEV_DOCUMENT=109,BOX_MOVE=110,SUPPORT_ATTACK=111,HEROISM=112,CODENAMES=113,DEVELOPMENT=114,TANK=115,GUNSHIP=116,BUDDY_DOG=117,DECOY=118,MINE=119,ACTIVE_SONAR=120,BUDDY_WALKER=121,FULTON_COMMON_VEHICLE=122,FULTON_CONTAINER=123,RAIN=124,UNDER_BARREL=125,BUDDY_QUIET=126,SLEEP_GUS=127,TROUBLE=128,FOB_WORM_HOLE=129,INJURY_2=130,BULLET_PENETRATE_FAIL=131,ANIMAL_CAGE=132,FULTON_MORTAR=133,FULTON_ANTI_AIRCRAFT=134,PHANTOM_CIGAR_TRASH=135,FOB_ABILITY=136,WORM_HOLE=137,FOB_SHIELD=138,ESP_POINT=139,STAFF_RANK_BONUS=140,FOB_GOAL=141,FOB_GOAL_BONUS=142,DIRECT_CONTRACTS=143,REVENGE_WORM_HOLE=144,NUCLEAR_WEAPON=145,FOB_HERO=146,EQUIPPED_GUARDS=147,PF_RATING=148,PF_POINT=149,FOB_SUPPORT=150,FOB_RESCUE_STAFF=151,EMERGENCES=152,FOB_CONSTRUCT=153,ONLINE_DISPATCH_MISSION=154} this.TIPS_REDUNDANT_REF={[this.TIPS.INJURY_2]=this.TIPS.INJURY,[this.TIPS.BULLET_PENETRATE_FAIL]=this.TIPS.BULLET_PENETRATE,[this.TIPS.ANIMAL_CAGE]=this.TIPS.SAVE_ANIMAL,[this.TIPS.FULTON_MORTAR]=this.TIPS.FULTON_MACHINEGUN,[this.TIPS.FULTON_ANTI_AIRCRAFT]=this.TIPS.FULTON_MACHINEGUN,[this.TIPS.PHANTOM_CIGAR_TRASH]=this.TIPS.PHANTOM_CIGAR_TOILET} this.CONTINUE_TIPS_TABLE={[this.STORY_SEQUENCE.STORY_START]={"BASIC","SPOTTED"},[this.STORY_SEQUENCE.CLEARD_ESCAPE_THE_HOSPITAL]={"AUDIO_CUE","MARKING","NIGHT","COMBAT_ALERT"},[this.STORY_SEQUENCE.CLEARD_TO_MATHER_BASE]={"TRANQUILIZER"},[this.STORY_SEQUENCE.CLEARD_FIND_THE_SECRET_WEAPON]={"DEVELOPMENT","GUNSHIP","TANK"}} this.CONTROL_GUIDE={MB_DEVICE=1,BINO=2,BINO_ZOOM=3,OPTIONALRADIO=4,CUSTUMMARKER=5,ADVICE=6,HORSE_CALL=7,HORSE_HIDE=8,HORSE_HIDE_CHANGE=9,HORSE_RUN=10,HORSE_RIDEON=11,HORSE_GETOFF=12,GET_INTEL=13,ATTACK=14,RELOAD=15,CURE=16,JUMP=17,STANCE=18,LOOK_IN=19,ELUDE_UP=20,ELUDE_DOWN=21,CLIMEB_UP=22,ROLLING=23,COVER_ATTACK=24,SHOULDER=25,SHOULDER_THROW=26,HULTON=27,PIPE_UP=28,FREECLIMD=29,GARBAGEBOX_HIDE=30,CQC=31,CQC_PUNCH=32,CQC_THROW=33,RESTRAINT2=34,NONE=35,INTERROGATION=36,SWOON=37,KILL=38,C4_SET=39,C4_EXPLODING=40,ACCELARATER=41,BRAKE=42,HELI_RIDEON=43,HELI_GETOFF=44,CQC_COMBO=45,EQUIPMENT_WP=46,CAMERA_MOVE=47,CAMERA_ZOOM=48,CAMERA_CHANGE=49,PLAY_MOVE=50,PLAY_COVER=51,PLAY_DASH=52,PLAY_EVADE=53,ORDER_CHILD=54,MACHINEGUN=55,MORTAR=56,ANTI_AIRCRAFT=57,SEARCH_LIGHT=58,UNDER_BARREL=59,MOVE_IN_HELI=60,BOOSTER_SCOPE=61,DRIVE_COMMON_VEHICLE=62,DRIVE_WALKER_GEAR=63,RIDE_HORSE=64,SNIPER_RIFLE=65,SHIELD=66,STANCE_SQUAT=67,STANCE_CRAWL=68,STEP_FENCE=69,ATTACK_VEHICLE_SHOOT=70,ATTACK_VEHICLE_CAMERA=71,VEHICLE_LIGHT=72} this.PAUSE_CONTROL_GUIDE={[this.CONTROL_GUIDE.DRIVE_COMMON_VEHICLE]="vehicle",[this.CONTROL_GUIDE.DRIVE_WALKER_GEAR]="walker-gear",[this.CONTROL_GUIDE.RIDE_HORSE]="horse"} this.CONTROL_GUIDE_LANG_ID_LIST={"tutorial_mb_device","tutorial_bino","tutorial_bino_zoom","tutorial_optionalradio","tutorial_set_marker","tutorial_advice","tutorial_horse_call","tutorial_horse_hide","tutorial_horse_hide_change","tutorial_horse_run","tutorial_horse_rideon","tutorial_horse_getoff","tutorial_get_intel","tutorial_attack","tutorial_reload","tutorial_cure","tutorial_jump","tutorial_stance","tutorial_look_in","tutorial_elude_up","tutorial_elude_down","tutorial_climeb_up","tutorial_rolling","tutorial_cover_attack","tutorial_shoulder","tutorial_shoulder_throw","tutorial_hulton","tutorial_pipe","tutorial_cliff","tutorial_garbagebox_hide","tutorial_cqc","tutorial_cqc_punch","tutorial_cqc_throw","tutorial_restraint2","","tutorial_interrogation","tutorial_swoon","tutorial_kill","tutorial_C4_set","tutorial_C4_exploding","tutorial_accelarater","tutorial_brake","tutorial_heli_rideon","tutorial_heli_getoff","tutorial_cqc_combo","tutorial_equipment_wp","tutorial_camera_move","tutorial_camera_zoom","tutorial_camera_change","tutorial_play_move","tutorial_play_cover","tutorial_play_dash","tutorial_play_evade","tutorial_order_child","tutorial_attack_machinegun","tutorial_attack_mortar","tutorial_attack_anti_aircraft","tutorial_searchlight_onoff","tutorial_change_barrel","tutorial_play_move","tutorial_bino_zoom","tutorial_show_controller","tutorial_show_controller","tutorial_show_controller","tutorial_change_camera","tutorial_shield2","tutorial_stance3","tutorial_stance2","tutorial_fence_jump","tutorial_v_attack","tutorial_v_fps_tps","tutorial_searchlight_onoff"} this.GMP_COST_TYPE={FULTON=1,SUPPORT_SUPPLY=2,SUPPORT_ATTACK=3,CALL_HELLI=4,BUDDY=5,CLEAR_SIDE_OPS=6,DESTROY_SUPPORT_HELI=7} this.CLUSTER_NAME={"Command","Combat","Develop","Support","Medical","Spy","BaseDev"} this.CLUSTER_DEFINE=this.Enum(this.CLUSTER_NAME) this.PLNT_NAME={"Special","Common1","Common2","Common3"} this.PLNT_DEFINE=this.Enum(this.PLNT_NAME) this.SECURITY_SETTING= { ... } this.FOB_EVENT_ID_LIST= { ... } this.STATION_LIST= { ... } this.STAFF_TYPE_ID={NORMAL=1,COMBAT=2,DEVELOP=3,BASE_DEV=4,SUPPORT=5,SPY=6,MEDICAL=7} this.UNIQUE_STAFF_TYPE_ID= { ... } this.IGNORE_EXIST_STAFF_CHECK= { ... } this.CYPR_PLAYER_INITIAL_WEAPON_TABLE={{secondary="EQP_None"},{primaryHip="EQP_None"},{primaryBack="EQP_None"},{support="EQP_None"},{support="EQP_None"},{support="EQP_None"},{support="EQP_None"},{support="EQP_None"},{support="EQP_None"},{support="EQP_None"},{support="EQP_None"}} this.CYPR_PLAYER_INITIAL_ITEM_TABLE={"EQP_None","EQP_None","EQP_None","EQP_None","EQP_None","EQP_None","EQP_None"} this.RANKING_MAX=21 this.RANKING_ENUM=Tpp.Enum{ this.DEFAULT_DROP_ROUTE= { ... } this.DIRECTION_ZOOM_IN_CAMERA_ZOOM_INTERP_TIME=1 this.DIRECTION_ZOOM_IN_CAMERA_ROTATION_INTERP_TIME=1 this.ENEMY_HELI_COLORING_TYPE={DEFAULT=0,BLACK=1,RED=2} ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppDemo.lua` ```lua this.MOVET_TO_POSITION_RESULT={[StrCode32"success"]="success",[StrCode32"failure"]="failure",[StrCode32"timeout"]="timeout"} this.messageExecTable={} function this.Messages() this.PLAY_REQUEST_START_FUNC= { ... } this.PLAY_REQUEST_START_CHECK_FUNC= { ... } this.FINISH_WAIT_START_FUNC= { ... } this.FINISH_WAIT_CHECK_FUNC= { ... } function this.Play(demoName,demoFuncs,demoFlags) function this.EnableGameStatus(target,_except) function this.DisableGameStatusOnPlayRequest(isInGame) function this.DisableGameStatusOnPlayStart() function this.OnEndGameCameraInterp() function this.PlayOnDemoBlock() function this.FinalizeOnDemoBlock() function this.SetDemoTransform(demoName,setInfo) function this.GetDemoStartPlayerPosition(demoName) function this.PlayOpening(demoFuncs,_demoFlags) function this.PlayGetIntelDemo(demoFuncs,identifier,key,_demoFlags,t) function this.IsNotPlayable() function this.ReserveEnableInGameFlag() function this.EnableInGameFlagIfResereved() function this.ReserveInTheBackGround(demoFlags) function this.ExecuteBackGroundLoad(demoId) function this.SetStageBlockLoadPosition(position) function this.SetPlayerPause() function this.SetPlayerWarp(position,rotationY) function this.UnsetStageBlockLoadPosition() function this.UnsetPlayerPause() function this.ClearReserveInTheBackGround() function this.CheckEventDemoDoor(doorId,n,e) function this.SpecifyIgnoreNpcDisable(e) function this.ClearIgnoreNpcDisableOnDemoEnd() function this.IsPlayedMBEventDemo(demoName) function this.ClearPlayedMBEventDemoFlag(demoName) function this.OnAllocate(missionTable) function this.Init(missionTable) function this.OnReload(missionTable) function this.Update() --REF --this.demoList = { -- Demo_RecoverReptilePod = "p31_060010", function this.Register(list) function this.AddDemo(demoName,demoId) function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this.FadeOutOnSkip() function this.OnDemoPlay(demoName,t) function this.OnDemoEnd(demoName) function this.OnDemoInterrupt(demoName) function this.OnDemoSkip(demoName,demoIdStr32) function this.EnableWaitBlockLoadOnDemoSkip() function this.OnDemoSkipAndBlockLoadEnd() function this.DoOnEndMessage(demoName,r,exceptGameStatus,t,a) function this.OnDemoDisable(demoName) function this.AddPlayReqeustInfo(demoId,demoFlags) function this.MakeNewPlayRequestInfo(demoFlags) function this.DeletePlayRequestInfo(demoId,demoFlags) function this.ProcessPlayRequest(playRequestInfoDemoBlock) function this.CanStartPlay(demoId,startCheckFuncions) function this.AddFinishWaitRequestInfo(demoId,demoFlags,finishWaitFuncName) function this.ProcessFinishWaitRequestInfo() function this.CanFinishPlay(demoId,t) function this._Play(demoName,demoId) function this._OnDemoInit(demoIdStr32) function this._OnDemoPlay(demoIdStr32) function this._OnDemoEnd(demoIdStr32) function this._OnDemoInterrupt(demoIdStr32) function this._OnDemoSkip(demoIdStr32) function this._OnDemoDisable(demoIdStr32) function this._DoMessage(demoName,functionName) this.mtbsPriorityFuncList= { ... } function this.UpdateHappyBirthDayFlag() function this.GetMBDemoName() function this.UpdateMBDemo() function this.IsUseMBDemoStage(demoName) function this.SetNextMBDemo(demoName) function this.CanUpdateMBDemo() function this.IsQuestStart() function this.IsSortieMBDemo(demoName) function this.IsBattleHangerDemo(demoName) function this.EnableNpc(demoName) function this.UpdateNuclearAbolitionFlag() ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppDemoBlock.lua` ```lua this.isAllocatedMtbsEnemy=false function this.OnAllocate() function this.OnInitialize() function this.OnUpdate() function this.OnTerminate() ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppEmblem.lua` ```lua function this.AcquireOnSRankClear(a) function this.AcquireOnMissionClear(r) function this.AcquireOnAllMissionTaskComleted(r) function this.AcquireOnAllMissionCleared() function this.AcquireOnAllMissionSRankCleared() function this._AcquireByMissionCode(a,r) function this.SetUpCpEmblemTag(cpName,cpId) function this.AcquireOnCommandPostAnnihilated(cpName) function this.AcquireByPlayStyle(r) function this.Add(o,e,a) function this.Remove(o) ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppEneFova.lua` ```lua this.S10030_FaceIdList={78,200,283,30,88,124,138,169,213,222,243,264,293,322,343} this.S10030_useBalaclavaNum=3 this.S10240_FemaleFaceIdList={394,351,373,456,463,455,511,502} this.S10240_MaleFaceIdList={195,144,214,6,217,83,273,60,87,71,256,201,290,178,102,255,293,165,85,18,228,12,65,134,31,132,161,342,107,274,184,226,153,247,344,242,56,183,54,126,223} this.fovaSetupFuncs=fovaSetupFuncs this.noArmorForMission=noArmorForMission this.missionArmorType=missionArmorType this.missionHostageInfos=missionHostageInfos --NMC an addaption of switch / case from Case method on http://lua-users.org/wiki/SwitchStatement --mostly used for PreMissionLoad, but also in some of the fovaSetupFuncs[missionId] funcs to run the area fova func --why they didn't just call those functions directly I'm not sure. Maybe it just started as a select on missionId and passing missionId as a parameter --but then broke down when they decided to add area fova funcs. local function Select(switchTable) function switchTable:case(key,missionCode) function this.IsNotRequiredArmorSoldier(missionCode) function this.CanUseArmorType(missionCode,soldierSubType) function this.GetHostageCountAtMissionId(missionCode) function this.GetHostageLangAtMissionId(missionCode) function this.GetHostageUseHairAtMissionId(missionInfo) function this.GetHostageIsFaceModelOverlap(missionCode) function this.GetHostageFaceModelCount(missionCode) function this.GetHostageIgnoreFaceList(missionCode) --tex reworked function this.GetArmorTypeTable(missionCode) --ORIG --function this.GetArmorTypeTable(missionCode) -- if this.IsNotRequiredArmorSoldier(missionCode)then -- return{} function this.SetHostageFaceTable(missionId) function this.GetFaceGroupTableAtGroupType(faceGroupType) function fovaSetupFuncs.afgh(locationName,missionId)--tex was fovaSetupFuncs.Afghan function fovaSetupFuncs.mafr(locationName,missionId)--tex NMC was fovaSetupFuncs.Africa --tex NMC was fovaSetupFuncs.Mbqf --GOTCHA: locationCode 55 mbqf is only during 10240 interior (see the second , all other vanilla external missions are 50 mtbs --see s10240_sequence > Seq_Demo_GoToDoor > TppMission.Reload function fovaSetupFuncs.mbqf(locationName,missionId) balaclavas={ mtbsFaceSetupFuncs.default=function(faces) --tex NMC all TppDefine.LOCATION_HAVE_MISSION_LIST come through here, -- those with a fovaSetupFunc (10115,11115) call that first --MTBS={10030,10115,11115,10240,30050,30150,30250,40050,50050,65030},--NOTE: that includes zoo and mbqf missions. --but 10240 does a TppMission.Reload with locationCode = TppDefine.LOCATION_ID.MBQF when you reach the door which loads the interior, function fovaSetupFuncs.mtbs(locationName,missionId)--tex NMC was fovaSetupFuncs.Mb --tex >ASSUMPTION customSoldierType true --in theory (DEBUGNOW needs testing) this is set up for independant male and female (customSoldierType, customSoldierTypeFemale) with fallbacks to default mb dds setup --though its currently gated in fovaSetupFuncs.mtbs by customSoldierType function fovaSetupFuncs.mtbsCustomBody(locationName,missionId) function fovaSetupFuncs.cypr(locationName,missionId) function fovaSetupFuncs.default(locationName,missionId) --tex> Utility func for Mission addons function this.SetupFovaForLocation(locationName,missionId) --< --NMC: cant see any references to this function this.AddTakingOverHostagePack() function this.PreMissionLoad(missionId,currentMissionId) function this.InitializeUniqueSetting() function this.GetStaffIdForDD(missionId,ddIndex) function this.GetFaceIdForDdHostage(missionId) function this.GetFaceId_s10081() function this.GetFaceId_s10091_0() function this.GetFaceId_s10091_1() function this.GetFaceIdForFemaleHostage(missionCode) --tex> function this.GetFaceIdForMaleHostage(missionCode) --< function this.GetFaceIdAndFlag(fovaType,faceId) function this.RegisterUniqueSetting(uniqueType,name,faceId,bodyId) function this.AddUniqueSettingPackage(uniqueSettings) function this.AddUniquePackage(uniqueSettings) function this.ApplyUniqueSetting() function this.ApplyMTBSUniqueSetting(soldierId,faceId,useBalaclava,forceNoBalaclava) local function IsFemale(faceId) function this.IsUseGasMaskInMBFree(e) function this.IsUseGasMaskInFOB() function this.GetUavSetting()--RETAILPATCH: 1060 reworked --< --RETAILPATCH 1090> --NMC: cant see any references to this --rlc: tex forgot 1090 retailpatch changes in mtbs_script.fpkd/mtbs_enemy.lua, which calls this function this.GetUavCombatGradeAndEmpLevel(soldierEquipGrade,isNoKillMode,uavLevel,uavSleepingGusGrenadeLevel) --< function this.GetUniqueSettings()--tex> ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppEnemy.lua` ```lua local function RENAMEsomeFunction(i)--tex NMC: cant actually find reference to function, it looks similar to setsolidertype/subtype function this.Messages() this.POWER_SETTING= { ... } this.PHASE={SNEAK=0,CAUTION=1,EVASION=2,ALERT=3,MAX=4} this.ROUTE_SET_TYPES={"sneak_day","sneak_night","caution","hold","travel","sneak_midnight","sleep"} this.LIFE_STATUS={NORMAL=0,DEAD=1,DYING=2,SLEEP=3,FAINT=4} this.ACTION_STATUS={NORMAL=0,FULTON_RECOVERD=1,HOLD_UP_STAND=2,HOLD_UP_CROWL=3,NOW_CARRYING=4} this.SOLDIER_DEFINE_RESERVE_TABLE_NAME=Tpp.Enum{"lrrpTravelPlan","lrrpVehicle"} this.TAKING_OVER_HOSTAGE_LIST={"hos_takingOver_0000","hos_takingOver_0001","hos_takingOver_0002","hos_takingOver_0003"} this.ROUTE_SET_TYPETAG={} this.subTypeOfCpTable= { ... } this.subTypeOfCp={} this.subTypeOfCpDefault={}--tex added this.childBodyIdTable={TppEnemyBodyId.chd0_v00,TppEnemyBodyId.chd0_v01,TppEnemyBodyId.chd0_v02,TppEnemyBodyId.chd0_v03,TppEnemyBodyId.chd0_v05,TppEnemyBodyId.chd0_v06,TppEnemyBodyId.chd0_v07,TppEnemyBodyId.chd0_v08,TppEnemyBodyId.chd0_v09,TppEnemyBodyId.chd0_v10,TppEnemyBodyId.chd0_v11} this.bodyIdTable= { ... } this.weaponIdTable= { ... } this.gunLightWeaponIds= { ... } this.DDWeaponIdInfo= { ... } this.DEFAULT_HOLD_TIME=60 this.DEFAULT_TRAVEL_HOLD_TIME=15 this.DEFAULT_SLEEP_TIME=300 this.FOB_DD_SUIT_ATTCKER=1 this.FOB_DD_SUIT_SNEAKING=2 this.FOB_DD_SUIT_BTRDRS=3 this.FOB_PF_SUIT_ARMOR=4 function this._ConvertSoldierNameKeysToId(soldierTypes) function this._SetUpSoldierTypes(soldierType,soldierIds) function this.SetUpSoldierTypes(soldierTypes) function this._SetUpSoldierSubTypes(subTypes,soldierNames) function this.SetUpSoldierSubTypes(soldierSubTypes) function this.SetUpPowerSettings(soldierPowerSettings)-- ==missionTable.enemy.soldierPowerSettings { soldierName={powerSetting...}...} function this.ApplyPowerSettingsOnInitialize() function this.DisablePowerSettings(loadout) --settings==missionTable.enemy.soldierPersonalAbilitySettings function this.SetUpPersonalAbilitySettings(settings) function this.ApplyPersonalAbilitySettingsOnInitialize() function this.SetSoldierType(soldierId,soldierType) function this.GetSoldierType(soldierId)--tex> now pulls type for subtype> ORIG is below function this._GetSoldierType(soldierId)--tex was GetSoldierType function this.SetSoldierSubType(soldierId,subType) function this.GetSoldierSubType(soldierId,soldierType) function this.GetCpSubType(cpId) function this.GetDefaultSoldierSubType(soldierType) function this._CreateDDWeaponIdTable(developedEquipGradeTable,soldierEquipGrade,isNoKillMode) function this.GetDDWeaponCount() function this.ClearDDParameter() function this.PrepareDDParameter(soldierEquipGrade,isNoKillMode) function this.SetUpDDParameter() --CALLERS: TppRevenge._AllocateResources, TppEnemy.GetWeaponId --tex REWORKED --GOTCHA: soldierType==EnemyType, soldierSubType==string --is really GetSoldierWeaponIdTable function this.GetWeaponIdTable(soldierType,soldierSubType) --tex split out from GetWeaponIdTable --GetSoldierWeaponIdTableFromWeaponIdTable function this.GetSoldierWeaponIdTable(weaponIdTable,soldierType,soldierSubType) --tex REWORKED functionally equivalent to original, but heavier performance wise lol, but eh, I felt like refactoring --and it makes choosing final weapon ids from a table in IH easier function this.GetWeaponId(soldierId,config) --ORIG --function this.GetWeaponId(soldierId,config) -- local primary,secondary,tertiary -- local soldierType=this.GetSoldierType(soldierId) function this.GetBodyId(soldierId,soldierType,soldierSubType,soldierPowerSettings) --function this.GetBodyIdORIG(soldierId,soldierType,soldierSubType,soldierPowerSettings) -- local bodyId -- local bodyIdTable={} -- if soldierType==EnemyType.TYPE_SOVIET then function this.GetFaceId(soldierId,soldierType,subTypeName,soldierConfig) --CALLER: ApplyPowerSetting function this.GetBalaclavaFaceId(soldierId,soldierType,subTypeName,soldierConfig) function this.IsSniper(soldierId) function this.IsMissile(soldierId) function this.IsShield(soldierId) function this.IsArmor(soldierId) function this.IsHelmet(soldierId) function this.IsNVG(soldierId) function this.AddPowerSetting(soldierId,applySettings) function this.ApplyPowerSetting(soldierId,powerSettings) function this.ApplyPersonalAbilitySettings(soldierId,abilitySettings) function this.SetOccasionalChatList() function this.SetSaluteVoiceList() --CALLER: some _sequence scripts at MissionPrepare function this.RequestLoadWalkerGearEquip() function this.SetSoldier2CommonPackageLabel(label) function this.AssignUniqueStaffType(info) function this.IsActiveSoldierInRange(pos,range) function this._SetOutOfArea(soldierNames,outOfAreaList) function this.SetOutOfArea(soldierNames,isOut) function this.SetEliminateTargets(_targetList,exceptTable) function this.DeleteEliminateTargetSetting(soldierName) function this.SetRescueTargets(rescueTargetNames,rescueTargetOptions) function this.SetVipHostage(names)--NMC: ORPHAN aparently function this.SetExcludeHostage(hostagName) function this.GetAllHostages() function this.GetAllActiveEnemyWalkerGear() --NMC no references function this.SetChildTargets(targets) function this.SetTargetOption(targetName) function this.LetCpHasTarget(cp,enable) function this.GetPhase(cpName) function this.GetPhaseByCPID(cpId) function this.GetLifeStatus(gameId) function this.GetActionStatus(gameId) function this.GetStatus(nameOrId) function this.IsEliminated(gameId) function this.IsNeutralized(gameId) function this.IsRecovered(nameOrId) function this.ChangeLifeState(stateInfo) function this.SetSneakRoute(gameId,route,point,isRelaxed) function this.UnsetSneakRoute(soldierId) function this.SetCautionRoute(soldierId,route,point,r) function this.UnsetCautionRoute(soldierId) function this.SetAlertRoute(soldierId,route,point,r) function this.UnsetAlertRoute(soldierId) function this.RegistRoutePointMessage(routePointMessages) function this.IsBaseCp(cpId) function this.IsOuterBaseCp(cpId) --CALLER: From a few events/moments in mission scripts --See also UpdateRouteSet function this.ChangeRouteSets(routeSets,unk2) --REF info --{ -- cpName="afgh_field_cp", -- soldierList={ "sol_vip_0000", }, function this.InitialRouteSetGroup(info) --CALLER: s10150_enemy function this.RegisterHoldTime(cpName,holdTime) function this.ChangeHoldTime(cpName,holdTime) --CALLER: none function this.RegisterSleepTime(cpName,sleepTime) --CALLER: none function this.ChangeSleepTime(cpName,sleepTime) --CALLERS: some story missions --(sic) --NMC Used to put group into routeSets fixedShiftChangeGroup during mission --there doesn't seem to be a function to remove them function this.NoShifhtChangeGruopSetting(cpName,groupName) --missionTable.enemy.combatSetting function this.RegisterCombatSetting(combatSetting) local function MergeTables(t1,t2) function this.SetEnable(soldierId) function this.SetDisable(soldierId,noAssignRoute) function this.SetEnableRestrictNotice(soldierId) function this.SetDisableRestrictNotice(soldierId) function this.RealizeParasiteSquad() function this.UnRealizeParasiteSquad() function this.OnAllocate(missionTable) function this.DeclareSVars(missionTable) function this.ResetSoldier2CommonBlockPackageLabel() function this.RegisterSoldier2CommonMotionPackagePath(packageLabel) function this.IsRequiredToLoadSpecialSolider2CommonBlock() function this.IsRequiredToLoadDefaultSoldier2CommonPackage() function this.IsLoadedDefaultSoldier2CommonPackage() function this.LoadSoldier2CommonBlock() function this.UnloadSoldier2CommonBlock() function this.SetMaxSoldierStateCount(maxStateCount) function this.SetMaxHeliStateCount(maxStateCount)--tex> function this.SetMaxWalkerGearStateCount(maxStateCount)--tex> function this.SetMaxUAVStateCount(maxStateCount)--tex> --< function this.RestoreOnMissionStart2() function this.RestoreOnContinueFromCheckPoint2() function this.RestoreOnContinueFromCheckPoint() function this.RestoreOnMissionStart() function this.StoreSVars(_markerOnly) function this.PreMissionLoad(missionCode,currentMissionCode) function this.InitializeHostage2() function this.Init(missionTable) function this.RegistCommonRoutePointMessage() function this.OnReload(missionTable) function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) --IN: missionTable.enemy.soldierDefine function this.DefineSoldiers(soldierDefine) --CALLER: TppMain.OnInitialize function this.SetUpSoldiers() function this.AssignSoldiersToCP() --NMC: don't actually know what cp groups are used for function this.InitCpGroups() function this.RegistCpGroups(cpGroups) function this.SetCommonCpGroups() function this.SetCpGroups() --IN: missionTable.enemy.vehicleSettings ORPHANED: VERIFY: function this.RegistVehicleSettings(vehicleSettings) --NMC vehicleSpawnList = *_enemy.lua .VEHICLE_SPAWN_LIST function this.SpawnVehicles(vehicleSpawnList) function this.SpawnVehicle(spawnInfo) function this.RespawnVehicle(spawnInfo) function this.DespawnVehicles(despawnList) function this.DespawnVehicle(spawnInfo) --ORPHANED function this.SetUpVehicles() function this.AddCpIntelTrapTable(e) function this.GetCpIntelTrapTable() --CALLER: RouteSelector function this.GetCurrentRouteSetType(routeTypeStr32,phase,cpId) --CALLER: RouteSelector (though there's a Fox.Log warning in mtbs_enemy.GetRouteSetPriority mentioning it(via ene_funcRouteSetPriority -v-)) --routeSet: routeSet for cp (mvars.ene_routeSets[cpId]) --routeSetsPriorities: mvars.ene_routeSetsPriority --returns a list of routes by adding a route for each group in priority order till all routes are added function this.GetPrioritizedRouteTable(cpId,routeGroupsForRouteType,routeSetsPriority,routeSetTagOrGroupS32) --NMC called from engine with different cpids. Set up in SetUpCommandPost. Seems like it initially called right then. DEBUGNOW then at what other points? --see mvars.ene_routeSets via UpdateRouteSet, which is a transformed _enemy.routeSets and mvars.ene_routeSetsPriority for the main drivers of these functions --and RegisterRouteSet, ChangeRouteSets --the params are a mess because kjp tried to jam a lot of different concerns into them function this.RouteSelector(cpId,tagOrRouteTypeS32,tagOrSysPhaseOrGroup32) --DEBUGNOW tex REWORKED UNUSED function this.RouteSelectorNEW(cpId,routeTypeTagStr32,routeSetTagStr32) this.STR32_CAN_USE_SEARCH_LIGHT=StrCode32"CanUseSearchLight" this.STR32_CAN_NOT_USE_SEARCH_LIGHT=StrCode32"CanNotUseSearchLight" this.STR32_IS_GIMMICK_BROKEN=StrCode32"IsGimmickBroken" this.STR32_IS_NOT_GIMMICK_BROKEN=StrCode32"IsNotGimmickBroken" function this.SetUpSwitchRouteFunc() --NMC called from engine (when?) (set up in SetUpSwitchRouteFunc, right there -^-) --unk4 function this.SwitchRouteFunc(soldierId,gimmickStateS32,gimmickName,routeS32,unk5) function this.SetUpCommandPost() function this.RegisterRouteAnimation() --CALLERS: RegisterRouteSet, ChangeRouteSets --routeSets: _enemy.routeSets | some mission specific routeSets (ChangeRouteSets) --IN/SIDE: mvars.loc_locationCommonRouteSet --OUT/SIDE mvars.ene_routeSetsDefine function this.MergeRouteSetDefine(routeSets) local function MergeRouteSets(cpName,routeSet) --used by RouteSelector and GetPrioritizedRouteTable function this.UpdateRouteSet(routeSets) --CALLER: TppMain.OnInitialize,TppMain.OnReload --routeSets=missionTable.enemy.routeSets function this.RegisterRouteSet(routeSets) --CALLER: MakeShiftChangeTable function this._InsertShiftChangeUnit(cpId,insertPos,shiftChangeUnit) --CALLER: _MakeShiftChangeUnit function this._GetShiftChangeRouteGroup(priorityGroupsS32,numPriorities,priorityIndex,holdGroupS32Routes,sleepGroupS32Routes,priorityGroupNameS32,hasSleepGroup,fixedShiftChangeRouteSet) --Creates a shiftchangeunit that's used by _InsertShiftChangeUnit to transform-insert into mvars.ene_shiftChangeTable --CALLER: MakeShiftChangeTable while iterating over priorityGroupsS32, and passing in priorityIndex function this._MakeShiftChangeUnit(cpId,priorityGroupsS32,priorityGroupNameS32,holdGroupS32Routes,hasSleepGroup,sleepGroupS32Routes,hasMidnightGroup,numPriorityGroups,priorityIndex,insertPos,fixedShiftChangeRouteSet) --makes ene_shiftChangeTable based on routeset .hold and .sleep (see _MakeShiftChangeUnit -^-) --CALLERS: called pretty much whenever routeset is set up (but not for changeroutesets?) --USER: ShiftChangeByTime (mvars.ene_shiftChangeTable) --IN: mvars.ene_routeSetsPriority, mvars.ene_routeSets function this.MakeShiftChangeTable() --CALLER: Clock msgs ShiftChangeAtNight etc function this.ShiftChangeByTime(shiftName) local function CloserToPlayerThanDistSqr(checkDistSqr,playerPosition,gameId) --={ --=bool --... function this.MakeCpLinkDefineTable(lrrpNumberDefine,cpLinkMatrix) --OUT: mvars.ene_travelPlans, mvars.ene_reinforcePlans function this.MakeReinforceTravelPlan(lrrpNumberDefine,cpLinkDefine,locationName,toCp,fromCps) function this.MakeTravelPlanTable(lrrpNumberDefine,cpLinkDefine,locationName,planName,cpPlans,holdTime) function this.AddLinkedBaseTravelCourse(lrrpNumberDefine,cpLinkDefine,locationName,holdTime,travelPlan,RENFromPlan,RENToPlan,isOneWay) function this.GetFormattedLrrpCpNameByLrrpNum(lrrpNumFromCp,lrrpNumToCp,locationName,lrrpNumberDefine) function this.GetFormattedLrrpCpName(toCp,fromCp,locationName,lrrpNumberDefine) function this.AddTravelCourse(travelPlan,plan,isOneWay) --REF travelPlans --={ -- travelArea1_02 = { -- { cp="afgh_21_28_lrrp", routeGroup={ "travel", "lrrp_28to21" }, }, function this.SetTravelPlans(travelPlans)--missionTable.enemy.travelPlans function this.RegistHoldBrokenState(vehicleName) function this.AddBrokenStateList(vehicleName) function this._OnHeliBroken(gameId,state) function this._OnVehicleBroken(vehicleId,state) function this._OnWalkerGearBroken(walkerId,state) function this.SetVehicleBroken(vehicleId) function this.IsVehicleBroken(vehicleNameOrId) function this.IsVehicleAlive(vehicleNameOrId) function this.PlayTargetRescuedRadio(gameId) function this.PlayTargetEliminatedRadio(gameId) function this.RegistHoldRecoveredState(name) function this.AddRecoveredStateList(name) function this.SetRecovered(gameId) function this.ExecuteOnRecoveredCallback(gameId,gimmickInstanceOrAnimalId,gimmickDataSet,staffOrResourceId,RENsomeBool,RENpossiblyNotHelicopter,playerIndex) function this.CheckAllVipClear(unk1) function this.CheckAllTargetClear(unk1) function this.CheckSoldierEliminateTarget(gameId,playerPosition,targetName) function this.CheckHelicopterEliminateTarget(heliId,playerPosition,targetName) function this.CheckVehicleEliminateTarget(vehicleId,playerPosition,targetName) function this.CheckWalkerGearEliminateTarget(walkerId,playerPosition,targetName) function this.CheckRescueTarget(gameId,playerPosition,targetName) function this.FultonRecoverOnMissionGameEnd() function this.AutoFultonRecoverNeutralizedTarget(gameId,a) --NMC no references function this.CheckQuestTargetOnOutOfActiveArea(unkP1Table) --NMC no references function this.ChangeRouteUsingGimmick(route,unkP2,gameId,unkP3) --No references function this.DisableUseGimmickRouteOnShiftChange(unkP1GameId,unkP2Table) function this.IsEliminateTarget(gameId) function this.IsRescueTarget(gameId) function this.IsChildTarget(gameId) function this.IsChildHostage(gameId) function this.IsFemaleHostage(gameId) --NMC: No references function this.AddTakingOverHostage(gameId) function this._AddTakingOverHostage(hostageId) --NMC: No references function this.IsNeedHostageTakingOver(missionCode) --NMC: No references function this.ResetTakingOverHostageInfo() --NMC: No references function this.SpawnTakingOverHostage(unkP1Table) function this._SpawnTakingOverHostage(t,hostageName) --NMC: No references function this.SetIgnoreTakingOverHostage(unkP1Table) function this.SetIgnoreDisableNpc(npcId,enable) --REF: NpcEntrypointsetting -- [Fox.StrCode32"lz_drp_swamp_I0000|rt_drp_swamp_I_0000"]={ -- [EntryBuddyType.VEHICLE]={Vector3(6.412,-5.952,294.757),TppMath.DegreeToRadian(-153.76)}, -- [EntryBuddyType.BUDDY]={Vector3(2.113,-5.436,299.302),-153.76}} function this.NPCEntryPointSetting(settings) function this.SetupQuestEnemy() --CALLER: Quest script .OnAllocate, mtbs_enemy.OnAllocateDemoBlock function this.OnAllocateQuest(body,face,setHostage) local function SetAndConvertExtendFova(body,face) --CALLER: quest script OnAllocate function this.OnAllocateQuestFova(questTable) function this.OnActivateQuest(questTable) --targetList = quest lua quest table .targetList function this.SetupActivateQuestTarget(targetList) function this.SetupActivateQuestVehicle(vehicleList,targetList) function this.SetupActivateQuestHeli(heliList) --cpList = quest lua QUEST_TABLE .cpList function this.SetupActivateQuestCp(cpList) --tex broken out from SetupActivateQuestEnemy --IN/OUT loadedFaceIndex local function SetupEnemyDef(enemyDef,disable,loadedFaceIndex) --enemyList= from .lua .QUEST_TABLE.enemyList function this.SetupActivateQuestEnemy(enemyList) function this.SetupActivateQuestHostage(hostageList) --tex> function this.SetupActivateQuestUav(uavList) --< function this.OnDeactivateQuest(questTable) function this.SetupDeactivateQuestVehicle(vehicleList) function this.SetupDeactivateQuestQuestHeli(heliList) function this.SetupDeactivateQuestCp(cpList) function this.SetupDeactivateQuestEnemy(enemyList) function this.SetupDeactivateQuestHostage(hostageList) --tex> function this.SetupDeactivateQuestUav(uavList) --< function this.OnTerminateQuest(questTable) function this.SetupTerminateQuestVehicle(vehicleList) function this.SetupTerminateQuestHeli(heliList) function this.SetupTerminateQuestCp(cpList) function this.SetupTerminateQuestEnemy(enemyList) local function SetupEnemy(setupInfo,RENAMEsomeBool) function this.SetupTerminateQuestHostage(e) function this.CheckQuestDistance(gameId) function this.CheckQuestNpcLifeStatus(gameId) function this.IsQuestInHelicopter() function this.IsQuestInHelicopterGameObjectId(heliId) function this.IsQuestTarget(gameId) function this.IsQuestNpc(npcId) function this.GetQuestCount() function this.SetQuestEnemy(gameObjectId,isTarget) function this.CheckDeactiveQuestAreaForceFulton() --NMC Called from quest script on various elimination msgs, or on quest deactivate --cant see any calls using param5 function this.CheckQuestAllTarget(questType,messageId,gameId,questDeactivate,param5) function this.ReserveQuestHeli() function this.UnreserveQuestHeli() function this.LoadQuestHeli(colorType) function this.UnloadQuestHeli() function this.ActivateQuestHeli(colorType) function this.DeactivateQuestHeli() function this.IsQuestHeli() function this.GetDDSuit() function this.IsHostageEventFOB() function this.IsZombieEventFOB()--RETAILPATCH 1070> function this.IsParasiteMetalEventFOB() function this.IsSpecialEventFOB() --< function this._OnDead(gameId,attackerId) function this._OnRecoverNPC(gameId,staffOrResourceId) function this._PlayRecoverNPCRadio(gameId) function this._OnFulton(gameId,gimmickInstanceOrAnimalId,gimmickDataSet,staffOrResourceId) function this._OnDamage(gameId,attackId,attackerId) function this._OnDamageOfRescueTarget(attackId,attackerId) function this._PlacedIntoVehicle(gameId,vehicleId,a) function this._RideHelicopterWithHuman(t,n,t) this.cpSubTypeToLangId= { ... } this.announceForPhase= { ... } --< --tex REWORKED --via msg ChangePhaseForAnnounce, not called on _ob / outer bases? function this._AnnouncePhaseChange(cpId,phase) --ORIG --function this._AnnouncePhaseChange(cpId,phase) -- local cpSubType=this.GetCpSubType(cpId) -- local langId="cmmn_ene_soviet" function this._IsGameObjectIDValid(e) --NMC no references function this._IsRouteSetTypeValid(routeSetType) --NMC no references function this._ShiftChangeByTime(shiftName) function this._IsEliminated(lifeStatus,npcState) function this._IsNeutralized(lifeStatus,npcState) function this._RestoreOnContinueFromCheckPoint_Hostage() function this._RestoreOnContinueFromCheckPoint_Hostage2() function this._RestoreOnMissionStart_Hostage() function this._RestoreOnMissionStart_Hostage2() function this._StoreSVars_Hostage(markerOnly) --tex TODO: messageDebug support (see TppMain.OnMessage) function this._DoRoutePointMessage(arg2,arg1,arg0,arg3) function this.ExecuteRoutePointMessage(messages,arg2,arg1,arg0,arg3,strLogText) ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppException.lua` ```lua this.MGO_INVITATION_CANCEL_POPUP_ID=5010 this.CLOSE_INIVITATION_CANCEL_POPUP_INTERVAL=1.5 this.PROCESS_STATE=Tpp.Enum{"EMPTY","START","SHOW_DIALOG","SUSPEND","FINISH"} this.TYPE=Tpp.Enum{ this.GAME_MODE=Tpp.Enum{"TPP","TPP_FOB","MGO"} this.OnEndExceptionDialog={} this.mgoInvitationUpdateCount=0 function this.IsDisabledMgoInChinaKorea() this.SHOW_EXECPTION_DIALOG= { ... } function this.NoProcessOnEndExceptionDialog() function this.OnEndExceptionDialogForSignInUserChange() function this.UpdateMgoInvitationAccept() function this.OnEndExceptionDialogForMgoInvitationAccept() function this.OnEndExceptionDialogForPatchDlcCheck() function this.CheckMgoChunkInstallation() function this.GoToMgoByInivitaion() function this.UpdateMgoChunkInstallingPopup() function this.OnEndExceptionDialogForPatchDlcError() function this.UpdateMgoPatchDlcCheckingPopup() function this.OnEndExceptionDialogForInvitationAcceptFromOther() function this.OnEndExceptionDialogForInvitationAcceptWithoutSignIn() function this.OnEndExceptionDialogForCheckMgoChunkInstallation() function this.CancelMgoInvitation() function this.ForbidFobExceptionHandling() function this.PermitFobExceptionHandling() function this.SuspendFobExceptionHandling() function this.FobMissionEndOnException() this.POPUP_CLOSE_CHECK_FUNC={[this.TYPE.INVITATION_ACCEPT]=this.UpdateMgoInvitationAccept,[this.TYPE.INVITATION_PATCH_DLC_CHECKING]=this.UpdateMgoPatchDlcCheckingPopup,[this.TYPE.WAIT_MGO_CHUNK_INSTALLATION]=this.UpdateMgoChunkInstallingPopup} this.TPP_ON_END_EXECPTION_DIALOG={[this.TYPE.INVITATION_ACCEPT]=this.OnEndExceptionDialogForMgoInvitationAccept,[this.TYPE.DISCONNECT_FROM_PSN]=this.NoProcessOnEndExceptionDialog,[this.TYPE.DISCONNECT_FROM_KONAMI]=this.NoProcessOnEndExceptionDialog,[this.TYPE.DISCONNECT_FROM_NETWORK]=this.NoProcessOnEndExceptionDialog,[this.TYPE.SESSION_DISCONNECT_FROM_HOST]=this.NoProcessOnEndExceptionDialog,[this.TYPE.SIGNIN_USER_CHANGED]=this.OnEndExceptionDialogForSignInUserChange,[this.TYPE.INVITATION_PATCH_DLC_CHECKING]=this.OnEndExceptionDialogForPatchDlcCheck,[this.TYPE.INVITATION_PATCH_DLC_ERROR]=this.OnEndExceptionDialogForPatchDlcError,[this.TYPE.INVITATION_ACCEPT_BY_OTHER]=this.OnEndExceptionDialogForInvitationAcceptFromOther,[this.TYPE.INVITATION_ACCEPT_WITHOUT_SIGNIN]=this.OnEndExceptionDialogForInvitationAcceptWithoutSignIn,[this.TYPE.WAIT_MGO_CHUNK_INSTALLATION]=this.OnEndExceptionDialogForCheckMgoChunkInstallation} this.TPP_FOB_ON_END_EXECPTION_DIALOG={[this.TYPE.INVITATION_ACCEPT]=this.OnEndExceptionDialogForMgoInvitationAccept,[this.TYPE.DISCONNECT_FROM_PSN]=this.FobMissionEndOnException,[this.TYPE.DISCONNECT_FROM_KONAMI]=this.FobMissionEndOnException,[this.TYPE.DISCONNECT_FROM_NETWORK]=this.FobMissionEndOnException,[this.TYPE.SESSION_DISCONNECT_FROM_HOST]=this.FobMissionEndOnException,[this.TYPE.SIGNIN_USER_CHANGED]=this.OnEndExceptionDialogForSignInUserChange,[this.TYPE.INVITATION_PATCH_DLC_CHECKING]=this.OnEndExceptionDialogForPatchDlcCheck,[this.TYPE.INVITATION_ACCEPT_BY_OTHER]=this.OnEndExceptionDialogForInvitationAcceptFromOther,[this.TYPE.INVITATION_ACCEPT_WITHOUT_SIGNIN]=this.OnEndExceptionDialogForInvitationAcceptWithoutSignIn,[this.TYPE.WAIT_MGO_CHUNK_INSTALLATION]=this.OnEndExceptionDialogForCheckMgoChunkInstallation} function this.RegisterOnEndExceptionDialog(gameMode,exceptionDialogTypes) function this.GetCurrentGameMode() function this.Enqueue(exceptionType,gameMode) function this.Dequeue(startDepth) function this.HasQueue(exceptionType,gameMode) function this.StartProcess(exceptionDialogType,gameMode) function this.FinishProcess() function this.EnablePause() function this.DisablePause() this.currentErrorPopupLangId=nil function this.Update() function this.ShowPopup(exceptionDialogType) function this.OnAllocate(missionTable) function this.OnReload(missionTable) function this.Messages() function this.OnInvitationAccept() function this.OnDisconnectFromPsn() function this.OnDisconnectFromKonami() function this.OnDisconnectFromNetwork() function this.OnSessionDisconnectFromHost() function this.SignInUserChanged() function this.OnInvitationAcceptByOther() function this.OnInvitationAcceptWithoutSignIn() function this.OnDlcStatusChanged() function exceptionMessageHandler.Update() function exceptionMessageHandler:OnMessage(sender,messageId,arg0,arg1,arg2,arg3) ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppFreeHeliRadio.lua` ```lua this.DAY_TIME=3 this.NIGHT_TIME=19 this.DAY_TO_NIGHT=string.format("%d:00:00",this.NIGHT_TIME) this.NIGHT_TO_DAY=string.format("%d:00:00",this.DAY_TIME) this.isPlayBreefing=false this.ON_ENTER_RESULT={START_PANDEMIC_TUTORIAL=1} this.PANDEMIC_RADIO= { ... } function this.DeclareSVars() function this.Messages() function this._OnReload() function this.OnReload() function this.SetupMessages() function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this.OnEnter() function this.Init() function this.OnLeave() function this.RegistNvgOptionRadio() function this.UnregistNvgOptionRadio() function this.RegistAnimalOptionalRadio(n) function this.UnregistAnimalOptionalRadio() function this.OnEnterCpIntelTrap(cpName) function this.OnExitCpIntelTrap(n) function this.TryPandemicStart() function this.UpdatePandemicEvent(o,n) function this._RegistClock() function this._PlayRadio(e) function this._RegisterOptionRadio(e) function this._UnregisterOptionRadio(e,i) function this._IsRegistOptionRadio(e) function this._IsTimeOfDay() ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppGVars.lua` ```lua this.DeclareGVarsTable= { ... } --CALLER: TppVarInit.ClearAllVarsAndSlot function this.AllInitialize() ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppGeneInter.lua` ```lua --ORPHAN local DEBUG_StrCode32ToString=Tpp.DEBUG_StrCode32ToString function this._EnableMarkerIcon(markerName,radius,langId) function this.EnableMarker(markerName,radius,langId) function this.EnableMarkerGimmick(gimmickName) function this.InterCall_enqt1000_1a1110(e,e,e) function this.InterCall_enqt1000_1a1010(e,e,e) function this.InterCall_cliffTown_001(e,e,e) function this.InterCall_tent_001(e,e,e) function this.InterCall_waterWay_001(e,e,e) function this.debug_geneInter_powerPlant_001(e,e,e) function this.InterCall_sovietBase_001(e,e,e) function this.InterCall_remnants_001(e,e,e) function this.InterCall_field_001(n,n,n) function this.InterCall_field_002(n,n,n) function this.InterCall_field_003(n,n,n) function this.InterCall_field_004(n,n,n) function this.InterCall_field_005(n,n,n) function this.InterCall_field_006(n,n,n) function this.InterCall_field_007(n,n,n) function this.InterCall_field_008(n,n,n) function this.InterCall_field_009(n,n,n) function this.InterCall_citadel_001(e,e,e) function this.InterCall_fort_001(e,e,e) function this.InterCall_village_001(n,n,n) function this.InterCall_village_002(n,n,n) function this.InterCall_village_003(n,n,n) function this.InterCall_village_004(n,n,n) function this.InterCall_village_005(n,n,n) function this.InterCall_village_006(e,e,e) function this.InterCall_village_007(n,n,n) function this.InterCall_village_008(n,n,n) function this.InterCall_village_009(n,n,n) function this.InterCall_village_010(n,n,n) function this.InterCall_village_011(n,n,n) function this.InterCall_village_012(n,n,n) function this.InterCall_village_013(n,n,n) function this.InterCall_bridge_001(e,e,e) function this.InterCall_commFacility_001(n,n,n) function this.InterCall_commFacility_002(n,n,n) function this.InterCall_commFacility_003(n,n,n) function this.InterCall_commFacility_004(n,n,n) function this.InterCall_commFacility_005(n,n,n) function this.InterCall_commFacility_006(n,n,n) function this.InterCall_commFacility_007(n,n,n) function this.InterCall_commFacility_008(n,n,n) function this.InterCall_commFacility_009(n,n,n) function this.InterCall_commFacility_010(n,n,n) function this.InterCall_slopedTown_001(n,n,n) function this.InterCall_slopedTown_002(n,n,n) function this.InterCall_slopedTown_003(n,n,n) function this.InterCall_slopedTown_004(n,n,n) function this.InterCall_slopedTown_005(n,n,n) function this.InterCall_slopedTown_006(e,e,e) function this.InterCall_slopedTown_007(n,n,n) function this.InterCall_slopedTown_008(n,n,n) function this.InterCall_slopedTown_009(n,n,n) function this.InterCall_slopedTown_010(n,n,n) function this.InterCall_slopedTown_011(n,n,n) function this.InterCall_slopedTown_012(n,n,n) function this.InterCall_slopedTown_013(n,n,n) function this.InterCall_slopedTown_014(n,n,n) function this.InterCall_enemyBase_001(n,n,n) function this.InterCall_enemyBase_002(n,n,n) function this.InterCall_enemyBase_003(n,n,n) function this.InterCall_enemyBase_004(n,n,n) function this.InterCall_enemyBase_005(n,n,n) function this.InterCall_enemyBase_006(n,n,n) function this.InterCall_enemyBase_007(n,n,n) function this.InterCall_enemyBase_008(n,n,n) function this.InterCall_enemyBase_009(n,n,n) function this.InterCall_enemyBase_010(n,n,n) function this.InterCall_enemyBase_011(n,n,n) function this.InterCall_fieldEast_001(n,n,n) function this.InterCall_fieldEast_002(n,n,n) function this.InterCall_fieldWest_001(n,n,n) function this.InterCall_fieldWest_002(n,n,n) function this.InterCall_remnantsNorth_001(n,n,n) function this.InterCall_remnantsNorth_002(n,n,n) function this.InterCall_tentEast_001(n,n,n) function this.InterCall_tentEast_002(n,n,n) function this.InterCall_commWest_001(n,n,n) function this.InterCall_commWest_002(n,n,n) function this.InterCall_villageEast_001(n,n,n) function this.InterCall_villageEast_002(n,n,n) function this.InterCall_villageNorth_001(n,n,n) function this.InterCall_villageNorth_002(n,n,n) function this.InterCall_villageWest_001(n,n,n) function this.InterCall_villageWest_002(n,n,n) function this.InterCall_ruinsNorth_001(n,n,n) function this.InterCall_ruinsNorth_002(n,n,n) function this.InterCall_bridgeNorth_001(e,e,e) function this.InterCall_bridgeWest_001(e,e,e) function this.InterCall_cliffEast_001(e,e,e) function this.InterCall_cliffSouth_001(e,e,e) function this.InterCall_cliffWest_001(e,e,e) function this.InterCall_enemyNorth_001(e,e,e) function this.InterCall_fortSouth_001(e,e,e) function this.InterCall_fortWest_001(e,e,e) function this.InterCall_slopedEast_001(e,e,e) function this.InterCall_slopedWest_001(n,n,n) function this.InterCall_slopedWest_002(n,n,n) function this.InterCall_plantSouth_001(e,e,e) function this.InterCall_plantWest_001(e,e,e) function this.InterCall_sovietSouth_001(e,e,e) function this.InterCall_waterwayEast_001(e,e,e) function this.InterCall_outland_001(e,e,e) function this.InterCall_flowStation_001(e,e,e) function this.InterCall_swamp_001(e,e,e) function this.InterCall_pfCamp_001(e,e,e) function this.InterCall_savannah_001(e,e,e) function this.InterCall_banana_001(e,e,e) function this.InterCall_diamond_001(e,e,e) function this.InterCall_diamondRiver_001(e,e,e) function this.InterCall_hill_001(e,e,e) function this.InterCall_factory_001(e,e,e) function this.InterCall_lab_001(n,n,n) this.geneInter= { ... } ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppGimmick.lua` ```lua this.MissionCollectionTable= { ... } this.MissionCollectionMissionTaskTable= { ... } this.GIMMICK_TYPE={NONE=0,ANTN=1,MCHN=2,CMMN=3,GUN=4,MORTAR=5,GNRT=6,CNTN=7,ANTIAIR=8,AACR=9,LIGHT=10,TOWER=11,TLET=12,TRSH=13,CSET=14,SWTC=15,FLOWSTATION_TANK001=100,FLOWSTATION_TANK002=101,FACTORY_WALL=102,FACTORY_FRAME=103,FACTORY_WTTR=104,FACTORY_TNNL=105,LAB_BRDG=106,FACTORY_TANK=107,FACTORY_WTNK=108,FACTORY_WSST=109,FLOWSTATION_PDOR=110,FACTORY_CRTN=111,FLOWSTATION_COPS=112,MAX=255} this.COLLECTION_REPOP_COUNT_DECREMENT_TABLE= { ... } function this.Messages() function this.IsBroken(isBrokenParams) function this.ResetGimmick(resetParams) function this.EnableMarkerGimmick(gimmickId) function this.OnAllocate(missionTable) function this.Init(missionTable) function this.RepopMissionTaskCollection() function this.OnReload() function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this.OnMissionGameStart() function this.DecrementCollectionRepopCount() function this.MafrRiverPrimSetting() function this.SetMafrRiverPrimVisibility(enable) --_gimmick.gimmickIdentifierParamTable or mvars.mbItem_funcGetGimmickIdentifierTable --mtbs is {[clusterId]={gimmickInfo,...}} --afgh/mafr {gimmickInfo,...} --REF gimmickInfo function this.SetUpIdentifierTable(identifierTable) --afgh_gimmick.gimmickBreakConnectTable / mafr_... --REF {swamp_antn001 = "swamp_mchn001",...} function this.SetUpBreakConnectTable(gimmickBreakConnectTable) --afgh_gimmick.checkBrokenAndBreakConnectTable / mafr_... function this.SetUpCheckBrokenAndBreakConnectTable(checkBrokenAndBreakConnectTable) function this._SetUpCheckBrokenAndBreakConnectTable(gimmickId,gimmickInfo) --NMC cant see any references to this function this.SetUpUseGimmickRouteTable(e) function this.GetRouteConnectedGimmickId(route) --ConnectLandingZoneTable function this.SetUpConnectLandingZoneTable(connectLZTable) --_gimmick.gimmickPowerCutConnectTable function this.SetUpConnectPowerCutTable(gimmickPowerCutConnectTable) --_gimmick.gimmickVisibilityiConnectTable function this.SetUpConnectVisibilityTable(gimmickVisibilityiConnectTable) --_gimmick.gimmickCpConnectTable function this.SetCommunicateGimmick(gimmickCpConnectTable) --NMC on GameObject BreakGimmick msg function this.BreakGimmick(gameId,locatorNameHash,dataSetNameHash,unkGameId) --NMC returns gimmickIdentifierParamTable identifier, see SetUpIdentifierTable function this.GetGimmickID(gameId,locatorNameHash,dataSetNameHash) function this.GetGameObjectId(gimmickId) function this.BreakConnectedGimmick(gimmickId) function this.CheckBrokenAndBreakConnectedGimmick(gimmickId) --_gimmick.gimmickVisibilityiConnectTable function this.HideAsset(gimmickId) function this.Show(gimmickId) function this.Hide(gimmickId) function this.SetVisibility(gimmickId,setInvisible) function this.UnlockLandingZone(gimmickId) function this.ShowAnnounceLog(gimmickId) function this._ShowCommCutOffAnnounceLog(gimmickId) --NMC on GameObject SwitchGimmick msg function this.SwitchGimmick(gameId,locatorNameHash,dataSetNameHash,switchFlag) function this.PowerCut(gimmickId,powerCutOn,RENsomeBool) function this.SetHeroicAndOrgPoint(gimmickId,gameId) function this.EnableCollectionTable(collectionNames,enable,force) local function IsGotKeyItem(locator) function this.DEBUG_DumpIdentiferParam(n,e) function this.InitQuest() function this.OnAllocateQuest(questTable) function this.OnActivateQuest(questTable) function this.OnDeactivateQuest(questTable) function this.OnTerminateQuest(questTable) --NMC: gimmickIdentifier = gameId, or collectionUniqueId or function this.CheckQuestAllTarget(questType,gimmickIdentifier,targetPracticeTimeOut) function this.IsQuestTarget(checkId) function this.SetQuestInvisibleGimmick(questMarkSetIndex,setInvisible,skipCheck) --TYPO: Sooting. --GOTCHA: invincible not invisible --GOTCHA: hardcoded instance name --tex REWORKED function this.SetQuestSootingTargetInvincible(setInvincible) --ORIG --function this.SetQuestSootingTargetInvincible(setInvincible) -- for i,targetInfo in pairs(mvars.gim_questTargetList)do -- Gimmick.InvincibleGimmickData(TppGameObject.GAME_OBJECT_TYPE_IMPORTANT_BREAKABLE,"mtbs_bord001_vrtn003_ev_gim_i0000|TppPermanentGimmick_mtbs_bord001_vrtn003_ev",targetInfo.dataSetName,setInvincible) function this.IsQuestStartSwitchGimmick(locatorS32) function this.StartQuestShootingPractice() function this.SetQuestShootingPracticeTargetInvisible() function this.EndQuestShootingPractice(questClearType) function this.IsStartQuestShootingPractice() function this.GetQuestShootingPracticeCount() function this.SetUpMineQuest(questmineTotalCount) function this.OnTerminateMineQuest() function this.CheckQuestPlaced(mineEquipId,index) function this.CheckQuestMine(mineEquipId,index) ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppHelicopter.lua` ```lua function this.GetSupportHeliGameObjectId() function this.SetNoSupportHelicopter() function this.UnsetNoSupportHelicopter() function this.ForceCallToLandingZone(_lzName) function this.CallToLandingZone(_lzName) function this.SetEnableLandingZone(_lzName) function this.SetDisableLandingZone(_lzName) function this.GetLandingZoneExists(lzName) function this.SetNewestPassengerTable() function this.GetPassengerlist() function this.ClearPassengerTable() function this.IsInHelicopter(passengerId) function this.ForcePullOut() function this.AdjustBuddyDropPoint() function this.Init(missionTable) function this.SetDefaultTakeOffTime() function this.SetNoTakeOffTime() function this.SetRouteToHelicopterOnStartMission() function this.ResetMissionStartHelicopterRoute() function this.GetMissionStartHelicopterRoute() --NMC only called in TppMissionList missionPackTable functions function this.GetEnemyColoringPack(heliColoringType) function this.SetEnemyColoring(heliColoringType) ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppHero.lua` ```lua this.MISSION_ABORT={heroicPoint=-50,ogrePoint=0} this.MISSION_CLEAR= { ... } this.ALL_MISSION_CLEAR={heroicPoint=1e4,ogrePoint=0} this.ALL_MISSION_S_RANK_CLEAR={heroicPoint=5e4,ogrePoint=0} this.QUEST_CLEAR= { ... } this.QUEST_ALL_CLEAR={heroicPoint=3e4,ogrePoint=0} this.MINE_QUEST_ALL_CLEAR={heroicPoint=5e3,ogrePoint=-5e3} this.ENEMY_HOLD_UP={heroicPoint=5,ogrePoint=0} this.ENEMY_INTERROGATE={heroicPoint=5,ogrePoint=0} this.PLAYER_ON_INJURY={heroicPoint=-10,ogrePoint=0} this.PLAYER_DEAD={heroicPoint=-30,ogrePoint=0} this.STARTED_COMBAT={heroicPoint=-10,ogrePoint=0} this.FULTON_DYING_ENEMY={heroicPoint=30,ogrePoint=-30} this.FULTON_HOSTAGE={heroicPoint=60,ogrePoint=-60} this.FULTON_PARASITE={heroicPoint=30,ogrePoint=-30} this.ON_HELI_DYING_ENEMY={heroicPoint=60,ogrePoint=-60} this.ON_HELI_HOSTAGE={heroicPoint=120,ogrePoint=-120} this.ON_HELI_LIQUID={heroicPoint=240,ogrePoint=-240} this.FIRE_KILL_SOLDIER={heroicPoint=0,ogrePoint=120} this.FIRE_KILL_SOLDIER_FOB_SNEAK={heroicPoint="HEROIC_POINT_FIRE_KILL_SOLDIER_FOB_SNEAK",ogrePoint="OGRE_POINT_FIRE_KILL_SOLDIER_FOB_SNEAK"} this.KILL_SOLDIER={heroicPoint=0,ogrePoint=60} this.KILL_SOLDIER_FOB_SNEAK={heroicPoint="HEROIC_POINT_KILL_SOLDIER_FOB_SNEAK",ogrePoint="OGRE_POINT_KILL_SOLDIER_FOB_SNEAK"} this.KILL_HOSTAGE={heroicPoint=-60,ogrePoint=100} this.FIRE_KILL_HOSTAGE={heroicPoint=-90,ogrePoint=200} this.FIRE_KILL_DD_HOSTAGE={heroicPoint=-90,ogrePoint=180} this.FIRE_KILL_DD_SOLDIER={heroicPoint=-90,ogrePoint=180} this.KILL_DD_SOLDIER={heroicPoint=-60,ogrePoint=180} this.KILL_DD_HOSTAGE={heroicPoint=-60,ogrePoint=90} this.DEAD_HOSTAGE={heroicPoint=-30,ogrePoint=0} this.DEAD_DD_SOLDIER={heroicPoint=-30,ogrePoint=0} this.DYING_SOLDIER={heroicPoint=0,ogrePoint=30} this.RECOVERED_SOLDIER={heroicPoint=0,ogrePoint=-30} this.VEHICLE_BROKEN= { ... } this.BREAK_GIMMICK= { ... } this.BREAK_GIMMICK_BY_TYPE= { ... } this.SUPPORT_HELI_LOST_CONTROLE={heroicPoint=-60,ogrePoint=150} this.BREAK_SUPPORT_HELI={heroicPoint=-30,ogrePoint=0} this.ENEMY_HELI_LOST_CONTROLE={heroicPoint=0,ogrePoint=120} this.ON_ANNIHILATE_BASE={heroicPoint=300,ogrePoint=0} this.ON_ANNIHILATE_OUTER_BASE={heroicPoint=30,ogrePoint=0} this.CONSTRUCT_FIRST_FOB={heroicPoint=1e3,ogrePoint=0} this.CONSTRUCT_SECOND_FOB={heroicPoint=2e3,ogrePoint=0} this.CONSTRUCT_THIRD_FOB={heroicPoint=3e3,ogrePoint=0} this.CONSTRUCT_FOURTH_FOB={heroicPoint=4e3,ogrePoint=0} this.HORSE_RIDED={heroicPoint=-5,ogrePoint=0} this.BREAK_MINE={heroicPoint=30,ogrePoint=0} this.BREAK_DECOY={heroicPoint=5,ogrePoint=0} this.PICK_UP_MINE={heroicPoint=30,ogrePoint=0} this.BREAK_SECURITY_CAMERA={heroicPoint=0,ogrePoint=0} this.BREAK_SECURITY_UAV={heroicPoint=0,ogrePoint=0} this.DYING_PARASITE={heroicPoint=60,ogrePoint=0} this.NuclearAbolition={heroicPoint=5e4,ogrePoint=-5e5} this.STARTED_COMBAT_ON_FOB={heroicPoint="HEROIC_POINT_STARTED_COMBAT_ON_FOB",ogrePoint=0} this.STARTED_COMBAT_ON_FOB_HERO={heroicPoint="HEROIC_POINT_STARTED_COMBAT_ON_FOB_HERO",ogrePoint=0} this.DISCOVER_ATTACKER={heroicPoint="HEROIC_POINT_DISCOVER_ATTACKER",ogrePoint=0} this.OFFENCE_WIN_ON_FOB={heroicPoint="HEROIC_POINT_OFFENSE_WIN",ogrePoint=0} this.OFFENCE_LOSE_ON_FOB={heroicPoint="HEROIC_POINT_OFFENSE_LOSE",ogrePoint=0} this.DEFENCE_WIN_ELIMINATE={heroicPoint="HEROIC_POINT_DEFENSE_WIN_ELIMINATE",ogrePoint=0} this.DEFENCE_WIN_ABORT={heroicPoint="HEROIC_POINT_DEFENSE_WIN_ABORT",ogrePoint=0} this.DEFENCE_LOSE={heroicPoint="HEROIC_POINT_DEFENSE_LOSE",ogrePoint=0} this.DEFENCE_FULTON_OFFENCE={heroicPoint="HEROIC_POINT_FULTONED_PLAYER",ogrePoint="OGRE_POINT_FULTONED_PLAYER"} this.OFFENCE_FULTONED_BY_DEFENCE={heroicPoint="HEROIC_POINT_FULTONED",ogrePoint=0} this.RETAKE_STAFF_FROM_FOB={heroicPoint="HEROIC_POINT_RETAKE_STAFF_FROM_FOB",ogrePoint=0} this.KILLED_PLAYER={heroicPoint=0,ogrePoint="OGRE_POINT_KILLED_PLAYER"} this.OFFENCE_WIN_ON_FOB_FOR_FRIEND={heroicPoint="HEROIC_POINT_OFFENSE_WIN_ON_FOB_FOR_FRIEND",ogrePoint=0} this.DEFENCE_WIN_FOR_FRIEND={heroicPoint="HEROIC_POINT_DEFENSE_WIN_FOR_FRIEND",ogrePoint=0} this.BREAK_PTW_MACHINEGUN={heroicPoint="HEROIC_POINT_BREAK_PTW_MACHINEGUN",ogrePoint="OGRE_POINT_BREAK_PTW_MACHINEGUN"} this.BREAK_PTW_MORTAR={heroicPoint="HEROIC_POINT_BREAK_PTW_MORTAR",ogrePoint="OGRE_POINT_BREAK_PTW_MORTAR"} this.BREAK_PTW_ANTIAIR={heroicPoint="HEROIC_POINT_BREAK_PTW_ANTIAIR",ogrePoint="OGRE_POINT_BREAK_PTW_ANTIAIR"} this.FULTON_SUPPORTER_CONTAINER={heroicPoint="HEROIC_POINT_FULTON_CONTAINER",ogrePoint="OGRE_POINT_FULTON_CONTAINER"} this.NOTICE_CRIME={heroicPoint="HEROIC_POINT_NOTICE_CRIME",ogrePoint=0} this.KILLED_DDS={heroicPoint="HEROIC_POINT_KILLED_DDS",ogrePoint="OGRE_POINT_KILLED_DDS"} this.FOB_ABORT_BY_MENU={heroicPoint="HEROIC_POINT_FOB_ABORT_BY_MENU",ogrePoint=0} function this.IsHero() function this.AddTargetLifesavingHeroicPoint(isChild,recoveredByHeli) function this.OnFultonSoldier(gameId,recoveredByHeli) function this.OnFultonHostage(gameId,recoveredByHeli) --No refs? function this.OnFultonEli(n,e) function this.GetFobServerParameter(pointsOrParamName) function this.SetHeroicPoint(pointsOrParamName) function this.SetOgrePoint(ogrePoint) function this.GetMissionOgrePoint() function this.AnnounceHeroicPoint(pointTable,downLangId,upLangId) function this.SetAndAnnounceHeroicOgrePoint(pointTable,downLangId,upLangId) function this.AnnounceMissionAbort() function this.MissionAbort() function this.MissionClear(rank) function this.SetFirstMissionClearHeroPoint() function this.AnnounceFirstMissionClearHeroPoint() function this.AnnounceVehicleBroken(vehicleId) function this.AnnounceBreakGimmick(gimmickId,locatorS32,dataSetP32,destroyerId) function this.AnnounceBreakGimmickByGimmickType(gimmickType) function this.OnHelicopterLostControl(gameId,attackerId) function this.SetAndAnnounceHeroicOgrePointForAnnihilateCp(hAndOPoints,isBase) function this.SetAndAnnounceHeroicOgrePointForQuestClear(rank) function this.HorseRided(playerIndex) function this.OnBreakPlaced(playerIndex,equipId,index,isPlayerPlaced) function this.OnPickUpPlaced(playerId,equipId,itemIndex,isPlayers) function this._RideOnHeli(gameId) function this.Messages() function this.Init(missionTable) function this.OnReload(missionTable) function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this.DeclareSVars() function this.UpdateHero() ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppInterrogation.lua` ```lua --ORPHAN local DEBUG_StrCode32ToString=Tpp.DEBUG_StrCode32ToString --NOTE: interrogation .name param is subtitleId/wem soundId function this.Messages() function this.DeclareSVars() function this.Init() function this.OnReload() function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this.MakeFlagHigh(cpId) function this.ResetFlagHigh(cpId) function this.ResetFlagNormal(cpId) function this.UniqueInterrogationWithVoice(cpId,soundParameterId) function this.UniqueInterrogation(cpId,messageId) function this.QuestInterrogation(cpId,messageId) function this.SetQuestHighIntTable(cpId,interrTable) function this.RemoveQuestHighIntTable(cpId,interrTable) function this.AddHighInterrogation(cpId,interrTable) function this.RemoveHighInterrogation(cpId,interrInfo) function this.InitUniqueInterrogation(interrogationTable) function this.ResetQuestTable() function this.AddQuestTable(interrTable) --missionTable.enemy.interrogation function this.InitInterrogation(interrogationTable) function this._AddGene(cpId) function this.AddGeneInter(cpList) function this._OnMapUpdate() function this._OnInterrogation(soldierId,cpId,allowCollectionInterr) function this._OnInterrogationEnd(soldierId,cpId,strCodeName,index) function this._AssignInterrogation(cpId,messageId,index) function this._AssignInterrogationCollection(cpId) function this._SelectInterrogation(cpId,allowCollectionInterr) ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppLandingZone.lua` ```lua this.aacrGimmickInfo= { ... } afghLZTable.ConnectLandingZoneTable= { ... } afghLZTable.MissionLandingZoneTable= { ... } mafrLZTable.ConnectLandingZoneTable= { ... } mafrLZTable.MissionLandingZoneTable= { ... } this.assaultLzs= { ... } this.missionLzs= { ... } this.locInfo= { ... } function this.BuildConnectLzTable() function this.BuildMissionLzTable() function this.OnInitialize() function this.OnMissionCanStart() --tex called in helispace or free mission to disable lzs if havent reached that mission yet function this.DisableLandingZoneForMission(missionLZTable,missionTypeCodeName) --tex broken out from seperate (but identical) afgh/mafrLzTable function function this.DisableAssaultLandingZones(connectLZTableForAacr,missionTypeCodeName) --tex broken out from seperate (but identical) afgh/mafrLzTable function function this.GroundDisableLandingZone(lzName) function this.DisableUnlockLandingZoneOnMission(bool) function this.IsDisableUnlockLandingZoneOnMission() function this.RegisterAssaultDropLandingZone(drpLandingZoneNames) function this.IsAssaultDropLandingZone(heliRouteS32) --is really IsAACRGimmickBroken function this.IsBrokenGimmick(gimmickId) function this.OverwriteBuddyVehiclePosForALZ() ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppLocation.lua` ```lua this.locationIdForName= { ... } this.locationNames={} --tex REWORKED: --GOTCHA: this wont return addon locations before it's setup during InfMission.AddInLocations (which is via loadlibraries, so you probably wont be calling it before that) --see also TppPackList.GetLocationNameFormMissionCode function this.GetLocationName(locationCode) function this.IsAfghan() function this.IsMiddleAfrica() function this.IsCyprus() function this.IsMotherBase() function this.IsMBQF() function this.SetBuddyBlock(locationId) function this.ModifyMbsLayoutCode(layoutCode) this.debug_useDebugMbParam=nil function this.DEBUG_UseDebugMbParam() function this.ApplyPlatformParamToMbStage(missionCode,baseType) function this.GetMbStageHelicopterRoute(missionCode,e,heliRoute) function this.SetForceConstructDevelopCluster() function this.RegistBaseAssetTable(onActiveTable,onActiveSmallBlockTable) function this.RegistMissionAssetInitializeTable(baseOnActiveTable,onActiveSmallBlockTable) function this.Init(missionTable) --CALLER: TppMain.OnMissionCanStart function this.ActivateBlock() function this.OnReload() function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this.Messages() function this.OnActiveLargeBlock(blockNameStr32,blockStatus) function this.OnActiveSmallBlock(blockIndexX,blockIndexY,blockStatus) function this.GetMbStageClusterGrade(clusterId) function this.GetLocalMbStageClusterGrade(clusterId) function this.MbFreeSpecialMissionStartSetting(missionClearType) ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppMain.lua` ```lua --NMC: cant actually see this referenced anywhere local function YieldForQuarkSystemLoad() function this.DisableGameStatus() function this.DisableGameStatusOnGameOverMenu() function this.EnableGameStatus() function this.EnableGameStatusForDemo() function this.EnableAllGameStatus() function this.EnablePlayerPad() function this.DisablePlayerPad() function this.EnablePause() function this.DisablePause() function this.EnableBlackLoading(showLoadingTips) function this.DisableBlackLoading() --NMC: via mission_main.lua, is called in order laid out, OnAllocate is before OnInitialize function this.OnAllocate(missionTable) --RETAILPATCH: 1.0.4.1 PATCHUP: in general I understand the need for patch ups, and in cases like this i even admire the method, however the implementation of just shoving them seemingly anywhere... needs better execution. function f30050_sequence.NeedPlayQuietWishGoMission() --NOTE: GameObjects loaded after OnAllocate and are gettable by OnInitialize function this.OnInitialize(missionTable)--NMC: see onallocate for notes --CALLER: OnInitialize (near bottom), OnReload --moduleUpdateFuncs also cleared at top of OnAllocate, but missionScriptOnUpdateFuncs not cleared then? function this.SetUpdateFunction(missionTable) moduleUpdateFuncs={ function this.OnEnterMissionPrepare() function this.OnTextureLoadingWaitStart() function this.OnMissionStartSaving() --CALLER: TppSequence Seq_Mission_Prepare.OnUpdate END_SAVING_FILE function this.OnMissionCanStart() --CALLER: TppSequence. Seq_Mission_Prepare OnLeave function this.OnMissionGameStart(sequenceName) function this.ClearStageBlockMessage() --tex broken out from ReservePlayerLoadingPosition local function HasHeliRoute() --NMC from MISSION_FINALIZE local function LoadingPositionToHeliSpace() --NMC from MISSION_FINALIZE local function LoadingPositionFromHeliSpace(nextIsFreeMission,fromFreeMission) --NMC from MISSION_FINALIZE, not to/from helispace, to a free mission --which in vanilla means from a mission to free roam - afgh,mafr, mb and outer plats --which is either ending mission by out of hot-zone, or mission specifically putting you back in free --with IH transitions means it can also be free roam to an addon free roam map, or visa versa local function LoadingPositionToFree(nextIsFreeMission,fromFreeMission) --NMC from MISSION_FINALIZE local function LoadingPositionFromFreeToMB() --NMC from MISSION_FINALIZE local function LoadingPositionFromFree(nextIsFreeMission,fromFreeMission) --tex IH start on foot > function this.SetStartOnFootPosition(fromFreeMission,nextIsFreeMission) --NMC: tex most commonly only called with just missionLoadType, so the params are really just specific to the call with the missionLoadType that actually passes them in. function this.ReservePlayerLoadingPosition(missionLoadType,fromHeliSpace,fromFreeMission,nextIsHeliSpace,nextIsFreeMission,abortWithSave,isLocationChange) function this.StageBlockCurrentPosition(yieldTillEmpty) --CALLER: mission_main scriptblock function this.OnReload(missionTable) function this.OnUpdate(missionTable) --NMC: called via mission_main function this.OnChangeSVars(subScripts,varName,key) function this.SetMessageFunction(missionTable)--RENAME: this.messageDebug= { ... } function this.ClearMessageDebug() function this.OnMessage(missionTable,sender,messageId,arg0,arg1,arg2,arg3) function this.OnTerminate(missionTable) ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppMarker.lua` ```lua this.GoalTypes={none="GOAL_NONE",moving="GOAL_MOVE",attack="GOAL_ATTACK",defend="GOAL_DEFENSE",moving_fix="GOAL_MOVE_FIX"} this.ViewTypes={map={"VIEW_MAP_GOAL"},all={"VIEW_MAP_GOAL","VIEW_WORLD_GOAL"},map_only_icon={"VIEW_MAP_ICON"},map_and_world_only_icon={"VIEW_MAP_ICON","VIEW_WORLD_ICON"}} function this.Messages() --NMC: radiusLevel- 0-9, randomLevel matches --rlc radiusLevel, in TppUI.Init: TppUiCommand.SetupMapIconRadiusMeters --[[ [0]=0,[1]=30,[2]=40,[3]=62.5,[4]=125,[5]=200,[6]=325,[7]=450,[8]=600,[9]=1200]] function this.Enable(gameObjectName,radiusLevel,goalType,viewType,randomLevel,setImportant,setNew,mapRadioName,langId,goalLangId,setInterrogation) function this.Disable(gameId,unregisterMapRadio,isLocator) function this.DisableAll() function this.SetUpSearchTarget(searchTargetInfos) function this.CompleteSearchTarget(targetName) function this.EnableSearchTarget(targetGameObjectName) function this.DisableSearchTarget(targetGameObjectName) function this.GetSearchTargetIsFound(targetGameObjectName) function this.SetQuestMarker(targetNameOrId) function this.SetQuestMarkerGimmick(gimmickId) function this.EnableQuestTargetMarker(name) function this.DeclareSVars() function this.OnAllocate() function this.Init(missionTable) function this.OnMissionCanStart() function this.OnReload() function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this.RestoreMarkerLocator() function this.StoreMarkerLocator() function this.IsExistMarkerLocatorSystem() function this._OnSearchTarget(gameId,t,s) function this._GetStrCode32SearchTargetName(gameId) function this._IsCheckSVarsSearchTargetName(targetName) function this._IsCheckSVarsSearchTarget(a,svarName) function this._OnMarkerChangeToEnable(instanceName,markerType,gameId,identificationCode) function this._CallMarkerRadio(gameId) function this._CallSearchTargetEnabledRadio(gameId) function this._IsRadioTarget(gameId) function this._CanSetMarker(gameId) ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppMath.lua` ```lua function this.Vector3toTable(vector) function this.AddVector(v1,v2) function this.RadianToDegree(rad) function this.DegreeToRadian(deg) --actually FindDistanceSqr function this.FindDistance(pos1,pos2) ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppMbFreeDemo.lua` ```lua this.demoList= { ... } this.demoBlockList= { ... } this._PazPhantomPain4Settings= { ... } this.demoOptions= { ... } function this.PlayMtbsEventDemo(params) function this.DisableBuddyForForceRealized(demoName) function this.SetupDemoEndRoute(demoEndRouteList) function this.SetInvisibleUniqueCharacter(isVisibleCurrentBudy) function this.DisableOcelot() function this.ChangeBlock(currentDemoName,nextDemoName) function this.GetNextDemo(demoName) function this.GetDemoPlayCluster(demoName) function this.HasPlant(demoName) function this.GetDemoTime(demoName) function this.UpdatePackList(demoName) function this.RegisterFovaPack(packList) function this.GetPackListForStorySequence() function this.ShowMissionRewardAfterDemo() function this.GetSoldierListInDemo(demoName) function this.GetForceMaleSoldierList(demoName) function this.SetupEnemy(demoName) function this.IsBalaclava(demoName,checkSoldierName) function this.NeedLoadBuddyBlock(demoName) function this.SetupBuddy(demoName) function this.IsShowReward(demoName) ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppMission.lua` ```lua local function RegistMissionTimerPlayRecord() function this.GetMissionID() function this.GetMissionName() function this.GetMissionClearType() function this.IsDefiniteMissionClear()--RETAILPATCH: 1060 function this.RegiserMissionSystemCallback(callbacks) function this.RegisterMissionSystemCallback(callbacks) function this.UpdateObjective(objectiveInfo) function this.SetHelicopterDoorOpenTime(time) function this.UpdateCheckPoint(checkPointInfo) function this.UpdateCheckPointAtCurrentPosition() function this.IsMatchStartLocation(missionCode) function this.RegistDiscoveryGameOver() --tex NOTE GOTCHA these should now only be used for mission sequence scripts, otherwise just use the gvar directly --this is to work around mission timers/setup not triggering on start-on foot because of heli traps not triggering function this.IsStartFromHelispace() function this.IsStartFromFreePlay() function this.AcceptMission(missionCode) function this.AcceptMissionOnFreeMission(missionCode,orderBoxBlockList,svarSet) function this.AcceptMissionOnMBFreeMission(missionCode,clusterGrade,mbHeliRouteTable) function this.AcceptEmergencyMission(missionCode,nextLayoutCode,nextClusterId,nextMissionStartRoute) function this.AcceptStartFobSneaking(layout,cluster,missionId) function this.SelectNextMissionHeliStartRoute(missionCode,heliRoute,startFobSneaking) --CALLER: msg="MbDvcActHeliLandStartPos" function this.SetHelicopterMissionStartPosition(set,x,y,z) function this.StartEmergencyMissionTimer(timerInfo) function this._StartEmergencyMissionTimer(timerName,timeFromHeli,timeFromLand) --CALLER: some mission _sequence s --Used to load into/out of variations of the same mission? --REF --TppMission.Reload{ function this.Reload(loadInfo) --CALLERS: ReturnToMission, exe>esc menu msg PauseMenuRestart, msg Timer_OnEndReturnToTile function this.RestartMission(loadInfo) function this.ExecuteRestartMission(isReturnToMission) --CALLER: exe>esc menu - msg PauseMenuCheckpoint function this.ContinueFromCheckPoint(loadInfo) --returning from fob/emergency mission? --GameOverReturnToMission, PauseMenuReturnToMission, helli_common - if GetNextMissionCodeForEmergency() == 50050, o50050_sequence - isSyncDefMissionClear function this.ReturnToMission(_loadInfo) function this.ExecuteContinueFromCheckPoint(popupId,popupResult,RENdoMissionCallback) function this.IncrementRetryCount() function this.ExecuteOnReturnToMissionCallback() --AbortForRideOnHelicopter, AbortForOutOfMissionArea, heli_common_seq, o50050_seq function this.AbortMission(abortInfo) function this.ExecuteMissionAbort() function this.VarSaveForMissionAbort() function this.LoadForMissionAbort() --CALLERS: PauseMenuReturnToTitle function this.ReturnToTitle() function this.GameOverReturnToTitle() function this.ReserveGameOver(gameOverType,gameOverRadio,isAborting) function this.ReserveGameOverOnPlayerKillChild(gameId) function this.IsGameOver() function this.CanMissionClear(clearInfo) function this._SetCanMissionClear() function this.IsCanMissionClear() function this.OnCanMissionClear() function this.SetMissionClearState(missionClearState) function this.ResetMissionClearState() function this.GetMissionClearState() --GOTCHA: vars.mbLayoutCode, vars.mbClusterId changes immediatly here function this.ReserveMissionClear(missionClearInfo) function this.MissionGameEnd(sequence) function this.FadeOutOnMissionGameEnd(fadeDelay,fadeSpeed,fadeId) function this._FadeOutOnMissionGameEnd(fadeSpeed,fadeId) function this.CheckGameOverDemo(gameOverType) function this.ShowGameOverMenu(params) function this.ShowStealthAssistPopup() function this.ExecuteShowGameOverMenu() function this.ShowMissionGameEndAnnounceLog() function this.ShowAnnounceLogOnFadeOut(EndAnnounceLogFunc) function this.OnEndResultBlockLoad() function this.EnablePauseForShowResult() function this.DisablePauseForShowResult() function this.ShowMissionResult() function this.ShowMissionReward() function this.OnEndMissionReward() -- basically just called wherever a mission wants to end function this.MissionFinalize(options) --CALLERS: --msg EndFadeOut MissionFinalizeFadeOutFinish --msg EndFadeOut MissionFinalizeAtGameOverFadeOutFinish --TppMission.MissionFinalize function this.ExecuteMissionFinalize() function this.ParseMissionName(missionCodeName) --ORIG --function this.ParseMissionName(missionCodeName) -- local missionCode=string.sub(missionCodeName,2) -- missionCode=tonumber(missionCode) function this.IsStoryMission(missionCode) function this.IsHelicopterSpace(missionCode) function this.IsFreeMission(missionCode) function this.IsMbFreeMissions(missionCode) function this.IsFOBMission(missionCode) function this.IsHardMission(missionId) --GOTCHA: looks like it would be easy to forget to check function this.GetNormalMissionCodeFromHardMission(missionId) function this.IsSubsistenceMission() function this.IsPerfectStealthMission() function this.SetFOBMissionFlag() --tex NMC: confusing, but seems to be after mission loaded and a checkpoint has been triggered (which all lzs and mission start positions should have?) --but is also true in helispace after continue from title? --TODO: figure it out properly function this.IsMissionStart() function this.IsSysMissionId(missionCode) function this.IsEmergencyMission(missionCode) function this.Messages() function this.MessagesWhileLoading() function this.OnPlayerDead(playerId,deathTypeStr32) function this.OnEndMissionPreparation(deployTime,clusterId) function this.GetNextMissionCodeForEmergency() function this.OnAbortMissionPreparation() function this.WaitFinishMissionEndPresentation() function this.SetNeedWaitMissionInitialize() function this.ResetNeedWaitMissionInitialize() function this.CancelLoadOnResult() function this.OnAllocate(missionTable) function this.DisableInGameFlag() function this.EnableInGameFlag(resetMute) --< function this.ExecuteSystemCallback(callbackName,arg1) function this.Init(missionTable) function this.OnReload(missionTable) function this.RegisterMissionID() function this.DeclareSVars() function this.CheckMessageOptionWhileLoading() function this.OnMessageWhileLoading(sender,messageId,arg0,arg1,arg2,arg3) function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this.CheckMessageOption(messageOptions) function this.CheckMissionState(checkMissionClear,checkGameOver,checkDemoPlaying,checkMissionPrepare) function this.CheckMissionClearOnOutOfMissionArea() function this.EnableAlertOutOfMissionAreaIfAlertAreaStart() function this.IgnoreAlertOutOfMissionAreaForBossQuiet(enable) function this.EnableAlertOutOfMissionArea() function this.DisableAlertOutOfMissionArea() function this.ExitHotZone() function this.PlayCommonRadioOnInsideOfHotZone() function this.OnChangeFobDefenceGameOver() function this.PlayCommonRadioOnRideHelicopter() function this.StartJingleOnHelicopterClear() function this.MissionClearOrAbortOnHeliDoorClosed() function this.ReserveMissionStartRecoverSoundDemo() function this.ClearMissionStartRecoverSoundDemo() function this.GetMissionStartRecoverDemoType() function this.OutsideOfHotZoneCount() local function StopOutsideHotzoneTimer() function this.CheckMissionClearOnRideOnFultonContainer() function this.OnPlayerFultoned() function this.Update() function this.UpdateForMissionLoad() function this.CreateMbSaveCoroutine() local function MBSave() function this.ResumeMbSaveCoroutine() function this.GetSyncMissionStatus() function this.SeizeReliefVehicleOnAbort() function this.SeizeReliefVehicleOnClear() function this.SeizeReliefVehicleOnForceGoToMb() function this.EvaluateReliefVehicleSeizable(missionClearType) function this.EvaluateVehicleCarryOption(missionClearType) function this.ExecuteVehicleSaveCarryOnAbort() function this.ExecuteVehicleSaveCarryOnClear() function this.EstablishedMissionAbort() function this.FadeOutOnMissionAbort() function this.OnEndFadeOutMissionAbort() function this.EstablishedGameOver() function this.UpdateAtCanMissionClear(isOutsideOfHotZone,isOutsideOfMissionArea) function this.ReserveMissionClearOnOutOfHotZone() function this._ReserveMissionClearOnOutOfHotZone() --ORIG -- function this._ReserveMissionClearOnOutOfHotZone() -- if mvars.mis_lastOutSideOfHotZoneButAlert then -- TppRadio.PlayCommonRadio(TppDefine.COMMON_RADIO.OUTSIDE_HOTZONE_CHANGE_SNEAK) function this.ReserveMissionClearOnRideOnHelicopter()--tex REWORKED --ORIG -- function this.ReserveMissionClearOnRideOnHelicopter() -- if TppLocation.IsAfghan()then -- this.ReserveMissionClear{missionClearType=TppDefine.MISSION_CLEAR_TYPE.RIDE_ON_HELICOPTER,nextMissionId=TppDefine.SYS_MISSION_ID.AFGH_HELI} function this.ReserveMissionClearOnRideOnFultonContainer() function this.AbortMissionByMenu() function this.AbortForOutOfMissionArea(abortInfo) --ORIG -- function this.AbortForOutOfMissionArea(abortInfo) -- local isNoSave=true -- local presentationFunction function this.AbortForRideOnHelicopter(abortInfo) --ORIG -- function this.AbortForRideOnHelicopter(abortInfo) -- local isNoSave=true -- local isAlreadyGameOver=false function this.AbortForRideFultonContainer(abortInfo) function this.GameOverAbortMission() function this.GameOverAbortForOutOfMissionArea()--tex REWORKED --ORIG -- function this.GameOverAbortForOutOfMissionArea() -- if TppLocation.IsAfghan()then -- mvars.mis_abortWithSave=false function this.GameOverAbortForRideOnHelicopter()--tex REWORKED --ORIG -- function this.GameOverAbortForRideOnHelicopter() -- if TppLocation.IsAfghan()then -- mvars.mis_abortWithSave=false function this.OnChangeSVars(name,key) function this.PostMissionOrderBoxPositionToBuddyDog() function this.SetIsStartFromHelispace() function this.ResetIsStartFromHelispace() function this.SetIsStartFromFreePlay() function this.ResetIsStartFromFreePlay() function this.CanMissionAbortByMenu() function this.SetMissionOrderBoxPosition() function this._SetMissionOrderBoxPosition(boxName) function this.FindOrderBoxName(orderBoxNameStr32) function this.GetOrderBoxLocator(orderBoxName) function this.GetOrderBoxLocatorByTransform(orderBoxName) function this.SetFobPlayerStartPoint() function this.IsNeedSetMissionStartPositionToClusterPosition() function this.ReserveForcePlayerPositionToMbDemoCenter() function this.SetMissionStartPositionMtbsClusterPosition() function this.EstablishedMissionClear() function this.OnMissionGameEndFadeOutFinish() function this.OnMissionGameEndFadeOutFinish2nd() --objectiveDefine=missionTable.sequence.missionObjectiveDefine function this.SetMissionObjectives(objectiveDefine,ojectiveTree,objectiveEnum) function this.OnFinishUpdateObjectiveRadio(radioGroupNameStr32) --mvars.mis_objectiveSetting function this.ShowUpdateObjective(objectiveSetting) function this._ShowObjective(objectiveDefine,enableTask) function this.RestoreShowMissionObjective() function this.SetMissionObjectiveEnable(objectiveName,enable) function this.IsEnableMissionObjective(objectiveName) function this.GetParentObjectiveName(objectiveName) function this.IsEnableAnyParentMissionObjective(objectiveName) function this.DisableChildrenObjective(objectiveName) function this.DisableObjective(objectiveDefine) function this.VarSaveOnUpdateCheckPoint(saveBusy) function this.SafeStopSettingOnMissionReload(parms) function this.VarResetOnNewMission() --CALLERS: TppVarInit.SetVarsTitleHeliSpace, AcceptEmergencyMission, ReturnToTitle, GameOverReturnToTitle, ReserveMissionClearOnRideOnFultonContainer --see AbortForRideOnHelicopter for normal abort function this.GetCurrentLocationHeliMissionAndLocationCode() --ORIG -- function this.GetCurrentLocationHeliMissionAndLocationCode() -- if TppLocation.IsAfghan()then -- return TppDefine.SYS_MISSION_ID.AFGH_HELI,TppDefine.LOCATION_ID.AFGH function this.ResetEmegerncyMissionSetting() function this.GoToEmergencyMission() function this.RequestLoad(nextMission,currentMission,options) function this.LoadWithChunkCheck() function this.IsChunkLoading(chunkIndex) --CALLERS: StartInitMission, ExecuteRestartMission, ExecuteContinueFromCheckPoint, LoadForMissionAbort, LoadWithChunkCheck function this.Load(nextMissionCode,currentMissionCode,loadSettings) function this.ExecuteReload() function this.CanStart() function this.SetNextMissionCodeForMissionClear(missionCode) function this.GetNextMissionCodeForMissionClear() --CALLER: init and helispace function this.AlwaysMissionCanStart() function this.KillDyingQuiet() function this.SetSortieBuddy() function this.ResetQuietEquipIfUndevelop()--RETAILPATCH: 1060 function this.ForceGoToMbFreeIfExistMbDemo() function this.ResetMBFreeStartPositionToCommand() function this.SetNextMissionStartHeliRoute(heliRoute) function this.ClearFobMode() function this.UnsetFobSneakFlag(missionCode) function this.StartHelicopterDoorOpenTimer() function this.GetObjectiveRadioOption(n) function this.OnMissionStart() function this.SetPlayRecordClearInfo() function this.IsBossBattle() function this.StartBossBattle() function this.FinishBossBattle() function this.ShowAnnounceLogOnGameStart() function this.SetHeroicAndOgrePointInSlot(missionHeroicPoint,missionOgrePoint) function this._CreateMissionName(missionCode) --ORIG --function this._CreateMissionName(missionCode) -- local firstDigit=string.sub(tostring(missionCode),1,1) -- local missionTypeCode function this._PushReward(category,langId,rewardType) ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppPackList.lua` ```lua function this.MakeDefaultMissionPackList(missionCode) function this.AddMissionPack(packPath) function this.DeleteMissionPack(packPath) function this.AddDefaultMissionAreaPack(missionCode) function this.MakeDefaultMissionAreaPackPath(missionCode) --tex NMC not going to extend this to mission addon system since its better for thr mod author to know the packs they're loading/and they have full flexibility already function this.AddLocationCommonScriptPack(missionCode) --tex NMC not going to extend this to mission addon system since its better for thr mod author to know the packs they're loading/and they have full flexibility already function this.AddLocationCommonMissionAreaPack(missionCode) function this.IsMissionPackLabelList(labelList) function this.IsMissionPackLabel(label) function this.AddColoringPack(missionCode) function this.AddFOBLayoutPack(missionCode) function this.AddAvatarEditPack() function this.SetUseDdEmblemFova(missionCode) function this.SetMissionPackLabelName(labelName) function this.SetDefaultMissionPackLabelName() function this.MakeMissionPackList(missionCode,missionPackList) function this.GetMissionTypeAndMissionName(missionCode) --NMC tex this is pretty jank, but works with custom locations since IH patches LOCATION_HAVE_MISSION_LIST --GOTCHA: locationName returned is in ALLCAPS --GOTCHA: this returns 10240 as MTBS even though for the start/external its loc 50/mtbs, but its internal is 55/mbqf --GOTCHA: only returns addon missions after InfMission.AddInLocations is exec (which is via loadlibraries, so you probably wont be calling it before that), see also TppLocation.GetLocationName function this.GetLocationNameFormMissionCode(missionCode) ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppPlayer.lua` ```lua this.MISSION_CLEAR_CAMERA_FADE_DELAY_TIME=3 this.MISSION_CLEAR_CAMERA_DELAY_TIME=0 this.PLAYER_FALL_DEAD_DELAY_TIME=.2 this.DisableAbilityList={Stand="DIS_ACT_STAND",Squat="DIS_ACT_SQUAT",Crawl="DIS_ACT_CRAWL",Dash="DIS_ACT_DASH"} this.ControlModeList={LockPadMode="All",LockMBTerminalOpenCloseMode="MB_Disable",MBTerminalOnlyMode="MB_OnlyMode"} this.CageRandomTableG1={{1,20},{0,80}} this.CageRandomTableG2={{2,15},{1,20},{0,65}} this.CageRandomTableG3={{4,5},{3,10},{2,15},{1,20},{0,50}} this.RareLevelList={"N","NR","R","SR","SSR"} --No refs? function this.RegisterCallbacks(callBacks) function this.SetStartStatus(status) function this.SetStartStatusRideOnHelicopter() function this.ResetDisableAction() function this.GetPosition() function this.GetRotation() function this.Warp(info) function this.SetForceFultonPercent(gameId,percentage) function this.ForceChangePlayerToSnake(basic) --RETAILPATCH 1.0.11 , 1.0.13 added IsCurrentPlayerQuiet> function this.ForceChangePlayerFromOcelot() --< --NMC: only used in s10020 to detect --settings = table of pitch yaw and ranges to check and func to exec when done so --(this is just the setup function, actually checked and execed CheckRotation) function this.CheckRotationSetting(settings) local function AddEntry(checkListEntry,keyName,value) function this.CheckRotation() function this.IsDeliveryWarping() function this.GetStationUniqueId(e) function this.SetMissionStartPositionToCurrentPosition() function this.SetNoOrderBoxMissionStartPosition(pos,rotY) function this.SetNoOrderBoxMissionStartPositionToCurrentPosition() function this.SetMissionStartPosition(pos,rotY) function this.ResetMissionStartPosition() function this.ResetNoOrderBoxMissionStartPosition() function this.SetMissionStartPositionFromNoOrderBoxPosition() function this.DEBUG_CheckNearMissionStartPositionToRealizePosition() function this.SetInitialPositionToCurrentPosition() function this.SetInitialPosition(pos,rotY) function this.SetInitialPositionFromMissionStartPosition() function this.ResetInitialPosition() --RETAILPATCH: 1060> function this.FailSafeInitialPositionForFreePlay() --< --NMC usually called in mission _sequence MissionPrepare function this.RegisterTemporaryPlayerType(playerSetting) function this.SaveCurrentPlayerType() function this.ApplyTemporaryPlayerType() function this.RestoreTemporaryPlayerType() function this.SetWeapons(weaponTable) --tex added noSave function this.SetInitWeapons(weaponTable,noSave) function this._SetWeapons(weaponTable,category) function this.GetWeaponSlotInfoFromWeaponSet(weaponInfo,slotNum) function this.SaveWeaponsToUsingTemp(weaponTable) function this.RestoreWeaponsFromUsingTemp() function this.SetItems(itemNames) function this.SetInitItems(itemNames) function this._SetItems(itemNames,e) function this.SaveItemsToUsingTemp(e) function this.RestoreItemsFromUsingTemp() function this.InitItemStockCount() function this.GetBulletNum(bulletType) function this.SavePlayerCurrentWeapons() function this.RestorePlayerWeaponsOnMissionStart() function this.SaveChimeraWeaponParameter() function this.RestoreChimeraWeaponParameter() function this.SavePlayerCurrentItems() function this.RestorePlayerItemsOnMissionStart() function this.ForceSetAllInitialWeapon() function this.SupplyAllAmmoFullOnMissionFinalize() function this.SupplyWeaponAmmoFull(slot) function this.SupplySupportWeaponAmmoFull(weaponId) function this.SupplyAmmoByBulletId(ammoId,defaultAmmo) function this.SavePlayerCurrentAmmoCount() function this.SetMissionStartAmmoCount() function this.SetEquipMissionBlockGroupSize() function this.SetMaxPickableLocatorCount() function this.SetMaxPlacedLocatorCount() function this.IsDecoy(equipId) function this.IsMine(equipId) function this.AddTrapSettingForIntel(trapInfo) function this.ShowIconForIntel(intelName,dontShow) function this.GotIntel(intelNameHash) function this.HideIconForIntel() function this.AddTrapSettingForQuest(trapInfo) function this.ShowIconForQuest(questName,questStarted) --CALLER: Shooting practice sideops function this.QuestStarted(questNameHash) function this.HideIconForQuest() function this.ResetIconForQuest(iconType) function this.AppearHorseOnMissionStart(identifier,key) function this.StartGameOverCamera(gameObjectId,startTimerName,announceLog) function this._StartGameOverCamera(e,e) function this.PrepareStartGameOverCamera() function this.FOBStartGameOverCamera(gameId,startTimerName,announceLog) function this.SetTargetDeadCamera(params) function this._SetTargetDeadCamera() function this.SetTargetHeliCamera(params) function this._SetTargetHeliCamera() function this.SetTargetTruckCamera(params) function this._SetTargetTruckCamera(a) function this.SetPlayerKilledChildCamera() function this.SetPressStartCamera() function this.SetTitleCamera() function this.SetSearchTarget(targetGameObjectName,gameObjectType,name,skeletonName,offset,targetFox2Name,doDirectionCheck,wideCheckRange) function this.IsSneakPlayerInFOB(playerIndex) function this.PlayMissionClearCamera() function this.SetPlayerStatusForMissionEndCamera() function this.ResetMissionEndCamera() --REF this.PlayCommonMissionEndCamera(this.PlayMissionClearCameraOnRideHorse,this.VEHICLE_MISSION_CLEAR_CAMERA,this.PlayMissionClearCameraOnWalkerGear,this.PlayMissionClearCameraOnFoot,step,unk6) function this.PlayCommonMissionEndCamera(HorseCamFunc,VehicleCamFuncs,WalkerGearCamFunc,MissionClearOnFootCamFunc,step,unk6) function this._PlayMissionClearCamera(step,unk2) function this.RequestMissionClearMotion() function this.PlayMissionClearCameraOnFoot(step,unk2) function this.PlayMissionClearCameraOnRideHorse(vehicleId,step,unk6) function this.PlayMissionClearCameraOnRideLightVehicle(vehicleId,step,unk3) function this.PlayMissionClearCameraOnRideTruck(vehicleId,step,unk6) function this.PlayMissionClearCameraOnRideCommonArmoredVehicle(unkId,step,unk3,RENisQuest) function this.PlayMissionClearCameraOnRideEasternArmoredVehicle(vehicleId,step,unkP3) function this.PlayMissionClearCameraOnRideWesternArmoredVehicle(vehicleId,step) function this.PlayMissionClearCameraOnRideTank(vehicleId,step,unk6) function this.PlayMissionClearCameraOnWalkerGear(vehicleId,step,unk6) this.VEHICLE_MISSION_CLEAR_CAMERA= { ... } function this.FOBPlayMissionClearCamera() function this._FOBPlayMissionClearCamera(camMode) function this.FOBPlayCommonMissionEndCamera(CamFunc,camMode) function this.FOBRequestMissionClearMotion() function this.FOBPlayMissionClearCameraOnFoot(camMode) function this.PlayMissionAbortCamera() function this._PlayMissionAbortCamera() function this.PlayMissionAbortCameraOnFoot() function this.PlayMissionAbortCameraOnRideHorse(vehicleId) function this.PlayMissionAbortCameraOnRideLightVehicle(vehicleId) function this.PlayMissionAbortCameraOnRideTruck(vehicleId) function this.PlayMissionAbortCameraOnRideCommonArmoredVehicle(vehicleId,step) function this.PlayMissionAbortCameraOnRideEasternArmoredVehicle(vehicleId) function this.PlayMissionAbortCameraOnRideWesternArmoredVehicle(vehicleId) function this.PlayMissionAbortCameraOnRideTank(vehicleId) function this.PlayMissionAbortCameraOnWalkerGear(vehicleId) this.VEHICLE_MISSION_ABORT_CAMERA= { ... } function this.PlayFallDeadCamera(param) function this.SetLimitFallDeadCameraOffsetPosY(posYLimit) function this.ResetLimitFallDeadCameraOffsetPosY() function this.GetFallDeadCameraOffsetPosY() function this.PlayFallDeadCameraOnFoot() function this.PlayFallDeadCameraOnRideHorse(a) function this.PlayFallDeadCameraOnRideLightVehicle(a) function this.PlayFallDeadCameraOnRideTruck(a) function this.PlayFallDeadCameraOnRideArmoredVehicle(a) function this.PlayFallDeadCameraOnRideTank(a) function this.PlayFallDeadCameraOnWalkerGear(a) this.VEHICLE_FALL_DEAD_CAMERA= { ... } function this.Messages() function this.DeclareSVars() function this.OnAllocate(missionTable) function this.SetInitialPlayerState(missionTable) function this.MissionStartPlayerTypeSetting() function this.Init(missionTable) function this.SetSelfSubsistenceOnHardMission() function this.OnReload() function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this.Update() this.fultonWeatherSuccessTable= { ... } this.mbSectionRankSuccessTable= { ... } --Calculates fulton success ratio --tex now returns percentage instead of putting it directly to SetFultonIconPercentage --(so better name is GetFultonRecoverSucceedRatio) function this.MakeFultonRecoverSucceedRatio(playerIndex,gameId,gimmickInstanceOrAnimalId,gimmickDataSet,staffOrResourceId,isDogFultoning) function this.GetSoldierFultonSucceedRatio(gameId) function this.GetDefaultSucceedRatio(e) function this.GetVolginFultonSucceedRatio(e) function this.SetHelicopterInsideAction() this.gmpForFultonedObject= { ... } function this.OnPlayerFulton(playerIndex,gameId) function this.QuietRideHeli(gameId) function this.SetRetryFlag() function this.SetRetryFlagWithChickCap() function this.UnsetRetryFlag() function this.ResetStealthAssistCount() function this.OnPickUpCollection(playerId,resourceId,resourceType,langId) function this.CheckAllStationPickedUp() function this.OnPickUpPlaced(playerId,equipId,itemIndex,isPlayers) function this.OnPickUpWeapon(playerGameId,equipId,number) function this.RestoreSupplyCbox() function this.StoreSupplyCbox() function this.IsExistSupplyCboxSystem() function this.RestoreSupportAttack() function this.StoreSupportAttack() function this.IsExistSupportAttackSystem() function this.StorePlayerDecoyInfos() function this.IsExistDecoySystem() this.DELIVERY_WARP_STATE=Tpp.Enum{"START_FADE_OUT","START_WARP","END_WARP","START_FADE_IN"} function this.OnSelectCboxDelivery(a) function this.WarpByCboxDelivery() function this.OnEndWarpByCboxDelivery() function this.OnDeliveryWarpSoundCannotCancel() function this.UpdateDeliveryWarp() function this.OnEndFadeInWarpByCboxDelivery() function this.OnEnterIntelMarkerTrap(markerTrapNameS32,trappedGameId) function this.OnEnterIntelTrap(trapNameS32,trappedGameId) function this.OnExitIntelTrap(trapNameS32,trappedGameId) function this.OnIntelIconDisplayContinue(intelNameS32,unk2,unk3) function this.OnEnterQuestTrap(trapNameS32,player) function this.OnExitQuestTrap(trap,player) function this.OnQuestIconDisplayContinue(questNameS32,unk2,unk3) function this.UpdateCheckPointOnMissionStartDrop() function this.IsAlreadyDropped() function this.SaveCaptureAnimal() function this.AggregateCaptureAnimal() function this.CheckCaptureCage(n,r) function this.GetCaptureAnimalSE(t) function this._IsStartStatusValid(a) function this._IsAbilityNameValid(name) function this._IsControlModeValid(a) function this._CheckRotation(x,rangeX,y,rangeY,entryIndex) local function RandomFromCageTable(cageTable) local function RENdoesMatch(e,a) function this.EvaluateCaptureCage(i,a,grade,material) function this.Refresh(resetDirty) --RETAILPATCH 1.0.11> function this.IsCurrentPlayerOcelot() --< --RETAILPATCH 1.0.13> function this.IsCurrentPlayerQuiet() ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppQuest.lua` ```lua this.debugModule=false--tex this.prevMissionType=missionTypes.HELI this.QUEST_CATEGORIES= { ... } this.QUEST_CATEGORIES_ENUM=TppDefine.Enum(this.QUEST_CATEGORIES)--tex from 0 this.NUM_VANILLA_UI_QUESTS=157--tex indexed/user facing quests only for unmodified questInfoTable -^- this.QUESTTABLE_INDEX={} function this.GetQuestInfoTable() this.questCompleteLangIds= { ... } function canOpenQuestChecks.waterway_q99010() function canOpenQuestChecks.waterway_q99012() function canOpenQuestChecks.sovietBase_q99020() function canOpenQuestChecks.sovietBase_q99030() function canOpenQuestChecks.tent_q99040() function canOpenQuestChecks.cliffTown_q99080() function canOpenQuestChecks.field_q30010() function this.OpenChildSoldier_1() function this.OpenChildSoldier_2() function canOpenQuestChecks.outland_q20913() function canOpenQuestChecks.lab_q20914() function canOpenQuestChecks.tent_q20910() function canOpenQuestChecks.fort_q20911() function canOpenQuestChecks.sovietBase_q20912() function canOpenQuestChecks.waterway_q39010() function canOpenQuestChecks.lab_q39011() function canOpenQuestChecks.pfCamp_q39012() function canOpenQuestChecks.ruins_q19010() function canOpenQuestChecks.commFacility_q19013() function canOpenQuestChecks.outland_q19011() function canOpenQuestChecks.hill_q19012() function canOpenQuestChecks.outland_q99071() function canOpenQuestChecks.sovietBase_q99070() function canOpenQuestChecks.tent_q99072() function canOpenQuestChecks.outland_q40010() function canOpenQuestChecks.sovietBase_q60110() function canOpenQuestChecks.sovietBase_q60111() function canOpenQuestChecks.citadel_q60112() function canOpenQuestChecks.outland_q60113() function canOpenQuestChecks.pfCamp_q60114() function canOpenQuestChecks.ruins_q60115() function canOpenQuestChecks.tent_q10010() function canOpenQuestChecks.field_q10020() function canOpenQuestChecks.ruins_q10030() function canOpenQuestChecks.waterway_q10040() function canOpenQuestChecks.cliffTown_q10050() function canOpenQuestChecks.commFacility_q10060() function canOpenQuestChecks.sovietBase_q10070() function canOpenQuestChecks.fort_q10080() function canOpenQuestChecks.citadel_q10090() function canOpenQuestChecks.outland_q10100() function canOpenQuestChecks.pfCamp_q10200() function canOpenQuestChecks.savannah_q10300() function canOpenQuestChecks.hill_q10400() function canOpenQuestChecks.banana_q10500() function canOpenQuestChecks.diamond_q10600() function canOpenQuestChecks.lab_q10700() function canOpenQuestChecks.quest_q20015() function canOpenQuestChecks.quest_q20025() function canOpenQuestChecks.quest_q20035() function canOpenQuestChecks.quest_q20045() function canOpenQuestChecks.quest_q20055() function canOpenQuestChecks.quest_q20065() function canOpenQuestChecks.quest_q20075() function canOpenQuestChecks.quest_q20085() function canOpenQuestChecks.quest_q20095() function canOpenQuestChecks.quest_q20105() function canOpenQuestChecks.quest_q20205() function canOpenQuestChecks.quest_q20305() function canOpenQuestChecks.quest_q20405() function canOpenQuestChecks.quest_q20505() function canOpenQuestChecks.quest_q20605() function canOpenQuestChecks.quest_q20705() function canOpenQuestChecks.quest_q20805() function canOpenQuestChecks.quest_q20905() function canOpenQuestChecks.quest_q21005() function canOpenQuestChecks.quest_q22005() function canOpenQuestChecks.quest_q23005() function canOpenQuestChecks.quest_q24005() function canOpenQuestChecks.quest_q25005() function canOpenQuestChecks.quest_q26005() function canOpenQuestChecks.quest_q27005() function canOpenQuestChecks.tent_q11010() function canOpenQuestChecks.tent_q11020() function canOpenQuestChecks.waterway_q11030() function canOpenQuestChecks.cliffTown_q11040() function canOpenQuestChecks.cliffTown_q11050() function canOpenQuestChecks.fort_q11060() function canOpenQuestChecks.fort_q11070() function canOpenQuestChecks.commFacility_q11080() function canOpenQuestChecks.outland_q11090() function canOpenQuestChecks.outland_q11100() function canOpenQuestChecks.pfCamp_q11200() function canOpenQuestChecks.savannah_q11300() function canOpenQuestChecks.savannah_q11400() function canOpenQuestChecks.hill_q11500() function canOpenQuestChecks.banana_q11600() function canOpenQuestChecks.banana_q11700() function canOpenQuestChecks.tent_q71010() function canOpenQuestChecks.field_q71020() function canOpenQuestChecks.tent_q71030() function canOpenQuestChecks.waterway_q71040() function canOpenQuestChecks.cliffTown_q71050() function canOpenQuestChecks.cliffTown_q71060() function canOpenQuestChecks.sovietBase_q71070() function canOpenQuestChecks.fort_q71080() function canOpenQuestChecks.field_q71090() function canOpenQuestChecks.outland_q71200() function canOpenQuestChecks.savannah_q71300() function canOpenQuestChecks.banana_q71400() function canOpenQuestChecks.diamond_q71500() function canOpenQuestChecks.lab_q71600() function canOpenQuestChecks.lab_q71700() function canOpenQuestChecks.commFacility_q80060() function canOpenQuestChecks.field_q80020() function canOpenQuestChecks.outland_q80100() function canOpenQuestChecks.pfCamp_q80200() function canOpenQuestChecks.diamond_q80600() function canOpenQuestChecks.hill_q80400() function canOpenQuestChecks.tent_q80010() function canOpenQuestChecks.lab_q80700() function canOpenQuestChecks.fort_q80080() function canOpenQuestChecks.waterway_q80040() function canOpenQuestChecks.quest_q52010() function canOpenQuestChecks.quest_q52020() function canOpenQuestChecks.quest_q52030() function canOpenQuestChecks.quest_q52040() function canOpenQuestChecks.quest_q52050() function canOpenQuestChecks.quest_q52060() function canOpenQuestChecks.quest_q52070() function canOpenQuestChecks.quest_q52080() function canOpenQuestChecks.quest_q52090() function canOpenQuestChecks.quest_q52100() function canOpenQuestChecks.quest_q52110() function canOpenQuestChecks.quest_q52120() function canOpenQuestChecks.quest_q52130() function canOpenQuestChecks.quest_q52140() function canOpenQuestChecks.quest_q52015() function canOpenQuestChecks.quest_q52025() function canOpenQuestChecks.quest_q52035() function canOpenQuestChecks.quest_q52045() function canOpenQuestChecks.quest_q52055() function canOpenQuestChecks.quest_q52065() function canOpenQuestChecks.quest_q52075() function canOpenQuestChecks.quest_q52085() function canOpenQuestChecks.quest_q52095() function canOpenQuestChecks.quest_q52105() function canOpenQuestChecks.quest_q52115() function canOpenQuestChecks.quest_q52125() function canOpenQuestChecks.quest_q52135() function canOpenQuestChecks.quest_q52145() function canOpenQuestChecks.ruins_q60010() function canOpenQuestChecks.tent_q60011() function canOpenQuestChecks.cliffTown_q60012() function canOpenQuestChecks.fort_q60013() function canOpenQuestChecks.sovietBase_q60014() function canOpenQuestChecks.pfCamp_q60020() function canOpenQuestChecks.hill_q60021() function canOpenQuestChecks.lab_q60022() function canOpenQuestChecks.banana_q60023() function canOpenQuestChecks.outland_q60024() function canOpenQuestChecks.Mtbs_SmokingSoldierCommand() function canOpenQuestChecks.Mtbs_SmokingSoldierCombat() function canOpenQuestChecks.Mtbs_child_dog() function canOpenQuestChecks.Mtbs_ddog_walking() function canOpenQuestChecks.mtbs_q99050() function canOpenQuestChecks.mtbs_q99011() function canOpenQuestChecks.mtbs_wait_quiet() function canOpenQuestChecks.mtbs_return_quiet() function canOpenQuestChecks.mtbs_q101210() function canOpenQuestChecks.mtbs_q101220() function canOpenQuestChecks.mtbs_q99060() function canOpenQuestChecks.mtbs_q42010() function canOpenQuestChecks.mtbs_q42020() function canOpenQuestChecks.mtbs_q42030() function canOpenQuestChecks.mtbs_q42040() function canOpenQuestChecks.mtbs_q42050() function canOpenQuestChecks.mtbs_q42060() function canOpenQuestChecks.mtbs_q42070() this.ShootingPracticeOpenCondition= { ... } function this.GetCanOpenQuestTable()--tex expose for InfQuest> --tex REWORKED --tex NMC called via exe, see TppUiCommand.RegisterSideOpsListFunction. Actual quest selection in UpdateActiveQuest --tex The vanilla behavior just show current Active and Cleared, which lets you see past progression/completion, --though since uncleared quests do have priority, one will be selected for Active function this.GetSideOpsListTable() this.MAX_UI_QUESTS=192--tex LIMIT I verified this limit again in 2023. NOTE: theres 157 ui quests (this questInfoTable). function this.ManageUiLimit(sideOpsListTable,clearedNotActive) --tex sorts various flags of sideopsList questInfos depending on IH showOnUiMenu/ (InfQuestIvars) settings> --OUT:sideOpsListTable function this.SortSideopsList(sideOpsListTable) --IN:sortByFlags - array of flag names to sort by, in order --IN:sortAscend - {[flagName]=,...}what direction to sort local function SortByFlags(questInfoA, questInfoB) function this.GetBounusGMP(questName) --UNUSED? function this.RegisterForceDeactiveOnMBTerminal(questName) --tex NMC but this is. mostly to disable during demos function this.RegisterClusterForceDeactiveOnMBTerminal(clusterId) function this.UnregisterForceDeactiveOnMBTerminal() function this.UnregisterClusterForceDeactiveOnMBTerminal() function this.IsActiveOnMBTerminal(questInfo) function this.IsOpenLocation(locationId) function this.GetCanActiveQuestTable()--tex expose for InfQuest> function this.CanActiveQuest(questName)--tex> function canActiveQuestChecks.mtbs_wait_quiet() function canActiveQuestChecks.Mtbs_child_dog() function canActiveQuestChecks.Mtbs_ddog_walking() function canActiveQuestChecks.cliffTown_q99080() function this.SpecialMissionStartSetting(missionClearType) --tex REWORKED only vanilla use was list of questNames --IN: --allowedQuests="" --allowedQuests={,...} function this.RegisterCanActiveQuestListInMission(allowedQuests) --ORIG --function this.RegisterCanActiveQuestListInMission(allowedQuests) -- mvars.qst_canActiveQuestList=allowedQuests --end function this.RegisterQuestStepList(questStepNames) --NMC CALLER: quest script OnAllocate, just after above. function this.RegisterQuestStepTable(questStepTable) function this.RegisterQuestSystemCallbacks(callbackFunctions) local function SetCallBack(callBackFunc,callbackName) function this.SetNextQuestStep(questStep) function this.ClearWithSave(clearType,questName) function this.ClearWithSaveMtbsDDQuest() --tex added keepAlive function this.Clear(questName,keepAlive) function this.GoToMBAfterClear(questName) function this.Failure(questName) function this.Update(currentQuestName) function this.Retry(questName) function this.AddStaffsFromTempBuffer() function this.Save() function this.SetClearFlag(questName) --should be --function this.SetClearFlag(questName) -- if questName==nil then -- return function this.ReserveOpenQuestDynamicUpdate() function this.FadeOutAndDeativateQuestBlock() function this.SetQuestBlockName(blockName) --NMC: UNUSED: just search/use mvars.qst_blockName directly function this.GetQuestBlockName(e) function this.OnAllocate(missionTable) function this.Init(missionTable) function this.OnReload(missionTable) function this.Messages() function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) --quest script .QUEST_TABLE function this.OnDeactivate(questTable) --CALLER: TppMain.OnInitialize, near top --questList==TppQuestList.questList function this.RegisterQuestList(questList) --questPackList either TppQuestList.questPackList or (via TppMbFreeDemo.UpdatePackList) TppMbFreeDemo.demoBlockList, f30050demo_fovaPackList (which I think mb in general uses to load its soldier faces? see f30050_sequence.RegisterFovaFpk), and others function this.RegisterQuestPackList(questPackList,blockName) function this.SetDefaultQuestBlock() function this.InitializeQuestLoad(clusterIndex) function this.InitializeQuestActiveStatus(questActiveCluster) function this.DEBUG_Init() function this.DebugUpdate() local function PrintAreaInfo(printContext,areaType,bounds) function this.ShowAnnounceLogQuestOpen() function this.OnUpdateSmallBlockIndex(blockIndexX,blockIndexY,clusterIndex) function this.OnUpdateClusterIndex(clusterIndex) function this.UpdateQuestBlockStateAtNotLoaded(blockIndexX,blockIndexY,clusterIndex) function this.UpdateQuestBlockStateAtInactive(blockIndexX,blockIndexY) function this.UpdateQuestBlockStateAtActive(blockIndexX,blockIndexY) --tex added, only called if quest scrip .OnAllocate call it, so none of the vanilla quest scripts. function this.QuestBlockOnAllocate(questScript) --< function this.QuestBlockOnInitialize(questScript) function this.QuestBlockOnTerminate(questScript) function this._CanActivateQuest() function this.QuestBlockOnUpdate(questScript) function this.OnMissionGameEnd() function this.ClearBlockStateRequest() function this.Invoke() function this.SetNewQuestAndLoadQuestBlock(questName) function this.GetCurrentQuestName() function this.GetCurrentAreaName() function this.SetCurrentQuestName(questName) function this.ClearCurrentQuestName() function this.ResetQuestStatus() function this.UnloadCurrentQuestBlock() function this.ActivateCurrentQuestBlock() function this.DeactivateCurrentQuestBlock() function this.SearchQuestFromAllSpecifiedArea(areaType,blockIndexX,blockIndexY,clusterIndex) function this.IsInsideArea(areaType,locationAreaQuestTable,blockIndexX,blockIndexY,clusterId) function this.GetCurrentQuestTable() function this.GetQuestTable(questName) function this.GetQuestIndex(questName) --tex NMC GOTCHA: some quests are hidden, dont have questInfo (see Note at top of questInfoTable) function this.GetSideOpsInfo(questName) --UNUSED function this.IsShowSideOpsList(t) --NMC takes last parts of questName to get questId ex tent_q10010 to q10010 function this.GetQuestNameLangId(questName) function this.GetQuestNameId(questName) function this.GetQuestName(questIdNumber) function this.ExecuteSystemCallback(callbackName) function this.IsInvoking() function this.UpdateOpenQuest() --tex returns lists of activable candidates for the area, split into priorities --broken out from UpdateActiveQuest --areaQuestsList: TppQuestList.questList[areaInfoIdx].infoList function this.SelectActivableQuests(areaQuestsList,dontBlock)--ForArea --tex heavily REWORKED --PCall InfHooked --CALLER: TppMain.OnInitialize --GOTCHA: once player has completed most quests the system then mostly relies on repoping quests, which is driven by UpdateRepopFlag/UpdateRepopFlagImpl. --however with vanilla code this is mainly only called on quest completion. This means with some IH quest selection options the whole list could get stuck in a none-selected state. function this.UpdateActiveQuest(updateFlags) --tex ORIG: --function this.UpdateActiveQuest(updateFlags) -- if not mvars.qst_questList then -- return function this.CanActiveQuestInMission(missionCode,questName) function this.IsImportant(questName) function this.OpenAndActivateSpecialQuest(questNames) function this.OpenQuestForce(questName) function this.CanOpenAndActivateSpecialQuest(questName) function this.SwitchActiveQuest(questName) function this.IsRepop(questName) function this.IsOpen(questName) function this.IsActive(questName) function this.IsCleard(questName)--TYPO function this.IsEnd(questName) function this._DoDeactivate() function this.MakeQuestStepMessageExecTable() function this.GetQuestStepTable(questStepNumber) function this.GetQuestBlockState() function this.CheckClearBounus(questIndex,t) function this.UpdateClearFlag(questIndex,clear,keepAlive)--tex added keepAlive --CALLER: Clear function this.UpdateRepopFlag(questIndex) --tex NMC: broken out from UpdateRepopFlagImpl --returns false if there's any activable quests function this.NeedUpdateRepop(locationQuests) --CALLER: UpdateRepopFlag < Clear --locationQuests = TppQuestList.questList[] --tex NMC Called on a quest clear with the locationQuests table of the area that quest is in --NOTE: the quest that was just cleared will have had qst_questRepopFlag set false, see above -^- function this.UpdateRepopFlagImpl(locationQuests,allwaysUpdate) function this.CheckAllClearBounus() function this.CalcQuestClearedCount() function this.CheckAllClearMineQuest() --tex NMC gates most of UpdateActiveQuest function this.NeedUpdateActiveQuest(updateFlags) function this.CanOpenSideOpsList() function this.StartElapsedEvent(countDown) function this.GetElapsedCount()--RETAILPATCH: 1060 function this.IsNowOccurringElapsed() function this.SetDoneElapsed() function this.DecreaseElapsedClearCount(questName) function this.PlayClearRadio(clearSideOpsName) function this.GetClearKeyItem(questName) function this.GetClearEmblem(questName) function this.GetClearCassette(questName) function this.ShowAnnounceLog(status,questName,questCurrentCount,questTotalCount) function this.IsRandomFaceQuestName(questName) --tex KLUDGE added index function this.GetRandomFaceId(questName,index) function this.SetRandomFaceId(questName,faceId) function this.OnQuestAreaAnnounceText(questIdNumber) function this.IsActiveQuestHeli() -- NMC: messages for trap_preDeactiveQuestArea_ traps in _sequence.fox2 --tex REWORKED to support addons function this.DeactiveQuestAreaTrapMessages() --ORIG --function this.DeactiveQuestAreaTrapMessages() -- local deactiveQuestAreaTrapMessages={} -- local areaList={} function this.GetTrapName(areaName) function this._ChangeToEnable(instanceName,makerType,gameObjectId,identificationCode) --CALLER: quest script msg QuestStarted function this.SetQuestShootingPractice() --CALLER: TimerShootingPracticeStart -^ function this.StartShootingPractice() function this.OnFinishShootingPractice(clearType,canceled) function this.IsShootingPracticeStarted() function this.IsShootingPracticeActivated() function this.ProcessFinishShootingPractice(clearType,canceled) function this.CancelShootingPractice() function this.StartSafeTimer(timerName,time) function this.StopTimer(timerName) function this.ShootingPracticeStopAllTimer() function this.OnQuestShootingTimerEnd() --CALLERS: Quest script OnActivate, TppQuest.SetRetryShootingPracticeStartUi --NMC: tex: shooting practice start marker system is a bit of a mess, the locators are loaded by mission pack (layout pack), so all the known markers are hidden on current shooting quest activate --further more the ground ui 'mb stage spot' is relocated using offset from plat pos, (but the icon marker above it isnt?) --tex so trying to expand this further without having to mod the vanilla stuff function this.ShowShootingPracticeStartUi(offsetType,startUiPosition,markerName) --CALLERS: ShowShootingPracticeStartUi ^, SetCancelShootingPracticeStartUi (called with nil params) function this.ShowShootingPracticeGroundUi(offsetType,startUiPosition) --CALLERS: ShowShootingPracticeStartUi ^, Quest script LandingFromHeli --tex added markerName function this.ShowShootingPracticeMarker(offsetType,markerName) function this.HideShootingPracticeStartUi() function this.HideShootingPracticeMarker() function this.OnDeactivateShootingPracticeForUi() function this.ClearShootingPracticeMvars() function this.HideAllShootingPracticeForUi() function this.SetRetryShootingPracticeStartUi() function this.SetCancelShootingPracticeStartUi() function this.UpdateShootingPracticeUi() function this.AcquireKeyItemOnMissionStart() ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppRadio.lua` ```lua this.COMMON_GAME_OVER_RADIO_LIST= { ... } function this.IGNORE_COMMON_RADIO() this.COMMON_RADIO_LIST= { ... } this.COMMON_RADIO_DELAY_LIST= { ... } function this.Messages() this.SFXList={RadioStart="Play_sfx_s_codec_NPC_begin",RadioEnd="Play_sfx_s_codec_NPC_end"} this.PRESET_DELAY_TIME={short=.5,mid=1.5,long=3} function this.Play(radioGroups,playInfo) function this.SetOptionalRadio(radioName) function this.SetTutorialOptionalRadio(radioName) function this.SetOverwriteByPhaseOptionalRadio(radioName) function this.UnsetTutorialOptionalRadio() function this.UnsetOverwriteByPhaseOptionalRadio() function this.ChangeIntelRadio(radioTable) function this.RequestBlackTelephoneRadio(radioName) function this.SetBlackTelephoneDisplaySetting(radioName) function this.DoEventOnRewardEndRadio() function this.SaveRewardEndRadioList(rewardEndRadionList) function this.IsPlayed(radio) function this.SetPlayedLocalFlag(e) function this.UnsetPlayedLocalFlag(e) function this.SetPlayedGlobalFlag(e) function this.UnsetPlayedGlobalFlag(e) function this.IsRadioPlayable() function this.Stop() function this.UnregisterRadioGroupSet() function this.EnableCommonOptionalRadio(i) function this.GetEspionageRadioTypeIndex(e) function this.PlayCommon(radioGroups,u_radioType,isQue,isOverwriteProtectionForSamePrio,preDelayTime,noiseType,u_priority,isPlayDebug) function this.PlayDebug(radio,delay) function this.PlayCommonRadio(commonRadioId,notIfPlayed) function this.GetPlayCommonTargetRadio(commonRadioId) function this.GetCommonRadioDelay(radioName) function this.CheckRadioGroupIsCommonRadio(radioNameStrCode,commonRadioEnum) function this.DeclareSVars() function this.OnAllocate(subScripts) function this.Init() function this.OnReload(missionTable) --_radio.radioList--radioName, or table of radioName and playOnce param --_radio.optionalRadioList--simple array of radioNames function this.CommonMakeRadioList(radioList) --_radio.radioList--radioName, or table of radioName and playOnce param function this.RegisterRadioList(radioList) function this.AddDebugRadioLineTable(e) --_radio.optionalRadioList function this.RegisterOptionalRadioList(radioList) function this.RegisterIntelRadioList(radioList) --_radio.commonRadioTable function this.OverwriteCommonRadioTable(commonRadioTable) function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this.PlayGameOverRadio() function this.PlayResultRadio() function this.DEBUG_PlayIntelRadio(a) function this.DEBUG_GetRadioIndex(n) function this.OnFinishBlackTelephoneRadio(a) function this.GetRadioNameAndRadioIDs(radioName) function this._PlayDebugStart() function this._PlayDebugContinue() function this._PlayDebugLine(text,delay) function this.PlaySelectBuddy(strCodeMbdvcSelection) function this.SetGameOverRadio(gameOverRadioId,radioName) ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppRanking.lua` ```lua this.IS_ONCE={false,true,true,true,true,false,false,false,true,true,false,false,false,false,false,false,false,false,false,false} this.UPDATE_ORDER={true,false,false,false,false,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true} this.ANNOUNCE_LOG_TYPE={NONE=0,TIME=1,DISTANCE=2,NUMBER=3} this.SHOW_ANNOUNCE_LOG={this.ANNOUNCE_LOG_TYPE.NONE,this.ANNOUNCE_LOG_TYPE.TIME,this.ANNOUNCE_LOG_TYPE.TIME,this.ANNOUNCE_LOG_TYPE.TIME,this.ANNOUNCE_LOG_TYPE.TIME,this.ANNOUNCE_LOG_TYPE.DISTANCE,this.ANNOUNCE_LOG_TYPE.NONE,this.ANNOUNCE_LOG_TYPE.DISTANCE,this.ANNOUNCE_LOG_TYPE.TIME,this.ANNOUNCE_LOG_TYPE.TIME,this.ANNOUNCE_LOG_TYPE.NONE,this.ANNOUNCE_LOG_TYPE.NONE,this.ANNOUNCE_LOG_TYPE.NONE,this.ANNOUNCE_LOG_TYPE.TIME,this.ANNOUNCE_LOG_TYPE.TIME,this.ANNOUNCE_LOG_TYPE.TIME,this.ANNOUNCE_LOG_TYPE.TIME,this.ANNOUNCE_LOG_TYPE.TIME,this.ANNOUNCE_LOG_TYPE.TIME,this.ANNOUNCE_LOG_TYPE.TIME} this.OPEN_CONDITION= { ... } this.EXCLUDE_MISSION_LIST= { ... } function this.GetScore(rankingCategory) function this.IncrementScore(rankingCategory) function this.UpdateScore(rankingCategory,score) function this.ShowUpdateScoreAnnounceLog(rankingCategoryEnum,score) function this.GetRankingLangId(rankingCategoryEnum) function this._ShowCommonUpdateScoreAnnounceLog(rankingCategoryEnum) function this._ShowScoreTimeAnnounceLog(scoreTime) function this._ShowScoreDistanceAnnounceLog(scoreDistance) function this._ShowScoreNumberAnnounceLog(score) function this.UpdateOpenRanking() --tex OVERRIDE: In InfMission, this is kjp records server stuff, so bypassing this for non vanilla missionCodes function this.RegistMissionClearRankingResult(usedRankLimitedItem,missionCode,totalScore) function this.SendCurrentRankingScore() --CALLER: UpdateScore function this.CheckExcludeMission(rankingCategoryEnum,missionCode) --NMC: no refrences? function this.UpdateScoreTime(rankingCategory) --CALLER: quest script on clear --HOOKED: REPLACEMENT: (InfHooks) InfShootingPractice.UpdateShootingPracticeClearTime function this.UpdateShootingPracticeClearTime(questNameAsRankingCategory,scoreTime) function this.Messages() function this.Init(missionTable) function this.CheckPlayRecordChallengeTask() function this.OnReload(missionTable) function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this.OnNeutralize(gameId,attackerId,neutralizeType,neutralizeCause) function this.OnHeadShot(gameId,attackId,attackerObjectId,flag) function this.OnCBoxSlideEnd(n,distance) function TppResult.IsEqualOrMoreCboxGlidingDistance(distance) function this.DeclareSVars() ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppRatBird.lua` ```lua function this.RegisterRat(ratList,ratRouteList) function this.RegisterBird(birdList,birdFlyZoneList) function this.RegisterBaseList(baseList) function this.EnableRat() function this.EnableBird(birdType) function this.Init(missionTable) function this.OnReload(missionTable) --tex GOTCHA: NMC a rare OnMessage function that doesn anything but always call Tpp.DoMessage with no guard function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this.Messages() function this.OnMissionCanStart() function this._WarpRats(baseName) function this._EnableRats(enabled) function this._WarpBird(baseName) --RETAILBUG: birdindex not defined, I assume it's the index of rat_bird_birdList but not sure, the equivalent for rats just sets 0, this function is overridden to a function that does nothing in TppAnimal function this._EnableBirds(enable) function this._Activate(baseName) function this._Deactivate() function this._OnChangeLargeBlockState(blockNameStr32,blockState) ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppReinforceBlock.lua` ```lua this.REINFORCE_TYPE_NAME= { ... } this.REINFORCE_TYPE=TppDefine.Enum(this.REINFORCE_TYPE_NAME) this.REINFORCE_FPK= { ... } this.REINFORCE_VEHICLE_NAME="reinforce_vehicle_0000" this.REINFORCE_DRIVER_SOLDIER_NAME="reinforce_soldier_driver" this.REINFORCE_SOLDIER_NAMES={"reinforce_soldier_0000","reinforce_soldier_0001","reinforce_soldier_0002","reinforce_soldier_0003"} this.REINFORCE_HELI_NAME="EnemyHeli" function this.GetReinforceBlockId() function this.GetReinforceBlockState() function this.IsLoaded() function this.IsProcessing() --NMC: tex pretty much just indexes into REINFORCE_FPK[], complicated because REINFORCE_TYPE.HELI has sub tables for location/coloringType, function this.GetFpk(reinforceType,pfcType,coloringType)--NMC: basically parses REINFORCE_FPK function this.SetUpReinforceBlock() function this.LoadReinforceBlock(reinforceType,reinforceCpId,reinforceColoringType) function this.UnloadReinforceBlock(cpId) function this.StartReinforce(cpId) function this.FinishReinforce(cpId) function this.ReinforceBlockOnInitialize() function this.ReinforceBlockOnUpdate() function this.ReinforceBlockOnActivate() function this.ReinforceBlockOnDeactivate() function this.ReinforceBlockOnTerminate() this.NO_SOLDIER_REINFORCE_TYPE= { ... } --rlc ^ function this._HasSoldier() this.VEHICLE_REINFORCE_TYPE= { ... } --rlc ^ function this._HasVehicle() this.HELI_REINFORCE_TYPE= { ... } --rlc ^ function this._HasHeli() function this._GetHeliRoute(reinforceCpId)--rlc return value is unused; but cpId implies an interesting use function this._SetEnabledSoldier(soldierName,enabled) this.REINFORCE_VEHICLE_SUBTYPE= { ... } this.REINFORCE_VEHICLE_PAINT_TYPE= { ... } --rlc ^ function this._SetEnabledVehicle(name,enable) function this._ActivateReinforce() function this._DeactivateReinforce() function this.Messages() function this.Init(missionTable) function this.OnReload(missionTable) function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) this.COLORING= { ... } this.COLORING_CLASS= { ... } function this.GetReinforceColoringType(reinforceType) --rlc ^ function this._OnRequestLoadReinforce(reinforceCpId)--NMC game message "RequestLoadReinforce" function this._OnRequestAppearReinforce(cpId) function this._OnCancelReinforce(cpId) ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppResult.lua` ```lua this.PLAYSTYLE_HEAD_SHOT=.9 this.RANK_THRESHOLD={S=13e4,A=1e5,B=6e4,C=3e4,D=1e4,E=0} this.RANK_BASE_SCORE={S=11e4,A=9e4,B=7e4,C=5e4,D=3e4,E=0} this.RANK_BASE_SCORE_10054={S=1e4,A=9e3,B=7e3,C=5e3,D=3e3,E=0} this.RANK_BASE_SCORE_10040={S=2e4,A=18e3,B=14e3,C=1e4,D=6e3,E=0} this.RANK_BASE_SCORE_10130={S=5e4,A=45e3,B=35e3,C=25e3,D=2e4,E=0} this.RANK_BASE_SCORE_10140={S=1e5,A=8e4,B=65e3,C=5e4,D=35e3,E=0} this.RANK_BASE_GMP={S=28e3,A=23400,B=2e4,C=18e3,D=13500,E=9999} this.COMMON_SCORE_PARAM= { ... } this.MISSION_GUARANTEE_GMP= { ... } this.MISSION_TASK_LIST= { ... } this.HARD_MISSION_LIST={11043,11041,11054,11085,11082,11090,11036,11033,11050,11091,11195,11211,11140,11200,11080,11171,11121,11115,11130,11044,11052,11151} this.NO_SPECIAL_BONUS={[10030]=true,[10115]=true,[10240]=true} function this.AcquireSpecialBonus(bonusInfo) function this._AcquireSpecialBonus(taskInfo,bestScoreBonusType,bestScoreBonusScoreType,bonusMaxCount,commonScoreParam,isCompleteBonusType,bonusTask,bonusPointList,isAquiredBonusInPointListType) --bonusPointList,isAquiredBonusInPointListType) function this.CalcPoinListBonusScore(bonusPointList,isAquiredBonusInPointListType) --NMC cant see any references to this function this.SetSpecialBonusMaxCount(e) function this._CompleteBonus(isCompleteSvar,bonusTask) function this.RegistNoMissionClearRank() function this.SetMissionScoreTable(missionScoreTable) function this.SetMissionFinalScore() function this.IsUsedChickCap() function this.RegistUsedLimitedItemLangId() function this.IsUsedRankLimitedItem() function this.DeclareSVars() function this.Init(missionTable) function this.OnReload(missionTable) function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this.OnMissionCanStart() function this.SetScoreTable(scoreTable) function this.SetRankTable(tankTable) this.saveCountTable= { ... } function this.SaveBestCount() function this.DEBUG_Count() function this.CalcBaseScore() function this.CalcTimeScore(baseScore,clearRank) this.calcScoreTable= { ... } this.bonusScoreTable= { ... } this.eachScoreLimit={bestScoreHeadShotBonusScore=100,bestScoreNeutralizeBonusScore=100,bestScoreMarkingCountScore=100,bestScoreInterrogateScore=100}--RETAILPATCH 1070 function this.CalcEachScore() --REF svars[n]=this.CalcScore(s,mvars.res_scoreTable[a[1]],mvars.res_missionScoreTable[a[3]],this.eachScoreLimit[n])--RETAILPATCH 1070 eachScoreLimit added function this.CalcScore(p1,RENscoreTable,RENmissionScoreTable,scoreLimit)--RETAILPATCH 1070 scorelimit added function this.CalcHitRatioBonusScore(shootHitCountInMission,playerShootCountInMission,shootHitCountEliminatedInMission,shootNeutralizeCount,hitRatioBaseScoreUnit,numOfBulletsPerNeutralizeCount,exponetHitRatio,limitHitRatioBonus,perfectBonusBase) this.playScoreList= { ... } this.bounusScoreList= { ... } function this.CalcTotalScore() function this.DecideMissionClearRank() function this.UpdateGmpOnMissionClear(missionCode,clearRank,totalScore) function this.SetBestRank(missionCode,rank) function this.GetBestRank(missionCode) function this.GetMissionClearRankGMP(clearRank,missionCode) --tex NMC called from UI (TppUiCommand.RegisterMbMissionListFunction) at some point DEBUGNOW TODO: when? function this.GetMbMissionListParameterTable() function this.GetMissionGuaranteeGMP(missionCode) function this.GetRepeatPlayGMPReduceRatio(missionCode) function this.AddMissionClearHistory(missionCode) function this.GetMissionClearCountFromHistory(a) function this.CalcMissionClearHistorySize() function this.SetMissionClearHistorySize(t) function this.ClearOverSizeHistory(e) function this.SetSpecialBonusResultScore() function this._SetSpecialBonusResultScore(bonusNum,bestScoreBounusName,bestScoreBonusScoreName,bonusMaxCount,bonusValue,isCompleteSecondBonusName,bonusMissionTask) function this.MakeMissionTaskLangId(taskNo) function this.SaveMissionClearPlayStyleParameter() function this.DecidePlayStyle() function this.DEBUG_Init() this.DEBUG_NEUTRALIZE_TYPE_TEXT={" HOLDUP"," CQC","NO_KILL"," KNIFE","HANDGUN","SUBMGUN","SHOTGUN","ASSAULT","MCH_GUN"," SNIPER","MISSILE","GRENADE"," MINE"," QUIET"," D_DOG","D_HORSE","D_WLKER","VEHICLE","SP_HELI"," ASSIST"} function this.DebugUpdate() function this.Messages() function this.IncrementInterrogateCount() function this.IncrementTakeHitCount() --RETAILPATCH 1070 tacticalTakedownType added function this.OnTacticalActionPoint(gameId,tacticalTakedownType) --RETAILPATCH 1070> function this.GetTacticalActionPoint(e) --RETAILPATCH 1070 reworked> function this.AddTacticalActionPoint(takedownInfo) local function SetSvar(isSneak,actionPoint) function this.CallCountAnnounce(langId,count,unk3Bool) this.PLAYER_CAUSE_TO_SAVE_INDEX= { ... } this.NPC_CAUSE_TO_SAVE_INDEX= { ... } this.NEUTRALIZE_PLAY_STYLE_ID={7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,26,27,28} --gameId,sourceId,neutralizeType,neutralizeCause) function this.GetPlayStyleSaveIndex(gameId,attackerId,neutralizeType,neutralizeCause) function this.OnNeutralize(gameId,attackerId,neutralizeType,neutralizeCause) function this.IncrementPlayDataNeutralizeCount(playStyleSaveIndex) function this.OnHeadShot(gameObjectId,attackId,attackerObjectId,flag) function this.IsCountUpHeadShot(headshotMessageFlag) function this.AddNewPlayStyleHistory() function this.ClearNewestPlayStyleHistory() function this.GetTotalHeadShotCount() function this.GetTotalNeutralizeCount() function this.IsTotalPlayStyleStealth() function this.GetNeutralizeCountBySaveIndex(a) function this.DecideNeutralizePlayStyle() ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppRevenge.lua` ```lua function this._Random(min,max) this.NO_REVENGE_MISSION_LIST= { ... } this.NO_STEALTH_COMBAT_REVENGE_MISSION_LIST={[30010]=true,[30020]=true,[30050]=true,[30150]=true} this.USE_SUPER_REINFORCE_VEHICLE_MISSION={[10036]=true,[11036]=true,[10093]=true}--10036 : Mission 3 - A Heroes Way ,10093 : Mission 35 - Cursed Legacy this.CANNOT_USE_ALL_WEAPON_MISSION= { ... } this.REVENGE_TYPE_NAME={"STEALTH","NIGHT_S","COMBAT","NIGHT_C","LONG_RANGE","VEHICLE","HEAD_SHOT","TRANQ","FULTON","SMOKE","M_STEALTH","M_COMBAT","DUMMY","DUMMY2","DUMMY3","DUMMY4","MAX"} this.REVENGE_TYPE=TppDefine.Enum(this.REVENGE_TYPE_NAME) this.REVENGE_LV_LIMIT_RANK_MAX=6 this.REVENGE_LV_MAX= { ... } this.REVENGE_POINT_OVER_MARGINE=100-1 this.REVENGE_POINT_PER_LV=100 this.REDUCE_REVENGE_POINT=10 this.REDUCE_TENDENCY_POINT_TABLE= { ... } this.REDUCE_POINT_TABLE= { ... } this.REVENGE_TRIGGER_TYPE= { ... } this.BLOCKED_TYPE={GAS_MASK=0,HELMET=1,CAMERA=2,DECOY=3,MINE=4,NVG=5,SHOTGUN=6,MG=7,SOFT_ARMOR=8,SHIELD=9,ARMOR=10,GUN_LIGHT=11,SNIPER=12,MISSILE=13,MAX=14} this.BLOCKED_FOR_MISSION_COUNT=3 this.DEPLOY_REVENGE_MISSION_BLOCKED_LIST= { ... } this.DEPLOY_REVENGE_MISSION_CONDITION_LIST= { ... } this.REVENGE_POINT_TABLE= { ... } this.MISSION_TENDENCY_POINT_TABLE= { ... } this.revengeDefine= { ... } function this.SelectRevengeType() --SINGLE CASE: revengeType ==mtbs_enemy._GetEquipTable > DecideRevenge > revenge_forceRevengeType function this.SetForceRevengeType(revengeType) function this.IsNoRevengeMission(missionCode) function this.IsNoStealthCombatRevengeMission(missionCode) function this.GetEquipGradeLimit() function this.IsUsingNoKillWeapon() function this.IsUsingStrongWeapon() function this.IsUsingStrongMissile() function this.IsUsingStrongSniper() function this.IsUsingSuperReinforce() function this.IsUsingBlackSuperReinforce() function this.GetReinforceCount() function this.CanUseArmor(soldierSubType) function this.GetMineRate() function this.GetDecoyRate() function this.IsUsingActiveDecoy() function this.GetCameraRate() function this.IsUsingGunCamera() --ORPHAN no references function this.GetPatrolRate() function this.IsIgnoreBlocked() function this.IsBlocked(category) function this.SetEnabledSuperReinforce(enabled) function this.SetHelmetAll() function this.RegisterMineList(baseList,mineList) function this.RegisterCommonMineList(mineList) function this.RegisterMissionMineList(mineList) function this.AddBaseMissionMineList(cpName,mineFields) function this._CopyRevengeMineArea(mineFieldDest,mineFieldSource,cpName,mineFieldIndex) function this.OnEnterRevengeMineTrap(trapNameStr32) function this.ClearLastRevengeMineBaseName() function this.UpdateLastVisitedMineArea(cpName,areaIndex,trapName) function this.SaveMissionStartMineArea() function this.SetUpRevengeMine() function this._SetUpRevengeMine() function this._GetDecoyType(cpName) function this._EnableDecoy(_cpName,locatorList,enable) function this._SetupCamera() function this.OnAllocate(missionTable) function this.SetUpMineAreaVarsName() function this.DecideRevenge(missionTable) function this.SetUpEnemy() function this.GetRevengeLvLimitRank() function this.GetRevengeLv(revengeType) function this.GetActualRevengeLv(revengeType)--tex ORIG: GetRevengeLv function this.GetRevengeLvMax(revengeType,limitMaxRank) function this.GetRevengePoint(revengeType) function this.AddRevengePoint(revengeType,points) function this.GetRevengeTriggerName(triggerType) function this.AddRevengePointByTriggerType(revengeTriggerType) function this.SetRevengePoint(revengeType,points) function this.ResetRevenge() function this.UpdateRevengeLv(missionId) function this._GetUiParameterValue(revengeType) function this._SetUiParameters() function this._SetMbInterrogate() function this._SetEnmityLv() function this.OnMissionClearOrAbort(missionId,isAbort)--tex added isAbort function this._ReduceBlockedCount(missionId) function this._GetBlockedName(blockedId) function this._ReceiveClearedDeployRevengeMission() function this._AddDeployRevengeMission() function this._ReduceRevengePointStealthCombat() function this._ReduceRevengePointOther() function this.ReduceRevengePointOnMissionClear(missionId) function this._ReduceRevengePointByChickenCap(missionId) function this.ReduceRevengePointOnAbort(missionId) function this._GetMissionTendency(missionId) --tex added isAbort function this.ApplyMissionTendency(missionId,isAbort) function this.CanUseReinforceVehicle() function this.CanUseReinforceHeli() this.LOCATION_REINFORCE_VEHICLE= { ... } this.NO_NOMINATE_REINFORCE_CP= { ... } function this.IsNoNominateCp(cpId) --this.NO_NOMINATE_REINFORCE_CP table check function this.DoesCpHaveReinforcePlan(cpId) --check if there exist any reinforce and travel plans function this.DecideReinforceTypeFromList(reinforceVehicleTypes) --rlc ^ function this.SelectReinforceType() function this.ApplyPowerSettingsForReinforce(soldierIds) --NMC: revengeTypes ==mvars.revenge_revengeType == (mvars.revenge_forceRevengeType(via mtbs_enemy) or this.SelectRevengeType()) function this._CreateRevengeConfig(revengeTypes) this.weaponRevengeStrengths= { ... } --revengeConfig: mvars.revenge_revengeConfig function this.GetWeaponStrengths(revengeConfig) --CALLER: OnAllocate > DecideRevenge --revengeConfig=mvars.revenge_revengeConfig --IN: mvars.ene_missionRequiresPowerSettings --OUT: mvars.revenge_loadedEquip function this._AllocateResources(revengeConfig) --function this._AllocateResourcesORIG(config) -- mvars.revenge_loadedEquip={} -- local missionRequiresSettings=mvars.ene_missionRequiresPowerSettings -- local loadWeaponIds={} function this.GetSoldierCountFromPercentPower(powerSetting,soldierCount) --< function this._GetSettingSoldierCount(power,powerSetting,soldierCount) --tex broken out from _ApplyRevengeToCp and reworked local function CreateCpConfig(revengeConfig,totalSoldierCount,powerComboExclusionList,powerElimOrChildSoldierTable,isOuterBaseCp,isLrrpCp,abilitiesList,unfulfilledPowers,addConfigFlags,cpConfig,cpId)--tex now function, added unfulfilledPowers --tex broken out from _ApplyRevengeToCp, for mb only --filters mvars.mbSoldier_enableSoldierLocatorList > soldiers on plant --GOTCHA: requires soldierNames to have plnt num --cpSoldierIds: mvars.ene_soldierIDList[cpId] local function SetEnableSoldierLocatorList(cpId,plant,cpSoldierIds) --tex NMC broken out from _ApplyRevengeToCp --TODO: soldierConfig ability to level lookup (*_SPECIAL == "sp" etc) local function GetPersonalAbilitySettings(soldierConfig) --CALLER: SetUpEnemy --revengeConfig: mvars.revenge_revengeConfig < _CreateRevengeConfig: singular revenge config for mission --IN: mvars: --ene_soldierIDList, function this._ApplyRevengeToCp(cpId,revengeConfig,plant) --ORIG --function this._ApplyRevengeToCp(cpId,revengeConfig,plantNum) -- local GetGameObjectId=GameObject.GetGameObjectId -- function this.Messages() function this.Init(missionTable) function this.OnReload(missionTable) function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this._OnReinforceRespawn(soldierId) function this._OnHeadShot(gameObjectId,attackId,attackerObjectId,flag) function this._OnDead(gameId,attackerId,phase,damageFlag) function this._OnUnconscious(gameId,attackerId,playerPhase) function this._OnAnnihilated(cpId,playerPhase,t) function this._OnChangePhase(cpId,phase) function this._OnComradeFultonDiscovered(n,n) function this._OnDamage(gameId,attackId,attackerID) function this._OnSmokeDiscovered(n) function this._OnAntiSniperNoticed(n) function this._OnSleepingComradeRecoverd(n) function this._OnEnterTrap(trapNameStr32) ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppReward.lua` ```lua this.TYPE=Tpp.Enum{"MIN","COMMON","CASSET_TAPE","KEY_ITEM","BLUE_PRINT","EMBLEM","ANIMAL","RANKING","MAX"} this.REWARD_FIRST_LANG= { ... } this.REWARD_MAX= { ... } this.LANG_ENUM= { ... } this.GVARS_NAME= { ... } this.RADIO_GROUP_NAME= { ... } function this.Push(rewardInfo) function this.PushBluePrintReward(e) function this.ShowAllReward() function this.IsStacked() function this.ShowReward(category) function this.ShowBonusPopup(category,rewardType,bonusId,o,d) function this.SetParameters(paramName,stackSize,rewardType,arg1,arg2) function this.GetParameters(paramName,stackSize) function this.GetParameterOffsets(stackSize) function this.ShowBonusPopupCategory(rewardType,a,bonusId) function this.GetBonusPopupCategory(bonusId) function this.ShowBonusPopupCategoryCommon(r,bonusId) ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppSave.lua` ```lua this.saveQueueDepth=0 this.saveQueueList={} local function SetRequestSaveResult(requestSuccess) this.SAVE_RESULT_FUNCTION= { ... } function this.GetSaveFileVersion(category) function this.IsExistConfigSaveFile() function this.IsExistPersonalSaveFile() function this.ForbidSave() function this.IsForbidSave()--RETAILPATCH 1070> function this.NeedWaitSavingErrorCheck() function this.IsSaving() function this.IsSavingWithFileName(fileName) function this.HasQueue(fileName) function this.GetSaveRequestFromQueue(fileName) function this.EraseAllGameDataSaveRequest() function this.IsEnqueuedSaveData() function this.RegistCompositSlotSize(size) function this.SetUpCompositSlot() --HOOKED: see InfHooks function this.SaveGameData(missionCode,needIcon,doSaveFunc,reserveNextMissionStartSave,isCheckPoint) function this.GetSaveGameDataQueue(missionCode,needIcon,doSaveFunc,isCheckPoint) --HOOKED: see InfHooks function this.SaveConfigData(needIcon,doSave,reserveNextMissionStart) function this.SaveMGOData() --HOOKED: see InfHooks function this.SavePersonalData(needIcon,doSave,reserveNextMissionStartSave) function this.CheckAndSavePersonalData(reserveNextMissionStartSave) function this.SaveAvatarData() function this.SaveOnlyMbManagement(doSaveFunc) function this.ReserveNoticeOfMbSaveResult() function this.SaveOnlyGlobalData() function this.SaveGzPrivilege() function this.SaveMBAndGlobal() function this.VarSaveMBAndGlobal() this.DO_RESERVE_SAVE_FUNCTION= { ... } function this.ReserveNextMissionStartSave(saveFileName,isCheckPoint) function this.DoReservedSaveOnMissionStart() function this._SaveGlobalData(saveInfo) function this._SaveMissionData(saveInfo) function this._SaveRetryData(saveInfo) function this.CanSaveMbMangementData(missionCode) function this._SaveMbManagementData(saveInfo,missionCode) function this._SaveQuestData(saveInfo) function this._SaveMissionRestartableData(saveInfo) function this.MakeNewGameSaveData(acquirePrivilegeInTitleScreen) function this.SaveImportedGameData() function this.GetIntializedCompositSlotSaveQueue(fileName,needIcon,doSaveFunc,isCheckPoint) function this.AddSlotToSaveQueue(saveInfo,slot,savingSlot,category) --NMC adds to queue to be processed via Update > ProcessSaveQueue > DoSave --slot==TppDefine.SAVE_SLOT.<> --savingSlot==TppDefine.SAVE_SLOT.<>_SAVE function this.EnqueueSave(saveInfoOrSlot,savingSlot,category,fileName,needIcon) function this.MakeNewSaveQueue(slot,savingSlot,category,fileName,needIcon,saveFunc) function this.DequeueSave(index) function this.ProcessSaveQueue() --HOOKED: see InfHooks --CALLERS: this.Save<>Data if doSave, --otherwise EnqueueSave > Update > ProcessSaveQueue function this.DoSave(saveParams,force) function this.Update() this.SaveErrorMessageIdTable={[TppScriptVars.RESULT_ERROR_INVALID_STORAGE]={TppDefine.ERROR_ID.CANNOT_FIND_STORAGE_IN_GAME,Popup.TYPE_ONE_BUTTON}} function this.GetSaveResultErrorMessage(result) function this.Init(missionTable) function this.OnReload(missionTable) function this.Messages() function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this.WaitingAllEnqueuedSaveOnStartMission() function this.CoroutineYieldWithShowSavingIcon() function this.SaveVarsToSlot(slot,group,category) function this.VarSaveOnlyGlobalData() --HOOKED: see InfHooks function this.VarSave(missionCode,isMissionStart) function this.VarSaveOnRetry() function this.VarSaveMbMangement(missionCode,forceSave) function this.VarSaveQuest(missionCode) function this.VarSaveConfig() function this.VarSaveMGO() function this.VarSavePersonalData() function this.LoadFromSaveFile(slot,fileName,area) function this.GetGameSaveFileName() function this.DEBUG_IsUsingTemporarySaveData() function this.LoadGameDataFromSaveFile(area) function this.CheckGameDataVersion() function this.CopyGameDataFromSavingSlot() function this.LoadMGODataFromSaveFile() function this.LoadConfigDataFromSaveFile(area) function this.LoadPersonalDataFromSaveFile(area) function this.CheckSlotVersion(category,slotId,useMissionStartSlot) function this.CheckSlotVersionConfigData() function this.IsReserveVarRestoreForContinue() function this.ReserveVarRestoreForContinue() function this.ReserveVarRestoreForMissionStart() --HOOKED: see InfHooks function this.VarRestoreOnMissionStart() --HOOKED: see InfHooks function this.VarRestoreOnContinueFromCheckPoint() function this.DeleteGameSaveFile() function this.DeleteTemporaryGameSaveFile() function this.DeleteConfigSaveFile() function this.DeletePersonalDataSaveFile() function this.DeleteMGOSaveFile() function this.IsNewGame() function this.IsGameDataLoadResultOK() this.SAVE_FILE_OK_RESULT_TABLE= { ... } function this.CheckGameSaveDataLoadResult() function this.GetGameDataLoadingResult() ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppSequence.lua` ```lua this.MISSION_PREPARE_STATE=Tpp.Enum{"START","WAIT_INITALIZE","WAIT_TEXTURE_LOADING","END_TEXTURE_LOADING","WAIT_SAVING_FILE","END_SAVING_FILE","FINISH"} local function GetSequenceTableForName(sequenceName) local function GetSequenceTableForIndex(sequenceIndex) function this.RegisterSequences(sequenceNames) --_sequence.lua sequences (local) function this.RegisterSequenceTable(sequences) --HOOKED: see InfHooks function this.SetNextSequence(sequenceName,params) function this.ReserveNextSequence(sequenceName,params) function this.GetCurrentSequenceIndex() function this.GetSequenceIndex(sequenceName) --NMC wut function this.GetSequenceNameWithIndex(sequenceId) function this.GetCurrentSequenceName() function this.GetMissionStartSequenceName() function this.GetMissionStartSequenceIndex() function this.GetContinueCount() function this.MakeSVarsTable(saveVarsList) this.SYS_SEQUENCE_LENGTH=#requiredSequences baseSequences.Seq_Mission_Prepare= { ... } function this.IsMissionPrepareFinished() function this.IsEndSaving() function this.SaveMissionStartSequence() function this.SetMissionGameStartSequence() function this.SetOnEndMissionPrepareFunction(func) function this.DoOnEndMissionPrepareFunction() function this.IsHelicopterStart() function this.IsFirstLandStart() function this.IsLandContinue() function this.CanHandleSignInUserChangedException() function this.IncrementContinueCount() function this.DeclareSVars() function this.DEBUG_Init() function this.Init(missionTable) function this.OnReload() function this.MakeSequenceMessageExecTable() --tex this is logged in InfDebug.OnChangeSVars function this.OnChangeSVars(name,key) function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this.Update() function this.DebugUpdate() ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppSound.lua` ```lua this.ResultRankJingle= { ... } this.afghCommonEsacapeBgm={bgm_escape={start="Play_bgm_afgh_mission_escape",finish="Stop_bgm_afgh_mission_escape"}} this.mafrCommonEsacapeBgm={bgm_escape={start="Play_bgm_mafr_mission_escape",finish="Stop_bgm_mafr_mission_escape"}} this.commonHeliStartBgm={bgm_heliStart={start="Play_bgm_mission_start",finish="Stop_bgm_mafr_mission_escape"}} function this.SetSceneBGM(bgmName) function this.SetSceneBGMSwitch(bgmSwitchName) function this.StopSceneBGM() function this.RestoreSceneBGM() function this.HaltSceneBGM() function this.SetPhaseBGM(phaseBgmTag) function this.ResetPhaseBGM() function this.RestorePhaseBGM() function this.PostEventForFultonRecover() function this.SetHelicopterStartSceneBGM() function this.StopHelicopterStartSceneBGM() function this.StartEscapeBGM() function this.StopEscapeBGM() function this.SkipDecendingLandingZoneJingle() function this.SkipDecendingLandingZoneWithOutCanMissionClearJingle() function this.Messages() function this.DeclareSVars() function this.OnAllocate(missionTable) function this.OnReload(missionTable) function this.Init() function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this.GetCurrentSceneBgmSetting() function this.SetMuteOnLoading() function this.PostJingleOnGameOver() function this.PostJingleOnEstablishMissionClear() function this.PostJingleOnCanMissionClear() function this.ClearOnDecendingLandingZoneJingleFlag() function this.PostJingleOnDecendingLandingZone() function this.PostJingleOnDecendingLandingZoneWithOutCanMissionClear() function this.StartJingleOnClearHeli() function this.SetStartHeliClearJingleName(e) function this.EndJingleOnClearHeli() function this.SetFinishHeliClearJingleName(jingleName) function this.PostEventOnForceGotMbHelicopter() function this.PostJingleOnMissionStartTelop() function this.SafeStopAndPostJingleOnShowResult() function this.PostJingleStartResultPresentation(rank) function this.PostJingleOnStartBlackTelephoneSequence() function this.PostJingleOnEndBlackTelephoneSequence() ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppStory.lua` ```lua this.storySequenceTable={} this.storySequenceTable_Master= { ... } this.radioDemoTable= { ... } this.eventPlayTimmingTable= { ... } this.PLAY_DEMO_END_MISSION= { ... } function this.GetCurrentStorySequence() function this.IncrementStorySequence() function this.PermitMissionOpen(missionCode) function this.MissionOpen(missionCode) function this.MissionClose(missionCode) function this.SetMissionOpenFlag(missionCode,open) function this.IsMissionOpen(missionCode) function this.IsMissionCleard(missionCode) function this.CheckAllMissionCleared() function this.CalcAllMissionClearedCount() --GOTCHA: This is called a bunch of times during startup but it seems completedCount returns 0 till some time into execution function this.CalcAllMissionTaskCompletedCount() function this.UpdateMissionCleardFlag(missionCode) function this.CloseEmergencyMission() function this.GetStorySequenceName(index) function this.GetStorySequenceTable(storySequence) function this.GetCurrentStorySequenceTable() function this.IsMainMission() function this.GetOpenMissionCount() function this.GetClearedMissionCount(missionList) function this.GetElapsedMissionEventName(enum) function this.StartElapsedMissionEvent(eventEnum,elapsedMissionCount) function this.GetElapsedMissionCount(eventEnum) function this.IsNowOccurringElapsedMission(enum) function this.SetDoneElapsedMission(enum) function this.SetMissionClearedS10030() function this.CanOccurRetakeThePlatform() function this.OpenRetakeThePlatform() function this.CheckAndOpenRetakeThePlatform() function this.IsAlwaysOpenRetakeThePlatform() function this.CloseRetakeThePlatform() function this.FailedRetakeThePlatform() function this.FailedRetakeThePlatformIfOpened() function this.CanOpenS10240() function this.CanOpenS10260() function this.CanOpenS10280() function this.CanPlayMgo(e) function this.OnReload(missionTable) function this.SetUpStorySequenceTable() function this.Init(missionTable) function this.UpdateStorySequence(params) function this.UpdateStorySequenceOnMissionClear(missionId) function this._UpdateS11050OpenFlag() function this._UpdateS10260OpenFlag() function this._UpdateStorySequence() function this.CheckNeedProceedStorySequence(storySequenceTable) local function AddMissionCleared(missionCodeName) function this.ProceedStorySequence() local function DoOpen(missionCodeName,defaultClose) function this.CompleteAllMissionCleared() function this.CompleteAllMissionSRankCleared() function this.CompleteAllNormalMissionCleared() function this.CompleteAllNormalMissionSRankCleared() function this.CompleteAllHardMissionCleared() function this.CompleteAllHardMissionSRankCleared() function this.IsCompletedMbMedicalSpecialPlatform(e,n,t) function this.IsOccuringBossQuiet() function this.CanArrivalQuietInMB(noHospitalCheck) function this.RequestLoseQuiet() function this.RequestReunionQuiet()--RETAILPATCH: 1060 function this.UpdateCounterReunionQuiet() function this.ResetCounterReunionQuiet() function this.CanPlayReunionQuietMission() function this.CanReunionQuiet() function this.CanArrivalLiquidInMB() function this.CanArrivalHueyInMB() function this.HueyHasKantokuGrass() function this.CanArrivalCodeTalkerInMB() function this.CanArrivalDDogInMB() function this.CanArrivalSahelanInMB() function this.CanArrivalChildrenInMB() function this.CanArrivalAIPodInMB() function this.GetBattleGearDevelopLevel() function this.CanPlayDemoOrRadio(n) function this.GetStoryRadioListFromIndex(n,t) function this.GetForceMBDemoNameOrRadioList(radioCategory,options) function this.GetCurrentFreeHeliRadioList() function this._GetRadioList(radioDemoInfo,options) function this.IsDoneEvent(radioDemoInfo,RENsomeBool,radioCategory,radioName) function this.UpdateDemoFlagQuietWishGoMission() function this.DEBUG_GetUnclearedMissionCode() function this.DEBUG_TestStorySequence() function TppMission.IsHelicopterSpace() function this.DEBUG_InitQuestFlagsForTest() function this.DEBUG_ClearQuestForTest(e) function this.DEBUG_SetNeedStoryTest(n) function this.DEBUG_SetStorySequence(testStorySequence,o) local function UnkFunc(missionCodeName,unk2,unk3,unk4,unk5Table) function this.DecreaseElapsedMissionClearCount() function this.EnableMissionNewOpenFlag(missionCode) function this.DisableMissionNewOpenFlag(missionCode) function this.SetMissionNewOpenFlag(missionCode,open) ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppTelop.lua` ```lua function this.GetRandomStartSide() function this.GetTelopPosition(mode,side,position) function this.GetFirstLangId(t,e) function this.GetLangIdTable(entry) function this.StartCastTelop(startSide) function this.StartMissionObjective() function this.PostMainCharacters(characters) function this.PostGuestCharacters(a) function this.PostEnemyCombatants(a) function this.PostSpecialMechanics(a) function this.PostLevelDesign(a) function this.PostWrittenBy(e) function this.PostCreativeProducers() function this.PostDirectedBy() function this.PostMissionObjective(locationCode,missionCode) function this.Init(missionTable) ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppTerminal.lua` ```lua this.GMP_POSTER=500 this.FOB_TUTORIAL_STATE={INIT=0,INTRODUCTION_CONSTRUCT_FOB=1,CONSTRUCT_FOB=2,INTRODUCTION_FOB_MISSIONS=3,FOB_MISSIONS=4,FINISH=127} this.unitLvAnnounceLogTable= { ... } this.keyItemAnnounceLogTable= { ... } this.keyItemRewardTable= { ... } this.parasiteSquadFultonResouceId= { ... } this.MOTHER_BASE_SECTION_LIST={"Combat","BaseDev","Spy","Medical","Security","Hospital","Prison","Separation"} this.setUpMenuList={} this.MBDVCMENU= { ... } this.BUDDY_MB_DVC_MENU= { ... } this.RESOURCE_INFORMATION_TABLE= { ... } this.BLUE_PRINT_LOCATOR_TABLE={col_develop_Revolver_Shotgun=MBMConst.DESIGN_2002,col_develop_Highprecision_SMG=MBMConst.DESIGN_2006,col_develop_HighprecisionAR=MBMConst.DESIGN_2007,col_develop_HighprecisionAR_s10033_0000=MBMConst.DESIGN_2007,col_develop_BullpupAR=MBMConst.DESIGN_2008,col_develop_LongtubeShotgun=MBMConst.DESIGN_2009,col_develop_RevolverGrenade0001=MBMConst.DESIGN_2011,col_develop_RevolverGrenade0002=MBMConst.DESIGN_2011,col_develop_RevolverGrenade0003=MBMConst.DESIGN_2011,col_develop_RevolverGrenade0004=MBMConst.DESIGN_2011,col_develop_Semiauto_SR=MBMConst.DESIGN_2013,col_develop_Semiauto_SR_s10070_0000=MBMConst.DESIGN_2013,col_develop_Antimaterial=MBMConst.DESIGN_2015,col_develop_EuropeSMG0001=MBMConst.DESIGN_2016,col_develop_EuropeSMG0002=MBMConst.DESIGN_2016,col_develop_EuropeSMG0003=MBMConst.DESIGN_2016,col_develop_EuropeSMG0004=MBMConst.DESIGN_2016,col_develop_Stungrenade=MBMConst.DESIGN_2019,col_develop_Stungun=MBMConst.DESIGN_2020,col_develop_Infraredsensor=MBMConst.DESIGN_2021,col_develop_Theftprotection=MBMConst.DESIGN_2022,col_develop_Emergencyrescue=MBMConst.DESIGN_3001,col_develop_FLamethrower=MBMConst.DESIGN_2026,col_develop_Shield=MBMConst.DESIGN_2025,col_develop_Shield0000=MBMConst.DESIGN_2025,col_develop_Shield0001=MBMConst.DESIGN_2025,col_develop_Shield0002=MBMConst.DESIGN_2025,col_develop_GunCamera=MBMConst.DESIGN_2023,col_develop_UAV=MBMConst.DESIGN_2024,col_develop_q60115=MBMConst.DESIGN_2027} this.BLUE_PRINT_LANG_ID={[MBMConst.DESIGN_2002]="key_bprint_2002",[MBMConst.DESIGN_2006]="key_bprint_2006",[MBMConst.DESIGN_2007]="key_bprint_2007",[MBMConst.DESIGN_2008]="key_bprint_2008",[MBMConst.DESIGN_2009]="key_bprint_2009",[MBMConst.DESIGN_2011]="key_bprint_2011",[MBMConst.DESIGN_2013]="key_bprint_2013",[MBMConst.DESIGN_2015]="key_bprint_2015",[MBMConst.DESIGN_2016]="key_bprint_2016",[MBMConst.DESIGN_2019]="key_bprint_2019",[MBMConst.DESIGN_2020]="key_bprint_2020",[MBMConst.DESIGN_2021]="key_bprint_2021",[MBMConst.DESIGN_2022]="key_bprint_2022",[MBMConst.DESIGN_2023]="key_bprint_2023",[MBMConst.DESIGN_2024]="key_bprint_2024",[MBMConst.DESIGN_2025]="key_bprint_2025",[MBMConst.DESIGN_2026]="key_bprint_2026",[MBMConst.DESIGN_2027]="key_bprint_2027",[MBMConst.DESIGN_3001]="key_item_3001"} this.EMBLEM_LOCATOR_TABLE={["ly003_cl00_collct0000|cl00pl0_uq_0000_collct|col_develop_MTBS_0000"]="front8",["ly003_cl00_collct0000|cl00pl0_uq_0000_collct|col_develop_MTBS_0001"]="front10",["ly003_cl00_collct0000|cl00pl0_uq_0000_collct|col_develop_MTBS_0002"]="front15",["ly003_cl00_collct0000|cl00pl0_uq_0000_collct|col_develop_MTBS_0003"]="front16",["ly003_cl04_collct0000|cl04pl0_uq_0040_collct|col_emblem_quiet"]="front9",col_develop_MTBS_30150_0000="front11",col_develop_MTBS_30250_0000="front7"} function this.UpdateGMP(info) function this.CorrectGMP(gmpInfo) function this.ClearStaffNewIcon(isHeliSpace,isFreeMission,nextIsHeliSpace,nextIsFreeMission) function this.AddStaffsFromTempBuffer(readOnly,RENoffline) function this.ReserveMissionStartMbSync() function this.StartSyncMbManagementOnMissionStart() function this.VarSaveMbMissionStartSyncEnd() function this.AcquireKeyItem(params) function this.ReserveHelicopterSoundOnMissionGameEnd() this.noAddVolunteerMissions= { ... } --CALLER: TppMission.OnMissionGameEndFadeOutFinish function this.AddVolunteerStaffs() function this.UnSetUsageRestriction(enable) function this.UnSetUsageRestrictionOnFOB(enable) function this.SetDevelpedByDevelopIdList(developedIdList) function this.IsNeedPlayPandemicTutorialRadio() function this.PandemicTutorialStoryCondition() function this.StartPandemicEvent() function this.IsNeedStartPandemicTutorial() function this.FinishPandemicTutorial() function this.IsPandemicTutorialFinished() function this.CheckPandemicEventFinish() function this.FinishPandemicEvent() function this.UpdatePandemicEventBingoCount() function this.GetPandemicBingoCount() function this.AcquirePrivilegeStaff() function this._AcquireGzPrivilegeStaff(uniqueStaffType) function this._AcquireDlcItemStaff(n,staffList) function this._AcquirePrivilegeStaff(uniqueStaffType,category) function this.AcquirePrivilegeInTitleScreen() function this.AcquireGzPrivilegeKeyItem() local function AddFunc(dlcType) function this.AcquireDlcItemKeyItem() local function AddDlcItem(dlcId,dlcType) local function RemoveDlcItem(dlcId,dlcType)--RETAILPATCH: 1060 function this.AcquireDlcItemEmblem() local function funcAdd(t,emblemName) local function funcRemove(t,emblemName)--RETAILPATCH: 1.0.4.1 function this.AcquireGzPrivilege(dlcType,FuncOnAquire) --param==emblemType or dlcType function this.AcquireDlcItem(databaseId,FuncOnAquire,param) --tex think this is what clears items when you load a save that has them unlocked, but i think it might be backed up by in-exe equivalent, would be a matter of hnting down the 'dlcflag' themselves function this.EraseDlcItem(databaseId,FuncOnRemove,param) function this.AddUniqueCharactor() function this.GetFobStatus() function this.OnNoticeFobSneaked(fobMode,n) function this.OnNoticeSupporterFobSneaked() function this.IsDisableNoticeFobSneaked() function this.ShowNoticeFobSneaked(announceLogType) function this.OnAllocate(missionTable) function this.Init(missionTable) function this.MakeMessage() function this.OnReload(missionTable) --CALLER: TppMain.OnMissionGameStart --GOTCHA: param isn't actuall passed in function this.OnMissionGameStart(e) function this.DeclareSVars() function this.Messages() function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this.OnFultonMessage(gameId,gimmickInstanceOrAnimalId,gimmickDataSet,stafforResourceId) function this.OnFultonInfoMessage(gameId,playerIndex,reduceThisContainer) function this.SetUp() function this.SetUpArmsMBDVCMenu() function this.SetUpCustomWeaponMBDVCMenu() function this.SetUpBuddyMBDVCMenu() --NMC a mess because the same message "Fulton" is sent for different game objects (and with different params) --CALLERS: msg Fulton (calls OnFulton*), msg CalcFultonPercent (calls specific FultonSucceedRatio func) function this.DoFuncByFultonTypeSwitch(gameId,gimmickInstanceOrAnimalId,gimmickDataSet,staffOrResourceId,recoveredByHeli,playerIndex,reduceThisContainer,OnFultonSoldier,OnFultonVolgin,OnFultonHostage,OnFultonVehicle,OnFultonContainer,OnFultonGimmickCommon,OnFultonBuddy,OnFultonEnemyWalkerGear,OnFultonAnimal,OnFultonBossQuiet,OnFultonParasiteSquad) function this.OnFulton(gameId,gimmickInstanceOrAnimalId,gimmickDataSet,staffOrResourceId,RENsomeBool,RENpossiblyNotHelicopter,playerIndex,reduceThisContainer) function this.IncrementFultonCount() function this.GetMissionHumanFultonCount() function this.IncrementRecoveredSoldierCount() function this.GetRecoveredSoldierCount() function this.IncrementRecoveredHostageCount() function this.GetRecoveredHostageCount() function this.GetFultonCountKeyItem() function this.IsEqualOrMoreTotalFultonCount(fultonCount)--RETAILPATCH 1070> function this.OnFultonSoldier(gameId,gimmickInstanceOrAnimalId,gimmickDataSet,staffId,recoveredByHeli,fultonedPlayer) function this.OnFultonVolgin(gameId) --gameId,gimmickInstanceOrAnimalId,gimmickDataSet,staffOrResourceId,recoveredByHeli,playerIndex) function this.OnFultonHostage(gameId,gimmickInstanceOrAnimalId,gimmickDataSet,staffId,recoveredByHeli,fultonedPlayer) function this.OnFultonVehicle(vehicleId,a,a,resourceId,a,playerIndex) function this.OnFultonContainer(gameId,locatorNameHash,dataSetNameHash,staffOrResourceId,M,playerIndex,reduceThisContainer) this.GIMMICK_RESOURCE_ID_TABLE= { ... } function this.OnFultonGimmickCommon(gameId,t,t,resource,t,playerIndex) function this.OnFultonBuddy(gameId,t,t,t,buddyType,t) function this.OnFultonEnemyWalkerGear(gameId,n,n,resourceId,n,n) function this.OnFultonAnimal(gameId,animalId) function this.GetRecoveredAfghGoatCount() function this.GetRecoveredMafrGoatCount() function this.GetRecoveredDonkeyCount() function this.GetRecoveredZebraCount() function this.GetRecoveredOkapiCount() function this.IsRecoveredCompleatedGoat() function this.IsRecoveredCompleatedHorse() function this.IsRecoveredCompleatedDog() function this.IsRecoveredCompleatedBear() function this.GetAnimalTypeCountFromRecoveredHistory(animalType) function this.AddAnimalRecoverHistory(animalType) function this.OnFultonBossQuiet(t,t,t,t) function this.OnFultonParasiteSquad(gameId,n,n,n) function this._OnFultonParasiteSquad(resourceIdList) function this.IsAnimalDog(dataBaseId) function this.IsAnimalHorse(dataBaseId) function this.IsAnimalBear(dataBaseId) function this.IsAnimalGoat(dataBaseId) function this.OnRecoverByHelicopter() function this.OnRecoverByHelicopterOnCheckPoint() function this.OnRecoverByHelicopterAlreadyGetPassengerList() function this.CheckAddTempBuffer(playerIndex) function this.AddTempStaffFulton(staffInfo) function this.AddTempResource(resourceId,count,playerIndex) function this.AddTempDataBase(dataBaseId) function this.AddTempDataBaseAnimal(dataBaseId,areaName) function this.AddPickedUpResourceToTempBuffer(resourceType,langId) function this.SetUpOnHelicopterSpace() function this.SetUpStoryBeforeCleardRescueMiller() function this.SetUpStoryBeforeCleardRescueMillerOnHelicopter() function this.SetUpStoryCleardRescueMiller() function this.SetUpStoryCleardToMotherBase() function this.IsOpenMBDvcArmsMenu() function this.SetUpStoryCleardHoneyBee() function this.SetUpStoryCleardPitchDark() function this.SetUpStoryAfterCleardPitchDark() function this.StopChangeDayTerminalAnnounce() function this.StartChangeDayTerminalAnnounce() function this.TerminalVoiceWeatherForecast(weatherType) function this.TerminalVoiceOnSunSet() function this.TerminalVoiceOnSunRise() function this.TerminalVoiceOnSupportFireIncoming() function this.SetBaseTelopName(baseName) function this.ClearBaseTelopName() function this.GetLocationAndBaseTelop() function this.ShowLocationAndBaseTelop() function this.ShowLocationAndBaseTelopForStartFreePlay() function this.ShowLocationAndBaseTelopForContinue() function this.OnEnterCpIntelTrap(cpName) function this.OnExitCpIntelTrap(cpName) function this.IsReleaseMedicalSection() this.SectionOpenCondition= { ... } function this.IsReleaseSection(t) function this.ReleaseMbSection() function this.OpenAllSection() function this.OnEstablishMissionClear() function this.AddUniqueVolunteerStaff(missionId) function this._AddUniqueVolunteerStaff(uniqueTypeId,category) function this.ForceStartBuildPlatform(category,clusterGrade) function this.OpenDeployMission(deployMissionIds) this.RewardLangIdTable= { ... } function this.PushRewardOnMbSectionOpen() function this.IsCleardRetakeThePlatform() function this.IsFailedRetakeThePlatform() function this.CanConstructFirstFob() function this.IsConstructedFirstFob() function this.IsReleaseFunctionBattle() function this.IsReleaseFunctionNuclearDevelop() this.SectionFuncOpenCondition= { ... } function this.ReleaseFunctionOfMbSection() function this.ReleaseFreePlay() function this.IsBuiltAnimalPlatform() function this.InitNuclearAbolitionCount() function this.RemoveStaffsAfterS10240() function this.PickUpBluePrint(reourceId,blueprintNumber) function this.InitializeBluePrintLocatorIdTable() function this.GetBluePrintKeyItemId(uniqueId) function this.PickUpEmblem(emblemId) function this.EnableTerminalVoice(enable) function this.PlayTerminalVoice(voiceName,unk2Bool,unk3Float) function this.OnFultonFailedEnd(gameId,unk1,unk2,fultonFailedType) function this._OnFultonFailedEnd(fultonFailedInfo1,fultonFailedInfo2,fultonFailedInfo3,fultonFailedInfo4,playerIndex) function this.HasVehicle() function this._SetUpDvcMenu(menu) function this.EnableDvcMenuByList(menus) function this.SetUpDvcMenuAll() function this.SetActiveTerminalMenu(menus) ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppTutorial.lua` ```lua this.TipsExceptTime= { ... } this.ControlExceptTime= { ... } this.TipsAllPhase= { ... } this.ControlAllPhase= { ... } this.TipsStoryFlag= { ... } this.ControlStoryFlag= { ... } this.IgnoredTipsGuideInMission= { ... } this.IgnoredControlGuideInMission={} this.NoGuideMission={[10030]=true,[10050]=true,[11050]=true,[11151]=true,[10140]=true,[11140]=true,[10150]=true,[10151]=true,[10240]=true,[50050]=true} this.NoIntelRadioMission={[10010]=true,[11151]=true,[10150]=true,[10151]=true,[10240]=true,[10280]=true,[50050]=true} function this._CheckLocation_AFGH_MAFR() function this._CheckLocation_MTBS() function this._IsEnabledToShowTipsFOB() function this._IsEnabledPlayTutorialRadioFOB() this.TipsLocation={[TppDefine.TIPS.SAND_STORM]=this._CheckLocation_AFGH_MAFR,[TppDefine.TIPS.FOG]=this._CheckLocation_AFGH_MAFR,[TppDefine.TIPS.RAIN]=this._CheckLocation_AFGH_MAFR,[TppDefine.TIPS.COMOF_NIGHT]=this._CheckLocation_AFGH_MAFR,[TppDefine.TIPS.DAY_NIGHT_SHIFT]=TppLocation.IsAfghan,[TppDefine.TIPS.MORALE]=this._CheckLocation_MTBS} this.TipsAvailableInHeli={LOG=true,SUPPORT_HELI=true,BUDDY_HORSE=true,BUDDY_DOG=true,BUDDY_COMMAND=true,BUDDY_QUIET=true,TACTICAL_BUDDY=true,FREE=true,ACTIVE_SONAR=true,BUDDY_WALKER=true} this.ControlGuideAvailableInHeli={MOVE_IN_HELI=true} this.WeatherTipsGuideMatchTable={[TppDefine.WEATHER.SANDSTORM]="SAND_STORM",[TppDefine.WEATHER.FOGGY]="FOG",[TppDefine.WEATHER.RAINY]="RAIN"} this.FultonTipsGuideMatchTable={[TppGameObject.GAME_OBJECT_TYPE_FULTONABLE_CONTAINER]="FULTON_CONTAINER",[TppGameObject.GAME_OBJECT_TYPE_MACHINEGUN]="FULTON_MACHINEGUN",[TppGameObject.GAME_OBJECT_TYPE_MORTAR]="FULTON_MORTAR",[TppGameObject.GAME_OBJECT_TYPE_GATLINGGUN]="FULTON_ANTI_AIRCRAFT",[TppGameObject.GAME_OBJECT_TYPE_VEHICLE]="FULTON_COMMON_VEHICLE"} this.AttackVehicleTable= { ... } this.DISPLAY_OPTION={TIPS=1,CONTROL=2,TIPS_CONTROL=3,PAUSE_CONTROL=4,TIPS_IGONORE_RADIO=5,CONTROL_IGONORE_RADIO=6,TIPS_IGONORE_DISPLAY=7} this.DISPLAY_TIME={DEFAULT=15,LONG=9,LONGER=11} this.TipsGuideRadioList={[TppDefine.TIPS.DAY_NIGHT_SHIFT]="f1000_rtrg0160",[TppDefine.TIPS.COMOF_NIGHT]="f1000_rtrg2980",[TppDefine.TIPS.RAIN]="f1000_rtrg0180",[TppDefine.TIPS.FOG]="f1000_rtrg0190",[TppDefine.TIPS.SAND_STORM]="f1000_rtrg0210",[TppDefine.TIPS.CRACK_CLIMB]="f1000_rtrg4470",[TppDefine.TIPS.PHANTOM_CIGAR_TOILET]="f1000_rtrg4480",[TppDefine.TIPS.PHANTOM_CIGAR_TRASH]="f1000_rtrg4480",[TppDefine.TIPS.BULLET_REFILL]="f1000_rtrg4490",[TppDefine.TIPS.DEV_DOCUMENT]="f1000_rtrg4080",[TppDefine.TIPS.TRASH]="f1000_rtrg4500",[TppDefine.TIPS.TOILET]="f1000_rtrg4510",[TppDefine.TIPS.DIAMOND]="f1000_rtrg0560",[TppDefine.TIPS.SAVE_ANIMAL]="f1000_rtrg0615",[TppDefine.TIPS.ELECTRICITY]="f1000_rtrg4530",[TppDefine.TIPS.FULTON_CONTAINER]="f1000_rtrg0570",[TppDefine.TIPS.MATERIAL]="f1000_rtrg0580",[TppDefine.TIPS.PLANT]="f1000_rtrg4090",[TppDefine.TIPS.BULLET_PENETRATE]="f1000_rtrg3640",[TppDefine.TIPS.BULLET_PENETRATE_FAIL]="f1000_rtrg3650",[TppDefine.TIPS.ANIMAL_CAGE]={"f1000_rtrg0615","f1000_rtrg0625"}} this.IntelRadioSetting={type_translate="f1000_esrg1110",type_antenna="f1000_esrg1110",type_eleGenerator="f1000_esrg2200",type_switchboard="f1000_esrg2200",type_searchradar="f1000_esrg1180",type_redSensor="f1000_esrg2140",type_burglar_alarm="f1000_esrg2450",type_gunMount="f1000_esrg1120",type_mortar="f1000_esrg0040",type_antiAirGun="f1000_esrg0990",type_searchlight="f1000_esrg0950",type_trash="f1000_esrg1070",type_drumcan="f1000_esrg1000",type_toilet="f1000_esrg2210",type_shower="f1000_esrg2460",type_camera="f1000_esrg2150",type_gun_camera="f1000_esrg2160",type_uav="f1000_esrg2170",type_light_vehicle="f1000_esrg1010",type_truck="f1000_esrg1020",type_armored_vehicle="f1000_esrg1030",type_tank="f1000_esrg1040",type_walkergear="f1000_esrg0070",type_walkergear_used="f1000_esrg0060",type_enemy_soviet="f1000_esrg0420",type_enemy_cfa="f1000_esrg0730",type_enemy_coyote="f1000_esrg0740",type_enemy_security="f1000_esrg0460",type_enemy_xof="f1000_esrg2410",type_garbillinae="f1000_esrg0150",type_hamiechinus="f1000_esrg0160",type_ochotona_rufescens="f1000_esrg0170",type_raven="f1000_esrg0080",type_hornbill="f1000_esrg0100",type_ciconia_nigra="f1000_esrg0110",type_jehuty="f1000_esrg0120",type_gyps_fulvus="f1000_esrg0130",type_torgos_tracheliotos="",type_polemaetus_bellicosus="f1000_esrg0140",type_goat="f1000_esrg0190",type_sheep="f1000_esrg0180",type_nubian="f1000_esrg0200",type_bore="f1000_esrg0210",type_donkey="f1000_esrg0220",type_zebra="f1000_esrg0230",type_okapi="f1000_esrg0240",type_wolf="f1000_esrg0250",type_lycaon="f1000_esrg0260",type_jackal="f1000_esrg0270",type_anubis="f1000_esrg0280",type_ursus_arctos="f1000_esrg0290",type_kashmiri_ursus_arctos="f1000_esrg0290"} this.IntelTypeTipsMatchTable={type_translate="COMMUNICATOR",type_antenna="COMMUNICATOR",type_searchradar="RADAR",type_eleGenerator="ELECTRICITY",type_switchboard="ELECTRICITY"} this.RadioTipsMatchTable={[StrCode32"f1000_esrg2190"]="COMMUNICATOR",[StrCode32"f1000_esrg2440"]="RADAR",[StrCode32"f1000_esrg2200"]="ELECTRICITY",[StrCode32"f1000_oprg1600"]="LOG",[StrCode32"f1000_oprg1320"]="HOLD_UP",[StrCode32"f1000_oprg1610"]="SUPPORT_HELI",[StrCode32"f1000_oprg1460"]="BUDDY_HORSE",[StrCode32"f2000_rtrg1410"]="BUDDY_DOG",[StrCode32"f1000_rtrg4570"]="BUDDY_COMMAND",[StrCode32"f1000_rtrg4590"]="BUDDY_QUIET",[StrCode32"f1000_rtrg4560"]="TACTICAL_BUDDY",[StrCode32"f2000_rtrg0010"]="FREE",[StrCode32"f1000_rtrg4550"]="ACTIVE_SONAR",[StrCode32"f1000_oprg1470"]="BUDDY_WALKER",[StrCode32(TppRadio.COMMON_RADIO_LIST[TppDefine.COMMON_RADIO.SUPPRESSOR_BROKEN])]="SUPPRESSOR"} this.ControlGuideRadioList={[TppDefine.CONTROL_GUIDE.PIPE_UP]="f1000_rtrg4630"} this.PlantRadioMatchTable={[TppCollection.TYPE_HERB_G_CRESCENT]="f1000_rtrg5010",[TppCollection.TYPE_HERB_A_PEACH]="f1000_rtrg5012",[TppCollection.TYPE_HERB_DIGITALIS_P]="f1000_rtrg5013",[TppCollection.TYPE_HERB_DIGITALIS_R]="f1000_rtrg5013",[TppCollection.TYPE_HERB_B_CARROT]="f1000_rtrg5016",[TppCollection.TYPE_HERB_WORM_WOOD]="f1000_rtrg5014",[TppCollection.TYPE_HERB_TARRAGON]="f1000_rtrg5015",[TppCollection.TYPE_HERB_HAOMA]="f1000_rtrg5011"} function this.Messages() function this.DispGuide_TrapCarryThrow() function this.DispGuide(tipName,displayOption,_) function this.DispTipsGuide(contentName,i,S,O,T,ignoreRadio,ignoreDisplay) function this.DispControlGuide(actionName,_,i,p,pauseControl,ignoreRadio) function this.IsRideHelicopter() function this.OnIconFultonShown(gameId,targetObjectId,isContainer,isNuclear) function this.OnVehicleDrive(n,vehicleId) function this.OnStartCarryIdle() function this.OnPickUpCollection(playerId,resourceId,resourceType,langId) --msg output PlayerHoldWeapon arg0: 687, arg1: 1, arg2: 1, arg3: 0, function this.OnPlayerHoldWeapon(equipId,equipType,hasGunLight,isSheild) function this.OnPlayerUseBoosterScope() function this.OnEquipItem(playerId,equpId) function this.OnEquipHudClosed(unk1,weaponId,equipType) function this.OnWeaponPutPlaced(n,T) function this.OnAmmoStackEmpty(n,n,T) function this.OnPlayerHeliGetOff() function this.OnSuppressorIsBroken() function this.StartInvestigate(n,T,n) function this.EndInvestigate(cpId,unk2,unk3) function this._IsMBFree() function this.DispGuide_PhatomCigar(T) function this.DispGuide_Weather(weatherType) function this.DispGuide_Comufrage() function this.DispGuide_DayAndNight() function this.InAnimalLocator() function this.OnDiscoveredBySniper() function this.OnDiscoveredObject(T,n) function this.OnPlayerIsWithinRange(T,n) function this.SetEnemyHeliMessageWithinRange() function this.OnIconSwitchShown(i,gimickGameId,locatorNameHash,dataSetNameHash) function this.OnIconClimbOnShown(n,T) function this.OnBulletGuardArmor(n,i,n,T) function this.OnMarking(instanceName,makerType,gameObjectId,identificationCode) function this.OnFultonRecovered(gameId) function this.OnRadioStart(T) function this._UnregisterIntelRadioAfterPlayed(E) function this.OpenTipsOnStory(E) function this.OpenTipsOnCurrentStory() function this.SetIgnoredControlGuideInMission(n,T,E) function this.SetIgnoredGuideInMission(T,n,E) function this.SetNoGuideMission(T,n) function this.SetIgnoredTipsGuideInMission(n,T,E) function this.PlayTutorialRadioOnly(T,n) function this.PlayRadio(e,n) function this.SetIntelRadio() function this.MakeMessageExecTable() function this.OnReload(missionTable) function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this.Init(missionTable) ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppUI.lua` ```lua this.FADE_SPEED={FADE_MOMENT=0,FADE_HIGHESTSPEED=.5,FADE_HIGHSPEED=1,FADE_NORMALSPEED=2,FADE_LOWSPEED=4,FADE_LOWESTSPEED=8} this.ANNOUNCE_LOG_TYPE= { ... } this.ANNOUNCE_LOG_PRIORITY={"eliminateTarget","recoveredFilmCase","recoverTarget","destroyTarget","achieveAllObjectives","achieveObjectiveCount","getIntel","updateMissionInfo","updateMissionInfo_AddDocument","updateMap"} this.BUDDY_LANG_ID={[BuddyType.HORSE]="name_buddy_dh",[BuddyType.DOG]="name_buddy_dd",[BuddyType.QUIET]="marker_chara_quiet"} this.EMBLEM_ANNOUNCE_LOG_TYPE={[StrCode32"front"]="find_em_front",[StrCode32"base"]="find_em_back",[StrCode32"word"]="find_em_string"} function this.Messages() local function ToStrCode32(value) --IN: pretty much the only parms I can see is exceptGameStatus --msgName fires messages with that name as fade progresses (and is not really msgName but sender) function this.FadeIn(fadeSpeed,msgName,scdDemoID,parms) function this.OverrideFadeInGameStatus(status) function this.UnsetOverrideFadeInGameStatus() function this.GetOverrideGameStatus() function this.SetFadeColorToBlack() function this.SetFadeColorToWhite() --msgName: events are fired with that name as fade progresses function this.FadeOut(fadeSpeed,msgName,unkP3,fadeoutInfo) function this.ShowAnnounceLog(announceId,param1,param2,delayTime,missionSubGoalNumber) function this.ShowColorAnnounceLog(announceId,param1,param2,delay) function this.ShowJoinAnnounceLog(announceId1,announceId2,param1,param2,delayTime) function this.ShowColorJoinAnnounceLog(announceId1,announceId2,param1,param2,delay) function this.ShowEmergencyAnnounceLog(isFobEmergency) function this.EnableMissionPhoto(photoId,addFirst,addSecond,isComplete,photoRadioName) function this.DisableMissionPhoto(photoId,resetMissionPhotoRadioGroupName) function this.EnableMissionSubGoal(subGoalId) --objectiveDefine.spySearch function this.EnableSpySearch(spySearch) function this.DisableSpySearch(spySearch) function this.StartMissionTelop(telopId,unkBool1,unkBool2) function this.GetMaxMissionTask(missionCode) --rlc --[[ taskInfo={ function this.EnableMissionTask(taskInfo,isComplete) function this.IsTaskLastCompleted(taskNo) function this.SetTaskLastCompleted(taskNo,completed) function this.GetLastCompletedFlagIndex(taskNo) function this._GetLastCompletedFlagIndex(missionCode,taskNo) function this.GetTaskCompletedNumber(missionCode) function this.IsAllTaskCompleted(missionCode) --RETAILPATCH 1090> function this.UpdateOnlineChallengeTask(taskInfo) --< function this.ShowControlGuide(parms) function this.ShowTipsGuide(parms) function this.IsEnableToShowGuide(ignoreRadio) --ORPHAN no references function this.OpenTips(tipsName) --ORPHAN: no reference function this.RegisterTips(e,n) function this.StartDisplayTimer(parms) function this.ShowSavingIcon(iconName) function this.ShowLoadingIcon() function this.ShowAccessIcon() function this.ShowAccessIconContinue() function this.HideAccessIcon() function this.ShowTextureLogo() function this.HideTextureLogo() function this.ShowCallSupportBuddyAnnounceLog() function this.SetSupportCallBuddyType(buddyType) function this.StartLoadingTips() function this.FinishLoadingTips() function this.StartLyricOkb(time) function this.StartLyricEnding(time) function this.StartLyricQuiet(time) function this.StartLyricCyprus(time) function this.OnAllocate(missionTable) function this.LoadAndWaitUiDefaultBlock() function this.OnMissionStart() function this.Init() function this.RegisterHeliSpacePauseMenuPage(addStore) function this.RegisterFobSneakPauseMenuPage() function this.RegisterFobSneakGameOverMenuItems() function this.OnReload() function this.OnMessage(sender,messageId,arg0,arg1,arg2,arg3,strLogText) function this.OnChangeSVars(name,key) function this.DisableGameStatusOnFade(exceptGameStatus) function this.DisableGameStatusOnFadeOutEnd() function this.EnableGameStatusOnFadeInStart() function this.EnableGameStatusOnFade() function this._RegisterDefaultLandPoint() ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/lib/TppVarInit.lua` ```lua --ORPHAN local IsTypeString=Tpp.IsTypeString --ORPHAN local IsTypeNumber=Tpp.IsTypeNumber --ORPHAN local bnot=bit.bnot --ORPHAN local band,bor,bxor=bit.band,bit.bor,bit.bxor function this.StartTitle(StartFunc) local function DoStart() function this.SetVarsTitleCypr() function this.SetVarsTitleHeliSpace() function this.InitializeOnStartTitle() function this.ClearAllVarsAndSlot()--RETAILPATCH: 1006 function this.InitializeOnStatingMainFrame() function this.InitializeOnNewGameAtFirstTime() function this.InitializeOnNewGame() initWeaponsTable={ function this.InitializeForNewMission(missionTable) --RETAILPATCH 1090> function this.InitializeOnlineChallengeTaskVarsForNewMission() function this.InitializeOnlineChallengeTaskLocalCompletedVars() --< function this.InitializeForContinue(missionTable) function this.ClearIsContinueFromTitle() function this.StartInitMission() function this.SetInitPlayerWeapons(initWeaponsTable) function this.SetInitPlayerItems(initPlayerItems) function this.DEBUG_GetDefaultPlayerWeaponAndItemTable() function this.InitializeAllPlatformForNewGame() function this.SetHorseObtainedAndCanSortie() ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/list/TppMissionList.lua` ```lua this.locationPackTable= { ... } this.missionPackTable={} --CALLER: engine during Mission.LoadMission, set via SetLocationPackagePathFunc -v- function this.GetLocationPackagePath(locationId) --CALLER: engine during Mission.LoadMission, set via SetMissionPackagePathFunc -v- function this.GetMissionPackagePath(missionCode) function this.IsStartHeliToMB() ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/script/list/TppQuestList.lua` ```lua this.questList= { ... } this.questPackList= { ... } --tex lookup table> function this.BuildQuestAreaTable(questAreaNameTable) this.questAreaNameTable={}--tex TABLESETUP ``` ### `ih_kap:tpp/data1_dat-lua/Assets/tpp/ui/Script/emblem_list.lua` ```lua --easiest to copy or merge from the fpkd version to the data1 copy emblem_list = { ``` ### `ih_kap:tpp/data1_dat-lua/Fox/Scripts/Classes/Entity.lua` ```lua Entity={ ``` ### `ih_kap:tpp/data1_dat-lua/Fox/Scripts/Classes/Pad.lua` ```lua Pad={ ``` ### `ih_kap:tpp/data1_dat-lua/Fox/Scripts/Classes/Scene.lua` ```lua Scene={ ``` ### `ih_kap:tpp/data1_dat-lua/Tpp/Scripts/Classes/TppPadOperatorUtility.lua` ```lua --UNUSED --tex lua_load doesnt log it, and it's refering to GZ/non tpp modules TppPadOperatorUtility={ ``` ### `ih_kap:tpp/data1_dat-lua/Tpp/Scripts/Equip/ChimeraPartsPackageTable.lua` ```lua this.chimeraPartsInfoTable= { ... } ``` ### `ih_kap:tpp/data1_dat-lua/Tpp/Scripts/RouteEvents/AiRtEvSoldier.lua` ```lua --UNUSED --tex is a left over editor script AiRtEvSoldier={ ``` ### `ih_kap:tpp/data1_dat-lua/Tpp/Scripts/System/start2nd.lua` ```lua local function YieldFrame() ``` ### `ih_kap:tpp/data1_dat-lua/Tpp/start.lua` ```lua --NMC: tex don't know why they wrapped it in a function, but it lets me log it easily (I want the timestamps so I can compare to ihhook_log) so I'm not complaining local function yield() InfCore.allLoaded=true--tex> ``` ### `ih_kap:tpp/fpkd-combined-lua/Assets/tpp/level/location/afgh/block_common/afgh_common_fx_mtr_def.lua` ```lua afgh_common_fx_mtr_def = { ``` ### `ih_kap:tpp/fpkd-combined-lua/Assets/tpp/level/location/afgh/block_common/afgh_common_fx_mtr_rain.lua` ```lua afgh_common_fx_mtr_rain = { ``` ### `ih_kap:tpp/fpkd-combined-lua/Assets/tpp/level/location/afgh/block_common/afgh_common_fx_mtr_underwater.lua` ```lua afgh_common_fx_mtr_underwater = { ``` ### `ih_kap:tpp/fpkd-combined-lua/Assets/tpp/level/location/afgh/block_common/afgh_luxury_block_list.lua` ```lua function this.RegistLuxuryBlock() ``` ### `ih_kap:tpp/fpkd-combined-lua/Assets/tpp/level/location/mafr/block_common/mafr_common_fx_mtr_def.lua` ```lua mafr_common_fx_mtr_def = { ``` ### `ih_kap:tpp/fpkd-combined-lua/Assets/tpp/level/location/mafr/block_common/mafr_common_fx_mtr_rain.lua` ```lua mafr_common_fx_mtr_rain = { ``` ### `ih_kap:tpp/fpkd-combined-lua/Assets/tpp/level/location/mafr/block_common/mafr_common_fx_mtr_underwater.lua` ```lua mafr_common_fx_mtr_underwater = { ``` ### `ih_kap:tpp/fpkd-combined-lua/Assets/tpp/level/location/mafr/block_common/mafr_luxury_block_list.lua` ```lua function this.RegistLuxuryBlock() ``` ### `ih_kap:tpp/fpkd-combined-lua/Assets/tpp/level/location/mtbs/block_common/mtbs_common_fx_mtr_def.lua` ```lua mtbs_common_fx_mtr_def = { ``` ### `ih_kap:tpp/fpkd-combined-lua/Assets/tpp/level/location/mtbs/block_common/mtbs_common_fx_mtr_rain.lua` ```lua mtbs_common_fx_mtr_rain = { ```