Wrecked Games

Please login or register.

Login with username, password and session length
Advanced search  

News:

We're just that awesome.

Pages: 1 ... 10 11 [12] 13 14

Author Topic: Wrecked Games Engine (WGE)  (Read 48157 times)

pjcast

  • Administrator
  • Veteran
  • *****
  • Karma: +0/-0
  • Posts: 2652
    • View Profile
    • http://www.wreckedgames.com
Wrecked Games Engine (WGE)
« Reply #165 on: April 26, 2006, 09:39:23 AM »

Sounds interesting, and similiar to what WGE is. Pretty much the same tech's used (except, we support FMOD too). And, IIRC, you used python, while we are using Squirrel.

Though, WGE has no message system as of yet, though, i have had in mind the ability for scripts to register callbacks for various types of messages. But, not as complex as what you appear to have. I do not have time to read/reply to your whole post yet, gotta get ready to go take a test :)

But, I will reply again later.
Logged

OvermindDL1

  • Administrator
  • Veteran
  • *****
  • Karma: +0/-0
  • Posts: 288
    • View Profile
    • http://www.overminddl1.com/forum/
Wrecked Games Engine (WGE)
« Reply #166 on: April 26, 2006, 12:41:29 PM »

Yea, this whole things started with that message setup, I just could not find one that was as powerful as what I needed.  I wanted one that used inputs (keyboard/mouse/joystick/etc...), could serialize and unserialize its data out to a file, allows anything to register any named event, and allows any number of links between any numbers of things.  One didn't exist as far as I could find, so I made it.  The rest of my engine follows my past few years of design patterns, heavy templating and macro's (I hated those with a passion half a decade ago, now I can't imagine making a complex api without em...).

I used lua (close enough to SQ, same engine) for many years a few years back, then I learned python, never went back.  Binding with python is so much easier, reading and using python scripts is so much more pleasent.  The hard part was bind pythong *into* an application instead of binding an application *into* python as most of the python community seems to prefer.  Python looks like it was made to be bound into programs though, so once I figured it out it is an absolute breeze.  I've been meaning to make a tutorial for others wanting to do the same thing since I couldn't find any good ones myself.  I barely have python in it right now, I want to start making a game on top of it so I can finish flushing out the best way to impliment everything.

If you want that messaging system, it is extremely simple, one main class and one helper class.  I even added things so that when you make a link you can bind it to a member variable (typedef for it is in the class header) and when it goes out of scope or you call disconnect on it, no more link, or you could subclass a class from something else and have the link go out of scope on things like member functions specifically (they can also be linked to the typedef'd var) when the class goes away.

I am going to use the python scripting in mine though to simplify work for artists and level makers, I want the brunt of the code to remain C++ in my pattern, although it would be quite simple to give python access to the entire tree.

Here is a post describing some basic usage of the class system that I did on another forum a while back, syntax has changed very little since then, changed the way it handles different default params so it is far easier is about it:
Quote
Heh, in other words, if you make a class as such:
Code: [Select]

// header file:
class Hoverer : public Object
{
/* ... */

static Real s_HoverHeight;

DEFAULT_CLASS_WITH_FLAGS(Hoverer, Object, CLASS_Abstract)
{
String tempString = cf.getSetting(String("hoverHeight"), String("Hoverer"));
if(!tempString.empty())
s_HoverHeight = StringConverter::parseReal(tempString);
}

/* ... */
}

// implimentation file:
Real Hoverer::s_HoverHeight = 5;

/* ... */


Then to create that class somewhere in the code:
Code: [Select]

// If you have the header in the file, just do:
objectPtr newUnit = Hoverer::getClassStatic().Spawn(); // you could add a string with a *unique* name if you don't want one auto generated.

// If you have to go the long way, don't know anything about the class other then what it is called, then just:
objectPtr newUnit = Class::Spawn("Hoverer");
// or the functionally equiv, but more verbose way, in case you don't know if the class even exists or something...
Class *hoverer = Class::findClass("Hoverer");
if(hoverer)
{
objectPtr newUnit = hoverer.Spawn();
}

// The Spawn functions can take a variety of values, a unique name as stated above, location, rotation, etc...  Defaults are fine though, they can be positioned once created if you want.
// The objectPtr also has clas specific versions, if you have the class header in, just use, for example, Hoverer::myClassPtr instead


The function body after "DEFAULT_CLASS_WITH_FLAGS" is a configuration setup, run once for a program and is static in scope.  Use the reference to the configuration map "cf" to pull settings out of it to populate static settings and such, as shown above (actual code from the hoverer).  The first param to the getSetting function is the value name, and the second param is the section.  Used identically to the BZ2 odf's.  It will recurse up through the class tree to fill in everything for that class with all values from the ODF.  I might end up changing it to use python scripts later...


EDIT:  Been reading a bit more in this thread, in response to:
Quote from: "mysterycoder"
If we can get it to work, I still think it is a good idea to have the ActorFactory. It enables us to get an Actor, by simply knowing its name. It also enables us to not put Actors everywhere in the root table, you can just create a local Actor, and retrieve an Actor by its name. It also allows for easy manual deletion(changing levels, etc) I see you left it in for now, and thats good, because I want to get the ActorFactory into a working state(I think I know how to fix it)

My class system, as stated earlier, acts like a registry, factory, pool, etc... if you want some code out of it?

And being the python fan for the past year now, let me just say that error handling and tracking down in python is incredably nicer then LUA's.  I even print out a stack dump so you see where in the script it died, the line number, the file, even the very identifier it died on, and the reason why it died, won't help if you have logic errors obviously, but that kind of dump is very nice.  I have it dump to the console and log currently so you can see the errors in real-time.  As for the SQ binding function call errors mentioned a few pages back, I've never yet had a problem binding things in Python, and I've bound some pretty dang large things a few months ago.  Writing a wrapping for a function that has 50 different typse of overloads is not terribly fun though, but easy, just another function with a different name that just calls the other.

EDIT2:  Just read that WGE is gpl and not lgpl as is usual with dll libraries, any reason?  Also, my code is bsd'ish/boost'ish, I don't like the gpl, freakin virus...
Logged

pjcast

  • Administrator
  • Veteran
  • *****
  • Karma: +0/-0
  • Posts: 2652
    • View Profile
    • http://www.wreckedgames.com
Wrecked Games Engine (WGE)
« Reply #167 on: April 26, 2006, 05:49:19 PM »

Don't really have time to respond to the topic of Event handling. It may prove useful to check your system (or use it ;) ). But, I don't think I am really at the point of needing that right now.

As for the GPL over other license. Mainly, because if anything good comes of WGE (as in, it can make professional level games, maybe likely, mayby not), I want to have the option to dual license it out for a small fee (similiar to the torque engine) - roughly $100 or so dollars.

Additionally, WGE did not start out as a DLL, and hence, even if somewhere were to use WGE before, they would still have been modifying LGPL code, which is just as bad as GPL code at that point. Though, now WGE is a dll for dependency reasons. It could just as easily be a static lib.

Basically, no point in having it LGPL right now, as the main point of WGE is to modify the scripts, and not the code. License situation can always be changed as needed. Though, I think GPL is a good sticking point, if someone really wanted to use WGE, I think paying a small fee is justified. Especially, considering the other libs I release as zlib and LGPL.
Logged

posixninja

  • Newbie
  • *
  • Karma: +0/-0
  • Posts: 10
    • View Profile
Wrecked Games Engine (WGE)
« Reply #168 on: June 11, 2006, 08:00:18 AM »

looking though WGE's source this morning and it's almost the same as the engine I was working on, Ogre, OIS, Squirrel,PLSM2,Ogg,OpenAL and OgreNewt  perhaps i'll freqent this place and help out, or get help. either way, it's lookin good pjcast.
Logged

pjcast

  • Administrator
  • Veteran
  • *****
  • Karma: +0/-0
  • Posts: 2652
    • View Profile
    • http://www.wreckedgames.com
Wrecked Games Engine (WGE)
« Reply #169 on: June 11, 2006, 09:05:16 AM »

Thanks :)

Yeah, I made some choices for engine components based on their freeness and usefullness. Mainly, the only libs which cannot be ported to consoles as is are Ogre + OpenAL (IIRC) because of their LGPL licenses. However, which Ogre offering a dual license eventually, that one is no issue. And, as for sound, that is why it is plugin based, and all the decoding handled internal to WGE. To be swapped out if needed. Though, I have no illusions that WGE will ever be on a console, but just leaving that option open ;)

