38 int m_TotalHairLevelsAdjusted;
46 g_Game.ConfigGetTextArray(
"cfgVehicles Head_Default simpleHiddenSelections", m_HairSelectionArray);
47 m_TotalHairLevelsAdjusted = m_HairSelectionArray.Count() - 1;
48 for (
int i = 0; i < m_HairSelectionArray.Count(); ++i)
50 m_HairHidingStateMap.Insert(i, 1);
65 protected void RegisterDiags()
67 RegisterDeveloperDiags();
68 RegisterModdedDiagsIDs();
69 RegisterModdedDiags();
77 private void RegisterDeveloperDiags()
199#ifdef DIAG_MISC_ACTION_ON_CURSOR
350 DiagMenu.
RegisterItem(
DiagMenuIDs.WEAPON_FORCEALLOW_OBSTRUCTION,
"",
"Force Allow Obstruction",
DiagMenuIDs.WEAPON_MENU,
"off,conditional,always,alwaysDynamic,neverStatic,alwaysDynamicNeverStatic,neverEver");
443 #ifdef TRIGGER_DEBUG_BASIC
540 protected int GetModdedDiagID()
542 return ++m_ModdedDiagID;
546 protected int GetModdedRootMenu()
552 protected void RegisterModdedDiagsIDs();
555 protected void RegisterModdedDiags()
571 case ERPCs.DIAG_ITEM_DEBUG_ACTIONS:
582 case ERPCs.DIAG_PLAYER_SYMPTOMS_DEBUG_ON:
583 case ERPCs.DIAG_PLAYER_SYMPTOMS_DEBUG_OFF:
584 case ERPCs.DIAG_PLAYER_SYMPTOMS_DEBUG:
586 if (player.GetSymptomManager())
588 player.GetSymptomManager().OnRPCDebug(rpc_type, ctx);
598 case ERPCs.DIAG_CRAFTING_INSTANT:
602 PluginRecipesManager pluginRecipesManager = PluginRecipesManager.Cast(
GetPlugin(PluginRecipesManager));
612 case ERPCs.DIAG_CHEATS_MODIFIERS:
620 case ERPCs.DIAG_CHEATS_KILL_PLAYER:
622 player.SetHealth(
"",
"", -1);
627 case ERPCs.DIAG_CHEATS_INVINCIBILITY:
637 parent.SetAllowDamage(
true);
638 parent.SetCanBeDestroyed(
true);
641 player.SetAllowDamage(
true);
642 player.SetCanBeDestroyed(
true);
649 parent.SetAllowDamage(
true);
650 parent.SetCanBeDestroyed(
false);
653 player.SetAllowDamage(
true);
654 player.SetCanBeDestroyed(
false);
661 parent.SetAllowDamage(
false);
664 player.SetAllowDamage(
false);
673 case ERPCs.DIAG_CHEATS_DISABLE_STAMINA:
681 case ERPCs.DIAG_CHEATS_RESET_PLAYER:
683 player.ResetPlayer(
false);
688 case ERPCs.DIAG_CHEATS_RESET_PLAYER_MAX:
690 player.ResetPlayer(
true);
695 case ERPCs.DIAG_CHEATS_INVENTORY_ACCESS:
703 case ERPCs.DIAG_CHEATS_ITEMS_FIX:
705 player.FixAllInventoryItems();
711 case ERPCs.DIAG_CHEATS_CREATE_HIT:
713 player.ProcessDirectDamage(
DamageType.CUSTOM, player,
"",
"Dummy_Heavy",
"0 0 0");
717 case ERPCs.DIAG_CHEATS_CREATE_HIT_LIGHT:
719 player.ProcessDirectDamage(
DamageType.CUSTOM, player,
"",
"MeleeFist",
"0 0 0");
726 case ERPCs.DIAG_SOFT_SKILLS_SHOW_DEBUG:
732 player.GetSoftSkillsManager().StartSynchTimer();
736 player.GetSoftSkillsManager().StopSynchTimer();
737 player.GetSoftSkillsManager().ResetDebugWindow();
744 case ERPCs.DIAG_SOFT_SKILLS_TOGGLE_STATE:
752 case ERPCs.DIAG_SOFT_SKILLS_TOGGLE_MODEL:
760 case ERPCs.DIAG_SOFT_SKILLS_SPECIALTY_VALUE:
775 case ERPCs.DIAG_LIFESPAN_BLOODY_HANDS:
781 player.SetBloodyHandsPenaltyChancePerAgent(
eAgents.SALMONELLA, 0.75);
784 player.ClearBloodyHandsPenaltyChancePerAgent(
eAgents.SALMONELLA);
790 case ERPCs.DIAG_LIFESPAN_PLAYTIME_UPDATE:
798 player.SetLastShavedSeconds(0);
802 pluginLifespann.UpdateLifespan(player,
true);
811 case ERPCs.DIAG_MISC_LOG_PLAYER_STATS:
823 case ERPCs.DIAG_MISC_ENVIRONMENT_DEBUG:
827 if (player.m_Environment)
833 #ifdef ENABLE_LOGGING
834 case ERPCs.DIAG_MISC_ENVIRONMENT_LOGGING_DRYWET:
838 if (player.m_Environment)
844 case ERPCs.DIAG_MISC_ENVIRONMENT_LOGGING_ITEMHEAT:
848 if (player.m_Environment)
858 case ERPCs.DIAG_MISC_FALLDAMAGE_DEBUG:
862 if (player.GetFallDamage())
869 case ERPCs.DIAG_MISC_GO_UNCONSCIOUS:
871 GoUnconscious(player);
876 case ERPCs.DIAG_MISC_GO_UNCONSCIOUS_DELAYED:
883 case ERPCs.DIAG_MISC_QUICK_RESTRAIN:
893 case ERPCs.DIAG_MISC_HAIR_LEVEL_HIDE:
898 player.UpdateHairSelectionVisibility(
true);
906 case ERPCs.DIAG_MISC_QUICK_FISHING:
914 case ERPCs.DIAG_MISC_TARGETABLE_BY_AI:
922 case ERPCs.DIAG_MISC_DEBUG_MONITOR:
932 case ERPCs.DIAG_SIMULATE_INFINITE_LOOP:
936 Print(
"simulating infinite loop");
942 case ERPCs.DIAG_SIMULATE_NULL_POINTER:
945 NULL_player.SetHealth(
"",
"", -1);
950 case ERPCs.DIAG_SIMULATE_DIVISION_BY_ZERO:
953 int division_by_zero = 1/zero;
958 case ERPCs.DIAG_SIMULATE_ERROR_FUNCTION:
968 case ERPCs.DIAG_WEAPON_PARTICLES:
976 case ERPCs.DIAG_WEAPON_RECOIL:
984 case ERPCs.DIAG_WEAPON_BURST_VERSION:
995 case ERPCs.DIAG_BLEEDING_DISABLE_BLOOD_LOSS:
1003 case ERPCs.DIAG_BLEEDING_ACTIVATE_SOURCE:
1011 case ERPCs.DIAG_BLEEDING_ACTIVATE_ALL_SOURCES:
1013 player.GetBleedingManagerServer().ActivateAllBS();
1021 case ERPCs.DIAG_LOGS_ACTIONS:
1029 case ERPCs.DIAG_LOGS_WEAPONS:
1037 case ERPCs.DIAG_LOGS_SYNC:
1045 case ERPCs.DIAG_LOGS_BASEBUILDING:
1053 case ERPCs.DIAG_LOGS_SYMPTOMS:
1061 case ERPCs.DIAG_LOGS_INVENTORY_MOVE:
1069 case ERPCs.DIAG_LOGS_INVENTORY_RESERVATION:
1077 case ERPCs.DIAG_LOGS_INVENTORY_HFSM:
1085 case ERPCs.DIAG_LOGS_QUICKBAR:
1093 case ERPCs.DIAG_LOGS_BLEEDING_CHANCES:
1103 case ERPCs.DIAG_BASEBUILDING_WOOD:
1111 case ERPCs.DIAG_BASEBUILDING_GATE:
1122 case ERPCs.DIAG_FINISHERS_FORCE_FINISHER:
1133 case ERPCs.DIAG_CAMERATOOLS_CAM_DATA:
1135 if (!player.m_CameraToolsMenuClient)
1137 player.m_CameraToolsMenuClient =
new CameraToolsMenuClient();
1140 player.m_CameraToolsMenuClient.OnRPC(ctx);
1148 case ERPCs.DIAG_TIMEACCEL:
1150 TimeAccelParam tap =
new TimeAccelParam(
false, 0, 0);
1154 FeatureTimeAccel.m_CurrentTimeAccel = tap;
1158 foreach (Man p : players)
1182 case ERPCs.DIAG_TIMEACCEL_CLIENT_SYNC:
1184 TimeAccelParam tap2 =
new TimeAccelParam(
false, 0, 0);
1188 int bigFactor = tap2.param2;
1189 float smallFactor = tap2.param2 - bigFactor;
1190 SetTimeAccelMenuState(tap2.param1, bigFactor, smallFactor, tap2.param3);
1191 FeatureTimeAccel.m_CurrentTimeAccel = tap2;
1199 case ERPCs.DIAG_VEHICLE_DEBUG_OUTPUT:
1206 case ERPCs.DIAG_VEHICLES_DUMP_CRASH_DATA_REQUEST:
1209 CrashDebugData.SendData(player);
1218 if (player.IsUnconscious())
1220 player.SetHealth(
"",
"Shock", 100);
1224 player.m_UnconsciousEndTime = -60;
1225 player.SetHealth(
"",
"Shock", 0);
1230 void InitTimeAccel()
1232 FeatureTimeAccel.m_CurrentTimeAccel = GetTimeAccelMenuState();
1236 if (
GetGame().CommandlineGetParam(
"timeAccel", value))
1241 value.
Split(
",", params);
1243 bool enable = params[0].ToInt();
1244 int timeAccelBig = params[1].ToInt();
1245 float timeAccelSmall = params[2].ToFloat();
1246 int bitMask = params[3].ToInt();
1248 SetTimeAccelMenuState(enable, timeAccelBig, timeAccelSmall, bitMask);
1252 TimeAccelParam GetTimeAccelMenuState()
1257 float timeAccel = timeAccelBig + timeAccelSmall;
1258 int bitMask = FeatureTimeAccel.GetTimeAccelBitmask();
1260 TimeAccelParam param =
new TimeAccelParam(enable, timeAccel, bitMask);
1264 void SetTimeAccelMenuState(
bool enable,
int bigFactor,
float smallFactor,
int bitmask)
1273 bool on = (bit & bitmask);