Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
14c3486
Null-check the objective carrier in ghost boundary
sunzenshen Oct 15, 2026
e07fe41
Keep the muzzle flash viewmodel on map cleanup
sunzenshen Oct 15, 2026
25edc86
Time a reload by its own sequence, not a transition
sunzenshen Oct 15, 2026
362eb29
Hold an empty weapon on its empty idle
sunzenshen Oct 15, 2026
3ec8492
Draw an empty pistol with its slide held back
sunzenshen Oct 15, 2026
09473ff
Finish reloads at the last reload click
sunzenshen Oct 15, 2026
680983f
Animate players on the SDK base player anim state
sunzenshen Oct 15, 2026
69d69c9
Keep the fire time, load the magazine at the click
sunzenshen Oct 15, 2026
ba69cc1
Merge reload-ready-at-cue into research-reload-phases
sunzenshen Oct 16, 2026
63733b3
Merge vm-empty-draw into research-reload-phases
sunzenshen Oct 16, 2026
9f99ae2
Merge fix-pistol-sprint-reload into research-reload-phases
sunzenshen Oct 16, 2026
a7a5ac2
Add the ZR68 reload sound pieces to the sound script
sunzenshen Oct 16, 2026
5058940
Parse the ReloadPhases weapon-script block
sunzenshen Oct 16, 2026
5f5fc36
Track reload phases and credit ammo per phase
sunzenshen Oct 16, 2026
9d3c2af
Time the ZR68S resume phases for the resized reaches
sunzenshen Oct 16, 2026
8d7daa2
Play the reload sound in per-phase pieces
sunzenshen Oct 16, 2026
545bb3e
Show the chambered round on the ammo HUD
sunzenshen Oct 16, 2026
39ec946
Add the ZR68S draw-resume phase tables
sunzenshen Oct 16, 2026
46c405c
Play the ZR68S drop sound from the first hand sound
sunzenshen Oct 16, 2026
4a54e94
Select partial and resume reload sequences by name
sunzenshen Oct 16, 2026
d4df589
Fill the HUD's overflow mark for a full gun with a round chambered
sunzenshen Oct 16, 2026
10c0013
Give the ZR68C reload phases
sunzenshen Oct 16, 2026
0e37c6f
Give the ZR68L reload phases and its own sound pieces
sunzenshen Oct 16, 2026
897e3e1
Give the MX and MX-S reload phases and sound pieces
sunzenshen Oct 16, 2026
ef49e0f
Allow a second sound piece per reload phase
sunzenshen Oct 16, 2026
146289f
Give the M41, M41S and M41L reload phases and sound pieces
sunzenshen Oct 16, 2026
35b2bf3
Play a phase's sound pieces after its credit too
sunzenshen Oct 16, 2026
eda7000
Give the Jitte and Jitte scoped reload phases and sound pieces
sunzenshen Oct 16, 2026
f24237a
Give the SRM and MPN guns reload phases and sound pieces
sunzenshen Oct 16, 2026
6f66303
Give the AA13 and PZ reload phases and sound pieces
sunzenshen Oct 16, 2026
fdaef0b
Give the SRS reload phases and sound pieces
sunzenshen Oct 16, 2026
12b1de8
Time the Jitte and AA13 draw-resume for the parked arm
sunzenshen Oct 16, 2026
5f64639
Reload an empty pistol with its slide release
sunzenshen Oct 16, 2026
c12716e
Give the Milso and Tachi reload phases and sound pieces
sunzenshen Oct 16, 2026
402163a
Give the Kyla reload phases and sound pieces
sunzenshen Oct 16, 2026
38ce827
Sound the Milso and Tachi slide release with a placeholder
sunzenshen Oct 16, 2026
bde9bf4
Supa7: tube, chamber and pump as state
sunzenshen Oct 16, 2026
cee96d3
Supa7: play the shell insert at the shell pace
sunzenshen Oct 16, 2026
9323316
Supa7: rack the pump once on a reload press with the tube full
sunzenshen Oct 16, 2026
165e63b
Supa7: play a slug insert at its own pace
sunzenshen Oct 16, 2026
faa65c6
Top up a revolver's cylinder instead of emptying it
sunzenshen Oct 16, 2026
5d3644b
Show the reload gesture for phase reloads
sunzenshen Oct 16, 2026
74cac6b
Start the reload gesture where a resumed reload resumes
sunzenshen Oct 16, 2026
6040298
Look up reload sequences on the viewmodel
sunzenshen Oct 16, 2026
faca103
Network every reload table index
sunzenshen Oct 16, 2026
69b0490
Supa7: hold seven in the tube beside the chamber
sunzenshen Oct 16, 2026
64a9290
Supa7: rack before firing when the chamber is empty
sunzenshen Oct 16, 2026
01547b2
Supa7: load shells behind a chambered slug
sunzenshen Oct 16, 2026
09b30e9
Lock a pistol's slide back on its last shot
sunzenshen Oct 16, 2026
d934bbd
Reload an empty Milso with its slide held back
sunzenshen Oct 16, 2026
3adcb38
Show the reload gesture on an empty Milso reload
sunzenshen Oct 16, 2026
c5e4349
Merge fix-muzzleflash-class-change into research-reload-phases
sunzenshen Oct 17, 2026
9a06a56
Merge fix-ghost-boundary-null-player into research-reload-phases
sunzenshen Oct 17, 2026
0dd0c46
Merge vm-empty-draw into research-reload-phases
sunzenshen Oct 17, 2026
a75be2a
Merge anim-sdk-base into research-reload-phases
sunzenshen Oct 17, 2026
b7b8a08
Draw and idle a pistol with its slide back until the release
sunzenshen Oct 17, 2026
0d8e2b6
Fade out a reload gesture that ends early
sunzenshen Oct 17, 2026
4788a5e
Fade out a reload gesture on a weapon switch
sunzenshen Oct 17, 2026
a0c23f1
Expose the chambered round apart from the magazine
sunzenshen Oct 17, 2026
4fc9bcb
Show the chambered round on the ammo HUD
sunzenshen Oct 17, 2026
04619ed
Let the trigger end a reload before the drop or after the seat
sunzenshen Oct 17, 2026
4149c4e
Fire the chambered round while the magazine is out
sunzenshen Oct 17, 2026
f047c76
Show the chamber on the fire-mode glyph's round icon
sunzenshen Oct 17, 2026
00fe542
Fire the chambered round by default
sunzenshen Oct 17, 2026
802488c
SRS: show the spent case in the chamber until the bolt
sunzenshen Oct 17, 2026
a531257
Supa7: show the fed round in the tube until the pump is home
sunzenshen Oct 17, 2026
a2ad518
End a reload by trigger only after its slap
sunzenshen Oct 17, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
462 changes: 462 additions & 0 deletions game/neo/scripts/game_sounds_weapons.txt

Large diffs are not rendered by default.

47 changes: 47 additions & 0 deletions game/neo/scripts/weapon_aa13.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ WeaponData
"Damage" "25"
"Bullets" "5"
"CycleTime" "0.333"
// the charging handle is home 0.333 before the end, the alternative value

// Weapon data is loaded by both the Game and Client DLLs.
"printname" "AA13"
Expand All @@ -19,6 +20,52 @@ WeaponData
"bucket" "0"
"bucket_position" "3"

// Reload phases, generated from segments.csv by segments_build.py (ntre proposals/0057):
// credit = when the phase counts, at = when its sound piece's first transient plays, both from the sequence start
"ReloadPhases"
{
"ChamberedRound" "1"
"reload"
{
"drop" { "credit" "1.033" "sound" "weapon_aa13.reload_drop" "at" "0.374" }
"seat" { "credit" "3.367" "sound" "weapon_aa13.reload_seat" "at" "2.905" }
"bolt" { "credit" "4.333" "sound" "weapon_aa13.reload_bolt" "at" "3.764" }
}
"reload_partial"
{
"drop" { "credit" "1.033" "sound" "weapon_aa13.reload_drop" "at" "0.374" }
"seat" { "credit" "3.367" "sound" "weapon_aa13.reload_seat" "at" "2.905" }
}
"reload_from_drop_dry"
{
"seat" { "credit" "2.600" "sound" "weapon_aa13.reload_seat" "at" "2.138" }
"bolt" { "credit" "3.567" "sound" "weapon_aa13.reload_bolt" "at" "2.997" }
}
"reload_from_drop_partial"
{
"seat" { "credit" "2.600" "sound" "weapon_aa13.reload_seat" "at" "2.138" }
}
"reload_from_seat_dry"
{
"bolt" { "credit" "1.067" "sound" "weapon_aa13.reload_bolt" "at" "0.497" }
}
"draw_resume_drop_dry"
{
"seat" { "credit" "2.567" "sound" "weapon_aa13.reload_seat" "at" "2.105" }
"bolt" { "credit" "3.533" "sound" "weapon_aa13.reload_bolt" "at" "2.964" }
}
"draw_resume_drop_partial"
{
"seat" { "credit" "2.567" "sound" "weapon_aa13.reload_seat" "at" "2.105" }
}
"fire_chamber_onehand"
{
"fire_at" "0.133"
"seat" { "credit" "2.200" "sound" "weapon_aa13.reload_seat" "at" "1.738" }
"bolt" { "credit" "3.167" "sound" "weapon_aa13.reload_bolt" "at" "2.597" }
}
}

