# BattleTech: FireStorm — Git attributes (full-mirror repo)
# Legacy Windows tree: preserve bytes as-is (git config core.autocrlf=false).
# Strategy: route ALL binary file types to Git LFS so the git history stays lean,
# while plain-text source/scripts/headers stay in normal git for real diffs.
# Anything binary NOT listed here still commits fine (just not LFS-optimized) — the
# post-stage size check catches large stragglers.

# ---- Byte-for-byte mirror: NO end-of-line conversion on ANY machine ----
# This overrides each cloner's global core.autocrlf (Git-for-Windows defaults it to true,
# which would expand LF->CRLF on checkout). With `* -text`, git never converts EOLs, so a
# clone restores files exactly as committed. `diff` overrides below keep source readable.
* -text

# ---- Game/art assets ----
*.tga      filter=lfs diff=lfs merge=lfs -text
*.bmp      filter=lfs diff=lfs merge=lfs -text
*.png      filter=lfs diff=lfs merge=lfs -text
*.psd      filter=lfs diff=lfs merge=lfs -text
*.raw      filter=lfs diff=lfs merge=lfs -text
*.ico      filter=lfs diff=lfs merge=lfs -text
*.cur      filter=lfs diff=lfs merge=lfs -text
*.erf      filter=lfs diff=lfs merge=lfs -text
*.bid      filter=lfs diff=lfs merge=lfs -text
*.bsp      filter=lfs diff=lfs merge=lfs -text
*.gaf      filter=lfs diff=lfs merge=lfs -text
*.material filter=lfs diff=lfs merge=lfs -text
*.igdata   filter=lfs diff=lfs merge=lfs -text
*.mw4anim  filter=lfs diff=lfs merge=lfs -text
*.mw4      filter=lfs diff=lfs merge=lfs -text
*.d3f      filter=lfs diff=lfs merge=lfs -text
*.ebf      filter=lfs diff=lfs merge=lfs -text
*.obb      filter=lfs diff=lfs merge=lfs -text
*.pkg      filter=lfs diff=lfs merge=lfs -text
*.256      filter=lfs diff=lfs merge=lfs -text
*.016      filter=lfs diff=lfs merge=lfs -text

# ---- Audio / video ----
*.wav      filter=lfs diff=lfs merge=lfs -text
*.avi      filter=lfs diff=lfs merge=lfs -text
*.mpg      filter=lfs diff=lfs merge=lfs -text
*.mp3      filter=lfs diff=lfs merge=lfs -text
*.ogg      filter=lfs diff=lfs merge=lfs -text

# ---- Binaries / build outputs / toolchain ----
*.exe      filter=lfs diff=lfs merge=lfs -text
*.dll      filter=lfs diff=lfs merge=lfs -text
*.ocx      filter=lfs diff=lfs merge=lfs -text
*.sys      filter=lfs diff=lfs merge=lfs -text
*.lib      filter=lfs diff=lfs merge=lfs -text
*.obj      filter=lfs diff=lfs merge=lfs -text
*.pch      filter=lfs diff=lfs merge=lfs -text
*.pdb      filter=lfs diff=lfs merge=lfs -text
*.idb      filter=lfs diff=lfs merge=lfs -text
*.ilk      filter=lfs diff=lfs merge=lfs -text
*.exp      filter=lfs diff=lfs merge=lfs -text
*.res      filter=lfs diff=lfs merge=lfs -text
*.sbr      filter=lfs diff=lfs merge=lfs -text
*.bsc      filter=lfs diff=lfs merge=lfs -text
*.tlb      filter=lfs diff=lfs merge=lfs -text
*.ncb      filter=lfs diff=lfs merge=lfs -text
*.opt      filter=lfs diff=lfs merge=lfs -text
*.aps      filter=lfs diff=lfs merge=lfs -text

# ---- Archives ----
*.zip      filter=lfs diff=lfs merge=lfs -text
*.cab      filter=lfs diff=lfs merge=lfs -text
*.gz       filter=lfs diff=lfs merge=lfs -text
*.7z       filter=lfs diff=lfs merge=lfs -text

# ---- Fonts / help / office ----
*.ttf      filter=lfs diff=lfs merge=lfs -text
*.fon      filter=lfs diff=lfs merge=lfs -text
*.otf      filter=lfs diff=lfs merge=lfs -text
*.hlp      filter=lfs diff=lfs merge=lfs -text
*.chm      filter=lfs diff=lfs merge=lfs -text
*.gid      filter=lfs diff=lfs merge=lfs -text
*.xls      filter=lfs diff=lfs merge=lfs -text
*.xlsx     filter=lfs diff=lfs merge=lfs -text
*.doc      filter=lfs diff=lfs merge=lfs -text
*.mdb      filter=lfs diff=lfs merge=lfs -text
*.db       filter=lfs diff=lfs merge=lfs -text
*.mr       filter=lfs diff=lfs merge=lfs -text

# ---- Readable diffs for text/source (force textual diff; `-text` above still prevents
#      any EOL conversion, so byte-exactness is preserved) ----
*.cpp        diff
*.hpp        diff
*.h          diff
*.c          diff
*.inl        diff
*.idl        diff
*.rc         diff
*.def        diff
*.dsp        diff
*.dsw        diff
*.mak        diff
*.script     diff
*.build      diff
*.instance   diff
*.contents   diff
*.subsystems diff
*.abl        diff
*.abi        diff
*.hint       diff
*.txt        diff
*.md         diff
*.ps1        diff
*.bat        diff
*.reg        diff
*.h          diff