Currently, development has slowed pace in the last month. But, after I find and get settled with a new job, I will get back to development full swing. Another hand would be great :) Currently though, all my development efforts are focused towards refreshing other language skills for job interviews/positions  :mrgreen:
Logged

mysterycoder

  • Administrator
  • Veteran
  • *****
  • Karma: +0/-0
  • Posts: 447
    • View Profile
Wrecked Games Engine (WGE)
« Reply #170 on: June 11, 2006, 12:21:14 PM »

The new VC8 dependencies are almost here.  :)
They would've already been done except I'm having some problems with tinyxml and VC8.
Plus, I couldn't release new dependencies without the nice, new Ogre 1.21.  :wink:
Logged

mysterycoder

  • Administrator
  • Veteran
  • *****
  • Karma: +0/-0
  • Posts: 447
    • View Profile
Wrecked Games Engine (WGE)
« Reply #171 on: June 11, 2006, 07:31:13 PM »

@pjcast:
I cannot get TinyXml to link under VC8.
Would you prefer I simply add the source files to the WGE project? It works when I do that. I can still have it build as a library under Code::Blocks.

Or, would you rather I move to something like irrXml? Its under the zlib license(slightly modified).
Logged

pjcast

  • Administrator
  • Veteran
  • *****
  • Karma: +0/-0
  • Posts: 2652
    • View Profile
    • http://www.wreckedgames.com
