-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcod1reloaded.ini
More file actions
573 lines (529 loc) · 24.6 KB
/
Copy pathcod1reloaded.ini
File metadata and controls
573 lines (529 loc) · 24.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
; cod1reloaded configuration
; Place this file in the same folder as cod1reloaded.dll / mss32.dll.
[cod1reloaded]
; -------------------------------------------------------------
; Auto-updater
;
; At startup, fetch a JSON manifest from your server:
; { "version": "0.2.0",
; "download_url": "https://.../mss32.dll",
; "notes": "Popup text" }
;
; If the remote version is newer than the compiled one, download the new
; DLL as cod1reloaded.dll.new; applied at next launch (rename .new -> .dll
; in the next DllMain).
;
; Leave manifest_url empty to fully disable the network check.
; -------------------------------------------------------------
updater_enable = true
updater_manifest_url = https://github.com/cod1plus/client/releases/latest/download/manifest.json
updater_auto_download = true
updater_show_dialog = true
; -------------------------------------------------------------
; Discord Rich Presence
;
; Affiche ton activite dans Discord : logo cod1plus, "En partie" /
; "Dans les menus", et le temps ecoule. Aucune lecture sensible du jeu,
; aucun risque anti-cheat (on parle juste au client Discord local).
;
; ACTIVATION (une seule app Discord pour toute la communaute) :
; 1. https://discord.com/developers/applications -> New Application
; (le nom de l'app = ce qui s'affiche : "Call of Duty" ou "cod1plus")
; 2. copier l'APPLICATION ID -> discord_rpc_client_id ci-dessous
; 3. onglet "Rich Presence" > "Art Assets" : uploader un logo ;
; son nom de cle = discord_rpc_large_image (ex: "logo")
;
; Tant que discord_rpc_client_id est vide, la fonctionnalite reste inactive.
; -------------------------------------------------------------
discord_rpc_enable = true
discord_rpc_client_id =
discord_rpc_large_image = logo
discord_rpc_large_text = cod1reloaded
discord_rpc_details_menu = Dans les menus
discord_rpc_details_match = En partie
discord_rpc_state =
discord_rpc_show_elapsed = true
; -------------------------------------------------------------
; Auto-upload of demos (.dm_1)
;
; Watches <CoD1>/main/demos/ for .dm_1 files and uploads them via HTTP
; POST to the configured URL. Notifications shown via Windows toast.
;
; You (the player) must still type `/record <name>` manually. Phase 2
; will add an auto-record mode forced by the server.
;
; On the server side you need an endpoint that accepts POST with the
; file as the body (Content-Type: application/octet-stream) and returns 2xx.
; -------------------------------------------------------------
demo_upload_enable = false
demo_upload_url =
demo_upload_show_toasts = true
demo_upload_delete_after = false
demo_upload_poll_sec = 10
; -------------------------------------------------------------
; Version string ("shortversion" dvar in CoDMP.exe)
;
; Replaces the "1.5" shown in the main menu corner with the text of
; your choice. Max 63 characters. The dvar stays CVAR_ROM on the engine
; side - players cannot change it at runtime.
;
; Leave empty or comment out to keep the default.
; -------------------------------------------------------------
short_version = 1.5 reloaded
; -------------------------------------------------------------
; Smoothness - anti-microstutter tuning
;
; CoD1 is single-threaded. Windows constantly migrates the busy thread
; between CPU cores to balance load - this trashes the CPU cache and
; causes microstutters. The settings below pin the game to specific
; cores, raise its priority, and prevent Windows from paging memory
; out or downclocking the process.
; -------------------------------------------------------------
; CPU affinity : how many cores the game may use.
; 0 = OS default (all cores)
; 2 = great default (single-threaded engine + audio thread)
; 4 = safer if mods spawn extra threads
smoothness_cpu_cores = 2
; First core index. Keep at 0 on Intel hybrid CPUs (Alder Lake+) to
; land on a fast P-core instead of a slow E-core.
smoothness_cpu_first_core = 0
; Process priority class: normal | above_normal | high | realtime | default
; "high" = recommended (less interference from Discord/Chrome/etc.)
; "realtime" can lock the system if it deadlocks - avoid unless tuning.
smoothness_process_priority = high
; Main thread priority: normal | above_normal | highest | time_critical | default
; "highest" = recommended (tighter input latency).
smoothness_main_thread_priority = highest
; Disable Windows EcoQoS / power throttling for the process.
; Prevents silent downclocking on laptops & Win10/11.
smoothness_disable_power_throttling = true
; Lock the working set so Windows doesn't page CoD1 to disk.
; Prevents alt-tab swap-in stutter.
smoothness_lock_working_set = true
smoothness_working_set_min_mb = 128
smoothness_working_set_max_mb = 512
; Disable Windows 10/11 "Fullscreen Optimization" for CoDMP.exe via
; registry tweak. Applies on the NEXT launch.
smoothness_disable_fso = true
; -------------------------------------------------------------
; FPS cap fix - 1ms Windows timer resolution
;
; Without this, Windows uses a ~15.625ms timer by default. The engine
; tries to sleep 4ms for 250 FPS but actually sleeps 15ms -> erratic
; effective FPS (230-244 instead of 250).
;
; timeBeginPeriod(1) forces the resolution to 1ms for the whole process.
; Battery impact: negligible on a desktop, slight on a laptop.
; -------------------------------------------------------------
force_1ms_timer = true
; -------------------------------------------------------------
; Precise frame limiter (microsecond grade)
;
; Replaces the engine's ms-integer spin-loop (imprecise) with a
; QueryPerformanceCounter-based wait. With com_maxfps=250 the actual
; FPS will be exactly 250 (vs 240-248 without this patch).
;
; PunkBuster-safe: we don't touch the com_maxfps dvar, only the engine's
; internal timing logic.
;
; deadline_bias_us: if the measurement falls slightly under 250 (rare),
; set a negative bias (e.g. -200) to target ~250.05 effective.
; -------------------------------------------------------------
frame_limiter_enable = true
frame_limiter_bias_us = 0
; -------------------------------------------------------------
; Force r_fullscreen default to "0" (windowed mode)
;
; Combined with window_borderless below, this gives a "fake fullscreen"
; mode that allows instant alt-tab without the black-screen freeze.
;
; WARNING: if you already have `seta r_fullscreen "1"` in your
; config_mp.cfg, your saved value wins. To benefit from the fix, type
; `/set r_fullscreen 0` once in the console, or remove that line from
; the .cfg.
; -------------------------------------------------------------
force_windowed_default = true
; -------------------------------------------------------------
; Borderless multi-monitor window
;
; When enabled, turns the main window into a borderless fullscreen window
; on the chosen monitor. Bonus: instant alt-tab, no video mode switch.
; -------------------------------------------------------------
window_borderless = true
; If true, the window stays on the monitor where it was created.
; Otherwise, uses window_monitor_index below.
window_follow_current_monitor = true
; Monitor index (0, 1, 2...) when follow_current_monitor = false.
; -1 = Windows primary monitor.
window_monitor_index = -1
; Automatically minimize the window when it loses focus.
; Required in borderless fullscreen: otherwise the window covers
; everything and you cannot click on other applications.
; Set to false only if you want the game to stay visible behind.
window_minimize_on_focus_loss = true
; -------------------------------------------------------------
; Widescreen / resolution helper
;
; CoD1 is hardcoded for 4:3. On widescreen displays:
; - the menu only exposes preset resolutions up to 1600x1200
; - the engine renders in "Vert-" mode: vertical FOV is kept and the
; horizontal is just STRETCHED. On 16:9 the weapon looks squashed and
; you see no more world than a 4:3 player at the same cg_fov.
;
; This module fixes both:
; 1) Generates a cod1reloaded_autoexec.cfg in main/ with the dvars to
; force a custom resolution (1440p, 4K, 21:9, ...). You must add
; `exec cod1reloaded_autoexec.cfg` to your config_mp.cfg ONCE.
; 2) Hor+ FOV math: cg_fov stays the value YOU set but the actual
; rendered horizontal FOV expands proportionally to your aspect ratio.
; e.g. cg_fov 80 + 16:9 -> effective hfov 106, same vfov as 4:3 80.
; (engine-side hook pending RE; currently logs the math)
; -------------------------------------------------------------
; Hor+ FOV correction. true = expand horizontal FOV on widescreen so you
; see MORE of the world horizontally (recommended).
widescreen_horplus_fov = true
; Hook the SECOND reader of the engine's effective-FOV getter, which is
; CG_DrawSkyBoxPortal (RE confirmed: the function parses skybox
; configstring then calls the effective-FOV helper to compute the sky's
; own fov_y with the same math as the main scene). Leaving this OFF
; while Hor+ is on causes the skybox to render at vanilla FOV while the
; world uses Hor+ -> visible mismatch at the horizon. Keep ON.
widescreen_horplus_hook_caller2 = true
; Aspect ratio mode used by the Hor+ correction. One of:
; auto = detect monitor via Windows (recommended)
; 4:3 = no widescreen correction (vanilla)
; 16:9 = 1.778
; 16:10 = 1.600
; 21:9 = 2.370 (ultrawide)
; custom = use widescreen_custom_ratio below
widescreen_aspect_mode = auto
widescreen_custom_ratio = 1.778
; Force a specific resolution at startup. When true, an autoexec.cfg is
; generated with seta r_mode -1 + r_customwidth/r_customheight. Add
; `exec cod1reloaded_autoexec.cfg` at the end of your config_mp.cfg to
; apply it.
widescreen_force_resolution = false
widescreen_width = 1920
widescreen_height = 1080
; Display refresh rate in Hz. 0 = engine auto-detect. Set to your
; monitor's actual rate (144, 240, ...) if the engine picks a lower one.
widescreen_refresh_hz = 0
; -------------------------------------------------------------
; Avatar overlay (POC for ready-up phase player avatars) - PHASE 2
;
; When enabled, on first map load the DLL :
; 1) downloads the configured PNG URL
; 2) decodes it via GDI+
; 3) saves as TGA in main/textures/cod1reloaded/avatar_test.tga
; 4) registers it as a CoD1 shader via the engine's R_RegisterShader
; 5) draws it every frame via RE_DrawStretchPic INSIDE the renderer
; (native draw, correct z-order, scales with resolution)
;
; This is the foundation for the future ready-up UI : profile photos of
; each player displayed at the top of the screen, grouped by team.
;
; Coordinates (x, y, width, height) are in the engine's virtual 640x480
; HUD space - the renderer auto-scales them to your actual resolution.
; x = 0 : left edge of screen
; x = 640 : right edge
; y = 0 : top
; y = 480 : bottom
; -------------------------------------------------------------
avatar_overlay_enable = false
avatar_overlay_test_url = https://fpschallenge.b-cdn.net/public/avatar/Y8o0Wl0I6qDzNQcLvzgvkl8LSFrkRyTQ0AT1iRPc.png
avatar_overlay_x = 50
avatar_overlay_y = 50
avatar_overlay_width = 64
avatar_overlay_height = 64
; -------------------------------------------------------------
; Viewheight lerp speed (gamex86.dll)
; 180 = vanilla CoD1 (~111ms), 100 = synced to anim (~200ms),
; 140 = sweet spot
; -------------------------------------------------------------
viewheight_lerp_speed = 140.0
; =============================================================
; LEAN FIX (cgame_mp_x86.dll)
; =============================================================
;
; PROBLEM (competitive players' reports + log analysis 2026-05-26) :
; When you lean LEFT and walk forward, the body rolls into an
; exaggerated S-shape, the head clips out of view, and visually
; the player looks "broken" compared to lean RIGHT.
;
; ROOT CAUSE (confirmed by diagnostic logs of engine bone output) :
; - Stationary lean : bones barely deform (yaw ~+/-0.4 deg, roll = 0)
; - LEAN + MOVEMENT : engine writes HUGE roll values
; (back_low roll = -21.68, back_up roll = +26.02) creating the
; S-shape that throws the head out of position.
;
; FIX STRATEGY :
; The roll on the 3 back bones is the real culprit. We dampen it
; to ~40% (default below). Yaw and pitch are mostly fine on their
; own; the LEFT-specific pitch overrides further down nudge the
; forward tilt down slightly to keep the head visible in extreme
; peeks.
;
; Each scale multiplies the engine output for that bone+axis :
; 1.0 = vanilla (no change)
; 0.5 = halved
; 0.0 = fully cancelled
; 1.5 = amplified
;
; All values accept 0.01 precision.
; =============================================================
lean_fix_enable = true
lean_fix_apply_in_stand = true
; -------------------------------------------------------------
; PITCH (axis 0) - forward/backward tilt
; -------------------------------------------------------------
; KEEP AT 1.0 (vanilla). The engine writes small positive pitches
; (~0.4-1.0 deg) on back bones during walking - that's the natural
; "runner forward lean" baked in cod1's walk animation.
;
; History (do not repeat) :
; - Set to 0 to kill "le corps pique en avant" bug - but that was
; because we were ALSO adding +7.2 deg aimwalk pitch on top. Result
; of pitch_scale=0 + aimwalk_pitch=0 is "body tire vers l'arriere"
; because we kill cod1's natural forward lean too.
; - The right fix : keep engine pitch (scale=1.0), don't add extra
; pitch (lean_aimwalk_stand_pitch=0 below). Net result = vanilla
; walking pitch unchanged.
lean_neck_pitch_scale = 1.0
lean_head_pitch_scale = 1.0
lean_back_up_pitch_scale = 1.0
lean_back_mid_pitch_scale = 1.0
lean_back_low_pitch_scale = 1.0
lean_pelvis_pitch_scale = 1.0
; -------------------------------------------------------------
; YAW (axis 1) - lateral body twist
; -------------------------------------------------------------
; KEEP AT 1.0. The engine yaw is the legs-vs-torso compensation that
; keeps the upper body aimed at your view while the legs follow the
; movement direction. Dampening this breaks strafe+lean. Touch only
; if the body looks unnaturally rigid (rare).
lean_neck_yaw_scale = 1.0
lean_head_yaw_scale = 1.0
lean_back_up_yaw_scale = 1.0
lean_back_mid_yaw_scale = 1.0
lean_back_low_yaw_scale = 1.0
lean_pelvis_yaw_scale = 1.0
; -------------------------------------------------------------
; ROLL (axis 2) - S-curve lateral flex *** MAIN FIX ***
; -------------------------------------------------------------
; This is the bug. Engine writes back_low = -21.68, back_up = +26.02
; in lean+forward = exaggerated S, head displaced.
;
; Defaults at 0.4 (60% damping) : visually the back stays mostly
; straight, head stays in axis. Tune:
; 0.3 = even tighter
; 0.5 = moderate
; 0.7 = subtle damping
; 1.0 = vanilla (bug visible)
; 0.0 = back fully rigid (looks unnatural)
lean_neck_roll_scale = 1.0
lean_head_roll_scale = 1.0
lean_back_up_roll_scale = 0.4
lean_back_mid_roll_scale = 0.4
lean_back_low_roll_scale = 0.4
lean_pelvis_roll_scale = 1.0
; -------------------------------------------------------------
; LEFT-lean PITCH overrides
; -------------------------------------------------------------
; Convention :
; -1 = use the base value above (no override)
; 0..1 = override on LEFT lean only
;
; All at -1 = use base scale (no override). Same reasoning as base
; pitch scales above : we WANT the engine's natural walk-anim pitch
; through. Override only if a specific LEFT-lean bug emerges.
lean_left_neck_pitch_scale = -1
lean_left_head_pitch_scale = -1
lean_left_back_up_pitch_scale = -1
lean_left_back_mid_pitch_scale = -1
lean_left_back_low_pitch_scale = -1
lean_left_pelvis_pitch_scale = -1
; -------------------------------------------------------------
; LEFT-lean YAW + ROLL overrides
; -------------------------------------------------------------
; All at -1 = use base values above. The detection of left vs right
; via bone yaw sign turned out unreliable across engine states
; (stationary vs movement+lean), so we rely on the base scales which
; apply to both directions. Touch only if you have a specific bug.
lean_left_neck_yaw_scale = -1
lean_left_head_yaw_scale = -1
lean_left_back_up_yaw_scale = -1
lean_left_back_mid_yaw_scale = -1
lean_left_back_low_yaw_scale = -1
lean_left_pelvis_yaw_scale = -1
lean_left_neck_roll_scale = -1
lean_left_head_roll_scale = -1
lean_left_back_up_roll_scale = -1
lean_left_back_mid_roll_scale= -1
lean_left_back_low_roll_scale= -1
lean_left_pelvis_roll_scale = -1
; -------------------------------------------------------------
; YAW OFFSETS (additive degrees, scaled by lean strength)
; -------------------------------------------------------------
; All at 0 = no additive yaw. The earlier attempts to "shift the head
; further left during left lean" with offsets didn't help because :
; - Stationary lean : engine yaw is ~0, offset would dominate
; - Movement + lean : engine yaw is already huge (+17), offsets
; compound to extreme angles (>40 deg total cascade)
;
; Kept here for future experiments if needed. Set negative to shift
; the bone yaw toward player-left (engine convention : positive yaw
; = bone rotates toward right side of body).
lean_left_neck_yaw_offset = 0.0
lean_left_head_yaw_offset = 0.0
lean_left_back_up_yaw_offset = 0.0
lean_left_back_mid_yaw_offset = 0.0
lean_left_back_low_yaw_offset = 0.0
lean_left_pelvis_yaw_offset = 0.0
lean_right_neck_yaw_offset = 0.0
lean_right_head_yaw_offset = 0.0
lean_right_back_up_yaw_offset = 0.0
lean_right_back_mid_yaw_offset= 0.0
lean_right_back_low_yaw_offset= 0.0
lean_right_pelvis_yaw_offset = 0.0
; -------------------------------------------------------------
; AIMWALK FIX (port cod2x animation.cpp:332-348)
;
; When the player is in LEFT lean + walking forward/backward, the vanilla
; engine produces an asymmetric body shift compared to right lean. CoD2x
; fix : tilt the ROOT bone (tag_origin_angles) by 7.2 deg stand / 3.8 deg
; crouch so the body model visibly shifts in the lean direction. This is
; the "aimwalk" behavior competitive players expect.
;
; SMOOTH SCALING : all values below are scaled by aimwalk_scale =
; clamp((lean_norm - 0.2) / 0.8, 0, 1). aimwalk_scale = 0 at stationary
; lean (no effect), ramps to 1.0 when player is fully walking + leaning.
; This eliminates the "body snaps backward" sensation that came from
; slamming the offset in at full strength on the first frame of lean.
;
; Defaults are EXACT cod2x values from animation.cpp:337-345.
;
; Tune :
; stand_pitch = 7.2 -> cod2x default, body tilts FORWARD into the run
; stand_pitch = 0 -> no pitch tilt (body stays vertical)
; stand_pitch = -5 -> body tilts BACKWARD (unusual)
; stand_roll = 7.2 -> cod2x default, body tilts LEFT
; stand_roll = 0 -> no lateral tilt
; stand_lift = 0 -> cod2x default (no lift)
; stand_lift = 5 -> raise body (in case it sinks into ground)
;
; YAW SCALE = 1.0 means no dampening of the engine's natural legs-vs-view
; yaw. Cod2x does NOT touch this. Lower it only if "body rotates right"
; is unbearable (but then weapon/head will not track view as well).
; -------------------------------------------------------------
; V2 (2026-05-27) : port FIDELE cod2x avec le gate strict qu'on avait
; oublie en V1 :
; - Cod2x ne declenche QUE quand player marche FW/BW AVEC une direction
; de mouvement diagonale-gauche (movementYawAngle entre 0 et 90).
; - V1 nous declenchait des que left_lean detecte = aussi en stationnaire
; ET en pure forward + lean -> body se prenait du +7.2 pitch tout le temps
; = "pique en avant" / "tire en arriere" perceived.
; - V2 gate sur tag_origin_angles[1] entre 5-90 deg (proxy de cod2x's
; movementYawAngle condition). Ne firera que dans le bon scenario.
lean_aimwalk_fix_enable = true
; pitch = 0 par defaut : cod2x est +7.2 mais cod1 walk anim a deja un
; forward-lean baked donc +7.2 empile et le corps "pique en avant".
; 0 = pas de pitch additionnel, body reste vertical (juste l'inclinaison
; naturelle de l'anim de marche).
; 3-5 = leger forward style cod2x (dynamique "lean into the run").
; v4 (2026-05-27) : reduit de 7.2 a 1.5 / 1.0. Le moteur CoD1 ecrit deja
; 38+ deg de yaw sur tag_origin pendant walk+lean diagonal, +7.2 pitch
; par dessus = corps completement penche. Cod2x utilise 7.2 mais leur
; engine ne tilte pas autant la racine. Pour CoD1 il faut subtil.
lean_aimwalk_stand_pitch = 1.5
lean_aimwalk_stand_yaw_scale = 1.0
lean_aimwalk_stand_roll = 1.0
lean_aimwalk_stand_lift = 0.0
lean_aimwalk_crouch_pitch = 3.8
lean_aimwalk_crouch_yaw_scale = 1.0
lean_aimwalk_crouch_roll = 3.8
lean_aimwalk_crouch_lift = 0.0
; Smoothing rate (par seconde) pour les transitions in/out du aimwalk.
; L'engine cod1 snap son yaw root de 0 a 50+ deg en 1 frame quand l'anim
; de marche kicke. Sans smoothing notre aimwalk fait pareil = jerky.
; Avec ce decay exponentiel, le scale ramp doucement vers la target.
; 0.0 : disable smoothing (snap, comportement v1)
; 5.0 : ~500ms ramp (cinematique)
; 8.0 : ~300ms ramp (DEFAULT, smooth mais responsive)
; 15.0 : ~150ms ramp (snappy)
lean_aimwalk_smooth_rate = 3.0
; -------------------------------------------------------------
; BODY SIDEWAYS SHIFT (port cod2x animation.cpp:184-200)
;
; Decale physiquement le model 3D dans la direction du lean pour
; exposer la tete a un enemy en lean derriere un mur (wallpeek fix).
;
; lean_body_shift_left_stand = combien d'units le model bouge sur l'axe Y
; quand le joueur stand + lean a gauche. Plus haut = tete plus exposee.
; 22 : valeur initiale (CoD2x utilise 5)
; 30 : default v5 (visible mais pas exagere)
; 40+ : tres exagere (body sort visiblement de derriere le mur)
;
; Right stand desactive par defaut (le bug original ne touche que LEFT).
; -------------------------------------------------------------
lean_body_shift_enable = true
lean_body_shift_left_stand = 30.0
lean_body_shift_left_crouch = 28.0
lean_body_shift_right_stand = 0.0
lean_body_shift_right_crouch = 0.0
; =============================================================
; SWING FIX (port cod2x BG_PlayerAngles) - INDEPENDANT DU LEAN FIX
; =============================================================
swing_fix_enable = true
swing_legs_tolerance = 0.0
swing_torso_pitch_speed = 1.0
; -------------------------------------------------------------
; HEADCLIP fix (= "clipping" competitive exploit) - ported from CoD2x
;
; Exploit : crouch + lean LEFT + strafe RIGHT in rapid succession lets
; the player camera peek around cover while their hitbox/body model
; stays behind it. Opponents see only flickers of head/body but the
; player sees them clearly and can shoot freely.
;
; CoD2x fix : when crouched + leaning left, force the body model to
; bend FORWARD visually so the head dips into view. The player loses
; the "free peek" - if they want to see the enemy, the enemy sees
; them too. Doesn't fix the underlying decoupling but kills the exploit.
;
; Set lean_headclip_fix_enable = false to disable entirely.
; The 4 multipliers are degrees-per-fLeanFrac (fLeanFrac in [-1, 1],
; cod2x's original values). Lower them if the body bends too much.
; -------------------------------------------------------------
lean_headclip_fix_enable = true
lean_headclip_back_low_pitch = 40.0
lean_headclip_back_low_yaw = 30.0
lean_headclip_back_mid_pitch = -20.0
lean_headclip_back_up_pitch = -20.0
; Diagnostic logging count (0 = silent, 200 = capture a few seconds of
; bone values for tuning). Set to 100 for the aimwalk validation test.
lean_diag_log_count = 100
; -------------------------------------------------------------
; Crouch posture - straighten the upper body when crouching
;
; Adds an offset (in degrees) to the PITCH (axis 0) of each bone when
; the player is crouched. Negative pitch on back_low = lower-back
; retro-flexion = the head visually rises.
;
; Compensate with positive pitch on back_mid/up to keep the torso
; vertical (otherwise the character "leans backwards").
;
; Typical values to slightly raise the head:
; crouch_back_low_pitch = -10
; crouch_back_mid_pitch = 5
; crouch_back_up_pitch = 5
;
; Set to 0.0 to disable (default).
; -------------------------------------------------------------
crouch_back_low_pitch = 0.0
crouch_back_mid_pitch = 0.0
crouch_back_up_pitch = 0.0
crouch_neck_pitch = 0.0
crouch_head_pitch = 0.0
; Origin Z offset: raises the WHOLE model by N units when crouched.
; Affects rendering only - the shot hitbox does NOT follow.
; Positive = upwards. Typical: 1.0 to 3.0 units.
crouch_origin_z_offset = 0.0