Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <float.h>
- #include <math.h>
- #include <fstream>
- #include <conio.h>
- #include <stdlib.h>
- #include <time.h>
- using namespace std;
- int hasIPLsameIDEID (int iplID);
- int GetTotalLinesFromAFile (string _file);
- struct InternalIDEData
- {
- int ID;
- int oID;
- char DFF[256];
- char TXD[256];
- int idk;
- int idk_2;
- };
- struct InternalIPLData
- {
- bool assigned = false;
- int ID;
- char Object[256];
- float x;
- float y;
- float z;
- float rx;
- float ry;
- float rz;
- int idk;
- float idk_2;
- int idk_3;
- };
- struct MapData
- {
- string IDE_name;
- string IPL_name;
- string IDE_temp;
- string IPL_temp;
- int ModelStart = 0;
- InternalIDEData IDE_data[1024];
- InternalIPLData IPL_data[1024];
- ifstream IDE;
- ifstream IPL;
- FILE* replaceFile;
- FILE* mapFile;
- FILE* unassignedIPL;
- FILE* meta;
- };
- MapData mapFiles[10];
- int IDEF = 0;
- int IPLF = 0;
- FILE* logfile;
- int main()
- {
- srand(time(0));
- system ("color A");
- cout<<"Type IDE name: ";
- getline (cin, mapFiles[0].IDE_name);
- cout<<"Type IPL name: ";
- getline (cin, mapFiles[0].IPL_name);
- mapFiles[0].IDE.open ((mapFiles[0].IDE_name+".ide").c_str());
- mapFiles[0].IPL.open ((mapFiles[0].IPL_name+".ipl").c_str());
- cout<<"Choose a model to start counting: ";
- cin>>mapFiles[0].ModelStart;
- logfile = fopen ("log.txt", "w");
- //int IDELines = GetTotalLinesFromAFile(mapFiles[0].IDE_name+".ide");
- //int IPLLines = GetTotalLinesFromAFile(mapFiles[0].IPL_name+".ipl");
- printf ("Getting IDE data...\n");
- while (getline(mapFiles[0].IDE, mapFiles[0].IDE_temp))
- {
- if (sscanf (mapFiles[0].IDE_temp.c_str(), "%i , %s , %s , %i , %i",
- &mapFiles[0].IDE_data[IDEF].oID,
- &mapFiles[0].IDE_data[IDEF].DFF,
- &mapFiles[0].IDE_data[IDEF].TXD,
- &mapFiles[0].IDE_data[IDEF].idk,
- &mapFiles[0].IDE_data[IDEF].idk_2))
- {
- mapFiles[0].IDE_data[IDEF].ID = mapFiles[0].ModelStart;
- fprintf (logfile, "Getting IDE Data... Original ID: %i - Modified ID: %i - Model Name: %s - Texture name: %s\n", mapFiles[0].IDE_data[IDEF].oID,
- mapFiles[0].IDE_data[IDEF].ID,
- mapFiles[0].IDE_data[IDEF].DFF,
- mapFiles[0].IDE_data[IDEF].TXD);
- IDEF ++;
- mapFiles[0].ModelStart++;
- Sleep (rand() % 10 + 5);
- }
- }
- printf ("IDE Data Successfully Acquired!...\n\n");
- printf ("Getting IPL data...\n");
- while (getline(mapFiles[0].IPL, mapFiles[0].IPL_temp))
- {
- if (sscanf (mapFiles[0].IPL_temp.c_str(), "%i , %s , %i , %f , %f , %f , %f , %f , %f , %f , %i",
- &mapFiles[0].IPL_data[IPLF].ID,
- &mapFiles[0].IPL_data[IPLF].Object,
- &mapFiles[0].IPL_data[IPLF].idk,
- &mapFiles[0].IPL_data[IPLF].x,
- &mapFiles[0].IPL_data[IPLF].y,
- &mapFiles[0].IPL_data[IPLF].z,
- &mapFiles[0].IPL_data[IPLF].rx,
- &mapFiles[0].IPL_data[IPLF].ry,
- &mapFiles[0].IPL_data[IPLF].rz,
- &mapFiles[0].IPL_data[IPLF].idk_2,
- &mapFiles[0].IPL_data[IPLF].idk_3))
- {
- int iplIDFix = hasIPLsameIDEID(mapFiles[0].IPL_data[IPLF].ID);
- if (iplIDFix > 0)
- {
- mapFiles[0].IPL_data[IPLF].ID = iplIDFix;
- mapFiles[0].IPL_data[IPLF].assigned = true;
- }
- fprintf (logfile, "Getting IPL Data... ID: %i - Object Name: %s - Assigned: %i\n", mapFiles[0].IPL_data[IPLF].ID,
- mapFiles[0].IPL_data[IPLF].Object,
- mapFiles[0].IPL_data[IPLF].assigned);
- IPLF ++;
- }
- Sleep (rand() % 10 + 5);
- }
- printf ("IPL Data Successfully Acquired!...\n\n");
- mapFiles[0].IDE.close ();
- mapFiles[0].IPL.close ();
- /// CREATE NEW FILES
- /// CREATE NEW FILES
- mapFiles[0].replaceFile = fopen ("engine.lua", "w");
- mapFiles[0].mapFile = fopen ("map.lua", "w");
- mapFiles[0].unassignedIPL = fopen ("IPLObjects_Unassigned.lua", "w");
- mapFiles[0].meta = fopen ("meta.xml", "w");
- ///REPLACING FILE
- ///REPLACING FILE
- printf ("Creating file (engine.lua)...\n");
- fprintf (logfile, "Creating files (engine.lua)...\n");
- fprintf (mapFiles[0].replaceFile, "data = \n");
- fprintf (mapFiles[0].replaceFile, "{\n");
- for (int a = 0; a < IDEF; a++)
- {
- fprintf (mapFiles[0].replaceFile, "\t{id=%i, name='%s', texture='%s', useCol=%s, lod=%i},\n", mapFiles[0].IDE_data[a].ID,
- mapFiles[0].IDE_data[a].DFF,
- mapFiles[0].IDE_data[a].TXD,
- "true",
- mapFiles[0].IDE_data[a].ID);
- Sleep (rand() % 10 + 5);
- }
- fprintf (mapFiles[0].replaceFile, "}\n\n"); fprintf (mapFiles[0].replaceFile, "function %s ()\n", mapFiles[0].IDE_name.c_str());
- fprintf (mapFiles[0].replaceFile, "\tfor key, v in ipairs (data) do\n");
- fprintf (mapFiles[0].replaceFile, "\t\tif engineImportTXD ( engineLoadTXD (':Graphics/txd/'..(v.texture)..'.txd'), v.id ) then\n");
- fprintf (mapFiles[0].replaceFile, "\t\t\tengineReplaceModel ( engineLoadDFF (':Graphics/dff/'..(v.name)..'.dff', v.id ), v.id )\n");
- fprintf (mapFiles[0].replaceFile, "\t\t\tif v.useCol == true then\n");
- fprintf (mapFiles[0].replaceFile, "\t\t\t\tengineReplaceCOL ( engineLoadCOL (':Graphics/col/'..(v.name)..'.col', v.id ), v.id )\n");
- fprintf (mapFiles[0].replaceFile, "\t\t\tend\n");
- fprintf (mapFiles[0].replaceFile, "\t\telse\n");
- fprintf (mapFiles[0].replaceFile, "\t\t\tengineImportTXD ( engineLoadTXD (':Graphics/txd/'..(v.texture)..'.txd'), v.id )\n");
- fprintf (mapFiles[0].replaceFile, "\t\t\tengineReplaceModel ( engineLoadDFF (':Graphics/dff/'..(v.name)..'.dff', v.id ), v.id )\n");
- fprintf (mapFiles[0].replaceFile, "\t\t\tif v.useCol == true then\n");
- fprintf (mapFiles[0].replaceFile, "\t\t\t\tengineReplaceCOL ( engineLoadCOL (':Graphics/col/'..(v.name)..'.col', v.id ), v.id )\n");
- fprintf (mapFiles[0].replaceFile, "\t\t\tend\n");
- fprintf (mapFiles[0].replaceFile, "\t\tend\n");
- fprintf (mapFiles[0].replaceFile, "\tend\n");
- fprintf (mapFiles[0].replaceFile, "\tsetLOD ()\n");
- fprintf (mapFiles[0].replaceFile, "end\n");
- fprintf (mapFiles[0].replaceFile, "addEventHandler('onClientResourceStart', getResourceRootElement(getThisResource()), %s)\n\n", mapFiles[0].IDE_name.c_str());
- fprintf (mapFiles[0].replaceFile, "function setLOD ()\n");
- fprintf (mapFiles[0].replaceFile, "\tfor _, v in ipairs (data) do\n");
- fprintf (mapFiles[0].replaceFile, "\t\tfor _, object in ipairs (getElementsByType('object')) do\n");
- fprintf (mapFiles[0].replaceFile, "\t\t\tif not v.lod == false then\n");
- fprintf (mapFiles[0].replaceFile, "\t\t\t\tlocal mdl = getElementModel(object)\n");
- fprintf (mapFiles[0].replaceFile, "\t\t\t\tif mdl == v.id then\n");
- fprintf (mapFiles[0].replaceFile, "\t\t\t\t\tlocal lod = getLODModelFromID (v.lod)\n");
- fprintf (mapFiles[0].replaceFile, "\t\t\t\t\tif lod then\n");
- fprintf (mapFiles[0].replaceFile, "\t\t\t\t\t\tsetLowLODElement ( object, lod )\n");
- fprintf (mapFiles[0].replaceFile, "\t\t\t\t\t\tengineSetModelLODDistance ( mdl, 1000 )\n");
- fprintf (mapFiles[0].replaceFile, "\t\t\t\t\t\toutputDebugString('LOD '..(v.lod)..' applied to '..mdl..' successfully')\n");
- fprintf (mapFiles[0].replaceFile, "\t\t\t\t\tend\n");
- fprintf (mapFiles[0].replaceFile, "\t\t\t\tend\n");
- fprintf (mapFiles[0].replaceFile, "\t\t\tend\n");
- fprintf (mapFiles[0].replaceFile, "\t\tend\n");
- fprintf (mapFiles[0].replaceFile, "\tend\n");
- fprintf (mapFiles[0].replaceFile, "end\n\n");
- fprintf (mapFiles[0].replaceFile, "function getLODModelFromID (lod)\n");
- fprintf (mapFiles[0].replaceFile, "\tfor _, object in ipairs (getElementsByType('object')) do\n");
- fprintf (mapFiles[0].replaceFile, "\t\tlocal mdl = getElementModel(object)\n");
- fprintf (mapFiles[0].replaceFile, "\t\tif mdl == lod then\n");
- fprintf (mapFiles[0].replaceFile, "\t\t\treturn object\n");
- fprintf (mapFiles[0].replaceFile, "\t\tend\n");
- fprintf (mapFiles[0].replaceFile, "\tend\n");
- fprintf (mapFiles[0].replaceFile, "\treturn false\n");
- fprintf (mapFiles[0].replaceFile, "end");
- fprintf (logfile, "engine.lua created successfully!\n");
- printf ("Engine.lua successfully created!\n\n");
- ///MAPS FILES
- ///MAPS FILES
- fprintf (logfile, "Creating map files...\n");
- printf ("Creating map files (map.lua, Unassigned_IPLObjects.lua)...\n");
- fprintf (mapFiles[0].unassignedIPL, "Objects no assigned on the IDE file\n");
- for (int b = 0; b < IPLF; b++)
- {
- if (mapFiles[0].IPL_data[b].assigned)
- fprintf (mapFiles[0].mapFile, "createObject (%i, %f, %f, %f, %f, %f, %f)\n", mapFiles[0].IPL_data[b].ID,
- mapFiles[0].IPL_data[b].x,
- mapFiles[0].IPL_data[b].y,
- mapFiles[0].IPL_data[b].z,
- mapFiles[0].IPL_data[b].rx,
- mapFiles[0].IPL_data[b].ry,
- mapFiles[0].IPL_data[b].rz);
- else
- fprintf (mapFiles[0].unassignedIPL, "createObject (%i, %f, %f, %f, %f, %f, %f)\n", mapFiles[0].IPL_data[b].ID,
- mapFiles[0].IPL_data[b].x,
- mapFiles[0].IPL_data[b].y,
- mapFiles[0].IPL_data[b].z,
- mapFiles[0].IPL_data[b].rx,
- mapFiles[0].IPL_data[b].ry,
- mapFiles[0].IPL_data[b].rz);
- Sleep (rand() % 10 + 5);
- }
- fprintf (logfile, "Map files created successfully!\n");
- printf ("Map files created successfully!\n\n");
- fprintf (logfile, "Creating file (meta.xml)...\n");
- printf ("Creating file (meta.xml)...\n");
- fprintf (mapFiles[0].meta, "<meta>\n");
- fprintf (mapFiles[0].meta, "\t<script src='map.lua' type='server'/>\n");
- fprintf (mapFiles[0].meta, "\t<script src='engine.lua' type='client'/>\n");
- fprintf (mapFiles[0].meta, "\t<script src='IPLObjects_Unassigned.lua' type='server'/>\n\n");
- for (int d = 0; d < IDEF; d++)
- {
- fprintf (mapFiles[0].meta, "\t<file src='dff/%s.dff' type='client'/>\n", mapFiles[0].IDE_data[d].DFF);
- fprintf (mapFiles[0].meta, "\t<file src='col/%s.col' type='client'/>\n", mapFiles[0].IDE_data[d].DFF);
- fprintf (mapFiles[0].meta, "\t<file src='txd/%s.txd' type='client'/>\n\n", mapFiles[0].IDE_data[d].TXD);
- Sleep (rand() % 10 + 5);
- }
- fprintf (mapFiles[0].meta, "</meta>");
- fprintf (logfile, "meta.xml created successfully!\n");
- printf ("meta.xml created successfully!\n\n");
- fclose (mapFiles[0].replaceFile);
- fclose (mapFiles[0].mapFile);
- fclose (mapFiles[0].unassignedIPL);
- fclose (mapFiles[0].meta);
- fclose (logfile);
- cout<<"PROCESS COMPLETED! Press any key to close."<<endl;
- getch ();
- return 0;
- }
- int GetTotalLinesFromAFile (string _file)
- {
- int lines = 0;
- string line;
- ifstream tempFile;
- tempFile.open (_file.c_str());
- while (getline(tempFile, line))
- {
- lines++;
- }
- tempFile.close ();
- return lines;
- }
- int hasIPLsameIDEID (int iplID)
- {
- for (int i = 0; i < IDEF; i++)
- {
- if (mapFiles[0].IDE_data[i].oID == iplID)
- {
- return mapFiles[0].IDE_data[i].ID;
- }
- }
- return -1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement