Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Models/Textures/Mapped Images Validation Checks #2577

Open
wants to merge 20 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 16 commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
9dc2fb8
Add missing texture and TGA validation checks
DevGeniusCode Jan 4, 2025
86712b1
adds support for DDS files in the TGA validation, comparing files by …
DevGeniusCode Jan 7, 2025
2f7745e
Optimized the script for better performance and readability
DevGeniusCode Jan 7, 2025
80400e9
Added functionality to check for invalid textures in W3D files
DevGeniusCode Jan 7, 2025
298d525
fix file name
DevGeniusCode Jan 7, 2025
f5534ba
fix output files name
DevGeniusCode Jan 7, 2025
c4fcc0a
Optimized code and updated various functions/variables names for bett…
DevGeniusCode Jan 7, 2025
a61c115
Add validation for invalid/unused textures/images and interactive menu
DevGeniusCode Jan 8, 2025
ddf3c35
fix Object_Folder regex
DevGeniusCode Jan 8, 2025
fbd6774
Improved the file names and added check assets in game.dat
DevGeniusCode Jan 9, 2025
e63606b
fix main menu
DevGeniusCode Jan 11, 2025
0f96a09
fix main menu and update txt reports
DevGeniusCode Jan 11, 2025
202b60a
add SCPatchUserInterface512.INI
DevGeniusCode Jan 11, 2025
51bf275
Separation of textures and models, improved reports.
DevGeniusCode Jan 12, 2025
2077b8d
Separation of textures and models, improved reports.
DevGeniusCode Jan 12, 2025
8e79471
fix script name and maps references and remove `ani` files
DevGeniusCode Jan 12, 2025
50048ca
Add language-specific assets analysis and fix animation regex
DevGeniusCode Jan 13, 2025
5824563
Added file extensions and improved naming.
DevGeniusCode Jan 13, 2025
c250078
Improve `extract_art_files_from_ini_files` and spelling
DevGeniusCode Jan 14, 2025
58baefa
minor fix
DevGeniusCode Jan 15, 2025
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

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
HandCreatedMappedImages.INI LoadPageHuge
HandCreatedMappedImages.INI SCCAttack
HandCreatedMappedImages.INI InGameUIAmericaBase
HandCreatedMappedImages.INI InGameUIChinaBase
HandCreatedMappedImages.INI InGameUIGLABase
HandCreatedMappedImages.INI America_ScoreScreen
HandCreatedMappedImages.INI GLA_ScoreScreen
HandCreatedMappedImages.INI China_ScoreScreen
HandCreatedMappedImages.INI MutiPlayer_ScoreScreen
HandCreatedMappedImages.INI MainMenuBackdrop
SCShellUserInterface512.INI FairPlay
SCSmShellUserInterface512.INI NuHelpbox-midleft
SCSmShellUserInterface512.INI NuHelpbox-top
SCSmShellUserInterface512.INI NuHelpbox-bottomright
SCSmShellUserInterface512.INI NuHelpbox-topright
SCSmShellUserInterface512.INI NuHelpbox-topleft
SCSmShellUserInterface512.INI NuHelpbox-bottommid
SCSmShellUserInterface512.INI Ruler
SCSmShellUserInterface512.INI NuHelpbox-midright
SCSmShellUserInterface512.INI NuHelpbox-middle
SCSmShellUserInterface512.INI NuHelpbox-bottomleft
SCSmShellUserInterface512.INI WindowGrid
SNUserInterface512.INI SNPStar018
SNUserInterface512.INI SNPStar019
SNUserInterface512.INI SNPStar020
SNUserInterface512.INI SNPStar000
SNUserInterface512.INI SNPStar001
SNUserInterface512.INI SNPStar002
SNUserInterface512.INI SNPStar003
SNUserInterface512.INI SNPStar004
SNUserInterface512.INI SNPStar005
SNUserInterface512.INI SNPStar006
SNUserInterface512.INI SNPStar007
SNUserInterface512.INI SNPStar008
SNUserInterface512.INI SNPStar009
SNUserInterface512.INI SNPStar010
SNUserInterface512.INI SNPStar011
SNUserInterface512.INI SNPStar012
SNUserInterface512.INI SNPStar013
SNUserInterface512.INI SNPStar014
SNUserInterface512.INI SNPStar015
SNUserInterface512.INI SNPStar016
SNUserInterface512.INI SNPStar017
SUUserInterface512.INI SSRadarVanScan
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
SABarButtonGen2IN
SABarButtonGen2ON
SCBigButton
SNBarButtonGen2IN
SNBarButtonGen2ON
SUBarButtonGen2IN
SUBarButtonGen2ON
SUMinMax
SUMinMaxH
SUMinMaxP
UnitBackgroundA
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
CheckBoxUseStatsChecked
CheckBoxUseStatsUnchecked
MarketingScreen
ProgressBarDisabledBarLeftEnd
ProgressBarDisabledBarRepeatingCenter
ProgressBarDisabledBarRightEnd
ProgressBarDisabledBarSmallRepeatingCenter
ProgressBarDisabledLeftEnd
ProgressBarDisabledRepeatingCenter
ProgressBarDisabledRightEnd
ProgressBarDisabledSmallRepeatingCenter
ProgressBarEnabledBarLeftEnd
ProgressBarEnabledBarRepeatingCenter
ProgressBarEnabledBarRightEnd
ProgressBarEnabledBarSmallRepeatingCenter
ProgressBarEnabledLeftEnd
ProgressBarEnabledRepeatingCenter
ProgressBarEnabledRightEnd
ProgressBarEnabledSmallRepeatingCenter
ProgressBarHiliteBarLeftEnd
ProgressBarHiliteBarRepeatingCenter
ProgressBarHiliteBarRightEnd
ProgressBarHiliteBarSmallRepeatingCenter
ProgressBarHiliteLeftEnd
ProgressBarHiliteRepeatingCenter
ProgressBarHiliteRightEnd
ProgressBarHiliteSmallRepeatingCenter
PushButtonDisabled
PushButtonEnabled
PushButtonHilite
PushButtonHiliteSelected
StaticTextDisabled
StaticTextEnabled
StaticTextHilite
VSliderDisabledBottomEnd
VSliderDisabledRepeatingCenter
VSliderDisabledSmallRepeatingCenter
VSliderDisabledTopEnd
VSliderEnabledBottomEnd
VSliderEnabledRepeatingCenter
VSliderEnabledSmallRepeatingCenter
VSliderEnabledTopEnd
VSliderHiliteBottomEnd
VSliderHiliteRepeatingCenter
VSliderHiliteSmallRepeatingCenter
VSliderHiliteTopEnd
VsliderThumbDisabled
VsliderThumbEnabled
VsliderThumbHilite
VsliderThumbHiliteSelected
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
AIBlockTile
AICliffTile
AIOFCR_PFL
AIPathTile
AISearchCTile
AISearchOTile
AIWaterTile
AVBattShip_D
AVBattShip_D1
CBChalet2_DSN
CBChalet2_DSNG
CBChalet2_ESN
CBChalet2_SN
CBChalet2_SNG
CBChalet3_DSN
CBChalet3_DSNG
CBChalet3_ESN
CBChalet3_RSN
CBChalet3_SN
CBChalet3_SNG
CBHangr02_DSNG
CBModis03_TR
CBModis03_TRD
CBTower02_DNS
CBTower02_GDNS
CBTower02_GDS
CBTower02_GNS
CBTower02_GS
CBTower02_NS
CBWBrdgeLArc_D
CBWBrdgeLArc_E
CBWBrdgeLArc_R
CBioRock_CR
CIBird
CINFCIV01_ADTA1
CINFCIV01_ADTA2
CINFCIV01_ADTA3
CV8DropCN
CVCargobrn
CVCargobrn_D
CVCstcn
CVCstcn_D
CVHRSE_STN
NBNMissle_A3ENSS
NONE
NULL
None
PMLitPol01_D
PMLitPol02_D
PMburntcar2
PSAirCarrier_NS
PSCarRapt_D1B
UBPalaceEGX_DSG
ZBRprBay_NS
ZBValvStat_DG
cbhangr02_DSNG
cvoxpl_STN
cvrksh_STN
cvrksh_WAL
cvsctr_STN
cvsctr_WAL
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
CBWBrdgeSt_
EXDots
EXRedSmokePuff
EXSateliteHack1
EXthunderRadar
EXthunderWave
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is this not written as "EXthunderWave.tga" as per the original value in the INI file?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since the comparison was always without suffixes, so I did not capture them, I will include the suffixes for the reports.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would a "Texture.psd" also match for a "Texture.tga" ?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Indeed, assuming that Mod Builder converts it to dds/tga

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Typically yes, but Mod Builder can also build a "Texture.psd" as "AnotherTexture.dds", and I assume the script will not catch that.