"clip_size" "16"
"default_clip" "48"
"autoswitchfrom" "0"
Expand Down
47 changes: 47 additions & 0 deletions game/neo/scripts/weapon_jitte.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,53 @@ WeaponData
"Damage" "15"
"Penetration" "12.0"
"CycleTime" "0.090909" // time between shots
// the charging handle is home 0.400 before the end, the alternative value

// Reload phases, generated from segments.csv by segments_build.py (ntre proposals/0057):
// credit = when the phase counts, at = when its sound piece's first transient plays, both from the sequence start
"ReloadPhases"
{
"ChamberedRound" "1"
"reload"
{
"drop" { "credit" "1.367" "sound" "weapon_jitte.reload_drop" "at" "0.089" "sound2" "weapon_jitte.reload_drop2" "at2" "1.395" }
"seat" { "credit" "2.100" "sound" "weapon_jitte.reload_seat" "at" "1.733" }
"bolt" { "credit" "2.900" "sound" "weapon_jitte.reload_bolt" "at" "2.391" }
}
"reload_partial"
{
"drop" { "credit" "1.367" "sound" "weapon_jitte.reload_drop" "at" "0.089" "sound2" "weapon_jitte.reload_drop2" "at2" "1.395" }
"seat" { "credit" "2.100" "sound" "weapon_jitte.reload_seat" "at" "1.733" }
}
"reload_from_drop_dry"
{
"seat" { "credit" "1.300" "sound" "weapon_jitte.reload_seat" "at" "0.933" }
"bolt" { "credit" "2.100" "sound" "weapon_jitte.reload_bolt" "at" "1.591" }
}
"reload_from_drop_partial"
{
"seat" { "credit" "1.300" "sound" "weapon_jitte.reload_seat" "at" "0.933" }
}
"reload_from_seat_dry"
{
"bolt" { "credit" "0.867" "sound" "weapon_jitte.reload_bolt" "at" "0.358" }
}
"draw_resume_drop_dry"
{
"seat" { "credit" "1.567" "sound" "weapon_jitte.reload_seat" "at" "1.200" }
"bolt" { "credit" "2.367" "sound" "weapon_jitte.reload_bolt" "at" "1.858" }
}
"draw_resume_drop_partial"
{
"seat" { "credit" "1.567" "sound" "weapon_jitte.reload_seat" "at" "1.200" }
}
"fire_chamber_onehand"
{
"fire_at" "0.133"
"seat" { "credit" "1.367" "sound" "weapon_jitte.reload_seat" "at" "1.000" }
"bolt" { "credit" "2.167" "sound" "weapon_jitte.reload_bolt" "at" "1.658" }
}
}

