Index: /AE/Installer/trunk/source/methods.h
===================================================================
--- /AE/Installer/trunk/source/methods.h	(revision 292)
+++ /AE/Installer/trunk/source/methods.h	(revision 293)
@@ -6,11 +6,21 @@
 
 struct ModPackage {
-	bool isInstalled; //replace with function 
-	string *name;
+	bool	isInstalled; //replace with function 
+	string	name;
+	string	modString;
+	bool	hasOnis;
+	bool	hasDeltas;
+	bool	hasBSL;
+	bool	hasDats;
+	bool	category;
+	string	creator;
+	bool	isEngine;
+	string	readme;
+	bool	globalNeeded;
 };
 
 int mainMenu();
 vector<ModPackage> getPackages();
-ModPackage fileToModPackage(fstream);
+ModPackage fileToModPackage(fstream&);
 
 void installPackages();
@@ -20,2 +30,22 @@
 bool getDirectoryContents(char , char &);
 
+
+void Tokenize(const string& str,
+                      vector<string>& tokens,
+                      const string& delimiters = " ")
+{
+    // Skip delimiters at beginning.
+    string::size_type lastPos = str.find_first_not_of(delimiters, 0);
+    // Find first "non-delimiter".
+    string::size_type pos     = str.find_first_of(delimiters, lastPos);
+
+    while (string::npos != pos || string::npos != lastPos)
+    {
+        // Found a token, add it to the vector.
+        tokens.push_back(str.substr(lastPos, pos - lastPos));
+        // Skip delimiters.  Note the "not_of"
+        lastPos = str.find_first_not_of(delimiters, pos);
+        // Find next "non-delimiter"
+        pos = str.find_first_of(delimiters, lastPos);
+    }
+}
Index: /AE/Installer/trunk/source/subs.cpp
===================================================================
--- /AE/Installer/trunk/source/subs.cpp	(revision 292)
+++ /AE/Installer/trunk/source/subs.cpp	(revision 293)
@@ -12,5 +12,9 @@
 
 #include <errno.h>
-#include "Include\dirent.h"
+#ifdef WIN32
+	#include "Include\dirent.h"
+#else
+	#include <dirent.h> //??? is this included for Macs?
+#endif
 #include <stdio.h>
 #include <stdlib.h>
@@ -50,5 +54,5 @@
 	string MODINFO_CFG = "\\Mod_Info.cfg";
 
-	string line;
+	
 
 	DIR *pdir;
@@ -74,12 +78,7 @@
 				
 			//do stuff like adding to vector :P
-			cout << pent->d_name << "\n";
-			while (! file.eof() )
-			{
-				getline (file,line);
-				 cout << line << endl;
-			}
+
 			//would prefer to push a pointer to a package, but this will do for now
-			//packages.push_back( fileToModPackage(file) );
+			packages.push_back( fileToModPackage(file) );
 			
 		}	
@@ -100,7 +99,49 @@
 }
 
-ModPackage fileToModPackage(fstream file) {
-	ModPackage package;
-		cout << file;
+ModPackage fileToModPackage(fstream &file) {
+	ModPackage package = {0, ""};
+	string line;
+	static string NameOfMod = "NameOfMod"; //used for comparing to the current token
+	static string SLASHSLASH = "//";
+	static string ARROW = "->";
+			while (! file.eof() )
+			{
+				getline (file,line);
+				     vector<string> tokens; 
+					 vector<string>::iterator iter;
+				Tokenize(line, tokens);					//string to vector of "words"
+				if (tokens.capacity() >= 2) {			//make sure they are using enough stuff
+					iter = tokens.begin();				//what word we are on, starts at first word
+										/*
+					if (!AEInstallVersion.compare(*iter))
+						If mod is too old, skip this mod.
+					*/
+					/*else*/if (!NameOfMod.compare(*iter))  {	//if it contains the name
+						for ( ; iter !=tokens.end() && SLASHSLASH.compare(*iter); iter++) {	//interates through the words, ends if it reaches the end of the line or a "//" comment
+							if (ARROW.compare(*iter) && NameOfMod.compare(*iter)) {			//ignores "->" and "NameOfMod"
+								//cout << *iter; 
+								//cout << " ";
+								package.name += *iter + " ";
+							}
+						}
+						cout << package.name; cout << "\n"; //remove this when done
+					/*
+					else if (!ModString.compare(*iter)
+					else if (!HasOnis.compare(*iter)
+					else if (!HasDeltas.compare(*iter)
+					else if (!HasBSL.compare(*iter)
+					else if (!HasDats.compare(*iter)
+					else if (!Category.compare(*iter)
+					else if (!Creator.compare(*iter)
+					else if (!IsEngine.compare(*iter)
+					else if (!Readme.compare(*iter)
+					else if (!GlobalNeeded.compare(*iter)
+					*/
+					}
+					//cout << *iter;
+				}
+			
+			}
+			
 	return package;
 }