Perhaps it would be worthwhile to check against files in Patch104pZH\.Build\RawBundleItems (the files generated before archiving into big files), but this would require building (all languages) before running the script and likely make it more complicated.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will the ModBundleOptionalItems.json file be sufficient for processing?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Currently ModBundleCoreItems.json and ModBundleOptionalItems.json.

You could try search through all files listed in ModJsonFiles.json and find texture and model targets that are not *.ext. Perhaps that would suffice.

GlassShard01
None
SMUDGE
TLRock01
TMCliff24a
TMSand06a
TMSand06c
TRStrtHoleCvr
TTGrasRock01a
TTGrasSand01a
TTSandRoad01a
TXGras02a
T_desert_A_01
T_desert_A_02
T_desert_A_03
T_desert_A_04
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
America_ScoreScreen
COB2_BackgroundSM
COB2_FrameSM
China2_BackgroundSM
China2_Frame
China2_FrameSM
China_ScoreScreen
GLA2_BackgroundSM
GLA2_Frame
GLA2_FrameSM
GLA_ScoreScreen
GeneralsChallengeMapInterface
MainMenuBackdrop
MainMenuBlackBorder
MutiPlayer_ScoreScreen
Skirmish_Load
USAMissionDemoLoadScreen
loadpage
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
NBPwrPlant_E.W3D antSlab_D.tga
Loading