Wrecked Games Engine (WGE)
« Reply #172 on: June 11, 2006, 07:56:32 PM »

For now, yeah, go ahead and add tiny source to WGE. I don't think moving to something else is really needed at this point. Out of curiosity though, what kind of errors are you seeing?
Logged

mysterycoder

  • Administrator
  • Veteran
  • *****
  • Karma: +0/-0
  • Posts: 447
    • View Profile
Wrecked Games Engine (WGE)
« Reply #173 on: June 11, 2006, 08:45:36 PM »

Some not-very-nice errors  :wink: :
Code: [Select]
msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)" (??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@XZ) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV01@@Z) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::operator=(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@ABV01@@Z) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(char const *)" (??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@PBD@Z) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: __thiscall std::_Container_base::~_Container_base(void)" (??1_Container_base@std@@QAE@XZ) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: __thiscall std::_Container_base::_Container_base(void)" (??0_Container_base@std@@QAE@XZ) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: void __thiscall std::_Container_base::_Orphan_all(void)const " (?_Orphan_all@_Container_base@std@@QBEXXZ) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: char const * __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::c_str(void)const " (?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: void __thiscall std::basic_ostringstream<char,struct std::char_traits<char>,class std::allocator<char> >::`vbase destructor'(void)" (??_D?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall std::basic_ostringstream<char,struct std::char_traits<char>,class std::allocator<char> >::str(void)const " (?str@?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: __thiscall std::basic_ostringstream<char,struct std::char_traits<char>,class std::allocator<char> >::basic_ostringstream<char,struct std::char_traits<char>,class std::allocator<char> >(int)" (??0?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > & __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::operator=(char const *)" (??4?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV01@PBD@Z) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: class std::basic_ostream<char,struct std::char_traits<char> > & __thiscall std::basic_ostream<char,struct std::char_traits<char> >::operator<<(int)" (??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV01@H@Z) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: void __thiscall std::basic_ios<char,struct std::char_traits<char> >::setstate(int,bool)" (?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXH_N@Z) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: int __thiscall std::ios_base::width(int)" (?width@ios_base@std@@QAEHH@Z) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: int __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::sputn(char const *,int)" (?sputn@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHPBDH@Z) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: static bool __cdecl std::char_traits<char>::eq_int_type(int const &,int const &)" (?eq_int_type@?$char_traits@D@std@@SA_NABH0@Z) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: static int __cdecl std::char_traits<char>::eof(void)" (?eof@?$char_traits@D@std@@SAHXZ) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: int __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::sputc(char)" (?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEHD@Z) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: class std::basic_streambuf<char,struct std::char_traits<char> > * __thiscall std::basic_ios<char,struct std::char_traits<char> >::rdbuf(void)const " (?rdbuf@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_streambuf@DU?$char_traits@D@std@@@2@XZ) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: char __thiscall std::basic_ios<char,struct std::char_traits<char> >::fill(void)const " (?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDXZ) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: int __thiscall std::ios_base::flags(void)const " (?flags@ios_base@std@@QBEHXZ) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: int __thiscall std::ios_base::width(void)const " (?width@ios_base@std@@QBEHXZ) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: static unsigned int __cdecl std::char_traits<char>::length(char const *)" (?length@?$char_traits@D@std@@SAIPBD@Z) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: class std::basic_ostream<char,struct std::char_traits<char> > & __thiscall std::basic_ostream<char,struct std::char_traits<char> >::flush(void)" (?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEAAV12@XZ) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: class std::basic_ostream<char,struct std::char_traits<char> > * __thiscall std::basic_ios<char,struct std::char_traits<char> >::tie(void)const " (?tie@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEPAV?$basic_ostream@DU?$char_traits@D@std@@@2@XZ) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: bool __thiscall std::ios_base::good(void)const " (?good@ios_base@std@@QBE_NXZ) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: void __thiscall std::basic_ostream<char,struct std::char_traits<char> >::_Osfx(void)" (?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXXZ) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: void __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::_Lock(void)" (?_Lock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ) already defined in tinyxmld_STL.lib(tinyxml.obj)
msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: void __thiscall std::basic_streambuf<char,struct std::char_traits<char> >::_Unlock(void)" (?_Unlock@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAEXXZ) already defined in tinyxmld_STL.lib(tinyxml.obj)
libcpmtd.lib(ios.obj) : error LNK2005: "private: static void __cdecl std::ios_base::_Ios_base_dtor(class std::ios_base *)" (?_Ios_base_dtor@ios_base@std@@CAXPAV12@@Z) already defined in msvcprtd.lib(MSVCP80D.dll)
libcpmtd.lib(ios.obj) : error LNK2005: "public: static void __cdecl std::ios_base::_Addstd(class std::ios_base *)" (?_Addstd@ios_base@std@@SAXPAV12@@Z) already defined in msvcprtd.lib(MSVCP80D.dll)
libcpmtd.lib(locale0.obj) : error LNK2005: "private: static class std::locale::_Locimp * __cdecl std::locale::_Getgloballocale(void)" (?_Getgloballocale@locale@std@@CAPAV_Locimp@12@XZ) already defined in msvcprtd.lib(MSVCP80D.dll)
libcpmtd.lib(locale0.obj) : error LNK2005: "private: static class std::locale::_Locimp * __cdecl std::locale::_Init(void)" (?_Init@locale@std@@CAPAV_Locimp@12@XZ) already defined in msvcprtd.lib(MSVCP80D.dll)
libcpmtd.lib(locale0.obj) : error LNK2005: "private: static void __cdecl std::locale::facet::facet_Register(class std::locale::facet *)" (?facet_Register@facet@locale@std@@CAXPAV123@@Z) already defined in msvcprtd.lib(MSVCP80D.dll)
libcpmtd.lib(locale0.obj) : error LNK2005: "public: static void __cdecl std::_Locinfo::_Locinfo_ctor(class std::_Locinfo *,char const *)" (?_Locinfo_ctor@_Locinfo@std@@SAXPAV12@PBD@Z) already defined in msvcprtd.lib(MSVCP80D.dll)
libcpmtd.lib(locale0.obj) : error LNK2005: "public: static void __cdecl std::_Locinfo::_Locinfo_dtor(class std::_Locinfo *)" (?_Locinfo_dtor@_Locinfo@std@@SAXPAV12@@Z) already defined in msvcprtd.lib(MSVCP80D.dll)
libcpmtd.lib(xdebug.obj) : error LNK2005: "void * __cdecl operator new(unsigned int,struct std::_DebugHeapTag_t const &,char *,int)" (??2@YAPAXIABU_DebugHeapTag_t@std@@PADH@Z) already defined in msvcprtd.lib(MSVCP80D.dll)
libcpmtd.lib(xdebug.obj) : error LNK2005: "void * __cdecl operator new[](unsigned int,struct std::_DebugHeapTag_t const &,char *,int)" (??_U@YAPAXIABU_DebugHeapTag_t@std@@PADH@Z) already defined in msvcprtd.lib(MSVCP80D.dll)
libcpmtd.lib(xdebug.obj) : error LNK2005: "struct std::_DebugHeapTag_t const & __cdecl std::_DebugHeapTag_func(void)" (?_DebugHeapTag_func@std@@YAABU_DebugHeapTag_t@1@XZ) already defined in msvcprtd.lib(MSVCP80D.dll)
libcpmtd.lib(xlock.obj) : error LNK2005: "public: __thiscall std::_Lockit::_Lockit(int)" (??0_Lockit@std@@QAE@H@Z) already defined in msvcprtd.lib(MSVCP80D.dll)
libcpmtd.lib(xlock.obj) : error LNK2005: "public: __thiscall std::_Lockit::~_Lockit(void)" (??1_Lockit@std@@QAE@XZ) already defined in msvcprtd.lib(MSVCP80D.dll)
LIBCMTD.lib(dbgheap.obj) : error LNK2005: _malloc already defined in MSVCRTD.lib(MSVCR80D.dll)
LIBCMTD.lib(dbgheap.obj) : error LNK2005: _calloc already defined in MSVCRTD.lib(MSVCR80D.dll)
LIBCMTD.lib(dbgheap.obj) : error LNK2005: _realloc already defined in MSVCRTD.lib(MSVCR80D.dll)
LIBCMTD.lib(dbgheap.obj) : error LNK2005: _free already defined in MSVCRTD.lib(MSVCR80D.dll)
LIBCMTD.lib(stdexcpt.obj) : error LNK2005: "public: __thiscall std::exception::exception(void)" (??0exception@std@@QAE@XZ) already defined in MSVCRTD.lib(MSVCR80D.dll)
LIBCMTD.lib(stdexcpt.obj) : error LNK2005: "public: __thiscall std::exception::exception(char const * const &)" (??0exception@std@@QAE@ABQBD@Z) already defined in MSVCRTD.lib(MSVCR80D.dll)
LIBCMTD.lib(stdexcpt.obj) : error LNK2005: "public: __thiscall std::exception::exception(class std::exception const &)" (??0exception@std@@QAE@ABV01@@Z) already defined in MSVCRTD.lib(MSVCR80D.dll)
LIBCMTD.lib(stdexcpt.obj) : error LNK2005: "public: virtual __thiscall std::exception::~exception(void)" (??1exception@std@@UAE@XZ) already defined in MSVCRTD.lib(MSVCR80D.dll)
LIBCMTD.lib(stdexcpt.obj) : error LNK2005: "public: virtual char const * __thiscall std::exception::what(void)const " (?what@exception@std@@UBEPBDXZ) already defined in MSVCRTD.lib(MSVCR80D.dll)
LIBCMTD.lib(stdexcpt.obj) : error LNK2005: "public: __thiscall std::bad_cast::bad_cast(char const *)" (??0bad_cast@std@@QAE@PBD@Z) already defined in MSVCRTD.lib(MSVCR80D.dll)
LIBCMTD.lib(stdexcpt.obj) : error LNK2005: "public: __thiscall std::bad_cast::bad_cast(class std::bad_cast const &)" (??0bad_cast@std@@QAE@ABV01@@Z) already defined in MSVCRTD.lib(MSVCR80D.dll)
LIBCMTD.lib(stdexcpt.obj) : error LNK2005: "public: virtual __thiscall std::bad_cast::~bad_cast(void)" (??1bad_cast@std@@UAE@XZ) already defined in MSVCRTD.lib(MSVCR80D.dll)
LIBCMTD.lib(lconv.obj) : error LNK2005: _localeconv already defined in MSVCRTD.lib(MSVCR80D.dll)
LIBCMTD.lib(tidtable.obj) : error LNK2005: __encode_pointer already defined in MSVCRTD.lib(MSVCR80D.dll)
LIBCMTD.lib(tidtable.obj) : error LNK2005: __decode_pointer already defined in MSVCRTD.lib(MSVCR80D.dll)
LIBCMTD.lib(invarg.obj) : error LNK2005: __invalid_parameter already defined in MSVCRTD.lib(MSVCR80D.dll)
LIBCMTD.lib(dbghook.obj) : error LNK2005: __crt_debugger_hook already defined in MSVCRTD.lib(MSVCR80D.dll)
LIBCMTD.lib(hooks.obj) : error LNK2005: "void __cdecl terminate(void)" (?terminate@@YAXXZ) already defined in MSVCRTD.lib(MSVCR80D.dll)
LIBCMTD.lib(mlock.obj) : error LNK2005: __lock already defined in MSVCRTD.lib(MSVCR80D.dll)
LIBCMTD.lib(mlock.obj) : error LNK2005: __unlock already defined in MSVCRTD.lib(MSVCR80D.dll)
LIBCMTD.lib(atox.obj) : error LNK2005: _atoi already defined in MSVCRTD.lib(MSVCR80D.dll)
LIBCMTD.lib(sprintf.obj) : error LNK2005: _sprintf already defined in MSVCRTD.lib(MSVCR80D.dll)
LIBCMTD.lib(sprintf.obj) : error LNK2005: _sprintf_s already defined in MSVCRTD.lib(MSVCR80D.dll)
LIBCMTD.lib(tolower.obj) : error LNK2005: _tolower already defined in MSVCRTD.lib(MSVCR80D.dll)
LIBCMTD.lib(strtol.obj) : error LNK2005: _strtol already defined in MSVCRTD.lib(MSVCR80D.dll)
LIBCMTD.lib(strtol.obj) : error LNK2005: _strtoul already defined in MSVCRTD.lib(MSVCR80D.dll)
LIBCMTD.lib(dbgrptw.obj) : error LNK2005: __CrtDbgReportW already defined in MSVCRTD.lib(MSVCR80D.dll)
LIBCMTD.lib(vsprintf.obj) : error LNK2005: _vsprintf already defined in MSVCRTD.lib(MSVCR80D.dll)
LIBCMTD.lib(vsnprnc.obj) : error LNK2005: __vsnprintf_s already defined in MSVCRTD.lib(MSVCR80D.dll)
LIBCMTD.lib(printf.obj) : error LNK2005: _printf already defined in MSVCRTD.lib(MSVCR80D.dll)
Logged

posixninja

  • Newbie
  • *
  • Karma: +0/-0
  • Posts: 10
    • View Profile
Wrecked Games Engine (WGE)
« Reply #174 on: June 12, 2006, 03:44:48 AM »

@mysterycoder
if you're using the STL version of TinyXML, make sure you've added TIXML_USE_STL to the preprocessor defination.  

@pjcast
Sure if you need a hand, i'd be willing to help out.  Just tell me what you need work on.  I'm pretty well experinced, I've been coding for roughly 7 years now (I'm 21 now :-P).  I'll take on any challenges you got.
Logged

mysterycoder

  • Administrator
  • Veteran
  • *****
  • Karma: +0/-0
  • Posts: 447
    • View Profile
Wrecked Games Engine (WGE)
« Reply #175 on: June 12, 2006, 05:23:56 AM »

Yup, I've done that.  :wink:

The errors seemed very strange to me, I'm not using their version of strings or whatever when you don't specify TIXML_USE_STL. I even tried removing those files TinyXmlStr, etc.

The even weirder part is if I add the source files to WGE, which has virtually the same project options, it works, no problem.
Logged

pjcast

  • Administrator
  • Veteran
  • *****
  • Karma: +0/-0
  • Posts: 2652
    • View Profile
    • http://www.wreckedgames.com
Wrecked Games Engine (WGE)
« Reply #176 on: June 12, 2006, 06:58:33 AM »

@mysterycoder
Did you have the tinyxml project set to "multithreaded debug/release dll" runtime? That is likely to cause those type of errors. Though, I think by default, VC8 sets it properly :/ Not really too bad an issue, though, it can be fixed later.

@posixninja
You can take a look at the WGE page on the wiki, and see what area you would like to look into. Or, if you have some ideas of what needs adding or fixing. Feel free to post suggestions. I can grant you svn access for commits whenever you are ready to commit some changes.
Logged

mysterycoder

  • Administrator
  • Veteran
  • *****
  • Karma: +0/-0
  • Posts: 447
    • View Profile
Wrecked Games Engine (WGE)
« Reply #177 on: June 12, 2006, 05:14:22 PM »

Gah, it worked. :shock:
I love you pjcast. :rolleyes:
When I saw Debug Dll, I thought it was for only when I was compiling dlls, and that the other options were for static libs, and exes. That's how the imported project was setup.

Thanks for the help, I guarentee I'll finish the dependency packages tonight.
Logged

posixninja

  • Newbie
  • *
  • Karma: +0/-0
  • Posts: 10
    • View Profile
Wrecked Games Engine (WGE)
« Reply #178 on: June 14, 2006, 07:36:27 AM »

very well, i'll look into squirrel (sqplus?) error handling in the morning.  Haven't been able to find much resources on squirrel besides the wiki and forums.  Is there any particular way you'd like it done?
Logged

pjcast

  • Administrator
  • Veteran
  • *****
  • Karma: +0/-0
  • Posts: 2652
    • View Profile
    • http://www.wreckedgames.com
Wrecked Games Engine (WGE)
« Reply #179 on: June 14, 2006, 07:47:21 AM »

Hmm, I assume you are referring to the 'bullet proofing squirrel scripts" part of the wiki. I looked into having squirrel catching c++ exceptions, but it seemed impossible - it appears it can only catch exceptions raised in scripts. But, if you can figure out how to have it catch c++ exceptions, that would be sweet. Though, we were talking about just using return type checking for things that could error out, then perhaps a getLastError on an error handling class perhaps. There are no *really* good squirrel resources besides the manual that comes with squirrel. It is lacking in good examples though. However, the squirrel forums are generally helpful.
Logged
Pages: 1 ... 10 11 [12] 13 14