===================================================== ==Visual Editor - Room Positions Mode - Right Click== ===================================================== Export Room Positions to Text File: OutputRoomPositionsToTextFile() - exports room positions to text file - agreed Export Room Positions to Text File and Reexport Rooms: OutputFullLevelToFilesAndText() - export current level and room positions text file (will not reconvert rooms, changes made in current session will not be saved) - agreed, though if it only exports room0...n vtx and dl then why is it "Re"export and not just Export? Reexport Rooms and Export Bgfile: OutputFullLevelToFilesAndText() and OutputFullPortalFile() - reconvert all rooms to BG and save room positions text file - this is required for most level importing operations (will refresh visual window on export) - ok... why? why does this "seem" to import a level when that should be the job of "Import full Background File" - I think this function still needs explored for clarity since I have always found it misleading to have the process - Convert Obj to BG > Reexport Rooms and Export Bgfile (save as bg, select new bg) > Visual now shows new BG... these functions should be seperate - - OK.. I get it... OutputFullPortalFile() Portal = BG, and Export and Import are combined, so thats where the confusion comes from. So, my UI description change is right, "Export Rooms, Room Positions, BGFile and Re-Import" ----------------------------------------------------- Import One Room: ImportOneRoom() - import a single room from RoomVertices.bin/roomIndices.bin file - replace entire level with one room - agreed though shouldnt replace level. Import Full Background File: ImportFullPortalFile() - clears entire level, loads BG binary, decompresses and converts to visual - differs slightly per game but in general does the same thing - agreed and tested to work from fresh convert of obj. Convert New .obj of Room (Using Same Center): ConvertObjToFilesOptimized() - convert a obj to RoomVertices.bin/roomIndices.bin, does not import after converting - agree though should auto import otherwise what use is the room center ----------------------------------------------------- Export Room -> .obj: OutputRoomToObj() - exports selected room to obj (centered), vertex colors were broken for some reason, this has been fixed Export Room -> .obj (scaled): OutputRoomToObj() - same as above but scaled Export Room -> Game Format: OutputGERoom() - export a single room to RoomVertices.bin/roomIndices.bin (GE/internal format) Export Room -> (Original Vertices Only) Game Format: OutputGEOriginalVertices() - export a single room to RoomVertices.bin (GE/internal format) - Agree all ===================================================== =====Visual Editor - Portals Mode - Right Click====== ===================================================== Import Full Background File: ImportFullPortalFile() - same code as room position mode (see above) - agreed Export Full Background File: OutputFullPortalFile() - exports full background file, requires room positions text file before exporting - shouldnt require anything, should literally spit out .bgf Export Full Background File with Image Repl Map: OutputFullPortalFile() - same as above but transferAlpha flag is set to true (not sure what it does, I think it copies alpha values from Indices... ask SubDrag) - same as above. Image replacement was I think supposed to allow replacing bmp's with gif or png for alphamaps in modern 3D Modelers. ----------------------------------------------------- Import Portals from text file: ImportPortalsfromTxt() - reads text file and generates portals (replaces all portals, can import portals with more than 4 vertices) Import Portals from .obj: ImportPortalsfromObj() - convert obj to portals, does not replace all portals (adds to portals already in bg). has problems with converting more than 4 vertices per portal, however portal objs created by the editor will convert losslessly (survives round trip) - Agree All, but make both imports act same, either replace or add. ----------------------------------------------------- Export Portals to .obj: ExportPortalsToObj() - convert each portal to raw vertex Export Portals Scaled to .obj: ExportPortalsToObj() - Same as above but scaled Export Portals to text file: ExportPortalstoTxt() - fprintf every portal file to text file - Agree All ----------------------------------------------------- Import Extra Visibility from bin file: ImportVisibilityfromBin(), ParseVisibility() - fread raw binary file, parse to bg visibility logic - will replace current visibility for bg on import Export Extra Visibility from bin file: ExportVisibilitytoBin(), WriteVisibility() - fwrite raw binary file, nothing special - Agree All ===================================================== =======Edit Setup - Edit Paths - Dialog Window======= ===================================================== Import Sets: OnBnClickedImportsets() - clear setup's sets, parse text and relink all sets Export Sets: OnBnClickedExportsets() - fprintf entire setup's sets - Agree All ===================================================== ==========Visual Editor - Toolbar - Convert========== ===================================================== Convert Model File to Room (and add textures): OnConvertObjtogeroom(), AddTexturesToROMEnd(), UpdateImagesFromROM(), ConvertObjToFilesOptimized() - adds textures to ROM (using textures.txt input), load obj and save RoomVertices.bin/roomIndices.bin. will convert everything in obj to a RoomVertices.bin/roomIndices.bin (not sure if internal room names are required). Convert Model File to Room (if already added textures): OnConvertObjtogeroomnoreadd(), AddUsingReplacedTextures(), ConvertObjToFilesOptimized() - same as above but does not add new textures -agreed ----------------------------------------------------- Convert Model File to Level (and add textures): OnConvertConvert(), AddTexturesToROMEnd(), UpdateImagesFromROM(), ConvertObjToLevelWithRoomsOptimized() - adds textures to ROM (using textures.txt input), load obj and don't automatically export converted level. Why would you ever use this option over the export one? It doesn't make sense to import then require pressing 'Export Full Background File' just to see the imported level. Is there a legit reason to keep this feature? Convert Model File to Level (if already added textures): OnConvertConvert33314swap(), AddUsingReplacedTextures(), ConvertObjToLevelWithRoomsOptimized() - same as above but does not add new textures - agree with your comment, disagree with description since no bgf is ever created. - So yeah, this option is Depretiated ----------------------------------------------------- Convert Model File to Level and export (and add textures): OnConvertObjWithLevelAndAddTextures(), AddTexturesToROMEnd(), UpdateImagesFromROM(), ConvertObjToLevelWithRoomsOptimized(), OutputFullPortalFile() - same as above but it automatically opens level after converting, uses current bg as filename. makes a big mess of input directory, really annoying to fix due to the many hardcoded file locations, will fix this after V4 beta release Convert Model File to Level and export (if already added textures): OnConvertObjWithLevelAndAlreadyAddTextures(), AddUsingReplacedTextures(), ConvertObjToLevelWithRoomsOptimized(), OutputFullPortalFile() - same as above but does not add new textures - Disagree with UI, Albeit that the code says "OutputFullPortalFile" and nowhere has "import", the actual act of using this button is to >Import< the converted obj - I do agree with your comments though, makes a big mess instead of one neat bgf file - Aha!, As figured out above, OutputFullPortalFile actually has Import at end so My UI Suggestion stands "Convert Model File to BG File and Import" ===================================================== ======Visual Editor - Light Mode - Right Click======= ===================================================== Output Lighting File: ExportLightSourceToFile() - fprintf LightSources.txt, nothing special Import Lighting File: ImportLightSourcefromFile(), RecalculateLightNormals(), LightWholeLevel() - parse input into light settings, recalculate AO if required ----------------------------------------------------- Output Light Positions .obj: ExportLightSourceToObj() - fprintf lights to obj, representing a box per light Import Light Positions .obj: ImportLightSourcefromObj() - parse obj to light positions, does not replace light positions, only adds new lights with default settings ----------------------------------------------------- Output Light Beams Obj (Area/Spot Only): ExportLightBeamsToObj() - export every light's light beam as a 3d model. e.g. a spotlight exported will appear as a cone ----------------------------------------------------- Import Light Template: ImportLightSourcefromFile(), LightWholeLevel() - uses a different ImportLightSourcefromFile() function thanks to C++ overloading. doesn't recalculate lighting on import - All above "Output" should read "Export" then Agree All ===================================================== =========Action Block Editor - Dialog Window========= ===================================================== Import Block: OnBnClickedImportblock(), ImportActionBlock(), AddActionBlockSub() - read file and add command for every line, does not clear block before import Export Block: OnBnClickedExportblock(), ExportActionBlock() - raw fprintf for every command to action.act - Agree All ===================================================== =========Game Configuration - Stage Options========== ===================================================== Recompress All Files (Warning Slow): OnBnClickedRecompressallfiles(), DeleteFileAndStripROM(), Write21990AfterInjection() - delete debug data and recompress all files with gzip level 9 Save File: OnBnClickedSavefilebutton() - saves exported file with correct extension - I think should read "Export File" since your not saving changes (like a word doc) but Exporting from rom to Disk Recompress File: OnBnClickedRecompressfile(), DeleteDebugData(), SaveFile(), InjectFileIntoROM(), DeleteFile(), Write21990AfterInjection() - export file, rezip with highest level and inject and update 21990 filetable with new positions ===================================================== =========Briefing Text Editor - Dialog Window======== ===================================================== Import Uncompressed File: OnBnClickedImportbriefing() - raw fread from buffer, set to briefingBank variable Export Uncompressed File: OnBnClickedExportbriefing(), WriteBriefingUncompressed() - raw fwrite from briefingBank Export Compressed File: OnBnClickedExport1172briefing(), WriteBriefingUncompressed() - same as above but compresses after saving - Agree All. Note on compressed file, currently exports as "*.1172" instead of just name (Remember the Z at end indicates compressed) ===================================================== ======Visual Editor - Object Mode - Right Click====== ===================================================== Output Models from Level to .obj: OutputObjectModelsToObj(), OutputGuardToObj(), Generate27ObjectMatrix(), OutputObjectToObj() - every drawn object (but inverted), only exports as obj Output Models from Scaled Level to .obj: OutputObjectModelsToObj(), OutputGuardToObj(), Generate27ObjectMatrix(), OutputObjectToObj() - same as above but scaled ----------------------------------------------------- Output Presets to .obj: OutputPresetsfromObj() - fprintf every preset to custom formatted obj file. presets are made of single vertices Output Path Sets to .obj: OutputPathPresetstoObj() - fprintf every preset to custom formatted obj file. sets are made up of 2 point lines, connected to each other to form a level set. the same technique rare used in multigen Output Presets (Objects Only) to .obj: OutputPresetsfromObj() - same as 'Output Presets to .obj' but only exports presets for objects Output Presets to .obj Lower To Clipping: same as 'Output Presets to .obj' but all presets are lowered to clipping, ycoord calls Lower00PresetToClipping() before fprintf Output Path Sets to .obj Lower To Clipping: same as 'Output Path Sets to .obj' but all presets are lowered to clipping, ycoord calls Lower00PresetToClipping() before fprintf Output Presets (Objects Only) to .obj Lower to Clipping: same as 'Output Presets (Objects Only) to .obj' but all presets are lowered to clipping, ycoord calls Lower00PresetToClipping() before fprintf - All "Output" should read "Export" and I beleve all "Clipping" should read "Stand Tiles" (GE called them Stan [Dr Doak said that meant "Stand"], PD called them Tiles - though Debug still uses Stan) ===================================================== =====Visual Editor - Clipping Mode - Right Click===== ===================================================== Input Clipping File: InputClippingFile()/InputPDClippingFile(), ReadClippingData(), ReclipNewTris() (PD only), RedoMainClippingBuffer() - raw fread from input and relink all clipping Output Clipping File: OutputClippingFile() - raw fwrite to file from clipping, uses current clipping as filename Input Additional Clipping File: InputClippingFileAdditional(), ReadClippingDataAdditional(), ReclipNewTris(), RedoMainClippingBuffer(), RelinkAllPresets() - add external clipping file to current level's clipping ----------------------------------------------------- Try and Force Clipping To Room: ChangeClippingRoomsToCorrectRooms(), ChangeClipRoom() - check room parameter to see if clipping should belong to current room, if not change room for tile Import Clipping Backup File: InputClippingFileBackup(), RedoMainClippingBuffer() - import backup clipping file, will not reclip. opened folder is from last location, so not that useful unless you know what you're doing - Again, as above, Output = Export