1 /*
2  * OpenClonk, http://www.openclonk.org
3  *
4  * Copyright (c) 1998-2000, Matthes Bender
5  * Copyright (c) 2001-2009, RedWolf Design GmbH, http://www.clonk.de/
6  * Copyright (c) 2009-2016, The OpenClonk Team and contributors
7  *
8  * Distributed under the terms of the ISC license; see accompanying file
9  * "COPYING" for details.
10  *
11  * "Clonk" is a registered trademark of Matthes Bender, used with permission.
12  * See accompanying file "TRADEMARK" for details.
13  *
14  * To redistribute this file separately, substitute the full license texts
15  * for the above references.
16  */
17 
18 /* Known component file names */
19 
20 #ifndef INC_C4Components
21 #define INC_C4Components
22 
23 //========================= Component File Names ============================================
24 
25 #define C4CFN_Material        "Material.ocg"
26 #define C4CFN_Sound           "Sound.ocg"
27 #define C4CFN_SoundSubgroups  "*.ocg"
28 #define C4CFN_Graphics        "Graphics.ocg"
29 #define C4CFN_System          "System.ocg"
30 #define C4CFN_Music           "Music.ocg"
31 #define C4CFN_Extra           "Extra.ocg"
32 #define C4CFN_Languages       "Language.ocg"
33 #define C4CFN_Template        "Template.ocg"
34 
35 #define C4CFN_Savegames       "Savegames.ocf"
36 #define C4CFN_Records         "Records.ocf"
37 
38 #define C4CFN_ScenarioSections "Sect*.ocg"
39 
40 #define C4CFN_Objects         "Objects.ocd"
41 
42 #define C4CFN_ScenarioCore    "Scenario.txt"
43 #define C4CFN_ScenarioParameterDefs "ParameterDefs.txt"
44 #define C4CFN_FolderCore      "Folder.txt"
45 #define C4CFN_PlayerInfoCore  "Player.txt"
46 #define C4CFN_DefCore         "DefCore.txt"
47 #define C4CFN_ObjectInfoCore  "ObjectInfo.txt"
48 #define C4CFN_ParticleCore    "Particle.txt"
49 #define C4CFN_LinkCore        "Link.txt"
50 #define C4CFN_UpdateCore      "AutoUpdate.txt"
51 #define C4CFN_UpdateEntries   "GRPUP_Entries.txt"
52 
53 #define C4CFN_UpdateGroupExtension ".ocu"
54 #define C4CFN_UpdateProgram   "c4group"
55 #define C4CFN_UpdateProgramLibs "*.dll"
56 
57 #define C4CFN_Map             "Map.bmp"
58 #define C4CFN_MapFg           "MapFg.bmp"
59 #define C4CFN_MapBg           "MapBg.bmp"
60 #define C4CFN_Landscape       "Landscape.bmp"
61 #define C4CFN_LandscapeFg     "LandscapeFg.bmp"
62 #define C4CFN_LandscapeBg     "LandscapeBg.bmp"
63 #define C4CFN_DiffLandscape   "DiffLandscape.bmp"
64 #define C4CFN_DiffLandscapeBkg "DiffLandscapeBkg.bmp"
65 #define C4CFN_Sky             "Sky"
66 #define C4CFN_Script          "Script.c|Script%s.c|C4Script%s.c"
67 #define C4CFN_MapScript       "Map.c"
68 #define C4CFN_ScriptStringTbl "StringTbl.txt|StringTbl%s.txt"
69 #define C4CFN_AnyScriptStringTbl "StringTbl*.txt"
70 #define C4CFN_Info            "Info.txt"
71 #define C4CFN_Author          "Author.txt"
72 #define C4CFN_Version         "Version.txt"
73 #define C4CFN_Game            "Game.txt"
74 #define C4CFN_ScenarioObjectsScript "Objects.c"
75 #define C4CFN_PXS             "PXS.ocb"
76 #define C4CFN_MassMover       "MassMover.ocb"
77 #define C4CFN_CtrlRec         "CtrlRec.ocb"
78 #define C4CFN_CtrlRecText     "CtrlRec.txt"
79 #define C4CFN_LogRec          "Record.log"
80 #define C4CFN_TexMap          "TexMap.txt"
81 #define C4CFN_MatMap          "MatMap.txt"
82 #define C4CFN_Title           "Title%s.txt|Title.txt"
83 #define C4CFN_WriteTitle      "Title.txt" // file that is generated if a title is set automatically
84 #define C4CFN_ScenarioTitle   "Title"
85 #define C4CFN_ScenarioIcon    "Icon.bmp"
86 #define C4CFN_IconPNG         "Icon.png"
87 #define C4CFN_ScenarioObjects "Objects.txt"
88 #define C4CFN_ScenarioDesc    "Desc%s.txt"
89 #define C4CFN_DefMaterials    "*.material"
90 #define C4CFN_Achievements    "Achv*.png"
91 
92 #define C4CFN_DefMesh              "Graphics.mesh"
93 #define C4CFN_DefMeshXml           C4CFN_DefMesh ".xml"
94 #define C4CFN_DefSkeleton          "*.skeleton"
95 #define C4CFN_DefSkeletonXml       C4CFN_DefSkeleton ".xml"
96 #define C4CFN_DefGraphicsExMesh    "Graphics*.mesh"
97 #define C4CFN_DefGraphicsExMeshXml C4CFN_DefGraphicsExMesh ".xml"
98 
99 #define C4CFN_DefGraphics          "Graphics.png"
100 #define C4CFN_ClrByOwner           "Overlay.png"
101 #define C4CFN_NormalMap            "Normal.png"
102 #define C4CFN_DefGraphicsEx        "Graphics*.png"
103 #define C4CFN_ClrByOwnerEx         "Overlay*.png"
104 #define C4CFN_NormalMapEx          "Normal*.png"
105 
106 #define C4CFN_DefGraphicsScaled    "Graphics.*.png"
107 #define C4CFN_ClrByOwnerScaled     "Graphics.*.png"
108 #define C4CFN_NormalMapScaled      "Normal.*.png"
109 
110 #define C4CFN_DefDesc         "Desc%s.txt"
111 #define C4CFN_BigIcon         "BigIcon.png"
112 #define C4CFN_UpperBoard      "UpperBoard"
113 #define C4CFN_Logo            "Logo"
114 #define C4CFN_MoreMusic       "MoreMusic.txt"
115 #define C4CFN_DynLandscape    "Landscape.txt"
116 #define C4CFN_ClonkNames      "ClonkNames%s.txt|ClonkNames.txt"
117 #define C4CFN_ClonkNameFiles  "ClonkNames*.txt"
118 #define C4CFN_RankNames       "Rank%s.txt|Rank.txt"
119 #define C4CFN_RankNameFiles   "Rank*.txt"
120 #define C4CFN_RankFacesPNG    "Rank.png"
121 #define C4CFN_ClonkRank       "Rank.png" // custom rank in info file: One rank image only
122 #define C4CFN_SolidMask       "SolidMask.png"
123 #define C4CFN_LeagueInfo      "League.txt" // read by frontend only
124 #define C4CFN_PlayerInfos     "PlayerInfos.txt"
125 #define C4CFN_SavePlayerInfos "SavePlayerInfos.txt"
126 #define C4CFN_RecPlayerInfos  "RecPlayerInfos.txt"
127 #define C4CFN_Teams           "Teams.txt"
128 #define C4CFN_Parameters      "Parameters.txt"
129 #define C4CFN_RoundResults    "RoundResults.txt"
130 #define C4CFN_PlayerControls  "PlayerControls.txt"
131 #define C4CFN_LandscapeShader "LandscapeShader.c"
132 #define C4CFN_LandscapeScaler "Scaler.png"
133 #define C4CFN_MaterialShapeFiles "_Shape.png"
134 
135 #define C4CFN_MapFolderData   "FolderMap.txt"
136 #define C4CFN_MapFolderBG     "FolderMap"
137 
138 #define C4CFN_Language        "Language*.txt"
139 #define C4CFN_KeyConfig       "KeyConfig.txt"
140 
141 #define C4CFN_Log             "OpenClonk.log"
142 #define C4CFN_LogEx           "OpenClonk%d.log" // created if regular logfile is in use
143 #define C4CFN_LogShader       "OpenClonkShaders.log" // created in editor mode to dump shader code
144 #define C4CFN_Intro           "Clonk4.avi"
145 #define C4CFN_Names           "Names.txt"
146 #define C4CFN_Titles          "Title*.txt|Title.txt"
147 #define C4CFN_DefNameFiles    "Names*.txt|Names.txt"
148 #define C4CFN_EditorGeometry  "Editor.geometry"
149 #define C4CFN_DefaultScenarioTemplate "Empty.ocs"
150 
151 #define C4CFN_TempMusic       "~Music.tmp"
152 #define C4CFN_TempMusic2      "~Music2.tmp"
153 #define C4CFN_TempSky         "~Sky.tmp"
154 #define C4CFN_TempMapFg       "~MapFg.tmp"
155 #define C4CFN_TempMapBg       "~MapBg.tmp"
156 #define C4CFN_TempLandscape   "~Landscape.tmp"
157 #define C4CFN_TempLandscapeBkg "~LandscapeBkg.tmp"
158 #define C4CFN_TempPXS         "~PXS.tmp"
159 #define C4CFN_TempTitle       "~Title.tmp"
160 #define C4CFN_TempCtrlRec     "~CtrlRec.tmp"
161 #define C4CFN_TempReSync      "~ReSync.tmp"
162 #define C4CFN_TempPlayer      "~plr.tmp"
163 #define C4CFN_TempRoundResults "~C4Results.tmp"
164 #define C4CFN_TempLeagueInfo  "~league.tmp"
165 
166 #define C4CFN_DefFiles        "*.ocd"
167 #define C4CFN_GenericGroupFiles "*.ocg"
168 #define C4CFN_PlayerFiles     "*.ocp"
169 #define C4CFN_MaterialFiles   "*.ocm"
170 #define C4CFN_ObjectInfoFiles "*.oci"
171 #define C4CFN_MusicFiles      "*.ogg"
172 #define C4CFN_SoundFiles      "*.wav|*.ogg"
173 #define C4CFN_PNGFiles        "*.png"
174 #define C4CFN_BitmapFiles     "*.bmp"
175 #define C4CFN_ScenarioFiles   "*.ocs"
176 #define C4CFN_FolderFiles     "*.ocf"
177 #define C4CFN_QueueFiles      "*.c4q"
178 #define C4CFN_AnimationFiles  "*.ocv"
179 #define C4CFN_KeyFiles        "*.c4k"
180 #define C4CFN_ScriptFiles     "*.c"
181 #define C4CFN_ImageFiles      "*.png|*.bmp|*.jpeg|*.jpg"
182 #define C4CFN_FontFiles       "*.fon|*.fnt|*.ttf|*.ttc|*.fot|*.otf"
183 #define C4CFN_ShaderFiles     "*.glsl"
184 
185 //================================= File Load Sequences ================================================
186 
187 // TODO: proper sorting of scaled def graphics (once we know what order we might load them in...)
188 
189 #define C4FLS_Scenario  "Loader*.bmp|Loader*.png|Loader*.jpeg|Loader*.jpg|Fonts.txt|Scenario.txt|Title*.txt|Info.txt|Desc*.txt|Icon.png|Icon.bmp|Achv*.png|Game.txt|StringTbl*.txt|ParameterDefs.txt|Teams.txt|Parameters.txt|Info.txt|Sect*.ocg|Music.ocg|*.mid|*.wav|Desc*.txt|Title.png|Title.jpg|*.ocd|Script.c|Script*.c|Map.c|Objects.c|System.ocg|Material.ocg|MatMap.txt|Map.bmp|MapFg.bmp|MapBg.bmp|Landscape.bmp|LandscapeFg.bmp|LandscapeBg.bmp|" C4CFN_DiffLandscape "|" C4CFN_DiffLandscapeBkg "|Sky.bmp|Sky.png|Sky.jpeg|Sky.jpg|PXS.ocb|MassMover.ocb|CtrlRec.ocb|Strings.txt|Objects.txt|RoundResults.txt|Author.txt|Version.txt|Names.txt"
190 #define C4FLS_Section   "Scenario.txt|Game.txt|Map.bmp|MapFg.bmp|MapBg.bmp|Landscape.bmp|LandscapeFg.bmp|LandscapeBg.bmp|Sky.bmp|Sky.png|Sky.jpeg|Sky.jpg|PXS.ocb|MassMover.ocb|CtrlRec.ocb|Strings.txt|Objects.txt|Objects.c"
191 #define C4FLS_SectionLandscape "Scenario.txt|Map.bmp|MapFg.bmp|MapBg.bmp|Landscape.bmp|LandscapeFg.bmp|LandscapeBg.bmp|PXS.ocb|MassMover.ocb"
192 #define C4FLS_SectionObjects   "Strings.txt|Objects.txt|Objects.c"
193 #define C4FLS_Def       "*.glsl|*.png|*.bmp|*.jpeg|*.jpg|*.material|Particle.txt|DefCore.txt|*.wav|*.ogg|*.skeleton|Graphics.mesh|*.mesh|StringTbl*.txt|Script.c|Script*.c|C4Script.c|Names*.txt|Title*.txt|ClonkNames.txt|Rank.txt|Rank*.txt|Desc*.txt|Author.txt|Version.txt|*.ocd"
194 #define C4FLS_Player    "Player.txt|BigIcon.png|*.oci"
195 #define C4FLS_Object    "ObjectInfo.txt"
196 #define C4FLS_Folder    "Folder.txt|Title*.txt|Info.txt|Desc*.txt|Title.png|Title.jpg|Icon.png|Icon.bmp|Author.txt|Version.txt|StringTbl*.txt|ParameterDefs.txt|Achv*.png|*.ocs|Loader*.bmp|Loader*.png|Loader*.jpeg|Loader*.jpg|FolderMap.txt|FolderMap.png"
197 #define C4FLS_Material  "TexMap.txt|*.ocm|*.jpeg|*.jpg|*.bmp|*.png"
198 #define C4FLS_Graphics  "Loader*.bmp|Loader*.png|Loader*.jpeg|Loader*.jpg|*.glsl|Font*.png"\
199             "|GUIProgress.png|Endeavour.ttf|GUICaption.png|GUIButton.png|GUIButtonDown.png|GUIButtonHighlight.png|GUIButtonHighlightRound.png|GUIIcons.png|GUIIcons2.png|GUIScroll.png|GUIContext.png|GUISubmenu.png|GUICheckBox.png|GUIBigArrows.png"\
200             "|Control.png|ClonkSkins.png|Fire.png|Background.png|Flag.png|Crew.png|Wealth.png|Player.png|Rank.png|Captain.png|Cursor.png|SelectMark.png|MenuSymbol.png|Menu.png|Logo.png|Construction.png|Energy.png|Options.png|UpperBoard.png|Arrow.png|Exit.png|Hand.png|Gamepad.png|Build.png|TransformKnob.png|Achv*.png"\
201             "|StartupMainMenuBG.*|StartupScenSelBG.*|StartupPlrSelBG.*|StartupPlrPropBG.*|StartupNetworkBG.*|StartupAboutBG.*|StartupBigButton.png|StartupBigButtonDown.png|StartupBookScroll.png|StartupContext.png|StartupScenSelIcons.png|StartupScenSelTitleOv.png|StartupDlgPaper.png|StartupOptionIcons.png|StartupTabClip.png|StartupNetGetRef.png|StartupLogo.png"
202 #define C4FLS_Objects   "Names*.txt|Desc*.txt|*.ocd"
203 #define C4FLS_System    "*.hlp|*.cnt|Language*.txt|*.fon|*.fnt|*.ttf|*.ttc|*.fot|*.otf|Fonts.txt|StringTbl*.txt|PlayerControls.txt|*.c|Names.txt"
204 #define C4FLS_Sound     C4CFN_SoundFiles "|" C4CFN_SoundSubgroups
205 #define C4FLS_Music     C4CFN_MusicFiles
206 
207 #endif
208