"TPMuzzleFlashScale" "0.5"

Expand Down
47 changes: 47 additions & 0 deletions game/neo/scripts/weapon_jittescoped.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,53 @@ WeaponData
"Damage" "15"
"Penetration" "20.0"
"CycleTime" "0.090909" // time between shots
// the charging handle is home 0.400 before the end, the alternative value

// Reload phases, generated from segments.csv by segments_build.py (ntre proposals/0057):
// credit = when the phase counts, at = when its sound piece's first transient plays, both from the sequence start
"ReloadPhases"
{
"ChamberedRound" "1"
"reload"
{
"drop" { "credit" "1.367" "sound" "weapon_jitte.reload_drop" "at" "0.089" "sound2" "weapon_jitte.reload_drop2" "at2" "1.395" }
"seat" { "credit" "2.100" "sound" "weapon_jitte.reload_seat" "at" "1.733" }
"bolt" { "credit" "2.900" "sound" "weapon_jitte.reload_bolt" "at" "2.391" }
}
"reload_partial"
{
"drop" { "credit" "1.367" "sound" "weapon_jitte.reload_drop" "at" "0.089" "sound2" "weapon_jitte.reload_drop2" "at2" "1.395" }
"seat" { "credit" "2.100" "sound" "weapon_jitte.reload_seat" "at" "1.733" }
}
"reload_from_drop_dry"
{
"seat" { "credit" "1.300" "sound" "weapon_jitte.reload_seat" "at" "0.933" }
"bolt" { "credit" "2.100" "sound" "weapon_jitte.reload_bolt" "at" "1.591" }
}
"reload_from_drop_partial"
{
"seat" { "credit" "1.300" "sound" "weapon_jitte.reload_seat" "at" "0.933" }
}
"reload_from_seat_dry"
{
"bolt" { "credit" "0.867" "sound" "weapon_jitte.reload_bolt" "at" "0.358" }
}
"draw_resume_drop_dry"
{
"seat" { "credit" "1.567" "sound" "weapon_jitte.reload_seat" "at" "1.200" }
"bolt" { "credit" "2.367" "sound" "weapon_jitte.reload_bolt" "at" "1.858" }
}
"draw_resume_drop_partial"
{
"seat" { "credit" "1.567" "sound" "weapon_jitte.reload_seat" "at" "1.200" }
}
"fire_chamber_onehand"
{
"fire_at" "0.133"
"seat" { "credit" "1.367" "sound" "weapon_jitte.reload_seat" "at" "1.000" }
"bolt" { "credit" "2.167" "sound" "weapon_jitte.reload_bolt" "at" "1.658" }
}
}

"TPMuzzleFlashScale" "0.5"

Expand Down
20 changes: 20 additions & 0 deletions game/neo/scripts/weapon_kyla.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,26 @@ WeaponData
"Penetration" "10.0"
"CycleTime" "0.363636" // time between shoots

// Reload phases, generated from segments.csv by segments_build.py (ntre proposals/0057):
// credit = when the phase counts, at = when its sound piece's first transient plays, both from the sequence start
"ReloadPhases"
{
"ChamberedRound" "0"
"reload"
{
"drop" { "credit" "0.800" "sound" "weapon_kyla.reload_drop" "at" "0.232" }
"seat" { "credit" "1.333" "sound" "weapon_kyla.reload_seat" "at" "1.216" "sound2" "weapon_kyla.reload_seat2" "at2" "1.673" }
}
"reload_from_drop_dry"
{
"seat" { "credit" "1.733" "sound" "weapon_kyla.reload_seat" "at" "1.616" "sound2" "weapon_kyla.reload_seat2" "at2" "2.073" }
}
"draw_resume_drop_dry"
{
"seat" { "credit" "1.633" "sound" "weapon_kyla.reload_seat" "at" "1.516" "sound2" "weapon_kyla.reload_seat2" "at2" "1.973" }
}
}

"TPMuzzleFlashScale" "0.6"

