1515 update_world_default_rendermode ,
1616)
1717from .sm64_texscroll import modifyTexScrollFiles , modifyTexScrollHeadersGroup
18- from .sm64_utility import export_rom_checks , starSelectWarning , update_actor_includes , writeMaterialHeaders
18+ from .sm64_utility import (
19+ END_IF_FOOTER ,
20+ ModifyFoundDescriptor ,
21+ export_rom_checks ,
22+ starSelectWarning ,
23+ update_actor_includes ,
24+ write_or_delete_if_found ,
25+ write_material_headers ,
26+ )
1927from .sm64_level_parser import parseLevelAtPointer
2028from .sm64_rom_tweaks import ExtendBank0x04
2129from typing import Tuple , Union , Iterable
6270 applyRotation ,
6371 toAlnum ,
6472 checkIfPathExists ,
65- writeIfNotFound ,
6673 overwriteData ,
6774 getExportDir ,
6875 writeMaterialFiles ,
@@ -196,7 +203,9 @@ def exportTexRectToC(dirPath, texProp, texDir, savePNG, name, exportToProject, p
196203 overwriteData ("const\s*u8\s*" , textures [0 ].name , data , seg2CPath , None , False )
197204
198205 # Append texture declaration to segment2.h
199- writeIfNotFound (seg2HPath , declaration , "#endif" )
206+ write_or_delete_if_found (
207+ Path (seg2HPath ), ModifyFoundDescriptor (declaration ), path_must_exist = True , footer = END_IF_FOOTER
208+ )
200209
201210 # Write/Overwrite function to hud.c
202211 overwriteData ("void\s*" , fTexRect .name , code , hudPath , projectExportData [1 ], True )
@@ -425,15 +434,15 @@ def sm64ExportF3DtoC(
425434 cDefFile .write (staticData .header )
426435 cDefFile .close ()
427436
428- update_actor_includes (headerType , groupName , Path (dirPath ), name , ["model.inc.c" ], ["header.h" ])
437+ update_actor_includes (headerType , groupName , Path (dirPath ), name , levelName , ["model.inc.c" ], ["header.h" ])
429438 fileStatus = None
430439 if not customExport :
431440 if headerType == "Actor" :
432441 if DLFormat != DLFormat .Static : # Change this
433- writeMaterialHeaders (
434- basePath ,
435- ' "actors/' + toAlnum (name ) + '/ material.inc.c"' ,
436- ' "actors/' + toAlnum (name ) + '/ material.inc.h"' ,
442+ write_material_headers (
443+ Path ( basePath ) ,
444+ Path ( "actors" ) / toAlnum (name ) / " material.inc.c" ,
445+ Path ( "actors" ) / toAlnum (name ) / " material.inc.h" ,
437446 )
438447
439448 texscrollIncludeC = '#include "actors/' + name + '/texscroll.inc.c"'
@@ -443,10 +452,10 @@ def sm64ExportF3DtoC(
443452
444453 elif headerType == "Level" :
445454 if DLFormat != DLFormat .Static : # Change this
446- writeMaterialHeaders (
455+ write_material_headers (
447456 basePath ,
448- ' "levels/' + levelName + "/" + toAlnum (name ) + '/ material.inc.c"' ,
449- ' "levels/' + levelName + "/" + toAlnum (name ) + '/ material.inc.h"' ,
457+ Path ( "levels" ) / levelName / toAlnum (name ) / " material.inc.c" ,
458+ Path ( "levels" ) / levelName / toAlnum (name ) / " material.inc.h" ,
450459 )
451460
452461 texscrollIncludeC = '#include "levels/' + levelName + "/" + name + '/texscroll.inc.c"'
0 commit comments