"clip_size" "6"
Expand Down
62 changes: 62 additions & 0 deletions game/neo/scripts/weapon_m41.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,68 @@ WeaponData
"Penetration" "32.0"
"CycleTime" "0.166666" // time between shots

// Reload phases, generated from segments.csv by segments_build.py (ntre proposals/0057):
// credit = when the phase counts, at = when its sound piece's first transient plays, both from the sequence start
"ReloadPhases"
{
"ChamberedRound" "1"
"reload"
{
"drop" { "credit" "0.633" "sound" "weapon_m41.reload_drop" "at" "0.624" }
"seat" { "credit" "1.300" "sound" "weapon_m41.reload_seat" "at" "1.302" "sound2" "weapon_m41.reload_seat2" "at2" "1.858" }
"slap" { "credit" "2.467" "sound" "weapon_m41.reload_slap" "at" "2.511" }
"bolt" { "credit" "3.367" "sound" "weapon_m41.reload_bolt" "at" "3.166" }
}
"reload_partial"
{
"drop" { "credit" "0.633" "sound" "weapon_m41.reload_drop" "at" "0.624" }
"seat" { "credit" "1.300" "sound" "weapon_m41.reload_seat" "at" "1.302" "sound2" "weapon_m41.reload_seat2" "at2" "1.858" }
"slap" { "credit" "2.467" "sound" "weapon_m41.reload_slap" "at" "2.511" }
}
"reload_from_drop_dry"
{
"seat" { "credit" "1.233" "sound" "weapon_m41.reload_seat" "at" "1.235" "sound2" "weapon_m41.reload_seat2" "at2" "1.791" }
"slap" { "credit" "2.400" "sound" "weapon_m41.reload_slap" "at" "2.444" }
"bolt" { "credit" "3.300" "sound" "weapon_m41.reload_bolt" "at" "3.099" }
}
"reload_from_drop_partial"
{
"seat" { "credit" "1.233" "sound" "weapon_m41.reload_seat" "at" "1.235" "sound2" "weapon_m41.reload_seat2" "at2" "1.791" }
"slap" { "credit" "2.400" "sound" "weapon_m41.reload_slap" "at" "2.444" }
}
"reload_from_seat_dry"
{
"slap" { "credit" "0.867" "sound" "weapon_m41.reload_slap" "at" "0.911" }
"bolt" { "credit" "1.700" "sound" "weapon_m41.reload_bolt" "at" "1.499" }
}
"reload_from_seat_partial"
{
"slap" { "credit" "0.867" "sound" "weapon_m41.reload_slap" "at" "0.911" }
}
"reload_from_slap_dry"
{
"bolt" { "credit" "0.867" "sound" "weapon_m41.reload_bolt" "at" "0.666" }
}
"draw_resume_drop_dry"
{
"seat" { "credit" "1.533" "sound" "weapon_m41.reload_seat" "at" "1.535" "sound2" "weapon_m41.reload_seat2" "at2" "2.091" }
"slap" { "credit" "2.700" "sound" "weapon_m41.reload_slap" "at" "2.744" }
"bolt" { "credit" "3.600" "sound" "weapon_m41.reload_bolt" "at" "3.399" }
}
"draw_resume_drop_partial"
{
"seat" { "credit" "1.533" "sound" "weapon_m41.reload_seat" "at" "1.535" "sound2" "weapon_m41.reload_seat2" "at2" "2.091" }
"slap" { "credit" "2.700" "sound" "weapon_m41.reload_slap" "at" "2.744" }
}
"fire_chamber_onehand"
{
"fire_at" "0.133"
"seat" { "credit" "1.267" "sound" "weapon_m41.reload_seat" "at" "1.269" "sound2" "weapon_m41.reload_seat2" "at2" "1.825" }
"slap" { "credit" "2.433" "sound" "weapon_m41.reload_slap" "at" "2.478" }
"bolt" { "credit" "3.333" "sound" "weapon_m41.reload_bolt" "at" "3.133" }
}
}

"TPMuzzleFlashScale" "0.5"

"clip_size" "15"
Expand Down
62 changes: 62 additions & 0 deletions game/neo/scripts/weapon_m41l.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,68 @@ WeaponData
"Penetration" "32.0"
"CycleTime" "0.5" // time between shots

// Reload phases, generated from segments.csv by segments_build.py (ntre proposals/0057):
// credit = when the phase counts, at = when its sound piece's first transient plays, both from the sequence start
"ReloadPhases"
{
"ChamberedRound" "1"
"reload"
{
"drop" { "credit" "0.633" "sound" "weapon_m41.reload_drop" "at" "0.624" }
"seat" { "credit" "1.300" "sound" "weapon_m41.reload_seat" "at" "1.302" "sound2" "weapon_m41.reload_seat2" "at2" "1.858" }
"slap" { "credit" "2.467" "sound" "weapon_m41.reload_slap" "at" "2.511" }
"bolt" { "credit" "3.367" "sound" "weapon_m41.reload_bolt" "at" "3.166" }
}
"reload_partial"
{
"drop" { "credit" "0.633" "sound" "weapon_m41.reload_drop" "at" "0.624" }
"seat" { "credit" "1.300" "sound" "weapon_m41.reload_seat" "at" "1.302" "sound2" "weapon_m41.reload_seat2" "at2" "1.858" }
"slap" { "credit" "2.467" "sound" "weapon_m41.reload_slap" "at" "2.511" }
}
"reload_from_drop_dry"
{
"seat" { "credit" "1.233" "sound" "weapon_m41.reload_seat" "at" "1.235" "sound2" "weapon_m41.reload_seat2" "at2" "1.791" }
"slap" { "credit" "2.400" "sound" "weapon_m41.reload_slap" "at" "2.444" }
"bolt" { "credit" "3.300" "sound" "weapon_m41.reload_bolt" "at" "3.099" }
}
"reload_from_drop_partial"
{
"seat" { "credit" "1.233" "sound" "weapon_m41.reload_seat" "at" "1.235" "sound2" "weapon_m41.reload_seat2" "at2" "1.791" }
"slap" { "credit" "2.400" "sound" "weapon_m41.reload_slap" "at" "2.444" }
}
"reload_from_seat_dry"
{
"slap" { "credit" "0.867" "sound" "weapon_m41.reload_slap" "at" "0.911" }
"bolt" { "credit" "1.700" "sound" "weapon_m41.reload_bolt" "at" "1.499" }
}
"reload_from_seat_partial"
{
"slap" { "credit" "0.867" "sound" "weapon_m41.reload_slap" "at" "0.911" }
}
"reload_from_slap_dry"
{
"bolt" { "credit" "0.867" "sound" "weapon_m41.reload_bolt" "at" "0.666" }
}
"draw_resume_drop_dry"
{
"seat" { "credit" "1.533" "sound" "weapon_m41.reload_seat" "at" "1.535" "sound2" "weapon_m41.reload_seat2" "at2" "2.091" }
"slap" { "credit" "2.700" "sound" "weapon_m41.reload_slap" "at" "2.744" }
"bolt" { "credit" "3.600" "sound" "weapon_m41.reload_bolt" "at" "3.399" }
}
"draw_resume_drop_partial"
{
"seat" { "credit" "1.533" "sound" "weapon_m41.reload_seat" "at" "1.535" "sound2" "weapon_m41.reload_seat2" "at2" "2.091" }
"slap" { "credit" "2.700" "sound" "weapon_m41.reload_slap" "at" "2.744" }
}
"fire_chamber_onehand"
{
"fire_at" "0.133"
"seat" { "credit" "1.267" "sound" "weapon_m41.reload_seat" "at" "1.269" "sound2" "weapon_m41.reload_seat2" "at2" "1.825" }
"slap" { "credit" "2.433" "sound" "weapon_m41.reload_slap" "at" "2.478" }
"bolt" { "credit" "3.333" "sound" "weapon_m41.reload_bolt" "at" "3.133" }
}
}

"TPMuzzleFlashScale" "0.25"

"clip_size" "10"
Expand Down
Loading
Loading